using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; 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 EntityStates.ClayBoss; using EntityStates.ClayBoss.ClayBossWeapon; using EntityStates.ClayBruiser.Weapon; using EntityStates.ClayBruiserMonster; using EntityStates.Commando; using EntityStates.GolemMonster; using EntityStates.LemurianBruiserMonster; using EntityStates.ParentMonster; using EntityStates.ScavMonster; using EntityStates.Sniper.SniperWeapon; using EntityStates.Squid.SquidWeapon; using EntityStates.Toolbot; using EntityStates.Treebot.Weapon; using HG; using HG.BlendableTypes; using KinematicCharacterController; using Microsoft.CodeAnalysis; using On.RoR2; using R2API; using R2API.Utils; using RoR2; using RoR2.ContentManagement; using RoR2.Projectile; using RoR2.Skills; using RoR2BepInExPack.GameAssetPaths.Version_1_39_0; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("Templar")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+1bd187ecb4eeb5a2a4c01ff8ca3ff170096b8c46")] [assembly: AssemblyProduct("Templar")] [assembly: AssemblyTitle("Templar")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace Templar { public static class Assets { public static AssetBundle MainAssetBundle = null; private static string[] assetNames = new string[0]; public static AssetBundle SecondaryAssetBundle = null; public static Texture templarIcon; public static Texture templarIconOld; public static Sprite iconP; public static Sprite icon1; public static Sprite icon1b; public static Sprite icon1c; public static Sprite icon1d; public static Sprite icon2; public static Sprite icon2b; public static Sprite icon3; public static Sprite icon3b; public static Sprite icon4; public static Sprite icon4b; public static Texture templarSkinTex; public static GameObject clayBombModel; public static GameObject clayMissileModel; public static void Initialize() { if ((Object)(object)MainAssetBundle == (Object)null) { using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Templar.templar"); MainAssetBundle = AssetBundle.LoadFromStream(stream); } assetNames = MainAssetBundle.GetAllAssetNames(); if ((Object)(object)SecondaryAssetBundle == (Object)null) { using Stream stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("Templar.skillbundle"); SecondaryAssetBundle = AssetBundle.LoadFromStream(stream2); } PopulateAssets(); } internal static void PopulateAssets() { if (!Object.op_Implicit((Object)(object)MainAssetBundle)) { Debug.LogError((object)"There is no Main AssetBundle to load assets from."); return; } clayBombModel = MainAssetBundle.LoadAsset("ClayBombModel"); clayMissileModel = MainAssetBundle.LoadAsset("ClayMissileModel"); templarIcon = MainAssetBundle.LoadAsset("TemplarBody"); templarIcon.filterMode = (FilterMode)0; templarIconOld = MainAssetBundle.LoadAsset("TemplarBodyOld"); templarIconOld.filterMode = (FilterMode)0; templarSkinTex = MainAssetBundle.LoadAsset("texTemplarSkin"); if (!Object.op_Implicit((Object)(object)SecondaryAssetBundle)) { Debug.LogError((object)"There is no Secondary AssetBundle to load assets from."); return; } iconP = MainAssetBundle.LoadAsset("TarNewIcon"); icon1 = MainAssetBundle.LoadAsset("MinigunNewIcon"); icon1b = MainAssetBundle.LoadAsset("RifleNewIcon"); icon1c = MainAssetBundle.LoadAsset("RailgunNewIcon"); icon2 = MainAssetBundle.LoadAsset("ClayBombNewIcon"); icon2b = MainAssetBundle.LoadAsset("ShotgunNewIcon"); icon3 = MainAssetBundle.LoadAsset("TarBurstNewIcon"); icon3b = MainAssetBundle.LoadAsset("SidestepIcon"); icon4 = MainAssetBundle.LoadAsset("BazookaNewIcon"); icon4b = MainAssetBundle.LoadAsset("SwapNewIcon"); icon1d = SecondaryAssetBundle.LoadAsset("FlamethrowerIcon"); } } public static class Buffs { internal static BuffDef TemplArmorBuff; internal static BuffDef TemplarstationaryArmorBuff; internal static BuffDef TemplarigniteDebuff; internal static BuffDef TemplarOverdriveBuff; internal static readonly Color CHAR_COLOR2 = new Color(40f / 51f, 0.29411766f, 1f / 17f); internal static List buffDefs = new List(); internal static void RegisterBuffs() { //IL_000b: 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_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: 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_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) TemplArmorBuff = AddNewBuff("TemplArmorBuff", Addressables.LoadAssetAsync((object)"RoR2/Base/RoboBallBoss/bdEngiShield.asset").WaitForCompletion().iconSprite, new Color(0.54f, 0.21f, 0.12f), canStack: false, isDebuff: false); TemplarstationaryArmorBuff = AddNewBuff("TemplarstationaryArmorBuff", Addressables.LoadAssetAsync((object)"RoR2/Base/RoboBallBoss/bdEngiShield.asset").WaitForCompletion().iconSprite, new Color(0.74f, 0.41f, 0.32f), canStack: false, isDebuff: false); TemplarigniteDebuff = AddNewBuff("TemplarScorchedDebuff", Addressables.LoadAssetAsync((object)"RoR2/Base/ArmorReductionOnHit/bdPulverized.asset").WaitForCompletion().iconSprite, new Color(0.3f, 0.3f, 0.3f), canStack: false, isDebuff: true); TemplarOverdriveBuff = AddNewBuff("TemplarOverdriveBuff", Addressables.LoadAssetAsync((object)"RoR2/Base/WarCryOnMultiKill/bdWarCryBuff.asset").WaitForCompletion().iconSprite, new Color(0.84f, 0.51f, 0.42f), canStack: false, isDebuff: false); } internal static BuffDef AddNewBuff(string buffName, Sprite buffIcon, Color buffColor, bool canStack, bool isDebuff) { //IL_0010: 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) BuffDef val = ScriptableObject.CreateInstance(); ((Object)val).name = buffName; val.buffColor = buffColor; val.canStack = canStack; val.isDebuff = isDebuff; val.eliteDef = null; val.iconSprite = buffIcon; buffDefs.Add(val); return val; } } public class ContentPacks : IContentPackProvider { internal static ContentPack contentPack = new ContentPack(); public string identifier => "Lemurian.LemurianContent"; public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args) { contentPack.buffDefs.Add(Buffs.buffDefs.ToArray()); contentPack.skillDefs.Add(Loader.skillDefs.ToArray()); contentPack.skillFamilies.Add(Loader.skillFamilies.ToArray()); contentPack.survivorDefs.Add(Loader.survivorDefs.ToArray()); contentPack.bodyPrefabs.Add(Loader.bodyPrefabs.ToArray()); contentPack.masterPrefabs.Add(Loader.masterPrefabs.ToArray()); contentPack.projectilePrefabs.Add(Loader.projectilePrefabs.ToArray()); contentPack.entityStateTypes.Add(Loader.entityStates.ToArray()); args.ReportProgress(1f); yield break; } public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args) { ContentPack.Copy(contentPack, args.output); yield break; } public IEnumerator FinalizeAsync(FinalizeAsyncArgs args) { args.ReportProgress(1f); yield break; } } public static class Hook { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_RecalculateStats <>9__0_0; public static hook_TakeDamage <>9__0_1; internal void b__0_0(orig_RecalculateStats orig, CharacterBody self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && self.HasBuff(Buffs.TemplArmorBuff)) { Reflection.SetPropertyValue((object)self, "armor", self.armor + 50f); } if (Object.op_Implicit((Object)(object)self) && self.HasBuff(Buffs.TemplarstationaryArmorBuff)) { Reflection.SetPropertyValue((object)self, "armor", self.armor + 100f); } if (Object.op_Implicit((Object)(object)self) && self.HasBuff(Buffs.TemplarOverdriveBuff)) { Reflection.SetPropertyValue((object)self, "regen", self.regen * 12f); Reflection.SetPropertyValue((object)self, "attackSpeed", self.attackSpeed * 1.5f); } if (Object.op_Implicit((Object)(object)self) && self.HasBuff(Buffs.TemplarigniteDebuff)) { Reflection.SetPropertyValue((object)self, "armor", self.armor - 45f); Reflection.SetPropertyValue((object)self, "moveSpeed", self.moveSpeed * 0.8f); } } internal void b__0_1(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo) { //IL_004c: 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_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: 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_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Expected O, but got Unknown //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: 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_0210: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_022e: 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_023a: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_024a: 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_0251: 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_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026e: 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_0279: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Expected O, but got Unknown //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Expected O, but got Unknown //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Invalid comparison between Unknown and I4 orig.Invoke(self, damageInfo); if (!Object.op_Implicit((Object)(object)damageInfo.inflictor) || !Object.op_Implicit((Object)(object)self) || !Object.op_Implicit((Object)(object)damageInfo.attacker) || !Object.op_Implicit((Object)(object)damageInfo.attacker.GetComponent()) || damageInfo.attacker.GetComponent().bodyIndex != Templar.templarBodyIndex || (int)DamageTypeCombo.op_Implicit(damageInfo.damageType & DamageTypeCombo.op_Implicit((DamageType)262144)) != 262144 || !((Component)self).GetComponent().HasBuff(Buffs.ClayGoo) || ((Component)self).GetComponent().HasBuff(Buffs.TemplarigniteDebuff)) { return; } ((Component)self).GetComponent().AddTimedBuff(Buffs.TemplarigniteDebuff, 12f); if (Object.op_Implicit((Object)(object)((Component)self).GetComponent().modelLocator)) { Transform modelTransform = ((Component)self).GetComponent().modelLocator.modelTransform; if (Object.op_Implicit((Object)(object)((Component)modelTransform).GetComponent())) { TemporaryOverlay val = ((Component)modelTransform).gameObject.AddComponent(); val.duration = 16f; val.animateShaderAlpha = true; val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val.destroyComponentOnEnd = true; val.originalMaterial = LegacyResourcesAPI.Load("Materials/matDoppelganger"); val.AddToCharacerModel(((Component)modelTransform).GetComponent()); } BlastAttack val2 = new BlastAttack { attacker = damageInfo.inflictor, inflictor = damageInfo.inflictor, teamIndex = (TeamIndex)1, baseForce = 0f, position = ((Component)self).transform.position, radius = 12f, falloffModel = (FalloffModel)0, crit = damageInfo.crit, baseDamage = damageInfo.damage * 0.2f, procCoefficient = damageInfo.procCoefficient }; val2.damageType |= DamageTypeCombo.op_Implicit((DamageType)32); val2.Fire(); BlastAttack val3 = new BlastAttack { attacker = damageInfo.inflictor, inflictor = damageInfo.inflictor, teamIndex = (TeamIndex)1, baseForce = 0f, position = ((Component)self).transform.position, radius = 16f, falloffModel = (FalloffModel)0, crit = false, baseDamage = 0f, procCoefficient = 0f, damageType = DamageTypeCombo.op_Implicit((DamageType)262144) }; val3.Fire(); EffectManager.SpawnEffect(LegacyResourcesAPI.Load("Prefabs/Effects/ImpactEffects/MagmaOrbExplosion"), new EffectData { origin = ((Component)self).transform.position, scale = 16f }, true); } } } internal static void HookSetup() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown //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: Expected O, but got Unknown object obj = <>c.<>9__0_0; if (obj == null) { hook_RecalculateStats val = delegate(orig_RecalculateStats orig, CharacterBody self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && self.HasBuff(Buffs.TemplArmorBuff)) { Reflection.SetPropertyValue((object)self, "armor", self.armor + 50f); } if (Object.op_Implicit((Object)(object)self) && self.HasBuff(Buffs.TemplarstationaryArmorBuff)) { Reflection.SetPropertyValue((object)self, "armor", self.armor + 100f); } if (Object.op_Implicit((Object)(object)self) && self.HasBuff(Buffs.TemplarOverdriveBuff)) { Reflection.SetPropertyValue((object)self, "regen", self.regen * 12f); Reflection.SetPropertyValue((object)self, "attackSpeed", self.attackSpeed * 1.5f); } if (Object.op_Implicit((Object)(object)self) && self.HasBuff(Buffs.TemplarigniteDebuff)) { Reflection.SetPropertyValue((object)self, "armor", self.armor - 45f); Reflection.SetPropertyValue((object)self, "moveSpeed", self.moveSpeed * 0.8f); } }; <>c.<>9__0_0 = val; obj = (object)val; } CharacterBody.RecalculateStats += (hook_RecalculateStats)obj; object obj2 = <>c.<>9__0_1; if (obj2 == null) { hook_TakeDamage val2 = delegate(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo) { //IL_004c: 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_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: 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_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Expected O, but got Unknown //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: 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_0210: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_022e: 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_023a: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_024a: 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_0251: 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_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026e: 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_0279: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Expected O, but got Unknown //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Expected O, but got Unknown //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Invalid comparison between Unknown and I4 orig.Invoke(self, damageInfo); if (Object.op_Implicit((Object)(object)damageInfo.inflictor) && Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)damageInfo.attacker) && Object.op_Implicit((Object)(object)damageInfo.attacker.GetComponent()) && damageInfo.attacker.GetComponent().bodyIndex == Templar.templarBodyIndex && (int)DamageTypeCombo.op_Implicit(damageInfo.damageType & DamageTypeCombo.op_Implicit((DamageType)262144)) == 262144 && ((Component)self).GetComponent().HasBuff(Buffs.ClayGoo) && !((Component)self).GetComponent().HasBuff(Buffs.TemplarigniteDebuff)) { ((Component)self).GetComponent().AddTimedBuff(Buffs.TemplarigniteDebuff, 12f); if (Object.op_Implicit((Object)(object)((Component)self).GetComponent().modelLocator)) { Transform modelTransform = ((Component)self).GetComponent().modelLocator.modelTransform; if (Object.op_Implicit((Object)(object)((Component)modelTransform).GetComponent())) { TemporaryOverlay val3 = ((Component)modelTransform).gameObject.AddComponent(); val3.duration = 16f; val3.animateShaderAlpha = true; val3.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val3.destroyComponentOnEnd = true; val3.originalMaterial = LegacyResourcesAPI.Load("Materials/matDoppelganger"); val3.AddToCharacerModel(((Component)modelTransform).GetComponent()); } BlastAttack val4 = new BlastAttack { attacker = damageInfo.inflictor, inflictor = damageInfo.inflictor, teamIndex = (TeamIndex)1, baseForce = 0f, position = ((Component)self).transform.position, radius = 12f, falloffModel = (FalloffModel)0, crit = damageInfo.crit, baseDamage = damageInfo.damage * 0.2f, procCoefficient = damageInfo.procCoefficient }; val4.damageType |= DamageTypeCombo.op_Implicit((DamageType)32); val4.Fire(); BlastAttack val5 = new BlastAttack { attacker = damageInfo.inflictor, inflictor = damageInfo.inflictor, teamIndex = (TeamIndex)1, baseForce = 0f, position = ((Component)self).transform.position, radius = 16f, falloffModel = (FalloffModel)0, crit = false, baseDamage = 0f, procCoefficient = 0f, damageType = DamageTypeCombo.op_Implicit((DamageType)262144) }; val5.Fire(); EffectManager.SpawnEffect(LegacyResourcesAPI.Load("Prefabs/Effects/ImpactEffects/MagmaOrbExplosion"), new EffectData { origin = ((Component)self).transform.position, scale = 16f }, true); } } }; <>c.<>9__0_1 = val2; obj2 = (object)val2; } HealthComponent.TakeDamage += (hook_TakeDamage)obj2; } } [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.mwmw.Templar", "Templar", "1.0.1")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Loader : BaseUnityPlugin { internal static List projectilePrefabs = new List(); internal static List survivorDefs = new List(); public static List bodyPrefabs = new List(); internal static List masterPrefabs = new List(); internal static List entityStates = new List(); internal static List skillDefs = new List(); internal static List skillFamilies = new List(); public static bool IsBUDefined { get; private set; } public void Awake() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Expected O, but got Unknown Log.Init(((BaseUnityPlugin)this).Logger); ReadConfig(); Assets.Initialize(); Buffs.RegisterBuffs(); Projectiles.ProjectileSetup(); Hook.HookSetup(); Templar.TemplarSetup(); TemplarItemDisplays.InitializeItemDisplays(); ContentManager.collectContentPackProviders += new CollectContentPackProvidersDelegate(ContentManager_collectContentPackProviders); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(AddItemDisplays)); } public void ReadConfig() { //IL_0011: 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_0030: Expected O, but got Unknown //IL_0030: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Expected O, but got Unknown //IL_0064: Expected O, but got Unknown //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Expected O, but got Unknown //IL_0098: Expected O, but got Unknown //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown //IL_00cc: Expected O, but got Unknown //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Expected O, but got Unknown //IL_0100: Expected O, but got Unknown //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Expected O, but got Unknown //IL_0134: Expected O, but got Unknown //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Expected O, but got Unknown //IL_0168: Expected O, but got Unknown //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Expected O, but got Unknown //IL_0198: Expected O, but got Unknown //IL_01ad: 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_01cc: Expected O, but got Unknown //IL_01cc: Expected O, but got Unknown //IL_01e1: 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_0200: Expected O, but got Unknown //IL_0200: Expected O, but got Unknown //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Expected O, but got Unknown //IL_0234: Expected O, but got Unknown //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Expected O, but got Unknown //IL_0268: Expected O, but got Unknown //IL_027d: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Expected O, but got Unknown //IL_029c: Expected O, but got Unknown //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Expected O, but got Unknown //IL_02d0: Expected O, but got Unknown //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Expected O, but got Unknown //IL_0304: Expected O, but got Unknown //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Expected O, but got Unknown //IL_0338: Expected O, but got Unknown //IL_034d: 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_036c: Expected O, but got Unknown //IL_036c: Expected O, but got Unknown //IL_0381: 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_03a0: Expected O, but got Unknown //IL_03a0: Expected O, but got Unknown //IL_03b5: Unknown result type (might be due to invalid IL or missing references) //IL_03ca: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Expected O, but got Unknown //IL_03d4: Expected O, but got Unknown //IL_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0408: Expected O, but got Unknown //IL_0408: Expected O, but got Unknown //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Expected O, but got Unknown //IL_0438: Expected O, but got Unknown //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_0462: Unknown result type (might be due to invalid IL or missing references) //IL_046c: Expected O, but got Unknown //IL_046c: Expected O, but got Unknown //IL_0481: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_04a0: Expected O, but got Unknown //IL_04a0: Expected O, but got Unknown //IL_04b5: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Expected O, but got Unknown //IL_04d4: Expected O, but got Unknown //IL_04e9: Unknown result type (might be due to invalid IL or missing references) //IL_04fe: Unknown result type (might be due to invalid IL or missing references) //IL_0508: Expected O, but got Unknown //IL_0508: Expected O, but got Unknown //IL_051d: Unknown result type (might be due to invalid IL or missing references) //IL_0532: Unknown result type (might be due to invalid IL or missing references) //IL_053c: Expected O, but got Unknown //IL_053c: Expected O, but got Unknown //IL_0551: Unknown result type (might be due to invalid IL or missing references) //IL_0562: Unknown result type (might be due to invalid IL or missing references) //IL_056c: Expected O, but got Unknown //IL_056c: Expected O, but got Unknown //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_0596: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Expected O, but got Unknown //IL_05a0: Expected O, but got Unknown //IL_05b5: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05d0: Expected O, but got Unknown //IL_05d0: Expected O, but got Unknown //IL_05e5: Unknown result type (might be due to invalid IL or missing references) //IL_05fa: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Expected O, but got Unknown //IL_0604: Expected O, but got Unknown //IL_0619: Unknown result type (might be due to invalid IL or missing references) //IL_062e: Unknown result type (might be due to invalid IL or missing references) //IL_0638: Expected O, but got Unknown //IL_0638: Expected O, but got Unknown //IL_064d: Unknown result type (might be due to invalid IL or missing references) //IL_0662: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Expected O, but got Unknown //IL_066c: Expected O, but got Unknown //IL_0681: Unknown result type (might be due to invalid IL or missing references) //IL_0692: Unknown result type (might be due to invalid IL or missing references) //IL_069c: Expected O, but got Unknown //IL_069c: Expected O, but got Unknown //IL_06b1: Unknown result type (might be due to invalid IL or missing references) //IL_06c6: Unknown result type (might be due to invalid IL or missing references) //IL_06d0: Expected O, but got Unknown //IL_06d0: Expected O, but got Unknown //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06f6: Unknown result type (might be due to invalid IL or missing references) //IL_0700: Expected O, but got Unknown //IL_0700: Expected O, but got Unknown //IL_0715: Unknown result type (might be due to invalid IL or missing references) //IL_072a: Unknown result type (might be due to invalid IL or missing references) //IL_0734: Expected O, but got Unknown //IL_0734: Expected O, but got Unknown //IL_0749: Unknown result type (might be due to invalid IL or missing references) //IL_075a: Unknown result type (might be due to invalid IL or missing references) //IL_0764: Expected O, but got Unknown //IL_0764: Expected O, but got Unknown //IL_0779: Unknown result type (might be due to invalid IL or missing references) //IL_078e: Unknown result type (might be due to invalid IL or missing references) //IL_0798: Expected O, but got Unknown //IL_0798: Expected O, but got Unknown //IL_07ad: Unknown result type (might be due to invalid IL or missing references) //IL_07be: Unknown result type (might be due to invalid IL or missing references) //IL_07c8: Expected O, but got Unknown //IL_07c8: Expected O, but got Unknown //IL_07dd: Unknown result type (might be due to invalid IL or missing references) //IL_07f2: Unknown result type (might be due to invalid IL or missing references) //IL_07fc: Expected O, but got Unknown //IL_07fc: Expected O, but got Unknown //IL_0811: Unknown result type (might be due to invalid IL or missing references) //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_0830: Expected O, but got Unknown //IL_0830: Expected O, but got Unknown //IL_0845: Unknown result type (might be due to invalid IL or missing references) //IL_085a: Unknown result type (might be due to invalid IL or missing references) //IL_0864: Expected O, but got Unknown //IL_0864: Expected O, but got Unknown //IL_0879: Unknown result type (might be due to invalid IL or missing references) //IL_088e: Unknown result type (might be due to invalid IL or missing references) //IL_0898: Expected O, but got Unknown //IL_0898: Expected O, but got Unknown //IL_08ad: Unknown result type (might be due to invalid IL or missing references) //IL_08c2: Unknown result type (might be due to invalid IL or missing references) //IL_08cc: Expected O, but got Unknown //IL_08cc: Expected O, but got Unknown Templar.baseDamage = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("1 - Templar", "Damage"), 12f, new ConfigDescription("Base damage", (AcceptableValueBase)null, Array.Empty())); Templar.damageGrowth = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("1 - Templar", "Damage growth"), 2.4f, new ConfigDescription("Damage per level", (AcceptableValueBase)null, Array.Empty())); Templar.baseHealth = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("1 - Templar", "Health"), 200f, new ConfigDescription("Base health", (AcceptableValueBase)null, Array.Empty())); Templar.healthGrowth = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("1 - Templar", "Health growth"), 48f, new ConfigDescription("Health per level", (AcceptableValueBase)null, Array.Empty())); Templar.baseArmor = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("1 - Templar", "Armor"), 15f, new ConfigDescription("Base armor", (AcceptableValueBase)null, Array.Empty())); Templar.baseRegen = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("1 - Templar", "Regen"), 0.5f, new ConfigDescription("Base HP regen", (AcceptableValueBase)null, Array.Empty())); Templar.regenGrowth = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("1 - Templar", "Regen growth"), 0.5f, new ConfigDescription("HP regen per level", (AcceptableValueBase)null, Array.Empty())); Templar.bazookaGoBoom = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("01 - Templar", "Mini Bazooka Primary"), false, new ConfigDescription("Enables Bazooka Mk.2", (AcceptableValueBase)null, Array.Empty())); Templar.minigunDamageCoefficient = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("2 - Minigun", "Damage"), 0.4f, new ConfigDescription("Minigun damage per bullet", (AcceptableValueBase)null, Array.Empty())); Templar.minigunProcCoefficient = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("2 - Minigun", "Proc Coefficient"), 0.4f, new ConfigDescription("Minigun proc coefficient per bullet", (AcceptableValueBase)null, Array.Empty())); Templar.minigunForce = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("2 - Minigun", "Force"), 3f, new ConfigDescription("Minigun bullet force", (AcceptableValueBase)null, Array.Empty())); Templar.minigunArmorBoost = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("2 - Minigun", "Armor Bonus"), 50f, new ConfigDescription("Bonus armor while firing", (AcceptableValueBase)null, Array.Empty())); Templar.minigunStationaryArmorBoost = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("2 - Minigun", "Stationary Armor Bonus"), 100f, new ConfigDescription("Bonus armor while standing still and firing", (AcceptableValueBase)null, Array.Empty())); Templar.minigunMinFireRate = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("2 - Minigun", "Minimum Fire Rate"), 0.75f, new ConfigDescription("Starting fire rate", (AcceptableValueBase)null, Array.Empty())); Templar.minigunMaxFireRate = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("2 - Minigun", "Maximum Fire Rate"), 1.35f, new ConfigDescription("Max fire rate", (AcceptableValueBase)null, Array.Empty())); Templar.minigunFireRateGrowth = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("2 - Minigun", "Fire Rate Growth"), 0.01f, new ConfigDescription("Amount the fire rate increases per shot", (AcceptableValueBase)null, Array.Empty())); Templar.rifleDamageCoefficient = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("3 - Tar Rifle", "Damage"), 0.5f, new ConfigDescription("Rifle damage per bullet", (AcceptableValueBase)null, Array.Empty())); Templar.rifleProcCoefficient = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("3 - Tar Rifle", "Proc Coefficient"), 0.7f, new ConfigDescription("Rifle proc coefficient per bullet", (AcceptableValueBase)null, Array.Empty())); Templar.rifleForce = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("3 - Tar Rifle", "Force"), 5f, new ConfigDescription("Rifle bullet force", (AcceptableValueBase)null, Array.Empty())); Templar.rifleFireRate = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("3 - Tar Rifle", "Fire Rate"), 1.6f, new ConfigDescription("Higher value = lower fire rate, due to spaghetti code", (AcceptableValueBase)null, Array.Empty())); Templar.clayGrenadeStock = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("4 - Clay Bomb", "Stock"), 2, new ConfigDescription("Maximum stock", (AcceptableValueBase)null, Array.Empty())); Templar.clayGrenadeCooldown = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("4 - Clay Bomb", "Cooldown"), 5f, new ConfigDescription("Bomb cooldown", (AcceptableValueBase)null, Array.Empty())); Templar.clayGrenadeDamageCoefficient = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("4 - Clay Bomb", "Damage"), 4f, new ConfigDescription("Explosion damage", (AcceptableValueBase)null, Array.Empty())); Templar.clayGrenadeProcCoefficient = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("4 - Clay Bomb", "Proc Coefficient"), 0.8f, new ConfigDescription("Explosion proc coefficient", (AcceptableValueBase)null, Array.Empty())); Templar.clayGrenadeRadius = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("4 - Clay Bomb", "Radius"), 12f, new ConfigDescription("Explosion radius", (AcceptableValueBase)null, Array.Empty())); Templar.clayGrenadeDetonationTime = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("4 - Clay Bomb", "Detonation Time"), 0.15f, new ConfigDescription("The time it takes to explode after hitting something", (AcceptableValueBase)null, Array.Empty())); Templar.blunderbussStock = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("5 - Blunderbuss", "Stock"), 2, new ConfigDescription("Maximum stock", (AcceptableValueBase)null, Array.Empty())); Templar.blunderbussCooldown = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("5 - Blunderbuss", "Cooldown"), 2.5f, new ConfigDescription("Cooldown per shot", (AcceptableValueBase)null, Array.Empty())); Templar.blunderbussPelletCount = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("5 - Blunderbuss", "Pellet count"), 6, new ConfigDescription("Pellets fired per shot", (AcceptableValueBase)null, Array.Empty())); Templar.blunderbussDamageCoefficient = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("5 - Blunderbuss", "Damage"), 1f, new ConfigDescription("Pellet damage", (AcceptableValueBase)null, Array.Empty())); Templar.blunderbussProcCoefficient = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("5 - Blunderbuss", "Proc Coefficient"), 1f, new ConfigDescription("Pellet proc coefficient", (AcceptableValueBase)null, Array.Empty())); Templar.blunderbussSpread = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("5 - Blunderbuss", "Pellet spread"), 10f, new ConfigDescription("Pellet spread when fired", (AcceptableValueBase)null, Array.Empty())); Templar.tarStock = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("6 - Tar Blast", "Stock"), 1, new ConfigDescription("Maximum stock", (AcceptableValueBase)null, Array.Empty())); Templar.tarCooldown = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("6 - Tar Blast", "Cooldown"), 1f, new ConfigDescription("Cooldown", (AcceptableValueBase)null, Array.Empty())); Templar.overdriveStock = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("6 - Tar Overdrive", "Stock"), 1, new ConfigDescription("Maximum stock", (AcceptableValueBase)null, Array.Empty())); Templar.overdriveCooldown = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("6 - Tar Overdrive", "Cooldown"), 12f, new ConfigDescription("Cooldown", (AcceptableValueBase)null, Array.Empty())); Templar.dashStock = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("7 - Sidestep", "Stock"), 2, new ConfigDescription("Maximum stock", (AcceptableValueBase)null, Array.Empty())); Templar.dashCooldown = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("7 - Sidestep", "Cooldown"), 7f, new ConfigDescription("Cooldown", (AcceptableValueBase)null, Array.Empty())); Templar.bazookaStock = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("8 - Bazooka", "Stock"), 1, new ConfigDescription("Maximum stock", (AcceptableValueBase)null, Array.Empty())); Templar.bazookaCooldown = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("8 - Bazooka", "Cooldown"), 14f, new ConfigDescription("Bazooka cooldown", (AcceptableValueBase)null, Array.Empty())); Templar.bazookaDamageCoefficient = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("8 - Bazooka", "Damage"), 12f, new ConfigDescription("Bazooka damage", (AcceptableValueBase)null, Array.Empty())); Templar.bazookaProcCoefficient = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("8 - Bazooka", "Proc Coefficient"), 0.6f, new ConfigDescription("Bazooka proc coefficient", (AcceptableValueBase)null, Array.Empty())); Templar.bazookaBlastRadius = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("8 - Bazooka", "Blast Radius"), 16f, new ConfigDescription("Bazooka blast radius", (AcceptableValueBase)null, Array.Empty())); Templar.miniBazookaDamageCoefficient = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("8 - Bazooka Mk.2", "Damage"), 5f, new ConfigDescription("Bazooka Mk.2 damage", (AcceptableValueBase)null, Array.Empty())); } public static void AddItemDisplays() { TemplarItemDisplays.SetItemDisplays(); } private void ContentManager_collectContentPackProviders(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)new ContentPacks()); } } internal static class Log { private static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } public static class Projectiles { internal static void ProjectileSetup() { //IL_0062: 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_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: 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_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_02f0: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) Templar.templarGrenade = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/CommandoGrenadeProjectile"), "TemplarGrenadeProjectile", true); ((ProjectileExplosion)Templar.templarGrenade.GetComponent()).blastDamageCoefficient = 4f; ((ProjectileExplosion)Templar.templarGrenade.GetComponent()).blastProcCoefficient = 0.8f; ((ProjectileExplosion)Templar.templarGrenade.GetComponent()).blastRadius = 12f; ((ProjectileExplosion)Templar.templarGrenade.GetComponent()).falloffModel = (FalloffModel)1; Templar.templarGrenade.GetComponent().lifetimeAfterImpact = 0.15f; Templar.templarGrenade.GetComponent().impactEffect = LegacyResourcesAPI.Load("Prefabs/Effects/ImpactEffects/ExplosivePotExplosion"); Templar.templarGrenade.GetComponent().damageType = DamageTypeCombo.op_Implicit((DamageType)512); GameObject val = PrefabAPI.InstantiateClone(Assets.clayBombModel, "TemplarBombModel", true); val.AddComponent(); Transform child = val.transform.GetChild(0); child.localScale *= 0.5f; Templar.templarGrenade.GetComponent().ghostPrefab = val; val.AddComponent(); Templar.templarRocket = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/LemurianBigFireball"), "TemplarRocketProjectile", true); ProjectileImpactExplosion val2 = default(ProjectileImpactExplosion); if (Templar.templarRocket.TryGetComponent(ref val2)) { ((ProjectileExplosion)val2).blastDamageCoefficient = 1f; ((ProjectileExplosion)val2).blastRadius = 16f; ((ProjectileExplosion)val2).blastProcCoefficient = 0.8f; val2.destroyOnEnemy = true; val2.destroyOnWorld = true; } MissileController val3 = default(MissileController); if (Templar.templarRocket.TryGetComponent(ref val3)) { Object.Destroy((Object)(object)val3); } Templar.templarRocket.AddComponent(); Templar.templarRocket.AddComponent(); GameObject val4 = PrefabAPI.InstantiateClone(Assets.clayMissileModel, "TemplarMissileModel", true); val4.AddComponent(); val4.transform.GetChild(1).SetParent(val4.transform.GetChild(0)); val4.transform.GetChild(0).localRotation = Quaternion.Euler(0f, 90f, 0f); Transform child2 = val4.transform.GetChild(0); child2.localScale *= 0.5f; val4.transform.GetChild(0).GetChild(0).GetChild(0) .SetParent(val4.transform.GetChild(0)); GameObject gameObject = ((Component)val4.transform.GetChild(0).GetChild(0)).gameObject; gameObject.AddComponent(); Transform transform = gameObject.transform; transform.localScale *= 0.8f; Templar.templarRocket.GetComponent().ghostPrefab = val4; Templar.templarRocketEffect = PrefabAPI.InstantiateClone(Templar.templarRocket.GetComponent().impactEffect, "TemplarRocketImpact", true); VFXAttributes val5 = default(VFXAttributes); if (Templar.templarRocketEffect.TryGetComponent(ref val5)) { val5.vfxPriority = (VFXPriority)2; } ContentAddition.AddEffect(Templar.templarRocketEffect); Templar.templarRocket.GetComponent().impactEffect = Templar.templarRocketEffect; Templar.templarRocket.GetComponent().damageType = DamageTypeCombo.op_Implicit((DamageType)262144); val4.AddComponent(); Templar.templarRocketEffect.AddComponent(); Loader.projectilePrefabs.Add(Templar.templarGrenade); Loader.projectilePrefabs.Add(Templar.templarRocket); } } public class ChargeRailgun : BaseState { private float minChargeDuration; private float chargeDuration; private GameObject chargeInstance; private bool released; private Transform muzzleTransform; public override void OnEnter() { //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("prefabs/crosshair/SMGCrosshair"); minChargeDuration = 0.75f * (ChargeSpear.baseMinChargeDuration / base.attackSpeedStat); chargeDuration = 0.75f * (ChargeSpear.baseChargeDuration / base.attackSpeedStat); Util.PlaySound(MinigunSpinUp.sound, ((EntityState)this).gameObject); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", true); muzzleTransform = ((BaseState)this).FindModelChild(MinigunState.muzzleName); if (Object.op_Implicit((Object)(object)muzzleTransform) && Object.op_Implicit((Object)(object)MinigunSpinUp.chargeEffectPrefab)) { chargeInstance = Object.Instantiate(MinigunSpinUp.chargeEffectPrefab, muzzleTransform.position, muzzleTransform.rotation); chargeInstance.transform.parent = muzzleTransform; ScaleParticleSystemDuration component = chargeInstance.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.newDuration = minChargeDuration; } } } public override void OnExit() { ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("prefabs/crosshair/SimpleDotCrosshair"); if (Object.op_Implicit((Object)(object)chargeInstance)) { EntityState.Destroy((Object)(object)chargeInstance); } ((EntityState)this).PlayCrossfade("Gesture, Additive", "BufferEmpty", 0.2f); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", false); ((EntityState)this).OnExit(); } public override void Update() { ((EntityState)this).Update(); ((EntityState)this).characterBody.SetSpreadBloom(1f - ((EntityState)this).age / chargeDuration, true); } public override void FixedUpdate() { //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Expected O, but got Unknown ((EntityState)this).FixedUpdate(); ((BaseState)this).StartAimMode(2f, false); float num = ((EntityState)this).fixedAge - chargeDuration; if (num >= 0f) { float perfectChargeWindow = ChargeSpear.perfectChargeWindow; } float charge = chargeDuration / ((EntityState)this).fixedAge; if (((EntityState)this).isAuthority) { if (!released && (!Object.op_Implicit((Object)(object)((EntityState)this).inputBank) || !((EntityState)this).inputBank.skill1.down)) { released = true; } if (released && ((EntityState)this).fixedAge >= minChargeDuration) { ((EntityState)this).outer.SetNextState((EntityState)new FireSpear { charge = charge }); } } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class FireRailgun : GenericBulletBaseState { public float charge; public override void ModifyBullet(BulletAttack bulletAttack) { //IL_000f: 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_001b: Unknown result type (might be due to invalid IL or missing references) ((GenericBulletBaseState)this).ModifyBullet(bulletAttack); bulletAttack.stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask; bulletAttack.falloffModel = (FalloffModel)0; } public override void FireBullet(Ray aimRay) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) ((GenericBulletBaseState)this).FireBullet(aimRay); ((EntityState)this).characterBody.SetSpreadBloom(0.2f, false); ((BaseState)this).AddRecoil(-0.6f * FireSpear.recoilAmplitude, -0.8f * FireSpear.recoilAmplitude, -0.1f * FireSpear.recoilAmplitude, 0.1f * FireSpear.recoilAmplitude); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", false); } } public class TemplarChargeBeam : BaseState { public static float baseDuration = 1f; public static float laserMaxWidth = 0.2f; private float duration; private uint chargePlayID; private GameObject chargeEffect; private GameObject laserEffect; private LineRenderer laserLineComponent; private Vector3 laserDirection; private Vector3 visualEndPosition; private float flashTimer; private bool laserOn; private Animator animator; public override void OnEnter() { //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = baseDuration / base.attackSpeedStat; Transform modelTransform = ((EntityState)this).GetModelTransform(); animator = ((EntityState)this).GetModelAnimator(); ((BaseState)this).StartAimMode(duration + 2f, false); animator.SetBool("WeaponIsReady", true); ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("Prefabs/Crosshair/BanditCrosshair"); chargePlayID = Util.PlayAttackSpeedSound(ChargeLaser.attackSoundString, ((EntityState)this).gameObject, base.attackSpeedStat); if (Object.op_Implicit((Object)(object)modelTransform)) { ChildLocator component = ((Component)modelTransform).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { Transform val = component.FindChild(MinigunState.muzzleName); if (Object.op_Implicit((Object)(object)val)) { if (Object.op_Implicit((Object)(object)ChargeLaser.effectPrefab)) { chargeEffect = Object.Instantiate(ChargeLaser.effectPrefab, val.position, val.rotation); chargeEffect.transform.parent = val; ScaleParticleSystemDuration component2 = chargeEffect.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.newDuration = duration; } } if (Object.op_Implicit((Object)(object)ChargeLaser.laserPrefab)) { laserEffect = Object.Instantiate(ChargeLaser.laserPrefab, val.position, val.rotation); laserEffect.transform.parent = val; laserLineComponent = laserEffect.GetComponent(); } } } } if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetAimTimer(duration); } flashTimer = 0f; laserOn = true; } public override void OnExit() { ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)chargeEffect)) { EntityState.Destroy((Object)(object)chargeEffect); } if (Object.op_Implicit((Object)(object)laserEffect)) { EntityState.Destroy((Object)(object)laserEffect); } } public override void Update() { //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_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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0077: 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_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).Update(); if (!Object.op_Implicit((Object)(object)laserEffect) || !Object.op_Implicit((Object)(object)laserLineComponent)) { return; } float num = 1000f; Ray aimRay = ((BaseState)this).GetAimRay(); Vector3 position = laserEffect.transform.parent.position; Vector3 point = ((Ray)(ref aimRay)).GetPoint(num); laserDirection = point - position; RaycastHit val = default(RaycastHit); if (Physics.Raycast(aimRay, ref val, num, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask))) { point = ((RaycastHit)(ref val)).point; } laserLineComponent.SetPosition(0, position); laserLineComponent.SetPosition(1, point); float num2; if (duration - ((EntityState)this).age > 0.5f) { num2 = ((EntityState)this).age / duration; } else { flashTimer -= Time.deltaTime; if (flashTimer <= 0f) { laserOn = !laserOn; flashTimer = 1f / 30f; } num2 = (laserOn ? 1f : 0f); } num2 *= laserMaxWidth; laserLineComponent.startWidth = num2; laserLineComponent.endWidth = num2; } public override void FixedUpdate() { //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) ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { TemplarFireBeam templarFireBeam = new TemplarFireBeam(); templarFireBeam.laserDirection = laserDirection; ((EntityState)this).outer.SetNextState((EntityState)(object)templarFireBeam); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class TemplarChargeMiniRocket : BaseState { public static float baseDuration = 1.25f; private float duration; private GameObject chargeInstance; protected ref ButtonState skillButtonState => ref ((EntityState)this).inputBank.skill1; public override void OnEnter() { //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = baseDuration / base.attackSpeedStat; Object modelAnimator = (Object)(object)((EntityState)this).GetModelAnimator(); Transform modelTransform = ((EntityState)this).GetModelTransform(); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", true); ((EntityState)this).PlayCrossfade("Gesture, Additive", "FireMinigun", 0.2f); ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("prefabs/crosshair/ToolbotGrenadeLauncherCrosshair"); Util.PlayAttackSpeedSound(ChargeMegaFireball.attackString, ((EntityState)this).gameObject, base.attackSpeedStat); if (!Object.op_Implicit((Object)(object)modelTransform)) { return; } ChildLocator component = ((Component)modelTransform).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } Transform val = component.FindChild(MinigunState.muzzleName); if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)ChargeMegaFireball.chargeEffectPrefab)) { chargeInstance = Object.Instantiate(ChargeMegaFireball.chargeEffectPrefab, val.position, val.rotation); chargeInstance.transform.parent = val; ScaleParticleSystemDuration component2 = chargeInstance.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.newDuration = duration; } } } public override void OnExit() { ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)chargeInstance)) { EntityState.Destroy((Object)(object)chargeInstance); } } public override void Update() { ((EntityState)this).Update(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); ((BaseState)this).StartAimMode(2f, false); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { TemplarFireMiniRocket nextState = new TemplarFireMiniRocket(); ((EntityState)this).outer.SetNextState((EntityState)(object)nextState); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class TemplarChargeRocket : BaseState { public static float baseDuration = 0.5f; private float duration; private GameObject chargeInstance; protected ref ButtonState skillButtonState => ref ((EntityState)this).inputBank.skill4; public override void OnEnter() { //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = baseDuration / base.attackSpeedStat; Object modelAnimator = (Object)(object)((EntityState)this).GetModelAnimator(); Transform modelTransform = ((EntityState)this).GetModelTransform(); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", true); ((EntityState)this).PlayCrossfade("Gesture, Additive", "FireMinigun", 0.2f); ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("prefabs/crosshair/ToolbotGrenadeLauncherCrosshair"); Util.PlayAttackSpeedSound(ChargeMegaFireball.attackString, ((EntityState)this).gameObject, base.attackSpeedStat); if (!Object.op_Implicit((Object)(object)modelTransform)) { return; } ChildLocator component = ((Component)modelTransform).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } Transform val = component.FindChild(MinigunState.muzzleName); if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)ChargeMegaFireball.chargeEffectPrefab)) { chargeInstance = Object.Instantiate(ChargeMegaFireball.chargeEffectPrefab, val.position, val.rotation); chargeInstance.transform.parent = val; ScaleParticleSystemDuration component2 = chargeInstance.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.newDuration = duration; } } } public override void OnExit() { ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)chargeInstance)) { EntityState.Destroy((Object)(object)chargeInstance); } } public override void Update() { ((EntityState)this).Update(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); ((BaseState)this).StartAimMode(2f, false); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority && !skillButtonState.down) { TemplarFireRocket nextState = new TemplarFireRocket(); ((EntityState)this).outer.SetNextState((EntityState)(object)nextState); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class TemplarFireBeam : BaseState { public static float damageCoefficient = 8f; public static float procCoefficient = 1f; public static float force = 500f; public static float minSpread = 0f; public static float maxSpread = 0f; public static int bulletCount = 1; public static float baseDuration = 0.5f; public static float radius = 1.25f; public float recoilAmplitude = 10f; public float bloom = 6f; public Vector3 laserDirection; private float duration; private Ray modifiedAimRay; private Animator animator; public override void OnEnter() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018a: 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_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: 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_01f9: 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_0216: 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_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_025a: 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_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = baseDuration / base.attackSpeedStat; modifiedAimRay = ((BaseState)this).GetAimRay(); ((Ray)(ref modifiedAimRay)).direction = laserDirection; animator = ((EntityState)this).GetModelAnimator(); Transform modelTransform = ((EntityState)this).GetModelTransform(); Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).StartAimMode(2f, false); float num = recoilAmplitude / base.attackSpeedStat; ((BaseState)this).AddRecoil(-1f * num, -1.5f * num, -0.25f * num, 0.25f * num); ((EntityState)this).characterBody.AddSpreadBloom(bloom); Util.PlayAttackSpeedSound(FireLaser.attackSoundString, ((EntityState)this).gameObject, 2f); string muzzleName = MinigunState.muzzleName; if (Object.op_Implicit((Object)(object)FireLaser.effectPrefab)) { EffectManager.SimpleMuzzleFlash(FireLaser.effectPrefab, ((EntityState)this).gameObject, muzzleName, false); } if (((EntityState)this).isAuthority) { float num2 = 1000f; Vector3 val = ((Ray)(ref modifiedAimRay)).origin + ((Ray)(ref modifiedAimRay)).direction * num2; RaycastHit val2 = default(RaycastHit); if (Physics.Raycast(modifiedAimRay, ref val2, num2, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.defaultLayer)).mask) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask))) { val = ((RaycastHit)(ref val2)).point; } new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin, aimVector = ((Ray)(ref aimRay)).direction, minSpread = 0f, maxSpread = 0f, bulletCount = (uint)bulletCount, procCoefficient = procCoefficient, damageType = DamageTypeCombo.op_Implicit((DamageType)262144), damage = damageCoefficient * base.damageStat, force = force, falloffModel = (FalloffModel)0, tracerEffectPrefab = FireLaser.tracerEffectPrefab, muzzleName = MinigunState.muzzleName, hitEffectPrefab = FireLaser.hitEffectPrefab, isCrit = Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master), HitEffectNormal = false, radius = radius, smartCollision = true, stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask }.Fire(); } ((EntityState)this).PlayCrossfade("Gesture, Additive", "FireMinigun", 0.75f * duration); } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("prefabs/crosshair/SimpleDotCrosshair"); ((EntityState)this).PlayCrossfade("Gesture, Additive", "BufferEmpty", 0.2f); animator.SetBool("WeaponIsReady", false); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class TemplarFireMiniRocket : BaseState { public static GameObject rocketPrefab; public static GameObject effectPrefab; public static int projectileCount = 1; public static float totalYawSpread = 1f; public static float baseDuration = 0.25f; public static float baseFireDuration = 0.25f; public static float damageCoefficient = Templar.miniBazookaDamageCoefficient.Value; public static float force = 25f; public static float recoilAmplitude = 7.5f; private float duration; private float fireDuration; private int projectilesFired; private bool jelly; public override void OnEnter() { ((BaseState)this).OnEnter(); ((BaseState)this).StartAimMode(2f, false); jelly = false; rocketPrefab = Templar.templarRocket; effectPrefab = FireMegaFireball.muzzleflashEffectPrefab; ((BaseState)this).AddRecoil(-1f * recoilAmplitude, -2f * recoilAmplitude, -0.5f * recoilAmplitude, 0.5f * recoilAmplitude); duration = baseDuration / base.attackSpeedStat; fireDuration = baseFireDuration / base.attackSpeedStat; Util.PlaySound(FireMegaFireball.attackString, ((EntityState)this).gameObject); } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).PlayCrossfade("Gesture, Additive", "BufferEmpty", 0.2f); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", false); ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("prefabs/crosshair/SimpleDotCrosshair"); } public override void FixedUpdate() { //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: 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_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); string muzzleName = MinigunState.muzzleName; if (((EntityState)this).isAuthority) { int num = Mathf.FloorToInt(((EntityState)this).fixedAge / fireDuration * (float)projectileCount); if (projectilesFired <= num && projectilesFired < projectileCount) { EffectManager.SimpleMuzzleFlash(effectPrefab, ((EntityState)this).gameObject, muzzleName, false); Ray aimRay = ((BaseState)this).GetAimRay(); float num2 = FireMegaFireball.projectileSpeed * 2f; float num3 = (float)Mathf.FloorToInt((float)projectilesFired - (float)(projectileCount - 1) / 2f) / (float)(projectileCount - 1) * totalYawSpread; num3 = 0f; Vector3 val = Util.ApplySpread(((Ray)(ref aimRay)).direction, 0f, 0f, 1f, 1f, num3, 0f); ProjectileManager.instance.FireProjectile(rocketPrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(val), ((EntityState)this).gameObject, base.damageStat * damageCoefficient, force, Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, num2, (DamageTypeCombo?)null); projectilesFired++; } } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class TemplarFireRocket : BaseState { public static GameObject rocketPrefab; public static GameObject effectPrefab; public static int projectileCount = 1; public static float totalYawSpread = 1f; public static float baseDuration = 0.25f; public static float baseFireDuration = 0.2f; public static float damageCoefficient = Templar.bazookaDamageCoefficient.Value; public static float force = 25f; public static float recoilAmplitude = 10f; private float duration; private float fireDuration; private int projectilesFired; private bool jelly; public override void OnEnter() { ((BaseState)this).OnEnter(); ((BaseState)this).StartAimMode(2f, false); jelly = false; rocketPrefab = Templar.templarRocket; effectPrefab = FireMegaFireball.muzzleflashEffectPrefab; rocketPrefab = Templar.templarRocket; ((BaseState)this).AddRecoil(-1f * recoilAmplitude, -2f * recoilAmplitude, -0.5f * recoilAmplitude, 0.5f * recoilAmplitude); duration = baseDuration / base.attackSpeedStat; fireDuration = baseFireDuration / base.attackSpeedStat; Util.PlaySound(FireMegaFireball.attackString, ((EntityState)this).gameObject); } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).PlayCrossfade("Gesture, Additive", "BufferEmpty", 0.2f); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", false); ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("prefabs/crosshair/SimpleDotCrosshair"); } public override void FixedUpdate() { //IL_007d: 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_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: 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_00ff: 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) ((EntityState)this).FixedUpdate(); string muzzleName = MinigunState.muzzleName; if (((EntityState)this).isAuthority) { int num = Mathf.FloorToInt(((EntityState)this).fixedAge / fireDuration * (float)projectileCount); if (projectilesFired <= num && projectilesFired < projectileCount) { EffectManager.SimpleMuzzleFlash(effectPrefab, ((EntityState)this).gameObject, muzzleName, false); Ray aimRay = ((BaseState)this).GetAimRay(); float num2 = FireMegaFireball.projectileSpeed * 2f; float num3 = (float)Mathf.FloorToInt((float)projectilesFired - (float)(projectileCount - 1) / 2f) / (float)(projectileCount - 1) * totalYawSpread; num3 = 0f; Vector3 val = Util.ApplySpread(((Ray)(ref aimRay)).direction, 0f, 0f, 1f, 1f, num3, 0f); ProjectileManager.instance.FireProjectile(rocketPrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(val), ((EntityState)this).gameObject, base.damageStat * damageCoefficient, force, Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, num2, (DamageTypeCombo?)null); projectilesFired++; } } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class TemplarFireSonicBoom : FireSonicBoom { public override void OnEnter() { ((FireSonicBoom)this).OnEnter(); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", true); base.baseDuration = 0.5f; } public override void AddDebuff(CharacterBody body) { body.AddTimedBuff((BuffIndex)21, base.slowDuration * 3f); } public override void OnExit() { if (!((EntityState)this).outer.destroying) { ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", false); } ((EntityState)this).OnExit(); } } public class TemplarFlamethrower : BaseState { public static float maxDistance = 20f; public static float radius = 1.5f; public static float baseEntryDuration = 0.1f; public static float baseExitDuration = 0.75f; public static float damageCoefficientPerTick = 2.5f; public static float procCoefficientPerTick = 0.4f; public static float tickFrequency = 0.25f; public static float force = 1f; public static float maxSpread = 0.25f; public static GameObject flamethrowerEffectPrefab; private float tickDamageCoefficient; private float flamethrowerStopwatch; private float stopwatch; private float entryDuration; private float exitDuration; private float flamethrowerDuration; private bool hasBegunFlamethrower; private ChildLocator childLocator; private Transform flamethrowerEffectInstance; private Transform muzzleTransform; private Animator animator; public override void OnEnter() { ((BaseState)this).OnEnter(); stopwatch = 0f; entryDuration = baseEntryDuration / base.attackSpeedStat; exitDuration = baseExitDuration / base.attackSpeedStat; animator = ((EntityState)this).GetModelAnimator(); Transform modelTransform = ((EntityState)this).GetModelTransform(); childLocator = ((Component)modelTransform).GetComponent(); animator.SetBool("WeaponIsReady", true); flamethrowerDuration = 5f; if (NetworkServer.active && Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.AddBuff(Buffs.TemplArmorBuff); } float num = base.attackSpeedStat * tickFrequency; tickDamageCoefficient = damageCoefficientPerTick; } public override void OnExit() { Util.PlaySound(Flamebreath.endAttackSoundString, ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)flamethrowerEffectInstance)) { EntityState.Destroy((Object)(object)((Component)flamethrowerEffectInstance).gameObject); } if (NetworkServer.active && Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.RemoveBuff(Buffs.TemplArmorBuff); } animator.SetBool("WeaponIsReady", false); ((EntityState)this).PlayCrossfade("Gesture, Additive", "BufferEmpty", 0.2f); ((EntityState)this).OnExit(); } private void FireFlame(string muzzleString) { //IL_0002: 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_002f: 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_0047: 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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0075: 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_0093: Unknown result type (might be due to invalid IL or missing references) //IL_009e: 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_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: 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_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).GetAimRay(); if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)muzzleTransform)) { new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = muzzleTransform.position, aimVector = muzzleTransform.forward, minSpread = 0f, maxSpread = maxSpread, damage = tickDamageCoefficient * base.damageStat, force = force, muzzleName = muzzleString, hitEffectPrefab = Flamebreath.impactEffectPrefab, isCrit = ((BaseState)this).RollCrit(), radius = radius, falloffModel = (FalloffModel)0, procCoefficient = procCoefficientPerTick, maxDistance = maxDistance, smartCollision = true, damageType = DamageTypeCombo.op_Implicit((DamageType)262144) }.Fire(); } } public override void FixedUpdate() { //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; ((BaseState)this).StartAimMode(0.5f, false); ((EntityState)this).characterBody.isSprinting = false; if (stopwatch >= entryDuration && stopwatch < entryDuration + flamethrowerDuration && !hasBegunFlamethrower) { hasBegunFlamethrower = true; Util.PlaySound(Flamebreath.startAttackSoundString, ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)childLocator)) { muzzleTransform = childLocator.FindChild(MinigunState.muzzleName); flamethrowerEffectInstance = Object.Instantiate(Flamebreath.flamethrowerEffectPrefab, muzzleTransform).transform; ((Component)flamethrowerEffectInstance).transform.localPosition = Vector3.zero; ((Component)flamethrowerEffectInstance).GetComponent().newDuration = 2f; ParticleSystem[] componentsInChildren = ((Component)flamethrowerEffectInstance).GetComponentsInChildren(); foreach (ParticleSystem val in componentsInChildren) { if (Object.op_Implicit((Object)(object)val)) { MainModule main = val.main; ((MainModule)(ref main)).loop = true; } } } } if (stopwatch >= entryDuration && hasBegunFlamethrower && !((EntityState)this).inputBank.skill1.down) { hasBegunFlamethrower = false; if (Object.op_Implicit((Object)(object)flamethrowerEffectInstance)) { EntityState.Destroy((Object)(object)((Component)flamethrowerEffectInstance).gameObject); } ((EntityState)this).outer.SetNextStateToMain(); return; } if (hasBegunFlamethrower) { flamethrowerStopwatch += Time.fixedDeltaTime; if (flamethrowerStopwatch > tickFrequency / base.attackSpeedStat) { flamethrowerStopwatch -= tickFrequency / base.attackSpeedStat; FireFlame(MinigunState.muzzleName); ((EntityState)this).PlayCrossfade("Gesture, Additive", "FireMinigun", 0.2f); } flamethrowerDuration = stopwatch + baseExitDuration; } else if (Object.op_Implicit((Object)(object)flamethrowerEffectInstance)) { EntityState.Destroy((Object)(object)((Component)flamethrowerEffectInstance).gameObject); } if (stopwatch >= flamethrowerDuration + entryDuration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class TemplarMinigunFire : TemplarMinigunState { public static float baseDamageCoefficient = Templar.minigunDamageCoefficient.Value; public static float baseForce = Templar.minigunForce.Value; public static float baseProcCoefficient = Templar.minigunProcCoefficient.Value; public static float recoilAmplitude = 2f; public static float minFireRate = Templar.minigunMinFireRate.Value; public static float maxFireRate = Templar.minigunMaxFireRate.Value; public static float fireRateGrowth = Templar.minigunFireRateGrowth.Value; private float fireTimer; private Transform muzzleVfxTransform; private float baseFireRate; private float baseBulletsPerSecond; private FixedTimeStamp critEndTime; private FixedTimeStamp lastCritCheck; private float currentFireRate; public override void OnEnter() { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); if (Object.op_Implicit((Object)(object)muzzleTransform) && Object.op_Implicit((Object)(object)MinigunFire.muzzleVfxPrefab)) { muzzleVfxTransform = Object.Instantiate(MinigunFire.muzzleVfxPrefab, muzzleTransform).transform; } baseFireRate = 1f / MinigunFire.baseFireInterval; currentFireRate = minFireRate; critEndTime = FixedTimeStamp.negativeInfinity; lastCritCheck = FixedTimeStamp.negativeInfinity; Util.PlaySound(MinigunFire.startSound, ((EntityState)this).gameObject); ((EntityState)this).PlayCrossfade("Gesture, Additive", "FireMinigun", 0.2f); } public override void FixedUpdate() { base.FixedUpdate(); baseFireRate = 1f / MinigunFire.baseFireInterval; fireTimer -= Time.fixedDeltaTime; if (fireTimer <= 0f) { ((BaseState)this).attackSpeedStat = ((EntityState)this).characterBody.attackSpeed; float num = MinigunFire.baseFireInterval / ((BaseState)this).attackSpeedStat / currentFireRate; fireTimer += num; OnFireShared(); } if (((EntityState)this).isAuthority && !base.skillButtonState.down) { ((EntityState)this).outer.SetNextState((EntityState)(object)new TemplarMinigunSpinDown()); } } private void UpdateCrits() { //IL_002d: 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_0043: 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) ((BaseState)this).critStat = ((EntityState)this).characterBody.crit; if (((FixedTimeStamp)(ref lastCritCheck)).timeSince >= 0.15f) { lastCritCheck = FixedTimeStamp.now; if (((BaseState)this).RollCrit()) { critEndTime = FixedTimeStamp.now + 0.25f; } } } public override void OnExit() { Util.PlaySound(MinigunFire.endSound, ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)muzzleVfxTransform)) { EntityState.Destroy((Object)(object)((Component)muzzleVfxTransform).gameObject); muzzleVfxTransform = null; } ((EntityState)this).PlayCrossfade("Gesture, Additive", "BufferEmpty", 0.2f); base.OnExit(); } private void OnFireShared() { Util.PlaySound(MinigunFire.fireSound, ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { OnFireAuthority(); } } private void OnFireAuthority() { //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_009d: 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_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: 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_00c8: 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_00d1: 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_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: 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_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) UpdateCrits(); bool isCrit = !((FixedTimeStamp)(ref critEndTime)).hasPassed; ((EntityState)this).characterBody.AddSpreadBloom(0.25f); ((BaseState)this).AddRecoil(-0.6f * recoilAmplitude, -0.8f * recoilAmplitude, -0.3f * recoilAmplitude, 0.3f * recoilAmplitude); currentFireRate = Mathf.Clamp(currentFireRate + fireRateGrowth, minFireRate, maxFireRate); float damage = baseDamageCoefficient * ((BaseState)this).damageStat; float force = baseForce; float procCoefficient = baseProcCoefficient; Ray aimRay = ((BaseState)this).GetAimRay(); new BulletAttack { bulletCount = (uint)MinigunFire.baseBulletCount, aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = damage, damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageType)0), falloffModel = (FalloffModel)1, maxDistance = MinigunFire.bulletMaxDistance, force = force, hitMask = CommonMasks.bullet, minSpread = MinigunFire.bulletMinSpread, maxSpread = MinigunFire.bulletMaxSpread * 1.5f, isCrit = isCrit, owner = ((EntityState)this).gameObject, muzzleName = MinigunState.muzzleName, smartCollision = false, procChainMask = default(ProcChainMask), procCoefficient = procCoefficient, radius = 0f, sniper = false, stopperMask = CommonMasks.bullet, weapon = null, tracerEffectPrefab = MinigunFire.bulletTracerEffectPrefab, spreadPitchScale = 1f, spreadYawScale = 1f, queryTriggerInteraction = (QueryTriggerInteraction)0, hitEffectPrefab = MinigunFire.bulletHitEffectPrefab, HitEffectNormal = MinigunFire.bulletHitEffectNormal }.Fire(); } } public class TemplarMinigunSpinDown : TemplarMinigunState { private float duration; public override void OnEnter() { base.OnEnter(); ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("prefabs/crosshair/SimpleDotCrosshair"); duration = MinigunSpinDown.baseDuration * 0.25f / ((BaseState)this).attackSpeedStat; Util.PlayAttackSpeedSound(MinigunSpinDown.sound, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", false); } public override void FixedUpdate() { base.FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } } public class TemplarMinigunSpinUp : TemplarMinigunState { private GameObject chargeInstance; private float duration; public override void OnEnter() { //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); ((EntityState)this).characterBody.SetSpreadBloom(2f, false); ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("Prefabs/Crosshair/BanditCrosshair"); duration = MinigunSpinUp.baseDuration / ((BaseState)this).attackSpeedStat; Util.PlaySound(MinigunSpinUp.sound, ((EntityState)this).gameObject); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", true); if (Object.op_Implicit((Object)(object)muzzleTransform) && Object.op_Implicit((Object)(object)MinigunSpinUp.chargeEffectPrefab)) { chargeInstance = Object.Instantiate(MinigunSpinUp.chargeEffectPrefab, muzzleTransform.position, muzzleTransform.rotation); chargeInstance.transform.parent = muzzleTransform; ScaleParticleSystemDuration component = chargeInstance.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.newDuration = duration; } } } public override void FixedUpdate() { base.FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextState((EntityState)(object)new TemplarMinigunFire()); } } public override void OnExit() { base.OnExit(); if (Object.op_Implicit((Object)(object)chargeInstance)) { EntityState.Destroy((Object)(object)chargeInstance); } } } public class TemplarMinigunState : BaseState { private bool standStill; protected Transform muzzleTransform; private float oldMass; protected ref ButtonState skillButtonState => ref ((EntityState)this).inputBank.skill1; public override void OnEnter() { ((BaseState)this).OnEnter(); oldMass = ((EntityState)this).characterMotor.mass; muzzleTransform = ((BaseState)this).FindModelChild(MinigunState.muzzleName); if (NetworkServer.active && Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.AddBuff(Buffs.TemplArmorBuff); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); ((BaseState)this).StartAimMode(2.5f, false); ((EntityState)this).characterBody.isSprinting = false; bool flag = ((EntityState)this).characterMotor.velocity.x == 0f && ((EntityState)this).characterMotor.velocity.z == 0f && ((EntityState)this).characterMotor.isGrounded; bool isGrounded = ((EntityState)this).characterMotor.isGrounded; if (flag && isGrounded) { if (!((EntityState)this).characterBody.HasBuff(Buffs.TemplarstationaryArmorBuff)) { if (NetworkServer.active) { ((EntityState)this).characterBody.RemoveBuff(Buffs.TemplArmorBuff); ((EntityState)this).characterBody.AddBuff(Buffs.TemplarstationaryArmorBuff); } ((EntityState)this).characterMotor.mass = 10000f; } } else if (((EntityState)this).characterBody.HasBuff(Buffs.TemplarstationaryArmorBuff)) { if (NetworkServer.active) { ((EntityState)this).characterBody.RemoveBuff(Buffs.TemplarstationaryArmorBuff); ((EntityState)this).characterBody.AddBuff(Buffs.TemplArmorBuff); } ((EntityState)this).characterMotor.mass = oldMass; } } public override void OnExit() { if (NetworkServer.active && Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { if (((BaseState)this).HasBuff(Buffs.TemplArmorBuff)) { ((EntityState)this).characterBody.RemoveBuff(Buffs.TemplArmorBuff); } if (((BaseState)this).HasBuff(Buffs.TemplarstationaryArmorBuff)) { ((EntityState)this).characterBody.RemoveBuff(Buffs.TemplarstationaryArmorBuff); } } ((EntityState)this).characterMotor.mass = oldMass; ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class TemplarOverdrive : BaseSkillState { public static float pushForce = 2500f; private Transform modelTransform; public override void OnEnter() { //IL_0056: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Expected O, but got Unknown //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_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009c: 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_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) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: 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_00ca: 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_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00df: 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_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Expected O, but got Unknown //IL_0115: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.TemplarOverdriveBuff, 3f); } EffectManager.SimpleMuzzleFlash(FireTarball.effectPrefab, ((EntityState)this).gameObject, "Root", false); EffectManager.SpawnEffect(LegacyResourcesAPI.Load("Prefabs/Effects/ImpactEffects/ExplosivePotExplosion"), new EffectData { origin = ((EntityState)this).characterBody.corePosition, scale = 12f }, true); BlastAttack val = new BlastAttack { attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, teamIndex = ((EntityState)this).teamComponent.teamIndex, baseForce = pushForce, bonusForce = Vector3.zero, position = ((EntityState)this).transform.position, radius = 12f, falloffModel = (FalloffModel)0, crit = false, baseDamage = 0f, procCoefficient = 0f, damageType = DamageTypeCombo.op_Implicit((DamageType)512) }; val.Fire(); modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { TemporaryOverlay val2 = ((Component)modelTransform).gameObject.AddComponent(); val2.duration = 8f; val2.animateShaderAlpha = true; val2.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val2.destroyComponentOnEnd = true; val2.originalMaterial = LegacyResourcesAPI.Load("Materials/matClayGooDebuff"); val2.AddToCharacerModel(((Component)modelTransform).GetComponent()); } Util.PlayAttackSpeedSound(FireTarball.attackSoundString, ((EntityState)this).gameObject, 0.75f); ((EntityState)this).outer.SetNextStateToMain(); } public override void OnExit() { ((EntityState)this).OnExit(); } } public class TemplarRifleFire : TemplarRifleState { public static float baseDamageCoefficient = Templar.rifleDamageCoefficient.Value; public static float baseForcePerSecond = Templar.rifleForce.Value; public static float baseProcCoefficient = Templar.rifleProcCoefficient.Value; public static float fireRate = Templar.rifleFireRate.Value; public static float recoilAmplitude = 0.75f; private float fireTimer; private Transform muzzleVfxTransform; private float baseFireRate; private float baseBulletsPerSecond; private FixedTimeStamp critEndTime; private FixedTimeStamp lastCritCheck; public override void OnEnter() { //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", true); if (Object.op_Implicit((Object)(object)muzzleTransform) && Object.op_Implicit((Object)(object)MinigunFire.muzzleVfxPrefab)) { muzzleVfxTransform = Object.Instantiate(MinigunFire.muzzleVfxPrefab, muzzleTransform).transform; } ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("prefabs/crosshair/StandardCrosshair"); baseFireRate = 1f / MinigunFire.baseFireInterval; baseBulletsPerSecond = (float)MinigunFire.baseBulletCount * 2f * baseFireRate; critEndTime = FixedTimeStamp.negativeInfinity; lastCritCheck = FixedTimeStamp.negativeInfinity; Util.PlaySound(MinigunFire.startSound, ((EntityState)this).gameObject); ((EntityState)this).PlayCrossfade("Gesture, Additive", "FireMinigun", 0.2f); } private void UpdateCrits() { //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_004f: 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) ((BaseState)this).critStat = ((EntityState)this).characterBody.crit; if (((FixedTimeStamp)(ref lastCritCheck)).timeSince >= 0.1f) { lastCritCheck = FixedTimeStamp.now; if (((BaseState)this).RollCrit()) { critEndTime = FixedTimeStamp.now + 0.4f; } } } public override void OnExit() { Util.PlaySound(MinigunFire.endSound, ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)muzzleVfxTransform)) { EntityState.Destroy((Object)(object)((Component)muzzleVfxTransform).gameObject); muzzleVfxTransform = null; } ((EntityState)this).PlayCrossfade("Gesture, Additive", "BufferEmpty", 0.2f); base.OnExit(); } private void OnFireShared() { Util.PlaySound(MinigunFire.fireSound, ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { OnFireAuthority(); } } private void OnFireAuthority() { //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: 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_0077: 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_0085: 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_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: 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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: 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_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: 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_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: 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_0163: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) UpdateCrits(); bool isCrit = !((FixedTimeStamp)(ref critEndTime)).hasPassed; ((BaseState)this).AddRecoil(-0.5f * recoilAmplitude, -0.5f * recoilAmplitude, -0.5f * recoilAmplitude, 0.5f * recoilAmplitude); float damage = baseDamageCoefficient * ((BaseState)this).damageStat; float force = baseForcePerSecond / baseBulletsPerSecond; float procCoefficient = baseProcCoefficient; Ray aimRay = ((BaseState)this).GetAimRay(); new BulletAttack { bulletCount = (uint)MinigunFire.baseBulletCount, aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = damage, damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageType)512), falloffModel = (FalloffModel)1, maxDistance = MinigunFire.bulletMaxDistance * 0.75f, force = force, hitMask = CommonMasks.bullet, minSpread = MinigunFire.bulletMinSpread, maxSpread = MinigunFire.bulletMaxSpread, isCrit = isCrit, owner = ((EntityState)this).gameObject, muzzleName = MinigunState.muzzleName, smartCollision = false, procChainMask = default(ProcChainMask), procCoefficient = procCoefficient, radius = 0f, sniper = false, stopperMask = CommonMasks.bullet, weapon = null, tracerEffectPrefab = MinigunFire.bulletTracerEffectPrefab, spreadPitchScale = 0.35f, spreadYawScale = 0.35f, queryTriggerInteraction = (QueryTriggerInteraction)0, hitEffectPrefab = FireSpine.hitEffectPrefab, HitEffectNormal = Object.op_Implicit((Object)(object)FireSpine.hitEffectPrefab) }.Fire(); } public override void FixedUpdate() { base.FixedUpdate(); baseFireRate = 1f / (MinigunFire.baseFireInterval * 1f); baseBulletsPerSecond = (float)MinigunFire.baseBulletCount * 1f * baseFireRate * 1f; fireTimer -= Time.fixedDeltaTime; if (fireTimer <= 0f) { ((BaseState)this).attackSpeedStat = ((EntityState)this).characterBody.attackSpeed; float num = fireRate * (MinigunFire.baseFireInterval / ((BaseState)this).attackSpeedStat); fireTimer += num; OnFireShared(); } if (((EntityState)this).isAuthority && !base.skillButtonState.down) { ((EntityState)this).outer.SetNextState((EntityState)(object)new TemplarRifleSpinDown()); } } } public class TemplarRifleSpinDown : TemplarRifleState { private float duration; public override void OnEnter() { base.OnEnter(); ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("prefabs/crosshair/SimpleDotCrosshair"); duration = MinigunSpinDown.baseDuration * 0.1f / ((BaseState)this).attackSpeedStat; Util.PlayAttackSpeedSound(MinigunSpinDown.sound, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", false); } public override void FixedUpdate() { base.FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } } public class TemplarRifleState : BaseState { private static readonly BuffIndex slowBuff; protected Transform muzzleTransform; protected ref ButtonState skillButtonState => ref ((EntityState)this).inputBank.skill1; public override void OnEnter() { ((BaseState)this).OnEnter(); muzzleTransform = ((BaseState)this).FindModelChild(MinigunState.muzzleName); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); ((BaseState)this).StartAimMode(0.5f, false); } public override void OnExit() { ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class TemplarShotgun : BaseState { public static GameObject tracerEffectPrefab = LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/TracerCommandoBoost"); public static float damageCoefficient = Templar.blunderbussDamageCoefficient.Value; public static float force = 5f; public static float bulletRadius = 1.5f; public static float baseMaxDuration = 0.75f; public static float baseMinDuration = 0.5f; public static float recoilAmplitude = 5f; public static float spreadBloomValue = Templar.blunderbussSpread.Value; public static uint pelletCount = (uint)Templar.blunderbussPelletCount.Value; public static float procCoefficient = Templar.blunderbussProcCoefficient.Value; private float maxDuration; private float minDuration; private bool buttonReleased; public override void OnEnter() { //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_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0108: 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_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: 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_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_018d: 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_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: 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_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_021e: 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_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_0239: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_026a: 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_0277: Unknown result type (might be due to invalid IL or missing references) //IL_027c: 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_0293: Unknown result type (might be due to invalid IL or missing references) //IL_029e: 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_02a5: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: 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_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02f0: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_02fd: 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) ((BaseState)this).OnEnter(); ((EntityState)this).characterBody.skillLocator.primary.rechargeStopwatch = 0f; ((BaseState)this).AddRecoil(-1f * recoilAmplitude, -2f * recoilAmplitude, -0.5f * recoilAmplitude, 0.5f * recoilAmplitude); maxDuration = baseMaxDuration / base.attackSpeedStat; minDuration = baseMinDuration / base.attackSpeedStat; Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).StartAimMode(2f, false); Util.PlayAttackSpeedSound(FireRifle.attackSoundString, ((EntityState)this).gameObject, 0.8f); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", true); ((EntityState)this).PlayCrossfade("Gesture, Additive", "FireMinigun", 0.2f); string muzzleName = MinigunState.muzzleName; bool flag = Object.op_Implicit((Object)(object)MinigunFire.muzzleVfxPrefab); if (((EntityState)this).isAuthority) { new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin, aimVector = ((Ray)(ref aimRay)).direction, minSpread = 0f, maxSpread = 0f, bulletCount = 1u, procCoefficient = procCoefficient, damageType = DamageTypeCombo.op_Implicit((DamageType)0), damage = damageCoefficient * base.damageStat, force = force, falloffModel = (FalloffModel)1, tracerEffectPrefab = tracerEffectPrefab, muzzleName = muzzleName, hitEffectPrefab = MinigunFire.bulletHitEffectPrefab, isCrit = Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master), HitEffectNormal = false, radius = bulletRadius, smartCollision = true, stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask }.Fire(); if (pelletCount > 1) { new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin, aimVector = ((Ray)(ref aimRay)).direction, minSpread = spreadBloomValue / ((float)pelletCount - 1f), maxSpread = spreadBloomValue, bulletCount = pelletCount - 1, procCoefficient = procCoefficient, damageType = DamageTypeCombo.op_Implicit((DamageType)0), damage = damageCoefficient * base.damageStat, force = force, falloffModel = (FalloffModel)1, tracerEffectPrefab = tracerEffectPrefab, muzzleName = muzzleName, hitEffectPrefab = MinigunFire.bulletHitEffectPrefab, isCrit = Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master), HitEffectNormal = false, radius = bulletRadius, smartCollision = true, stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask }.Fire(); } ((EntityState)this).characterBody.AddSpreadBloom(spreadBloomValue); } } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).PlayCrossfade("Gesture, Additive", "BufferEmpty", 0.2f); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", false); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); buttonReleased |= !((EntityState)this).inputBank.skill1.down; if (((EntityState)this).fixedAge >= maxDuration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0031: 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_0033: 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) //IL_0038: Unknown result type (might be due to invalid IL or missing references) if (buttonReleased && ((EntityState)this).fixedAge >= minDuration) { return (InterruptPriority)0; } return (InterruptPriority)1; } } public class TemplarSidestep : BaseState { [SerializeField] public float duration = 0.3f; public static GameObject dodgeEffect; public static float initialSpeedCoefficient = 10f; public static float finalSpeedCoefficient = 0.25f; private float rollSpeed; private Vector3 forwardDirection; private Animator animator; private Vector3 previousPosition; public override void OnEnter() { //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_007d: 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_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_025d: 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_0282: 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_0287: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_0295: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); Util.PlaySound(DodgeState.dodgeSoundString, ((EntityState)this).gameObject); animator = ((EntityState)this).GetModelAnimator(); ChildLocator component = ((Component)animator).GetComponent(); if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { Vector3 val = ((((EntityState)this).inputBank.moveVector == Vector3.zero) ? ((EntityState)this).characterDirection.forward : ((EntityState)this).inputBank.moveVector); forwardDirection = ((Vector3)(ref val)).normalized; } Vector3 val2 = (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) ? ((EntityState)this).characterDirection.forward : forwardDirection); Vector3 val3 = Vector3.Cross(Vector3.up, val2); float num = Vector3.Dot(forwardDirection, val2); float num2 = Vector3.Dot(forwardDirection, val3); animator.SetFloat("forwardSpeed", num, 0.1f, Time.fixedDeltaTime); animator.SetFloat("rightSpeed", num2, 0.1f, Time.fixedDeltaTime); if (Mathf.Abs(num) > Mathf.Abs(num2)) { ((EntityState)this).PlayAnimation("Body", (num > 0f) ? "DodgeForward" : "DodgeBackward", "Dodge.playbackRate", duration, 0f); } else { ((EntityState)this).PlayAnimation("Body", (num2 > 0f) ? "DodgeRight" : "DodgeLeft", "Dodge.playbackRate", duration, 0f); } if (Object.op_Implicit((Object)(object)SpawnState.spawnEffectPrefab)) { Transform val4 = component.FindChild("chest"); if (Object.op_Implicit((Object)(object)val4)) { Object.Instantiate(SpawnState.spawnEffectPrefab, val4); } } RecalculateSpeed(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.velocity.y = characterMotor.velocity.y * 0.2f; ((EntityState)this).characterMotor.velocity = forwardDirection * rollSpeed; } Vector3 val5 = (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) ? ((EntityState)this).characterMotor.velocity : Vector3.zero); previousPosition = ((EntityState)this).transform.position - val5; } private void RecalculateSpeed() { rollSpeed = (4f + 0.3f * base.moveSpeedStat) * Mathf.Lerp(initialSpeedCoefficient, finalSpeedCoefficient, ((EntityState)this).fixedAge / duration); } public override void FixedUpdate() { //IL_0053: 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_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0067: 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_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_011e: 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_00a9: 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_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); RecalculateSpeed(); if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.fovOverride = Mathf.Lerp(DodgeState.dodgeFOV, 60f, ((EntityState)this).fixedAge / duration); } Vector3 val = ((EntityState)this).transform.position - previousPosition; Vector3 normalized = ((Vector3)(ref val)).normalized; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) && normalized != Vector3.zero) { Vector3 val2 = normalized * rollSpeed; float y = val2.y; val2.y = 0f; float num = Mathf.Max(Vector3.Dot(val2, forwardDirection), 0f); val2 = forwardDirection * num; val2.y += Mathf.Max(y, 0f); ((EntityState)this).characterMotor.velocity = val2; } previousPosition = ((EntityState)this).transform.position; if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.fovOverride = -1f; } ((EntityState)this).OnExit(); } public override void OnSerialize(NetworkWriter writer) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).OnSerialize(writer); writer.Write(forwardDirection); } public override void OnDeserialize(NetworkReader reader) { //IL_000b: 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) ((EntityState)this).OnDeserialize(reader); forwardDirection = reader.ReadVector3(); } } public class TemplarSwapWeapon : BaseState { public static float baseDuration = 0.35f; public static int currentWeapon; public static GameObject crosshair1 = LegacyResourcesAPI.Load("prefabs/crosshair/BanditCrosshair"); public static GameObject crosshair2 = LegacyResourcesAPI.Load("prefabs/crosshair/StandardCrosshair"); public static GameObject crosshair3 = LegacyResourcesAPI.Load("prefabs/crosshair/BanditCrosshair"); public static GameObject crosshair4 = LegacyResourcesAPI.Load("prefabs/crosshair/SimpleDotCrosshair"); private float duration; private Transform muzzleTransform; private GameObject swapInstance; public override void OnEnter() { //IL_026a: 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) ((BaseState)this).OnEnter(); SkillDef skillDef = ((EntityState)this).characterBody.skillLocator.primary.skillDef; if (skillDef.skillNameToken == "TEMPLAR_PRIMARY_MINIGUN_NAME") { currentWeapon = 0; } else if (skillDef.skillNameToken == "TEMPLAR_PRIMARY_PRECISEMINIGUN_NAME") { currentWeapon = 1; } else if (skillDef.skillNameToken == "TEMPLAR_PRIMARY_RAILGUN_NAME") { currentWeapon = 2; } else if (skillDef.skillNameToken == "TEMPLAR_PRIMARY_BAZOOKA_NAME") { currentWeapon = 2; } else if (skillDef.skillNameToken == "TEMPLAR_PRIMARY_FLAMETHROWER_NAME") { currentWeapon = 3; } currentWeapon++; if (currentWeapon > 3) { currentWeapon = 0; } ((EntityState)this).characterBody.skillLocator.primary.SetBaseSkill(((EntityState)this).characterBody.skillLocator.primary.skillFamily.variants[currentWeapon].skillDef); if (currentWeapon == 0) { ((EntityState)this).characterBody._defaultCrosshairPrefab = crosshair1; } else if (currentWeapon == 1) { ((EntityState)this).characterBody._defaultCrosshairPrefab = crosshair2; } else if (currentWeapon == 2) { ((EntityState)this).characterBody._defaultCrosshairPrefab = crosshair3; } else if (currentWeapon == 3) { ((EntityState)this).characterBody._defaultCrosshairPrefab = crosshair4; } Util.PlaySound(FindItem.sound, ((EntityState)this).gameObject); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", true); muzzleTransform = ((BaseState)this).FindModelChild(MinigunState.muzzleName); if (Object.op_Implicit((Object)(object)muzzleTransform) && Object.op_Implicit((Object)(object)MinigunSpinUp.chargeEffectPrefab)) { swapInstance = Object.Instantiate(LoomingPresence.blinkPrefab, muzzleTransform.position, muzzleTransform.rotation); swapInstance.transform.parent = muzzleTransform; } duration = baseDuration / base.attackSpeedStat; } public override void OnExit() { ((EntityState)this).PlayCrossfade("Gesture, Additive", "BufferEmpty", 0.2f); ((EntityState)this).GetModelAnimator().SetBool("WeaponIsReady", false); ((EntityState)this).characterBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load("prefabs/crosshair/SimpleDotCrosshair"); ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class TemplarThrowClaybomb : BaseSkillState { public float damageCoefficient = 1f; public float baseDuration = 0.4f; public float throwForce = 85f; private float duration; private float fireDuration; private bool hasFired; private Animator animator; private string muzzleName; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; fireDuration = 0.2f * duration; ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); muzzleName = MinigunState.muzzleName; animator.SetBool("WeaponIsReady", true); } public override void OnExit() { ((EntityState)this).OnExit(); } private void ThrowBomb() { //IL_002f: 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) //IL_006e: 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_007a: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; Util.PlaySound(FireBombardment.shootSoundString, ((EntityState)this).gameObject); Ray aimRay = ((BaseState)this).GetAimRay(); EffectManager.SimpleMuzzleFlash(FireTarball.effectPrefab, ((EntityState)this).gameObject, muzzleName, false); if (((EntityState)this).isAuthority) { ProjectileManager.instance.FireProjectile(Templar.templarGrenade, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, damageCoefficient * ((BaseState)this).damageStat, 0f, Util.CheckRoll(((BaseState)this).critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, throwForce, (DamageTypeCombo?)null); } animator.SetBool("WeaponIsReady", false); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= fireDuration) { ThrowBomb(); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class Templar { public static GameObject myCharacter; public static GameObject TemplarPrefab; public static GameObject characterDisplay; public static GameObject doppelganger; private static readonly Color CHAR_COLOR = new Color(40f / 51f, 0.29411766f, 1f / 17f); public static GameObject templarRocket; public static GameObject templarGrenade; public static GameObject templarRocketEffect; public static ConfigEntry baseHealth; public static ConfigEntry healthGrowth; public static ConfigEntry baseArmor; public static ConfigEntry baseDamage; public static ConfigEntry damageGrowth; public static ConfigEntry baseRegen; public static ConfigEntry regenGrowth; public static ConfigEntry FireBuffDurationBonus; public static ConfigEntry baseJumpPower; public static ConfigEntry enabled; public static ConfigEntry minigunDamageCoefficient; public static ConfigEntry minigunProcCoefficient; public static ConfigEntry minigunForce; public static ConfigEntry minigunArmorBoost; public static ConfigEntry minigunStationaryArmorBoost; public static ConfigEntry minigunMinFireRate; public static ConfigEntry minigunMaxFireRate; public static ConfigEntry minigunFireRateGrowth; public static ConfigEntry rifleDamageCoefficient; public static ConfigEntry rifleProcCoefficient; public static ConfigEntry rifleForce; public static ConfigEntry rifleFireRate; public static ConfigEntry clayGrenadeStock; public static ConfigEntry clayGrenadeCooldown; public static ConfigEntry clayGrenadeDamageCoefficient; public static ConfigEntry clayGrenadeProcCoefficient; public static ConfigEntry clayGrenadeRadius; public static ConfigEntry clayGrenadeDetonationTime; public static ConfigEntry blunderbussStock; public static ConfigEntry blunderbussCooldown; public static ConfigEntry blunderbussPelletCount; public static ConfigEntry blunderbussDamageCoefficient; public static ConfigEntry blunderbussProcCoefficient; public static ConfigEntry blunderbussSpread; public static ConfigEntry tarStock; public static ConfigEntry tarCooldown; public static ConfigEntry overdriveStock; public static ConfigEntry overdriveCooldown; public static ConfigEntry dashStock; public static ConfigEntry dashCooldown; public static ConfigEntry bazookaStock; public static ConfigEntry bazookaCooldown; public static ConfigEntry bazookaDamageCoefficient; public static ConfigEntry bazookaProcCoefficient; public static ConfigEntry bazookaBlastRadius; public static ConfigEntry miniBazookaDamageCoefficient; public static ConfigEntry jellyfishEvent; public static ConfigEntry bazookaGoBoom; private static BodyIndex _templarBodyIndex = (BodyIndex)(-1); public static bool IsBUDefined { get; private set; } public static bool IsBUDefined2 { get; private set; } public static BodyIndex templarBodyIndex { get { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 //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_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_002b: Unknown result type (might be due to invalid IL or missing references) if ((int)_templarBodyIndex == -1) { _templarBodyIndex = myCharacter.GetComponent().bodyIndex; } return _templarBodyIndex; } set { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) _templarBodyIndex = value; } } internal static void TemplarSetup() { TokenSetup(); TemplarSurvivor(); SkillSetup(); CreateMaster(); TemplarSkins.RegisterSkins(); } internal static void TemplarSurvivor() { //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_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_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_0113: 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_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: 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_02cd: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02f2: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Unknown result type (might be due to invalid IL or missing references) //IL_0366: Unknown result type (might be due to invalid IL or missing references) //IL_036b: 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_037a: Unknown result type (might be due to invalid IL or missing references) //IL_0383: 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_03af: Unknown result type (might be due to invalid IL or missing references) //IL_03b1: Unknown result type (might be due to invalid IL or missing references) //IL_040e: Unknown result type (might be due to invalid IL or missing references) //IL_0413: 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_0429: Unknown result type (might be due to invalid IL or missing references) //IL_043a: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_0450: 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) //IL_0470: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Unknown result type (might be due to invalid IL or missing references) //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_067d: Unknown result type (might be due to invalid IL or missing references) //IL_0682: Unknown result type (might be due to invalid IL or missing references) myCharacter = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)RoR2_Base_ClayBruiser.ClayBruiserBody_prefab).WaitForCompletion(), "Templar_Survivor", true); AkBank[] array = new AkBank[1]; GameObject obj = Addressables.LoadAssetAsync((object)RoR2_Base_ClayBruiser.ClayBruiserBody_prefab).WaitForCompletion(); array[0] = ((obj != null) ? obj.GetComponent() : null); AkBank[] array2 = (AkBank[])(object)array; AkBank[] array3 = array2; foreach (AkBank val in array3) { if ((Object)(object)val != (Object)null) { AkBank val2 = myCharacter.AddComponent(); ((AkTriggerHandler)val2).triggerList = ((AkTriggerHandler)val).triggerList; val2.data.WwiseObjectReference = val.data.WwiseObjectReference; val2.unloadTriggerList = val.unloadTriggerList; } } ((Component)myCharacter.GetComponent().modelBaseTransform).gameObject.transform.localScale = Vector3.one * 0.9f; ((Component)myCharacter.GetComponent().modelBaseTransform).gameObject.transform.Translate(new Vector3(0f, 1.6f, 0f)); KinematicCharacterMotor[] componentsInChildren = myCharacter.GetComponentsInChildren(); foreach (KinematicCharacterMotor val3 in componentsInChildren) { val3.SetCapsuleDimensions(val3.Capsule.radius * 0.5f, val3.Capsule.height * 0.5f, 0f); } myCharacter.GetComponent().aimOriginTransform.Translate(new Vector3(0f, 0f, 0f)); myCharacter.GetComponent().canBeHitStunned = false; myCharacter.tag = "Player"; characterDisplay = PrefabAPI.InstantiateClone(((Component)myCharacter.GetComponent().modelBaseTransform).gameObject, "TemplarDisplay", true); characterDisplay.transform.localScale = Vector3.one * 0.8f; characterDisplay.AddComponent(); characterDisplay.AddComponent(); GameObject val4 = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/Pot2Body"); MeshRenderer componentInChildren = val4.GetComponentInChildren(); GameObject val5 = Object.Instantiate(((Component)componentInChildren).gameObject); ((Object)val5).name = "VagabondHead"; Object.Destroy((Object)(object)val5.GetComponent()); Object.Destroy((Object)(object)((Component)val5.transform).GetComponentInChildren()); Object.Destroy((Object)(object)((Component)val5.transform.GetChild(0)).gameObject); val5.transform.parent = myCharacter.GetComponentInChildren().FindChild("Head"); val5.transform.localScale = new Vector3(1f, 1f, 1.25f); val5.transform.localRotation = Quaternion.Euler(new Vector3(-90f, 0f, 0f)); val5.transform.localPosition = new Vector3(0f, -0.24f, 0f); MeshRenderer componentInChildren2 = val5.GetComponentInChildren(); RendererInfo[] rendererInfos = Addressables.LoadAssetAsync((object)RoR2_Base_ClayBruiser.skinClayBruiserBodyDefault_params_asset).WaitForCompletion().rendererInfos; RendererInfo[] baseRendererInfos = (RendererInfo[])(object)new RendererInfo[7] { rendererInfos[0], rendererInfos[1], rendererInfos[2], rendererInfos[3], rendererInfos[4], rendererInfos[5], new RendererInfo { defaultMaterial = ((Renderer)componentInChildren).material, renderer = (Renderer)(object)componentInChildren2, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false } }; ((Component)myCharacter.GetComponent().modelTransform.Find("ClayBruiserHeadMesh")).gameObject.SetActive(false); myCharacter.GetComponentInChildren().baseRendererInfos = baseRendererInfos; CharacterCameraParams val6 = ScriptableObject.CreateInstance(); ((Object)val6).name = "TemplarCam"; val6.data.minPitch = BlendableFloat.op_Implicit(-70f); val6.data.maxPitch = BlendableFloat.op_Implicit(70f); val6.data.wallCushion = BlendableFloat.op_Implicit(0.1f); val6.data.pivotVerticalOffset = BlendableFloat.op_Implicit(0f); val6.data.idealLocalCameraPos = BlendableVector3.op_Implicit(new Vector3(-0.35f, 2f, -12f)); myCharacter.GetComponent().cameraParams = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CrocoBody").GetComponent().cameraParams; CharacterBody component = myCharacter.GetComponent(); component.portraitIcon = Assets.templarIcon; component.SetSpreadBloom(0f, false); component.spreadBloomCurve = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponent().spreadBloomCurve; component.spreadBloomDecayTime = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponent().spreadBloomDecayTime; ((Object)component).name = "Templar_Survivor"; component.baseNameToken = "Templar_Survivor"; component.subtitleNameToken = "Templar_Subtitle"; component.bodyFlags = (BodyFlags)16; component.baseMaxHealth = baseHealth.Value; component.levelMaxHealth = healthGrowth.Value; component.baseRegen = baseRegen.Value; component.levelRegen = regenGrowth.Value; component.baseDamage = baseDamage.Value; component.levelDamage = damageGrowth.Value; component.baseArmor = baseArmor.Value; component.baseJumpPower = 15f; component.baseCrit = 1f; component.baseMoveSpeed = 7f; component.autoCalculateLevelStats = true; component._defaultCrosshairPrefab = LegacyResourcesAPI.Load("Prefabs/Crosshair/SimpleDotCrosshair"); component.preferredPodPrefab = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CrocoBody").GetComponent().preferredPodPrefab; component.levelMoveSpeed = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/LoaderBody").GetComponent().levelMoveSpeed; component.sprintingSpeedMultiplier = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/LoaderBody").GetComponent().sprintingSpeedMultiplier; ((Component)component).GetComponent().mass = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/LoaderBody").GetComponentInChildren().mass; TemplarPrefab = myCharacter; SurvivorDef val7 = ScriptableObject.CreateInstance(); val7.cachedName = "Templar_Survivor"; val7.descriptionToken = "Templar_Description"; val7.primaryColor = CHAR_COLOR; val7.bodyPrefab = TemplarPrefab; val7.displayPrefab = characterDisplay; val7.outroFlavorToken = "Templar_ENDING"; val7.desiredSortPosition = 16f; Loader.survivorDefs.Add(val7); Loader.bodyPrefabs.Add(myCharacter); } internal static void SkillSetup() { GenericSkill[] componentsInChildren = myCharacter.GetComponentsInChildren(); for (int i = 0; i < componentsInChildren.Length; i++) { Object.DestroyImmediate((Object)(object)componentsInChildren[i]); } myCharacter.GetComponent(); PrimarySetup(); SecondarySetup(); UtilitySetup(); SpecialSetup(); PassiveSetup(); Loader.entityStates.Add(typeof(TemplarChargeMiniRocket)); Loader.entityStates.Add(typeof(TemplarChargeRocket)); Loader.entityStates.Add(typeof(TemplarFireMiniRocket)); Loader.entityStates.Add(typeof(TemplarFireRocket)); Loader.entityStates.Add(typeof(TemplarFireSonicBoom)); Loader.entityStates.Add(typeof(TemplarMinigunFire)); Loader.entityStates.Add(typeof(TemplarMinigunSpinDown)); Loader.entityStates.Add(typeof(TemplarMinigunSpinUp)); Loader.entityStates.Add(typeof(TemplarMinigunState)); Loader.entityStates.Add(typeof(TemplarRifleFire)); Loader.entityStates.Add(typeof(TemplarRifleSpinDown)); Loader.entityStates.Add(typeof(TemplarRifleState)); Loader.entityStates.Add(typeof(TemplarShotgun)); Loader.entityStates.Add(typeof(TemplarSidestep)); Loader.entityStates.Add(typeof(TemplarSwapWeapon)); Loader.entityStates.Add(typeof(TemplarThrowClaybomb)); Loader.entityStates.Add(typeof(TemplarChargeBeam)); Loader.entityStates.Add(typeof(TemplarFireBeam)); Loader.entityStates.Add(typeof(TemplarFlamethrower)); Loader.entityStates.Add(typeof(TemplarOverdrive)); } internal static void PrimarySetup() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Expected O, but got Unknown //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_021c: 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_0240: Expected O, but got Unknown //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_025b: 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_02a8: 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_035c: Unknown result type (might be due to invalid IL or missing references) //IL_0366: Expected O, but got Unknown //IL_0367: Unknown result type (might be due to invalid IL or missing references) //IL_0369: 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_0386: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_0468: Unknown result type (might be due to invalid IL or missing references) //IL_0482: Unknown result type (might be due to invalid IL or missing references) //IL_048c: Expected O, but got Unknown //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_0506: Unknown result type (might be due to invalid IL or missing references) //IL_050b: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Unknown result type (might be due to invalid IL or missing references) //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_0611: Expected O, but got Unknown //IL_0612: Unknown result type (might be due to invalid IL or missing references) //IL_0614: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = myCharacter.GetComponent(); SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(TemplarMinigunSpinUp)); val.activationStateMachineName = "Weapon"; val.baseMaxStock = 1; val.baseRechargeInterval = 0f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.cancelSprintingOnActivation = true; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.icon1; val.skillDescriptionToken = "TEMPLAR_PRIMARY_MINIGUN_DESCRIPTION"; val.skillName = "TEMPLAR_PRIMARY_MINIGUN_NAME"; val.skillNameToken = "TEMPLAR_PRIMARY_MINIGUN_NAME"; val.keywordTokens = new string[1] { "KEYWORD_RAPIDFIRE" }; component.primary = myCharacter.AddComponent(); SkillFamily val2 = ScriptableObject.CreateInstance(); val2.variants = (Variant[])(object)new Variant[1]; component.primary._skillFamily = val2; SkillFamily skillFamily = component.primary.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; SkillDef val4 = ScriptableObject.CreateInstance(); val4.activationState = new SerializableEntityStateType(typeof(TemplarRifleFire)); val4.activationStateMachineName = "Weapon"; val4.baseMaxStock = 1; val4.baseRechargeInterval = 0f; val4.beginSkillCooldownOnSkillEnd = true; val4.canceledFromSprinting = true; val4.cancelSprintingOnActivation = true; val4.fullRestockOnAssign = true; val4.interruptPriority = (InterruptPriority)0; val4.isCombatSkill = true; val4.mustKeyPress = false; val4.rechargeStock = 1; val4.requiredStock = 1; val4.stockToConsume = 1; val4.icon = Assets.icon1b; val4.skillDescriptionToken = "TEMPLAR_PRIMARY_PRECISEMINIGUN_DESCRIPTION"; val4.skillName = "TEMPLAR_PRIMARY_PRECISEMINIGUN_NAME"; val4.skillNameToken = "TEMPLAR_PRIMARY_PRECISEMINIGUN_NAME"; Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants2 = skillFamily.variants; int num = skillFamily.variants.Length - 1; val3 = new Variant { skillDef = val4 }; ((Variant)(ref val3)).viewableNode = new Node(val4.skillNameToken, false, (Node)null); variants2[num] = val3; SkillDef val5 = ScriptableObject.CreateInstance(); val5.activationState = new SerializableEntityStateType(typeof(TemplarChargeBeam)); val5.activationStateMachineName = "Weapon"; val5.baseMaxStock = 1; val5.baseRechargeInterval = 0f; val5.beginSkillCooldownOnSkillEnd = true; val5.canceledFromSprinting = false; val5.cancelSprintingOnActivation = true; val5.fullRestockOnAssign = true; val5.interruptPriority = (InterruptPriority)0; val5.isCombatSkill = true; val5.mustKeyPress = false; val5.rechargeStock = 1; val5.requiredStock = 1; val5.stockToConsume = 1; val5.icon = Assets.icon1c; val5.skillDescriptionToken = "TEMPLAR_PRIMARY_RAILGUN_DESCRIPTION"; val5.skillName = "TEMPLAR_PRIMARY_RAILGUN_NAME"; val5.skillNameToken = "TEMPLAR_PRIMARY_RAILGUN_NAME"; val5.keywordTokens = new string[1] { "KEYWORD_EXPLOSIVE" }; Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants3 = skillFamily.variants; int num2 = skillFamily.variants.Length - 1; val3 = new Variant { skillDef = val5 }; ((Variant)(ref val3)).viewableNode = new Node(val5.skillNameToken, false, (Node)null); variants3[num2] = val3; SkillDef val6 = ScriptableObject.CreateInstance(); val6.activationState = new SerializableEntityStateType(typeof(TemplarFlamethrower)); val6.activationStateMachineName = "Weapon"; val6.baseMaxStock = 1; val6.baseRechargeInterval = 0f; val6.beginSkillCooldownOnSkillEnd = true; val6.canceledFromSprinting = false; val6.cancelSprintingOnActivation = true; val6.fullRestockOnAssign = true; val6.interruptPriority = (InterruptPriority)0; val6.isCombatSkill = true; val6.mustKeyPress = false; val6.rechargeStock = 1; val6.requiredStock = 1; val6.stockToConsume = 1; val6.icon = Assets.icon1d; val6.skillDescriptionToken = "TEMPLAR_PRIMARY_FLAMETHROWER_DESCRIPTION"; val6.skillName = "TEMPLAR_PRIMARY_FLAMETHROWER_NAME"; val6.skillNameToken = "TEMPLAR_PRIMARY_FLAMETHROWER_NAME"; val6.keywordTokens = new string[1] { "KEYWORD_EXPLOSIVE" }; Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants4 = skillFamily.variants; int num3 = skillFamily.variants.Length - 1; val3 = new Variant { skillDef = val6 }; ((Variant)(ref val3)).viewableNode = new Node(val6.skillNameToken, false, (Node)null); variants4[num3] = val3; if (bazookaGoBoom.Value) { LanguageAPI.Add("TEMPLAR_PRIMARY_BAZOOKA_NAME", "Bazooka Mk. 2"); LanguageAPI.Add("TEMPLAR_PRIMARY_BAZOOKA_DESCRIPTION", "Explosive. Fire a rocket, dealing " + miniBazookaDamageCoefficient.Value * 100f + "% damage."); SkillDef val7 = ScriptableObject.CreateInstance(); val7.activationState = new SerializableEntityStateType(typeof(TemplarChargeMiniRocket)); val7.activationStateMachineName = "Weapon"; val7.baseMaxStock = 1; val7.baseRechargeInterval = 0.1f; val7.beginSkillCooldownOnSkillEnd = true; val7.canceledFromSprinting = false; val7.fullRestockOnAssign = true; val7.interruptPriority = (InterruptPriority)0; val7.isCombatSkill = true; val7.mustKeyPress = false; val7.rechargeStock = 1; val7.requiredStock = 1; val7.stockToConsume = 1; val7.icon = Assets.icon4; val7.skillDescriptionToken = "TEMPLAR_PRIMARY_BAZOOKA_DESCRIPTION"; val7.skillName = "TEMPLAR_PRIMARY_BAZOOKA_NAME"; val7.skillNameToken = "TEMPLAR_PRIMARY_BAZOOKA_NAME"; val7.keywordTokens = new string[1] { "KEYWORD_EXPLOSIVE" }; val7.cancelSprintingOnActivation = true; Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants5 = skillFamily.variants; int num4 = skillFamily.variants.Length - 1; val3 = new Variant { skillDef = val7 }; ((Variant)(ref val3)).viewableNode = new Node(val7.skillNameToken, false, (Node)null); variants5[num4] = val3; Loader.entityStates.Add(typeof(TemplarChargeMiniRocket)); Loader.skillDefs.Add(val7); } Loader.entityStates.Add(typeof(TemplarMinigunSpinUp)); Loader.entityStates.Add(typeof(TemplarRifleFire)); Loader.entityStates.Add(typeof(TemplarChargeBeam)); Loader.entityStates.Add(typeof(TemplarFlamethrower)); Loader.skillDefs.Add(val); Loader.skillDefs.Add(val4); Loader.skillDefs.Add(val5); Loader.skillDefs.Add(val6); } internal static void SecondarySetup() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Expected O, but got Unknown //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012c: 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_0149: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Expected O, but got Unknown //IL_0249: 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) SkillLocator component = myCharacter.GetComponent(); SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(TemplarThrowClaybomb)); val.activationStateMachineName = "Weapon"; val.baseMaxStock = clayGrenadeStock.Value; val.baseRechargeInterval = clayGrenadeCooldown.Value; val.beginSkillCooldownOnSkillEnd = false; val.canceledFromSprinting = false; val.cancelSprintingOnActivation = true; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)1; val.isCombatSkill = true; val.mustKeyPress = true; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.icon2; val.skillDescriptionToken = "TEMPLAR_SECONDARY_GRENADE_DESCRIPTION"; val.skillName = "TEMPLAR_SECONDARY_GRENADE_NAME"; val.skillNameToken = "TEMPLAR_SECONDARY_GRENADE_NAME"; component.secondary = myCharacter.AddComponent(); SkillFamily val2 = ScriptableObject.CreateInstance(); val2.variants = (Variant[])(object)new Variant[1]; component.secondary._skillFamily = val2; SkillFamily skillFamily = component.secondary.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; SkillDef val4 = ScriptableObject.CreateInstance(); val4.activationState = new SerializableEntityStateType(typeof(TemplarShotgun)); val4.activationStateMachineName = "Weapon"; val4.baseMaxStock = blunderbussStock.Value; val4.baseRechargeInterval = blunderbussCooldown.Value; val4.beginSkillCooldownOnSkillEnd = false; val4.canceledFromSprinting = false; val4.cancelSprintingOnActivation = true; val4.fullRestockOnAssign = true; val4.interruptPriority = (InterruptPriority)1; val4.isCombatSkill = true; val4.mustKeyPress = true; val4.rechargeStock = 1; val4.requiredStock = 1; val4.stockToConsume = 1; val4.icon = Assets.icon2b; val4.skillDescriptionToken = "TEMPLAR_SECONDARY_SHOTGUN_DESCRIPTION"; val4.skillName = "TEMPLAR_SECONDARY_SHOTGUN_NAME"; val4.skillNameToken = "TEMPLAR_SECONDARY_SHOTGUN_NAME"; Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants2 = skillFamily.variants; int num = skillFamily.variants.Length - 1; val3 = new Variant { skillDef = val4 }; ((Variant)(ref val3)).viewableNode = new Node(val4.skillNameToken, false, (Node)null); variants2[num] = val3; Loader.entityStates.Add(typeof(TemplarThrowClaybomb)); Loader.entityStates.Add(typeof(TemplarShotgun)); Loader.skillDefs.Add(val); Loader.skillDefs.Add(val4); } internal static void UtilitySetup() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Expected O, but got Unknown //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Expected O, but got Unknown //IL_029e: 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) SkillLocator component = myCharacter.GetComponent(); SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(TemplarOverdrive)); val.activationStateMachineName = "Body"; val.baseMaxStock = overdriveStock.Value; val.baseRechargeInterval = overdriveCooldown.Value; val.beginSkillCooldownOnSkillEnd = false; val.canceledFromSprinting = false; val.cancelSprintingOnActivation = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)2; val.isCombatSkill = true; val.mustKeyPress = true; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.icon3; val.skillDescriptionToken = "TEMPLAR_UTILITY_OVERDRIVE_DESCRIPTION"; val.skillName = "TEMPLAR_UTILITY_OVERDRIVE_NAME"; val.skillNameToken = "TEMPLAR_UTILITY_OVERDRIVE_NAME"; component.utility = myCharacter.AddComponent(); SkillFamily val2 = ScriptableObject.CreateInstance(); val2.variants = (Variant[])(object)new Variant[1]; component.utility._skillFamily = val2; SkillFamily skillFamily = component.utility.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; SkillDef skillDef = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren().utility.skillFamily.variants[0].skillDef; skillDef = ScriptableObject.CreateInstance(); skillDef.activationState = new SerializableEntityStateType(typeof(TemplarSidestep)); skillDef.activationStateMachineName = "Body"; skillDef.baseRechargeInterval = dashCooldown.Value; skillDef.baseMaxStock = dashStock.Value; skillDef.beginSkillCooldownOnSkillEnd = skillDef.beginSkillCooldownOnSkillEnd; skillDef.canceledFromSprinting = false; skillDef.cancelSprintingOnActivation = false; skillDef.fullRestockOnAssign = skillDef.fullRestockOnAssign; skillDef.interruptPriority = skillDef.interruptPriority; skillDef.isCombatSkill = true; skillDef.mustKeyPress = skillDef.mustKeyPress; skillDef.rechargeStock = skillDef.rechargeStock; skillDef.requiredStock = skillDef.requiredStock; skillDef.stockToConsume = skillDef.stockToConsume; skillDef.icon = Assets.icon3b; skillDef.skillDescriptionToken = "TEMPLAR_UTILITY_DODGE_DESCRIPTION"; skillDef.skillName = "TEMPLAR_UTILITY_DODGE_NAME"; skillDef.skillNameToken = "TEMPLAR_UTILITY_DODGE_NAME"; Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants2 = skillFamily.variants; int num = skillFamily.variants.Length - 1; val3 = new Variant { skillDef = skillDef }; ((Variant)(ref val3)).viewableNode = new Node(skillDef.skillNameToken, false, (Node)null); variants2[num] = val3; Loader.entityStates.Add(typeof(TemplarOverdrive)); Loader.entityStates.Add(typeof(TemplarSidestep)); Loader.skillDefs.Add(val); Loader.skillDefs.Add(skillDef); } internal static void SpecialSetup() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Expected O, but got Unknown //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015d: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Expected O, but got Unknown //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = myCharacter.GetComponent(); SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(TemplarChargeRocket)); val.activationStateMachineName = "Weapon"; val.baseMaxStock = bazookaStock.Value; val.baseRechargeInterval = bazookaCooldown.Value; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.cancelSprintingOnActivation = true; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)2; val.isCombatSkill = true; val.mustKeyPress = true; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.icon4; val.skillDescriptionToken = "TEMPLAR_SPECIAL_FIRE_DESCRIPTION"; val.skillName = "TEMPLAR_SPECIAL_FIRE_NAME"; val.skillNameToken = "TEMPLAR_SPECIAL_FIRE_NAME"; val.keywordTokens = new string[1] { "KEYWORD_EXPLOSIVE" }; component.special = myCharacter.AddComponent(); SkillFamily val2 = ScriptableObject.CreateInstance(); val2.variants = (Variant[])(object)new Variant[1]; component.special._skillFamily = val2; SkillFamily skillFamily = component.special.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; SkillDef val4 = ScriptableObject.CreateInstance(); val4.activationState = new SerializableEntityStateType(typeof(TemplarSwapWeapon)); val4.activationStateMachineName = "Weapon"; val4.baseMaxStock = 1; val4.baseRechargeInterval = 0.1f; val4.beginSkillCooldownOnSkillEnd = true; val4.canceledFromSprinting = false; val4.cancelSprintingOnActivation = false; val4.fullRestockOnAssign = true; val4.interruptPriority = (InterruptPriority)2; val4.isCombatSkill = false; val4.mustKeyPress = false; val4.rechargeStock = 1; val4.requiredStock = 1; val4.stockToConsume = 1; val4.icon = Assets.icon4b; val4.skillDescriptionToken = "TEMPLAR_SPECIAL_SWAP_DESCRIPTION"; val4.skillName = "TEMPLAR_SPECIAL_SWAP_NAME"; val4.skillNameToken = "TEMPLAR_SPECIAL_SWAP_NAME"; val4.keywordTokens = new string[1] { "KEYWORD_AGILE" }; Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants2 = skillFamily.variants; int num = skillFamily.variants.Length - 1; val3 = new Variant { skillDef = val4 }; ((Variant)(ref val3)).viewableNode = new Node(val4.skillNameToken, false, (Node)null); variants2[num] = val3; Loader.entityStates.Add(typeof(TemplarChargeRocket)); Loader.entityStates.Add(typeof(TemplarSwapWeapon)); Loader.skillDefs.Add(val); Loader.skillDefs.Add(val4); } internal static void CreateMaster() { doppelganger = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("prefabs/charactermasters/commandomonstermaster"), "TemplarMonsterMaster", true, "C:TemplarClean.cs", "CreateMaster", 155); doppelganger.GetComponent().bodyPrefab = myCharacter; Loader.masterPrefabs.Add(doppelganger); } internal static void PassiveSetup() { SkillLocator component = myCharacter.GetComponent(); LanguageAPI.Add("TEMPLAR_PASSIVE_NAME", "Volatile Tar"); LanguageAPI.Add("TEMPLAR_PASSIVE_DESCRIPTION", "Certain attacks cover enemies in tar, slowing them. Ignite the tar to create an explosion that leaves enemies Scorched, reducing their armor."); component.passiveSkill.enabled = true; component.passiveSkill.skillNameToken = "TEMPLAR_PASSIVE_NAME"; component.passiveSkill.skillDescriptionToken = "TEMPLAR_PASSIVE_DESCRIPTION"; component.passiveSkill.icon = Assets.iconP; } internal static void TokenSetup() { LanguageAPI.Add("Templar_Survivor", "Templar"); LanguageAPI.Add("Templar_Subtitle", "Templar"); LanguageAPI.Add("Templar_ENDING", "..and so it left, reveling in its triumph."); string text = "The Clay Templar is a slow, tanky bruiser who uses the many weapons in his arsenal to mow down his opposition with ease." + Environment.NewLine + Environment.NewLine; text = text + "< ! > Minigun takes time to rev up, but inflicts heavy damage at a high rate of fire." + Environment.NewLine + Environment.NewLine; text = text + "< ! > Tar Rifle is an all around good weapon in most cases, but lacks the high damage of Minigun." + Environment.NewLine + Environment.NewLine; text = text + "< ! > Let Blunderbuss reload all 4 shots and unload them all at once for a big burst of damage." + Environment.NewLine + Environment.NewLine; text = text + "< ! > Use Bazooka after applying tar to deal massive AoE damage with chain explosions." + Environment.NewLine + Environment.NewLine; text = text + "< ! > The explosion force from Bazooka can be used to launch yourself high up with good timing." + Environment.NewLine; LanguageAPI.Add("Templar_Description", text); LanguageAPI.Add("KEYWORD_RAPIDFIRE", "RapidfireRate of fire increases the longer the skill is held."); LanguageAPI.Add("KEYWORD_EXPLOSIVE", "ExplosiveIgnite tarred enemies, creating an explosion for 20% of the damage dealt and reducing their armor."); LanguageAPI.Add("TEMPLAR_PRIMARY_MINIGUN_NAME", "Minigun"); LanguageAPI.Add("TEMPLAR_PRIMARY_MINIGUN_DESCRIPTION", "Rapidfire. Rev up and fire your minigun, dealing " + minigunDamageCoefficient.Value * 100f + "% damage per bullet. Slow your movement while shooting, but gain bonus armor."); LanguageAPI.Add("TEMPLAR_PRIMARY_PRECISEMINIGUN_NAME", "Tar Rifle"); LanguageAPI.Add("TEMPLAR_PRIMARY_PRECISEMINIGUN_DESCRIPTION", "Fire a tar rifle, dealing " + rifleDamageCoefficient.Value * 100f + "% damage per bullet and applying tar with high accuracy."); LanguageAPI.Add("TEMPLAR_PRIMARY_RAILGUN_NAME", "Railgun"); LanguageAPI.Add("TEMPLAR_PRIMARY_RAILGUN_DESCRIPTION", "Explosive. Charge up and fire a piercing bullet, dealing 800% damage."); LanguageAPI.Add("TEMPLAR_PRIMARY_FLAMETHROWER_NAME", "Flamethrower"); LanguageAPI.Add("TEMPLAR_PRIMARY_FLAMETHROWER_DESCRIPTION", "Explosive. Fire a continuous stream of flames, dealing 1250% damage per second."); text = "Throw a clay bomb that explodes for " + clayGrenadeDamageCoefficient.Value * 100f + "% damage and inflicts tar."; if (clayGrenadeStock.Value > 1) { text = text + " Hold up to " + clayGrenadeStock.Value + " bombs."; } LanguageAPI.Add("TEMPLAR_SECONDARY_GRENADE_NAME", "Clay Bomb"); LanguageAPI.Add("TEMPLAR_SECONDARY_GRENADE_DESCRIPTION", text); text = "Fire a burst of pellets, dealing " + blunderbussPelletCount.Value + "x" + blunderbussDamageCoefficient.Value * 100f + "% damage."; if (blunderbussStock.Value > 1) { text = text + " Store up to " + blunderbussStock.Value + " shots."; } LanguageAPI.Add("TEMPLAR_SECONDARY_SHOTGUN_NAME", "Blunderbuss"); LanguageAPI.Add("TEMPLAR_SECONDARY_SHOTGUN_DESCRIPTION", text); LanguageAPI.Add("TEMPLAR_UTILITY_OVERDRIVE_NAME", "Tar Overdrive"); LanguageAPI.Add("TEMPLAR_UTILITY_OVERDRIVE_DESCRIPTION", "Shift into maximum overdrive, knocking enemies back and applying tar. Gain bonus attack speed and health regen for 3 seconds."); text = "Dash a short distance. Can dash while shooting."; if (dashStock.Value > 1) { text = text + " Store up to " + dashStock.Value + " charges."; } LanguageAPI.Add("TEMPLAR_UTILITY_DODGE_NAME", "Sidestep"); LanguageAPI.Add("TEMPLAR_UTILITY_DODGE_DESCRIPTION", text); LanguageAPI.Add("TEMPLAR_SPECIAL_FIRE_NAME", "Bazooka"); LanguageAPI.Add("TEMPLAR_SPECIAL_FIRE_DESCRIPTION", "Explosive. Fire a rocket, dealing " + bazookaDamageCoefficient.Value * 100f + "% damage."); LanguageAPI.Add("TEMPLAR_SPECIAL_SWAP_NAME", "Weapon Swap"); LanguageAPI.Add("TEMPLAR_SPECIAL_SWAP_DESCRIPTION", "Agile. Swap your primary weapon type."); } } public class TemplarMissileController : MonoBehaviour { public static float acceleration = 2.5f; public static float startSpeed = 25f; private float speed; private Rigidbody rb; private void Awake() { rb = ((Component)this).GetComponentInChildren(); speed = startSpeed; } private void FixedUpdate() { //IL_001f: 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) speed += acceleration; rb.velocity = ((Component)this).transform.forward * speed; } } public class TemplarSeparateFromParent : MonoBehaviour { private void Awake() { ((Component)this).transform.SetParent((Transform)null); } } public class TemplarExplosionForce : MonoBehaviour { public float force = 750f; public float radius = 16f; public float maxForce = 4000f; private void OnDisable() { //IL_0019: 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_003f: 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_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_009e: 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_0152: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { return; } Collider[] array = Physics.OverlapSphere(((Component)this).transform.position, radius, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask)); Log.Info(((Component)this).transform.position); Vector3 val2 = default(Vector3); for (int i = 0; i < array.Length; i++) { Collider obj = UnityObjectExtensions.AsValidOrNull(array[i]); HurtBox val = ((obj != null) ? ((Component)obj).GetComponent() : null); if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val.healthComponent) && Object.op_Implicit((Object)(object)val.healthComponent.body) && val.healthComponent.body.bodyIndex == Templar.templarBodyIndex && Object.op_Implicit((Object)(object)val.healthComponent.body.characterMotor)) { float num = 16f / Vector3.Distance(val.healthComponent.body.transform.position, ((Component)this).transform.position); ((Vector3)(ref val2))..ctor(0f, Mathf.Clamp(num * force, 0f, maxForce), 0f); if (!val.healthComponent.body.characterMotor.isGrounded) { val.healthComponent.body.characterMotor.ApplyForce(val2, false, false); } break; } } } } public class TemplarMenuAnim : MonoBehaviour { private uint playID; internal void OnEnable() { ((MonoBehaviour)this).StartCoroutine(SpawnAnim()); } internal void OnDisable() { if (playID != 0) { AkSoundEngine.StopPlayingID(playID); } } private IEnumerator SpawnAnim() { Animator animator = ((Component)this).GetComponentInChildren(); EffectManager.SpawnEffect(SpawnState.spawnEffectPrefab, new EffectData { origin = ((Component)this).gameObject.transform.position }, false); playID = Util.PlayAttackSpeedSound(SpawnState.spawnSoundString, ((Component)this).gameObject, 1.25f); PlayAnimation("Body", "Spawn", "Spawn.playbackRate", 1f, animator); animator.SetBool("WeaponIsReady", false); yield return 60f; animator.SetBool("WeaponIsReady", true); } private void PlayAnimation(string layerName, string animationStateName, string playbackRateParam, float duration, Animator animator) { //IL_0037: 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) int layerIndex = animator.GetLayerIndex(layerName); animator.SetFloat(playbackRateParam, 1f); animator.PlayInFixedTime(animationStateName, layerIndex, 0f); animator.Update(0f); AnimatorStateInfo currentAnimatorStateInfo = animator.GetCurrentAnimatorStateInfo(layerIndex); float length = ((AnimatorStateInfo)(ref currentAnimatorStateInfo)).length; animator.SetFloat(playbackRateParam, length / duration); } } public static class TemplarItemDisplays { internal static ItemDisplayRuleSet itemDisplayRuleSet; internal static List itemDisplayRules; private static Dictionary itemDisplayPrefabs = new Dictionary(); internal static void InitializeItemDisplays() { PopulateDisplays(); CharacterModel componentInChildren = Templar.myCharacter.GetComponentInChildren(); itemDisplayRuleSet = ScriptableObject.CreateInstance(); ((Object)itemDisplayRuleSet).name = "idrsTemplar"; componentInChildren.itemDisplayRuleSet = itemDisplayRuleSet; } internal static void SetItemDisplays() { //IL_0012: 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_0044: 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_0057: 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_008e: Unknown result type (might be due to invalid IL or missing references) //IL_009c: 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_00d3: 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_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0113: 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_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0153: 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_015d: Unknown result type (might be due to invalid IL or missing references) //IL_016b: 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_0193: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0217: 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_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_0228: 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_024c: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_029a: 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_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: 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_02e3: 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_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: 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_0317: Unknown result type (might be due to invalid IL or missing references) //IL_0329: Unknown result type (might be due to invalid IL or missing references) //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_0365: Unknown result type (might be due to invalid IL or missing references) //IL_036a: 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_0385: Unknown result type (might be due to invalid IL or missing references) //IL_039b: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: 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_03b8: 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_03be: Unknown result type (might be due to invalid IL or missing references) //IL_03cc: 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_03f4: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: 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_0435: Unknown result type (might be due to invalid IL or missing references) //IL_044b: Unknown result type (might be due to invalid IL or missing references) //IL_0450: Unknown result type (might be due to invalid IL or missing references) //IL_0466: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0473: 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) //IL_0479: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_0484: Unknown result type (might be due to invalid IL or missing references) //IL_0489: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04c8: Unknown result type (might be due to invalid IL or missing references) //IL_04fb: Unknown result type (might be due to invalid IL or missing references) //IL_0500: Unknown result type (might be due to invalid IL or missing references) //IL_0516: Unknown result type (might be due to invalid IL or missing references) //IL_051b: Unknown result type (might be due to invalid IL or missing references) //IL_0531: Unknown result type (might be due to invalid IL or missing references) //IL_0536: Unknown result type (might be due to invalid IL or missing references) //IL_053e: Unknown result type (might be due to invalid IL or missing references) //IL_0543: Unknown result type (might be due to invalid IL or missing references) //IL_0544: Unknown result type (might be due to invalid IL or missing references) //IL_054e: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_0554: Unknown result type (might be due to invalid IL or missing references) //IL_0562: Unknown result type (might be due to invalid IL or missing references) //IL_0578: Unknown result type (might be due to invalid IL or missing references) //IL_058a: Unknown result type (might be due to invalid IL or missing references) //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05cb: Unknown result type (might be due to invalid IL or missing references) //IL_05e1: Unknown result type (might be due to invalid IL or missing references) //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05fc: Unknown result type (might be due to invalid IL or missing references) //IL_0601: Unknown result type (might be due to invalid IL or missing references) //IL_0609: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_060f: Unknown result type (might be due to invalid IL or missing references) //IL_0618: Unknown result type (might be due to invalid IL or missing references) //IL_0621: Unknown result type (might be due to invalid IL or missing references) //IL_0654: Unknown result type (might be due to invalid IL or missing references) //IL_0659: Unknown result type (might be due to invalid IL or missing references) //IL_066f: Unknown result type (might be due to invalid IL or missing references) //IL_0674: Unknown result type (might be due to invalid IL or missing references) //IL_068a: Unknown result type (might be due to invalid IL or missing references) //IL_068f: Unknown result type (might be due to invalid IL or missing references) //IL_0697: Unknown result type (might be due to invalid IL or missing references) //IL_069c: Unknown result type (might be due to invalid IL or missing references) //IL_069d: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Unknown result type (might be due to invalid IL or missing references) //IL_06a8: Unknown result type (might be due to invalid IL or missing references) //IL_06ad: Unknown result type (might be due to invalid IL or missing references) //IL_06bb: Unknown result type (might be due to invalid IL or missing references) //IL_06d1: Unknown result type (might be due to invalid IL or missing references) //IL_06e3: Unknown result type (might be due to invalid IL or missing references) //IL_06ec: Unknown result type (might be due to invalid IL or missing references) //IL_071f: Unknown result type (might be due to invalid IL or missing references) //IL_0724: Unknown result type (might be due to invalid IL or missing references) //IL_073a: Unknown result type (might be due to invalid IL or missing references) //IL_073f: Unknown result type (might be due to invalid IL or missing references) //IL_0755: Unknown result type (might be due to invalid IL or missing references) //IL_075a: Unknown result type (might be due to invalid IL or missing references) //IL_0762: Unknown result type (might be due to invalid IL or missing references) //IL_0767: Unknown result type (might be due to invalid IL or missing references) //IL_0768: Unknown result type (might be due to invalid IL or missing references) //IL_0772: Unknown result type (might be due to invalid IL or missing references) //IL_0773: Unknown result type (might be due to invalid IL or missing references) //IL_0778: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_079c: Unknown result type (might be due to invalid IL or missing references) //IL_07ae: Unknown result type (might be due to invalid IL or missing references) //IL_07b7: Unknown result type (might be due to invalid IL or missing references) //IL_07ea: Unknown result type (might be due to invalid IL or missing references) //IL_07ef: Unknown result type (might be due to invalid IL or missing references) //IL_0805: Unknown result type (might be due to invalid IL or missing references) //IL_080a: Unknown result type (might be due to invalid IL or missing references) //IL_0820: Unknown result type (might be due to invalid IL or missing references) //IL_0825: Unknown result type (might be due to invalid IL or missing references) //IL_082d: Unknown result type (might be due to invalid IL or missing references) //IL_0832: Unknown result type (might be due to invalid IL or missing references) //IL_0833: Unknown result type (might be due to invalid IL or missing references) //IL_083d: Unknown result type (might be due to invalid IL or missing references) //IL_083e: Unknown result type (might be due to invalid IL or missing references) //IL_0843: Unknown result type (might be due to invalid IL or missing references) //IL_0851: Unknown result type (might be due to invalid IL or missing references) //IL_0867: Unknown result type (might be due to invalid IL or missing references) //IL_0879: Unknown result type (might be due to invalid IL or missing references) //IL_0882: Unknown result type (might be due to invalid IL or missing references) //IL_08b5: Unknown result type (might be due to invalid IL or missing references) //IL_08ba: Unknown result type (might be due to invalid IL or missing references) //IL_08d0: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_08eb: Unknown result type (might be due to invalid IL or missing references) //IL_08f0: Unknown result type (might be due to invalid IL or missing references) //IL_08f8: Unknown result type (might be due to invalid IL or missing references) //IL_08fd: Unknown result type (might be due to invalid IL or missing references) //IL_08fe: Unknown result type (might be due to invalid IL or missing references) //IL_0908: Unknown result type (might be due to invalid IL or missing references) //IL_0909: Unknown result type (might be due to invalid IL or missing references) //IL_090e: Unknown result type (might be due to invalid IL or missing references) //IL_091c: Unknown result type (might be due to invalid IL or missing references) //IL_0932: Unknown result type (might be due to invalid IL or missing references) //IL_0944: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0980: Unknown result type (might be due to invalid IL or missing references) //IL_0985: Unknown result type (might be due to invalid IL or missing references) //IL_099b: Unknown result type (might be due to invalid IL or missing references) //IL_09a0: Unknown result type (might be due to invalid IL or missing references) //IL_09b6: Unknown result type (might be due to invalid IL or missing references) //IL_09bb: Unknown result type (might be due to invalid IL or missing references) //IL_09c3: Unknown result type (might be due to invalid IL or missing references) //IL_09c8: Unknown result type (might be due to invalid IL or missing references) //IL_09c9: Unknown result type (might be due to invalid IL or missing references) //IL_09d3: Unknown result type (might be due to invalid IL or missing references) //IL_09d4: Unknown result type (might be due to invalid IL or missing references) //IL_09d9: Unknown result type (might be due to invalid IL or missing references) //IL_09e7: Unknown result type (might be due to invalid IL or missing references) //IL_09fd: Unknown result type (might be due to invalid IL or missing references) //IL_0a0f: Unknown result type (might be due to invalid IL or missing references) //IL_0a18: Unknown result type (might be due to invalid IL or missing references) //IL_0a4b: Unknown result type (might be due to invalid IL or missing references) //IL_0a50: Unknown result type (might be due to invalid IL or missing references) //IL_0a66: Unknown result type (might be due to invalid IL or missing references) //IL_0a6b: Unknown result type (might be due to invalid IL or missing references) //IL_0a81: Unknown result type (might be due to invalid IL or missing references) //IL_0a86: Unknown result type (might be due to invalid IL or missing references) //IL_0a8e: Unknown result type (might be due to invalid IL or missing references) //IL_0a93: Unknown result type (might be due to invalid IL or missing references) //IL_0a94: Unknown result type (might be due to invalid IL or missing references) //IL_0a9e: Unknown result type (might be due to invalid IL or missing references) //IL_0a9f: Unknown result type (might be due to invalid IL or missing references) //IL_0aa4: Unknown result type (might be due to invalid IL or missing references) //IL_0ab2: Unknown result type (might be due to invalid IL or missing references) //IL_0ac8: Unknown result type (might be due to invalid IL or missing references) //IL_0ada: Unknown result type (might be due to invalid IL or missing references) //IL_0ae3: Unknown result type (might be due to invalid IL or missing references) //IL_0b16: Unknown result type (might be due to invalid IL or missing references) //IL_0b1b: Unknown result type (might be due to invalid IL or missing references) //IL_0b31: Unknown result type (might be due to invalid IL or missing references) //IL_0b36: Unknown result type (might be due to invalid IL or missing references) //IL_0b4c: Unknown result type (might be due to invalid IL or missing references) //IL_0b51: Unknown result type (might be due to invalid IL or missing references) //IL_0b59: Unknown result type (might be due to invalid IL or missing references) //IL_0b5e: Unknown result type (might be due to invalid IL or missing references) //IL_0b5f: Unknown result type (might be due to invalid IL or missing references) //IL_0b69: Unknown result type (might be due to invalid IL or missing references) //IL_0b6a: Unknown result type (might be due to invalid IL or missing references) //IL_0b6f: Unknown result type (might be due to invalid IL or missing references) //IL_0b7d: Unknown result type (might be due to invalid IL or missing references) //IL_0b93: Unknown result type (might be due to invalid IL or missing references) //IL_0ba5: Unknown result type (might be due to invalid IL or missing references) //IL_0bae: Unknown result type (might be due to invalid IL or missing references) //IL_0be1: Unknown result type (might be due to invalid IL or missing references) //IL_0be6: Unknown result type (might be due to invalid IL or missing references) //IL_0bfc: Unknown result type (might be due to invalid IL or missing references) //IL_0c01: Unknown result type (might be due to invalid IL or missing references) //IL_0c17: Unknown result type (might be due to invalid IL or missing references) //IL_0c1c: Unknown result type (might be due to invalid IL or missing references) //IL_0c24: Unknown result type (might be due to invalid IL or missing references) //IL_0c29: Unknown result type (might be due to invalid IL or missing references) //IL_0c2a: Unknown result type (might be due to invalid IL or missing references) //IL_0c34: Unknown result type (might be due to invalid IL or missing references) //IL_0c35: Unknown result type (might be due to invalid IL or missing references) //IL_0c3a: Unknown result type (might be due to invalid IL or missing references) //IL_0c48: Unknown result type (might be due to invalid IL or missing references) //IL_0c5e: Unknown result type (might be due to invalid IL or missing references) //IL_0c70: Unknown result type (might be due to invalid IL or missing references) //IL_0c79: Unknown result type (might be due to invalid IL or missing references) //IL_0cac: Unknown result type (might be due to invalid IL or missing references) //IL_0cb1: Unknown result type (might be due to invalid IL or missing references) //IL_0cc7: Unknown result type (might be due to invalid IL or missing references) //IL_0ccc: Unknown result type (might be due to invalid IL or missing references) //IL_0ce2: Unknown result type (might be due to invalid IL or missing references) //IL_0ce7: Unknown result type (might be due to invalid IL or missing references) //IL_0cef: Unknown result type (might be due to invalid IL or missing references) //IL_0cf4: Unknown result type (might be due to invalid IL or missing references) //IL_0cf5: Unknown result type (might be due to invalid IL or missing references) //IL_0cff: Unknown result type (might be due to invalid IL or missing references) //IL_0d00: Unknown result type (might be due to invalid IL or missing references) //IL_0d05: Unknown result type (might be due to invalid IL or missing references) //IL_0d13: Unknown result type (might be due to invalid IL or missing references) //IL_0d29: Unknown result type (might be due to invalid IL or missing references) //IL_0d3b: Unknown result type (might be due to invalid IL or missing references) //IL_0d44: Unknown result type (might be due to invalid IL or missing references) //IL_0d77: Unknown result type (might be due to invalid IL or missing references) //IL_0d7c: Unknown result type (might be due to invalid IL or missing references) //IL_0d92: Unknown result type (might be due to invalid IL or missing references) //IL_0d97: Unknown result type (might be due to invalid IL or missing references) //IL_0dad: Unknown result type (might be due to invalid IL or missing references) //IL_0db2: Unknown result type (might be due to invalid IL or missing references) //IL_0dba: Unknown result type (might be due to invalid IL or missing references) //IL_0dbf: Unknown result type (might be due to invalid IL or missing references) //IL_0dc0: Unknown result type (might be due to invalid IL or missing references) //IL_0dca: Unknown result type (might be due to invalid IL or missing references) //IL_0dcb: Unknown result type (might be due to invalid IL or missing references) //IL_0dd0: Unknown result type (might be due to invalid IL or missing references) //IL_0dde: Unknown result type (might be due to invalid IL or missing references) //IL_0df4: Unknown result type (might be due to invalid IL or missing references) //IL_0e06: Unknown result type (might be due to invalid IL or missing references) //IL_0e0f: Unknown result type (might be due to invalid IL or missing references) //IL_0e42: Unknown result type (might be due to invalid IL or missing references) //IL_0e47: Unknown result type (might be due to invalid IL or missing references) //IL_0e5d: Unknown result type (might be due to invalid IL or missing references) //IL_0e62: Unknown result type (might be due to invalid IL or missing references) //IL_0e78: Unknown result type (might be due to invalid IL or missing references) //IL_0e7d: Unknown result type (might be due to invalid IL or missing references) //IL_0e85: Unknown result type (might be due to invalid IL or missing references) //IL_0e8a: Unknown result type (might be due to invalid IL or missing references) //IL_0e8b: Unknown result type (might be due to invalid IL or missing references) //IL_0e95: Unknown result type (might be due to invalid IL or missing references) //IL_0e96: Unknown result type (might be due to invalid IL or missing references) //IL_0e9b: Unknown result type (might be due to invalid IL or missing references) //IL_0ea9: Unknown result type (might be due to invalid IL or missing references) //IL_0ebf: Unknown result type (might be due to invalid IL or missing references) //IL_0ed1: Unknown result type (might be due to invalid IL or missing references) //IL_0eda: Unknown result type (might be due to invalid IL or missing references) //IL_0f0d: Unknown result type (might be due to invalid IL or missing references) //IL_0f12: Unknown result type (might be due to invalid IL or missing references) //IL_0f28: Unknown result type (might be due to invalid IL or missing references) //IL_0f2d: Unknown result type (might be due to invalid IL or missing references) //IL_0f43: Unknown result type (might be due to invalid IL or missing references) //IL_0f48: Unknown result type (might be due to invalid IL or missing references) //IL_0f50: Unknown result type (might be due to invalid IL or missing references) //IL_0f55: Unknown result type (might be due to invalid IL or missing references) //IL_0f56: Unknown result type (might be due to invalid IL or missing references) //IL_0f60: Unknown result type (might be due to invalid IL or missing references) //IL_0f61: Unknown result type (might be due to invalid IL or missing references) //IL_0f66: Unknown result type (might be due to invalid IL or missing references) //IL_0f74: Unknown result type (might be due to invalid IL or missing references) //IL_0f8a: Unknown result type (might be due to invalid IL or missing references) //IL_0f9c: Unknown result type (might be due to invalid IL or missing references) //IL_0fa5: Unknown result type (might be due to invalid IL or missing references) //IL_0fd8: Unknown result type (might be due to invalid IL or missing references) //IL_0fdd: Unknown result type (might be due to invalid IL or missing references) //IL_0ff3: Unknown result type (might be due to invalid IL or missing references) //IL_0ff8: Unknown result type (might be due to invalid IL or missing references) //IL_100e: Unknown result type (might be due to invalid IL or missing references) //IL_1013: Unknown result type (might be due to invalid IL or missing references) //IL_101b: Unknown result type (might be due to invalid IL or missing references) //IL_1020: Unknown result type (might be due to invalid IL or missing references) //IL_1021: Unknown result type (might be due to invalid IL or missing references) //IL_102b: Unknown result type (might be due to invalid IL or missing references) //IL_102c: Unknown result type (might be due to invalid IL or missing references) //IL_1031: Unknown result type (might be due to invalid IL or missing references) //IL_103f: Unknown result type (might be due to invalid IL or missing references) //IL_1055: Unknown result type (might be due to invalid IL or missing references) //IL_1067: Unknown result type (might be due to invalid IL or missing references) //IL_1070: Unknown result type (might be due to invalid IL or missing references) //IL_10a3: Unknown result type (might be due to invalid IL or missing references) //IL_10a8: Unknown result type (might be due to invalid IL or missing references) //IL_10be: Unknown result type (might be due to invalid IL or missing references) //IL_10c3: Unknown result type (might be due to invalid IL or missing references) //IL_10d9: Unknown result type (might be due to invalid IL or missing references) //IL_10de: Unknown result type (might be due to invalid IL or missing references) //IL_10e6: Unknown result type (might be due to invalid IL or missing references) //IL_10eb: Unknown result type (might be due to invalid IL or missing references) //IL_10ec: Unknown result type (might be due to invalid IL or missing references) //IL_10f6: Unknown result type (might be due to invalid IL or missing references) //IL_10f7: Unknown result type (might be due to invalid IL or missing references) //IL_10fc: Unknown result type (might be due to invalid IL or missing references) //IL_110a: Unknown result type (might be due to invalid IL or missing references) //IL_1120: Unknown result type (might be due to invalid IL or missing references) //IL_1132: Unknown result type (might be due to invalid IL or missing references) //IL_113b: Unknown result type (might be due to invalid IL or missing references) //IL_116e: Unknown result type (might be due to invalid IL or missing references) //IL_1173: Unknown result type (might be due to invalid IL or missing references) //IL_1189: Unknown result type (might be due to invalid IL or missing references) //IL_118e: Unknown result type (might be due to invalid IL or missing references) //IL_11a4: Unknown result type (might be due to invalid IL or missing references) //IL_11a9: Unknown result type (might be due to invalid IL or missing references) //IL_11b1: Unknown result type (might be due to invalid IL or missing references) //IL_11b6: Unknown result type (might be due to invalid IL or missing references) //IL_11b7: Unknown result type (might be due to invalid IL or missing references) //IL_11c1: Unknown result type (might be due to invalid IL or missing references) //IL_11c2: Unknown result type (might be due to invalid IL or missing references) //IL_11c7: Unknown result type (might be due to invalid IL or missing references) //IL_11d5: Unknown result type (might be due to invalid IL or missing references) //IL_11eb: Unknown result type (might be due to invalid IL or missing references) //IL_11fd: Unknown result type (might be due to invalid IL or missing references) //IL_1206: Unknown result type (might be due to invalid IL or missing references) //IL_1239: Unknown result type (might be due to invalid IL or missing references) //IL_123e: Unknown result type (might be due to invalid IL or missing references) //IL_1254: Unknown result type (might be due to invalid IL or missing references) //IL_1259: Unknown result type (might be due to invalid IL or missing references) //IL_126f: Unknown result type (might be due to invalid IL or missing references) //IL_1274: Unknown result type (might be due to invalid IL or missing references) //IL_127c: Unknown result type (might be due to invalid IL or missing references) //IL_1281: Unknown result type (might be due to invalid IL or missing references) //IL_1282: Unknown result type (might be due to invalid IL or missing references) //IL_128c: Unknown result type (might be due to invalid IL or missing references) //IL_128d: Unknown result type (might be due to invalid IL or missing references) //IL_1292: Unknown result type (might be due to invalid IL or missing references) //IL_12a0: Unknown result type (might be due to invalid IL or missing references) //IL_12b6: Unknown result type (might be due to invalid IL or missing references) //IL_12c8: Unknown result type (might be due to invalid IL or missing references) //IL_12d1: Unknown result type (might be due to invalid IL or missing references) //IL_1304: Unknown result type (might be due to invalid IL or missing references) //IL_1309: Unknown result type (might be due to invalid IL or missing references) //IL_131f: Unknown result type (might be due to invalid IL or missing references) //IL_1324: Unknown result type (might be due to invalid IL or missing references) //IL_133a: Unknown result type (might be due to invalid IL or missing references) //IL_133f: Unknown result type (might be due to invalid IL or missing references) //IL_1347: Unknown result type (might be due to invalid IL or missing references) //IL_134c: Unknown result type (might be due to invalid IL or missing references) //IL_134d: Unknown result type (might be due to invalid IL or missing references) //IL_1356: Unknown result type (might be due to invalid IL or missing references) //IL_135f: Unknown result type (might be due to invalid IL or missing references) //IL_1392: Unknown result type (might be due to invalid IL or missing references) //IL_1397: Unknown result type (might be due to invalid IL or missing references) //IL_13ad: Unknown result type (might be due to invalid IL or missing references) //IL_13b2: Unknown result type (might be due to invalid IL or missing references) //IL_13c8: Unknown result type (might be due to invalid IL or missing references) //IL_13cd: Unknown result type (might be due to invalid IL or missing references) //IL_13d5: Unknown result type (might be due to invalid IL or missing references) //IL_13da: Unknown result type (might be due to invalid IL or missing references) //IL_13db: Unknown result type (might be due to invalid IL or missing references) //IL_13e5: Unknown result type (might be due to invalid IL or missing references) //IL_13e6: Unknown result type (might be due to invalid IL or missing references) //IL_13eb: Unknown result type (might be due to invalid IL or missing references) //IL_13f9: Unknown result type (might be due to invalid IL or missing references) //IL_140f: Unknown result type (might be due to invalid IL or missing references) //IL_1421: Unknown result type (might be due to invalid IL or missing references) //IL_142a: Unknown result type (might be due to invalid IL or missing references) //IL_145d: Unknown result type (might be due to invalid IL or missing references) //IL_1462: Unknown result type (might be due to invalid IL or missing references) //IL_1478: Unknown result type (might be due to invalid IL or missing references) //IL_147d: Unknown result type (might be due to invalid IL or missing references) //IL_1493: Unknown result type (might be due to invalid IL or missing references) //IL_1498: Unknown result type (might be due to invalid IL or missing references) //IL_14a0: Unknown result type (might be due to invalid IL or missing references) //IL_14a5: Unknown result type (might be due to invalid IL or missing references) //IL_14a6: Unknown result type (might be due to invalid IL or missing references) //IL_14b0: Unknown result type (might be due to invalid IL or missing references) //IL_14b1: Unknown result type (might be due to invalid IL or missing references) //IL_14b6: Unknown result type (might be due to invalid IL or missing references) //IL_14c4: Unknown result type (might be due to invalid IL or missing references) //IL_14da: Unknown result type (might be due to invalid IL or missing references) //IL_14ec: Unknown result type (might be due to invalid IL or missing references) //IL_14f5: Unknown result type (might be due to invalid IL or missing references) //IL_1528: Unknown result type (might be due to invalid IL or missing references) //IL_152d: Unknown result type (might be due to invalid IL or missing references) //IL_1543: Unknown result type (might be due to invalid IL or missing references) //IL_1548: Unknown result type (might be due to invalid IL or missing references) //IL_155e: Unknown result type (might be due to invalid IL or missing references) //IL_1563: Unknown result type (might be due to invalid IL or missing references) //IL_156b: Unknown result type (might be due to invalid IL or missing references) //IL_1570: Unknown result type (might be due to invalid IL or missing references) //IL_1571: Unknown result type (might be due to invalid IL or missing references) //IL_157b: Unknown result type (might be due to invalid IL or missing references) //IL_157c: Unknown result type (might be due to invalid IL or missing references) //IL_1581: Unknown result type (might be due to invalid IL or missing references) //IL_158f: Unknown result type (might be due to invalid IL or missing references) //IL_15a5: Unknown result type (might be due to invalid IL or missing references) //IL_15b7: Unknown result type (might be due to invalid IL or missing references) //IL_15c0: Unknown result type (might be due to invalid IL or missing references) //IL_15f3: Unknown result type (might be due to invalid IL or missing references) //IL_15f8: Unknown result type (might be due to invalid IL or missing references) //IL_160e: Unknown result type (might be due to invalid IL or missing references) //IL_1613: Unknown result type (might be due to invalid IL or missing references) //IL_1629: Unknown result type (might be due to invalid IL or missing references) //IL_162e: Unknown result type (might be due to invalid IL or missing references) //IL_1636: Unknown result type (might be due to invalid IL or missing references) //IL_163b: Unknown result type (might be due to invalid IL or missing references) //IL_163c: Unknown result type (might be due to invalid IL or missing references) //IL_1646: Unknown result type (might be due to invalid IL or missing references) //IL_1647: Unknown result type (might be due to invalid IL or missing references) //IL_164c: Unknown result type (might be due to invalid IL or missing references) //IL_165a: Unknown result type (might be due to invalid IL or missing references) //IL_1670: Unknown result type (might be due to invalid IL or missing references) //IL_1682: Unknown result type (might be due to invalid IL or missing references) //IL_168b: Unknown result type (might be due to invalid IL or missing references) //IL_16be: Unknown result type (might be due to invalid IL or missing references) //IL_16c3: Unknown result type (might be due to invalid IL or missing references) //IL_16d9: Unknown result type (might be due to invalid IL or missing references) //IL_16de: Unknown result type (might be due to invalid IL or missing references) //IL_16f4: Unknown result type (might be due to invalid IL or missing references) //IL_16f9: Unknown result type (might be due to invalid IL or missing references) //IL_1701: Unknown result type (might be due to invalid IL or missing references) //IL_1706: Unknown result type (might be due to invalid IL or missing references) //IL_1707: Unknown result type (might be due to invalid IL or missing references) //IL_1711: Unknown result type (might be due to invalid IL or missing references) //IL_1712: Unknown result type (might be due to invalid IL or missing references) //IL_1717: Unknown result type (might be due to invalid IL or missing references) //IL_1725: Unknown result type (might be due to invalid IL or missing references) //IL_173b: Unknown result type (might be due to invalid IL or missing references) //IL_174d: Unknown result type (might be due to invalid IL or missing references) //IL_1756: Unknown result type (might be due to invalid IL or missing references) //IL_1789: Unknown result type (might be due to invalid IL or missing references) //IL_178e: Unknown result type (might be due to invalid IL or missing references) //IL_17a4: Unknown result type (might be due to invalid IL or missing references) //IL_17a9: Unknown result type (might be due to invalid IL or missing references) //IL_17bf: Unknown result type (might be due to invalid IL or missing references) //IL_17c4: Unknown result type (might be due to invalid IL or missing references) //IL_17cc: Unknown result type (might be due to invalid IL or missing references) //IL_17d1: Unknown result type (might be due to invalid IL or missing references) //IL_17d2: Unknown result type (might be due to invalid IL or missing references) //IL_17dc: Unknown result type (might be due to invalid IL or missing references) //IL_17dd: Unknown result type (might be due to invalid IL or missing references) //IL_17e2: Unknown result type (might be due to invalid IL or missing references) //IL_17f0: Unknown result type (might be due to invalid IL or missing references) //IL_1806: Unknown result type (might be due to invalid IL or missing references) //IL_1818: Unknown result type (might be due to invalid IL or missing references) //IL_1821: Unknown result type (might be due to invalid IL or missing references) //IL_1854: Unknown result type (might be due to invalid IL or missing references) //IL_1859: Unknown result type (might be due to invalid IL or missing references) //IL_186f: Unknown result type (might be due to invalid IL or missing references) //IL_1874: Unknown result type (might be due to invalid IL or missing references) //IL_188a: Unknown result type (might be due to invalid IL or missing references) //IL_188f: Unknown result type (might be due to invalid IL or missing references) //IL_1897: Unknown result type (might be due to invalid IL or missing references) //IL_189c: Unknown result type (might be due to invalid IL or missing references) //IL_189d: Unknown result type (might be due to invalid IL or missing references) //IL_18a7: Unknown result type (might be due to invalid IL or missing references) //IL_18a8: Unknown result type (might be due to invalid IL or missing references) //IL_18ad: Unknown result type (might be due to invalid IL or missing references) //IL_18bb: Unknown result type (might be due to invalid IL or missing references) //IL_18d1: Unknown result type (might be due to invalid IL or missing references) //IL_18e3: Unknown result type (might be due to invalid IL or missing references) //IL_18ec: Unknown result type (might be due to invalid IL or missing references) //IL_191f: Unknown result type (might be due to invalid IL or missing references) //IL_1924: Unknown result type (might be due to invalid IL or missing references) //IL_193a: Unknown result type (might be due to invalid IL or missing references) //IL_193f: Unknown result type (might be due to invalid IL or missing references) //IL_1955: Unknown result type (might be due to invalid IL or missing references) //IL_195a: Unknown result type (might be due to invalid IL or missing references) //IL_1962: Unknown result type (might be due to invalid IL or missing references) //IL_1967: Unknown result type (might be due to invalid IL or missing references) //IL_1968: Unknown result type (might be due to invalid IL or missing references) //IL_1972: Unknown result type (might be due to invalid IL or missing references) //IL_1973: Unknown result type (might be due to invalid IL or missing references) //IL_1978: Unknown result type (might be due to invalid IL or missing references) //IL_1986: Unknown result type (might be due to invalid IL or missing references) //IL_199c: Unknown result type (might be due to invalid IL or missing references) //IL_19ae: Unknown result type (might be due to invalid IL or missing references) //IL_19b7: Unknown result type (might be due to invalid IL or missing references) //IL_19ea: Unknown result type (might be due to invalid IL or missing references) //IL_19ef: Unknown result type (might be due to invalid IL or missing references) //IL_1a05: Unknown result type (might be due to invalid IL or missing references) //IL_1a0a: Unknown result type (might be due to invalid IL or missing references) //IL_1a20: Unknown result type (might be due to invalid IL or missing references) //IL_1a25: Unknown result type (might be due to invalid IL or missing references) //IL_1a2d: Unknown result type (might be due to invalid IL or missing references) //IL_1a32: Unknown result type (might be due to invalid IL or missing references) //IL_1a33: Unknown result type (might be due to invalid IL or missing references) //IL_1a3d: Unknown result type (might be due to invalid IL or missing references) //IL_1a3e: Unknown result type (might be due to invalid IL or missing references) //IL_1a43: Unknown result type (might be due to invalid IL or missing references) //IL_1a51: Unknown result type (might be due to invalid IL or missing references) //IL_1a67: Unknown result type (might be due to invalid IL or missing references) //IL_1a79: Unknown result type (might be due to invalid IL or missing references) //IL_1a82: Unknown result type (might be due to invalid IL or missing references) //IL_1ab5: Unknown result type (might be due to invalid IL or missing references) //IL_1aba: Unknown result type (might be due to invalid IL or missing references) //IL_1ad0: Unknown result type (might be due to invalid IL or missing references) //IL_1ad5: Unknown result type (might be due to invalid IL or missing references) //IL_1aeb: Unknown result type (might be due to invalid IL or missing references) //IL_1af0: Unknown result type (might be due to invalid IL or missing references) //IL_1af8: Unknown result type (might be due to invalid IL or missing references) //IL_1afd: Unknown result type (might be due to invalid IL or missing references) //IL_1afe: Unknown result type (might be due to invalid IL or missing references) //IL_1b08: Unknown result type (might be due to invalid IL or missing references) //IL_1b09: Unknown result type (might be due to invalid IL or missing references) //IL_1b0e: Unknown result type (might be due to invalid IL or missing references) //IL_1b1c: Unknown result type (might be due to invalid IL or missing references) //IL_1b32: Unknown result type (might be due to invalid IL or missing references) //IL_1b44: Unknown result type (might be due to invalid IL or missing references) //IL_1b4d: Unknown result type (might be due to invalid IL or missing references) //IL_1b80: Unknown result type (might be due to invalid IL or missing references) //IL_1b85: Unknown result type (might be due to invalid IL or missing references) //IL_1b9b: Unknown result type (might be due to invalid IL or missing references) //IL_1ba0: Unknown result type (might be due to invalid IL or missing references) //IL_1bb6: Unknown result type (might be due to invalid IL or missing references) //IL_1bbb: Unknown result type (might be due to invalid IL or missing references) //IL_1bc3: Unknown result type (might be due to invalid IL or missing references) //IL_1bc8: Unknown result type (might be due to invalid IL or missing references) //IL_1bc9: Unknown result type (might be due to invalid IL or missing references) //IL_1bd3: Unknown result type (might be due to invalid IL or missing references) //IL_1bd4: Unknown result type (might be due to invalid IL or missing references) //IL_1bd9: Unknown result type (might be due to invalid IL or missing references) //IL_1be7: Unknown result type (might be due to invalid IL or missing references) //IL_1bfd: Unknown result type (might be due to invalid IL or missing references) //IL_1c0f: Unknown result type (might be due to invalid IL or missing references) //IL_1c18: Unknown result type (might be due to invalid IL or missing references) //IL_1c4b: Unknown result type (might be due to invalid IL or missing references) //IL_1c50: Unknown result type (might be due to invalid IL or missing references) //IL_1c66: Unknown result type (might be due to invalid IL or missing references) //IL_1c6b: Unknown result type (might be due to invalid IL or missing references) //IL_1c81: Unknown result type (might be due to invalid IL or missing references) //IL_1c86: Unknown result type (might be due to invalid IL or missing references) //IL_1c8e: Unknown result type (might be due to invalid IL or missing references) //IL_1c93: Unknown result type (might be due to invalid IL or missing references) //IL_1c94: Unknown result type (might be due to invalid IL or missing references) //IL_1c9e: Unknown result type (might be due to invalid IL or missing references) //IL_1c9f: Unknown result type (might be due to invalid IL or missing references) //IL_1ca4: Unknown result type (might be due to invalid IL or missing references) //IL_1cb2: Unknown result type (might be due to invalid IL or missing references) //IL_1cc8: Unknown result type (might be due to invalid IL or missing references) //IL_1cda: Unknown result type (might be due to invalid IL or missing references) //IL_1ce3: Unknown result type (might be due to invalid IL or missing references) //IL_1d16: Unknown result type (might be due to invalid IL or missing references) //IL_1d1b: Unknown result type (might be due to invalid IL or missing references) //IL_1d31: Unknown result type (might be due to invalid IL or missing references) //IL_1d36: Unknown result type (might be due to invalid IL or missing references) //IL_1d4c: Unknown result type (might be due to invalid IL or missing references) //IL_1d51: Unknown result type (might be due to invalid IL or missing references) //IL_1d59: Unknown result type (might be due to invalid IL or missing references) //IL_1d5e: Unknown result type (might be due to invalid IL or missing references) //IL_1d5f: Unknown result type (might be due to invalid IL or missing references) //IL_1d69: Unknown result type (might be due to invalid IL or missing references) //IL_1d6a: Unknown result type (might be due to invalid IL or missing references) //IL_1d6f: Unknown result type (might be due to invalid IL or missing references) //IL_1d7d: Unknown result type (might be due to invalid IL or missing references) //IL_1d93: Unknown result type (might be due to invalid IL or missing references) //IL_1da5: Unknown result type (might be due to invalid IL or missing references) //IL_1dae: Unknown result type (might be due to invalid IL or missing references) //IL_1de1: Unknown result type (might be due to invalid IL or missing references) //IL_1de6: Unknown result type (might be due to invalid IL or missing references) //IL_1dfc: Unknown result type (might be due to invalid IL or missing references) //IL_1e01: Unknown result type (might be due to invalid IL or missing references) //IL_1e17: Unknown result type (might be due to invalid IL or missing references) //IL_1e1c: Unknown result type (might be due to invalid IL or missing references) //IL_1e24: Unknown result type (might be due to invalid IL or missing references) //IL_1e29: Unknown result type (might be due to invalid IL or missing references) //IL_1e2a: Unknown result type (might be due to invalid IL or missing references) //IL_1e34: Unknown result type (might be due to invalid IL or missing references) //IL_1e35: Unknown result type (might be due to invalid IL or missing references) //IL_1e3a: Unknown result type (might be due to invalid IL or missing references) //IL_1e48: Unknown result type (might be due to invalid IL or missing references) //IL_1e5e: Unknown result type (might be due to invalid IL or missing references) //IL_1e70: Unknown result type (might be due to invalid IL or missing references) //IL_1e79: Unknown result type (might be due to invalid IL or missing references) //IL_1eac: Unknown result type (might be due to invalid IL or missing references) //IL_1eb1: Unknown result type (might be due to invalid IL or missing references) //IL_1ec7: Unknown result type (might be due to invalid IL or missing references) //IL_1ecc: Unknown result type (might be due to invalid IL or missing references) //IL_1ee2: Unknown result type (might be due to invalid IL or missing references) //IL_1ee7: Unknown result type (might be due to invalid IL or missing references) //IL_1eef: Unknown result type (might be due to invalid IL or missing references) //IL_1ef4: Unknown result type (might be due to invalid IL or missing references) //IL_1ef5: Unknown result type (might be due to invalid IL or missing references) //IL_1eff: Unknown result type (might be due to invalid IL or missing references) //IL_1f00: Unknown result type (might be due to invalid IL or missing references) //IL_1f05: Unknown result type (might be due to invalid IL or missing references) //IL_1f13: Unknown result type (might be due to invalid IL or missing references) //IL_1f29: Unknown result type (might be due to invalid IL or missing references) //IL_1f3b: Unknown result type (might be due to invalid IL or missing references) //IL_1f44: Unknown result type (might be due to invalid IL or missing references) //IL_1f77: Unknown result type (might be due to invalid IL or missing references) //IL_1f7c: Unknown result type (might be due to invalid IL or missing references) //IL_1f92: Unknown result type (might be due to invalid IL or missing references) //IL_1f97: Unknown result type (might be due to invalid IL or missing references) //IL_1fad: Unknown result type (might be due to invalid IL or missing references) //IL_1fb2: Unknown result type (might be due to invalid IL or missing references) //IL_1fba: Unknown result type (might be due to invalid IL or missing references) //IL_1fbf: Unknown result type (might be due to invalid IL or missing references) //IL_1fc0: Unknown result type (might be due to invalid IL or missing references) //IL_1fca: Unknown result type (might be due to invalid IL or missing references) //IL_1fcb: Unknown result type (might be due to invalid IL or missing references) //IL_1fd0: Unknown result type (might be due to invalid IL or missing references) //IL_1fde: Unknown result type (might be due to invalid IL or missing references) //IL_1ff4: Unknown result type (might be due to invalid IL or missing references) //IL_2006: Unknown result type (might be due to invalid IL or missing references) //IL_200f: Unknown result type (might be due to invalid IL or missing references) //IL_2042: Unknown result type (might be due to invalid IL or missing references) //IL_2047: Unknown result type (might be due to invalid IL or missing references) //IL_205d: Unknown result type (might be due to invalid IL or missing references) //IL_2062: Unknown result type (might be due to invalid IL or missing references) //IL_2078: Unknown result type (might be due to invalid IL or missing references) //IL_207d: Unknown result type (might be due to invalid IL or missing references) //IL_2085: Unknown result type (might be due to invalid IL or missing references) //IL_208a: Unknown result type (might be due to invalid IL or missing references) //IL_208b: Unknown result type (might be due to invalid IL or missing references) //IL_2095: Unknown result type (might be due to invalid IL or missing references) //IL_2096: Unknown result type (might be due to invalid IL or missing references) //IL_209b: Unknown result type (might be due to invalid IL or missing references) itemDisplayRules = new List(); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixRed, displayRuleGroup = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/ClayBruiserBody").GetComponentInChildren().itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixRed) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixBlue, displayRuleGroup = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/ClayBruiserBody").GetComponentInChildren().itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixBlue) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixWhite, displayRuleGroup = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/ClayBruiserBody").GetComponentInChildren().itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixWhite) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixPoison, displayRuleGroup = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/ClayBruiserBody").GetComponentInChildren().itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixPoison) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixHaunted, displayRuleGroup = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/ClayBruiserBody").GetComponentInChildren().itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixHaunted) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Jetpack, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayBugWings"), childName = "Head", localPos = new Vector3(-0.15f, -0.25f, 0f), localAngles = new Vector3(0f, 45f, 0f), localScale = new Vector3(0.25f, 0.25f, 0.25f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.GoldGat, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayGoldGat"), childName = "Muzzle", localPos = new Vector3(1f, 0.8f, -1f), localAngles = new Vector3(45f, 90f, 0f), localScale = new Vector3(0.5f, 0.5f, 0.5f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.CritGlasses, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayGlasses"), childName = "Head", localPos = new Vector3(0f, 0.4f, 0.25f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.5f, 0.5f, 0.5f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.AttackSpeedOnCrit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayWolfPelt"), childName = "Head", localPos = new Vector3(0f, 0.5f, 0.067f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.JumpBoost, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayWaxBird"), childName = "Head", localPos = new Vector3(0f, -0.7f, -0.05f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(2f, 2f, 2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Bandolier, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayBandolier"), childName = "Muzzle", localPos = new Vector3(0.05f, -0.05f, -1.75f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.75f, 1f, 1f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayBandolier"), childName = "Head", localPos = new Vector3(-0.2f, -0.5f, 0.25f), localAngles = new Vector3(-45f, 180f, 0f), localScale = new Vector3(1f, 2f, 1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.DeathMark, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayDeathMark"), childName = "Muzzle", localPos = new Vector3(0f, 0f, -0.25f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.WarCryOnMultiKill, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayPauldron"), childName = "Head", localPos = new Vector3(0f, 0.1f, -0.25f), localAngles = new Vector3(-90f, 0f, 0f), localScale = new Vector3(1.5f, 1.5f, 1.5f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Mushroom, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayMushroom"), childName = "Head", localPos = new Vector3(-0.25f, 0f, 0f), localAngles = new Vector3(0f, 0f, 45f), localScale = new Vector3(0.25f, 0.25f, 0.25f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.BarrierOnOverHeal, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayAegis"), childName = "Muzzle", localPos = new Vector3(0f, 0.25f, -1f), localAngles = new Vector3(180f, 180f, 180f), localScale = new Vector3(0.75f, 0.75f, 0.75f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Behemoth, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayBehemoth"), childName = "Muzzle", localPos = new Vector3(0f, 0f, -0.9f), localAngles = new Vector3(90f, 0f, 0f), localScale = new Vector3(0.5f, 0.5f, 0.5f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.NearbyDamageBonus, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayDiamond"), childName = "Muzzle", localPos = new Vector3(0f, 0f, -2.75f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.7f, 0.7f, 0.7f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.FireRing, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayFireRing"), childName = "Muzzle", localPos = new Vector3(0f, 0f, -1f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(3.5f, 3.5f, 3.5f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.IceRing, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayIceRing"), childName = "Muzzle", localPos = new Vector3(0f, 0f, -1.2f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(3.5f, 3.5f, 3.5f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.ArmorPlate, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayRepulsionArmorPlate"), childName = "Head", localPos = new Vector3(-0.4f, -0.5f, 0.15f), localAngles = new Vector3(-90f, 260f, 45f), localScale = new Vector3(0.8f, 0.6f, 0.6f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Bear, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayBear"), childName = "Head", localPos = new Vector3(0f, 0f, -0.4f), localAngles = new Vector3(0f, 180f, 0f), localScale = new Vector3(0.6f, 0.6f, 0.6f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Medkit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayMedkit"), childName = "Head", localPos = new Vector3(-0.4f, -0.5f, 0.15f), localAngles = new Vector3(-90f, -90f, 0f), localScale = new Vector3(1.5f, 1.5f, 1.5f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Dagger, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayDagger"), childName = "Head", localPos = new Vector3(0f, 0f, 0f), localAngles = new Vector3(-90f, -90f, 0f), localScale = new Vector3(2f, 2f, 2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.ChainLightning, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayUkulele"), childName = "Muzzle", localPos = new Vector3(0.4f, 0f, -1.75f), localAngles = new Vector3(0f, 85f, 90f), localScale = new Vector3(0.8f, 0.8f, 0.8f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Syringe, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplaySyringeCluster"), childName = "Head", localPos = new Vector3(0f, 0f, -0.15f), localAngles = new Vector3(-60f, 0f, 0f), localScale = new Vector3(0.5f, 0.5f, 0.5f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.ArmorReductionOnHit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayWarhammer"), childName = "Muzzle", localPos = new Vector3(0f, 0.25f, 0f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.FallBoots, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayGravBoots"), childName = "FootL", localPos = new Vector3(0f, -0.05f, 0f), localAngles = new Vector3(45f, 0f, 0f), localScale = new Vector3(0.25f, 0.25f, 0.25f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayGravBoots"), childName = "FootR", localPos = new Vector3(0f, -0.05f, 0f), localAngles = new Vector3(70f, 0f, 0f), localScale = new Vector3(0.25f, 0.25f, 0.25f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.BounceNearby, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayHook"), childName = "Muzzle", localPos = new Vector3(0f, 0f, -0.25f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.UtilitySkillMagazine, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayAfterburnerShoulderRing"), childName = "Muzzle", localPos = new Vector3(0f, 0f, -0.75f), localAngles = new Vector3(0f, -90f, 90f), localScale = new Vector3(2f, 2f, 2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Hoof, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayHoof"), childName = "FootL", localPos = new Vector3(0f, 0.05f, -0.15f), localAngles = new Vector3(50f, 180f, 180f), localScale = new Vector3(0.15f, 0.15f, 0.075f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.HealWhileSafe, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplaySnail"), childName = "FootR", localPos = new Vector3(0f, -0.05f, 0f), localAngles = new Vector3(0f, 0f, 180f), localScale = new Vector3(0.1f, 0.1f, 0.1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LunarPrimaryReplacement, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayBirdEye"), childName = "Muzzle", localPos = new Vector3(0f, -0.1f, -0.25f), localAngles = new Vector3(-90f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.SecondarySkillMagazine, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayDoubleMag"), childName = "Muzzle", localPos = new Vector3(0f, -0.8f, -2f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(-0.2f, -0.2f, -0.2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Pearl, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayPearl"), childName = "Head", localPos = new Vector3(-1f, 0f, 0f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.2f, 0.2f, 0.2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.ShinyPearl, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayShinyPearl"), childName = "Head", localPos = new Vector3(1f, 0f, 0f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.2f, 0.2f, 0.2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.SprintOutOfCombat, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayWhip"), childName = "Head", localPos = new Vector3(-0.5f, -1.2f, 0.25f), localAngles = new Vector3(0f, 0f, -20f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Fruit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayFruit"), childName = "Head", localPos = new Vector3(0.6f, -1.2f, 0f), localAngles = new Vector3(0f, -45f, 45f), localScale = new Vector3(0.75f, 0.75f, 0.75f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.BFG, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayBFG"), childName = "Muzzle", localPos = new Vector3(0f, 0.2f, -0.25f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.75f, 0.75f, 0.75f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Meteor, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayMeteor"), childName = "Root", localPos = new Vector3(0f, 2f, -0.75f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(2f, 2f, 2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Blackhole, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayGravCube"), childName = "Root", localPos = new Vector3(0f, 2f, -0.75f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Icicle, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayFrostRelic"), childName = "Root", localPos = new Vector3(-1f, 2f, -1f), localAngles = new Vector3(90f, 0f, 0f), localScale = new Vector3(2f, 2f, 2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Talisman, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayTalisman"), childName = "Root", localPos = new Vector3(1f, 2f, -1f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.FocusConvergence, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayFocusedConvergence"), childName = "Root", localPos = new Vector3(0.5f, 2.5f, -3f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.2f, 0.2f, 0.2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRuleSet.keyAssetRuleGroups = itemDisplayRules.ToArray(); itemDisplayRuleSet.GenerateRuntimeValues(); } internal static void PopulateDisplays() { ItemDisplayRuleSet val = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponent().modelTransform).GetComponent().itemDisplayRuleSet; KeyAssetRuleGroup[] keyAssetRuleGroups = val.keyAssetRuleGroups; for (int i = 0; i < keyAssetRuleGroups.Length; i++) { ItemDisplayRule[] rules = keyAssetRuleGroups[i].displayRuleGroup.rules; for (int j = 0; j < rules.Length; j++) { GameObject followerPrefab = rules[j].followerPrefab; if (Object.op_Implicit((Object)(object)followerPrefab)) { string key = ((Object)followerPrefab).name?.ToLower(); if (!itemDisplayPrefabs.ContainsKey(key)) { itemDisplayPrefabs[key] = followerPrefab; } } } } } internal static GameObject LoadDisplay(string name) { if (itemDisplayPrefabs.ContainsKey(name.ToLower()) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[name.ToLower()])) { return itemDisplayPrefabs[name.ToLower()]; } return null; } } public static class TemplarSkins { private static GameObjectActivation[] getActivations(GameObject[] allObjects, params GameObject[] activatedObjects) { //IL_0019: 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) List list = new List(); for (int i = 0; i < allObjects.Length; i++) { bool shouldActivate = activatedObjects.Contains(allObjects[i]); list.Add(new GameObjectActivation { gameObject = allObjects[i], shouldActivate = shouldActivate }); } return list.ToArray(); } public static void RegisterSkins() { //IL_003b: 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_0076: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) GameObject myCharacter = Templar.myCharacter; GameObject gameObject = ((Component)myCharacter.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); ModelSkinController component2 = gameObject.GetComponent(); ChildLocator component3 = gameObject.GetComponent(); SkinnedMeshRenderer[] componentsInChildren = gameObject.GetComponentsInChildren(); SkinDefParams val = Addressables.LoadAssetAsync((object)RoR2_Base_ClayBruiser.skinClayBruiserBodyDefault_params_asset).WaitForCompletion(); LanguageAPI.Add("Templar_DEFAULT_SKIN", "Default"); SkinDef val2 = component2.skins[0]; val2.icon = Skins.CreateSkinIcon(new Color(0.64f, 0.31f, 0.22f), new Color(0.54f, 0.21f, 0.12f), new Color(0.64f, 0.31f, 0.22f), new Color(0.54f, 0.21f, 0.12f)); val2.nameToken = "Templar_DEFAULT_SKIN"; ((Object)val2).name = "Templar_DEFAULT_SKIN"; } } }