Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of KizunaMod v0.11.0
plugins/KizunaMod.dll
Decompiled 14 hours ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using EntityStates; using HG.Reflection; using KinematicCharacterController; using On.RoR2.UI; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using R2API.Utils; using RoR2; using RoR2.CharacterAI; using RoR2.Skills; using RoR2.UI; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: OptIn] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("KizunaMod")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("KizunaMod")] [assembly: AssemblyTitle("KizunaMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace KizunaMod; public static class KizunaSignals { public const string SasukeShippudenFinisher = "SasukeShippuden.Finisher"; public const string NarutoCloneGone = "NarutoShippuden.CloneGone"; public const string TakaPerfectDodge = "SasukeMangekyou.PerfectDodge"; public const string SageEnergyGained = "NarutoSage.EnergyGained"; public const string SageKumiteHit = "NarutoSage.KumiteHit"; public const string SasukeShippudenFinisherHit = "SasukeShippuden.FinisherHit"; public const string MinatoAtClone = "Minato.AtClone"; public const string NarutoSixPathsVolley = "NarutoSixPaths.Volley"; public const string NarutoSixPathsOrbLanded = "NarutoSixPaths.OrbLanded"; public const string NarutoSixPathsOrbStruck = "NarutoSixPaths.OrbStruck"; public const string NarutoSixPathsShurikenHit = "NarutoSixPaths.ShurikenHit"; public const string NarutoSixPathsBarrage = "NarutoSixPaths.Barrage"; public const string SasukeRinneganSusanooBlow = "SasukeRinnegan.SusanooBlow"; public const string SasukeRinneganChibaku = "SasukeRinnegan.Chibaku"; public const string SasukeRinneganChibakuCaught = "SasukeRinnegan.ChibakuCaught"; public const string SasukeRinneganAmaterasuHit = "SasukeRinnegan.AmaterasuHit"; public const string NarutoShippudenRasengan = "NarutoShippuden.Rasengan"; public const string SageArtHit = "NarutoSage.ArtHit"; public const string SasukeShippudenKirin = "SasukeShippuden.Kirin"; public const string MinatoArrived = "Minato.Arrived"; } public static class KizunaChecks { public const string TakaMarked = "SasukeMangekyou.Marked"; public const string AmaterasuBurning = "SasukeMangekyou.Burning"; public const string SageMeditating = "NarutoSage.Meditating"; public const string NarutoClone = "NarutoShippuden.Clone"; public const string MinatoMarked = "Minato.Marked"; public const string MinatoFormulaClaim = "Minato.FormulaClaim"; public const string RinneganBurning = "SasukeRinnegan.Burning"; } public static class KizunaPlaces { public const string MinatoKunai = "Minato.Kunai"; } public static class KizunaShared { public const string SageKumiteWave = "NarutoSage.KumiteWave"; public const string SageEnergyStreak = "NarutoSage.EnergyStreak"; public const string TakaSharinganFlash = "SasukeMangekyou.SharinganFlash"; public const string MinatoFlash = "Minato.Flash"; public const string MinatoSeal = "Minato.Seal"; } public static class Kizuna { private class Member { public Func<CharacterBody, bool> busy; public GameObject chargeEffect; } public struct Signal { public CharacterBody source; public CharacterBody other; public Vector3 point; public float value; } public const string NarutoShippuden = "NarutoShippudenBody"; public const string NarutoSage = "NarutoSageBody"; public const string SasukeShippuden = "SasukeShippudenBody"; public const string SasukeMangekyou = "SasukeMangekyouBody"; public const string Minato = "MinatoBody"; public const string NarutoSixPaths = "NarutoSixPathsBody"; public const string SasukeRinnegan = "SasukeRinneganBody"; public static readonly string[] characters = new string[7] { "NarutoShippudenBody", "NarutoSageBody", "SasukeShippudenBody", "SasukeMangekyouBody", "MinatoBody", "NarutoSixPathsBody", "SasukeRinneganBody" }; public static readonly string[] released = new string[3] { "NarutoSageBody", "SasukeMangekyouBody", "MinatoBody" }; private static readonly Dictionary<BodyIndex, string> characterOf = new Dictionary<BodyIndex, string>(); private static readonly Dictionary<string, Member> members = new Dictionary<string, Member>(); private static readonly Dictionary<string, Type> parts = new Dictionary<string, Type>(); private static readonly Dictionary<(string, string), (float, bool)> pairsNow = new Dictionary<(string, string), (float, bool)>(); private static readonly Dictionary<string, Action<Signal>> listeners = new Dictionary<string, Action<Signal>>(); private static readonly Dictionary<string, Func<CharacterBody, bool>> checks = new Dictionary<string, Func<CharacterBody, bool>>(); private static readonly Dictionary<string, Func<CharacterBody, List<Vector3>>> places = new Dictionary<string, Func<CharacterBody, List<Vector3>>>(); private static readonly Dictionary<string, GameObject> shared = new Dictionary<string, GameObject>(); private static readonly Dictionary<(GameObject, string), Transform> anchors = new Dictionary<(GameObject, string), Transform>(); internal static void Init() { RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(OnLoad)); } private static void OnLoad() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Invalid comparison between Unknown and I4 //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Invalid comparison between Unknown and I4 characterOf.Clear(); string[] array = characters; foreach (string text in array) { BodyIndex val = BodyCatalog.FindBodyIndex(text); if ((int)val != -1) { characterOf[val] = text; } } foreach (Type value in parts.Values) { if ((int)EntityStateCatalog.GetStateIndex(value) == -1) { Log.Error(value.FullName + " isn't in its mod's content pack: no other machine will see it"); } } } public static string CharacterOf(CharacterBody body) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)body) || !characterOf.TryGetValue(body.bodyIndex, out var value)) { return null; } return value; } public static bool Is(CharacterBody body, string character) { if (character != null) { return CharacterOf(body) == character; } return false; } public static bool IsPerson(CharacterMaster master) { if (Object.op_Implicit((Object)(object)master)) { if (!Object.op_Implicit((Object)(object)master.playerCharacterMasterController)) { return Object.op_Implicit((Object)(object)((Component)master).GetComponent<KizunaTestAlly>()); } return true; } return false; } private static bool Alive(CharacterBody body) { if (Object.op_Implicit((Object)(object)body) && Object.op_Implicit((Object)(object)body.healthComponent)) { return body.healthComponent.alive; } return false; } public static List<CharacterBody> Partners(CharacterBody body, string character = null) { List<CharacterBody> list = new List<CharacterBody>(); string text = CharacterOf(body); if (text == null || !IsPerson(body.master) || !Alive(body)) { return list; } foreach (CharacterMaster readOnlyInstances in CharacterMaster.readOnlyInstancesList) { if (!((Object)(object)readOnlyInstances == (Object)(object)body.master) && IsPerson(readOnlyInstances)) { CharacterBody body2 = readOnlyInstances.GetBody(); string text2 = CharacterOf(body2); if (text2 != null && !(text2 == text) && Alive(body2) && (character == null || text2 == character)) { list.Add(body2); } } } return list; } public static bool ArePartners(CharacterBody a, CharacterBody b) { if (!Object.op_Implicit((Object)(object)a) || !Object.op_Implicit((Object)(object)b) || (Object)(object)a == (Object)(object)b || (Object)(object)a.master == (Object)(object)b.master) { return false; } string text = CharacterOf(a); string text2 = CharacterOf(b); if (text != null && text2 != null && text != text2 && IsPerson(a.master) && IsPerson(b.master) && Alive(a)) { return Alive(b); } return false; } public static bool AnyPair(string first, string second) { float fixedTime = Time.fixedTime; if (pairsNow.TryGetValue((first, second), out var value) && value.Item1 == fixedTime) { return value.Item2; } bool flag = false; foreach (CharacterMaster readOnlyInstances in CharacterMaster.readOnlyInstancesList) { CharacterBody body = (Object.op_Implicit((Object)(object)readOnlyInstances) ? readOnlyInstances.GetBody() : null); if (Is(body, first) && Partners(body, second).Count > 0) { flag = true; break; } } pairsNow[(first, second)] = (fixedTime, flag); return flag; } public static void RegisterCharacter(string character, Func<CharacterBody, bool> busy, GameObject chargeEffect) { members[character] = new Member { busy = busy, chargeEffect = chargeEffect }; } public static void RegisterPart<T>(string combo, string character) where T : KizunaPart, new() { parts[combo + "|" + character] = typeof(T); } internal static bool Registered(string character) { if (character != null) { return members.ContainsKey(character); } return false; } internal static bool Busy(CharacterBody body) { string text = CharacterOf(body); if (text != null && members.TryGetValue(text, out var value)) { if (value.busy != null) { return value.busy(body); } return false; } return true; } public static bool Transformed(CharacterBody body) { string text = CharacterOf(body); if (text != null && members.TryGetValue(text, out var value) && value.busy != null) { return value.busy(body); } return false; } internal static GameObject ChargeEffect(CharacterBody body) { string text = CharacterOf(body); if (text == null || !members.TryGetValue(text, out var value)) { return null; } return value.chargeEffect; } internal static bool HasParts(KizunaCombo combo) { if (combo != null && parts.ContainsKey(combo.id + "|" + combo.a)) { return parts.ContainsKey(combo.id + "|" + combo.b); } return false; } internal static KizunaPart CreatePart(KizunaCombo combo, string character) { if (!parts.TryGetValue(combo.id + "|" + character, out var value)) { return null; } return (KizunaPart)Activator.CreateInstance(value); } public static void On(string signal, Action<Signal> listener) { listeners.TryGetValue(signal, out var value); listeners[signal] = (Action<Signal>)Delegate.Combine(value, listener); } public static void Raise(string signal, Signal data) { if (!NetworkServer.active || !listeners.TryGetValue(signal, out var value) || value == null) { return; } Delegate[] invocationList = value.GetInvocationList(); for (int i = 0; i < invocationList.Length; i++) { Action<Signal> action = (Action<Signal>)invocationList[i]; try { action(data); } catch (Exception arg) { Log.Error($"signal {signal}: {arg}"); } } } public static void Raise(string signal, CharacterBody source, Vector3 point = default(Vector3)) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) Raise(signal, new Signal { source = source, point = point }); } public static void RegisterCheck(string check, Func<CharacterBody, bool> answer) { checks[check] = answer; } public static bool Check(string check, CharacterBody body) { if (Object.op_Implicit((Object)(object)body) && checks.TryGetValue(check, out var value) && value != null) { return value(body); } return false; } public static void RegisterPlaces(string name, Func<CharacterBody, List<Vector3>> where) { places[name] = where; } public static List<Vector3> Places(string name, CharacterBody body) { if (!Object.op_Implicit((Object)(object)body) || !places.TryGetValue(name, out var value) || value == null) { return new List<Vector3>(); } return value(body) ?? new List<Vector3>(); } public static void Later(float seconds, Action action) { if (action != null && Object.op_Implicit((Object)(object)KizunaPlugin.instance)) { ((MonoBehaviour)KizunaPlugin.instance).StartCoroutine(After(seconds, action, Stage.instance)); } } private static IEnumerator After(float seconds, Action action, Stage stage) { yield return (object)new WaitForSeconds(seconds); if ((Object)(object)Stage.instance != (Object)(object)stage) { yield break; } try { action(); } catch (Exception arg) { Log.Error($"later: {arg}"); } } public static void Share(string name, GameObject thing) { if (Object.op_Implicit((Object)(object)thing)) { shared[name] = thing; } } public static GameObject Shared(string name) { if (!shared.TryGetValue(name, out var value)) { return null; } return value; } public static void Publish(GameObject owner, string name, Transform thing) { if (Object.op_Implicit((Object)(object)owner)) { anchors[(owner, name)] = thing; } } public static Transform Anchor(GameObject owner, string name) { if (!Object.op_Implicit((Object)(object)owner) || !anchors.TryGetValue((owner, name), out var value)) { return null; } if (!Object.op_Implicit((Object)(object)value)) { anchors.Remove((owner, name)); } return value; } public static Vector3 Ground(Vector3 point, float above = 3f, float below = 12f) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) RaycastHit val = default(RaycastHit); if (Physics.Raycast(point + Vector3.up * above, Vector3.down, ref val, above + below, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask), (QueryTriggerInteraction)1)) { return ((RaycastHit)(ref val)).point; } return point; } public static Vector3 Level(Vector3 direction, Vector3 fallback) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) direction.y = 0f; if (((Vector3)(ref direction)).sqrMagnitude > 0.0001f) { return ((Vector3)(ref direction)).normalized; } fallback.y = 0f; if (!(((Vector3)(ref fallback)).sqrMagnitude > 0.0001f)) { return Vector3.forward; } return ((Vector3)(ref fallback)).normalized; } } public static class KizunaBook { public class Text { public string es; public string en; public string Now { get { if (!Spanish) { return en; } return es; } } public Text(string es, string en) { this.es = es; this.en = en; } } public class Bond { public string a; public string b; public Text name; public Text comboName; public Text combo; public Text halfA; public Text halfB; public Text Half(string character) { if (!(character == a)) { return halfB; } return halfA; } public string Other(string character) { if (!(character == a)) { return a; } return b; } } public static readonly Dictionary<string, string> fallbackNames = new Dictionary<string, string> { { "NarutoShippudenBody", "Naruto" }, { "NarutoSageBody", "Naruto (Sage)" }, { "SasukeShippudenBody", "Sasuke" }, { "SasukeMangekyouBody", "Sasuke (Taka)" }, { "MinatoBody", "Minato" }, { "NarutoSixPathsBody", "Naruto (Six Paths)" }, { "SasukeRinneganBody", "Sasuke (Rinnegan)" } }; private const string NS = "NarutoShippudenBody"; private const string SG = "NarutoSageBody"; private const string SS = "SasukeShippudenBody"; private const string TK = "SasukeMangekyouBody"; private const string MN = "MinatoBody"; private const string N6 = "NarutoSixPathsBody"; private const string SR = "SasukeRinneganBody"; public static readonly Bond[] bonds = new Bond[21] { new Bond { a = "NarutoShippudenBody", b = "SasukeShippudenBody", name = new Text("Equipo 7", "Team 7"), halfA = new Text("Cada baja de Sasuke te da Experiencia (+6 % de velocidad de ataque, 8 s): +1, élite +3, jefe +5.", "Each of Sasuke's kills gives you Experience (+6% attack speed, 8 s): +1, elite +3, boss +5."), halfB = new Text("Al lanzar el remate de la Kusanagi, los clones libres de Naruto cerca de ti hacen su remate «¡U-zu-ma-ki!».", "Throwing Kusanagi's finisher makes Naruto's free clones near you perform their \"U-zu-ma-ki!\" finisher."), comboName = new Text("Rasengan × Chidori", "Rasengan × Chidori"), combo = new Text("Aparecen ante el objetivo y chocan el Rasengan y el Chidori en una cúpula de chakra que estalla: 2 × 3200 % en 15 m, aturde.", "Both appear before the target and clash Rasengan and Chidori into a chakra dome that bursts: 2 × 3200% in 15 m, stuns.") }, new Bond { a = "NarutoSageBody", b = "SasukeMangekyouBody", name = new Text("Viento y llamas negras", "Wind and Black Flames"), halfA = new Text("A 30 m de Taka con el Susanoo listo, el golpe que te dejaría bajo el 30 % se bloquea: 2 s invencible con su costillar (su Susanoo se recarga).", "Within 30 m of Taka with Susanoo ready, a hit that would drop you below 30% is blocked: 2 s invincible in his ribcage (his Susanoo recharges)."), halfB = new Text("El Rasengan Gigante o el Rasen-Shuriken del Sage sobre un enemigo en llamas extiende tu Amaterasu a los 2 más cercanos, tan fuerte como haya crecido.", "The Sage's Giant Rasengan or Rasen-Shuriken on a burning enemy spreads your Amaterasu to the 2 nearest, as strong as it has grown."), comboName = new Text("Enton: Rasen-Shuriken", "Enton: Rasen-Shuriken"), combo = new Text("Taka prende el Rasen-Shuriken con Amaterasu: una esfera negra atrae y quema todo, y estalla: 2 × 2800 %.", "Taka sets the Rasen-Shuriken ablaze with Amaterasu: a black sphere pulls and burns everything, then bursts: 2 × 2800%.") }, new Bond { a = "NarutoShippudenBody", b = "NarutoSageBody", name = new Text("Clones del monte Myōboku", "Mount Myōboku Clones"), halfA = new Text("Tus clones a 30 m del Sage golpean con el Kumite de la Rana (×1,5).", "Your clones within 30 m of the Sage strike with Frog Kumite (×1.5)."), halfB = new Text("Cada clon de Naruto que se deshace a 60 m te da +1 punto de energía natural y adelanta 3 s tus clones ocultos.", "Each of Naruto's clones dispelled within 60 m gives you +1 point of natural energy and speeds up your hidden clones by 3 s."), comboName = new Text("Chō Ōdama Rasen Tarengan", "Chō Ōdama Rasen Tarengan"), combo = new Text("8 clones de Naruto rodean al objetivo y cargan con Rasengan (225 % cada uno); después caen desde lo alto con la Ultra Gigante del Sage: 2 × 2500 %.", "8 of Naruto's clones surround the target and charge with Rasengan (225% each); then both dive with the Sage's Ultra Giant Rasengan: 2 × 2500%.") }, new Bond { a = "SasukeShippudenBody", b = "SasukeMangekyouBody", name = new Text("Sangre Uchiha", "Uchiha Blood"), halfA = new Text("Lo que arde con el Amaterasu de Taka cuenta como ardiendo para tu calor; si arde en la zona de Kirin, +20 de calor.", "Whatever burns with Taka's Amaterasu counts as burning for your heat; burning inside Kirin's area, +20 heat."), halfB = new Text("Los golpes de Sasuke marcan con tu Sharingan 6 s: tu Amaterasu los busca y tus jutsus les hacen +20 %.", "Sasuke's hits mark enemies with your Sharingan for 6 s: your Amaterasu seeks them and your jutsu deal +20%."), comboName = new Text("Corte cruzado del halcón", "Hawk Cross Cut"), combo = new Text("8 tajos cruzados alrededor del objetivo (2 × 120 % cada uno) y un aspa final: 2 × 2500 %, aturde 2 s.", "8 crossing slashes around the target (2 × 120% each) and a final cross: 2 × 2500%, stuns for 2 s.") }, new Bond { a = "NarutoShippudenBody", b = "SasukeMangekyouBody", name = new Text("Promesa", "Promise"), halfA = new Text("Tus clones hacen crítico siempre a los marcados por el Sharingan de Taka.", "Your clones always crit enemies marked by Taka's Sharingan."), halfB = new Text("Contraataque: cada esquiva perfecta manda los clones libres de Naruto (40 m) a por el atacante con Rasengan (250 %).", "Counterattack: every perfect dodge sends Naruto's free clones (40 m) after the attacker with Rasengan (250%)."), comboName = new Text("Fūma del Equipo 7", "Team 7 Fūma"), combo = new Text("Naruto se vuelve el Fūma y Taka lo lanza en llamas negras (400 % a cada enemigo, hasta 8); Naruto cae con un Rasengan: 2 × 2900 %.", "Naruto becomes the Fūma and Taka throws it in black flames (400% per enemy, up to 8); Naruto drops with a Rasengan: 2 × 2900%.") }, new Bond { a = "NarutoSageBody", b = "SasukeShippudenBody", name = new Text("Senjutsu y sello maldito", "Senjutsu and Cursed Seal"), halfA = new Text("Mientras Sasuke está transformado, recoges el doble de energía natural: cargas y puntos.", "While Sasuke is transformed, you gather twice the natural energy: charges and points."), halfB = new Text("Cada carga de energía natural del Sage te llena un 5 % el sello; con un Sage meditando a 40 m, el sello se gasta al 20 %.", "Each natural energy charge the Sage gains fills 5% of your seal; with a Sage meditating within 40 m, the seal drains at 20%."), comboName = new Text("Arte Sabio: Goemon", "Sage Art: Goemon"), combo = new Text("Fukasaku y Shima, sobre el pergamino del Sage, escupen su aceite; el viento del Sage lo empuja y Sasuke lo prende con su Katon: una ola de aceite ardiendo arrasa la zona (6 × 100 % de cada uno) y estalla: 2 × 2500 %.", "Fukasaku and Shima, on the Sage's scroll, spit their oil; the Sage's wind drives it and Sasuke's Fire Style sets it alight: a wave of burning oil sweeps the area (6 × 100% each) and erupts: 2 × 2500%.") }, new Bond { a = "MinatoBody", b = "NarutoShippudenBody", name = new Text("Padre e hijo", "Father and Son"), halfA = new Text("Los clones de Naruto son marcas del Hiraishin: al aparecer junto a uno, el clon lanza un Rasengan al enemigo más cercano.", "Naruto's clones are Hiraishin marks: flashing next to one makes it throw a Rasengan at the nearest enemy."), halfB = new Text("Tu Rasengan (o el de un clon) sobre un enemigo con sellos de Minato estalla otra vez, dorado: 75 % en 6 m.", "Your Rasengan (or a clone's) on an enemy carrying Minato's seals bursts again in gold: 75% in 6 m."), comboName = new Text("Rasengan doble", "Double Rasengan"), combo = new Text("Minato lanza dos kunai junto al objetivo, aparecen en ellos y clavan el Rasengan a la vez: 2 × 3200 % en 12 m.", "Minato throws two kunai beside the target, both flash to them and drive their Rasengan in at once: 2 × 3200% in 12 m.") }, new Bond { a = "MinatoBody", b = "NarutoSageBody", name = new Text("La fórmula del maestro", "The Master's Formula"), halfA = new Text("Cada golpe del Kumite de la Rana del Sage escribe uno de tus sellos.", "Each of the Sage's Frog Kumite hits writes one of your seals."), halfB = new Text("Tu primer golpe sobre cada fórmula que puso Minato te da +3 puntos de energía natural y +1 carga.", "Your first hit on each formula Minato placed gives you +3 points of natural energy and +1 charge."), comboName = new Text("Rasen-Shuriken del Hiraishin", "Hiraishin Rasen-Shuriken"), combo = new Text("Minato atrapa el Rasen-Shuriken y lo lleva por 4 kunai (300 % cada estallido) antes de soltarlo sobre el objetivo: 2 × 2900 %.", "Minato catches the Rasen-Shuriken and flashes it across 4 kunai (300% per burst) before dropping it on the target: 2 × 2900%.") }, new Bond { a = "MinatoBody", b = "SasukeShippudenBody", name = new Text("Pararrayos", "Lightning Rods"), halfA = new Text("El remate de la Kusanagi de Sasuke escribe 3 de tus sellos en todo lo que toca.", "Sasuke's Kusanagi finisher writes 3 of your seals on everything it hits."), halfB = new Text("Tu corriente (Kusanagi, Chidori) a 15 m de un kunai de Minato salta del kunai al enemigo más cercano (150 %).", "Your lightning (Kusanagi, Chidori) within 15 m of Minato's kunai arcs from it to the nearest enemy (150%)."), comboName = new Text("Jaula de rayos", "Lightning Cage"), combo = new Text("8 kunai en anillo; Sasuke clava el Chidori y la valla de rayos descarga mientras Minato corta de kunai en kunai; Kirin remata: 2 × 2500 %.", "8 kunai in a ring; Sasuke drives in his Chidori and the fence discharges while Minato slashes kunai to kunai; Kirin ends it: 2 × 2500%.") }, new Bond { a = "MinatoBody", b = "SasukeMangekyouBody", name = new Text("Marcas compartidas", "Shared Marks"), halfA = new Text("Lo que marca el Sharingan de Taka cuenta como marca del Hiraishin.", "Whatever Taka's Sharingan marks counts as a Hiraishin mark."), halfB = new Text("Los sellos de Minato cuentan como marca de tu Sharingan: atraen tu Amaterasu y tus jutsus hacen +20 %.", "Minato's seals count as your Sharingan mark: they draw your Amaterasu and your jutsu deal +20%."), comboName = new Text("Kunai negro", "Black Kunai"), combo = new Text("Amaterasu prende el kunai de Minato; Senkō en estrella con Taka cortando detrás y un pilar de llamas negras: 2 × 2500 %.", "Amaterasu ignites Minato's kunai; a star of Senkō with Taka slashing behind and a pillar of black flames: 2 × 2500%.") }, new Bond { a = "NarutoSixPathsBody", b = "SasukeRinneganBody", name = new Text("Sol y Luna", "Sun and Moon"), halfA = new Text("Cada golpe del Susanoo de Sasuke que acierta te da +1 chakra de bijū.", "Each blow of Sasuke's Susanoo that lands gives you +1 tailed beast chakra."), halfB = new Text("Cada ráfaga de tres Gudōdama de Naruto te da +1 Manifestación.", "Each volley of three of Naruto's Truth-Seeking Orbs gives you +1 Manifestation."), comboName = new Text("Indra y Ashura", "Indra and Ashura"), combo = new Text("Se alzan el avatar de Kurama y el Susanoo de Indra; la flecha de Indra sale con los dos Rasen-Shuriken de Ashura en la punta (flecha 600 %, cada Rasen-Shuriken 400 %) y estalla: 2 × 2500 % en 16 m.", "Kurama's avatar and Indra's Susanoo rise; Indra's Arrow flies with Ashura's two Rasen-Shuriken on its head (arrow 600%, each Rasen-Shuriken 400%) and bursts: 2 × 2500% in 16 m.") }, new Bond { a = "NarutoSixPathsBody", b = "NarutoShippudenBody", name = new Text("El mismo camino ninja", "The Same Ninja Way"), halfA = new Text("Cada clon de sombra del Naruto joven que se deshace a 60 m te da +2 chakra de bijū.", "Each of young Naruto's shadow clones dispelled within 60 m gives you +2 tailed beast chakra."), halfB = new Text("Cuando el Naruto de los Seis Caminos lanza sus nueve Rasen-Shuriken, tus clones libres a 40 m de él embisten con su Rasengan.", "When Six Paths Naruto throws his nine Rasen-Shuriken, your free clones within 40 m of him charge in with their Rasengan."), comboName = new Text("Las nueve bestias", "The Nine Beasts"), combo = new Text("Ocho clones y Naruto saltan a por los nueve Rasen-Shuriken de las bestias con cola y caen con ellos uno tras otro (150 % + 90 % cada uno); el último, el de Kurama: 2 × 2500 %.", "Eight clones and Naruto leap for the nine tailed beasts' Rasen-Shuriken and dive with them one after another (150% + 90% each); the last one, Kurama's: 2 × 2500%.") }, new Bond { a = "NarutoSixPathsBody", b = "NarutoSageBody", name = new Text("Arte Sabio de los Seis Caminos", "Six Paths Sage Art"), halfA = new Text("Los golpes del Kumite de la Rana del Sage cuentan la mitad para tus Gudōdama.", "The Sage's Frog Kumite hits count half toward your Truth-Seeking Orbs."), halfB = new Text("Cada Gudōdama de Naruto que acierta te da medio punto de energía natural.", "Each of Naruto's Truth-Seeking Orbs that lands gives you half a point of natural energy."), comboName = new Text("Kumite de Kurama", "Kurama's Kumite"), combo = new Text("El Sage carga a Naruto de energía natural y lanza su Kumite de la Rana; tras cada golpe suyo (3 × 300 %) cae en el mismo sitio una mano gigante del chakra de Kurama (3 × 300 %). Para el último, las dos manos se juntan y caen como un martillo: 2 × 2500 %.", "The Sage fills Naruto with natural energy and throws his Frog Kumite; behind each of his blows (3 × 300%) a giant hand of Kurama's chakra comes down on the same spot (3 × 300%). For the last, both hands join and fall as one hammer: 2 × 2500%.") }, new Bond { a = "NarutoSixPathsBody", b = "SasukeShippudenBody", name = new Text("Rivales", "Rivals"), halfA = new Text("El remate de la Kusanagi de Sasuke lanza una ráfaga de tus Gudōdama.", "Sasuke's Kusanagi finisher launches a volley of your Truth-Seeking Orbs."), halfB = new Text("Los Rasen-Shuriken de Naruto avivan tu fuego: cada golpe suyo a un enemigo que arde te da calor.", "Naruto's Rasen-Shuriken fan your fire: each of their hits on a burning enemy gives you heat."), comboName = new Text("Viento y fuego", "Wind and Fire"), combo = new Text("El Rasen-Shuriken de Naruto abre un vórtice que atrae todo y la bola de fuego de Sasuke lo convierte en un torbellino de llamas (golpes de 90 %, quema), que revienta: 2 × 2500 %.", "Naruto's Rasen-Shuriken opens a vortex that pulls everything in and Sasuke's fireball turns it into a whirl of flames (90% hits, burning), which blows apart: 2 × 2500%.") }, new Bond { a = "NarutoSixPathsBody", b = "SasukeMangekyouBody", name = new Text("Luz y oscuridad", "Light and Darkness"), halfA = new Text("Tus Gudōdama hacen crítico siempre a los marcados por el Sharingan de Taka.", "Your Truth-Seeking Orbs always crit enemies marked by Taka's Sharingan."), halfB = new Text("Los Rasen-Shuriken de Naruto avivan tus llamas: cada golpe suyo a un enemigo que arde con ellas les suma intensidad como uno tuyo.", "Naruto's Rasen-Shuriken fan your flames: each of their hits on an enemy burning with them adds intensity like a hit of yours."), comboName = new Text("Eclipse", "Eclipse"), combo = new Text("Naruto se alza como un sol y sus nueve Gudōdama, prendidas con Amaterasu, cierran un anillo de fuego negro que lo arrastra todo al centro (6 × 180 %) hasta formar un sol negro que estalla: 2 × 2500 %.", "Naruto rises like a sun and his nine Truth-Seeking Orbs, set ablaze by Amaterasu, close a ring of black fire that drags everything to the middle (6 × 180%) into a black sun that bursts: 2 × 2500%.") }, new Bond { a = "MinatoBody", b = "NarutoSixPathsBody", name = new Text("Las dos mitades de Kurama", "Kurama's Two Halves"), halfA = new Text("Cada Gudōdama de Naruto escribe uno de tus sellos en lo que golpea.", "Each of Naruto's Truth-Seeking Orbs writes one of your seals on what it hits."), halfB = new Text("Cada llegada de Minato por Hiraishin junto a un enemigo lanza contra él una ráfaga de tus Gudōdama (una por segundo).", "Each time Minato flashes to an enemy by Hiraishin, a volley of your Truth-Seeking Orbs flies at it (one per second)."), comboName = new Text("Yin y Yang", "Yin and Yang"), combo = new Text("Cada uno forma su mitad de Kurama: Naruto un Rasen-Shuriken dorado, Minato uno oscuro. Minato aparece con el suyo sobre el objetivo (300 %) mientras Naruto lanza el dorado; giran uno en torno al otro (7 × 90 %) y Minato corta de kunai en kunai (4 × 150 %) hasta que se funden: 2 × 2500 %.", "Each forms his half of Kurama: Naruto a gold Rasen-Shuriken, Minato a dark one. Minato flashes over the target with his (300%) as Naruto throws the gold one; they circle each other (7 × 90%) while Minato cuts from kunai to kunai (4 × 150%) until they merge: 2 × 2500%.") }, new Bond { a = "SasukeRinneganBody", b = "SasukeShippudenBody", name = new Text("El camino de Sasuke", "Sasuke's Path"), halfA = new Text("Cada Kirin del Sasuke joven te da Manifestaciones: 1 + 1 por cada 4 rayos de su tormenta.", "Each of young Sasuke's Kirin gives you Manifestations: 1 + 1 per 4 bolts of its storm."), halfB = new Text("Lo que arde con el Amaterasu del Sasuke del Rinnegan cuenta como ardiendo para tu calor.", "Whatever burns with Rinnegan Sasuke's Amaterasu counts as burning for your heat."), comboName = new Text("Chibaku Tensei: Kirin", "Chibaku Tensei: Kirin"), combo = new Text("El Chibaku Tensei levanta a los enemigos en una esfera de roca bajo la tormenta; cinco rayos (200 %) y el dragón de Kirin la parten, y todo cae: 2 × 2500 %, aturde 2 s.", "Chibaku Tensei lifts the enemies in a sphere of rock under the storm; five bolts (200%) and Kirin's dragon break it, and it all comes down: 2 × 2500%, stuns for 2 s.") }, new Bond { a = "SasukeRinneganBody", b = "SasukeMangekyouBody", name = new Text("Los ojos de Itachi", "Itachi's Eyes"), halfA = new Text("Los golpes de tu Susanoo hacen crítico siempre a los marcados por el Sharingan de Taka.", "Your Susanoo's blows always crit enemies marked by Taka's Sharingan."), halfB = new Text("El Amaterasu del Sasuke del Rinnegan aviva tus llamas: +10 % de intensidad cada vez que alcanza a un enemigo que arde con ellas.", "Rinnegan Sasuke's Amaterasu fans your flames: +10% intensity each time it reaches an enemy burning with them."), comboName = new Text("Espada de Kagutsuchi", "Kagutsuchi's Blade"), combo = new Text("Amaterasu prende la espada del Susanoo: dos tajos que cruzan el objetivo (300 % + 200 % que prende) y estacas de llamas negras bajo lo que quede: 2 × 2500 %.", "Amaterasu sets the Susanoo's blade ablaze: two cuts across the target (300% + 200% that ignites) and stakes of black flame under whatever is left: 2 × 2500%.") }, new Bond { a = "SasukeRinneganBody", b = "NarutoShippudenBody", name = new Text("El lazo que no se rompe", "The Unbroken Bond"), halfA = new Text("Cada Rasengan de Naruto o de sus clones que acierta te da +1 Manifestación (una cada 0,5 s).", "Each Rasengan of Naruto's or his clones' that lands gives you +1 Manifestation (one every 0.5 s)."), halfB = new Text("Cuando Sasuke lanza el Chibaku Tensei, tus clones libres a 30 m embisten la esfera con su Rasengan.", "When Sasuke casts Chibaku Tensei, your free clones within 30 m charge the sphere with their Rasengan."), comboName = new Text("Relevo de sombras", "Shadow Relay"), combo = new Text("Dos clones embisten con su Rasengan (400 % cada uno) mientras otros dos toman posición: uno salta sobre el objetivo y otro lo rodea. Sasuke cambia su sitio y el de Naruto por los de esos clones: Rasengan desde arriba y Chidori negro por la espalda a la vez (5 × 100 % de cada uno) y estalla: 2 × 2500 %.", "Two clones charge in with their Rasengan (400% each) while two more take position: one leaps over the target, one runs behind it. Sasuke swaps his place and Naruto's with those clones': Rasengan from above and black Chidori from behind at once (5 × 100% each), then it bursts: 2 × 2500%.") }, new Bond { a = "SasukeRinneganBody", b = "NarutoSageBody", name = new Text("Sabio y Rinnegan", "Sage and Rinnegan"), halfA = new Text("Cada Arte Sabio del Sage que acierta te da +2 Manifestaciones.", "Each of the Sage's Sage Arts that lands gives you +2 Manifestations."), halfB = new Text("Cada enemigo que atrapa el Chibaku Tensei de Sasuke te da +3 puntos de energía natural.", "Each enemy Sasuke's Chibaku Tensei catches gives you +3 points of natural energy."), comboName = new Text("Rasen-Shuriken: Amenotejikara", "Rasen-Shuriken: Amenotejikara"), combo = new Text("Sasuke espera entre los enemigos; el Sage lanza el Rasen-Shuriken al cielo y Sasuke cambia su sitio con él: la esfera se abre en medio de todos (7 × 180 %) y él cae desde arriba con el puño del Susanoo: 2 × 2500 %.", "Sasuke waits among the enemies; the Sage throws the Rasen-Shuriken into the sky and Sasuke swaps places with it: the sphere opens in their midst (7 × 180%) and he dives from above with the Susanoo's fist: 2 × 2500%.") }, new Bond { a = "MinatoBody", b = "SasukeRinneganBody", name = new Text("Espacio-tiempo", "Space-Time"), halfA = new Text("Las estacas del Amenotejikara de Sasuke escriben 4 de tus sellos en lo que empalan.", "The stakes of Sasuke's Amenotejikara write 4 of your seals on what they impale."), halfB = new Text("Cada llegada de Minato por Hiraishin junto a un enemigo te da +1 Manifestación (una por segundo).", "Each time Minato flashes to an enemy by Hiraishin gives you +1 Manifestation (one per second)."), comboName = new Text("Golpes fuera del tiempo", "Blows Out of Time"), combo = new Text("Los dos aparecen cuatro veces alrededor del objetivo, uno a cada lado, y se van; cuando ya le dan la espalda caen los ocho golpes (225 % cada uno) y todo estalla: 2 × 2500 %.", "Both flash four times around the target, one on either side, and leave; with their backs already turned the eight blows land (225% each) and it all bursts: 2 × 2500%.") } }; public static bool Spanish => (Language.currentLanguageName ?? "").StartsWith("es"); public static string Pick(string es, string en) { if (!Spanish) { return en; } return es; } public static Bond Of(string first, string second) { Bond[] array = bonds; foreach (Bond bond in array) { if ((bond.a == first && bond.b == second) || (bond.a == second && bond.b == first)) { return bond; } } return null; } } public class KizunaCamera { public enum Anchor { Target, A, B, Mid } public struct Shot { public float time; public Anchor anchor; public Vector3 eye; public Vector3 look; public float fov; public bool cut; public bool tilt; public Shot(float time, Anchor anchor, Vector3 eye, Vector3 look, float fov = 55f, bool cut = false) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) this.time = time; this.anchor = anchor; this.eye = eye; this.look = look; this.fov = fov; this.cut = cut; tilt = false; } } private class Stand : MonoBehaviour, ICameraStateProvider { private KizunaCamera owner; private GameObject body; public static Stand Create(KizunaCamera owner, GameObject body) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) Stand stand = new GameObject("KizunaCamera").AddComponent<Stand>(); stand.owner = owner; stand.body = body; return stand; } private void Update() { if (!Object.op_Implicit((Object)(object)body)) { Object.Destroy((Object)(object)((Component)this).gameObject); } } public void GetCameraState(CameraRigController cameraRigController, ref CameraState cameraState) { owner.GetCameraState(ref cameraState); } public bool IsUserLookAllowed(CameraRigController cameraRigController) { return false; } public bool IsUserControlAllowed(CameraRigController cameraRigController) { return true; } public bool IsHudAllowed(CameraRigController cameraRigController) { return false; } } private static readonly FieldInfo lerpCameraState = typeof(CameraRigController).GetField("lerpCameraState", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); private readonly GameObject body; private readonly Func<Anchor, Vector3> anchorPosition; private readonly Vector3 forward; private readonly Vector3 right; private readonly Shot[] shots; private CameraRigController rig; private Stand stand; private bool released; private float time; private const float groundProbe = 8f; public KizunaCamera(GameObject body, Func<Anchor, Vector3> anchorPosition, Vector3 forward, Shot[] shots) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) this.body = body; this.anchorPosition = anchorPosition; this.forward = Kizuna.Level(forward, Vector3.forward); Vector3 val = Vector3.Cross(Vector3.up, this.forward); right = ((Vector3)(ref val)).normalized; this.shots = shots ?? new Shot[0]; } public void Update(float time) { this.time = time; if (Object.op_Implicit((Object)(object)rig) || released || shots.Length == 0) { return; } foreach (CameraRigController readOnlyInstances in CameraRigController.readOnlyInstancesList) { if (Object.op_Implicit((Object)(object)readOnlyInstances) && !((Object)(object)readOnlyInstances.target != (Object)(object)body) && !readOnlyInstances.hasOverride && Own(readOnlyInstances)) { rig = readOnlyInstances; rig.enableFading = false; stand = Stand.Create(this, body); rig.SetOverrideCam((ICameraStateProvider)(object)stand, 0f); break; } } } private bool Own(CameraRigController candidate) { CharacterBody val = (Object.op_Implicit((Object)(object)candidate.viewer) ? candidate.viewer.GetCurrentBody() : null); if (Object.op_Implicit((Object)(object)val)) { return (Object)(object)((Component)val).gameObject == (Object)(object)body; } return false; } public void Release(float blend) { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) released = true; if (Object.op_Implicit((Object)(object)rig)) { rig.enableFading = true; if (Object.op_Implicit((Object)(object)stand) && rig.IsOverrideCam((ICameraStateProvider)(object)stand)) { CameraState currentCameraState = rig.currentCameraState; CameraState currentCameraState2 = currentCameraState; currentCameraState2.rotation = Quaternion.LookRotation(forward); rig.currentCameraState = currentCameraState2; rig.SetOverrideCam((ICameraStateProvider)null, blend); if (lerpCameraState != null) { lerpCameraState.SetValue(rig, currentCameraState); } rig.currentCameraState = currentCameraState; } rig = null; } if (Object.op_Implicit((Object)(object)stand)) { Object.Destroy((Object)(object)((Component)stand).gameObject); } stand = null; } private void Place(Shot shot, out Vector3 eye, out Vector3 look) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) eye = Place(shot.anchor, shot.eye); if (!shot.tilt) { look = Place(shot.anchor, shot.look); return; } Vector3 val = anchorPosition(shot.anchor) + right * shot.eye.x + forward * shot.eye.z + Vector3.up * shot.eye.y; look = anchorPosition(shot.anchor) + right * shot.look.x + forward * shot.look.z + Vector3.up * (shot.look.y + eye.y - val.y); } private Vector3 Place(Anchor anchor, Vector3 offset) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) Vector3 val = anchorPosition(anchor) + right * offset.x + forward * offset.z; Vector3 val2 = val + Vector3.up * offset.y; if (Physics.Raycast(val2, Vector3.up, 8f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask), (QueryTriggerInteraction)1)) { return val2; } RaycastHit val3 = default(RaycastHit); if (Physics.Raycast(val2 + Vector3.up * 8f, Vector3.down, ref val3, 8f + offset.y, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask), (QueryTriggerInteraction)1) && ((RaycastHit)(ref val3)).point.y > val.y) { val2.y = ((RaycastHit)(ref val3)).point.y + offset.y; } return val2; } private void GetCameraState(ref CameraState cameraState) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) Sample(time, out var eye, out var look, out var fov); Vector3 val = eye - look; float magnitude = ((Vector3)(ref val)).magnitude; RaycastHit val2 = default(RaycastHit); if (magnitude > 0.01f && Physics.SphereCast(look, 0.3f, val / magnitude, ref val2, magnitude, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask), (QueryTriggerInteraction)1)) { eye = look + val / magnitude * Mathf.Max(0.8f, ((RaycastHit)(ref val2)).distance); } cameraState.position = eye; Vector3 val3 = look - eye; cameraState.rotation = Quaternion.LookRotation((((Vector3)(ref val3)).sqrMagnitude > 0.0001f) ? (look - eye) : forward); cameraState.fov = fov; } private void Sample(float t, out Vector3 eye, out Vector3 look, out float fov) { //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) int i; for (i = 0; i < shots.Length && shots[i].time <= t; i++) { } Shot shot = shots[Mathf.Max(0, i - 1)]; if (i == 0 || i >= shots.Length || shots[i].cut) { Place(shot, out eye, out look); fov = shot.fov; return; } Shot shot2 = shots[i]; float num = Mathf.SmoothStep(0f, 1f, (t - shot.time) / Mathf.Max(0.001f, shot2.time - shot.time)); Place(shot, out var eye2, out var look2); Place(shot2, out var eye3, out var look3); eye = Vector3.Lerp(eye2, eye3, num); look = Vector3.Lerp(look2, look3, num); fov = Mathf.Lerp(shot.fov, shot2.fov, num); } } public class KizunaCombo { public string id; public string a; public string b; public float duration; public float damageCoefficient = 25f; public float radius = 15f; public Dictionary<string, float> numbers = new Dictionary<string, float>(); public KizunaCamera.Shot[] shots = new KizunaCamera.Shot[0]; public float this[string name] { get { if (numbers.TryGetValue(name, out var value)) { return value; } Log.Warning(id + " has no number " + name); return 0f; } } public bool Has(string character) { if (!(character == a)) { return character == b; } return true; } } public static class KizunaCombos { public const string RasenganChidori = "RasenganChidori"; public const string EntonRasenShuriken = "EntonRasenShuriken"; public const string RasenTarengan = "RasenTarengan"; public const string HawkCrossCut = "HawkCrossCut"; public const string TeamSevenFuma = "TeamSevenFuma"; public const string Goemon = "Goemon"; public const string DoubleRasengan = "DoubleRasengan"; public const string HiraishinRasenShuriken = "HiraishinRasenShuriken"; public const string LightningCage = "LightningCage"; public const string BlackKunai = "BlackKunai"; public static readonly List<KizunaCombo> all = new List<KizunaCombo> { RasenganChidoriCombo(), EntonRasenShurikenCombo(), RasenTarenganCombo(), HawkCrossCutCombo(), TeamSevenFumaCombo(), GoemonCombo(), DoubleRasenganCombo(), HiraishinRasenShurikenCombo(), LightningCageCombo(), BlackKunaiCombo(), IndraAshuraCombo(), NineBeastsCombo(), KuramaKumiteCombo(), WindAndFireCombo(), EclipseCombo(), YinYangCombo(), ChibakuKirinCombo(), KagutsuchiBladeCombo(), ShadowSwapCombo(), SwapShurikenCombo(), OutOfTimeCombo() }; public const int tarenganClones = 8; public const string IndraAshura = "IndraAshura"; public const string NineBeasts = "NineBeasts"; public const string KuramaKumite = "KuramaKumite"; public const string WindAndFire = "WindAndFire"; public const string Eclipse = "Eclipse"; public const string YinYang = "YinYang"; public const string ChibakuKirin = "ChibakuKirin"; public const string KagutsuchiBlade = "KagutsuchiBlade"; public const string ShadowSwap = "ShadowSwap"; public const string SwapShuriken = "SwapShuriken"; public const string OutOfTime = "OutOfTime"; public const int nineClones = 8; public const int orbCount = 9; public const int swapClones = 4; public static KizunaCombo For(string first, string second) { foreach (KizunaCombo item in all) { if ((item.a == first && item.b == second) || (item.a == second && item.b == first)) { return item; } } return null; } public static KizunaCombo Get(int index) { if (index < 0 || index >= all.Count) { return null; } return all[index]; } public static Vector3 TarenganCloneSpot(KizunaCombo combo, Vector3 target, Vector3 forward, int i) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) float num = combo["fanArc"]; Vector3 val = Quaternion.AngleAxis(0f - ((0f - num) * 0.5f + num * (float)i / 7f), Vector3.up) * -Kizuna.Level(forward, Vector3.forward); return Kizuna.Ground(target + val * combo["fanRadius"], 3f, 6f); } public static Vector3 HawkCutEnd(KizunaCombo combo, Vector3 target, Vector3 forward, int k) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) Vector3 val = Quaternion.AngleAxis(combo["cutStep"] * (float)k + ((k % 2 == 1) ? 90f : 0f), Vector3.up) * Kizuna.Level(forward, Vector3.forward); return Kizuna.Ground(target + val * combo["cutRadius"], 3f, 6f); } private static Vector3 Round(Vector3 target, Vector3 forward, float radius, float degrees) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) Vector3 val = Quaternion.AngleAxis(degrees, Vector3.up) * Kizuna.Level(forward, Vector3.forward); return Kizuna.Ground(target + val * radius, 3f, 6f); } public static Vector3 ShurikenStop(KizunaCombo combo, Vector3 target, Vector3 forward, int i) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) return Round(target, forward, combo["stopRadius"], -135f + 90f * (float)i); } public static Vector3 CageKunai(KizunaCombo combo, Vector3 target, Vector3 forward, int i) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) int num = Mathf.Max(1, Mathf.RoundToInt(combo["kunaiCount"])); return Round(target, forward, combo["ringRadius"], 360f / (float)num * ((float)i + 0.5f)); } public static int CageCutEnd(KizunaCombo combo, int k) { int num = Mathf.Max(1, Mathf.RoundToInt(combo["kunaiCount"])); return 3 * (k + 1) % num; } public static Vector3 BlackKunaiHop(KizunaCombo combo, Vector3 target, Vector3 forward, int k) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) return Round(target, forward, combo["hopRadius"], 150f * (float)k + 15f); } public static Vector3 BlackKunaiCut(KizunaCombo combo, Vector3 target, Vector3 forward, int k) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) return Round(target, forward, combo["cutRadius"], 112.5f * (float)k + 80f); } public static int IndexOf(KizunaCombo combo) { return all.IndexOf(combo); } private static KizunaCombo RasenganChidoriCombo() { //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_0318: Unknown result type (might be due to invalid IL or missing references) //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Unknown result type (might be due to invalid IL or missing references) //IL_03db: Unknown result type (might be due to invalid IL or missing references) KizunaCombo kizunaCombo = new KizunaCombo { id = "RasenganChidori", a = "NarutoShippudenBody", b = "SasukeShippudenBody", duration = 4.5f, damageCoefficient = 32f }; kizunaCombo.numbers["form"] = 0.05f; kizunaCombo.numbers["charge"] = 1.45f; kizunaCombo.numbers["clash"] = 2.05f; kizunaCombo.numbers["thrust"] = 2.95f; kizunaCombo.numbers["burst"] = 3.9f; kizunaCombo.numbers["standDistance"] = 7f; kizunaCombo.numbers["standSide"] = 0.55f; kizunaCombo.numbers["clashDistance"] = 1.6f; kizunaCombo.shots = new KizunaCamera.Shot[12] { new KizunaCamera.Shot(0f, KizunaCamera.Anchor.A, new Vector3(-1.35f, 1.3f, 1.8f), new Vector3(0f, 1f, 0f), 40f, cut: true), new KizunaCamera.Shot(0.72f, KizunaCamera.Anchor.A, new Vector3(-1.2f, 1.25f, 1.6f), new Vector3(0f, 1.05f, 0f), 38f), new KizunaCamera.Shot(0.75f, KizunaCamera.Anchor.B, new Vector3(1.35f, 0.6f, 1.7f), new Vector3(0f, 0.55f, 0f), 40f, cut: true), new KizunaCamera.Shot(1.42f, KizunaCamera.Anchor.B, new Vector3(1.15f, 0.75f, 1.5f), new Vector3(0f, 0.65f, 0f), 38f), new KizunaCamera.Shot(1.45f, KizunaCamera.Anchor.Mid, new Vector3(-5.5f, 1.5f, 0.6f), new Vector3(0f, 1f, 0.6f), 55f, cut: true), new KizunaCamera.Shot(2.05f, KizunaCamera.Anchor.Mid, new Vector3(-5.2f, 1.4f, 0.9f), new Vector3(0f, 1f, 0.9f)), new KizunaCamera.Shot(2.08f, KizunaCamera.Anchor.Mid, new Vector3(3f, 0.8f, 1f), new Vector3(0f, 1.15f, 0.2f), 50f, cut: true), new KizunaCamera.Shot(2.92f, KizunaCamera.Anchor.Mid, new Vector3(2.7f, 0.85f, 0.8f), new Vector3(0f, 1.2f, 0.2f), 46f), new KizunaCamera.Shot(2.95f, KizunaCamera.Anchor.Target, new Vector3(-13f, 8f, -18f), new Vector3(0f, 2.5f, 0f), 60f, cut: true), new KizunaCamera.Shot(3.85f, KizunaCamera.Anchor.Target, new Vector3(-15f, 9.5f, -21f), new Vector3(0f, 3.5f, 0f), 64f), new KizunaCamera.Shot(3.9f, KizunaCamera.Anchor.Target, new Vector3(0f, 1.4f, -6f), new Vector3(0f, 1.6f, 2f), 62f, cut: true), new KizunaCamera.Shot(4.5f, KizunaCamera.Anchor.Target, new Vector3(0f, 1.6f, -6.6f), new Vector3(0f, 1.5f, 2f), 60f) }; return kizunaCombo; } private static KizunaCombo EntonRasenShurikenCombo() { //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_02ed: Unknown result type (might be due to invalid IL or missing references) //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_0430: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Unknown result type (might be due to invalid IL or missing references) KizunaCombo kizunaCombo = new KizunaCombo { id = "EntonRasenShuriken", a = "NarutoSageBody", b = "SasukeMangekyouBody", duration = 5f, damageCoefficient = 28f }; kizunaCombo.numbers["form"] = 0.05f; kizunaCombo.numbers["eye"] = 1.3f; kizunaCombo.numbers["ignite"] = 1.95f; kizunaCombo.numbers["throw"] = 2.6f; kizunaCombo.numbers["release"] = 2.8f; kizunaCombo.numbers["burst"] = 3.1f; kizunaCombo.numbers["explode"] = 4.2f; kizunaCombo.numbers["standDistance"] = 16f; kizunaCombo.numbers["sageSide"] = -1f; kizunaCombo.numbers["takaSide"] = 1.6f; kizunaCombo.numbers["takaBack"] = 0.6f; kizunaCombo.numbers["sphereShare"] = 0.75f; kizunaCombo.numbers["ticks"] = 10f; kizunaCombo.shots = new KizunaCamera.Shot[12] { new KizunaCamera.Shot(0f, KizunaCamera.Anchor.A, new Vector3(2.4f, 1.3f, 3f), new Vector3(0f, 1.9f, 0f), 50f, cut: true), new KizunaCamera.Shot(1.25f, KizunaCamera.Anchor.A, new Vector3(2f, 1.5f, 3.4f), new Vector3(0f, 2.3f, 0f), 52f), new KizunaCamera.Shot(1.3f, KizunaCamera.Anchor.B, new Vector3(-0.4f, 1.6f, 1.15f), new Vector3(0.05f, 1.56f, 0f), 30f, cut: true), new KizunaCamera.Shot(1.93f, KizunaCamera.Anchor.B, new Vector3(-0.32f, 1.6f, 0.95f), new Vector3(0.05f, 1.57f, 0f), 28f), new KizunaCamera.Shot(1.95f, KizunaCamera.Anchor.Mid, new Vector3(-5f, 2.4f, 3.5f), new Vector3(-0.3f, 2.2f, 0f), 55f, cut: true), new KizunaCamera.Shot(2.57f, KizunaCamera.Anchor.Mid, new Vector3(-4f, 2.5f, 3.6f), new Vector3(-0.4f, 2.3f, 0f), 48f), new KizunaCamera.Shot(2.6f, KizunaCamera.Anchor.Mid, new Vector3(0.6f, 2.6f, -4.5f), new Vector3(0f, 2f, 10f), 58f, cut: true), new KizunaCamera.Shot(3.05f, KizunaCamera.Anchor.Mid, new Vector3(0.6f, 3.2f, -5.5f), new Vector3(0f, 1.5f, 14f), 60f), new KizunaCamera.Shot(3.1f, KizunaCamera.Anchor.Target, new Vector3(-17f, 8f, -15f), new Vector3(0f, 3f, 0f), 62f, cut: true), new KizunaCamera.Shot(4.15f, KizunaCamera.Anchor.Target, new Vector3(-19f, 9f, -17f), new Vector3(0f, 3.5f, 0f), 64f), new KizunaCamera.Shot(4.2f, KizunaCamera.Anchor.Target, new Vector3(0f, 3f, -21f), new Vector3(0f, 3f, 0f), 64f, cut: true), new KizunaCamera.Shot(5f, KizunaCamera.Anchor.Target, new Vector3(0f, 3.6f, -23f), new Vector3(0f, 3f, 0f), 62f) }; return kizunaCombo; } private static KizunaCombo RasenTarenganCombo() { //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02cb: Unknown result type (might be due to invalid IL or missing references) //IL_02df: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03cb: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0420: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_0461: Unknown result type (might be due to invalid IL or missing references) //IL_048e: Unknown result type (might be due to invalid IL or missing references) //IL_04a2: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_04e3: Unknown result type (might be due to invalid IL or missing references) //IL_0510: Unknown result type (might be due to invalid IL or missing references) //IL_0524: Unknown result type (might be due to invalid IL or missing references) //IL_0551: Unknown result type (might be due to invalid IL or missing references) //IL_0565: Unknown result type (might be due to invalid IL or missing references) //IL_0592: Unknown result type (might be due to invalid IL or missing references) //IL_05a6: Unknown result type (might be due to invalid IL or missing references) KizunaCombo kizunaCombo = new KizunaCombo { id = "RasenTarengan", a = "NarutoShippudenBody", b = "NarutoSageBody", duration = 5f }; kizunaCombo.numbers["seal"] = 0.05f; kizunaCombo.numbers["clones"] = 0.3f; kizunaCombo.numbers["sage"] = 1.1f; kizunaCombo.numbers["form"] = 1.5f; kizunaCombo.numbers["waves"] = 1.9f; kizunaCombo.numbers["waveInterval"] = 0.25f; kizunaCombo.numbers["leap"] = 2.5f; kizunaCombo.numbers["apex"] = 3.2f; kizunaCombo.numbers["dive"] = 3.55f; kizunaCombo.numbers["impact"] = 3.9f; kizunaCombo.numbers["standDistance"] = 9f; kizunaCombo.numbers["standSide"] = 1.3f; kizunaCombo.numbers["fanRadius"] = 6f; kizunaCombo.numbers["fanArc"] = 150f; kizunaCombo.numbers["cloneCharge"] = 0.3f; kizunaCombo.numbers["apexHeight"] = 8f; kizunaCombo.numbers["cloneDamage"] = 2.25f; kizunaCombo.numbers["cloneRadius"] = 6f; kizunaCombo.shots = new KizunaCamera.Shot[16] { new KizunaCamera.Shot(0f, KizunaCamera.Anchor.Mid, new Vector3(0f, 1f, 4.6f), new Vector3(0f, 1.3f, 0f), 50f, cut: true), new KizunaCamera.Shot(0.28f, KizunaCamera.Anchor.Mid, new Vector3(0f, 1.1f, 4.1f), new Vector3(0f, 1.3f, 0f), 50f), new KizunaCamera.Shot(0.32f, KizunaCamera.Anchor.Target, new Vector3(0f, 9f, -17f), new Vector3(0f, 1f, -1f), 60f, cut: true), new KizunaCamera.Shot(1.05f, KizunaCamera.Anchor.Target, new Vector3(0f, 8.5f, -16f), new Vector3(0f, 1f, -1f), 60f), new KizunaCamera.Shot(1.08f, KizunaCamera.Anchor.B, new Vector3(-1f, 1.65f, 2.2f), new Vector3(0f, 1.55f, 0f), 38f, cut: true), new KizunaCamera.Shot(1.45f, KizunaCamera.Anchor.B, new Vector3(-0.9f, 1.6f, 2f), new Vector3(0f, 1.55f, 0f), 36f), new KizunaCamera.Shot(1.5f, KizunaCamera.Anchor.Target, new Vector3(-11f, 2.5f, -4f), new Vector3(0f, 1.2f, -1f), 55f, cut: true), new KizunaCamera.Shot(1.88f, KizunaCamera.Anchor.Target, new Vector3(-10.5f, 2.4f, -3f), new Vector3(0f, 1.2f, -1f)), new KizunaCamera.Shot(1.9f, KizunaCamera.Anchor.Target, new Vector3(6f, 1.3f, 5f), new Vector3(0f, 1f, -2f), 64f, cut: true), new KizunaCamera.Shot(2.48f, KizunaCamera.Anchor.Target, new Vector3(6.5f, 1.6f, 6f), new Vector3(0f, 1f, -2f), 64f), new KizunaCamera.Shot(2.5f, KizunaCamera.Anchor.Target, new Vector3(-5f, 0.8f, -12f), new Vector3(0f, 6f, -4f), 62f, cut: true), new KizunaCamera.Shot(3.15f, KizunaCamera.Anchor.Target, new Vector3(-5f, 0.8f, -11f), new Vector3(0f, 8.5f, -1f), 62f), new KizunaCamera.Shot(3.2f, KizunaCamera.Anchor.Target, new Vector3(-3f, 0.6f, -5f), new Vector3(0f, 8.8f, -0.5f), 60f, cut: true), new KizunaCamera.Shot(3.53f, KizunaCamera.Anchor.Target, new Vector3(-2.8f, 0.6f, -4.6f), new Vector3(0f, 8.8f, -0.5f), 60f), new KizunaCamera.Shot(3.57f, KizunaCamera.Anchor.Target, new Vector3(-14f, 6f, -13f), new Vector3(0f, 2f, 0f), 62f, cut: true), new KizunaCamera.Shot(4.4f, KizunaCamera.Anchor.Target, new Vector3(-15f, 7f, -14f), new Vector3(0f, 2f, 0f), 62f) }; return kizunaCombo; } private static KizunaCombo HawkCrossCutCombo() { //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0221: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02f5: Unknown result type (might be due to invalid IL or missing references) //IL_0321: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_0375: Unknown result type (might be due to invalid IL or missing references) //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_03b5: Unknown result type (might be due to invalid IL or missing references) //IL_03e2: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: Unknown result type (might be due to invalid IL or missing references) //IL_0423: Unknown result type (might be due to invalid IL or missing references) //IL_0437: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_0478: Unknown result type (might be due to invalid IL or missing references) KizunaCombo kizunaCombo = new KizunaCombo { id = "HawkCrossCut", a = "SasukeShippudenBody", b = "SasukeMangekyouBody", duration = 4.5f }; kizunaCombo.numbers["flashA"] = 0.15f; kizunaCombo.numbers["flashB"] = 0.55f; kizunaCombo.numbers["cuts"] = 1f; kizunaCombo.numbers["cutInterval"] = 0.3f; kizunaCombo.numbers["cutCount"] = 8f; kizunaCombo.numbers["sheathe"] = 3.45f; kizunaCombo.numbers["cross"] = 3.6f; kizunaCombo.numbers["burst"] = 3.95f; kizunaCombo.numbers["backOffset"] = 0.4f; kizunaCombo.numbers["startBefore"] = 6f; kizunaCombo.numbers["cutRadius"] = 6f; kizunaCombo.numbers["cutStep"] = 112.5f; kizunaCombo.numbers["cutDamage"] = 1.2f; kizunaCombo.numbers["cutReach"] = 7.5f; kizunaCombo.numbers["endSide"] = 4f; kizunaCombo.numbers["endBefore"] = 1f; kizunaCombo.shots = new KizunaCamera.Shot[12] { new KizunaCamera.Shot(0f, KizunaCamera.Anchor.Mid, new Vector3(0f, 1.1f, -4.3f), new Vector3(0f, 1.15f, 0f), 50f, cut: true), new KizunaCamera.Shot(0.13f, KizunaCamera.Anchor.Mid, new Vector3(0f, 1.1f, -4.1f), new Vector3(0f, 1.15f, 0f), 50f), new KizunaCamera.Shot(0.15f, KizunaCamera.Anchor.Mid, new Vector3(-1.35f, 1.58f, 0.35f), new Vector3(-0.4f, 1.55f, 0f), 30f, cut: true), new KizunaCamera.Shot(0.52f, KizunaCamera.Anchor.Mid, new Vector3(-1.25f, 1.58f, 0.3f), new Vector3(-0.4f, 1.55f, 0f), 30f), new KizunaCamera.Shot(0.55f, KizunaCamera.Anchor.Mid, new Vector3(1.35f, 1.58f, 0.35f), new Vector3(0.4f, 1.55f, 0f), 30f, cut: true), new KizunaCamera.Shot(0.97f, KizunaCamera.Anchor.Mid, new Vector3(1.25f, 1.58f, 0.3f), new Vector3(0.4f, 1.55f, 0f), 30f), new KizunaCamera.Shot(1f, KizunaCamera.Anchor.Target, new Vector3(0f, 11f, -10f), new Vector3(0f, 0.5f, 0f), 62f, cut: true), new KizunaCamera.Shot(3.4f, KizunaCamera.Anchor.Target, new Vector3(-5f, 11.5f, -8.5f), new Vector3(0f, 0.5f, 0f), 62f), new KizunaCamera.Shot(3.45f, KizunaCamera.Anchor.Target, new Vector3(0f, 1.4f, -10.5f), new Vector3(0f, 1.6f, 0f), 58f, cut: true), new KizunaCamera.Shot(3.92f, KizunaCamera.Anchor.Target, new Vector3(0f, 1.35f, -10f), new Vector3(0f, 1.6f, 0f), 58f), new KizunaCamera.Shot(3.95f, KizunaCamera.Anchor.Target, new Vector3(0f, 2.3f, -13.5f), new Vector3(0f, 2f, 0f), 64f, cut: true), new KizunaCamera.Shot(4.5f, KizunaCamera.Anchor.Target, new Vector3(0f, 2.6f, -14.5f), new Vector3(0f, 2f, 0f), 64f) }; return kizunaCombo; } private static KizunaCombo TeamSevenFumaCombo() { //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02e2: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_0322: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Unknown result type (might be due to invalid IL or missing references) //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_0424: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Unknown result type (might be due to invalid IL or missing references) //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Unknown result type (might be due to invalid IL or missing references) KizunaCombo kizunaCombo = new KizunaCombo { id = "TeamSevenFuma", a = "NarutoShippudenBody", b = "SasukeMangekyouBody", duration = 4.5f }; kizunaCombo.numbers["henge"] = 0.1f; kizunaCombo.numbers["throw"] = 0.45f; kizunaCombo.numbers["release"] = 0.8f; kizunaCombo.numbers["drill"] = 3f; kizunaCombo.numbers["impact"] = 3.35f; kizunaCombo.numbers["burst"] = 3.75f; kizunaCombo.numbers["standDistance"] = 11f; kizunaCombo.numbers["narutoSide"] = -1f; kizunaCombo.numbers["takaSide"] = 1.2f; kizunaCombo.numbers["loopRadius"] = 6f; kizunaCombo.numbers["loopTurns"] = 1.25f; kizunaCombo.numbers["flightHeight"] = 0.6f; kizunaCombo.numbers["maxHits"] = 8f; kizunaCombo.numbers["fumaDamage"] = 4f; kizunaCombo.numbers["drillHeight"] = 3f; kizunaCombo.radius = 10f; kizunaCombo.damageCoefficient = 29f; kizunaCombo.shots = new KizunaCamera.Shot[12] { new KizunaCamera.Shot(0f, KizunaCamera.Anchor.Mid, new Vector3(0f, 1.4f, 4.2f), new Vector3(0f, 1.3f, 0f), 50f, cut: true), new KizunaCamera.Shot(0.42f, KizunaCamera.Anchor.Mid, new Vector3(0f, 1.4f, 3.7f), new Vector3(0f, 1.3f, 0f), 50f), new KizunaCamera.Shot(0.45f, KizunaCamera.Anchor.B, new Vector3(2.8f, 1.5f, 1.8f), new Vector3(0f, 1.35f, 0.3f), 46f, cut: true), new KizunaCamera.Shot(0.82f, KizunaCamera.Anchor.B, new Vector3(2.6f, 1.5f, 1.6f), new Vector3(0f, 1.35f, 0.3f), 46f), new KizunaCamera.Shot(0.85f, KizunaCamera.Anchor.A, new Vector3(1.5f, 1.6f, -2.2f), new Vector3(0f, 1f, 0f), 42f, cut: true), new KizunaCamera.Shot(1.4f, KizunaCamera.Anchor.A, new Vector3(1.8f, 1.8f, -2.6f), new Vector3(0f, 1f, 0f), 44f), new KizunaCamera.Shot(1.45f, KizunaCamera.Anchor.A, new Vector3(0f, 3.8f, -6.5f), new Vector3(0f, 1f, 2f), 60f, cut: true), new KizunaCamera.Shot(2.95f, KizunaCamera.Anchor.A, new Vector3(0f, 4.2f, -7f), new Vector3(0f, 1f, 2f), 60f), new KizunaCamera.Shot(3f, KizunaCamera.Anchor.Target, new Vector3(-4f, 1.2f, -6f), new Vector3(0f, 2.8f, 0f), 58f, cut: true), new KizunaCamera.Shot(3.72f, KizunaCamera.Anchor.Target, new Vector3(-4.5f, 1.3f, -6.5f), new Vector3(0f, 1.6f, 0f), 58f), new KizunaCamera.Shot(3.75f, KizunaCamera.Anchor.Target, new Vector3(-11f, 6f, -13f), new Vector3(0f, 1.5f, 0f), 62f, cut: true), new KizunaCamera.Shot(4.5f, KizunaCamera.Anchor.Target, new Vector3(-12f, 6.5f, -14f), new Vector3(0f, 1.5f, 0f), 62f) }; return kizunaCombo; } public static float GoemonFront(KizunaCombo combo, float time) { float num = Mathf.Clamp01(time / Mathf.Max(0.1f, combo["flood"] - combo["wave"])); return Mathf.Lerp(0f - combo["standDistance"] + combo["waveStart"], combo["waveBeyond"], num); } private static KizunaCombo GoemonCombo() { //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_0418: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_0459: Unknown result type (might be due to invalid IL or missing references) KizunaCombo kizunaCombo = new KizunaCombo { id = "Goemon", a = "NarutoSageBody", b = "SasukeShippudenBody", duration = 4.7f, radius = 14f }; kizunaCombo.numbers["toads"] = 0.1f; kizunaCombo.numbers["seals"] = 0.7f; kizunaCombo.numbers["oil"] = 1.25f; kizunaCombo.numbers["breath"] = 1.5f; kizunaCombo.numbers["wave"] = 1.6f; kizunaCombo.numbers["flood"] = 2.5f; kizunaCombo.numbers["burst"] = 3.6f; kizunaCombo.numbers["standDistance"] = 13f; kizunaCombo.numbers["standSide"] = 1.4f; kizunaCombo.numbers["waveStart"] = 3f; kizunaCombo.numbers["waveBeyond"] = 8f; kizunaCombo.numbers["waveWidth"] = 14f; kizunaCombo.numbers["ticks"] = 6f; kizunaCombo.numbers["tickDamage"] = 1f; kizunaCombo.shots = new KizunaCamera.Shot[12] { new KizunaCamera.Shot(0f, KizunaCamera.Anchor.A, new Vector3(0.7f, 1.9f, 3.8f), new Vector3(0f, 1.55f, 0f), 46f, cut: true), new KizunaCamera.Shot(0.67f, KizunaCamera.Anchor.A, new Vector3(0.5f, 1.8f, 3.2f), new Vector3(0f, 1.55f, 0f), 46f), new KizunaCamera.Shot(0.7f, KizunaCamera.Anchor.B, new Vector3(-1.6f, 1.5f, 2.4f), new Vector3(0f, 1.45f, 0f), 42f, cut: true), new KizunaCamera.Shot(1.22f, KizunaCamera.Anchor.B, new Vector3(-1.4f, 1.5f, 2.2f), new Vector3(0f, 1.45f, 0f), 42f), new KizunaCamera.Shot(1.25f, KizunaCamera.Anchor.Mid, new Vector3(5.5f, 1.3f, 4.5f), new Vector3(0f, 1.6f, 0.5f), 58f, cut: true), new KizunaCamera.Shot(1.57f, KizunaCamera.Anchor.Mid, new Vector3(6f, 1.4f, 4f), new Vector3(0f, 1.6f, 1.5f), 58f), new KizunaCamera.Shot(1.6f, KizunaCamera.Anchor.Mid, new Vector3(0.6f, 4.5f, -6f), new Vector3(0f, 0.5f, 10f), 62f, cut: true), new KizunaCamera.Shot(2.47f, KizunaCamera.Anchor.Mid, new Vector3(0.6f, 5.5f, -7.5f), new Vector3(0f, 0.5f, 13f), 62f), new KizunaCamera.Shot(2.5f, KizunaCamera.Anchor.Target, new Vector3(-18f, 7f, -7f), new Vector3(0f, 1.5f, 0f), 62f, cut: true), new KizunaCamera.Shot(3.57f, KizunaCamera.Anchor.Target, new Vector3(-19.5f, 8f, -8f), new Vector3(0f, 2f, 0f), 62f), new KizunaCamera.Shot(3.6f, KizunaCamera.Anchor.Target, new Vector3(0f, 3.2f, -21f), new Vector3(0f, 4f, 0f), 64f, cut: true), new KizunaCamera.Shot(4.7f, KizunaCamera.Anchor.Target, new Vector3(0f, 3.8f, -23f), new Vector3(0f, 4f, 0f), 64f) }; return kizunaCombo; } private static KizunaCombo DoubleRasenganCombo() { //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) KizunaCombo kizunaCombo = new KizunaCombo { id = "DoubleRasengan", a = "NarutoShippudenBody", b = "MinatoBody", duration = 4.6f, radius = 12f, damageCoefficient = 32f }; kizunaCombo.numbers["throw"] = 0.1f; kizunaCombo.numbers["form"] = 0.55f; kizunaCombo.numbers["vanish"] = 1.5f; kizunaCombo.numbers["appear"] = 1.6f; kizunaCombo.numbers["clash"] = 1.95f; kizunaCombo.numbers["burst"] = 3f; kizunaCombo.numbers["standDistance"] = 9f; kizunaCombo.numbers["narutoSide"] = -0.6f; kizunaCombo.numbers["minatoSide"] = 0.15f; kizunaCombo.numbers["minatoBack"] = 0.45f; kizunaCombo.numbers["kunaiSide"] = 3.4f; kizunaCombo.numbers["clashSide"] = 1f; kizunaCombo.numbers["kunaiFlight"] = 0.35f; kizunaCombo.shots = new KizunaCamera.Shot[10] { new KizunaCamera.Shot(0f, KizunaCamera.Anchor.Mid, new Vector3(0f, 1.4f, 4.2f), new Vector3(0f, 1.3f, 0f), 50f, cut: true), new KizunaCamera.Shot(0.52f, KizunaCamera.Anchor.Mid, new Vector3(0f, 1.4f, 3.7f), new Vector3(0f, 1.3f, 0f), 50f), new KizunaCamera.Shot(0.55f, KizunaCamera.Anchor.Mid, new Vector3(-1.5f, 1f, 2.6f), new Vector3(0f, 1.25f, 0f), 42f, cut: true), new KizunaCamera.Shot(1.47f, KizunaCamera.Anchor.Mid, new Vector3(-1.3f, 1.1f, 2.3f), new Vector3(0f, 1.25f, 0f), 40f), new KizunaCamera.Shot(1.5f, KizunaCamera.Anchor.Target, new Vector3(-9f, 6f, -11f), new Vector3(0f, 1f, 0f), 58f, cut: true), new KizunaCamera.Shot(1.92f, KizunaCamera.Anchor.Target, new Vector3(-9.5f, 6.3f, -11.5f), new Vector3(0f, 1f, 0f), 58f), new KizunaCamera.Shot(1.95f, KizunaCamera.Anchor.Target, new Vector3(0f, 0.8f, -4.8f), new Vector3(0f, 1.3f, 0f), 58f, cut: true), new KizunaCamera.Shot(2.97f, KizunaCamera.Anchor.Target, new Vector3(0f, 0.75f, -4.2f), new Vector3(0f, 1.5f, 0f), 60f), new KizunaCamera.Shot(3f, KizunaCamera.Anchor.Target, new Vector3(-12f, 6f, -14f), new Vector3(0f, 1.5f, 0f), 62f, cut: true), new KizunaCamera.Shot(4.6f, KizunaCamera.Anchor.Target, new Vector3(-13f, 7f, -15f), new Vector3(0f, 1.5f, 0f), 62f) }; return kizunaCombo; } private static KizunaCombo HiraishinRasenShurikenCombo() { //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_0340: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0394: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_0414: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_0455: Unknown result type (might be due to invalid IL or missing references) KizunaCombo kizunaCombo = new KizunaCombo { id = "HiraishinRasenShuriken", a = "NarutoSageBody", b = "MinatoBody", duration = 5f, damageCoefficient = 29f }; kizunaCombo.numbers["form"] = 0.05f; kizunaCombo.numbers["kunai"] = 0.3f; kizunaCombo.numbers["throw"] = 1.4f; kizunaCombo.numbers["release"] = 1.6f; kizunaCombo.numbers["catch"] = 1.9f; kizunaCombo.numbers["hops"] = 2f; kizunaCombo.numbers["hopInterval"] = 0.32f; kizunaCombo.numbers["final"] = 3.3f; kizunaCombo.numbers["burst"] = 3.35f; kizunaCombo.numbers["explode"] = 4.4f; kizunaCombo.numbers["standDistance"] = 14f; kizunaCombo.numbers["sageSide"] = -1f; kizunaCombo.numbers["minatoSide"] = 1.4f; kizunaCombo.numbers["stopCount"] = 4f; kizunaCombo.numbers["stopRadius"] = 8f; kizunaCombo.numbers["kunaiFlight"] = 0.4f; kizunaCombo.numbers["smallDamage"] = 3f; kizunaCombo.numbers["smallRadius"] = 6f; kizunaCombo.numbers["sphereShare"] = 0.7f; kizunaCombo.numbers["ticks"] = 6f; kizunaCombo.shots = new KizunaCamera.Shot[10] { new KizunaCamera.Shot(0f, KizunaCamera.Anchor.Mid, new Vector3(0f, 1.6f, 5f), new Vector3(0f, 1.8f, 0f), 52f, cut: true), new KizunaCamera.Shot(1.37f, KizunaCamera.Anchor.Mid, new Vector3(0f, 1.7f, 4.5f), new Vector3(0f, 1.9f, 0f), 52f), new KizunaCamera.Shot(1.4f, KizunaCamera.Anchor.Mid, new Vector3(0.6f, 2.6f, -4.5f), new Vector3(0f, 2f, 10f), 58f, cut: true), new KizunaCamera.Shot(1.88f, KizunaCamera.Anchor.Mid, new Vector3(0.6f, 3f, -5.2f), new Vector3(0f, 1.6f, 12f), 60f), new KizunaCamera.Shot(1.9f, KizunaCamera.Anchor.Target, new Vector3(0f, 15f, -12f), new Vector3(0f, 0f, 0f), 64f, cut: true), new KizunaCamera.Shot(3.27f, KizunaCamera.Anchor.Target, new Vector3(-4f, 15.5f, -11f), new Vector3(0f, 0f, 0f), 64f), new KizunaCamera.Shot(3.3f, KizunaCamera.Anchor.Target, new Vector3(-15f, 7f, -14f), new Vector3(0f, 3f, 0f), 62f, cut: true), new KizunaCamera.Shot(4.35f, KizunaCamera.Anchor.Target, new Vector3(-17f, 8f, -16f), new Vector3(0f, 3.5f, 0f), 64f), new KizunaCamera.Shot(4.4f, KizunaCamera.Anchor.Target, new Vector3(0f, 3f, -20f), new Vector3(0f, 3f, 0f), 64f, cut: true), new KizunaCamera.Shot(5f, KizunaCamera.Anchor.Target, new Vector3(0f, 3.5f, -22f), new Vector3(0f, 3f, 0f), 62f) }; return kizunaCombo; } private static KizunaCombo LightningCageCombo() { //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due