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 ArsonistMod.Content.Controllers; using ArsonistMod.Modules; using ArsonistMod.Modules.Achievements; using ArsonistMod.Modules.Characters; using ArsonistMod.Modules.Networking; using ArsonistMod.Modules.ProjectileControllers; using ArsonistMod.Modules.Survivors; using ArsonistMod.SkillStates; using ArsonistMod.SkillStates.Arsonist.Secondary; using ArsonistMod.SkillStates.BaseStates; using ArsonistMod.SkillStates.EmoteStates; using ArsonistMod.SkillStates.ZeroPointBlast; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using EmotesAPI; using EntityStates; using EntityStates.Commando.CommandoWeapon; using EntityStates.LemurianMonster; using EntityStates.Mage.Weapon; using HG; using HG.BlendableTypes; using Inferno; using Moonstorm.Starstorm2; using On.RoR2; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using R2API.Utils; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using RoR2.Achievements; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.UI; [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.0", FrameworkDisplayName = ".NET Standard 2.0")] [assembly: AssemblyCompany("ArsonistMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("ArsonistMod")] [assembly: AssemblyTitle("ArsonistMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: UnverifiableCode] namespace ArsonistMod { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.PopcornFactory.Arsonist", "Arsonist", "2.0.3")] public class ArsonistPlugin : BaseUnityPlugin { public const string MODUID = "com.PopcornFactory.Arsonist"; public const string MODNAME = "Arsonist"; public const string MODVERSION = "2.0.3"; public const string DEVELOPER_PREFIX = "POPCORN"; public static bool starstormAvailable; public static bool infernoAvailable; public static ArsonistPlugin instance; private void Awake() { instance = this; Log.Init(((BaseUnityPlugin)this).Logger); Config.ReadConfig(); Assets.Initialize(); if (Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions")) { Config.SetupRiskOfOptions(); } if (Chainloader.PluginInfos.ContainsKey("com.TeamMoonstorm.Starstorm2")) { starstormAvailable = true; } if (Chainloader.PluginInfos.ContainsKey("HIFU.Inferno")) { infernoAvailable = true; } States.RegisterStates(); Buffs.RegisterBuffs(); Projectiles.RegisterProjectiles(); Tokens.AddTokens(); ItemDisplays.PopulateDisplays(); Damage.SetupModdedDamage(); new Arsonist().Initialize(); NetworkRequestSetup(); new ContentPacks().Initialize(); Hook(); } private void NetworkRequestSetup() { NetworkingAPI.RegisterMessageType(); NetworkingAPI.RegisterMessageType(); NetworkingAPI.RegisterMessageType(); NetworkingAPI.RegisterMessageType(); NetworkingAPI.RegisterMessageType(); NetworkingAPI.RegisterMessageType(); NetworkingAPI.RegisterMessageType(); NetworkingAPI.RegisterMessageType(); } private void Hook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Expected O, but got Unknown //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Expected O, but got Unknown CharacterBody.RecalculateStats += new hook_RecalculateStats(CharacterBody_RecalculateStats); HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage); CharacterModel.UpdateOverlays += new hook_UpdateOverlays(CharacterModel_UpdateOverlays); CharacterModel.Start += new hook_Start(CharacterModel_Start); CharacterBody.OnDeathStart += new hook_OnDeathStart(CharacterBody_OnDeathStart); if (Chainloader.PluginInfos.ContainsKey("com.weliveinasociety.CustomEmotesAPI")) { SurvivorCatalog.Init += new hook_Init(SurvivorCatalog_Init); } } private void CharacterBody_OnDeathStart(orig_OnDeathStart orig, CharacterBody self) { //IL_001f: 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_0049: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (self.baseNameToken == "POPCORN_ARSONIST_BODY_NAME") { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)self).netId, 2176930590u), (NetworkDestination)1); NetMessageExtensions.Send((INetMessage)(object)new KillAllEffectsNetworkRequest(((NetworkBehaviour)self).netId, killMaso: true), (NetworkDestination)1); NetMessageExtensions.Send((INetMessage)(object)new ToggleMasochismEffectNetworkRequest(((NetworkBehaviour)self).netId, toggleOn: false), (NetworkDestination)1); } } private void SurvivorCatalog_Init(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "ArsonistBody") { CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, Assets.mainAssetBundle.LoadAsset("HumanoidArsonist"), 0, true); } } } private void CharacterBody_RecalculateStats(orig_RecalculateStats orig, CharacterBody self) { if (!Object.op_Implicit((Object)(object)self.healthComponent)) { return; } orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && self.baseNameToken == "POPCORN_ARSONIST_BODY_NAME") { EnergySystem component = ((Component)self).gameObject.GetComponent(); if (self.HasBuff(Buffs.blueBuff)) { self.damage *= StaticValues.blueDamageMultiplier; } if (self.HasBuff(Buffs.lowerBuff)) { self.damage *= StaticValues.lowerDamageMultiplier; } if (self.HasBuff(Buffs.cleanseSpeedBoost)) { self.moveSpeed += 5f; } if (self.HasBuff(Buffs.masochismBuff)) { self.attackSpeed *= StaticValues.igniteAttackSpeedMultiplier; } if (self.HasBuff(Buffs.overheatDebuff) && !self.HasBuff(Buffs.masochismDeactivatedDebuff) && !self.HasBuff(Buffs.masochismDeactivatedNonDebuff)) { self.attackSpeed *= StaticValues.overheatAttackSpeedDebuff; } if (self.skillLocator.secondary.cooldownRemaining > 0f && component.hasOverheatedSecondary) { GenericSkill secondary = self.skillLocator.secondary; secondary.cooldownScale *= 1f; } else if (self.skillLocator.secondary.cooldownRemaining > 0f && !component.hasOverheatedSecondary) { GenericSkill secondary2 = self.skillLocator.secondary; secondary2.cooldownScale *= StaticValues.secondaryCooldownMultiplier; } if (self.skillLocator.utility.cooldownRemaining > 0f && component.hasOverheatedUtility) { GenericSkill utility = self.skillLocator.utility; utility.cooldownScale *= 1f; } else if (self.skillLocator.utility.cooldownRemaining > 0f && !component.hasOverheatedUtility) { GenericSkill utility2 = self.skillLocator.utility; utility2.cooldownScale *= StaticValues.utilityCooldownMultiplier; } if (self.skillLocator.special.cooldownRemaining > 0f && component.hasOverheatedSpecial) { GenericSkill special = self.skillLocator.special; special.cooldownScale *= 1f; } else if (self.skillLocator.special.cooldownRemaining > 0f && !component.hasOverheatedSpecial) { GenericSkill special2 = self.skillLocator.special; special2.cooldownScale *= StaticValues.specialCooldownMultiplier; } } } private void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Invalid comparison between Unknown and I4 //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Invalid comparison between Unknown and I4 //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Invalid comparison between Unknown and I4 //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Invalid comparison between Unknown and I4 //IL_008d: 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_0077: 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_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_0109: 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_00e1: 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_0125: 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_012f: 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_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_01da: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self.body)) { bool flag = (int)damageInfo.dotIndex == 1 || (int)damageInfo.dotIndex == 2 || (int)damageInfo.dotIndex == 7; bool flag2 = (int)damageInfo.damageType == 128; if (DamageAPI.HasModdedDamageType(damageInfo, Damage.arsonistStickyDamageType)) { NetMessageExtensions.Send((INetMessage)(object)new AttachFlareNetworkRequest(((NetworkBehaviour)self.body).netId, ((NetworkBehaviour)damageInfo.attacker.GetComponent()).netId, AttachFlareNetworkRequest.FlareType.STRONG), (NetworkDestination)1); } else if (DamageAPI.HasModdedDamageType(damageInfo, Damage.arsonistWeakStickyDamageType)) { NetMessageExtensions.Send((INetMessage)(object)new AttachFlareNetworkRequest(((NetworkBehaviour)self.body).netId, ((NetworkBehaviour)damageInfo.attacker.GetComponent()).netId, AttachFlareNetworkRequest.FlareType.WEAK), (NetworkDestination)1); } else if (DamageAPI.HasModdedDamageType(damageInfo, Damage.arsonistChildExplosionDamageType)) { NetMessageExtensions.Send((INetMessage)(object)new AttachFlareNetworkRequest(((NetworkBehaviour)self.body).netId, ((NetworkBehaviour)damageInfo.attacker.GetComponent()).netId, AttachFlareNetworkRequest.FlareType.CHILD_STRONG), (NetworkDestination)1); } DamageType val = (DamageType)2097153; DamageType val2 = (DamageType)2359296; if (self.body.HasBuff(Buffs.fallDamageReductionBuff) && (damageInfo.damageType == val || damageInfo.damageType == val2) && damageInfo.damage >= 20f) { damageInfo.damage = 20f; } if (self.body.baseNameToken == "POPCORN_ARSONIST_BODY_NAME" && damageInfo.damage > self.fullHealth * Config.passiveHealthPercentageTriggerIgnite.Value && damageInfo.damageType != val) { if (!flag) { damageInfo.damage *= StaticValues.igniteDamageReduction; InflictDotInfo val3 = default(InflictDotInfo); val3.totalDamage = damageInfo.damage; val3.attackerObject = ((Component)self.body).gameObject; val3.victimObject = ((Component)self.body).gameObject; val3.duration = StaticValues.passiveIgniteLength; val3.dotIndex = (DotIndex)1; DotController.InflictDot(ref val3); } if (damageInfo.damage > 0f && (flag || flag2)) { damageInfo.damage *= StaticValues.igniteDamageReduction; } } } orig.Invoke(self, damageInfo); } private void CharacterModel_UpdateOverlays(orig_UpdateOverlays orig, CharacterModel self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self.body)) { ArsonistController component = ((Component)self.body).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { overlayFunction(Assets.arsonistOverheatingMaterial, Object.op_Implicit((Object)(object)component), self); } } } private void CharacterModel_Start(orig_Start orig, CharacterModel self) { orig.Invoke(self); if (((Object)((Component)self).gameObject).name.Contains("ArsonistDisplay")) { ArsonistDisplayController component = ((Component)self).gameObject.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { component = ((Component)self).gameObject.AddComponent(); } } } private void overlayFunction(Material overlayMaterial, bool condition, CharacterModel model) { if (model.activeOverlayCount < CharacterModel.maxOverlays && condition) { Material[] currentOverlays = model.currentOverlays; int activeOverlayCount = model.activeOverlayCount; model.activeOverlayCount = activeOverlayCount + 1; currentOverlays[activeOverlayCount] = overlayMaterial; } } } internal static class Log { internal 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); } } } namespace ArsonistMod.SkillStates { public class Cleanse : BaseSkillState { public ArsonistController arsonistController; public EnergySystem energySystem; public float baseDuration = 1f; public float duration; public bool isStrong; public override void OnEnter() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0102: 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_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0171: 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_0188: 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_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Expected O, but got Unknown //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_0271: 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) ((BaseState)this).OnEnter(); energySystem = ((Component)((EntityState)this).characterBody).gameObject.GetComponent(); arsonistController = ((Component)((EntityState)this).characterBody).gameObject.GetComponent(); Ray aimRay = ((BaseState)this).GetAimRay(); duration = baseDuration; isStrong = false; ((EntityState)this).characterBody.SetAimTimer(duration); if (NetworkServer.active) { Util.CleanseBody(((EntityState)this).characterBody, true, false, false, true, true, false); } ((EntityState)this).PlayCrossfade("Gesture, Override", "Cleanse", "Attack.playbackRate", duration, 0.1f); if (energySystem.currentOverheat < energySystem.maxOverheat && ((EntityState)this).isAuthority) { energySystem.LowerHeat(energySystem.maxOverheat * StaticValues.cleanseHeatReductionMultiplier); energySystem.hasOverheatedUtility = false; ApplyBurn(); if (((EntityState)this).characterBody.HasBuff(Buffs.OnFire.buffIndex)) { isStrong = true; } NetMessageExtensions.Send((INetMessage)(object)new PlayCleanseBlastNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, strong: true), (NetworkDestination)1); if (!((EntityState)this).characterBody.characterMotor.isGrounded) { ((BaseState)this).SmallHop(((EntityState)this).characterBody.characterMotor, 3f); } EffectManager.SpawnEffect(Assets.explosionPrefab, new EffectData { origin = ((EntityState)this).characterBody.transform.position, scale = StaticValues.cleanseBlastRadius, rotation = new Quaternion(0f, 0f, 0f, 0f) }, false); NetworkingHelpers.ApplyBuff(((EntityState)this).characterBody, Buffs.cleanseSpeedBoost.buffIndex, 1, duration * 2.5f); } else if (energySystem.currentOverheat == energySystem.maxOverheat && ((EntityState)this).isAuthority) { if (!((EntityState)this).characterBody.characterMotor.isGrounded) { ((BaseState)this).SmallHop(((EntityState)this).characterBody.characterMotor, 3f); } NetMessageExtensions.Send((INetMessage)(object)new PlayCleanseBlastNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, strong: false), (NetworkDestination)1); energySystem.isAcceleratedCooling = true; } if (((EntityState)this).isAuthority) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 1924783034u), (NetworkDestination)1); } } public void ApplyBurn() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_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_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_0041: 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_0048: 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_0060: Expected O, but got Unknown //IL_00d6: 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) Ray aimRay = ((BaseState)this).GetAimRay(); BullseyeSearch val = new BullseyeSearch { teamMaskFilter = TeamMask.GetEnemyTeams(((BaseState)this).GetTeam()), filterByLoS = false, searchOrigin = ((EntityState)this).characterBody.footPosition, searchDirection = Random.onUnitSphere, sortMode = (SortMode)1, maxDistanceFilter = StaticValues.cleanseBlastRadius, maxAngleFilter = 360f }; val.RefreshCandidates(); val.FilterOutGameObject(((EntityState)this).gameObject); List list = val.GetResults().ToList(); foreach (HurtBox item in list) { if (Object.op_Implicit((Object)(object)item) && Object.op_Implicit((Object)(object)item.healthComponent) && Object.op_Implicit((Object)(object)item.healthComponent.body)) { NetMessageExtensions.Send((INetMessage)(object)new BurnNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody.master).netId, ((NetworkBehaviour)item.healthComponent.body.master).netId), (NetworkDestination)1); } } } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).PlayAnimation("Gesture, Override", "BufferEmpty"); if (!isStrong) { } } 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)6; } } public class FireSpray : BaseSkillState { public EnergySystem energySystem; public float baseDuration = 0.5f; public float duration; public static GameObject effectPrefab; private string muzzleString = "GunMuzzle"; private Transform muzzlePos; private Animator animator; private float damageCoefficient = StaticValues.firesprayWeakDamageCoefficient; private float altDamageCoefficient = StaticValues.altFiresprayWeakDamageCoefficient; private float strongdamageCoefficient = StaticValues.firesprayStrongDamageCoefficient; private float altStrongDamageCoefficient = StaticValues.altFiresprayStrongDamageCoefficient; public static float spreadBloomValue = 10f; private float force = 400f; private float strongforce = 1000f; private float speedOverride = 100f; private float strongspeedOverride = 100f; private GameObject chargeVfxInstance; private ArsonistPassive passive; private bool isBlue; public float Energy = StaticValues.firesprayEnergyCost; private float energyCost; private float energyflatCost; public override void OnEnter() { //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_019c: 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) ((BaseState)this).OnEnter(); energySystem = ((Component)((EntityState)this).characterBody).gameObject.GetComponent(); passive = ((Component)((EntityState)this).characterBody).gameObject.GetComponent(); isBlue = passive.isBlueGauge(); ((EntityState)this).characterBody.isSprinting = false; Ray aimRay = ((BaseState)this).GetAimRay(); duration = baseDuration / ((BaseState)this).attackSpeedStat; ((EntityState)this).characterBody.SetAimTimer(duration); animator = ((EntityState)this).GetModelAnimator(); animator.SetBool("attacking", true); ((EntityState)this).GetModelAnimator().SetFloat("Attack.playbackRate", ((BaseState)this).attackSpeedStat); ((EntityState)this).PlayCrossfade("Gesture, Override", "FireSpray", "Attack.playbackRate", duration, 0.1f); ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator(); muzzlePos = modelChildLocator.FindChild(muzzleString); energyflatCost = Energy - energySystem.costflatOverheat; if (energyflatCost < 0f) { energyflatCost = 0f; } energyCost = energySystem.costmultiplierOverheat * energyflatCost; if (energyCost < 0f) { energyCost = 0f; } if (energySystem.currentOverheat < energySystem.maxOverheat && ((EntityState)this).isAuthority) { FireBolt(); energySystem.AddHeat(energyCost); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 470984906u), (NetworkDestination)1); } else if (energySystem.currentOverheat == energySystem.maxOverheat && ((EntityState)this).isAuthority) { FireBall(); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 2300744954u), (NetworkDestination)1); } ((EntityState)this).characterBody.AddSpreadBloom(spreadBloomValue); } public void FireBall() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) Ray aimRay = ((BaseState)this).GetAimRay(); float num = (isBlue ? altDamageCoefficient : damageCoefficient); if (((EntityState)this).isAuthority) { ProjectileManager.instance.FireProjectile(Projectiles.lemurianFireBall, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, ((BaseState)this).damageStat * num, force, Util.CheckRoll(((BaseState)this).critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, speedOverride); } } public void FireBolt() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) Ray aimRay = ((BaseState)this).GetAimRay(); float num = (isBlue ? altStrongDamageCoefficient : strongdamageCoefficient); if (((EntityState)this).isAuthority) { ProjectileManager.instance.FireProjectile(Projectiles.artificerFirebolt, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, ((BaseState)this).damageStat * num, strongforce, Util.CheckRoll(((BaseState)this).critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, strongspeedOverride); } } public override void OnExit() { ((EntityState)this).OnExit(); animator.SetBool("attacking", false); ((EntityState)this).PlayAnimation("Gesture, Override", "BufferEmpty"); if (Object.op_Implicit((Object)(object)chargeVfxInstance)) { EntityState.Destroy((Object)(object)chargeVfxInstance); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority && ((BaseSkillState)this).IsKeyDownAuthority()) { ((EntityState)this).outer.SetNextState((EntityState)(object)new FireSpray()); } else 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; } } internal class Flamethrower : BaseSkillState { public int tickRate; public int baseTickRate = StaticValues.flamethrowerBaseTickRate; public float weakCoefficient = StaticValues.flamethrowerWeakDamageCoefficient; public float strongCoefficient = StaticValues.flamethrowerStrongDamageCoefficient; public float altWeakCoefficient = StaticValues.altFlamethrowerWeakDamageCoefficient; public float altStrongCoefficient = StaticValues.altFlamethrowerStrongDamageCoefficient; internal BulletAttack bulletAttack; public float flamethrowerRange = StaticValues.flamethrowerRange; public float procCoefficient = StaticValues.flamethrowerProcCoefficient; public float radius = StaticValues.flamethowerRadius; public static float spreadBloomValue = 10f; private string muzzleString = "GunMuzzle"; private float baseDuration = 0.5f; private float duration; private float interval; private float stopwatch = 0f; private EnergySystem energySystem; private ArsonistPassive passive; private ArsonistController controller; private bool isBlue; private float energyFlatCost; public float Energy = StaticValues.flamethrowerEnergyCost; private float energyCost; public override void OnEnter() { //IL_0125: 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_0131: 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_0146: 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_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0159: 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_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017c: 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_018c: 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_01a2: 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_01ba: 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_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Expected O, but got Unknown //IL_0243: Expected O, but got Unknown //IL_02be: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); energySystem = ((Component)((EntityState)this).characterBody).gameObject.GetComponent(); passive = ((Component)((EntityState)this).characterBody).gameObject.GetComponent(); controller = ((Component)((EntityState)this).characterBody).gameObject.GetComponent(); isBlue = passive.isBlueGauge(); ((EntityState)this).characterBody.isSprinting = false; energyFlatCost = Energy - energySystem.costflatOverheat; if (energyFlatCost < 0f) { energyFlatCost = 0f; } energyCost = energySystem.costmultiplierOverheat * energyFlatCost; if (energyCost < 0f) { energyCost = 0f; } duration = baseDuration / ((BaseState)this).attackSpeedStat; tickRate = (int)((float)baseTickRate * ((BaseState)this).attackSpeedStat); interval = duration / (float)tickRate; ((EntityState)this).characterBody.SetAimTimer(duration * 2f); bulletAttack = new BulletAttack { bulletCount = 1u, damage = strongCoefficient * ((BaseState)this).damageStat, damageColorIndex = (DamageColorIndex)0, damageType = (DamageType)0, falloffModel = (FalloffModel)0, maxDistance = flamethrowerRange, force = 0f, hitMask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask, hitEffectPrefab = Flamethrower.impactEffectPrefab, minSpread = 1f, maxSpread = 4f, isCrit = ((BaseState)this).RollCrit(), owner = ((EntityState)this).gameObject, muzzleName = muzzleString, smartCollision = true, procChainMask = default(ProcChainMask), procCoefficient = procCoefficient, radius = radius, sniper = false, stopperMask = ((LayerIndex)(ref LayerIndex.noCollision)).mask, weapon = null, spreadPitchScale = 0f, spreadYawScale = 0f, queryTriggerInteraction = (QueryTriggerInteraction)0, hitCallback = new HitCallback(flamethrowerFlameChanceHitCallback) }; if (energySystem.ifOverheatMaxed) { controller.weakFlamethrower.Play(); } else { controller.flamethrower.Play(); } if (Object.op_Implicit((Object)(object)controller) && !controller.playingFlamethrower) { controller.playingFlamethrower = true; if (((EntityState)this).isAuthority) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 934132236u), (NetworkDestination)1); controller.flamethrowerPlayingID = AkSoundEngine.PostEvent(587096102u, ((Component)((EntityState)this).characterBody).gameObject); } } } public override void OnExit() { ((EntityState)this).OnExit(); controller.flamethrower.Stop(); controller.weakFlamethrower.Stop(); } public override void FixedUpdate() { //IL_00f1: 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_00ff: 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_0117: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; if (stopwatch >= interval && ((EntityState)this).isAuthority) { float num = strongCoefficient; float maxDistance = flamethrowerRange; if (energySystem.currentOverheat < energySystem.maxOverheat && ((EntityState)this).isAuthority) { energySystem.AddHeat(energyCost / (float)tickRate); num = (isBlue ? altStrongCoefficient : strongCoefficient); } else if (energySystem.currentOverheat >= energySystem.maxOverheat && ((EntityState)this).isAuthority) { num = (isBlue ? altWeakCoefficient : weakCoefficient); maxDistance = flamethrowerRange * 0.66f; } Ray aimRay = ((BaseState)this).GetAimRay(); bulletAttack.aimVector = ((Ray)(ref aimRay)).direction; bulletAttack.origin = ((Ray)(ref aimRay)).origin; bulletAttack.damage = num * ((BaseState)this).damageStat; bulletAttack.maxDistance = maxDistance; bulletAttack.Fire(); ((EntityState)this).characterBody.AddSpreadBloom(spreadBloomValue); stopwatch = 0f; } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { if (((EntityState)this).inputBank.skill1.down) { ((EntityState)this).outer.SetState((EntityState)(object)new Flamethrower()); return; } controller.flamethrower.Stop(); controller.weakFlamethrower.Stop(); ((EntityState)this).outer.SetNextStateToMain(); } } public bool flamethrowerFlameChanceHitCallback(BulletAttack bulletRef, ref BulletHit hitInfo) { //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Invalid comparison between Unknown and I4 //IL_00fe: 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) BulletAttack.defaultHitCallback.Invoke(bulletRef, ref hitInfo); if (Object.op_Implicit((Object)(object)hitInfo.hitHurtBox)) { float num = hitInfo.distance / StaticValues.flamethrowerRange; float num2 = -1f * Mathf.Pow(num, 0.8f) + 1.2f; num2 = Mathf.Clamp(num2, 0f, 1f); float num3 = Random.Range(1f, 100f); float num4 = ((EntityState)this).characterBody.master.luck; if (num4 < 1f) { num4 = 1f; } if (num3 * num4 * num2 >= StaticValues.flamethrowerFireChance && (int)hitInfo.hitHurtBox.healthComponent.body.teamComponent.teamIndex != 1) { if (Object.op_Implicit((Object)(object)hitInfo.hitHurtBox.healthComponent.body.master)) { NetMessageExtensions.Send((INetMessage)(object)new FlamethrowerDotNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody.master).netId, ((NetworkBehaviour)hitInfo.hitHurtBox.healthComponent.body.master).netId, 5f), (NetworkDestination)1); } return true; } return true; } return false; } 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 Flare : BaseSkillState { public EnergySystem energySystem; private Ray aimRay; public float baseDuration = 1f; public float duration; public float fireTime; public float recoil = 1f; private bool hasFired; private bool isStrong; private Animator animator; private string muzzleString = "FlareMuzzle"; private float energyCost; private float energyflatCost; private float speedOverride = StaticValues.flareSpeedCoefficient; private BulletAttack bulletAttack; private BlastAttack blastAttack; public override void OnEnter() { //IL_0027: 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_0129: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); hasFired = false; energySystem = ((Component)((EntityState)this).characterBody).gameObject.GetComponent(); aimRay = ((BaseState)this).GetAimRay(); duration = baseDuration / ((BaseState)this).attackSpeedStat; fireTime = duration * 0.35f; ((EntityState)this).characterBody.SetAimTimer(duration); animator = ((EntityState)this).GetModelAnimator(); animator.SetBool("attacking", true); ((EntityState)this).GetModelAnimator().SetFloat("Attack.playbackRate", ((BaseState)this).attackSpeedStat); ((EntityState)this).PlayCrossfade("Gesture, Override", "Flare", "Attack.playbackRate", duration, 0.1f); ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator(); Transform val = modelChildLocator.FindChild(muzzleString); if (energySystem.currentOverheat < energySystem.maxOverheat && ((EntityState)this).isAuthority) { energySystem.LowerHeat(energySystem.currentOverheat * StaticValues.flareHeatReductionMultiplier); energySystem.hasOverheatedSecondary = false; NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 3747272580u), (NetworkDestination)1); isStrong = true; } else if (energySystem.currentOverheat == energySystem.maxOverheat && ((EntityState)this).isAuthority) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 1608533803u), (NetworkDestination)1); isStrong = false; } ModdedDamageTypeHolderComponent val2 = Projectiles.strongFlare.AddComponent(); val2.Add(Damage.arsonistStickyDamageType); ModdedDamageTypeHolderComponent val3 = Projectiles.weakFlare.AddComponent(); val3.Add(Damage.arsonistWeakStickyDamageType); } public override void OnExit() { ((EntityState)this).OnExit(); animator.SetBool("attacking", false); ((EntityState)this).PlayAnimation("Gesture, Override", "BufferEmpty"); } public void StrongFlare() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0071: 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) Ray val = ((BaseState)this).GetAimRay(); if (((EntityState)this).isAuthority) { ((EntityState)this).characterBody.AddSpreadBloom(1f); ((BaseState)this).AddRecoil(-1f * recoil, -2f * recoil, -0.5f * recoil, 0.5f * recoil); ProjectileManager.instance.FireProjectile(Projectiles.strongFlare, ((Ray)(ref val)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref val)).direction), ((EntityState)this).gameObject, ((BaseState)this).damageStat, 0f, Util.CheckRoll(((BaseState)this).critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)13, (GameObject)null, speedOverride); } } public void WeakFlare() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0071: 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) Ray val = ((BaseState)this).GetAimRay(); if (((EntityState)this).isAuthority) { ((EntityState)this).characterBody.AddSpreadBloom(1f); ((BaseState)this).AddRecoil(-1f * recoil, -2f * recoil, -0.5f * recoil, 0.5f * recoil); ProjectileManager.instance.FireProjectile(Projectiles.weakFlare, ((Ray)(ref val)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref val)).direction), ((EntityState)this).gameObject, ((BaseState)this).damageStat, 0f, Util.CheckRoll(((BaseState)this).critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)13, (GameObject)null, speedOverride); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (!hasFired && ((EntityState)this).fixedAge > fireTime && ((EntityState)this).isAuthority) { hasFired = true; if (isStrong) { StrongFlare(); } else if (!isStrong) { WeakFlare(); } } 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)3; } } internal class Masochism : BaseSkillState { internal static float giveBuffFraction = 0.3f; internal static float baseDuration = 0.5f; internal float duration; internal bool buffGiven; internal EnergySystem energySystem; public float Energy = StaticValues.masochismEnergyCost; private float energyCost; private float energyflatCost; public override void OnEnter() { //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); energySystem = ((EntityState)this).gameObject.GetComponent(); duration = baseDuration / ((BaseState)this).attackSpeedStat; buffGiven = false; energyflatCost = Energy - energySystem.costflatOverheat; if (energyflatCost < 0f) { energyflatCost = 0f; } energyCost = energySystem.costmultiplierOverheat * energyflatCost; if (energyCost < 0f) { energyCost = 0f; } if (energySystem.currentOverheat < energySystem.maxOverheat && ((EntityState)this).isAuthority) { energySystem.hasOverheatedSpecial = false; energySystem.currentOverheat += energyCost; } else if (energySystem.currentOverheat == energySystem.maxOverheat && !((EntityState)this).isAuthority) { } if (((EntityState)this).isAuthority) { if (!Config.shouldHaveVoice.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 1840962711u), (NetworkDestination)1); return; } uint soundNum = ((((EntityState)this).characterBody.HasBuff(Buffs.masochismBuff) || ((EntityState)this).characterBody.HasBuff(Buffs.fallDamageReductionBuff)) ? 1840962711u : 3831238989u); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, soundNum), (NetworkDestination)1); } } public override void OnExit() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).OnExit(); if (!buffGiven) { buffGiven = true; if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.masochismBuff.buffIndex, StaticValues.masochismBuffDuration); } } } public override void FixedUpdate() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge > duration * giveBuffFraction && !buffGiven) { buffGiven = true; if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.masochismBuff.buffIndex, StaticValues.masochismBuffDuration); } } if (((EntityState)this).fixedAge > duration) { ((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)4; } } internal class NeoMasochism : BaseSkillState { public MasochismController maso; public ArsonistController arsonistCon; public float stopwatch; public static float baseActivationTime = 0.16f; public static float baseDuration = 3.1f; public float duration; public float originalFOV; public float targetFOV; public float originalLerpTime; public static float tempLerpTime = 0.25f; public float multiplier = 1.1f; public EnergySystem energySystem; private CameraParamsOverrideHandle handle; public override void OnEnter() { //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_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_00cb: 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_00d4: 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_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0117: 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_0241: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); maso = ((EntityState)this).gameObject.GetComponent(); arsonistCon = ((EntityState)this).gameObject.GetComponent(); energySystem = ((EntityState)this).gameObject.GetComponent(); duration = baseDuration; if (Object.op_Implicit((Object)(object)energySystem)) { energySystem.SetCurrentHeatToLowerBound(); } if (Object.op_Implicit((Object)(object)arsonistCon.cameraRigController)) { originalFOV = arsonistCon.cameraRigController.baseFov; targetFOV = originalFOV * multiplier; } CameraTargetParams cameraTargetParams = ((EntityState)this).cameraTargetParams; CharacterCameraParamsData currentCameraParamsData = cameraTargetParams.currentCameraParamsData; currentCameraParamsData.fov = BlendableFloat.op_Implicit(targetFOV); CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest); val.cameraParamsData = currentCameraParamsData; val.priority = 0f; CameraParamsOverrideRequest val2 = val; if (((EntityState)this).isAuthority && Config.ToggleMasochismFOVWarp.Value) { handle = cameraTargetParams.AddParamsOverride(val2, baseDuration * baseActivationTime); } if (Object.op_Implicit((Object)(object)maso) && Object.op_Implicit((Object)(object)maso)) { maso.masoRecentlyActivated = true; } if (Object.op_Implicit((Object)(object)maso) && maso.masochismActive && ((EntityState)this).isAuthority) { maso.TriggerMasochismAndEXOverheat(applyDebuff: false); ((EntityState)this).outer.SetNextStateToMain(); } else if (((EntityState)this).isAuthority) { if (!Config.shouldHaveVoice.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 955478894u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(soundNum: (((EntityState)this).characterBody.skinIndex != ArsonistMod.Modules.Survivors.Arsonist.FirebugSkinIndex) ? (((EntityState)this).characterBody.HasBuff(Buffs.masochismBuff) ? 955478894u : 1305067912u) : (((EntityState)this).characterBody.HasBuff(Buffs.masochismBuff) ? 955478894u : 1845947419u), charnetID: ((NetworkBehaviour)((EntityState)this).characterBody).netId), (NetworkDestination)1); } } } public override void OnExit() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).OnExit(); ((EntityState)this).cameraTargetParams.RemoveParamsOverride(handle, 0.2f); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; if (stopwatch >= duration * baseActivationTime && ((EntityState)this).isAuthority) { if (Object.op_Implicit((Object)(object)maso) && !maso.masochismActive) { maso.ActivateMaso(); } ((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)4; } } } namespace ArsonistMod.SkillStates.ZeroPointBlast { public class ZeroPointBlastEnd : BaseSkillState { public ArsonistController arsonistCon; public float stopwatch; public float duration; public static float baseDuration = 0.6f; public static float earlyExitFrac = 0.48f; public static float unlockVelocity = 0.2f; public BlastAttack blastAttack; protected float pushForce = 500f; public float damageCoefficient; public float radius = 5f; public Animator animator; private string muzzleString = "GunMuzzle"; public Transform muzzlePos; public override void OnEnter() { //IL_0047: 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_01a4: 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_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Expected O, but got Unknown //IL_01f1: 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_0256: Unknown result type (might be due to invalid IL or missing references) //IL_027d: 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_028f: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Expected O, but got Unknown //IL_00c5: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator(); muzzlePos = modelChildLocator.FindChild(muzzleString); if (((EntityState)this).isAuthority) { if (!Config.shouldHaveVoice.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 1486446844u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(soundNum: (((EntityState)this).characterBody.skinIndex != ArsonistMod.Modules.Survivors.Arsonist.FirebugSkinIndex) ? (((EntityState)this).characterBody.HasBuff(Buffs.masochismBuff) ? 1486446844u : 3858611310u) : (((EntityState)this).characterBody.HasBuff(Buffs.masochismBuff) ? 1486446844u : 896468461u), charnetID: ((NetworkBehaviour)((EntityState)this).characterBody).netId), (NetworkDestination)1); } } animator = ((EntityState)this).GetModelAnimator(); stopwatch = 0f; duration = baseDuration; animator.SetBool("attacking", true); animator.SetFloat("Attack.playbackRate", 1f); if (((BaseState)this).isGrounded) { ((EntityState)this).PlayAnimation("UpperBody, Override", "BufferEmpty"); ((EntityState)this).PlayCrossfade("FullBody, Override", "ZPBHit", "Attack.playbackRate", duration, 0.02f); } else { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); ((EntityState)this).PlayCrossfade("UpperBody, Override", "ZPBHit", "Attack.playbackRate", duration, 0.02f); } ((EntityState)this).characterMotor.velocity = Vector3.zero; ((EntityState)this).characterMotor.lastVelocity = Vector3.zero; blastAttack = new BlastAttack(); blastAttack.radius = radius; blastAttack.procCoefficient = 0.5f; blastAttack.position = ((EntityState)this).characterBody.corePosition; blastAttack.attacker = ((EntityState)this).gameObject; blastAttack.crit = Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master); blastAttack.baseDamage = ((EntityState)this).characterBody.damage * damageCoefficient; blastAttack.falloffModel = (FalloffModel)0; blastAttack.baseForce = pushForce; blastAttack.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttack.damageType = (DamageType)32; blastAttack.attackerFiltering = (AttackerFiltering)2; blastAttack.Fire(); EffectManager.SpawnEffect(Assets.elderlemurianexplosionEffect, new EffectData { origin = ((EntityState)this).characterBody.corePosition, scale = 3f }, true); arsonistCon = ((EntityState)this).gameObject.GetComponent(); arsonistCon.steamDownParticle.Stop(); arsonistCon.fireBeamForward.Play(); } public override void OnExit() { ((EntityState)this).OnExit(); animator.SetBool("attacking", false); arsonistCon.fireBeam.Stop(); arsonistCon.fireBeamForward.Stop(); ((EntityState)this).PlayAnimation("UpperBody, Override", "BufferEmpty"); } public override void FixedUpdate() { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_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) ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; if (stopwatch <= duration * unlockVelocity) { ((EntityState)this).characterMotor.velocity = Vector3.zero; ((EntityState)this).characterMotor.lastVelocity = Vector3.zero; } if (stopwatch >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnSerialize(NetworkWriter writer) { ((BaseSkillState)this).OnSerialize(writer); writer.Write(damageCoefficient); } public override void OnDeserialize(NetworkReader reader) { ((BaseSkillState)this).OnDeserialize(reader); damageCoefficient = reader.ReadSingle(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) if (stopwatch >= duration * earlyExitFrac) { return (InterruptPriority)0; } return (InterruptPriority)2; } } public class ZeroPointBlastStart : BaseSkillState { public ArsonistController arsonistController; public EnergySystem energySystem; private OverlapAttack detector; private OverlapAttack attack; protected float procCoefficient = 1f; protected DamageType damageType = (DamageType)128; private float damageCoefficient; private Vector3 direction; protected float pushForce = 500f; protected Vector3 bonusForce = new Vector3(10f, 400f, 0f); protected string hitboxName = "ZeroPoint"; private BlastAttack blastAttack; public float radius = 5f; private Transform muzzlePos; private string muzzleString = "GunMuzzle"; private float hitPauseTimer; protected bool inHitPause; private HitStopCachedState hitStopCachedState; private Vector3 storedVelocity; private Vector3 bounceVector; public bool hasHit; public float stopwatch; public Animator animator; private Vector3 aimRayDir; private Ray aimRay; public static float baseduration = 0.8f; public static float duration; public static float initialSpeedCoefficient = 6f; public float SpeedCoefficient; public static float finalSpeedCoefficient = 4f; private float extraDuration; private static float startupFrac = 0.2f; private static float freezeFrac = 0.58f; private static float blastFrac = 0.3f; private static float stopFlameFrac = 0.35f; private bool hasFired = false; public static float hitExtraDuration = 0.44f; public static float minExtraDuration = 0.2f; private Transform modelTransform; private CharacterModel characterModel; private float rollSpeed; public override void OnEnter() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0188: 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_00bd: 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_02ef: Expected O, but got Unknown //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: 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_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_03b4: Expected O, but got Unknown //IL_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03ee: Unknown result type (might be due to invalid IL or missing references) //IL_03f3: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Unknown result type (might be due to invalid IL or missing references) //IL_042f: Unknown result type (might be due to invalid IL or missing references) //IL_045f: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_0468: Unknown result type (might be due to invalid IL or missing references) //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_0471: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_048c: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: Unknown result type (might be due to invalid IL or missing references) //IL_04d9: Expected O, but got Unknown //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_056b: Unknown result type (might be due to invalid IL or missing references) //IL_0592: Unknown result type (might be due to invalid IL or missing references) //IL_0597: Unknown result type (might be due to invalid IL or missing references) //IL_05a4: Unknown result type (might be due to invalid IL or missing references) //IL_05b0: Unknown result type (might be due to invalid IL or missing references) //IL_065f: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); stopwatch = 0f; if (((EntityState)this).isAuthority) { if (!Config.shouldHaveVoice.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 3585665340u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(soundNum: (((EntityState)this).characterBody.skinIndex != ArsonistMod.Modules.Survivors.Arsonist.FirebugSkinIndex) ? (((EntityState)this).characterBody.HasBuff(Buffs.masochismBuff) ? 3585665340u : 289708206u) : (((EntityState)this).characterBody.HasBuff(Buffs.masochismBuff) ? 3585665340u : 3167811629u), charnetID: ((NetworkBehaviour)((EntityState)this).characterBody).netId), (NetworkDestination)1); } } energySystem = ((Component)((EntityState)this).characterBody).gameObject.GetComponent(); if (energySystem.currentOverheat < energySystem.maxOverheat && ((EntityState)this).isAuthority) { energySystem.LowerHeat(energySystem.currentOverheat * StaticValues.zeropointHeatReductionMultiplier); damageCoefficient = StaticValues.zeropointpounchDamageCoefficient; } else if (energySystem.currentOverheat == energySystem.maxOverheat && ((EntityState)this).isAuthority) { damageCoefficient = StaticValues.zeropointpounchDamageCoefficient * 0.5f; } hasHit = false; aimRayDir = ((Ray)(ref aimRay)).direction; duration = baseduration; float num = ((BaseState)this).moveSpeedStat; if (((EntityState)this).characterBody.isSprinting) { num /= ((EntityState)this).characterBody.sprintingSpeedMultiplier; } float num2 = num / (((EntityState)this).characterBody.baseMoveSpeed - 1f); SpeedCoefficient = initialSpeedCoefficient * num2; extraDuration = Math.Max(hitExtraDuration / (num2 + 1f), minExtraDuration); ((EntityState)this).characterBody.AddTimedBuffAuthority(Buffs.HiddenInvincibility.buffIndex, duration / 2f); animator = ((EntityState)this).GetModelAnimator(); animator.SetBool("attacking", true); ((EntityState)this).characterBody.SetAimTimer(duration); HitBoxGroup hitBoxGroup = null; HitBoxGroup hitBoxGroup2 = null; Transform val = ((EntityState)this).GetModelTransform(); modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { animator = ((Component)modelTransform).GetComponent(); characterModel = ((Component)modelTransform).GetComponent(); } if (Object.op_Implicit((Object)(object)val)) { hitBoxGroup = Array.Find(((Component)val).GetComponents(), (HitBoxGroup element) => element.groupName == hitboxName); hitBoxGroup2 = Array.Find(((Component)val).GetComponents(), (HitBoxGroup element) => element.groupName == hitboxName); } attack = new OverlapAttack(); attack.damageType = damageType; attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.teamIndex = ((BaseState)this).GetTeam(); attack.damage = ((EntityState)this).characterBody.damage; attack.procCoefficient = procCoefficient; attack.hitEffectPrefab = FireBarrage.hitEffectPrefab; attack.forceVector = bonusForce; attack.pushAwayForce = pushForce; attack.hitBoxGroup = hitBoxGroup; attack.isCrit = ((BaseState)this).RollCrit(); detector = new OverlapAttack(); detector.damageType = damageType; detector.attacker = ((EntityState)this).gameObject; detector.inflictor = ((EntityState)this).gameObject; detector.teamIndex = ((BaseState)this).GetTeam(); detector.damage = 0f; detector.procCoefficient = 0f; detector.hitEffectPrefab = null; detector.forceVector = Vector3.zero; detector.pushAwayForce = 0f; detector.hitBoxGroup = hitBoxGroup2; detector.isCrit = false; Ray val2 = ((BaseState)this).GetAimRay(); Vector3 val3 = ((Ray)(ref val2)).direction; direction = ((Vector3)(ref val3)).normalized; ((EntityState)this).characterDirection.forward = ((Vector3)(ref ((EntityState)this).characterMotor.velocity)).normalized; animator.SetFloat("Attack.playbackRate", ((BaseState)this).attackSpeedStat); ((EntityState)this).PlayCrossfade("FullBody, Override", "ZPBStart", "Attack.playbackRate", duration, 0.1f); blastAttack = new BlastAttack(); blastAttack.radius = radius; blastAttack.procCoefficient = 0.5f; blastAttack.position = ((EntityState)this).characterBody.corePosition; blastAttack.attacker = ((EntityState)this).gameObject; blastAttack.crit = Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master); blastAttack.baseDamage = ((EntityState)this).characterBody.damage * damageCoefficient; blastAttack.falloffModel = (FalloffModel)0; blastAttack.baseForce = pushForce; blastAttack.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttack.damageType = (DamageType)32; blastAttack.attackerFiltering = (AttackerFiltering)2; arsonistController = ((EntityState)this).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)arsonistController)) { arsonistController.steamDownParticle.Play(); arsonistController.hasZPBedRecently = true; } ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator(); muzzlePos = modelChildLocator.FindChild(muzzleString); if (((BaseState)this).isGrounded) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, 6f); } else { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, 4f); } if (((EntityState)this).isAuthority) { NetworkingHelpers.ApplyBuff(((EntityState)this).characterBody, Buffs.fallDamageReductionBuff.buffIndex, 1, 3f); } } private bool CheckLookingTowardsVector(Vector3 dir) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) Ray val = ((BaseState)this).GetAimRay(); if (Vector3.Dot(((Ray)(ref val)).direction, dir) > 0.866f) { return true; } return false; } private void RecalculateRollSpeed() { float num = ((BaseState)this).moveSpeedStat; if (((EntityState)this).characterBody.isSprinting) { num /= ((EntityState)this).characterBody.sprintingSpeedMultiplier; } if (num >= 12f) { num = Mathf.Log10(num - 11f) + 12f; } rollSpeed = num * Mathf.Lerp(SpeedCoefficient, finalSpeedCoefficient, (stopwatch - duration * blastFrac) / (duration * freezeFrac - duration * blastFrac)); } private void FireAttack() { if (((EntityState)this).isAuthority) { List list = new List(); if (detector.Fire(list)) { OnHitEnemyAuthority(); } } } protected virtual void OnHitEnemyAuthority() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) if (((EntityState)this).isAuthority) { ((EntityState)this).characterMotor.velocity = Vector3.zero; ((EntityState)this).outer.SetState((EntityState)(object)new ZeroPointBlastEnd { damageCoefficient = damageCoefficient }); } } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } public override void FixedUpdate() { //IL_003c: 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_0094: 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_00b5: 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_00d8: Expected O, but got Unknown //IL_0124: 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_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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) //IL_018a: 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_0194: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; if (stopwatch <= duration * startupFrac) { ((EntityState)this).characterDirection.forward = direction; } if (stopwatch >= duration * blastFrac && !hasFired) { hasFired = true; blastAttack.position = muzzlePos.position; blastAttack.Fire(); arsonistController.fireBeam.Play(); EffectManager.SpawnEffect(Assets.elderlemurianexplosionEffect, new EffectData { origin = ((EntityState)this).characterBody.corePosition, scale = 1.5f }, true); } if (stopwatch >= duration * blastFrac && stopwatch <= duration * freezeFrac) { RecalculateRollSpeed(); FireAttack(); ((EntityState)this).characterDirection.forward = direction; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { Vector3 val = direction * rollSpeed; float num = Mathf.Max(Vector3.Dot(val, direction), 0f); val = direction * num; ((EntityState)this).characterMotor.velocity = val; } } if (stopwatch >= duration * freezeFrac && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetState((EntityState)(object)new ZeroPointBlastWhiff { damageCoefficient = damageCoefficient }); } } public override void OnSerialize(NetworkWriter writer) { ((BaseSkillState)this).OnSerialize(writer); writer.Write(damageCoefficient); } public override void OnDeserialize(NetworkReader reader) { ((BaseSkillState)this).OnDeserialize(reader); damageCoefficient = reader.ReadSingle(); } 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)4; } } public class ZeroPointBlastWhiff : BaseSkillState { public ArsonistController arsonistCon; public float stopwatch; public float duration; public static float baseDuration = 0.6f; public static float earlyExitFrac = 0.48f; public static float stopFiringFrac = 0.24f; public Animator anim; public OverlapAttack detector; protected DamageType damageType = (DamageType)128; protected string hitboxName = "ZeroPoint"; public float damageCoefficient; public override void OnEnter() { //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Expected O, but got Unknown //IL_00ad: 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) //IL_00e0: 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_011c: 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) ((BaseState)this).OnEnter(); stopwatch = 0f; duration = baseDuration; anim = ((EntityState)this).GetModelAnimator(); anim.SetBool("attacking", true); ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); ((EntityState)this).PlayCrossfade("UpperBody, Override", "ZPBWhiff", "Attack.playbackRate", duration, 0.02f); Transform modelTransform = ((EntityState)this).GetModelTransform(); HitBoxGroup hitBoxGroup = null; if (Object.op_Implicit((Object)(object)modelTransform)) { hitBoxGroup = Array.Find(((Component)modelTransform).GetComponents(), (HitBoxGroup element) => element.groupName == hitboxName); } detector = new OverlapAttack(); detector.damageType = damageType; detector.attacker = ((EntityState)this).gameObject; detector.inflictor = ((EntityState)this).gameObject; detector.teamIndex = ((BaseState)this).GetTeam(); detector.damage = 0f; detector.procCoefficient = 0f; detector.hitEffectPrefab = null; detector.forceVector = Vector3.zero; detector.pushAwayForce = 0f; detector.hitBoxGroup = hitBoxGroup; detector.isCrit = false; arsonistCon = ((EntityState)this).gameObject.GetComponent(); arsonistCon.steamDownParticle.Stop(); arsonistCon.fireBeam.Stop(); } public override void OnExit() { ((EntityState)this).OnExit(); anim.SetBool("attacking", false); ((EntityState)this).PlayAnimation("UpperBody, Override", "BufferEmpty"); } private void FireAttack() { if (((EntityState)this).isAuthority) { List list = new List(); if (detector.Fire(list)) { OnHitEnemyAuthority(); } } } protected virtual void OnHitEnemyAuthority() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) if (((EntityState)this).isAuthority) { ((EntityState)this).characterMotor.velocity = Vector3.zero; ((EntityState)this).outer.SetState((EntityState)(object)new ZeroPointBlastEnd { damageCoefficient = damageCoefficient }); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; if (stopwatch <= duration * stopFiringFrac) { FireAttack(); } if (stopwatch >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnSerialize(NetworkWriter writer) { ((BaseSkillState)this).OnSerialize(writer); writer.Write(damageCoefficient); } public override void OnDeserialize(NetworkReader reader) { ((BaseSkillState)this).OnDeserialize(reader); damageCoefficient = reader.ReadSingle(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) if (stopwatch >= duration * earlyExitFrac) { return (InterruptPriority)0; } return (InterruptPriority)2; } } } namespace ArsonistMod.SkillStates.Unused { internal class FlareEffectControllerStrongWorld : MonoBehaviour { public CharacterBody arsonistBody; public GameObject effectObj; public GameObject gameObj; public Vector3 worldPos; private int timesFired; private float timer; private void Start() { //IL_004d: 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) timer = 0f; timesFired = 0; gameObj = ((Component)this).gameObject.GetComponent(); Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor((float)Random.Range(-2, 2), (float)Random.Range(-2, 2), (float)Random.Range(-2, 2)); effectObj = Object.Instantiate(Assets.arsonistFlareAttached, worldPos, Quaternion.LookRotation(worldPos)); } private void FixedUpdate() { //IL_008a: 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_0091: 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_00a7: 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_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown if (timer > StaticValues.flareInterval) { if (timesFired < StaticValues.flareTickNum) { timesFired++; timer = 0f; FireExplosion(StaticValues.flareBlastRadius / 2f); AkSoundEngine.PostEvent(3747272580u, gameObj); return; } FireExplosion(StaticValues.flareBlastRadius); AkSoundEngine.PostEvent(3061346618u, gameObj); EffectManager.SpawnEffect(Assets.explosionPrefab, new EffectData { origin = worldPos, scale = StaticValues.flareBlastRadius, rotation = new Quaternion(0f, 0f, 0f, 0f) }, true); Object.Destroy((Object)(object)this); Object.Destroy((Object)(object)effectObj); } else { timer += Time.deltaTime; } } private void FireExplosion(float radius) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001b: 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_0027: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) BlastAttack val = new BlastAttack(); val.radius = radius; val.procCoefficient = 1f; val.teamIndex = (TeamIndex)1; val.position = worldPos; val.attacker = ((Component)arsonistBody).gameObject; val.crit = arsonistBody.RollCrit(); val.baseDamage = arsonistBody.baseDamage * StaticValues.flareStrongDamageCoefficient; val.falloffModel = (FalloffModel)0; val.baseForce = 1f; val.damageType = (DamageType)0; val.Fire(); } private void OnDestroy() { Object.Destroy((Object)(object)effectObj); } } internal class FlareEffectControllerWeakWorld : MonoBehaviour { public CharacterBody arsonistBody; public GameObject effectObj; public GameObject gameObj; public Vector3 worldPos; private int timesFired; private float timer; private void Start() { //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) timer = 0f; timesFired = 0; gameObj = ((Component)this).gameObject.GetComponent(); Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor((float)Random.Range(-2, 2), (float)Random.Range(-2, 2), (float)Random.Range(-2, 2)); effectObj = Object.Instantiate(Assets.mainAssetBundle.LoadAsset("flareAttached"), worldPos, Quaternion.LookRotation(worldPos)); } private void FixedUpdate() { //IL_008a: 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_0091: 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_00a7: 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_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown if (timer > StaticValues.flareInterval) { if (timesFired < StaticValues.flareTickNum) { timesFired++; timer = 0f; FireExplosion(StaticValues.flareBlastRadius / 2f); AkSoundEngine.PostEvent(3747272580u, gameObj); return; } FireExplosion(StaticValues.flareBlastRadius); AkSoundEngine.PostEvent(3061346618u, gameObj); EffectManager.SpawnEffect(Assets.explosionPrefab, new EffectData { origin = worldPos, scale = StaticValues.flareBlastRadius, rotation = new Quaternion(0f, 0f, 0f, 0f) }, true); Object.Destroy((Object)(object)this); Object.Destroy((Object)(object)effectObj); } else { timer += Time.deltaTime; } } private void FireExplosion(float radius) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001b: 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_0027: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) BlastAttack val = new BlastAttack(); val.radius = radius; val.procCoefficient = 1f; val.teamIndex = (TeamIndex)1; val.position = worldPos; val.attacker = ((Component)arsonistBody).gameObject; val.crit = arsonistBody.RollCrit(); val.baseDamage = arsonistBody.baseDamage * StaticValues.flareWeakDamageCoefficient; val.falloffModel = (FalloffModel)0; val.baseForce = 1f; val.damageType = (DamageType)0; val.Fire(); } private void OnDestroy() { Object.Destroy((Object)(object)effectObj); } } } namespace ArsonistMod.SkillStates.Arsonist.Secondary { internal class FlareEffectControllerStrong : MonoBehaviour { public CharacterBody arsonistBody; public CharacterBody charbody; public GameObject effectObj; private int timesFired; private float timer; private bool hasFired; public uint burningSound; private void Start() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) timer = 0f; timesFired = 0; charbody = ((Component)this).gameObject.GetComponent(); effectObj = Object.Instantiate(Assets.arsonistFlareAttached, charbody.corePosition, Quaternion.LookRotation(Vector3.forward)); effectObj.transform.parent = ((Component)charbody).gameObject.transform; Util.PlaySound("Arsonist_Secondary_Flare_Projectile_Impact", ((Component)this).gameObject); burningSound = Util.PlaySound("Arsonist_Secondary_Flare_Projectile_Burning", ((Component)this).gameObject); } private void FixedUpdate() { //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0189: 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_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Expected O, but got Unknown //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_00e0: 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_00f6: 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_011b: Expected O, but got Unknown //IL_0067: 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_00a2: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)charbody)) { if (NetworkServer.active) { if (timer > StaticValues.flareInterval) { if (timesFired < StaticValues.flareTickNum) { timesFired++; timer = 0f; NetMessageExtensions.Send((INetMessage)(object)new TakeDamageNetworkRequest(charbody.masterObjectId, arsonistBody.masterObjectId, arsonistBody.damage * StaticValues.flareStrongDamageCoefficient / (float)StaticValues.flareTickNum, burn: true), (NetworkDestination)1); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)charbody).netId, 3747272580u), (NetworkDestination)1); return; } hasFired = true; FireExplosion(); EffectManager.SpawnEffect(Assets.elderlemurianexplosionEffect, new EffectData { origin = charbody.transform.position, scale = StaticValues.flareBlastRadius, rotation = new Quaternion(0f, 0f, 0f, 0f) }, true); Object.Destroy((Object)(object)this); Object.Destroy((Object)(object)effectObj); } else { timer += Time.fixedDeltaTime; } } else if (timer > StaticValues.flareInterval * (float)StaticValues.flareTickNum) { timer += Time.fixedDeltaTime; } else { EffectManager.SpawnEffect(Assets.elderlemurianexplosionEffect, new EffectData { origin = charbody.transform.position, scale = StaticValues.flareBlastRadius, rotation = new Quaternion(0f, 0f, 0f, 0f) }, true); Object.Destroy((Object)(object)this); Object.Destroy((Object)(object)effectObj); } } else { Object.Destroy((Object)(object)effectObj); } } private void FireExplosion() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) BlastAttack val = new BlastAttack(); val.radius = StaticValues.flareBlastRadius; val.procCoefficient = 1f; val.teamIndex = (TeamIndex)1; val.position = charbody.transform.position; val.attacker = ((Component)arsonistBody).gameObject; val.crit = arsonistBody.RollCrit(); val.baseDamage = arsonistBody.damage * StaticValues.flareStrongDamageCoefficient; val.falloffModel = (FalloffModel)0; val.baseForce = 1f; val.damageType = (DamageType)128; val.Fire(); AkSoundEngine.PostEvent("Arsonist_Secondary_Flare_Explosion_New", ((Component)this).gameObject); FireSalvos(); } private void FireSalvos() { //IL_0024: 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_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_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_008d: 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_00a2: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active) { int value = Config.flareSalvoAmount.Value; Vector3 position = charbody.transform.position; float num = MathF.PI * 2f / (float)value; float num2 = 0f; for (int i = 0; i < value; i++) { float num3 = StaticValues.flareSalvoRadius * Mathf.Cos(num2); float num4 = StaticValues.flareSalvoRadius * Mathf.Sin(num2); float flareSalvoRadius = StaticValues.flareSalvoRadius; Vector3 val = new Vector3(num3, flareSalvoRadius, num4); Vector3 normalized = ((Vector3)(ref val)).normalized; FireProjectileSalvo(normalized, new Vector3(position.x + num3 / 9f, position.y, position.z + num4 / 9f)); num2 += num; } } } public void FireProjectileSalvo(Vector3 direction, Vector3 origin) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) ProjectileManager.instance.FireProjectile(Projectiles.flareChildPrefab, new Vector3(origin.x, origin.y + 2f, origin.z), Util.QuaternionSafeLookRotation(direction), ((Component)arsonistBody).gameObject, StaticValues.flareStrongChildDamageCoefficient * arsonistBody.damage, Random.Range(1000f, 4000f), arsonistBody.RollCrit(), (DamageColorIndex)0, (GameObject)null, Random.Range(15f, 25f)); } private void OnDestroy() { AkSoundEngine.StopPlayingID(burningSound); if (!hasFired && charbody.hasEffectiveAuthority) { FireExplosion(); } Object.Destroy((Object)(object)effectObj); } } internal class FlareEffectControllerStrongChild : MonoBehaviour { public CharacterBody arsonistBody; public CharacterBody charbody; public GameObject effectObj; private int timesFired; private float timer; public uint burningSound; private void Start() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) timer = 0f; timesFired = 0; charbody = ((Component)this).gameObject.GetComponent(); effectObj = Object.Instantiate(Assets.arsonistFlareAttached, charbody.corePosition, Quaternion.LookRotation(Vector3.forward)); effectObj.transform.parent = ((Component)charbody).gameObject.transform; Util.PlaySound("Arsonist_Secondary_Flare_Projectile_Impact", ((Component)this).gameObject); burningSound = Util.PlaySound("Arsonist_Secondary_Flare_Projectile_Burning", ((Component)this).gameObject); } private void FixedUpdate() { //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0194: 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_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Expected O, but got Unknown //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_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: 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_010a: 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: Expected O, but got Unknown //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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) if (Object.op_Implicit((Object)(object)charbody)) { if (arsonistBody.hasEffectiveAuthority) { if (timer > StaticValues.flareInterval) { if (timesFired < StaticValues.flareTickNum) { timesFired++; timer = 0f; NetMessageExtensions.Send((INetMessage)(object)new TakeDamageNetworkRequest(charbody.masterObjectId, arsonistBody.masterObjectId, arsonistBody.damage * StaticValues.flareStrongDamageCoefficient / (float)StaticValues.flareTickNum, burn: true), (NetworkDestination)1); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)charbody).netId, 3747272580u), (NetworkDestination)1); } else { FireExplosion(); EffectManager.SpawnEffect(Assets.elderlemurianexplosionEffect, new EffectData { origin = charbody.transform.position, scale = StaticValues.flareBlastRadius, rotation = new Quaternion(0f, 0f, 0f, 0f) }, true); Object.Destroy((Object)(object)this); Object.Destroy((Object)(object)effectObj); } } else { timer += Time.fixedDeltaTime; } } else if (timer > StaticValues.flareInterval * (float)StaticValues.flareTickNum) { timer += Time.fixedDeltaTime; } else { EffectManager.SpawnEffect(Assets.elderlemurianexplosionEffect, new EffectData { origin = charbody.transform.position, scale = StaticValues.flareBlastRadius, rotation = new Quaternion(0f, 0f, 0f, 0f) }, true); Object.Destroy((Object)(object)this); Object.Destroy((Object)(object)effectObj); } } else { Object.Destroy((Object)(object)effectObj); Object.Destroy((Object)(object)this); } } private void FireExplosion() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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) BlastAttack val = new BlastAttack(); val.radius = StaticValues.flareBlastRadiusChild; val.procCoefficient = 1f; val.teamIndex = (TeamIndex)1; val.position = charbody.transform.position; val.attacker = ((Component)arsonistBody).gameObject; val.crit = arsonistBody.RollCrit(); val.baseDamage = arsonistBody.damage * StaticValues.flareStrongChildDamageCoefficient; val.falloffModel = (FalloffModel)0; val.baseForce = 1f; val.damageType = (DamageType)128; val.Fire(); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)charbody).netId, 4054143681u), (NetworkDestination)1); } private void OnDestroy() { AkSoundEngine.StopPlayingID(burningSound); Object.Destroy((Object)(object)effectObj); } } internal class FlareEffectControllerWeak : MonoBehaviour { public CharacterBody arsonistBody; public CharacterBody charbody; public GameObject effectObj; private int timesFired; private float timer; public uint burningSound; private void Start() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) timer = 0f; timesFired = 0; charbody = ((Component)this).gameObject.GetComponent(); effectObj = Object.Instantiate(Assets.arsonistFlareAttached, charbody.corePosition, Quaternion.LookRotation(Vector3.forward)); effectObj.transform.parent = ((Component)charbody).gameObject.transform; Util.PlaySound("Arsonist_Secondary_Flare_Projectile_Impact", ((Component)this).gameObject); burningSound = Util.PlaySound("Arsonist_Secondary_Flare_Projectile_Burning", ((Component)this).gameObject); } private void FixedUpdate() { //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0194: 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_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Expected O, but got Unknown //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_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: 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_010a: 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: Expected O, but got Unknown //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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) if (Object.op_Implicit((Object)(object)charbody)) { if (arsonistBody.hasEffectiveAuthority) { if (timer > StaticValues.flareInterval) { if (timesFired < StaticValues.flareTickNum) { timesFired++; timer = 0f; NetMessageExtensions.Send((INetMessage)(object)new TakeDamageNetworkRequest(charbody.masterObjectId, arsonistBody.masterObjectId, arsonistBody.damage * StaticValues.flareStrongDamageCoefficient / (float)StaticValues.flareTickNum, burn: true), (NetworkDestination)1); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)charbody).netId, 3747272580u), (NetworkDestination)1); } else { FireExplosion(); EffectManager.SpawnEffect(Assets.elderlemurianexplosionEffect, new EffectData { origin = charbody.transform.position, scale = StaticValues.flareBlastRadius, rotation = new Quaternion(0f, 0f, 0f, 0f) }, true); Object.Destroy((Object)(object)this); Object.Destroy((Object)(object)effectObj); } } else { timer += Time.fixedDeltaTime; } } else if (timer > StaticValues.flareInterval * (float)StaticValues.flareTickNum) { timer += Time.fixedDeltaTime; } else { EffectManager.SpawnEffect(Assets.elderlemurianexplosionEffect, new EffectData { origin = charbody.transform.position, scale = StaticValues.flareBlastRadius, rotation = new Quaternion(0f, 0f, 0f, 0f) }, true); Object.Destroy((Object)(object)this); Object.Destroy((Object)(object)effectObj); } } else { Object.Destroy((Object)(object)effectObj); Object.Destroy((Object)(object)this); } } private void FireExplosion() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0075: 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_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) BlastAttack val = new BlastAttack(); val.radius = StaticValues.flareBlastRadius; val.procCoefficient = 1f; val.teamIndex = (TeamIndex)1; val.position = charbody.transform.position; val.attacker = ((Component)arsonistBody).gameObject; val.crit = arsonistBody.RollCrit(); val.baseDamage = arsonistBody.damage * StaticValues.flareStrongDamageCoefficient; val.falloffModel = (FalloffModel)0; val.baseForce = 1f; val.damageType = (DamageType)0; val.Fire(); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)charbody).netId, 3061346618u), (NetworkDestination)1); } private void OnDestroy() { AkSoundEngine.StopPlayingID(burningSound); Object.Destroy((Object)(object)effectObj); } } } namespace ArsonistMod.SkillStates.EmoteStates { public class EmoteLobby : BaseSkillState { public ArsonistController controller; public float stopwatch; internal float duration; internal static float igniteFraction = 0.38f; internal static float flameParticleTrigger = 0.55f; public bool ignited; public override void OnEnter() { ((BaseState)this).OnEnter(); PlayEmoteAnim(); controller = ((EntityState)this).GetComponent(); stopwatch = 0f; duration = 1.7f; ignited = false; } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); controller.fingerFireParticle.Stop(); controller.sparkParticle.Stop(); } public override void Update() { ((EntityState)this).Update(); stopwatch += Time.deltaTime; if (stopwatch >= duration * igniteFraction && !ignited) { Util.PlaySound("Arsonist_Menu_Match_Strike", ((EntityState)this).gameObject); ignited = true; controller.fingerFireParticle.Play(); controller.sparkParticle.Play(); } if (((EntityState)this).isAuthority && ShouldEndEmoteState()) { ((EntityState)this).outer.SetNextStateToMain(); } } public bool ShouldEndEmoteState() { return !((BaseState)this).isGrounded || ((EntityState)this).inputBank.skill1.down || ((EntityState)this).inputBank.skill2.down || ((EntityState)this).inputBank.skill3.down || ((EntityState)this).inputBank.skill4.down; } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); } public void PlayEmoteAnim() { ((EntityState)this).PlayAnimation("FullBody, Override", "Armature_LobbyStart"); } 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)0; } } public class EmoteSit : BaseSkillState { public float stopwatch; public override void OnEnter() { ((BaseState)this).OnEnter(); PlayEmoteAnim(); stopwatch = 0f; } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } public override void Update() { ((EntityState)this).Update(); stopwatch += Time.deltaTime; if (((EntityState)this).isAuthority && ShouldEndEmoteState()) { ((EntityState)this).outer.SetNextStateToMain(); } } public bool ShouldEndEmoteState() { return !((BaseState)this).isGrounded || ((EntityState)this).inputBank.skill1.down || ((EntityState)this).inputBank.skill2.down || ((EntityState)this).inputBank.skill3.down || ((EntityState)this).inputBank.skill4.down; } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); } public void PlayEmoteAnim() { ((EntityState)this).PlayAnimation("FullBody, Override", "Emote1"); } 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)0; } } public class EmoteStrut : BaseSkillState { public override void OnEnter() { ((BaseState)this).OnEnter(); PlayEmoteAnim(); } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority && ShouldEndEmoteState()) { ((EntityState)this).outer.SetNextStateToMain(); } } public bool ShouldEndEmoteState() { return !((BaseState)this).isGrounded || ((EntityState)this).inputBank.skill1.down || ((EntityState)this).inputBank.skill2.down || ((EntityState)this).inputBank.skill3.down || ((EntityState)this).inputBank.skill4.down; } public void PlayEmoteAnim() { ((EntityState)this).PlayAnimation("FullBody, Override", "Emote2"); } 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)0; } } } namespace ArsonistMod.SkillStates.BaseStates { public class BaseMeleeAttack : BaseSkillState { public int swingIndex; protected string hitboxName = "Sword"; protected DamageType damageType = (DamageType)0; protected float damageCoefficient = 3.5f; protected float procCoefficient = 1f; protected float pushForce = 300f; protected Vector3 bonusForce = Vector3.zero; protected float baseDuration = 1f; protected float attackStartTime = 0.2f; protected float attackEndTime = 0.4f; protected float baseEarlyExitTime = 0.4f; protected float hitStopDuration = 0.012f; protected float attackRecoil = 0.75f; protected float hitHopVelocity = 4f; protected bool cancelled = false; protected string swingSoundString = ""; protected string hitSoundString = ""; protected string muzzleString = "SwingCenter"; protected GameObject swingEffectPrefab; protected GameObject hitEffectPrefab; protected NetworkSoundEventIndex impactSound; private float earlyExitTime; public float duration; private bool hasFired; private float hitPauseTimer; private OverlapAttack attack; protected bool inHitPause; private bool hasHopped; protected float stopwatch; protected Animator animator; private HitStopCachedState hitStopCachedState; private Vector3 storedVelocity; public override void OnEnter() { //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Expected O, but got Unknown //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_00f0: 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_013b: 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_017a: 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) ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; earlyExitTime = baseEarlyExitTime / ((BaseState)this).attackSpeedStat; hasFired = false; animator = ((EntityState)this).GetModelAnimator(); ((BaseState)this).StartAimMode(0.5f + duration, false); ((EntityState)this).characterBody.outOfCombatStopwatch = 0f; animator.SetBool("attacking", true); HitBoxGroup hitBoxGroup = null; Transform modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { hitBoxGroup = Array.Find(((Component)modelTransform).GetComponents(), (HitBoxGroup element) => element.groupName == hitboxName); } PlayAttackAnimation(); attack = new OverlapAttack(); attack.damageType = damageType; attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.teamIndex = ((BaseState)this).GetTeam(); attack.damage = damageCoefficient * ((BaseState)this).damageStat; attack.procCoefficient = procCoefficient; attack.hitEffectPrefab = hitEffectPrefab; attack.forceVector = bonusForce; attack.pushAwayForce = pushForce; attack.hitBoxGroup = hitBoxGroup; attack.isCrit = ((BaseState)this).RollCrit(); attack.impactSound = impactSound; } protected virtual void PlayAttackAnimation() { ((EntityState)this).PlayCrossfade("Gesture, Override", "Slash" + (1 + swingIndex), "Slash.playbackRate", duration, 0.05f); } public override void OnExit() { if (!hasFired && !cancelled) { FireAttack(); } ((EntityState)this).OnExit(); animator.SetBool("attacking", false); } protected virtual void PlaySwingEffect() { EffectManager.SimpleMuzzleFlash(swingEffectPrefab, ((EntityState)this).gameObject, muzzleString, true); } protected virtual void OnHitEnemyAuthority() { //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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) Util.PlaySound(hitSoundString, ((EntityState)this).gameObject); if (!hasHopped) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded && hitHopVelocity > 0f) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, hitHopVelocity); } hasHopped = true; } if (!inHitPause && hitStopDuration > 0f) { storedVelocity = ((EntityState)this).characterMotor.velocity; hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, "Slash.playbackRate"); hitPauseTimer = hitStopDuration / ((BaseState)this).attackSpeedStat; inHitPause = true; } } private void FireAttack() { if (!hasFired) { hasFired = true; Util.PlayAttackSpeedSound(swingSoundString, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); if (((EntityState)this).isAuthority) { PlaySwingEffect(); ((BaseState)this).AddRecoil(-1f * attackRecoil, -2f * attackRecoil, -0.5f * attackRecoil, 0.5f * attackRecoil); } } if (((EntityState)this).isAuthority && attack.Fire((List)null)) { OnHitEnemyAuthority(); } } protected virtual void SetNextState() { int num = ((swingIndex == 0) ? 1 : 0); ((EntityState)this).outer.SetNextState((EntityState)(object)new BaseMeleeAttack { swingIndex = num }); } public override void FixedUpdate() { //IL_0037: 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_0061: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: 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) ((EntityState)this).FixedUpdate(); hitPauseTimer -= Time.fixedDeltaTime; if (hitPauseTimer <= 0f && inHitPause) { ((BaseState)this).ConsumeHitStopCachedState(hitStopCachedState, ((EntityState)this).characterMotor, animator); inHitPause = false; ((EntityState)this).characterMotor.velocity = storedVelocity; } if (!inHitPause) { stopwatch += Time.fixedDeltaTime; } else { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } if (Object.op_Implicit((Object)(object)animator)) { animator.SetFloat("Swing.playbackRate", 0f); } } if (stopwatch >= duration * attackStartTime && stopwatch <= duration * attackEndTime) { FireAttack(); } if (stopwatch >= duration - earlyExitTime && ((EntityState)this).isAuthority && ((EntityState)this).inputBank.skill1.down) { if (!hasFired) { FireAttack(); } SetNextState(); } else if (stopwatch >= 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 override void OnSerialize(NetworkWriter writer) { ((BaseSkillState)this).OnSerialize(writer); writer.Write(swingIndex); } public override void OnDeserialize(NetworkReader reader) { ((BaseSkillState)this).OnDeserialize(reader); swingIndex = reader.ReadInt32(); } } public class BaseTimedSkillState : BaseSkillState { public static float TimedBaseDuration; public static float TimedBaseCastStartTime; public static float TimedBaseCastEndTime; protected float duration; protected float castStartTime; protected float castEndTime; protected bool hasFired; protected bool isFiring; protected bool hasExited; protected virtual void InitDurationValues(float baseDuration, float baseCastStartTime, float baseCastEndTime = 1f) { TimedBaseDuration = baseDuration; TimedBaseCastStartTime = baseCastStartTime; TimedBaseCastEndTime = baseCastEndTime; duration = TimedBaseDuration / ((BaseState)this).attackSpeedStat; castStartTime = baseCastStartTime * duration; castEndTime = baseCastEndTime * duration; } protected virtual void OnCastEnter() { } protected virtual void OnCastFixedUpdate() { } protected virtual void OnCastUpdate() { } protected virtual void OnCastExit() { } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (!hasFired && ((EntityState)this).fixedAge > castStartTime) { hasFired = true; OnCastEnter(); } bool flag = ((EntityState)this).fixedAge >= castStartTime; bool flag2 = ((EntityState)this).fixedAge >= castEndTime; isFiring = false; if ((flag && !flag2) || (flag && flag2 && !hasFired)) { isFiring = true; OnCastFixedUpdate(); } if (flag2 && !hasExited) { hasExited = true; OnCastExit(); } if (((EntityState)this).fixedAge > duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void Update() { ((EntityState)this).Update(); if (isFiring) { OnCastUpdate(); } } } public class ExampleTimedSkillState : BaseTimedSkillState { public static float SkillBaseDuration = 1.5f; public static float SkillStartTime = 0.2f; public static float SkillEndTime = 0.9f; public override void OnEnter() { ((BaseState)this).OnEnter(); InitDurationValues(SkillBaseDuration, SkillStartTime, SkillEndTime); } protected override void OnCastEnter() { } protected override void OnCastFixedUpdate() { } protected override void OnCastExit() { } } public class ExampleDelayedSkillState : BaseTimedSkillState { public static float SkillBaseDuration = 1.5f; public static float SkillStartTime = 0.2f; public override void OnEnter() { ((BaseState)this).OnEnter(); InitDurationValues(SkillBaseDuration, SkillStartTime); } protected override void OnCastEnter() { } } } namespace ArsonistMod.Content.Controllers { public class ArsonistController : MonoBehaviour { private Animator anim; private CharacterBody charBody; private CharacterMotor characterMotor; private EntityStateMachine[] entityStateMachines; private EntityStateMachine weaponStateMachine; private EntityStateMachine bodyStateMachine; public float idleStopwatch; public float idleIntervalStopwatch; public bool isIdle; public bool justEnteredIdle; public bool flamethrowerSelected; public ParticleSystem steamParticle; public ParticleSystem steamDownParticle; public ParticleSystem fireBeam; public ParticleSystem fireBeamForward; public ParticleSystem flamethrower; public ParticleSystem weakFlamethrower; public ParticleSystem ringFire; public ParticleSystem trailFire; public ParticleSystem sparkParticle; public ParticleSystem fingerFireParticle; public ParticleSystem cleanseBlast; public Transform flamethrowerTransform; public Transform weakFlamethrowerTransform; public bool ringFireActive; public bool playingFlamethrower; public uint flamethrowerPlayingID; public FootstepHandler footstepHandler; public bool hasZPBedRecently; public CameraRigController cameraRigController; private void Awake() { Hooks(); } private void Start() { ChildLocator componentInChildren = ((Component)this).GetComponentInChildren(); if ((Object)(object)componentInChildren != (Object)null) { steamParticle = ((Component)componentInChildren.FindChild("SteamGroup")).GetComponent(); steamDownParticle = ((Component)componentInChildren.FindChild("SteamFireDown")).GetComponent(); fireBeam = ((Component)componentInChildren.FindChild("FireBeam")).GetComponent(); fireBeamForward = ((Component)componentInChildren.FindChild("FireBeamForwardFiring")).GetComponent(); flamethrowerTransform = componentInChildren.FindChild("Flamethrower"); weakFlamethrowerTransform = componentInChildren.FindChild("FlamethrowerWeak"); weakFlamethrower = ((Component)componentInChildren.FindChild("FlamethrowerWeak")).GetComponent(); flamethrower = ((Component)componentInChildren.FindChild("Flamethrower")).GetComponent(); ringFire = ((Component)componentInChildren.FindChild("RingFlame")).GetComponent(); trailFire = ((Component)componentInChildren.FindChild("TrailFlame")).GetComponent(); sparkParticle = ((Component)componentInChildren.FindChild("SparkEffect")).GetComponent(); fingerFireParticle = ((Component)componentInChildren.FindChild("FireThumbParticle")).GetComponent(); cleanseBlast = ((Component)componentInChildren.FindChild("CleanseBlast")).GetComponent(); } charBody = ((Component)this).gameObject.GetComponent(); characterMotor = ((Component)this).gameObject.GetComponent(); entityStateMachines = ((Component)this).gameObject.GetComponents(); EntityStateMachine[] array = entityStateMachines; foreach (EntityStateMachine val in array) { if (val.customName == "Weapon") { weaponStateMachine = val; } if (val.customName == "Body") { bodyStateMachine = val; } } idleStopwatch = 0f; isIdle = false; HurtBoxGroup hurtBoxGroup = charBody.hurtBoxGroup; anim = ((Component)hurtBoxGroup).gameObject.GetComponent(); if (charBody.skillLocator.primary.skillNameToken == "POPCORN_ARSONIST_BODY_PRIMARY_FLAMETHROWER_NAME") { flamethrowerSelected = true; } charBody._defaultCrosshairPrefab = (flamethrowerSelected ? Assets.flamethrowerCrosshair : Assets.fireballCrosshair); } public void StopAllParticleEffects() { steamParticle.Stop(); steamDownParticle.Stop(); fireBeam.Stop(); fireBeamForward.Stop(); weakFlamethrower.Stop(); flamethrower.Stop(); ringFire.Stop(); trailFire.Stop(); sparkParticle.Stop(); fingerFireParticle.Stop(); cleanseBlast.Stop(); } public void Hooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown CameraRigController.Update += new hook_Update(CameraRigController_Update); } public void Unhook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown CameraRigController.Update -= new hook_Update(CameraRigController_Update); } private void CameraRigController_Update(orig_Update orig, CameraRigController self) { orig.Invoke(self); if (!Object.op_Implicit((Object)(object)cameraRigController)) { cameraRigController = self; } } public void Update() { //IL_0022: 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_005d: 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_008b: 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_012a: 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_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0325: 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_0334: 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_034c: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: 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_03ae: 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) if (characterMotor.isGrounded && hasZPBedRecently) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)charBody).netId, 1135082308u), (NetworkDestination)1); hasZPBedRecently = false; } if (charBody.hasEffectiveAuthority) { KeyboardShortcut value = Config.emoteSitKey.Value; if (((KeyboardShortcut)(ref value)).IsPressed()) { bodyStateMachine.SetNextState((EntityState)(object)new EmoteSit()); } else { value = Config.emoteStrutKey.Value; if (((KeyboardShortcut)(ref value)).IsPressed()) { bodyStateMachine.SetNextStateToMain(); weaponStateMachine.SetNextState((EntityState)(object)new EmoteStrut()); } else { value = Config.emoteLobbyKey.Value; if (((KeyboardShortcut)(ref value)).IsPressed()) { bodyStateMachine.SetNextState((EntityState)(object)new EmoteLobby()); } else { value = Config.dieKey.Value; if (((KeyboardShortcut)(ref value)).IsPressed() && Config.shouldEnableDieKey.Value) { charBody.healthComponent.Suicide((GameObject)null, (GameObject)null, (DamageType)0); } } } } Vector3 moveDirection = characterMotor.moveDirection; if (((Vector3)(ref moveDirection)).magnitude == 0f && !charBody.inputBank.skill1.down && !charBody.inputBank.skill2.down && !charBody.inputBank.skill3.down && !charBody.inputBank.skill4.down && characterMotor.isGrounded) { idleStopwatch += Time.deltaTime; if (idleStopwatch >= 7f && !isIdle) { isIdle = true; justEnteredIdle = true; anim.SetBool("isIdle", true); } } else { idleStopwatch = 0f; idleIntervalStopwatch = 0f; justEnteredIdle = false; isIdle = false; anim.SetBool("isIdle", false); } if (isIdle) { idleIntervalStopwatch += Time.deltaTime; if (idleIntervalStopwatch >= 25f || (justEnteredIdle && idleIntervalStopwatch >= 8f)) { justEnteredIdle = false; idleIntervalStopwatch = 0f; if (Object.op_Implicit((Object)(object)charBody)) { uint soundNum = ((charBody.skinIndex == Arsonist.FirebugSkinIndex) ? 137978395u : 1362851720u); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)charBody).netId, soundNum), (NetworkDestination)1); } } } } if (flamethrowerSelected && Object.op_Implicit((Object)(object)flamethrowerTransform)) { Ray aimRay = charBody.inputBank.GetAimRay(); flamethrowerTransform.rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction, Vector3.up); weakFlamethrowerTransform.rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction, Vector3.up); if (!charBody.inputBank.skill1.down && playingFlamethrower && charBody.hasEffectiveAuthority) { playingFlamethrower = false; AkSoundEngine.StopPlayingID(flamethrowerPlayingID); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)charBody).netId, 4168901551u), (NetworkDestination)1); } } if (ringFireActive && Config.cleanseRingFireEffectEnabled.Value) { if (!charBody.HasBuff(Buffs.cleanseSpeedBoost)) { ringFireActive = false; trailFire.Stop(); ringFire.Stop(); } } else if (!Config.cleanseRingFireEffectEnabled.Value) { ringFireActive = false; trailFire.Stop(); ringFire.Stop(); } } public void OnDestroy() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) Unhook(); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)charBody).netId, 2176930590u), (NetworkDestination)1); } } internal class ArsonistDisplayController : MonoBehaviour { internal float stopwatch; internal float duration; internal static float igniteFraction = 0.38f; internal static float flameParticleTrigger = 0.55f; internal bool ignited; internal bool sizzling; public ParticleSystem fireParticle; public ParticleSystem sparkParticle; private void Start() { stopwatch = 0f; ignited = false; sizzling = false; duration = 1.7f; ChildLocator componentInChildren = ((Component)this).GetComponentInChildren(); if ((Object)(object)componentInChildren != (Object)null) { fireParticle = ((Component)componentInChildren.FindChild("FireParticle")).gameObject.GetComponent(); sparkParticle = ((Component)componentInChildren.FindChild("SparkParticle")).gameObject.GetComponent(); } } private void Update() { stopwatch += Time.deltaTime; if (stopwatch >= duration * igniteFraction && !ignited) { Util.PlaySound("Arsonist_Menu_Match_Strike", ((Component)this).gameObject); ignited = true; fireParticle.Play(); sparkParticle.Play(); } } } public class ArsonistPassive : MonoBehaviour { public SkillDef normalGaugePassive; public SkillDef blueGaugePassive; public GenericSkill passiveSkillSlot; public SkillDef movespeedOnFirePassive; public SkillDef halfDamagePassive; public GenericSkill secondaryPassiveSkillSlot; public bool isBlueGauge() { if (Object.op_Implicit((Object)(object)blueGaugePassive) && Object.op_Implicit((Object)(object)passiveSkillSlot)) { return (Object)(object)passiveSkillSlot.skillDef == (Object)(object)blueGaugePassive; } return false; } public bool isHalfDamagePassive() { if (Object.op_Implicit((Object)(object)secondaryPassiveSkillSlot) && Object.op_Implicit((Object)(object)halfDamagePassive)) { return (Object)(object)secondaryPassiveSkillSlot.skillDef == (Object)(object)halfDamagePassive; } return false; } } public class EnergySystem : MonoBehaviour { public enum OverheatState { START, HOLD, END, DORMANT } private enum GlowState { STOP, FLASH, DECAY } public CharacterBody characterBody; public ArsonistPassive passive; public ArsonistController arsonistController; public GameObject CustomUIObject; public GameObject EnergyNumberContainer; public Canvas CustomUIObjectCanvas; public LineRenderer fullSegment; public LineRenderer levelSegment; public LineRenderer segment1; public LineRenderer segment2; public LineRenderer segment3; public Vector3[] segmentList; public Camera mainCamera; public OverheatState overheatState; public float decayTimer = 0.6f; public float overheatTimer = 0f; public bool overheatTriggered; public Vector3[] originalRedLength; public float additionalRed = 0f; public bool enabledUI; public bool isAcceleratedCooling; public RectTransform energyMeter; public RectTransform energyMeterGlowRect; public HGTextMeshProUGUI energyNumber; public float maxOverheat; public float currentOverheat; public float regenOverheat; public float costmultiplierOverheat; public float costflatOverheat; public float overheatDecayTimer; public bool SetActiveTrue; public bool ifOverheatRegenAllowed; public bool ifOverheatMaxed; public bool hasOverheatedSecondary; public bool hasOverheatedUtility; public bool hasOverheatedSpecial; public float lowerBound; public bool baseHeatGauge; public string prefix = "POPCORN"; private float decayConst; private float flashConst; private float glowStopwatch; private Color targetColor; private Color originalColor; private Color currentColor; private GlowState state; private int whiteSegment; private int blueSegment; private int redSegment; private float blueRatio; private float whiteRatio; public float currentBlueNumber; public bool baseAIPresent; private uint tickingSound; private Animator anim; private TextVibration textVibration; public MasochismController masoCon; public bool hasOverheatedThisStage = false; public void Awake() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected O, but got Unknown //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Expected O, but got Unknown characterBody = ((Component)this).gameObject.GetComponent(); CharacterMaster.OnInventoryChanged += new hook_OnInventoryChanged(CharacterMaster_OnInventoryChanged); CharacterBody.OnLevelUp += new hook_OnLevelUp(CharacterBody_OnLevelUp); CameraRigController.Update += new hook_Update(CameraRigController_Update); enabledUI = false; isAcceleratedCooling = false; hasOverheatedThisStage = false; } public void SegmentMake() { //IL_018e: 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_01d2: 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_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) if (baseHeatGauge) { blueRatio = 0f; whiteRatio = StaticValues.maxBlueWhiteSegment - blueRatio; } else { blueRatio = StaticValues.SegmentedValuesOnGaugeAlt.y / StaticValues.maxBlueWhiteSegment * (1f + StaticValues.backupBlueGain * (float)characterBody.master.inventory.GetItemCount(Items.SecondarySkillMagazine) + StaticValues.hardlightBlueGain * (float)characterBody.master.inventory.GetItemCount(Items.UtilitySkillMagazine) + StaticValues.lysateBlueGain * (float)characterBody.master.inventory.GetItemCount(Items.EquipmentMagazineVoid)); if (blueRatio > StaticValues.maxBlueWhiteSegment) { blueRatio = StaticValues.maxBlueWhiteSegment; } whiteRatio = StaticValues.maxBlueWhiteSegment - blueRatio; if (whiteRatio < 0f) { whiteRatio = 0f; } } whiteSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * whiteRatio); blueSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * blueRatio); redSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * StaticValues.SegmentedValuesOnGaugeMain.z); Vector3[] array = (Vector3[])(object)new Vector3[whiteSegment]; Vector3[] array2 = (Vector3[])(object)new Vector3[blueSegment]; Vector3[] array3 = (Vector3[])(object)new Vector3[redSegment]; for (int i = 0; i < StaticValues.noOfSegmentsOnOverheatGauge; i++) { if (i < whiteSegment) { array[i] = segmentList[i]; } if (i > whiteSegment && i < whiteSegment + blueSegment) { array2[i - whiteSegment - 1] = segmentList[i]; } if (i > whiteSegment + blueSegment && i < whiteSegment + blueSegment + redSegment) { array3[i - whiteSegment - blueSegment - 1] = segmentList[i]; } } segment1.positionCount = ((array.Length >= 1) ? (array.Length - 1) : array.Length); segment1.SetPositions(array); segment2.positionCount = ((array2.Length >= 1) ? (array2.Length - 1) : array2.Length); segment2.SetPositions(array2); segment3.positionCount = ((array3.Length >= 1) ? (array3.Length - 1) : array3.Length); segment3.SetPositions(array3); originalRedLength = array3; } private void CameraRigController_Update(orig_Update orig, CameraRigController self) { orig.Invoke(self); if (self.hud.mainUIPanel.activeInHierarchy) { if (Object.op_Implicit((Object)(object)CustomUIObject) && Object.op_Implicit((Object)(object)energyNumber) && characterBody.hasEffectiveAuthority && !baseAIPresent) { CustomUIObject.SetActive(true); ((Component)energyNumber).gameObject.SetActive(true); } } else if (Object.op_Implicit((Object)(object)CustomUIObject) && Object.op_Implicit((Object)(object)energyNumber) && characterBody.hasEffectiveAuthority) { CustomUIObject.SetActive(false); ((Component)energyNumber).gameObject.SetActive(false); } } private void CharacterBody_OnLevelUp(orig_OnLevelUp orig, CharacterBody self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self.master.inventory)) { try { SegmentMake(); } catch (IndexOutOfRangeException ex) { Debug.Log((object)"OH FUCK"); Debug.Log((object)ex); } } } private void CharacterMaster_OnInventoryChanged(orig_OnInventoryChanged orig, CharacterMaster self) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Invalid comparison between Unknown and I4 orig.Invoke(self); if (!Object.op_Implicit((Object)(object)self) || (int)self.teamIndex != 1 || !Object.op_Implicit((Object)(object)self.inventory)) { return; } GameObject bodyObject = self.GetBodyObject(); if ((Object)(object)bodyObject != (Object)null) { try { SegmentMake(); } catch (IndexOutOfRangeException ex) { Debug.Log((object)"OH FUCK"); Debug.Log((object)ex); } } } public void Start() { //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_027b: 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_029a: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: Unknown result type (might be due to invalid IL or missing references) maxOverheat = StaticValues.baseEnergy + (characterBody.level - 1f) * StaticValues.levelEnergy; currentOverheat = 0f; regenOverheat = characterBody.attackSpeed * StaticValues.regenOverheatFraction; costmultiplierOverheat = 1f; costflatOverheat = 0f; ifOverheatMaxed = false; ifOverheatRegenAllowed = true; hasOverheatedSecondary = false; hasOverheatedUtility = false; hasOverheatedSpecial = false; overheatTriggered = false; additionalRed = 0f; lowerBound = 0f; overheatState = OverheatState.DORMANT; mainCamera = Camera.main; passive = ((Component)this).gameObject.GetComponent(); arsonistController = ((Component)this).gameObject.GetComponent(); if (!passive.isBlueGauge()) { baseHeatGauge = true; blueRatio = 0f; whiteRatio = StaticValues.maxBlueWhiteSegment - blueRatio; } else { baseHeatGauge = false; blueRatio = StaticValues.SegmentedValuesOnGaugeAlt.y / StaticValues.maxBlueWhiteSegment * (1f + StaticValues.backupBlueGain * (float)characterBody.master.inventory.GetItemCount(Items.SecondarySkillMagazine) + StaticValues.hardlightBlueGain * (float)characterBody.master.inventory.GetItemCount(Items.UtilitySkillMagazine) + StaticValues.lysateBlueGain * (float)characterBody.master.inventory.GetItemCount(Items.EquipmentMagazineVoid)); if (blueRatio > StaticValues.maxBlueWhiteSegment) { blueRatio = StaticValues.maxBlueWhiteSegment; } whiteRatio = StaticValues.maxBlueWhiteSegment - blueRatio; if (whiteRatio < 0f) { whiteRatio = 0f; } } currentBlueNumber = whiteRatio * maxOverheat; CharacterMaster master = characterBody.master; BaseAI component = ((Component)master).GetComponent(); baseAIPresent = Object.op_Implicit((Object)(object)component); if (!Object.op_Implicit((Object)(object)master)) { baseAIPresent = true; } SetupCustomUI(); state = GlowState.STOP; decayConst = 1f; flashConst = 1f; glowStopwatch = 1f; originalColor = new Color(1f, 1f, 1f, 0f); targetColor = new Color(1f, 1f, 1f, 1f); currentColor = originalColor; anim = ((Component)characterBody.hurtBoxGroup).gameObject.GetComponent(); if (characterBody.skillLocator.special.skillNameToken == "POPCORN_ARSONIST_BODY_SPECIAL_MASOCHISM_NAME") { masoCon = ((Component)this).gameObject.AddComponent(); } } private void SetupCustomUI() { //IL_0084: 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) CustomUIObject = Object.Instantiate(Assets.mainAssetBundle.LoadAsset("arsonistOverheatGauge")); EnergyNumberContainer = Object.Instantiate(Assets.mainAssetBundle.LoadAsset("arsonistCustomUI")); CustomUIObjectCanvas = CustomUIObject.GetComponent(); CustomUIObjectCanvas.renderMode = (RenderMode)1; CustomUIObjectCanvas.worldCamera = mainCamera; CanvasScaler val = CustomUIObject.AddComponent(); val.uiScaleMode = (ScaleMode)1; val.referenceResolution = new Vector2(1920f, 1080f); segmentList = (Vector3[])(object)new Vector3[StaticValues.noOfSegmentsOnOverheatGauge]; levelSegment = ((Component)CustomUIObject.transform.GetChild(0)).GetComponent(); segment1 = ((Component)CustomUIObject.transform.GetChild(1)).GetComponent(); segment2 = ((Component)CustomUIObject.transform.GetChild(2)).GetComponent(); segment3 = ((Component)CustomUIObject.transform.GetChild(3)).GetComponent(); CalculateSemiCircle(6f, 0.85f); if (baseHeatGauge) { whiteSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * StaticValues.SegmentedValuesOnGaugeMain.x); blueSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * StaticValues.SegmentedValuesOnGaugeMain.y); redSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * StaticValues.SegmentedValuesOnGaugeMain.z); } else { whiteSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * StaticValues.SegmentedValuesOnGaugeAlt.x); blueSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * StaticValues.SegmentedValuesOnGaugeAlt.y); redSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * StaticValues.SegmentedValuesOnGaugeAlt.z); } SegmentMake(); energyNumber = CreateLabel(EnergyNumberContainer.transform, "energyNumber", $"{(int)currentOverheat} / {maxOverheat}", new Vector2(0f, 110f), 24f); textVibration = ((Component)energyNumber).gameObject.AddComponent(); CustomUIObject.SetActive(false); ((Component)energyNumber).gameObject.SetActive(false); } private void CalculateSemiCircle(float radius, float percentage) { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) float num = percentage * radius * 2f; float num2 = num / (float)StaticValues.noOfSegmentsOnOverheatGauge; float num3 = percentage * radius * -1f; for (int i = 0; i < segmentList.Length; i++) { float num4 = Mathf.Sqrt(Mathf.Pow(radius, 2f) - Mathf.Pow(num3, 2f)); segmentList[i] = new Vector3(num3, num4, 0f); num3 += num2; } } private HGTextMeshProUGUI CreateLabel(Transform parent, string name, string text, Vector2 position, float textScale) { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_006d: 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_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: 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_00e4: 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) GameObject val2; if (!Object.op_Implicit((Object)(object)parent)) { GameObject val = new GameObject(name); val2 = val; Canvas val3 = val2.AddComponent(); val3.renderMode = (RenderMode)0; } else { val2 = new GameObject(name); val2.transform.parent = parent; } CanvasScaler val4 = ((Component)parent).gameObject.AddComponent(); val4.uiScaleMode = (ScaleMode)1; val4.screenMatchMode = (ScreenMatchMode)2; val4.referenceResolution = new Vector2(2560f, 1440f); val2.AddComponent(); RectTransform val5 = val2.AddComponent(); HGTextMeshProUGUI val6 = val2.AddComponent(); ((Behaviour)val6).enabled = true; ((TMP_Text)val6).text = text; ((TMP_Text)val6).fontSize = textScale; ((Graphic)val6).color = Color.white; ((TMP_Text)val6).alignment = (TextAlignmentOptions)514; ((TMP_Text)val6).enableWordWrapping = false; ((Transform)val5).localPosition = Vector2.op_Implicit(Vector2.zero); val5.anchorMin = Vector2.zero; val5.anchorMax = Vector2.one; ((Transform)val5).localScale = Vector3.one; val5.sizeDelta = Vector2.zero; val5.anchoredPosition = position; return val6; } private void CalculateEnergyStats() { //IL_0500: Unknown result type (might be due to invalid IL or missing references) //IL_0517: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)characterBody)) { if (baseHeatGauge) { if (Object.op_Implicit((Object)(object)characterBody.master)) { maxOverheat = StaticValues.baseEnergy + (characterBody.level - 1f) * StaticValues.levelEnergy + StaticValues.backupEnergyGain * (float)characterBody.master.inventory.GetItemCount(Items.SecondarySkillMagazine) + (StaticValues.hardlightEnergyGain * (float)characterBody.master.inventory.GetItemCount(Items.UtilitySkillMagazine) + StaticValues.lysateEnergyGain * (float)characterBody.master.inventory.GetItemCount(Items.EquipmentMagazineVoid)); } float num = currentOverheat / (maxOverheat / 2f); if (num < 1f) { num = 1f; } regenOverheat = characterBody.attackSpeed * StaticValues.regenOverheatFraction * maxOverheat * num; blueRatio = 0f; whiteRatio = StaticValues.maxBlueWhiteSegment - blueRatio; } else { maxOverheat = StaticValues.baseEnergy; regenOverheat = characterBody.attackSpeed * StaticValues.regenOverheatFraction * maxOverheat; if (Object.op_Implicit((Object)(object)characterBody.master)) { blueRatio = StaticValues.SegmentedValuesOnGaugeAlt.y / StaticValues.maxBlueWhiteSegment * (1f + StaticValues.backupBlueGain * (float)characterBody.master.inventory.GetItemCount(Items.SecondarySkillMagazine) + StaticValues.hardlightBlueGain * (float)characterBody.master.inventory.GetItemCount(Items.UtilitySkillMagazine) + StaticValues.lysateBlueGain * (float)characterBody.master.inventory.GetItemCount(Items.EquipmentMagazineVoid)); } if (blueRatio > StaticValues.maxBlueWhiteSegment) { blueRatio = StaticValues.maxBlueWhiteSegment; } whiteRatio = StaticValues.maxBlueWhiteSegment - blueRatio; if (whiteRatio < 0f) { whiteRatio = 0f; } } if (Object.op_Implicit((Object)(object)characterBody.master)) { costmultiplierOverheat = (float)Math.Pow(0.75, characterBody.master.inventory.GetItemCount(Items.AlienHead)); costflatOverheat = 5 * characterBody.master.inventory.GetItemCount(Items.LunarBadLuck); } if (costmultiplierOverheat > 1f) { costmultiplierOverheat = 1f; } } if (ifOverheatMaxed) { hasOverheatedSecondary = true; hasOverheatedUtility = true; hasOverheatedSpecial = true; float num2 = 1f; if (isAcceleratedCooling) { num2 = 30f; } float num3 = ((characterBody.attackSpeed > 1f) ? characterBody.attackSpeed : 1f); if (overheatDecayTimer > Config.timeBeforeHeatGaugeDecays.Value / num3) { currentOverheat = 0f; overheatDecayTimer = 0f; ifOverheatRegenAllowed = true; ifOverheatMaxed = false; overheatTriggered = false; isAcceleratedCooling = false; AkSoundEngine.StopPlayingID(tickingSound); NetworkingHelpers.ApplyBuff(characterBody, Buffs.overheatDebuff.buffIndex, 0, -1f); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)characterBody).netId, 3787943995u), (NetworkDestination)1); } else { currentOverheat = maxOverheat; ifOverheatRegenAllowed = false; overheatDecayTimer += Time.fixedDeltaTime * num2; } } if (ifOverheatRegenAllowed) { if (passive.isBlueGauge()) { LowerHeat(regenOverheat * Time.fixedDeltaTime); } else { float num4 = currentOverheat / maxOverheat; float num5 = Mathf.Pow(num4, 4f) + Config.baseGaugeLowerBoundRecharge.Value; if (num5 >= Config.baseGaugeUpperBoundRecharge.Value) { num5 = Config.baseGaugeUpperBoundRecharge.Value; } if (num5 <= Config.baseGaugeLowerBoundRecharge.Value) { num5 = Config.baseGaugeLowerBoundRecharge.Value; } LowerHeat(regenOverheat * num5 * Time.fixedDeltaTime); } } if (currentOverheat > maxOverheat) { currentOverheat = maxOverheat; ifOverheatMaxed = true; hasOverheatedThisStage = true; NetworkingHelpers.ApplyBuff(characterBody, Buffs.overheatDebuff.buffIndex, 1, -1f); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)characterBody).netId, 3152162514u), (NetworkDestination)1); tickingSound = AkSoundEngine.PostEvent(3408252638u, ((Component)characterBody).gameObject); } if (currentOverheat < lowerBound) { currentOverheat = lowerBound; } if (Object.op_Implicit((Object)(object)energyNumber)) { if (isAcceleratedCooling) { ((TMP_Text)energyNumber).SetText("COOLING...!", true); } else if (characterBody.HasBuff(Buffs.masochismDeactivatedDebuff)) { ((TMP_Text)energyNumber).SetText(ifOverheatMaxed ? "OVERHEAT:EX!" : $"{(int)currentOverheat} / {maxOverheat}", true); } else { ((TMP_Text)energyNumber).SetText(ifOverheatMaxed ? "OVERHEAT!" : $"{(int)currentOverheat} / {maxOverheat}", true); } } } public void FixedUpdate() { if (characterBody.hasEffectiveAuthority) { CalculateEnergyStats(); if (!enabledUI && !baseAIPresent) { enabledUI = true; CustomUIObject.SetActive(true); ((Component)energyNumber).gameObject.SetActive(true); } } } public void SetOverheatMaterialParameters() { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_010d: 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_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) if (ifOverheatMaxed) { float num = overheatDecayTimer; float num2 = Config.timeBeforeHeatGaugeDecays.Value / characterBody.attackSpeed; float num3 = (num2 - num) / 4f / num2; Assets.arsonistOverheatingMaterial.SetColor("_Color", Color.op_Implicit(new Vector4(1f, 0.262f, 0f, num3))); Assets.arsonistOverheatingMaterial.SetFloat("_VertexTimeMultiplier", (num2 - num) / 4f / num2 * 25f); } else { float num4 = Mathf.Clamp(Mathf.Pow(currentOverheat / maxOverheat, 8f), 0f, 1f) / 4f; if (baseHeatGauge) { Assets.arsonistOverheatingMaterial.SetColor("_Color", Color.op_Implicit(new Vector4(1f, 0.4f, 0f, num4))); } else { Assets.arsonistOverheatingMaterial.SetColor("_Color", Color.op_Implicit(new Vector4(0f, 0.537f, 1f, num4))); } Assets.arsonistOverheatingMaterial.SetFloat("_VertexTimeMultiplier", Mathf.Clamp(Mathf.Pow(currentOverheat / maxOverheat, 8f), 0f, 1f) * 25f); } } public void CheckAndSetOverheatingCanister() { if (ifOverheatMaxed) { anim.SetBool("Overheated", true); arsonistController.steamDownParticle.Play(); } else { anim.SetBool("Overheated", false); arsonistController.steamDownParticle.Stop(); } } public void HandleTextVibration() { if (ifOverheatMaxed) { textVibration.vibrating = true; textVibration.intensity = Mathf.Clamp(1f / (0.03f * textVibration.stopwatch), 0f, 15f); textVibration.speed = 1f / (0.03f * textVibration.stopwatch); } else { textVibration.vibrating = false; } } public void Update() { //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: 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_0118: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: 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_0160: Unknown result type (might be due to invalid IL or missing references) //IL_017c: 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_0260: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)Assets.arsonistOverheatingMaterial) && characterBody.hasEffectiveAuthority) { SetOverheatMaterialParameters(); } if (Object.op_Implicit((Object)(object)anim) && characterBody.hasEffectiveAuthority) { CheckAndSetOverheatingCanister(); } if (Object.op_Implicit((Object)(object)textVibration) && Config.overheatTextShouldVibrate.Value) { HandleTextVibration(); } if (!passive.isBlueGauge()) { if (!baseHeatGauge) { baseHeatGauge = true; } } else if (baseHeatGauge) { baseHeatGauge = false; } currentBlueNumber = whiteRatio * maxOverheat; if (Object.op_Implicit((Object)(object)energyNumber)) { if (currentOverheat >= maxOverheat) { if (isAcceleratedCooling) { ((Graphic)energyNumber).color = Color.cyan; } else { ((Graphic)energyNumber).color = Color.red; } if (characterBody.HasBuff(Buffs.blueBuff.buffIndex)) { NetworkingHelpers.ApplyBuff(characterBody, Buffs.blueBuff.buffIndex, 0, -1f); NetworkingHelpers.ApplyBuff(characterBody, Buffs.lowerBuff.buffIndex, 1, -1f); } } else if (currentOverheat < currentBlueNumber) { ((Graphic)energyNumber).color = Color.white; if (characterBody.HasBuff(Buffs.blueBuff.buffIndex)) { NetworkingHelpers.ApplyBuff(characterBody, Buffs.blueBuff.buffIndex, 0, -1f); NetworkingHelpers.ApplyBuff(characterBody, Buffs.lowerBuff.buffIndex, 1, -1f); } } else if (currentOverheat >= currentBlueNumber && currentOverheat < maxOverheat && !baseHeatGauge) { ((Graphic)energyNumber).color = Color.cyan; if (!characterBody.HasBuff(Buffs.blueBuff.buffIndex)) { NetworkingHelpers.ApplyBuff(characterBody, Buffs.blueBuff.buffIndex, 1, -1f); NetworkingHelpers.ApplyBuff(characterBody, Buffs.lowerBuff.buffIndex, 0, -1f); } } } if (!Object.op_Implicit((Object)(object)mainCamera)) { mainCamera = Camera.main; CustomUIObjectCanvas.renderMode = (RenderMode)1; CustomUIObjectCanvas.worldCamera = mainCamera; } if (ifOverheatMaxed && !overheatTriggered) { overheatTriggered = true; overheatState = OverheatState.START; overheatTimer = 0f; additionalRed = 0f; } whiteSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * whiteRatio); blueSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * blueRatio); redSegment = (int)((float)StaticValues.noOfSegmentsOnOverheatGauge * StaticValues.SegmentedValuesOnGaugeMain.z); int num = whiteSegment + blueSegment; int num2 = (int)((float)num * (currentOverheat / maxOverheat)); if (num2 >= num) { num2 = num; } Vector3[] array = (Vector3[])(object)new Vector3[num2]; Array.Copy(segmentList, array, num2); levelSegment.positionCount = array.Length; levelSegment.SetPositions(array); switch (overheatState) { case OverheatState.START: { overheatTimer += Time.deltaTime; float num5 = 1f; if (isAcceleratedCooling) { num5 = 2f; } float num6 = ((characterBody.attackSpeed > 1f) ? characterBody.attackSpeed : 1f); additionalRed = (float)num * (overheatDecayTimer / (Config.timeBeforeHeatGaugeDecays.Value / num6)); if (!ifOverheatMaxed || overheatTimer >= Config.timeBeforeHeatGaugeDecays.Value / num6) { overheatState = OverheatState.END; overheatTriggered = false; overheatTimer = 0f; } int num7 = StaticValues.noOfSegmentsOnOverheatGauge - ((int)additionalRed + redSegment); if (num7 >= 0) { Vector3[] array3 = (Vector3[])(object)new Vector3[(int)(additionalRed + (float)redSegment)]; Array.Copy(segmentList, num7, array3, 0, (int)(additionalRed + (float)redSegment)); segment3.positionCount = (int)(additionalRed + (float)redSegment); segment3.SetPositions(array3); } else { segment3.positionCount = StaticValues.noOfSegmentsOnOverheatGauge; segment3.SetPositions(segmentList); } break; } case OverheatState.END: { overheatTimer += Time.deltaTime; float num3 = (float)num / decayTimer; additionalRed -= num3 * Time.deltaTime; int num4 = StaticValues.noOfSegmentsOnOverheatGauge - ((int)additionalRed + redSegment); if (num4 >= redSegment) { Vector3[] array2 = (Vector3[])(object)new Vector3[(int)(additionalRed + (float)redSegment)]; Array.Copy(segmentList, num4, array2, 0, (int)(additionalRed + (float)redSegment)); segment3.positionCount = (int)(additionalRed + (float)redSegment); segment3.SetPositions(array2); } if (overheatTimer >= decayTimer || additionalRed <= 0f) { overheatState = OverheatState.DORMANT; additionalRed = 0f; } break; } case OverheatState.DORMANT: segment3.positionCount = originalRedLength.Length - 1; segment3.SetPositions(originalRedLength); break; case OverheatState.HOLD: break; } } public void AddHeat(float Energy) { currentOverheat += Energy; if (Object.op_Implicit((Object)(object)masoCon)) { masoCon.heatChanged += Energy; } } public void LowerHeat(float Energy) { float num = Energy; currentOverheat -= Energy; if (currentOverheat < lowerBound) { num = Energy - Mathf.Abs(lowerBound - currentOverheat); currentOverheat = lowerBound; } if (Object.op_Implicit((Object)(object)masoCon)) { masoCon.heatChanged += num; } } public void SetCurrentHeatToLowerBound() { currentOverheat = lowerBound; } public void TriggerGlow(float newDecayTimer, float newFlashTimer, Color newStartingColor) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) decayConst = newDecayTimer; flashConst = newFlashTimer; originalColor = new Color(newStartingColor.r, newStartingColor.g, newStartingColor.b, 0f); targetColor = newStartingColor; glowStopwatch = 0f; state = GlowState.FLASH; } public void OnDestroy() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown //IL_0055: Unknown result type (might be due to invalid IL or missing references) Object.Destroy((Object)(object)CustomUIObject); Object.Destroy((Object)(object)EnergyNumberContainer); CharacterMaster.OnInventoryChanged -= new hook_OnInventoryChanged(CharacterMaster_OnInventoryChanged); CharacterBody.OnLevelUp -= new hook_OnLevelUp(CharacterBody_OnLevelUp); CameraRigController.Update -= new hook_Update(CameraRigController_Update); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)characterBody).netId, 2176930590u), (NetworkDestination)1); AkSoundEngine.StopPlayingID(tickingSound); } } public class MasochismController : MonoBehaviour { public EnergySystem energySystem; public CharacterBody characterBody; public HealthComponent healthComponent; public SkillLocator skillLoc; public ArsonistController arsonistCon; public float heatChanged; public int masoStacks; public bool masochismActive; public bool forceReset = false; public GameObject masochismRangeIndicator; public ParticleSystem masochismEffect; public Transform pulseEffect; public float damageOverTimeStopwatch; public float selfDamageStopwatch; public BlastAttack damageOverTimeSphere; public BlastAttack finalBlastAttack; public float stopwatch; public uint masochismActiveLoop; public bool masoRecentlyActivated; public float masoRadiusStopwatch = 0f; public static float masoRadiusRampUpTime = 0.8f; private CameraParamsOverrideHandle handle; public CameraTargetParams cameraTargetParams; public float targetFOV; public float baseFOV; public void Awake() { } public void Start() { //IL_0092: 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_00b1: 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_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: 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_00f4: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: 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_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_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011c: 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_0133: Expected O, but got Unknown //IL_0134: 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_0145: 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_014e: 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_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_017c: 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_0188: 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_0192: 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_019d: 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_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Expected O, but got Unknown energySystem = ((Component)this).GetComponent(); characterBody = ((Component)this).GetComponent(); cameraTargetParams = ((Component)this).GetComponent(); healthComponent = characterBody.healthComponent; skillLoc = characterBody.skillLocator; masochismRangeIndicator = Object.Instantiate(Assets.masoSphereIndicator); masochismEffect = masochismRangeIndicator.GetComponent(); pulseEffect = masochismRangeIndicator.transform.GetChild(0); masochismRangeIndicator.SetActive(false); NetMessageExtensions.Send((INetMessage)(object)new ToggleMasochismEffectNetworkRequest(((NetworkBehaviour)characterBody).netId, toggleOn: false), (NetworkDestination)1); Hook(); damageOverTimeSphere = new BlastAttack { attacker = ((Component)this).gameObject, inflictor = null, teamIndex = (TeamIndex)1, radius = StaticValues.masochismPulseRadius, falloffModel = (FalloffModel)0, baseDamage = characterBody.damage * StaticValues.masochismPulseCoefficient, baseForce = 0f, bonusForce = Vector3.up, damageType = (DamageType)128, damageColorIndex = (DamageColorIndex)0, canRejectForce = false, procCoefficient = 0.4f }; finalBlastAttack = new BlastAttack { attacker = ((Component)this).gameObject, inflictor = null, teamIndex = (TeamIndex)1, radius = StaticValues.masochismPulseRadius, falloffModel = (FalloffModel)0, baseDamage = characterBody.damage * StaticValues.masochismPulseCoefficient, baseForce = 0f, bonusForce = Vector3.up, damageType = (DamageType)128, damageColorIndex = (DamageColorIndex)0, canRejectForce = false, procCoefficient = 1f }; arsonistCon = ((Component)this).gameObject.GetComponent(); } public void Hook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage); CharacterBody.RecalculateStats += new hook_RecalculateStats(CharacterBody_RecalculateStats); } private void CharacterBody_RecalculateStats(orig_RecalculateStats orig, CharacterBody self) { if (!Object.op_Implicit((Object)(object)self.healthComponent)) { return; } orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && self.baseNameToken == "POPCORN_ARSONIST_BODY_NAME") { if (self.HasBuff(Buffs.masochismActiveBuff)) { self.damage *= StaticValues.masochismDamageBoost; } if (self.HasBuff(Buffs.masochismDeactivatedDebuff)) { self.damage *= StaticValues.masochismDamagePenalty; self.moveSpeed *= StaticValues.masochismMoveSpeedPenalty; } } } private void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo) { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Invalid comparison between Unknown and I4 //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self.body) && Object.op_Implicit((Object)(object)damageInfo.attacker)) { CharacterBody component = damageInfo.attacker.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { bool flag = (int)damageInfo.damageType == 67239936; if (component.HasBuff(Buffs.masochismActiveBuff) && component.baseNameToken == "POPCORN_ARSONIST_BODY_NAME" && !flag) { component.healthComponent.Heal(damageInfo.damage * Config.masochismActiveMultipliedActive.Value, default(ProcChainMask), true); } } } orig.Invoke(self, damageInfo); } public void Unhook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown HealthComponent.TakeDamage -= new hook_TakeDamage(HealthComponent_TakeDamage); CharacterBody.RecalculateStats -= new hook_RecalculateStats(CharacterBody_RecalculateStats); } public void FixedUpdate() { if (characterBody.hasEffectiveAuthority) { MasochismBuffApplication(); DetermineMasoActivateable(); if (masochismActive) { RunMasochismLoop(); } else { DisableMasochism(); } } } public void Update() { //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: 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) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011c: 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) if (!masochismActive && characterBody.hasEffectiveAuthority) { return; } float num = 1f; if (masoRecentlyActivated) { masoRadiusStopwatch += Time.deltaTime; num = Mathf.Clamp01(Mathf.Lerp(0f, 1f, masoRadiusStopwatch / masoRadiusRampUpTime)); if (masoRadiusStopwatch >= masoRadiusRampUpTime) { num = 1f; masoRecentlyActivated = false; masoRadiusStopwatch = 0f; } } float num2 = Mathf.Lerp(1f, StaticValues.masochismMaxMultipliedRange, stopwatch / (float)Config.masochismMaximumStack.Value); masochismRangeIndicator.transform.localScale = Vector3.one * StaticValues.masochismPulseRadius * num2 * num; masochismRangeIndicator.transform.position = ((Component)this).gameObject.transform.position; pulseEffect.localScale = Vector3.one * StaticValues.masochismPulseRadius * num2 * num; } public void ToggleMasochismRangeIndicator(bool value) { if (Object.op_Implicit((Object)(object)masochismRangeIndicator)) { masochismRangeIndicator.SetActive(value); } } public void DisableMasochism() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) if (characterBody.hasEffectiveAuthority) { masochismRangeIndicator.SetActive(false); NetMessageExtensions.Send((INetMessage)(object)new ToggleMasochismEffectNetworkRequest(((NetworkBehaviour)characterBody).netId, toggleOn: false), (NetworkDestination)1); if (!energySystem.ifOverheatMaxed) { NetworkingHelpers.ApplyBuff(characterBody, Buffs.masochismDeactivatedDebuff.buffIndex, 0, -1f); NetworkingHelpers.ApplyBuff(characterBody, Buffs.masochismDeactivatedNonDebuff.buffIndex, 0, -1f); } } } public void RunMasochismLoop() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0096: 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_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) NetworkingHelpers.ApplyBuff(characterBody, Buffs.masochismActiveBuff.buffIndex, 1, -1f); masochismRangeIndicator.SetActive(true); NetMessageExtensions.Send((INetMessage)(object)new ToggleMasochismEffectNetworkRequest(((NetworkBehaviour)characterBody).netId, toggleOn: true), (NetworkDestination)1); damageOverTimeStopwatch += Time.fixedDeltaTime; selfDamageStopwatch += Time.fixedDeltaTime; stopwatch += Time.fixedDeltaTime; if (damageOverTimeStopwatch >= StaticValues.masochismBasePulseTimer) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)characterBody).netId, 1578712289u), (NetworkDestination)1); damageOverTimeSphere.position = ((Component)this).gameObject.transform.position; damageOverTimeSphere.crit = characterBody.RollCrit(); damageOverTimeSphere.baseDamage = characterBody.baseDamage * StaticValues.masochismPulseCoefficient; float num = Mathf.Lerp(1f, StaticValues.masochismMaxMultipliedRange, stopwatch / (float)Config.masochismMaximumStack.Value); damageOverTimeSphere.radius = StaticValues.masochismPulseRadius * num; damageOverTimeSphere.Fire(); damageOverTimeStopwatch = 0f; } if (selfDamageStopwatch >= StaticValues.masochismBasePulseSelfDamageTimer) { NetMessageExtensions.Send((INetMessage)(object)new TakeDamageNetworkRequest(((NetworkBehaviour)characterBody.master).netId, ((NetworkBehaviour)characterBody.master).netId, healthComponent.fullHealth * StaticValues.masochismSelfDamage, burn: false, selfMasoDmg: true, crit: false), (NetworkDestination)1); selfDamageStopwatch = 0f; } energySystem.AddHeat(energySystem.maxOverheat * StaticValues.masochismEnergyIncreaseOverTimePercentage * Time.fixedDeltaTime); if (stopwatch >= (float)masoStacks) { TriggerMasochismAndEXOverheat(applyDebuff: false); } if (energySystem.ifOverheatMaxed) { TriggerMasochismAndEXOverheat(applyDebuff: true); } } public void TriggerMasochismAndEXOverheat(bool applyDebuff) { //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0071: 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_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0027: 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_0172: 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_018f: Unknown result type (might be due to invalid IL or missing references) if (characterBody.hasEffectiveAuthority && Config.ToggleMasochismFOVWarp.Value) { cameraTargetParams.RemoveParamsOverride(handle, 0.2f); } AkSoundEngine.StopPlayingID(masochismActiveLoop); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)characterBody).netId, 3765159379u), (NetworkDestination)1); finalBlastAttack.position = ((Component)this).gameObject.transform.position; finalBlastAttack.crit = characterBody.RollCrit(); finalBlastAttack.baseDamage = characterBody.baseDamage * StaticValues.masochismFinalBlastCoefficient * StaticValues.masochismDamageMultiplierPerStack * (float)masoStacks; float num = Mathf.Lerp(1f, StaticValues.masochismMaxMultipliedRange, stopwatch / (float)Config.masochismMaximumStack.Value); finalBlastAttack.radius = StaticValues.masochismPulseRadius * num; finalBlastAttack.damageType = (DamageType)128; finalBlastAttack.Fire(); masoStacks = 0; heatChanged = 0f; forceReset = true; energySystem.AddHeat(energySystem.maxOverheat * 2f); if (applyDebuff) { NetworkingHelpers.ApplyBuff(characterBody, Buffs.masochismDeactivatedDebuff.buffIndex, 1, -1f); } else { NetworkingHelpers.ApplyBuff(characterBody, Buffs.masochismDeactivatedNonDebuff.buffIndex, 1, -1f); } NetworkingHelpers.ApplyBuff(characterBody, Buffs.masochismActiveBuff.buffIndex, 0, -1f); masochismActive = false; stopwatch = 0f; damageOverTimeStopwatch = 0f; energySystem.lowerBound = 0f; energySystem.ifOverheatRegenAllowed = true; } public void DetermineMasoActivateable() { if (masoStacks >= Config.masochismMinimumRequiredToActivate.Value) { if (skillLoc.special.stock < 1) { skillLoc.special.AddOneStock(); } } else { skillLoc.special.stock = 0; } } public void ActivateMaso() { //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) //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_009f: 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_00a8: 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_00ba: 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_00c8: 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) masochismActive = true; energySystem.lowerBound = energySystem.maxOverheat * StaticValues.masochismActiveLowerBoundHeat; energySystem.ifOverheatRegenAllowed = false; masochismActiveLoop = AkSoundEngine.PostEvent(1419365914u, ((Component)characterBody).gameObject); if (characterBody.hasEffectiveAuthority && Config.ToggleMasochismFOVWarp.Value) { CharacterCameraParamsData currentCameraParamsData = cameraTargetParams.currentCameraParamsData; currentCameraParamsData.fov = BlendableFloat.op_Implicit(arsonistCon.cameraRigController.baseFov * StaticValues.masochismFOVHoldPosition); CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest); val.cameraParamsData = currentCameraParamsData; val.priority = 0f; CameraParamsOverrideRequest val2 = val; handle = cameraTargetParams.AddParamsOverride(val2, 0.5f); } } public void MasochismBuffApplication() { //IL_00b5: Unknown result type (might be due to invalid IL or missing references) if (heatChanged > Config.masochismHeatChangedThreshold.Value) { masoStacks++; heatChanged -= Config.masochismHeatChangedThreshold.Value; } if (masoStacks > Config.masochismMaximumStack.Value) { masoStacks = Config.masochismMaximumStack.Value; } if (masoStacks >= Config.masochismMinimumRequiredToActivate.Value) { } if (forceReset) { forceReset = false; masoStacks = 0; heatChanged = 0f; } NetworkingHelpers.ApplyBuff(characterBody, Buffs.newMasochismBuff.buffIndex, masoStacks, -1f); } public void OnDestroy() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) Unhook(); Object.Destroy((Object)(object)masochismRangeIndicator); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)characterBody).netId, 2176930590u), (NetworkDestination)1); } } internal class TextVibration : MonoBehaviour { public float speed = 0.5f; public float intensity = 0.1f; public bool vibrating = false; public float stopwatch; public Vector3 originalPosition; public void Start() { //IL_0013: 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) stopwatch = 0f; originalPosition = ((Component)this).transform.localPosition; } public void Update() { //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_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_007c: Unknown result type (might be due to invalid IL or missing references) if (vibrating) { stopwatch += Time.deltaTime; ((Component)this).transform.localPosition = originalPosition + intensity * new Vector3(Mathf.PerlinNoise(speed * Time.time, 1f), Mathf.PerlinNoise(speed * Time.time, 2f), Mathf.PerlinNoise(speed * Time.time, 3f)); } else { stopwatch = 0f; ((Component)this).transform.localPosition = originalPosition; } } } } namespace ArsonistMod.Modules { internal static class Assets { internal static GameObject swordSwingEffect; internal static GameObject swordHitImpactEffect; internal static GameObject bombExplosionEffect; internal static NetworkSoundEventDef swordHitSoundEvent; public static GameObject lemfireBall = Addressables.LoadAssetAsync((object)"RoR2/Base/Lemurian/Fireball.prefab").WaitForCompletion(); public static GameObject lemfireBallGhost = Addressables.LoadAssetAsync((object)"RoR2/Base/Lemurian/FireballGhost.prefab").WaitForCompletion(); public static GameObject elderlemurianexplosionEffect = Addressables.LoadAssetAsync((object)"RoR2/Base/LemurianBruiser/OmniExplosionVFXLemurianBruiserFireballImpact.prefab").WaitForCompletion(); public static GameObject artificerFireboltGhost = Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/MageFireboltGhost.prefab").WaitForCompletion(); public static GameObject explosionPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/ExplosionVFX.prefab").WaitForCompletion(); internal static GameObject arsonistFiresprayExplosion; internal static GameObject arsonistFlare; internal static GameObject arsonistFlareAttached; internal static GameObject displayFire; internal static Material arsonistOverheatingMaterial; internal static Material emissionRingMat; internal static Material emissionRingMatLesser; internal static GameObject fireballStrongGhost; internal static GameObject fireballWeakGhost; internal static GameObject fireballCrosshair; internal static GameObject flamethrowerCrosshair; internal static GameObject masoSphereIndicator; public static Sprite blazingBuffIcon = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/bdOnFire.asset").WaitForCompletion().iconSprite; internal static AssetBundle mainAssetBundle; private const string assetbundleName = "arsonistassetbundle"; private const string csProjName = "ArsonistMod"; private const string soundbankName = "arsonistSoundbank"; internal static void Initialize() { LoadAssetBundle(); LoadSoundbank(); PopulateAssets(); } internal static void LoadAssetBundle() { try { if ((Object)(object)mainAssetBundle == (Object)null) { using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ArsonistMod.arsonistassetbundle")) { mainAssetBundle = AssetBundle.LoadFromStream(stream); return; } } } catch (Exception ex) { Log.Error("Failed to load assetbundle. Make sure your assetbundle name is setup correctly\n" + ex); } } internal static void LoadSoundbank() { using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ArsonistMod.arsonistSoundbank.bnk"); byte[] array = new byte[stream.Length]; stream.Read(array, 0, array.Length); SoundBanks.Add(array); } internal static void PopulateAssets() { //IL_0084: 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_0147: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Expected O, but got Unknown //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_028f: 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_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: 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_030e: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_0334: 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_035a: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Unknown result type (might be due to invalid IL or missing references) //IL_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_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: 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_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_048c: 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_04f3: Unknown result type (might be due to invalid IL or missing references) //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_0538: Unknown result type (might be due to invalid IL or missing references) //IL_055d: 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_057d: Unknown result type (might be due to invalid IL or missing references) //IL_0582: Unknown result type (might be due to invalid IL or missing references) //IL_0584: Unknown result type (might be due to invalid IL or missing references) //IL_058e: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05da: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)mainAssetBundle)) { Log.Error("There is no AssetBundle to load assets from."); return; } bombExplosionEffect = LoadEffect("BombExplosionEffect", "Arsonist_Secondary_Flare_Punch_Explosion", parentToTransform: false, addEffectComponent: false); if (Object.op_Implicit((Object)(object)bombExplosionEffect)) { ShakeEmitter val = bombExplosionEffect.AddComponent(); val.amplitudeTimeDecay = true; val.duration = 0.5f; val.radius = 200f; val.scaleShakeRadiusWithLocalScale = false; val.wave = new Wave { amplitude = 1f, frequency = 40f, cycleOffset = 0f }; } arsonistFlareAttached = LoadEffect("flareAttached", "", parentToTransform: false, addEffectComponent: false); arsonistFlare = LoadEffect("flareShot", "", parentToTransform: false, addEffectComponent: false); displayFire = LoadEffect("Fire", "", parentToTransform: false, addEffectComponent: false); arsonistFiresprayExplosion = PrefabAPI.InstantiateClone(elderlemurianexplosionEffect, "arsonistFireSprayExplosion"); arsonistFiresprayExplosion.AddComponent(); EffectComponent val2 = arsonistFiresprayExplosion.GetComponent(); if (!Object.op_Implicit((Object)(object)val2)) { val2 = arsonistFiresprayExplosion.AddComponent(); } val2.applyScale = true; val2.effectIndex = (EffectIndex)(-1); val2.parentToReferencedTransform = false; val2.positionAtReferencedTransform = true; val2.soundName = "Arsonist_Primary_Fire_Explosion"; AddNewEffectDef(arsonistFiresprayExplosion, "Arsonist_Primary_Fire_Explosion"); fireballStrongGhost = LoadEffect("FireballStrongProjectile", "", parentToTransform: false, addEffectComponent: false); fireballStrongGhost.AddComponent(); fireballWeakGhost = LoadEffect("FireballWeakProjectile", "", parentToTransform: false, addEffectComponent: false); fireballWeakGhost.AddComponent(); arsonistOverheatingMaterial = mainAssetBundle.LoadAsset("OverheatingMaterial"); emissionRingMat = Materials.CreateHopooMaterial("emissionRingMat", noCullEnabled: false, 10f); emissionRingMatLesser = new Material(emissionRingMat); emissionRingMatLesser.SetFloat("_EmPower", 2f); fireballCrosshair = PrefabAPI.InstantiateClone(LoadCrosshair("Standard"), "ArsonistFireballCrosshair"); Transform child = fireballCrosshair.transform.GetChild(3); Image component = ((Component)child).gameObject.GetComponent(); Sprite overrideSprite = (component.sprite = mainAssetBundle.LoadAsset("FireballReticle")); component.overrideSprite = overrideSprite; ((Transform)((Component)child).GetComponent()).localEulerAngles = new Vector3(0f, 0f, 0f); ((Transform)((Component)child).GetComponent()).localScale = new Vector3(0.5f, 0.5f, 0.5f); CrosshairController component2 = fireballCrosshair.GetComponent(); component2.spriteSpreadPositions[0].zeroPosition = new Vector3(15f, 0f, 0f); component2.spriteSpreadPositions[0].onePosition = new Vector3(30f, 0f, 0f); component2.spriteSpreadPositions[1].zeroPosition = new Vector3(-15f, 0f, 0f); component2.spriteSpreadPositions[1].onePosition = new Vector3(-30f, 0f, 0f); component2.spriteSpreadPositions[2].zeroPosition = new Vector3(0f, 15f, 0f); component2.spriteSpreadPositions[2].onePosition = new Vector3(0f, 30f, 0f); component2.spriteSpreadPositions[3].zeroPosition = new Vector3(0f, -30f, 0f); component2.spriteSpreadPositions[3].onePosition = new Vector3(0f, -30f, 0f); component2.maxSpreadAngle = 1f; flamethrowerCrosshair = PrefabAPI.InstantiateClone(LoadCrosshair("Standard"), "ArsonistFlamethrowerCrosshair"); Object.Destroy((Object)(object)((Component)flamethrowerCrosshair.transform.GetChild(3)).gameObject); Object.Destroy((Object)(object)((Component)flamethrowerCrosshair.transform.GetChild(2)).gameObject); Transform child2 = flamethrowerCrosshair.transform.GetChild(0); Image component3 = ((Component)child2).gameObject.GetComponent(); Sprite val6 = (component3.overrideSprite = (component3.sprite = mainAssetBundle.LoadAsset("FlamethrowerReticle"))); ((Transform)((Component)child2).GetComponent()).localEulerAngles = new Vector3(0f, 0f, 180f); ((Transform)((Component)child2).GetComponent()).localScale = new Vector3(0.4f, 0.4f, 0.4f); Transform child3 = flamethrowerCrosshair.transform.GetChild(1); Image component4 = ((Component)child3).gameObject.GetComponent(); component4.sprite = val6; component4.overrideSprite = val6; ((Transform)((Component)component4).GetComponent()).localEulerAngles = Vector3.zero; ((Transform)((Component)component4).GetComponent()).localScale = new Vector3(0.4f, 0.4f, 0.4f); CrosshairController component5 = flamethrowerCrosshair.GetComponent(); component5.spriteSpreadPositions = (SpritePosition[])(object)new SpritePosition[2] { new SpritePosition { target = ((Component)child2).GetComponent(), zeroPosition = new Vector3(30f, 0f, 0f), onePosition = new Vector3(60f, 0f, 0f) }, new SpritePosition { target = ((Component)child3).GetComponent(), zeroPosition = new Vector3(-30f, 0f, 0f), onePosition = new Vector3(-60f, 0f, 0f) } }; component5.maxSpreadAngle = 1f; masoSphereIndicator = mainAssetBundle.LoadAsset("Masosphere"); } private static GameObject CreateOGTracer(string ogTracerPrefab) { GameObject val = mainAssetBundle.LoadAsset(ogTracerPrefab); if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } val.GetComponent().speed = 100f; val.GetComponent().length = 100f; AddNewEffectDef(val); return val; } private static GameObject CreateTracer(string originalTracerName, string newTracerName) { if ((Object)(object)LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/" + originalTracerName) == (Object)null) { return null; } GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/" + originalTracerName), newTracerName, true); if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } val.GetComponent().speed = 250f; val.GetComponent().length = 50f; AddNewEffectDef(val); return val; } internal static NetworkSoundEventDef CreateNetworkSoundEventDef(string eventName) { NetworkSoundEventDef val = ScriptableObject.CreateInstance(); val.akId = AkSoundEngine.GetIDFromString(eventName); val.eventName = eventName; Content.AddNetworkSoundEventDef(val); return val; } internal static void ConvertAllRenderersToHopooShader(GameObject objectToConvert) { if (!Object.op_Implicit((Object)(object)objectToConvert)) { return; } Renderer[] componentsInChildren = objectToConvert.GetComponentsInChildren(); foreach (Renderer val in componentsInChildren) { if (val != null) { val.material?.SetHopooMaterial(); } } } internal static RendererInfo[] SetupRendererInfos(GameObject obj) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) MeshRenderer[] componentsInChildren = obj.GetComponentsInChildren(); RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[componentsInChildren.Length]; for (int i = 0; i < componentsInChildren.Length; i++) { array[i] = new RendererInfo { defaultMaterial = ((Renderer)componentsInChildren[i]).material, renderer = (Renderer)(object)componentsInChildren[i], defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }; } return array; } public static GameObject LoadSurvivorModel(string modelName) { GameObject val = mainAssetBundle.LoadAsset(modelName); if ((Object)(object)val == (Object)null) { Log.Error("Trying to load a null model- check to see if the BodyName in your code matches the prefab name of the object in Unity\nFor Example, if your prefab in unity is 'mdlArsonist', then your BodyName must be 'Arsonist'"); return null; } return PrefabAPI.InstantiateClone(val, ((Object)val).name, false); } internal static Texture LoadCharacterIconGeneric(string characterName) { return mainAssetBundle.LoadAsset("tex" + characterName + "Icon"); } internal static GameObject LoadCrosshair(string crosshairName) { if ((Object)(object)LegacyResourcesAPI.Load("Prefabs/Crosshair/" + crosshairName + "Crosshair") == (Object)null) { return LegacyResourcesAPI.Load("Prefabs/Crosshair/StandardCrosshair"); } return LegacyResourcesAPI.Load("Prefabs/Crosshair/" + crosshairName + "Crosshair"); } private static GameObject LoadEffect(string resourceName) { return LoadEffect(resourceName, "", parentToTransform: false, addEffectComponent: true); } private static GameObject LoadEffect(string resourceName, string soundName) { return LoadEffect(resourceName, soundName, parentToTransform: false, addEffectComponent: true); } private static GameObject LoadEffect(string resourceName, bool parentToTransform) { return LoadEffect(resourceName, "", parentToTransform, addEffectComponent: true); } private static GameObject LoadEffect(string resourceName, string soundName, bool parentToTransform, bool addEffectComponent) { //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) GameObject val = mainAssetBundle.LoadAsset(resourceName); if (!Object.op_Implicit((Object)(object)val)) { Log.Error("Failed to load effect: " + resourceName + " because it does not exist in the AssetBundle"); return null; } val.AddComponent().duration = 12f; val.AddComponent(); val.AddComponent().vfxPriority = (VFXPriority)2; if (addEffectComponent) { EffectComponent val2 = val.AddComponent(); val2.applyScale = false; val2.effectIndex = (EffectIndex)(-1); val2.parentToReferencedTransform = parentToTransform; val2.positionAtReferencedTransform = true; val2.soundName = soundName; AddNewEffectDef(val, soundName); } return val; } private static void AddNewEffectDef(GameObject effectPrefab) { AddNewEffectDef(effectPrefab, ""); } private static void AddNewEffectDef(GameObject effectPrefab, string soundName) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown EffectDef val = new EffectDef(); val.prefab = effectPrefab; val.prefabEffectComponent = effectPrefab.GetComponent(); val.prefabName = ((Object)effectPrefab).name; val.prefabVfxAttributes = effectPrefab.GetComponent(); val.spawnSoundEventName = soundName; Content.AddEffectDef(val); } } public static class Buffs { internal static BuffDef armorBuff; internal static BuffDef masochismBuff; internal static BuffDef newMasochismBuff; internal static BuffDef flareStrongBuff; internal static BuffDef FlareWeakBuff; internal static BuffDef blueBuff; internal static BuffDef lowerBuff; internal static BuffDef fallDamageReductionBuff; internal static BuffDef masochismActiveBuff; internal static BuffDef masochismDeactivatedDebuff; internal static BuffDef masochismDeactivatedNonDebuff; internal static BuffDef overheatDebuff; internal static BuffDef cleanseSpeedBoost; internal static void RegisterBuffs() { //IL_0047: 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_0075: Unknown result type (might be due to invalid IL or missing references) //IL_008c: 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_00c3: 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_00f1: 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_011f: 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_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) Sprite buffIcon = Assets.mainAssetBundle.LoadAsset("masochismBuff"); Sprite buffIcon2 = Assets.mainAssetBundle.LoadAsset("blueGaugeBuff"); Sprite buffIcon3 = Assets.mainAssetBundle.LoadAsset("flareDebuff"); Sprite buffIcon4 = Assets.mainAssetBundle.LoadAsset("ZPBBuff"); cleanseSpeedBoost = AddNewBuff("Arsonist Cleanse Speed Boost", buffIcon3, Color.blue, canStack: false, isDebuff: false); masochismDeactivatedNonDebuff = AddNewBuff("Arsonist Overheat Debuff Protection", buffIcon, Color.gray, canStack: false, isDebuff: false); masochismDeactivatedDebuff = AddNewBuff("Arsonist Masochism Debuff", buffIcon, Color.grey, canStack: false, isDebuff: true); masochismActiveBuff = AddNewBuff("Arsonist Masochism Active", buffIcon, Color.magenta, canStack: false, isDebuff: false); armorBuff = AddNewBuff("ArsonistArmorBuff", LegacyResourcesAPI.Load("Textures/BuffIcons/texBuffGenericShield"), Color.white, canStack: false, isDebuff: false); masochismBuff = AddNewBuff("Arsonist Masochism Overheat Buff", buffIcon, Color.red, canStack: false, isDebuff: false); newMasochismBuff = AddNewBuff("Arsonist Masochism Buff", buffIcon, Color.red, canStack: true, isDebuff: false); flareStrongBuff = AddNewBuff("Flare Strong Burn", buffIcon3, Color.blue, canStack: true, isDebuff: true); FlareWeakBuff = AddNewBuff("Flare Weak Burn", buffIcon3, Color.yellow, canStack: true, isDebuff: true); blueBuff = AddNewBuff("Blue Heat Gauge Buff", buffIcon2, Color.cyan, canStack: false, isDebuff: false); lowerBuff = AddNewBuff("Non-Blue Heat Gauge Debuff", buffIcon2, Color.white, canStack: false, isDebuff: false); overheatDebuff = AddNewBuff("Overheat Debuff", buffIcon2, Color.red, canStack: false, isDebuff: false); fallDamageReductionBuff = AddNewBuff("Fall Damage Reduction", buffIcon4, Color.yellow, 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; Content.AddBuffDef(val); return val; } } public static class Config { public static ConfigEntry masochismHeatChangedThreshold; public static ConfigEntry masochismMinimumRequiredToActivate; public static ConfigEntry masochismMaximumStack; public static ConfigEntry masochismHealthMultiplierOnPowered; public static ConfigEntry masochismActiveMultipliedActive; public static ConfigEntry timeBeforeHeatGaugeDecays; public static ConfigEntry shouldHaveVoice; public static ConfigEntry shouldEnableDieKey; public static ConfigEntry overheatTextShouldVibrate; public static ConfigEntry baseGaugeLowerBoundRecharge; public static ConfigEntry baseGaugeUpperBoundRecharge; public static ConfigEntry emoteSitKey; public static ConfigEntry emoteStrutKey; public static ConfigEntry emoteLobbyKey; public static ConfigEntry dieKey; public static ConfigEntry passiveHealthPercentageTriggerIgnite; public static ConfigEntry flareSalvoAmount; public static ConfigEntry cleanseRingFireEffectEnabled; public static ConfigEntry ToggleMasochismFOVWarp; public static void ReadConfig() { //IL_0015: 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_0034: Expected O, but got Unknown //IL_0034: Expected O, but got Unknown //IL_004d: 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_0068: Expected O, but got Unknown //IL_0068: Expected O, but got Unknown //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Expected O, but got Unknown //IL_00a0: Expected O, but got Unknown //IL_00b9: 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_00d8: Expected O, but got Unknown //IL_00d8: Expected O, but got Unknown //IL_00f1: 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_010c: Expected O, but got Unknown //IL_010c: Expected O, but got Unknown //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Expected O, but got Unknown //IL_0141: Expected O, but got Unknown //IL_015a: 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_0179: Expected O, but got Unknown //IL_0179: Expected O, but got Unknown //IL_0192: 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_01ad: Expected O, but got Unknown //IL_01ad: Expected O, but got Unknown //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Expected O, but got Unknown //IL_01ec: Expected O, but got Unknown //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0211: 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_022b: Expected O, but got Unknown //IL_022b: Expected O, but got Unknown //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0250: 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_026a: Expected O, but got Unknown //IL_026a: Expected O, but got Unknown //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Expected O, but got Unknown //IL_029e: Expected O, but got Unknown //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02c3: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Expected O, but got Unknown //IL_02dd: Expected O, but got Unknown //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Expected O, but got Unknown //IL_0311: Expected O, but got Unknown //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Unknown result type (might be due to invalid IL or missing references) //IL_0349: Expected O, but got Unknown //IL_0349: Expected O, but got Unknown //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_0377: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Expected O, but got Unknown //IL_0381: Expected O, but got Unknown //IL_039a: 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_03b9: Expected O, but got Unknown //IL_03b9: Expected O, but got Unknown //IL_03d2: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Expected O, but got Unknown //IL_03ed: Expected O, but got Unknown //IL_0406: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Expected O, but got Unknown //IL_0421: Expected O, but got Unknown timeBeforeHeatGaugeDecays = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("00 - General", "Wait Timer on Heat Gauge"), 5f, new ConfigDescription("Determines how long the player must wait before the heat gauge starts decaying after overheating.", (AcceptableValueBase)null, Array.Empty())); overheatTextShouldVibrate = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("00 - General", "Overheat Gauge text can vibrate"), true, new ConfigDescription("Controls whether the Overheat Gauge Text will vibrate slightly when overheat state is reached.", (AcceptableValueBase)null, Array.Empty())); masochismHealthMultiplierOnPowered = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("01 - Masochism", "Health Multiplier"), 1f, new ConfigDescription("Determines how much the damage should be multiplied by before converting to health for Fire damage received.", (AcceptableValueBase)null, Array.Empty())); masochismHeatChangedThreshold = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("01 - Masochism", "Anticipation Heat Changed Requirement"), 100f, new ConfigDescription("Determines how much heat needs to built up/reduced to acquire a stack of Anticipation.", (AcceptableValueBase)null, Array.Empty())); masochismMinimumRequiredToActivate = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("01 - Masochism", "Minimum required to activate"), 5, new ConfigDescription("Determines the minimum required amount of stacks to be allowed to activate Masochism.", (AcceptableValueBase)null, Array.Empty())); masochismMaximumStack = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("01 - Masochism", "Maximum Anticipation"), 10, new ConfigDescription("Determines how many stacks of Anticipation can be built up at one time.", (AcceptableValueBase)null, Array.Empty())); masochismActiveMultipliedActive = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("01 - Masochism", "Heal multiplication from damage during activation."), 0.18f, new ConfigDescription("Determines how much should be healed from damage dealt during Masochism Active state.", (AcceptableValueBase)null, Array.Empty())); ToggleMasochismFOVWarp = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("01 - Masochism", "FOV can warp during Masochism"), true, new ConfigDescription("Determines if the FOV can change during the duration and startup of Masochism.", (AcceptableValueBase)null, Array.Empty())); emoteSitKey = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("02 - Emotes", "Emote Sit"), new KeyboardShortcut((KeyCode)49, Array.Empty()), new ConfigDescription("Determines the key to trigger Arsonist to Emote Sit.", (AcceptableValueBase)null, Array.Empty())); emoteStrutKey = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("02 - Emotes", "Emote Strut"), new KeyboardShortcut((KeyCode)50, Array.Empty()), new ConfigDescription("Determines the key to trigger Arsonist to Emote Strut.", (AcceptableValueBase)null, Array.Empty())); emoteLobbyKey = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("02 - Emotes", "Emote Match"), new KeyboardShortcut((KeyCode)51, Array.Empty()), new ConfigDescription("Determines the key to trigger Arsonist to strike a match", (AcceptableValueBase)null, Array.Empty())); shouldEnableDieKey = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("02 - Emotes", "Enable Die key"), false, new ConfigDescription("Die key is disabled by default. When enabled, it allows you to press the die key to instantly end the run.", (AcceptableValueBase)null, Array.Empty())); dieKey = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("02 - Emotes", "Die"), new KeyboardShortcut((KeyCode)57, Array.Empty()), new ConfigDescription("Determines the key to die.", (AcceptableValueBase)null, Array.Empty())); shouldHaveVoice = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("03 - Voice", "Arsonist can laugh/grunt/snicker."), true, new ConfigDescription("By default, Arsonist can laugh/grunt when Masochism or ZPB is used. When off, no voice will be played.", (AcceptableValueBase)null, Array.Empty())); baseGaugeLowerBoundRecharge = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("04 - Gauge", "Base Gauge Lower Bound Cooling"), 0.7f, new ConfigDescription("Determines how fast the cooling occurs at 0%. Scales upwards in a parabola.", (AcceptableValueBase)null, Array.Empty())); baseGaugeUpperBoundRecharge = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("04 - Gauge", "Base Gauge Upper Bound Cooling"), 1.2f, new ConfigDescription("Determines how fast the cooling occurs at 100%. Scales upwards in a parabola.", (AcceptableValueBase)null, Array.Empty())); passiveHealthPercentageTriggerIgnite = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("05 - Passive", "Percentage health lost before triggering ignite"), 0.3f, new ConfigDescription("Percentage of health required to be inflicted before passive is triggered. If 0, it will always trigger.", (AcceptableValueBase)null, Array.Empty())); flareSalvoAmount = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("06 - Flare", "Number of Salvos on explosion."), 5, new ConfigDescription("Determines how many salvos are fired from one projectile after lifetime expires.", (AcceptableValueBase)null, Array.Empty())); cleanseRingFireEffectEnabled = ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind(new ConfigDefinition("07 - Cleanse", "Ring Fire effect enabled"), true, new ConfigDescription("Determines whether the ring of fire should play when cleanses is activated.", (AcceptableValueBase)null, Array.Empty())); } public static void SetupRiskOfOptions() { //IL_0028: 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_0038: 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_0053: Expected O, but got Unknown //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Expected O, but got Unknown //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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Expected O, but got Unknown //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Expected O, but got Unknown //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Expected O, but got Unknown //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Expected O, but got Unknown //IL_00b8: 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_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Expected O, but got Unknown //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Expected O, but got Unknown //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Expected O, but got Unknown //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Expected O, but got Unknown //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Expected O, but got Unknown //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Expected O, but got Unknown //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Expected O, but got Unknown //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Expected O, but got Unknown //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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Expected O, but got Unknown //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Expected O, but got Unknown //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_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Expected O, but got Unknown //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Expected O, but got Unknown //IL_01b8: 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_01e3: Expected O, but got Unknown //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Expected O, but got Unknown //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_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Expected O, but got Unknown //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Expected O, but got Unknown //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Expected O, but got Unknown //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Expected O, but got Unknown //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Expected O, but got Unknown //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Expected O, but got Unknown Sprite modIcon = Assets.mainAssetBundle.LoadAsset("rooIcon"); ModSettingsManager.SetModIcon(modIcon); ModSettingsManager.SetModDescription("The Manic Incendiary"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(masochismHeatChangedThreshold, new StepSliderConfig { min = 1f, max = 1000f, increment = 1f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(timeBeforeHeatGaugeDecays, new StepSliderConfig { min = 0f, max = 50f, increment = 1f })); ModSettingsManager.AddOption((BaseOption)new IntSliderOption(masochismMaximumStack, new IntSliderConfig { min = 1, max = 100 })); ModSettingsManager.AddOption((BaseOption)new IntSliderOption(masochismMinimumRequiredToActivate, new IntSliderConfig { min = 1, max = 100 })); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(emoteSitKey)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(emoteStrutKey)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(emoteLobbyKey)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(dieKey)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(shouldHaveVoice)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(shouldEnableDieKey)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(overheatTextShouldVibrate)); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(baseGaugeLowerBoundRecharge, new StepSliderConfig { min = 0f, max = 5f, increment = 0.1f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(baseGaugeUpperBoundRecharge, new StepSliderConfig { min = 0f, max = 5f, increment = 0.1f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(masochismActiveMultipliedActive, new StepSliderConfig { min = 0.01f, max = 10f, increment = 0.01f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(passiveHealthPercentageTriggerIgnite, new StepSliderConfig { min = 0f, max = 1f, increment = 0.01f })); ModSettingsManager.AddOption((BaseOption)new IntSliderOption(flareSalvoAmount, new IntSliderConfig { min = 0, max = 100 })); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(cleanseRingFireEffectEnabled)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(ToggleMasochismFOVWarp)); } public static ConfigEntry CharacterEnableConfig(string characterName, string description = "Set to false to disable this character", bool enabledDefault = true) { return ((BaseUnityPlugin)ArsonistPlugin.instance).Config.Bind("General", "Enable " + characterName, enabledDefault, description); } } internal class ContentPacks : IContentPackProvider { internal ContentPack contentPack = new ContentPack(); public static List bodyPrefabs = new List(); public static List masterPrefabs = new List(); public static List projectilePrefabs = new List(); public static List survivorDefs = new List(); public static List unlockableDefs = new List(); public static List skillFamilies = new List(); public static List skillDefs = new List(); public static List entityStates = new List(); public static List buffDefs = new List(); public static List effectDefs = new List(); public static List networkSoundEventDefs = new List(); public string identifier => "com.PopcornFactory.Arsonist"; public void Initialize() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown ContentManager.collectContentPackProviders += new CollectContentPackProvidersDelegate(ContentManager_collectContentPackProviders); } private void ContentManager_collectContentPackProviders(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)this); } public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args) { contentPack.identifier = identifier; contentPack.bodyPrefabs.Add(bodyPrefabs.ToArray()); contentPack.masterPrefabs.Add(masterPrefabs.ToArray()); contentPack.projectilePrefabs.Add(projectilePrefabs.ToArray()); contentPack.survivorDefs.Add(survivorDefs.ToArray()); contentPack.unlockableDefs.Add(unlockableDefs.ToArray()); contentPack.skillDefs.Add(skillDefs.ToArray()); contentPack.skillFamilies.Add(skillFamilies.ToArray()); contentPack.entityStateTypes.Add(entityStates.ToArray()); contentPack.buffDefs.Add(buffDefs.ToArray()); contentPack.effectDefs.Add(effectDefs.ToArray()); contentPack.networkSoundEventDefs.Add(networkSoundEventDefs.ToArray()); contentPack.unlockableDefs.Add(Unlockables.unlockableDefs.ToArray()); args.ReportProgress(1f); yield break; } public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args) { ContentPack.Copy(contentPack, args.output); args.ReportProgress(1f); yield break; } public IEnumerator FinalizeAsync(FinalizeAsyncArgs args) { args.ReportProgress(1f); yield break; } } internal class Content { public static void AddCharacterBodyPrefab(GameObject bprefab) { ContentPacks.bodyPrefabs.Add(bprefab); } public static void AddMasterPrefab(GameObject prefab) { ContentPacks.masterPrefabs.Add(prefab); } public static void AddProjectilePrefab(GameObject prefab) { ContentPacks.projectilePrefabs.Add(prefab); } public static void AddSurvivorDef(SurvivorDef survivorDef) { ContentPacks.survivorDefs.Add(survivorDef); } public static void AddUnlockableDef(UnlockableDef unlockableDef) { ContentPacks.unlockableDefs.Add(unlockableDef); } public static void AddSkillDef(SkillDef skillDef) { ContentPacks.skillDefs.Add(skillDef); } public static void AddSkillFamily(SkillFamily skillFamily) { ContentPacks.skillFamilies.Add(skillFamily); } public static void AddEntityState(Type entityState) { ContentPacks.entityStates.Add(entityState); } public static void AddBuffDef(BuffDef buffDef) { ContentPacks.buffDefs.Add(buffDef); } public static void AddEffectDef(EffectDef effectDef) { ContentPacks.effectDefs.Add(effectDef); } public static void AddNetworkSoundEventDef(NetworkSoundEventDef networkSoundEventDef) { ContentPacks.networkSoundEventDefs.Add(networkSoundEventDef); } } public static class Damage { internal static ModdedDamageType arsonistStickyDamageType; internal static ModdedDamageType arsonistWeakStickyDamageType; internal static ModdedDamageType arsonistChildExplosionDamageType; internal static void SetupModdedDamage() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //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) arsonistStickyDamageType = DamageAPI.ReserveDamageType(); arsonistWeakStickyDamageType = DamageAPI.ReserveDamageType(); arsonistChildExplosionDamageType = DamageAPI.ReserveDamageType(); } } internal static class Helpers { internal const string startPrefix = "Agile. Heat. "; internal const string heatPrefix = "Heat. "; internal const string criticalPrefix = "Supercritical. "; internal static string ScepterDescription(string desc) { return "\nSCEPTER: " + desc + ""; } internal static string ImportantDesc(string desc) { return "" + desc + ""; } internal static string Healing(string desc) { return "" + desc + ""; } internal static string Downside(string desc) { return "" + desc + ""; } public static T[] Append(ref T[] array, List list) { int num = array.Length; int count = list.Count; Array.Resize(ref array, num + count); list.CopyTo(array, num); return array; } public static Func AppendDel(List list) { return (T[] r) => Append(ref r, list); } } internal static class ItemDisplays { private static Dictionary itemDisplayPrefabs = new Dictionary(); internal static void PopulateDisplays() { PopulateFromBody("MageBody"); PopulateFromBody("LunarExploderBody"); PopulateCustomLightningArm(); } private static void PopulateFromBody(string bodyName) { ItemDisplayRuleSet itemDisplayRuleSet = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyName).GetComponent().modelTransform).GetComponent().itemDisplayRuleSet; KeyAssetRuleGroup[] keyAssetRuleGroups = itemDisplayRuleSet.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?.ToLowerInvariant(); if (!itemDisplayPrefabs.ContainsKey(key)) { itemDisplayPrefabs[key] = followerPrefab; } } } } } private static void PopulateCustomLightningArm() { GameObject val = PrefabAPI.InstantiateClone(itemDisplayPrefabs["displaylightningarmright"], "DisplayLightningCustom", false); LimbMatcher component = val.GetComponent(); component.limbPairs[0].targetChildLimb = "LightningArm1"; component.limbPairs[1].targetChildLimb = "LightningArm2"; component.limbPairs[2].targetChildLimb = "LightningArmEnd"; itemDisplayPrefabs["displaylightningarmcustom"] = val; } public static GameObject LoadDisplay(string name) { if (itemDisplayPrefabs.ContainsKey(name.ToLowerInvariant()) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[name.ToLowerInvariant()])) { return itemDisplayPrefabs[name.ToLowerInvariant()]; } Log.Error("item display " + name + " returned null"); return null; } } internal static class Materials { private static List cachedMaterials = new List(); internal static Shader hotpoo = LegacyResourcesAPI.Load("Shaders/Deferred/HGStandard"); public static Material CreateHopooMaterial(string materialName, bool noCullEnabled = false) { return CreateHopooMaterial(materialName, noCullEnabled, 1f); } public static Material CreateHopooMaterial(string materialName, bool noCullEnabled = false, float emissionVal = 1f) { //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Expected O, but got Unknown Material val = cachedMaterials.Find(delegate(Material mat) { materialName.Replace(" (Instance)", ""); return ((Object)mat).name.Contains(materialName); }); if (Object.op_Implicit((Object)(object)val)) { return val; } val = Assets.mainAssetBundle.LoadAsset(materialName); if (!Object.op_Implicit((Object)(object)val)) { Log.Error("Failed to load material: " + materialName + " - Check to see that the material in your Unity project matches this name"); return new Material(hotpoo); } return val.SetHopooMaterial(noCullEnabled, emissionVal); } public static Material SetHopooMaterial(this Material tempMat, bool noCullEnabled = false, float emissionVal = 1f) { //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) if (cachedMaterials.Contains(tempMat)) { return tempMat; } float? num = null; Color? val = null; if (tempMat.IsKeywordEnabled("_NORMALMAP")) { num = tempMat.GetFloat("_BumpScale"); } if (tempMat.IsKeywordEnabled("_EMISSION")) { val = tempMat.GetColor("_EmissionColor"); } tempMat.shader = hotpoo; tempMat.SetColor("_Color", tempMat.GetColor("_Color")); tempMat.SetTexture("_MainTex", tempMat.GetTexture("_MainTex")); tempMat.SetTexture("_EmTex", tempMat.GetTexture("_EmissionMap")); tempMat.EnableKeyword("DITHER"); tempMat.EnableKeyword("CUTOUT"); if (num.HasValue) { tempMat.SetFloat("_NormalStrength", num.Value); } if (val.HasValue) { tempMat.SetColor("_EmColor", val.Value); tempMat.SetFloat("_EmPower", emissionVal); } if (tempMat.IsKeywordEnabled("NOCULL") || noCullEnabled) { tempMat.SetInt("_Cull", 0); } tempMat.SetFloat("_EnableCutout", 1f); if (tempMat.IsKeywordEnabled("LIMBREMOVAL")) { tempMat.SetInt("_LimbRemovalOn", 1); } cachedMaterials.Add(tempMat); return tempMat; } public static Material MakeUnique(this Material material) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown if (cachedMaterials.Contains(material)) { return new Material(material); } return material; } public static Material SetColor(this Material material, Color color) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) material.SetColor("_Color", color); return material; } public static Material SetNormal(this Material material, float normalStrength = 1f) { material.SetFloat("_NormalStrength", normalStrength); return material; } public static Material SetEmission(this Material material) { return material.SetEmission(1f); } public static Material SetEmission(this Material material, float emission) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) return material.SetEmission(emission, Color.white); } public static Material SetEmission(this Material material, float emission, Color emissionColor) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) material.SetFloat("_EmPower", emission); material.SetColor("_EmColor", emissionColor); return material; } public static Material SetCull(this Material material, bool cull = false) { material.SetInt("_Cull", cull ? 1 : 0); return material; } } internal static class Prefabs { private static PhysicMaterial ragdollMaterial; public static GameObject CreateDisplayPrefab(string displayModelName, GameObject prefab, BodyInfo bodyInfo) { GameObject val = Assets.LoadSurvivorModel(displayModelName); CharacterModel val2 = val.GetComponent(); if (!Object.op_Implicit((Object)(object)val2)) { val2 = val.AddComponent(); } val2.baseRendererInfos = prefab.GetComponentInChildren().baseRendererInfos; return val.gameObject; } public static GameObject CreateBodyPrefab(string bodyName, string modelName, BodyInfo bodyInfo) { //IL_00d7: 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_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Unknown result type (might be due to invalid IL or missing references) GameObject val = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyInfo.bodyNameToClone + "Body"); if (!Object.op_Implicit((Object)(object)val)) { Log.Error(bodyInfo.bodyNameToClone + "Body is not a valid body, character creation failed"); return null; } GameObject val2 = PrefabAPI.InstantiateClone(val, bodyName); Transform val3 = null; GameObject val4 = null; if (modelName != "mdl") { val4 = Assets.LoadSurvivorModel(modelName); if ((Object)(object)val4 == (Object)null) { val4 = ((Component)val2.GetComponentInChildren()).gameObject; } val3 = AddCharacterModelToSurvivorBody(val2, val4.transform, bodyInfo); } CharacterBody component = val2.GetComponent(); ((Object)component).name = bodyInfo.bodyName; component.baseNameToken = bodyInfo.bodyNameToken; component.subtitleNameToken = bodyInfo.subtitleNameToken; component.portraitIcon = bodyInfo.characterPortrait; component.bodyColor = bodyInfo.bodyColor; component._defaultCrosshairPrefab = bodyInfo.crosshair; component.hideCrosshair = false; component.preferredPodPrefab = bodyInfo.podPrefab; component.baseMaxHealth = bodyInfo.maxHealth; component.baseRegen = bodyInfo.healthRegen; component.levelArmor = bodyInfo.armorGrowth; component.baseMaxShield = bodyInfo.shield; component.baseDamage = bodyInfo.damage; component.baseAttackSpeed = bodyInfo.attackSpeed; component.baseCrit = bodyInfo.crit; component.baseMoveSpeed = bodyInfo.moveSpeed; component.baseJumpPower = bodyInfo.jumpPower; component.autoCalculateLevelStats = bodyInfo.autoCalculateLevelStats; component.levelDamage = bodyInfo.damageGrowth; component.levelAttackSpeed = bodyInfo.attackSpeedGrowth; component.levelCrit = bodyInfo.critGrowth; component.levelMaxHealth = bodyInfo.healthGrowth; component.levelRegen = bodyInfo.regenGrowth; component.baseArmor = bodyInfo.armor; component.levelMaxShield = bodyInfo.shieldGrowth; component.levelMoveSpeed = bodyInfo.moveSpeedGrowth; component.levelJumpPower = bodyInfo.jumpPowerGrowth; component.baseAcceleration = bodyInfo.acceleration; component.baseJumpCount = bodyInfo.jumpCount; component.sprintingSpeedMultiplier = 1.45f; component.bodyFlags = (BodyFlags)16; component.rootMotionInMainState = false; component.hullClassification = (HullClassification)0; component.isChampion = false; SetupCameraTargetParams(val2, bodyInfo); SetupModelLocator(val2, val3, val4.transform); SetupCapsuleCollider(val2); SetupMainHurtbox(val2, val4); SetupAimAnimator(val2, val4); if ((Object)(object)val3 != (Object)null) { SetupCharacterDirection(val2, val3, val4.transform); } SetupFootstepController(val4); SetupRagdoll(val4); Content.AddCharacterBodyPrefab(val2); return val2; } public static void CreateGenericDoppelganger(GameObject bodyPrefab, string masterName, string masterToCopy) { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/" + masterToCopy + "MonsterMaster"), masterName, true); val.GetComponent().bodyPrefab = bodyPrefab; Content.AddMasterPrefab(val); } private static Transform AddCharacterModelToSurvivorBody(GameObject bodyPrefab, Transform modelTransform, BodyInfo bodyInfo) { //IL_0040: 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_0066: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008b: 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_00a1: Expected O, but got Unknown //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Expected O, but got Unknown //IL_00fa: 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) for (int num = bodyPrefab.transform.childCount - 1; num >= 0; num--) { Object.DestroyImmediate((Object)(object)((Component)bodyPrefab.transform.GetChild(num)).gameObject); } Transform transform = new GameObject("ModelBase").transform; transform.parent = bodyPrefab.transform; transform.localPosition = bodyInfo.modelBasePosition; transform.localRotation = Quaternion.identity; modelTransform.parent = ((Component)transform).transform; modelTransform.localPosition = Vector3.zero; modelTransform.localRotation = Quaternion.identity; GameObject val = new GameObject("CameraPivot"); val.transform.parent = bodyPrefab.transform; val.transform.localPosition = bodyInfo.cameraPivotPosition; val.transform.localRotation = Quaternion.identity; GameObject val2 = new GameObject("AimOrigin"); val2.transform.parent = bodyPrefab.transform; val2.transform.localPosition = bodyInfo.aimOriginPosition; val2.transform.localRotation = Quaternion.identity; bodyPrefab.GetComponent().aimOriginTransform = val2.transform; return ((Component)transform).transform; } public static CharacterModel SetupCharacterModel(GameObject prefab) { return SetupCharacterModel(prefab, null); } public static CharacterModel SetupCharacterModel(GameObject prefab, CustomRendererInfo[] customInfos) { CharacterModel val = ((Component)prefab.GetComponent().modelTransform).gameObject.GetComponent(); bool flag = (Object)(object)val != (Object)null; if (!flag) { val = ((Component)prefab.GetComponent().modelTransform).gameObject.AddComponent(); } val.body = prefab.GetComponent(); val.autoPopulateLightInfos = true; val.invisibilityCount = 0; val.temporaryOverlays = new List(); if (!flag) { SetupCustomRendererInfos(val, customInfos); } else { SetupPreAttachedRendererInfos(val); } return val; } public static void SetupPreAttachedRendererInfos(CharacterModel characterModel) { for (int i = 0; i < characterModel.baseRendererInfos.Length; i++) { if ((Object)(object)characterModel.baseRendererInfos[i].defaultMaterial == (Object)null) { characterModel.baseRendererInfos[i].defaultMaterial = characterModel.baseRendererInfos[i].renderer.sharedMaterial; } characterModel.baseRendererInfos[i].defaultMaterial.SetHopooMaterial(); } } public static void SetupCustomRendererInfos(CharacterModel characterModel, CustomRendererInfo[] customInfos) { //IL_00e4: 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) ChildLocator component = ((Component)characterModel).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("Failed CharacterModel setup: ChildLocator component does not exist on the model"); return; } List list = new List(); for (int i = 0; i < customInfos.Length; i++) { if (!Object.op_Implicit((Object)(object)component.FindChild(customInfos[i].childName))) { Log.Error("Trying to add a RendererInfo for a renderer that does not exist: " + customInfos[i].childName); continue; } Renderer component2 = ((Component)component.FindChild(customInfos[i].childName)).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { Material val = customInfos[i].material; if ((Object)(object)val == (Object)null) { val = ((!customInfos[i].dontHotpoo) ? component2.material.SetHopooMaterial() : component2.material); } list.Add(new RendererInfo { renderer = component2, defaultMaterial = val, ignoreOverlays = customInfos[i].ignoreOverlays, defaultShadowCastingMode = (ShadowCastingMode)1 }); } } characterModel.baseRendererInfos = list.ToArray(); } private static void SetupCharacterDirection(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { if (Object.op_Implicit((Object)(object)prefab.GetComponent())) { CharacterDirection component = prefab.GetComponent(); component.targetTransform = modelBaseTransform; component.overrideAnimatorForwardTransform = null; component.rootMotionAccumulator = null; component.modelAnimator = ((Component)modelTransform).GetComponent(); component.driveFromRootRotation = false; component.turnSpeed = 720f; } } private static void SetupCameraTargetParams(GameObject prefab, BodyInfo bodyInfo) { CameraTargetParams component = prefab.GetComponent(); component.cameraParams = bodyInfo.cameraParams; component.cameraPivotTransform = prefab.transform.Find("CameraPivot"); } private static void SetupModelLocator(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { ModelLocator component = prefab.GetComponent(); component.modelTransform = modelTransform; component.modelBaseTransform = modelBaseTransform; } private static void SetupCapsuleCollider(GameObject prefab) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) CapsuleCollider component = prefab.GetComponent(); component.center = new Vector3(0f, 0f, 0f); component.radius = 0.5f; component.height = 1.82f; component.direction = 1; } private static void SetupMainHurtbox(GameObject prefab, GameObject model) { //IL_0075: Unknown result type (might be due to invalid IL or missing references) ChildLocator component = model.GetComponent(); if (!Object.op_Implicit((Object)(object)component.FindChild("MainHurtbox"))) { Debug.LogWarning((object)"Could not set up main hurtbox: make sure you have a transform pair in your prefab's ChildLocator component called 'MainHurtbox'"); return; } HurtBoxGroup val = model.AddComponent(); HurtBox val2 = ((Component)component.FindChild("MainHurtbox")).gameObject.AddComponent(); ((Component)val2).gameObject.layer = LayerIndex.entityPrecise.intVal; val2.healthComponent = prefab.GetComponent(); val2.isBullseye = true; val2.damageModifier = (DamageModifier)0; val2.hurtBoxGroup = val; val2.indexInGroup = 0; val.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val2 }; val.mainHurtBox = val2; val.bullseyeCount = 1; } public static void SetupHurtBoxes(GameObject bodyPrefab) { HealthComponent component = bodyPrefab.GetComponent(); HurtBoxGroup[] componentsInChildren = bodyPrefab.GetComponentsInChildren(); foreach (HurtBoxGroup val in componentsInChildren) { val.mainHurtBox.healthComponent = component; for (int j = 0; j < val.hurtBoxes.Length; j++) { val.hurtBoxes[j].healthComponent = component; } } } private static void SetupFootstepController(GameObject model) { FootstepHandler val = model.AddComponent(); val.baseFootstepString = "Play_player_footstep"; val.sprintFootstepOverrideString = ""; val.enableFootstepDust = true; val.footstepDustPrefab = LegacyResourcesAPI.Load("Prefabs/GenericFootstepDust"); } private static void SetupRagdoll(GameObject model) { RagdollController component = model.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } if ((Object)(object)ragdollMaterial == (Object)null) { ragdollMaterial = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren().bones[1]).GetComponent().material; } Transform[] bones = component.bones; foreach (Transform val in bones) { if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.layer = LayerIndex.ragdoll.intVal; Collider component2 = ((Component)val).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.material = ragdollMaterial; component2.sharedMaterial = ragdollMaterial; } } } } private static void SetupAimAnimator(GameObject prefab, GameObject model) { AimAnimator val = model.AddComponent(); val.directionComponent = prefab.GetComponent(); val.pitchRangeMax = 60f; val.pitchRangeMin = -60f; val.yawRangeMin = -80f; val.yawRangeMax = 80f; val.pitchGiveupRange = 30f; val.yawGiveupRange = 10f; val.giveupDuration = 3f; val.inputBank = prefab.GetComponent(); } public static void SetupHitbox(GameObject prefab, Transform hitboxTransform, string hitboxName) { HitBoxGroup val = prefab.AddComponent(); HitBox val2 = ((Component)hitboxTransform).gameObject.AddComponent(); ((Component)hitboxTransform).gameObject.layer = LayerIndex.projectile.intVal; val.hitBoxes = (HitBox[])(object)new HitBox[1] { val2 }; val.groupName = hitboxName; } public static void SetupHitbox(GameObject prefab, string hitboxName, params Transform[] hitboxTransforms) { HitBoxGroup val = prefab.AddComponent(); List list = new List(); foreach (Transform val2 in hitboxTransforms) { HitBox item = ((Component)val2).gameObject.AddComponent(); ((Component)val2).gameObject.layer = LayerIndex.projectile.intVal; list.Add(item); } val.hitBoxes = list.ToArray(); val.groupName = hitboxName; } } public class CustomRendererInfo { public string childName; public Material material = null; public bool dontHotpoo = false; public bool ignoreOverlays = false; } internal static class Projectiles { internal class ZeroPointOnWorldHit : MonoBehaviour, IProjectileImpactBehavior { public void OnProjectileImpact(ProjectileImpactInfo impactInfo) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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) if (!Object.op_Implicit((Object)(object)impactInfo.collider)) { return; } GameObject gameObject = ((Component)impactInfo.collider).gameObject; CharacterBody component = gameObject.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Rigidbody component2 = ((Component)this).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.useGravity = false; component2.velocity = Vector3.zero; component2.angularVelocity = Vector3.zero; } } } } internal class WeakFlareOnHit : MonoBehaviour, IProjectileImpactBehavior { public void OnProjectileImpact(ProjectileImpactInfo impactInfo) { //IL_0001: 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_00dd: 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_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Invalid comparison between Unknown and I4 //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Invalid comparison between Unknown and I4 //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Invalid comparison between Unknown and I4 if (!Object.op_Implicit((Object)(object)impactInfo.collider)) { return; } GameObject gameObject = ((Component)impactInfo.collider).gameObject; CharacterBody component = gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { if (Object.op_Implicit((Object)(object)component.teamComponent) && ((int)component.teamComponent.teamIndex == 0 || (int)component.teamComponent.teamIndex == 2 || (int)component.teamComponent.teamIndex == 3 || (int)component.teamComponent.teamIndex == 4)) { FlareEffectControllerStrong flareEffectControllerStrong = ((Component)component).gameObject.AddComponent(); flareEffectControllerStrong.arsonistBody = ((Component)this).gameObject.GetComponent().owner.GetComponent(); } return; } Rigidbody component2 = ((Component)this).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.useGravity = false; component2.velocity = Vector3.zero; } } } internal class StrongFlareOnHit : MonoBehaviour, IProjectileImpactBehavior { public void OnProjectileImpact(ProjectileImpactInfo impactInfo) { //IL_0001: 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_00e9: 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_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Invalid comparison between Unknown and I4 //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Invalid comparison between Unknown and I4 //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Invalid comparison between Unknown and I4 if (!Object.op_Implicit((Object)(object)impactInfo.collider)) { return; } GameObject gameObject = ((Component)impactInfo.collider).gameObject; CharacterBody component = gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { if (Object.op_Implicit((Object)(object)component.teamComponent) && ((int)component.teamComponent.teamIndex == 0 || (int)component.teamComponent.teamIndex == 2 || (int)component.teamComponent.teamIndex == 3 || (int)component.teamComponent.teamIndex == 4)) { Object.Destroy((Object)(object)((Component)this).gameObject); FlareEffectControllerStrong flareEffectControllerStrong = ((Component)component).gameObject.AddComponent(); flareEffectControllerStrong.arsonistBody = ((Component)this).gameObject.GetComponent().owner.GetComponent(); } } else { Rigidbody component2 = ((Component)this).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.useGravity = false; component2.velocity = Vector3.zero; } } } } internal static GameObject bombPrefab; internal static GameObject lemurianFireBall; internal static GameObject artificerFirebolt; internal static GameObject weakFlare; internal static GameObject strongFlare; internal static GameObject zeropointBomb; internal static GameObject flareChildPrefab; internal static void RegisterProjectiles() { CreateZeroPointBomb(); AddProjectile(zeropointBomb); CreateLemurianFireBall(); AddProjectile(lemurianFireBall); CreateArtificerFireBolt(); AddProjectile(artificerFirebolt); CreateWeakFlare(); AddProjectile(weakFlare); CreateStrongFlare(); AddProjectile(strongFlare); CreateFlareChildPrefab(); AddProjectile(flareChildPrefab); } internal static void AddProjectile(GameObject projectileToAdd) { Content.AddProjectilePrefab(projectileToAdd); } private static void CreateFlareChildPrefab() { //IL_0093: 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_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Expected O, but got Unknown flareChildPrefab = Assets.mainAssetBundle.LoadAsset("flareCollision"); flareChildPrefab.AddComponent(); ProjectileController val = flareChildPrefab.AddComponent(); val.procCoefficient = 1f; val.flightSoundLoop = ScriptableObject.CreateInstance(); val.flightSoundLoop.startSoundName = "Arsonist_Secondary_Flare_Projectile_Travel"; val.flightSoundLoop.stopSoundName = "Arsonist_Secondary_Flare_Projectile_Travel_Stop"; val.shouldPlaySounds = true; ProjectileDamage val2 = flareChildPrefab.AddComponent(); val2.damage = 10f; val2.crit = false; val2.force = 1000f; val2.damageType = (DamageType)0; ProjectileImpactExplosion val3 = flareChildPrefab.AddComponent(); ((ProjectileExplosion)val3).explosionEffect = Assets.elderlemurianexplosionEffect; val3.impactEffect = Assets.elderlemurianexplosionEffect; ((ProjectileExplosion)val3).blastRadius = StaticValues.flareBlastRadius; ((ProjectileExplosion)val3).blastDamageCoefficient = 1f; ((ProjectileExplosion)val3).falloffModel = (FalloffModel)0; val3.destroyOnEnemy = false; val3.destroyOnWorld = true; val3.lifetimeAfterImpact = 2f; val3.lifetime = 5f; NetworkSoundEventDef val4 = ScriptableObject.CreateInstance(); val4.akId = 3061346618u; val4.eventName = "Arsonist_Secondary_Flare_Explosion"; Content.AddNetworkSoundEventDef(val4); val3.lifetimeExpiredSound = val4; GameObject impactEffect = val3.impactEffect; ((Object)impactEffect).name = "explosion_effect_strong_child"; EffectComponent component = impactEffect.GetComponent(); component.soundName = "Arsonist_Secondary_Flare_Explosion_New"; EffectDef val5 = new EffectDef(); val5.prefab = impactEffect; val5.prefabEffectComponent = impactEffect.GetComponent(); val5.prefabName = ((Object)impactEffect).name; val5.prefabVfxAttributes = impactEffect.GetComponent(); val5.spawnSoundEventName = "Arsonist_Secondary_Flare_Explosion_New"; val3.impactEffect = impactEffect; ProjectileSimple val6 = flareChildPrefab.AddComponent(); val6.lifetime = 10f; val6.desiredForwardSpeed = 30f; PrefabAPI.RegisterNetworkPrefab(flareChildPrefab); } private static void CreateStrongFlare() { //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Expected O, but got Unknown strongFlare = CloneProjectilePrefab("LemurianBigFireball", "strongFlare"); Rigidbody val = strongFlare.GetComponent(); if (!Object.op_Implicit((Object)(object)val)) { val = strongFlare.AddComponent(); } ProjectileImpactExplosion val2 = strongFlare.GetComponent(); if (!Object.op_Implicit((Object)(object)val2)) { val2 = strongFlare.AddComponent(); } InitializeImpactExplosion(val2); ((ProjectileExplosion)val2).blastDamageCoefficient = 1f; ((ProjectileExplosion)val2).blastProcCoefficient = 1f; ((ProjectileExplosion)val2).blastRadius = StaticValues.flareBlastUntouched; val2.destroyOnEnemy = true; val2.lifetime = 5f; ((ProjectileExplosion)val2).explosionEffect = Assets.elderlemurianexplosionEffect; val2.impactEffect = Assets.elderlemurianexplosionEffect; val2.timerAfterImpact = true; val2.lifetimeAfterImpact = 3f; NetworkSoundEventDef val3 = ScriptableObject.CreateInstance(); val3.akId = 3061346618u; val3.eventName = "Arsonist_Secondary_Flare_Explosion"; Content.AddNetworkSoundEventDef(val3); val2.lifetimeExpiredSound = val3; GameObject impactEffect = val2.impactEffect; ((Object)impactEffect).name = "explosion_effect_flare_strong"; EffectComponent component = impactEffect.GetComponent(); component.soundName = "Arsonist_Secondary_Flare_Explosion_New"; EffectDef val4 = new EffectDef(); val4.prefab = impactEffect; val4.prefabEffectComponent = impactEffect.GetComponent(); val4.prefabName = ((Object)impactEffect).name; val4.prefabVfxAttributes = impactEffect.GetComponent(); val4.spawnSoundEventName = "Arsonist_Secondary_Flare_Explosion_New"; Content.AddEffectDef(val4); val2.impactEffect = impactEffect; strongFlare.AddComponent(); ProjectileController component2 = strongFlare.GetComponent(); component2.rigidbody = val; component2.rigidbody.useGravity = false; component2.procCoefficient = 1f; component2.flightSoundLoop = ScriptableObject.CreateInstance(); component2.flightSoundLoop.startSoundName = "Arsonist_Secondary_Flare_Projectile_Travel"; component2.flightSoundLoop.stopSoundName = "Arsonist_Secondary_Flare_Projectile_Travel_Stop"; GameObject ghostPrefab = CreateGhostPrefab("flareShot", hopoo: false); component2.ghostPrefab = ghostPrefab; component2.startSound = ""; SphereCollider component3 = artificerFirebolt.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.radius = 1.2f; } } private static void CreateWeakFlare() { //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Expected O, but got Unknown //IL_022c: Unknown result type (might be due to invalid IL or missing references) weakFlare = CloneProjectilePrefab("LemurianBigFireball", "weakFlare"); Rigidbody val = weakFlare.GetComponent(); if (!Object.op_Implicit((Object)(object)val)) { val = weakFlare.AddComponent(); } ProjectileImpactExplosion val2 = weakFlare.GetComponent(); if (!Object.op_Implicit((Object)(object)val2)) { val2 = weakFlare.AddComponent(); } InitializeImpactExplosion(val2); ((ProjectileExplosion)val2).blastDamageCoefficient = 1f; ((ProjectileExplosion)val2).blastProcCoefficient = 1f; ((ProjectileExplosion)val2).blastRadius = StaticValues.flareBlastRadius; val2.destroyOnEnemy = true; val2.lifetime = 5f; ((ProjectileExplosion)val2).explosionEffect = Assets.elderlemurianexplosionEffect; val2.impactEffect = Assets.elderlemurianexplosionEffect; val2.timerAfterImpact = true; val2.lifetimeAfterImpact = 3f; NetworkSoundEventDef val3 = ScriptableObject.CreateInstance(); val3.akId = 3061346618u; val3.eventName = "Arsonist_Secondary_Flare_Explosion"; Content.AddNetworkSoundEventDef(val3); val2.lifetimeExpiredSound = val3; GameObject impactEffect = val2.impactEffect; ((Object)impactEffect).name = "explosion_effect_flare_strong"; EffectComponent component = impactEffect.GetComponent(); component.soundName = "Arsonist_Secondary_Flare_Explosion_New"; EffectDef val4 = new EffectDef(); val4.prefab = impactEffect; val4.prefabEffectComponent = impactEffect.GetComponent(); val4.prefabName = ((Object)impactEffect).name; val4.prefabVfxAttributes = impactEffect.GetComponent(); val4.spawnSoundEventName = "Arsonist_Secondary_Flare_Explosion_New"; Content.AddEffectDef(val4); val2.impactEffect = impactEffect; weakFlare.AddComponent(); ProjectileController component2 = weakFlare.GetComponent(); component2.rigidbody = val; component2.rigidbody.useGravity = false; component2.procCoefficient = 1f; component2.flightSoundLoop = ScriptableObject.CreateInstance(); component2.flightSoundLoop.startSoundName = "Arsonist_Secondary_Flare_Projectile_Travel"; component2.flightSoundLoop.stopSoundName = "Arsonist_Secondary_Flare_Projectile_Travel_Stop"; GameObject ghostPrefab = CreateGhostPrefab("flareShot", hopoo: false); component2.ghostPrefab = ghostPrefab; component2.startSound = ""; SphereCollider component3 = artificerFirebolt.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.radius = 1.2f; } ModdedDamageTypeHolderComponent val5 = weakFlare.AddComponent(); val5.Add(Damage.arsonistWeakStickyDamageType); } private static void CreateZeroPointBomb() { //IL_00db: Unknown result type (might be due to invalid IL or missing references) zeropointBomb = CloneProjectilePrefab("CommandoGrenadeProjectile", "zeropointBomb"); ProjectileSimple component = zeropointBomb.GetComponent(); component.lifetime = 20f; Rigidbody val = zeropointBomb.GetComponent(); if (!Object.op_Implicit((Object)(object)val)) { val = zeropointBomb.AddComponent(); } ProjectileImpactExplosion val2 = zeropointBomb.GetComponent(); if (!Object.op_Implicit((Object)(object)val2)) { val2 = zeropointBomb.AddComponent(); } InitializeImpactExplosion(val2); ((ProjectileExplosion)val2).blastDamageCoefficient = 1f; ((ProjectileExplosion)val2).blastProcCoefficient = 1f; ((ProjectileExplosion)val2).blastRadius = StaticValues.zeropointBlastRadius; val2.destroyOnEnemy = true; val2.lifetime = 20f; val2.impactEffect = Assets.bombExplosionEffect; val2.timerAfterImpact = true; val2.lifetimeAfterImpact = 3f; ((Component)val2).GetComponent().damageType = (DamageType)128; ProjectileController component2 = zeropointBomb.GetComponent(); component2.rigidbody = val; component2.rigidbody.useGravity = true; component2.rigidbody.mass = 1000f; component2.procCoefficient = 1f; component2.ghostPrefab = Assets.arsonistFlare; component2.startSound = ""; zeropointBomb.AddComponent(); PrefabAPI.RegisterNetworkPrefab(zeropointBomb); } private static void CreateLemurianFireBall() { lemurianFireBall = PrefabAPI.InstantiateClone(Assets.lemfireBall, "lemurianFireBall", true); Rigidbody val = lemurianFireBall.GetComponent(); if (!Object.op_Implicit((Object)(object)val)) { val = lemurianFireBall.AddComponent(); } ProjectileImpactExplosion val2 = lemurianFireBall.GetComponent(); if (!Object.op_Implicit((Object)(object)val2)) { val2 = lemurianFireBall.AddComponent(); } InitializeImpactExplosion(val2); ((ProjectileExplosion)val2).blastDamageCoefficient = 1f; ((ProjectileExplosion)val2).blastProcCoefficient = 1f; ((ProjectileExplosion)val2).blastRadius = StaticValues.firesprayweakBlastRadius; val2.destroyOnEnemy = true; val2.lifetime = 6f; val2.impactEffect = FireFireball.effectPrefab; val2.timerAfterImpact = false; val2.lifetimeAfterImpact = 0f; val2.destroyOnWorld = true; ProjectileController component = lemurianFireBall.GetComponent(); component.rigidbody = val; component.rigidbody.useGravity = true; component.rigidbody.mass = 1f; component.procCoefficient = 1f; component.ghostPrefab = Assets.fireballWeakGhost; component.startSound = ""; } private static void CreateArtificerFireBolt() { //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Expected O, but got Unknown //IL_01a1: Unknown result type (might be due to invalid IL or missing references) artificerFirebolt = CloneProjectilePrefab("MageFirebolt", "artificerFireBolt"); StrongFiresprayOnHit strongFiresprayOnHit = artificerFirebolt.GetComponent(); if (!Object.op_Implicit((Object)(object)strongFiresprayOnHit)) { strongFiresprayOnHit = artificerFirebolt.AddComponent(); } Rigidbody val = artificerFirebolt.GetComponent(); if (!Object.op_Implicit((Object)(object)val)) { val = artificerFirebolt.AddComponent(); } ProjectileController val2 = artificerFirebolt.GetComponent(); if (!Object.op_Implicit((Object)(object)val2)) { val2 = artificerFirebolt.AddComponent(); } val2.procCoefficient = 1f; InitializeStrongFireSprayOnHit(strongFiresprayOnHit); ((ProjectileExplosion)strongFiresprayOnHit).blastDamageCoefficient = 1f; ((ProjectileExplosion)strongFiresprayOnHit).blastProcCoefficient = 1f; ((ProjectileExplosion)strongFiresprayOnHit).blastRadius = StaticValues.firesprayBlastRadius; strongFiresprayOnHit.destroyOnEnemy = true; strongFiresprayOnHit.lifetime = 8f; strongFiresprayOnHit.impactEffect = Assets.arsonistFiresprayExplosion; ProjectileImpactExplosion component = artificerFirebolt.GetComponent(); GameObject val3 = Object.Instantiate(component.impactEffect); ((Object)val3).name = "explosion_effect"; EffectComponent component2 = val3.GetComponent(); component2.soundName = "Arsonist_Primary_Fire_Explosion"; EffectDef val4 = new EffectDef(); val4.prefab = val3; val4.prefabEffectComponent = val3.GetComponent(); val4.prefabName = ((Object)val3).name; val4.prefabVfxAttributes = val3.GetComponent(); val4.spawnSoundEventName = "Arsonist_Primary_Fire_Explosion"; Content.AddEffectDef(val4); strongFiresprayOnHit.timerAfterImpact = false; strongFiresprayOnHit.lifetimeAfterImpact = 0f; strongFiresprayOnHit.destroyOnWorld = true; strongFiresprayOnHit.onWorldCollisionBlastRadius = 5f; strongFiresprayOnHit.onEnemyCollisionBlastRadius = 7f; ((Component)strongFiresprayOnHit).GetComponent().damageType = (DamageType)128; ProjectileController component3 = artificerFirebolt.GetComponent(); component3.rigidbody = val; component3.rigidbody.useGravity = true; component3.rigidbody.mass = 1f; component3.flightSoundLoop = ScriptableObject.CreateInstance(); component3.flightSoundLoop.startSoundName = "Arsonist_Primary_Fire_Travel"; component3.flightSoundLoop.stopSoundName = "Arsonist_Primary_Fire_Travel_Stop"; component3.shouldPlaySounds = true; component3.ghostPrefab = Assets.fireballStrongGhost; component3.startSound = ""; SphereCollider component4 = artificerFirebolt.GetComponent(); if (Object.op_Implicit((Object)(object)component4)) { component4.radius = 1f; } Object.Destroy((Object)(object)component); } private static void InitializeImpactExplosion(ProjectileImpactExplosion projectileImpactExplosion) { //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_0056: 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) ((ProjectileExplosion)projectileImpactExplosion).blastDamageCoefficient = 1f; ((ProjectileExplosion)projectileImpactExplosion).blastProcCoefficient = 1f; ((ProjectileExplosion)projectileImpactExplosion).blastRadius = 1f; ((ProjectileExplosion)projectileImpactExplosion).bonusBlastForce = Vector3.zero; ((ProjectileExplosion)projectileImpactExplosion).childrenCount = 0; ((ProjectileExplosion)projectileImpactExplosion).childrenDamageCoefficient = 0f; ((ProjectileExplosion)projectileImpactExplosion).childrenProjectilePrefab = null; projectileImpactExplosion.destroyOnEnemy = false; projectileImpactExplosion.destroyOnWorld = false; ((ProjectileExplosion)projectileImpactExplosion).falloffModel = (FalloffModel)0; ((ProjectileExplosion)projectileImpactExplosion).fireChildren = false; projectileImpactExplosion.impactEffect = null; projectileImpactExplosion.lifetime = 0f; projectileImpactExplosion.lifetimeAfterImpact = 0f; projectileImpactExplosion.lifetimeRandomOffset = 0f; projectileImpactExplosion.offsetForLifetimeExpiredSound = 0f; projectileImpactExplosion.timerAfterImpact = false; ((Component)projectileImpactExplosion).GetComponent().damageType = (DamageType)0; } private static void InitializeStrongFireSprayOnHit(StrongFiresprayOnHit projectileImpactExplosion) { //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_0056: 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) ((ProjectileExplosion)projectileImpactExplosion).blastDamageCoefficient = 1f; ((ProjectileExplosion)projectileImpactExplosion).blastProcCoefficient = 1f; ((ProjectileExplosion)projectileImpactExplosion).blastRadius = 1f; ((ProjectileExplosion)projectileImpactExplosion).bonusBlastForce = Vector3.zero; ((ProjectileExplosion)projectileImpactExplosion).childrenCount = 0; ((ProjectileExplosion)projectileImpactExplosion).childrenDamageCoefficient = 0f; ((ProjectileExplosion)projectileImpactExplosion).childrenProjectilePrefab = null; projectileImpactExplosion.destroyOnEnemy = false; projectileImpactExplosion.destroyOnWorld = false; ((ProjectileExplosion)projectileImpactExplosion).falloffModel = (FalloffModel)0; ((ProjectileExplosion)projectileImpactExplosion).fireChildren = false; projectileImpactExplosion.impactEffect = null; projectileImpactExplosion.lifetime = 0f; projectileImpactExplosion.lifetimeAfterImpact = 0f; projectileImpactExplosion.lifetimeRandomOffset = 0f; projectileImpactExplosion.offsetForLifetimeExpiredSound = 0f; projectileImpactExplosion.timerAfterImpact = false; ((Component)projectileImpactExplosion).GetComponent().damageType = (DamageType)0; } private static GameObject CreateGhostPrefab(string ghostName, bool hopoo) { if ((Object)(object)Assets.mainAssetBundle.LoadAsset(ghostName) != (Object)null) { GameObject val = Assets.mainAssetBundle.LoadAsset(ghostName); if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (hopoo) { Assets.ConvertAllRenderersToHopooShader(val); } return val; } return null; } private static GameObject CloneProjectilePrefab(string prefabName, string newPrefabName) { return PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/" + prefabName), newPrefabName); } } internal static class Skills { public static void CreateSkillFamilies(GameObject targetPrefab, bool passiveEnabled, bool destroyExisting = true) { if (destroyExisting) { GenericSkill[] componentsInChildren = targetPrefab.GetComponentsInChildren(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } } SkillLocator component = targetPrefab.GetComponent(); if (passiveEnabled) { ArsonistPassive component2 = targetPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.passiveSkillSlot = CreateGenericSkillWithSkillFamily(targetPrefab, "Gauge"); } } component.primary = CreateGenericSkillWithSkillFamily(targetPrefab, "Primary"); component.secondary = CreateGenericSkillWithSkillFamily(targetPrefab, "Secondary"); component.utility = CreateGenericSkillWithSkillFamily(targetPrefab, "Utility"); component.special = CreateGenericSkillWithSkillFamily(targetPrefab, "Special"); } public static GenericSkill CreateGenericSkillWithSkillFamily(GameObject targetPrefab, string familyName, bool hidden = false) { GenericSkill val = targetPrefab.AddComponent(); val.skillName = familyName; val.hideInCharacterSelect = hidden; SkillFamily val2 = ScriptableObject.CreateInstance(); ((Object)val2).name = ((Object)targetPrefab).name + familyName + "Family"; val2.variants = (Variant[])(object)new Variant[0]; val._skillFamily = val2; Content.AddSkillFamily(val2); return val; } public static void AddSkillToFamily(SkillFamily skillFamily, SkillDef skillDef, UnlockableDef unlockableDef = null) { //IL_0029: 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_0053: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants = skillFamily.variants; int num = skillFamily.variants.Length - 1; Variant val = new Variant { skillDef = skillDef, unlockableDef = unlockableDef }; ((Variant)(ref val)).viewableNode = new Node(skillDef.skillNameToken, false, (Node)null); variants[num] = val; } public static void AddSkillsToFamily(SkillFamily skillFamily, params SkillDef[] skillDefs) { foreach (SkillDef skillDef in skillDefs) { AddSkillToFamily(skillFamily, skillDef); } } public static void AddPrimarySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().primary.skillFamily, skillDefs); } public static void AddSecondarySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().secondary.skillFamily, skillDefs); } public static void AddUtilitySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().utility.skillFamily, skillDefs); } public static void AddSpecialSkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().special.skillFamily, skillDefs); } public static void AddPassiveSkills(SkillFamily passiveSkillFamily, params SkillDef[] skillDefs) { AddSkillsToFamily(passiveSkillFamily, skillDefs); } public static void AddUnlockablesToFamily(SkillFamily skillFamily, params UnlockableDef[] unlockableDefs) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < unlockableDefs.Length; i++) { Variant val = skillFamily.variants[i]; val.unlockableDef = unlockableDefs[i]; skillFamily.variants[i] = val; } } public static SkillDef CreateSkillDef(SkillDefInfo skillDefInfo) { return Skills.CreateSkillDef(skillDefInfo); } public static T CreateSkillDef(SkillDefInfo skillDefInfo) where T : SkillDef { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: 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) T val = ScriptableObject.CreateInstance(); ((SkillDef)val).skillName = skillDefInfo.skillName; ((Object)(object)val).name = skillDefInfo.skillName; ((SkillDef)val).skillNameToken = skillDefInfo.skillNameToken; ((SkillDef)val).skillDescriptionToken = skillDefInfo.skillDescriptionToken; ((SkillDef)val).icon = skillDefInfo.skillIcon; ((SkillDef)val).activationState = skillDefInfo.activationState; ((SkillDef)val).activationStateMachineName = skillDefInfo.activationStateMachineName; ((SkillDef)val).baseMaxStock = skillDefInfo.baseMaxStock; ((SkillDef)val).baseRechargeInterval = skillDefInfo.baseRechargeInterval; ((SkillDef)val).beginSkillCooldownOnSkillEnd = skillDefInfo.beginSkillCooldownOnSkillEnd; ((SkillDef)val).canceledFromSprinting = skillDefInfo.canceledFromSprinting; ((SkillDef)val).forceSprintDuringState = skillDefInfo.forceSprintDuringState; ((SkillDef)val).fullRestockOnAssign = skillDefInfo.fullRestockOnAssign; ((SkillDef)val).interruptPriority = skillDefInfo.interruptPriority; ((SkillDef)val).resetCooldownTimerOnUse = skillDefInfo.resetCooldownTimerOnUse; ((SkillDef)val).isCombatSkill = skillDefInfo.isCombatSkill; ((SkillDef)val).mustKeyPress = skillDefInfo.mustKeyPress; ((SkillDef)val).cancelSprintingOnActivation = skillDefInfo.cancelSprintingOnActivation; ((SkillDef)val).rechargeStock = skillDefInfo.rechargeStock; ((SkillDef)val).requiredStock = skillDefInfo.requiredStock; ((SkillDef)val).stockToConsume = skillDefInfo.stockToConsume; ((SkillDef)val).keywordTokens = skillDefInfo.keywordTokens; Content.AddSkillDef((SkillDef)(object)val); return val; } } internal class SkillDefInfo { public string skillName; public string skillNameToken; public string skillDescriptionToken; public string[] keywordTokens = new string[0]; public Sprite skillIcon; public SerializableEntityStateType activationState; public InterruptPriority interruptPriority; public string activationStateMachineName; public float baseRechargeInterval; public int baseMaxStock = 1; public int rechargeStock = 1; public int requiredStock = 1; public int stockToConsume = 1; public bool isCombatSkill = true; public bool canceledFromSprinting; public bool forceSprintDuringState; public bool cancelSprintingOnActivation = true; public bool beginSkillCooldownOnSkillEnd; public bool fullRestockOnAssign = true; public bool resetCooldownTimerOnUse; public bool mustKeyPress; public SkillDefInfo() { } public SkillDefInfo(string skillNameToken, string skillDescriptionToken, Sprite skillIcon, SerializableEntityStateType activationState, string activationStateMachineName = "Weapon", bool agile = false) { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) skillName = skillNameToken; this.skillNameToken = skillNameToken; this.skillDescriptionToken = skillDescriptionToken; this.skillIcon = skillIcon; this.activationState = activationState; this.activationStateMachineName = activationStateMachineName; interruptPriority = (InterruptPriority)0; isCombatSkill = true; baseRechargeInterval = 0f; requiredStock = 0; stockToConsume = 0; cancelSprintingOnActivation = !agile; if (agile) { keywordTokens = new string[1] { "KEYWORD_AGILE" }; } } } internal static class Skins { internal struct SkinDefInfo { internal SkinDef[] BaseSkins; internal Sprite Icon; internal string NameToken; internal UnlockableDef UnlockableDef; internal GameObject RootObject; internal RendererInfo[] RendererInfos; internal MeshReplacement[] MeshReplacements; internal GameObjectActivation[] GameObjectActivations; internal ProjectileGhostReplacement[] ProjectileGhostReplacements; internal MinionSkinReplacement[] MinionSkinReplacements; internal string Name; } internal static SkinDef CreateSkinDef(string skinName, Sprite skinIcon, RendererInfo[] defaultRendererInfos, GameObject root, UnlockableDef unlockableDef = null) { //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Expected O, but got Unknown //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Expected O, but got Unknown SkinDefInfo skinDefInfo = default(SkinDefInfo); skinDefInfo.BaseSkins = Array.Empty(); skinDefInfo.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0]; skinDefInfo.Icon = skinIcon; skinDefInfo.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; skinDefInfo.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; skinDefInfo.Name = skinName; skinDefInfo.NameToken = skinName; skinDefInfo.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; skinDefInfo.RendererInfos = defaultRendererInfos; skinDefInfo.RootObject = root; skinDefInfo.UnlockableDef = unlockableDef; SkinDefInfo skinDefInfo2 = skinDefInfo; SkinDef.Awake += new hook_Awake(DoNothing); SkinDef val = ScriptableObject.CreateInstance(); val.baseSkins = skinDefInfo2.BaseSkins; val.icon = skinDefInfo2.Icon; val.unlockableDef = skinDefInfo2.UnlockableDef; val.rootObject = skinDefInfo2.RootObject; defaultRendererInfos.CopyTo(skinDefInfo2.RendererInfos, 0); val.rendererInfos = skinDefInfo2.RendererInfos; val.gameObjectActivations = skinDefInfo2.GameObjectActivations; val.meshReplacements = skinDefInfo2.MeshReplacements; val.projectileGhostReplacements = skinDefInfo2.ProjectileGhostReplacements; val.minionSkinReplacements = skinDefInfo2.MinionSkinReplacements; val.nameToken = skinDefInfo2.NameToken; ((Object)val).name = skinDefInfo2.Name; SkinDef.Awake -= new hook_Awake(DoNothing); return val; } private static void DoNothing(orig_Awake orig, SkinDef self) { } private static RendererInfo[] getRendererMaterials(RendererInfo[] defaultRenderers, params Material[] materials) { RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[defaultRenderers.Length]; defaultRenderers.CopyTo(array, 0); for (int i = 0; i < array.Length; i++) { try { array[i].defaultMaterial = materials[i]; } catch { Log.Error("error adding skin rendererinfo material. make sure you're not passing in too many"); } } return array; } internal static MeshReplacement[] getMeshReplacements(RendererInfo[] defaultRendererInfos, params string[] meshes) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) List list = new List(); for (int i = 0; i < defaultRendererInfos.Length; i++) { if (!string.IsNullOrEmpty(meshes[i])) { list.Add(new MeshReplacement { renderer = defaultRendererInfos[i].renderer, mesh = Assets.mainAssetBundle.LoadAsset(meshes[i]) }); } } return list.ToArray(); } } public static class States { internal static void RegisterStates() { Content.AddEntityState(typeof(BaseMeleeAttack)); Content.AddEntityState(typeof(FireSpray)); Content.AddEntityState(typeof(Flamethrower)); Content.AddEntityState(typeof(Flare)); Content.AddEntityState(typeof(ZeroPointBlastStart)); Content.AddEntityState(typeof(ZeroPointBlastEnd)); Content.AddEntityState(typeof(ZeroPointBlastWhiff)); Content.AddEntityState(typeof(Cleanse)); Content.AddEntityState(typeof(NeoMasochism)); Content.AddEntityState(typeof(Masochism)); Content.AddEntityState(typeof(EmoteSit)); Content.AddEntityState(typeof(EmoteStrut)); Content.AddEntityState(typeof(EmoteLobby)); } } internal static class StaticValues { internal static float passiveIgniteLength = 5f; internal static float igniteAttackSpeedMultiplier = 1.25f; internal static float igniteDamageReduction = 0.5f; internal static float igniteDamageMultiplier = 1.5f; internal static float igniteMovespeedMultiplier = 1.5f; internal static float overheatRegenMultiplier = 2f; internal static float secondaryCooldownMultiplier = 0.6f; internal static float utilityCooldownMultiplier = 0.33f; internal static float specialCooldownMultiplier = 0.6f; internal static float overheatAttackSpeedDebuff = 0.5f; internal static int noOfSegmentsOnOverheatGauge = 200; internal static float maxBlueWhiteSegment = 0.9f; internal static Vector3 SegmentedValuesOnGaugeAlt = new Vector3(0.65f, 0.25f, 0.1f); internal static Vector3 SegmentedValuesOnGaugeMain = new Vector3(0.9f, 0f, 0.1f); internal static float baseEnergy = 100f; internal static float levelEnergy = 5f; internal static float regenOverheatFraction = 0.05f; internal static float backupEnergyGain = 5f; internal static float hardlightEnergyGain = 15f; internal static float lysateEnergyGain = 10f; internal static float backupBlueGain = 0.1f; internal static float hardlightBlueGain = 0.3f; internal static float lysateBlueGain = 0.2f; internal static float secondaryBlueGain = 0.05f; internal static float utilityBlueGain = 0.1f; internal static float specialBlueGain = 0.075f; internal static float blueDamageMultiplier = 2.5f; internal static float lowerDamageMultiplier = 0.7f; internal static float firesprayWeakDamageCoefficient = 1.2f; internal static float firesprayStrongDamageCoefficient = 2.5f; internal static float firesprayEnergyCost = 10f; internal static float firesprayBlastRadius = 5f; internal static float firesprayweakBlastRadius = 2.5f; internal static float altFiresprayStrongDamageCoefficient = 1.5f; internal static float altFiresprayWeakDamageCoefficient = 0.9f; internal static float altFiresprayEnergyCost = 12f; internal static float flamethrowerStrongDamageCoefficient = 0.9f; internal static float flamethrowerWeakDamageCoefficient = 0.6f; internal static float flamethrowerEnergyCost = 6f; internal static float flamethrowerFireChance = 30f; internal static float flamethrowerRange = 35f; internal static float flamethrowerProcCoefficient = 0.5f; internal static float flamethowerRadius = 1.25f; internal static int flamethrowerBaseTickRate = 2; internal static float altFlamethrowerStrongDamageCoefficient = 1f; internal static float altFlamethrowerWeakDamageCoefficient = 0.6f; internal static float altFlamethrowerEnergyCost = 3f; internal static float flareWeakDamageCoefficient = 2f; internal static float flareStrongDamageCoefficient = 4f; internal static float flareBlastUntouched = 4f; internal static float flareBlastRadius = 3f; internal static float flareHeatReductionMultiplier = 0.3f; internal static float flareSpeedCoefficient = 200f; internal static int flareTickNum = 5; internal static float flareInterval = 0.5f; internal static float flareStrongChildDamageCoefficient = 2f; internal static float flareBlastRadiusChild = 3f; internal static float flareSalvoRadius = 10f; internal static float zeropointpounchDamageCoefficient = 4f; internal static float zeropointBlastRadius = 5f; internal static float zeropointHeatReductionMultiplier = 0.5f; internal static float cleanseDuration = 4f; internal static float cleanseHeatReductionMultiplier = 0.5f; internal static float cleanseDamageCoefficient = 0.5f; internal static float cleanseBlastRadius = 10f; internal static float masochismBuffDuration = 6.5f; internal static float masochismHealCoefficient = 0.035f; internal static float masochismEnergyCost = 50f; internal static float masochismBasePulseTimer = 1.2f; internal static float masochismActiveLowerBoundHeat = 0.15f; internal static float masochismBasePulseSelfDamageTimer = 0.6f; internal static float masochismSelfDamage = 0.03f; internal static float masochismEnergyIncreaseOverTimePercentage = 0.08f; internal static float masochismPulseRadius = 10f; internal static float masochismPulseCoefficient = 0.4f; internal static float masochismDamageBoost = 1.5f; internal static float masochismFinalBlastCoefficient = 1.5f; internal static float masochismFinalBlastRadius = 12f; internal static float masochismDamageMultiplierPerStack = 1.5f; internal static float masochismMaxMultipliedRange = 3f; internal static float masochismFOVHoldPosition = 1.2f; internal static float masochismMoveSpeedPenalty = 0.7f; internal static float masochismDamagePenalty = 0.7f; } internal static class Tokens { internal static void AddTokens() { string text = "POPCORN_ARSONIST_BODY_"; string text2 = "The Arsonist is a close-ranged tank who uses fire as a means to an end. Managing his Overheat meter allows him to deal high amounts of damage to groups of enemies. Balance is crucial to victory." + Environment.NewLine + Environment.NewLine + "< ! > Your attacks will be weaker when you're overheating. If you're in a tight spot, Cleanse can immediately end the overheating period in exchange for extending its cooldown duration." + Environment.NewLine + Environment.NewLine + "< ! > Supercritical Gauge grants more damage in exchange for stricter gauge management." + Environment.NewLine + Environment.NewLine + "< ! > Zero-Point Blast's distance scales according to movement speed, try use the ability in tandem with Cleanse as a backup escape plan." + Environment.NewLine + Environment.NewLine + "< ! > Masochism's Anticipation stacks still build during the ability's duration, meaning you can activate it early and exit with the max duration." + Environment.NewLine + Environment.NewLine + "< ! > Dragon's Breath chance to ignite scales according to the distance to the target, nearing 100% when you're right up in their face. Use this to your advantage if you need to take a target down quickly." + Environment.NewLine + Environment.NewLine + "< ! > Cleanse can remove the fire debuff from your passive. Use it to get out of a pinch."; string text3 = "..and so he left, with new bloodlust set ablaze."; string text4 = "..and so he vanished, his only regret: a job left unfinished."; string text5 = "A u d i o r e c o r d i n g t a k e n f r o m p e r s o n a l r e c o r d i n g d e v i c e .\r\n\r\nP r i n t i n g t r a n s c r i p t . . .\r\n\r\nJoining the UES proved to be easy. Especially with their job listings. \r\n\r\nA demolitions expert is not much different from the type of work that I already do. And yes, arson is work. The military had been kind enough to leave the old equipment of the Incendiary Unit lying around for keen eyes like mine to find. It wasn’t difficult learning exactly what they were trying to do with that unit, and it was a damned shame that they shut it down.\r\n\r\nThey were brilliant. They were brilliant, and the UES told them they were psychopaths. I was only able to barely salvage the remnants of what little hadn’t been completely destroyed. Even then, I haven’t gotten much of a chance to test my restorations with the high security of my division.\r\n\r\nI heard from a colleague that there was a job happening. Some sort of rescue mission aboard the UES Safe Travels to an uncharted planet. I’ve heard stories of that place, not so nice ones about the creatures that live there.\r\n\r\nHm.\r\n\r\nMaybe I’ll go. Sounds like I’ll find some very good lab rats.\r\n\r\nE n d o f r e c o r d i n g .\r\n\r\n"; LanguageAPI.Add(text + "NAME", "Arsonist"); LanguageAPI.Add(text + "DESCRIPTION", text2); LanguageAPI.Add(text + "SUBTITLE", "Manic Incendiary"); LanguageAPI.Add(text + "LORE", text5); LanguageAPI.Add(text + "OUTRO_FLAVOR", text3); LanguageAPI.Add(text + "OUTRO_FAILURE", text4); LanguageAPI.Add(text + "DEFAULT_SKIN_NAME", "Default"); LanguageAPI.Add(text + "MASTERY_SKIN_NAME", "Yuppie"); LanguageAPI.Add(text + "GRANDMASTERY_SKIN_NAME", "Firebug"); LanguageAPI.Add(text + "SURVIVAL_SKIN_NAME", "Anarchist"); LanguageAPI.Add(text + "PASSIVE_NAME", "Pyromania"); LanguageAPI.Add(text + "PASSIVE_DESCRIPTION", "Arsonist will convert 50% of total damage received as fire damage over time (Does not affect Fall Damage unless Frailty is active). Arsonist also has resistance to fire damage from all sources."); LanguageAPI.Add(text + "PASSIVE_NORMAL_GAUGE_NAME", "Normal Gauge"); LanguageAPI.Add(text + "PASSIVE_NORMAL_GAUGE_DESCRIPTION", "Heat gauge increase per level as well as with stock-based items. " + $"Cooling rate also increases at higher level of heat, starting at {Config.baseGaugeLowerBoundRecharge.Value}x at 0%, up to a maximum cooling rate of {Config.baseGaugeUpperBoundRecharge.Value}x at 100% heat."); LanguageAPI.Add(text + "PASSIVE_BLUE_GAUGE_NAME", "Supercritical Gauge"); LanguageAPI.Add(text + "PASSIVE_BLUE_GAUGE_DESCRIPTION", "Heat gauge does not increase, instead supercritical gauge increases per level as well as with stock-based items. " + $"Gain {StaticValues.blueDamageMultiplier}x damage while heat is in the blue portion of the gauge. " + $"{StaticValues.lowerDamageMultiplier}x damage while heat is in the white portion of the gauge."); LanguageAPI.Add(text + "PRIMARY_FIRESPRAY_NAME", "Fireball"); LanguageAPI.Add(text + "PRIMARY_FIRESPRAY_DESCRIPTION", "Heat. " + $"Fire a ball of fire that deals {100f * StaticValues.firesprayStrongDamageCoefficient}% damage and ignites enemies on hit. "); LanguageAPI.Add(text + "ALT_PRIMARY_FIRESPRAY_NAME", "Overdrive"); LanguageAPI.Add(text + "ALT_PRIMARY_FIRESPRAY_DESCRIPTION", "Heat. Supercritical. " + $"Fire a ball of fire that deals {100f * StaticValues.altFiresprayStrongDamageCoefficient}% damage and ignites enemies on hit. "); LanguageAPI.Add(text + "PRIMARY_FLAMETHROWER_NAME", "Dragon's Breath"); LanguageAPI.Add(text + "PRIMARY_FLAMETHROWER_DESCRIPTION", $"Fire a constant beam of fire that deals {100f * StaticValues.flamethrowerStrongDamageCoefficient}% damage and has an increased chance to burn enemies the closer you are to your target."); LanguageAPI.Add(text + "SECONDARY_FLAREGUN_NAME", "Signal Flare"); LanguageAPI.Add(text + "SECONDARY_FLAREGUN_DESCRIPTION", "Heat. " + $"Fire a long range signal flare that deals {100f * StaticValues.flareStrongDamageCoefficient}% damage over 5 seconds, then exploding for {100f * StaticValues.flareStrongDamageCoefficient}% damage" + $", launching {Config.flareSalvoAmount.Value} flare(s) that deal {100f * StaticValues.flareStrongChildDamageCoefficient}% damage."); LanguageAPI.Add(text + "SECONDARY_PUNCH_NAME", "Zero Point Blast"); LanguageAPI.Add(text + "SECONDARY_PUNCH_DESCRIPTION", "Agile. Heat. " + $"Propel yourself forwards, blasting enemies behind you for {100f * StaticValues.zeropointpounchDamageCoefficient}% damage. Colliding shortly after launching into the first enemy and deals {100f * StaticValues.zeropointpounchDamageCoefficient}% damage in a blast around you. "); LanguageAPI.Add(text + "UTILITY_CLEANSE_NAME", "Cleanse"); LanguageAPI.Add(text + "UTILITY_CLEANSE_DESCRIPTION", "Agile. Heat. " + $"Ignite the area around you, dealing {100f * StaticValues.cleanseDamageCoefficient}% to enemies around you and burning away other status effects. Grants a small boost of speed. "); LanguageAPI.Add(text + "SPECIAL_MASOCHIST_NAME", "Masochism"); LanguageAPI.Add(text + "SPECIAL_MASOCHIST_DESCRIPTION", "Agile. Heat. " + $"Damage from being Ignited turns into healing for {StaticValues.masochismBuffDuration} seconds. Increases attack speed {100f * StaticValues.igniteAttackSpeedMultiplier}%."); LanguageAPI.Add(text + "SPECIAL_MASOCHISM_NAME", "Masochism"); LanguageAPI.Add(text + "SPECIAL_MASOCHISM_DESCRIPTION", "Upon reaching the " + Helpers.ImportantDesc("Anticipation") + " threshold, activating damages you periodically in exchange for " + Helpers.Healing("Lifesteal") + " from damage to others. After a short time, Arsonist will Detonate, then " + Helpers.Downside("Overheat") + "."); LanguageAPI.Add(text + "KEYWORD_PASSIVE", "HeatSkills increase/decrease heat. At max heat, arsonist overheats, weakening their skills and causing longer cooldowns. Attack speed increases cooling rate. The selected primary chosen alters the heat gauge. "); LanguageAPI.Add(text + "KEYWORD_BASEGAUGE", "Base GaugeHeat gauge increase per level as well as with stock-based items. Cooling rate also increases at higher %s of heat."); LanguageAPI.Add(text + "KEYWORD_CRITICALGAUGE", "Supercritical GaugeHeat gauge does not increase, instead supercritical gauge increases per level as well as with stock-based items. " + $"Gain {StaticValues.blueDamageMultiplier}x damage while heat is in the blue portion of the gauge. "); LanguageAPI.Add(text + "KEYWORD_FIRESPRAYHEAT", "Heat" + $"Costs {StaticValues.firesprayEnergyCost} heat. Reduced damage and speed in overheat."); LanguageAPI.Add(text + "KEYWORD_FLAREHEAT", "Heat" + $"Reduces Heat by {StaticValues.flareHeatReductionMultiplier}x of current heat accumulated. Half damage in overheat."); LanguageAPI.Add(text + "KEYWORD_ZEROPOINTHEAT", "HeatCools half of CURRENT heat. Half damage in overheat."); LanguageAPI.Add(text + "KEYWORD_CLEANSEHEAT", "HeatCools half of TOTAL heat. Accelerates cooling in overheat, however, no ignite."); LanguageAPI.Add(text + "KEYWORD_MASOCHISMHEAT", "Heat" + $"Costs {StaticValues.masochismEnergyCost} heat. Half healing in overheat."); LanguageAPI.Add(text + "KEYWORD_MASO_ANTICIPATION", string.Format("Anticipation{0} are granted from heating and cooling down. A stack grants 1 second of Masochism uptime. (Up to a maximum of {1} second(s).)", Helpers.ImportantDesc("Anticipation Stacks"), Config.masochismMaximumStack.Value)); LanguageAPI.Add(text + "KEYWORD_MASO_LIFESTEAL", "LifestealArsonist heals " + Helpers.Healing($"{100f * Config.masochismActiveMultipliedActive.Value}%") + " of his damage dealt while Masochism is active."); LanguageAPI.Add(text + "KEYWORD_MASO_DETONATE", $"DetonateArsonist explodes, dealing {100f * StaticValues.masochismFinalBlastCoefficient}% damage times the amount of Anticipation Stacks accumulated."); LanguageAPI.Add(text + "KEYWORD_OVERHEAT_MASO", "Overheat: MasochismIf Arsonist exits Masochism due to too much heat buildup, " + $"EX Overheat is applied, reducing your Move Speed and Damage to {StaticValues.masochismMoveSpeedPenalty * 100f}%. " + $"Cancelling, or otherwise letting the move run it's course applies Overheat, reducing your Attack speed to {StaticValues.overheatAttackSpeedDebuff * 100f}%"); LanguageAPI.Add("ACHIEVEMENT_" + text + "MASTERYUNLOCKABLE_ACHIEVEMENT_NAME", "Arsonist: Mastery"); LanguageAPI.Add("ACHIEVEMENT_" + text + "MASTERYUNLOCKABLE_ACHIEVEMENT_DESCRIPTION", "As Arsonist, beat the game or obliterate on Monsoon."); LanguageAPI.Add(text + "MASTERYUNLOCKABLE_UNLOCKABLE_NAME", "Arsonist: Mastery"); LanguageAPI.Add("ACHIEVEMENT_" + text + "ECLIPSE5UNLOCKABLE_ACHIEVEMENT_NAME", "Arsonist: Grandmastery"); LanguageAPI.Add("ACHIEVEMENT_" + text + "ECLIPSE5UNLOCKABLE_ACHIEVEMENT_DESCRIPTION", "As Arsonist, beat the game on Eclipse 5 or higher, OR beat the game on Typhoon (Starstorm 2 mod Required)."); LanguageAPI.Add(text + "ECLIPSE5UNLOCKABLE_UNLOCKABLE_NAME", "Arsonist: Grandmastery"); LanguageAPI.Add("ACHIEVEMENT_" + text + "ECLIPSE8UNLOCKABLE_ACHIEVEMENT_NAME", "Arsonist: Survival"); LanguageAPI.Add("ACHIEVEMENT_" + text + "ECLIPSE8UNLOCKABLE_ACHIEVEMENT_DESCRIPTION", "As Arsonist, beat the game on Eclipse 8, OR beat the game on Inferno (Inferno mod Required)."); LanguageAPI.Add(text + "ECLIPSE8UNLOCKABLE_UNLOCKABLE_NAME", "Arsonist: Survival"); LanguageAPI.Add("ACHIEVEMENT_" + text + "FLAMETHROWERUNLOCKABLE_ACHIEVEMENT_NAME", "Arsonist: Pyromaniac"); LanguageAPI.Add("ACHIEVEMENT_" + text + "FLAMETHROWERUNLOCKABLE_ACHIEVEMENT_DESCRIPTION", "As Arsonist, beat a stage without overheating."); LanguageAPI.Add(text + "FLAMETHROWERUNLOCKABLE_UNLOCKABLE_NAME", "Arsonist: Pyromaniac"); LanguageAPI.Add("ACHIEVEMENT_" + text + "ARSONISTUNLOCKABLE_ACHIEVEMENT_NAME", "Embers"); LanguageAPI.Add("ACHIEVEMENT_" + text + "ARSONISTUNLOCKABLE_ACHIEVEMENT_DESCRIPTION", "Kill a teleporter boss while it is ignited."); LanguageAPI.Add(text + "ARSONISTUNLOCKABLE_UNLOCKABLE_NAME", "Embers"); } } internal class Unlockables { internal struct UnlockableInfo { internal string Name; internal Func HowToUnlockString; internal Func UnlockedString; internal int SortScore; internal Sprite sprite; } internal interface IModdedUnlockableDataProvider { string AchievementIdentifier { get; } string UnlockableIdentifier { get; } string AchievementNameToken { get; } string PrerequisiteUnlockableIdentifier { get; } string UnlockableNameToken { get; } string AchievementDescToken { get; } Sprite Sprite { get; } Func GetHowToUnlock { get; } Func GetUnlocked { get; } } public abstract class ModdedUnlockable : BaseAchievement, IModdedUnlockableDataProvider { public abstract string AchievementIdentifier { get; } public abstract string UnlockableIdentifier { get; } public abstract string AchievementNameToken { get; } public abstract string PrerequisiteUnlockableIdentifier { get; } public abstract string UnlockableNameToken { get; } public abstract string AchievementDescToken { get; } public abstract Sprite Sprite { get; } public abstract Func GetHowToUnlock { get; } public abstract Func GetUnlocked { get; } public override bool wantsBodyCallbacks => ((BaseAchievement)this).wantsBodyCallbacks; public void Revoke() { if (((BaseAchievement)this).userProfile.HasAchievement(AchievementIdentifier)) { ((BaseAchievement)this).userProfile.RevokeAchievement(AchievementIdentifier); } ((BaseAchievement)this).userProfile.RevokeUnlockable(UnlockableCatalog.GetUnlockableDef(UnlockableIdentifier)); } public override void OnGranted() { ((BaseAchievement)this).OnGranted(); } public override void OnInstall() { ((BaseAchievement)this).OnInstall(); } public override void OnUninstall() { ((BaseAchievement)this).OnUninstall(); } public override float ProgressForAchievement() { return ((BaseAchievement)this).ProgressForAchievement(); } public override BodyIndex LookUpRequiredBodyIndex() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return ((BaseAchievement)this).LookUpRequiredBodyIndex(); } public override void OnBodyRequirementBroken() { ((BaseAchievement)this).OnBodyRequirementBroken(); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); } } private static readonly HashSet usedRewardIds = new HashSet(); internal static List unlockableDefs = new List(); private static readonly List<(AchievementDef achDef, UnlockableDef unlockableDef, string unlockableName)> moddedUnlocks = new List<(AchievementDef, UnlockableDef, string)>(); public static bool ableToAdd { get; private set; } = false; internal static UnlockableDef CreateNewUnlockable(UnlockableInfo unlockableInfo) { UnlockableDef val = ScriptableObject.CreateInstance(); val.nameToken = unlockableInfo.Name; val.cachedName = unlockableInfo.Name; val.getHowToUnlockString = unlockableInfo.HowToUnlockString; val.getUnlockedString = unlockableInfo.UnlockedString; val.sortScore = unlockableInfo.SortScore; val.achievementIcon = unlockableInfo.sprite; return val; } public static UnlockableDef AddUnlockable(bool serverTracked) where TUnlockable : BaseAchievement, IModdedUnlockableDataProvider, new() { TUnlockable val = new TUnlockable(); string unlockableIdentifier = val.UnlockableIdentifier; if (!usedRewardIds.Add(unlockableIdentifier)) { throw new InvalidOperationException("The unlockable identifier '" + unlockableIdentifier + "' is already used by another mod or the base game."); } UnlockableInfo unlockableInfo = default(UnlockableInfo); unlockableInfo.Name = val.UnlockableIdentifier; unlockableInfo.HowToUnlockString = val.GetHowToUnlock; unlockableInfo.UnlockedString = val.GetUnlocked; unlockableInfo.SortScore = 200; unlockableInfo.sprite = val.Sprite; UnlockableDef val2 = CreateNewUnlockable(unlockableInfo); unlockableDefs.Add(val2); return val2; } } public abstract class BaseMasteryUnlockable : GenericModdedUnlockable { public abstract string RequiredCharacterBody { get; } public abstract float RequiredDifficultyCoefficient { get; } public override void OnBodyRequirementMet() { ((ModdedUnlockable)this).OnBodyRequirementMet(); Run.onClientGameOverGlobal += OnClientGameOverGlobal; } public override void OnBodyRequirementBroken() { Run.onClientGameOverGlobal -= OnClientGameOverGlobal; ((ModdedUnlockable)this).OnBodyRequirementBroken(); } private void OnClientGameOverGlobal(Run run, RunReport runReport) { //IL_0027: 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_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Invalid comparison between Unknown and I4 //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Invalid comparison between Unknown and I4 if (Object.op_Implicit((Object)(object)runReport.gameEnding) && runReport.gameEnding.isWin) { DifficultyIndex val = runReport.ruleBook.FindDifficulty(); DifficultyDef difficultyDef = DifficultyCatalog.GetDifficultyDef(runReport.ruleBook.FindDifficulty()); if ((difficultyDef.countsAsHardMode && difficultyDef.scalingValue >= RequiredDifficultyCoefficient) || ((int)val >= 3 && (int)val <= 10) || difficultyDef.nameToken == "INFERNO_NAME") { ((BaseAchievement)this).Grant(); } } } public override BodyIndex LookUpRequiredBodyIndex() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex(RequiredCharacterBody); } } public abstract class GenericModdedUnlockable : ModdedUnlockable { public abstract string AchievementTokenPrefix { get; } public abstract string AchievementSpriteName { get; } public override string AchievementIdentifier => AchievementTokenPrefix + "UNLOCKABLE_ACHIEVEMENT_ID"; public override string UnlockableIdentifier => AchievementTokenPrefix + "UNLOCKABLE_REWARD_ID"; public override string AchievementNameToken => AchievementTokenPrefix + "UNLOCKABLE_ACHIEVEMENT_NAME"; public override string AchievementDescToken => AchievementTokenPrefix + "UNLOCKABLE_ACHIEVEMENT_DESC"; public override string UnlockableNameToken => AchievementTokenPrefix + "UNLOCKABLE_UNLOCKABLE_NAME"; public override Sprite Sprite => Assets.mainAssetBundle.LoadAsset(AchievementSpriteName); public override Func GetHowToUnlock => () => Language.GetStringFormatted("UNLOCK_VIA_ACHIEVEMENT_FORMAT", new object[2] { Language.GetString(((ModdedUnlockable)this).AchievementNameToken), Language.GetString(((ModdedUnlockable)this).AchievementDescToken) }); public override Func GetUnlocked => () => Language.GetStringFormatted("UNLOCKED_FORMAT", new object[2] { Language.GetString(((ModdedUnlockable)this).AchievementNameToken), Language.GetString(((ModdedUnlockable)this).AchievementDescToken) }); } } namespace ArsonistMod.Modules.ProjectileControllers { [RequireComponent(typeof(ProjectileController))] public class StrongFiresprayOnHit : ProjectileExplosion, IProjectileImpactBehavior { public enum TransformSpace { World, Local, Normal } private Vector3 impactNormal = Vector3.up; [Header("Impact & Lifetime Properties")] public GameObject impactEffect; [Tooltip("This sound will not play over the network. Use lifetimeExpiredSound instead.")] [ShowFieldObsolete] [Obsolete("This sound will not play over the network. Use lifetimeExpiredSound instead.", false)] public string lifetimeExpiredSoundString; public NetworkSoundEventDef lifetimeExpiredSound; public float offsetForLifetimeExpiredSound; public bool destroyOnEnemy = true; public bool destroyOnWorld; public bool impactOnWorld = true; public bool timerAfterImpact; public float lifetime; public float lifetimeAfterImpact; public float lifetimeRandomOffset; private float stopwatch; private float stopwatchAfterImpact; private bool hasImpact; private bool hasPlayedLifetimeExpiredSound; public TransformSpace transformSpace; public bool isWorldCollided = false; public float onWorldCollisionBlastRadius; public float onEnemyCollisionBlastRadius; public override void Awake() { ((ProjectileExplosion)this).Awake(); lifetime += Random.Range(0f, lifetimeRandomOffset); } protected void FixedUpdate() { //IL_0149: 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) stopwatch += Time.fixedDeltaTime; if (!NetworkServer.active && !base.projectileController.isPrediction) { return; } if (timerAfterImpact && hasImpact) { stopwatchAfterImpact += Time.fixedDeltaTime; } bool flag = stopwatch >= lifetime; bool flag2 = timerAfterImpact && stopwatchAfterImpact > lifetimeAfterImpact; bool flag3 = Object.op_Implicit((Object)(object)base.projectileHealthComponent) && !base.projectileHealthComponent.alive; if (flag || flag2 || flag3) { base.alive = false; } if (base.alive && !hasPlayedLifetimeExpiredSound) { bool flag4 = stopwatch > lifetime - offsetForLifetimeExpiredSound; if (timerAfterImpact) { flag4 |= stopwatchAfterImpact > lifetimeAfterImpact - offsetForLifetimeExpiredSound; } if (flag4) { hasPlayedLifetimeExpiredSound = true; if (NetworkServer.active && Object.op_Implicit((Object)(object)lifetimeExpiredSound)) { PointSoundManager.EmitSoundServer(lifetimeExpiredSound.index, ((Component)this).transform.position); } } } if (!base.alive) { base.explosionEffect = impactEffect ?? base.explosionEffect; CustomDetonate(); } } public void CustomDetonate() { if (NetworkServer.active) { if (isWorldCollided) { base.blastRadius = onWorldCollisionBlastRadius; } else { base.blastRadius = onEnemyCollisionBlastRadius; } ((ProjectileExplosion)this).DetonateServer(); } Object.Destroy((Object)(object)((Component)this).gameObject); } public override Quaternion GetRandomDirectionForChild() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Invalid comparison between Unknown and I4 //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0024: 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_003e: 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_004e: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003b: 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) Quaternion randomChildRollPitch = ((ProjectileExplosion)this).GetRandomChildRollPitch(); TransformSpace val = transformSpace; if ((int)val == 1) { return ((Component)this).transform.rotation * randomChildRollPitch; } if ((int)val != 2) { return randomChildRollPitch; } return Quaternion.FromToRotation(Vector3.forward, impactNormal) * randomChildRollPitch; } public void OnProjectileImpact(ProjectileImpactInfo impactInfo) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown //IL_00aa: 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_00b0: 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_00cc: 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_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) if (!base.alive) { return; } Collider collider = impactInfo.collider; impactNormal = impactInfo.estimatedImpactNormal; if (!Object.op_Implicit((Object)(object)collider)) { return; } DamageInfo val = new DamageInfo(); if (Object.op_Implicit((Object)(object)base.projectileDamage)) { val.damage = base.projectileDamage.damage; val.crit = base.projectileDamage.crit; val.attacker = (Object.op_Implicit((Object)(object)base.projectileController.owner) ? base.projectileController.owner.gameObject : null); val.inflictor = ((Component)this).gameObject; val.position = impactInfo.estimatedPointOfImpact; val.force = base.projectileDamage.force * ((Component)this).transform.forward; val.procChainMask = base.projectileController.procChainMask; val.procCoefficient = base.projectileController.procCoefficient; } else { Debug.Log((object)"No projectile damage component!"); } HurtBox component = ((Component)collider).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { if (destroyOnEnemy) { isWorldCollided = false; HealthComponent healthComponent = component.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent)) { if ((Object)(object)((Component)healthComponent).gameObject == (Object)(object)base.projectileController.owner || (Object.op_Implicit((Object)(object)base.projectileHealthComponent) && (Object)(object)healthComponent == (Object)(object)base.projectileHealthComponent)) { return; } base.alive = false; } } } else if (destroyOnWorld) { base.alive = false; isWorldCollided = true; } hasImpact = Object.op_Implicit((Object)(object)component) || impactOnWorld; if (NetworkServer.active && hasImpact) { GlobalEventManager.instance.OnHitAll(val, ((Component)collider).gameObject); } } public override void OnValidate() { if (!Application.IsPlaying((Object)(object)this)) { ((ProjectileExplosion)this).OnValidate(); if (!string.IsNullOrEmpty(lifetimeExpiredSoundString)) { Debug.LogWarningFormat((Object)(object)((Component)this).gameObject, "{0} ProjectileImpactExplosion component supplies a value in the lifetimeExpiredSoundString field. This will not play correctly over the network. Please use lifetimeExpiredSound instead.", new object[1] { Util.GetGameObjectHierarchyName(((Component)this).gameObject) }); } } } } internal class WeakFiresprayOnHit : MonoBehaviour, IProjectileImpactBehavior { public void Awake() { } public void Start() { } public void FixedUpdate() { } public void OnDestroy() { } public void OnProjectileImpact(ProjectileImpactInfo impactInfo) { } } } namespace ArsonistMod.Modules.Networking { public class AttachFlareNetworkRequest : INetMessage, ISerializableObject { public enum FlareType : uint { STRONG = 1u, WEAK, CHILD_STRONG } private NetworkInstanceId targetCharNetID; private NetworkInstanceId arsonistCharNetID; private GameObject bodyObj; private FlareType flareType; public AttachFlareNetworkRequest() { } public AttachFlareNetworkRequest(NetworkInstanceId targetCharNetID, NetworkInstanceId arsonistCharNetID, FlareType flareType) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: 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_0011: Unknown result type (might be due to invalid IL or missing references) this.targetCharNetID = targetCharNetID; this.arsonistCharNetID = arsonistCharNetID; this.flareType = flareType; } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //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) targetCharNetID = reader.ReadNetworkId(); arsonistCharNetID = reader.ReadNetworkId(); flareType = (FlareType)reader.ReadUInt32(); } public void Serialize(NetworkWriter writer) { //IL_0003: 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) writer.Write(targetCharNetID); writer.Write(arsonistCharNetID); writer.Write((uint)flareType); } public void OnReceived() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) GameObject val = Util.FindNetworkObject(targetCharNetID); GameObject val2 = Util.FindNetworkObject(arsonistCharNetID); if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val2)) { switch (flareType) { case FlareType.STRONG: { FlareEffectControllerStrong flareEffectControllerStrong = val.AddComponent(); flareEffectControllerStrong.arsonistBody = val2.GetComponent(); flareEffectControllerStrong.charbody = val.GetComponent(); break; } case FlareType.CHILD_STRONG: { FlareEffectControllerStrongChild flareEffectControllerStrongChild = val.AddComponent(); flareEffectControllerStrongChild.arsonistBody = val2.GetComponent(); flareEffectControllerStrongChild.charbody = val.GetComponent(); break; } case FlareType.WEAK: { FlareEffectControllerWeak flareEffectControllerWeak2 = val.AddComponent(); flareEffectControllerWeak2.arsonistBody = ((val2 != null) ? val2.GetComponent() : null); flareEffectControllerWeak2.charbody = ((val != null) ? val.GetComponent() : null); break; } default: { FlareEffectControllerWeak flareEffectControllerWeak = val.AddComponent(); flareEffectControllerWeak.arsonistBody = ((val2 != null) ? val2.GetComponent() : null); flareEffectControllerWeak.charbody = ((val != null) ? val.GetComponent() : null); Debug.Log((object)"If you're reading this, this means that the flare network request has failed, Contact Ethanol 10 on the RoR2 modding discord."); break; } } } } } internal class BurnNetworkRequest : INetMessage, ISerializableObject { private NetworkInstanceId charnetID; private NetworkInstanceId enemynetID; private GameObject bodyObj; private GameObject enemybodyObj; public BurnNetworkRequest() { } public BurnNetworkRequest(NetworkInstanceId charnetID, NetworkInstanceId enemynetID) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: 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_0011: Unknown result type (might be due to invalid IL or missing references) this.charnetID = charnetID; this.enemynetID = enemynetID; } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //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) charnetID = reader.ReadNetworkId(); enemynetID = reader.ReadNetworkId(); } public void Serialize(NetworkWriter writer) { //IL_0003: 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) writer.Write(charnetID); writer.Write(enemynetID); } public void OnReceived() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0062: 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) if (NetworkServer.active) { GameObject val = Util.FindNetworkObject(charnetID); CharacterMaster component = val.GetComponent(); CharacterBody body = component.GetBody(); bodyObj = ((Component)body).gameObject; GameObject val2 = Util.FindNetworkObject(enemynetID); CharacterMaster component2 = val2.GetComponent(); CharacterBody body2 = component2.GetBody(); enemybodyObj = ((Component)body2).gameObject; InflictDotInfo val3 = default(InflictDotInfo); val3.damageMultiplier = body.damage * StaticValues.cleanseDamageCoefficient; val3.attackerObject = bodyObj; val3.victimObject = enemybodyObj; val3.duration = StaticValues.cleanseDuration; val3.dotIndex = (DotIndex)1; StrengthenBurnUtils.CheckDotForUpgrade(component.inventory, ref val3); DotController.InflictDot(ref val3); } } } internal class FlamethrowerDotNetworkRequest : INetMessage, ISerializableObject { private NetworkInstanceId charnetID; private NetworkInstanceId enemynetID; private float duration; private GameObject bodyObj; private GameObject enemybodyObj; public FlamethrowerDotNetworkRequest() { } public FlamethrowerDotNetworkRequest(NetworkInstanceId charnetID, NetworkInstanceId enemynetID, float duration) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: 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_0011: Unknown result type (might be due to invalid IL or missing references) this.charnetID = charnetID; this.enemynetID = enemynetID; this.duration = duration; } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //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) charnetID = reader.ReadNetworkId(); enemynetID = reader.ReadNetworkId(); duration = reader.ReadSingle(); } public void Serialize(NetworkWriter writer) { //IL_0003: 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) writer.Write(charnetID); writer.Write(enemynetID); writer.Write(duration); } public void OnReceived() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0075: 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) if (NetworkServer.active) { GameObject val = Util.FindNetworkObject(charnetID); CharacterMaster component = val.GetComponent(); CharacterBody body = component.GetBody(); bodyObj = ((Component)body).gameObject; GameObject val2 = Util.FindNetworkObject(enemynetID); if (Object.op_Implicit((Object)(object)val2)) { CharacterMaster component2 = val2.GetComponent(); CharacterBody body2 = component2.GetBody(); enemybodyObj = ((Component)body2).gameObject; InflictDotInfo val3 = default(InflictDotInfo); val3.damageMultiplier = 1f; val3.attackerObject = bodyObj; val3.victimObject = enemybodyObj; val3.duration = duration; val3.dotIndex = (DotIndex)1; StrengthenBurnUtils.CheckDotForUpgrade(component.inventory, ref val3); DotController.InflictDot(ref val3); } } } } internal class KillAllEffectsNetworkRequest : INetMessage, ISerializableObject { private NetworkInstanceId charnetID; private bool killMaso; public KillAllEffectsNetworkRequest() { } public KillAllEffectsNetworkRequest(NetworkInstanceId charnetID, bool killMaso) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) this.charnetID = charnetID; this.killMaso = killMaso; } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) charnetID = reader.ReadNetworkId(); killMaso = reader.ReadBoolean(); } public void Serialize(NetworkWriter writer) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) writer.Write(charnetID); writer.Write(killMaso); } public void OnReceived() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) GameObject val = Util.FindNetworkObject(charnetID); if (!Object.op_Implicit((Object)(object)val)) { return; } CharacterBody component = val.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ArsonistController component2 = ((Component)component).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.StopAllParticleEffects(); } MasochismController component3 = ((Component)component).GetComponent(); if (Object.op_Implicit((Object)(object)component3) && component.hasEffectiveAuthority && killMaso && component3.masochismActive) { component3.TriggerMasochismAndEXOverheat(applyDebuff: false); } } } } internal class PlayCleanseBlastNetworkRequest : INetMessage, ISerializableObject { private NetworkInstanceId charnetID; private bool strong; public PlayCleanseBlastNetworkRequest() { } public PlayCleanseBlastNetworkRequest(NetworkInstanceId charnetID, bool strong) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) this.charnetID = charnetID; this.strong = strong; } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) charnetID = reader.ReadNetworkId(); strong = reader.ReadBoolean(); } public void Serialize(NetworkWriter writer) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) writer.Write(charnetID); writer.Write(strong); } public void OnReceived() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) GameObject val = Util.FindNetworkObject(charnetID); if (!Object.op_Implicit((Object)(object)val)) { return; } CharacterBody component = val.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } ArsonistController component2 = ((Component)component).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { if (strong) { component2.cleanseBlast.Play(); component2.steamParticle.Play(); component2.ringFireActive = true; component2.trailFire.Play(); component2.ringFire.Play(); } else { component2.steamParticle.Play(); } } } } internal class PlaySoundNetworkRequest : INetMessage, ISerializableObject { private NetworkInstanceId charnetID; private uint soundNum; private GameObject bodyObj; public PlaySoundNetworkRequest() { } public PlaySoundNetworkRequest(NetworkInstanceId charnetID, uint soundNum) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) this.charnetID = charnetID; this.soundNum = soundNum; } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) charnetID = reader.ReadNetworkId(); soundNum = reader.ReadUInt32(); } public void Serialize(NetworkWriter writer) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) writer.Write(charnetID); writer.Write(soundNum); } public void OnReceived() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) GameObject val = Util.FindNetworkObject(charnetID); if (Object.op_Implicit((Object)(object)val)) { AkSoundEngine.PostEvent(soundNum, val); } } } internal class TakeDamageNetworkRequest : INetMessage, ISerializableObject { private NetworkInstanceId netID; private NetworkInstanceId attackernetID; private float health; private bool burn; private bool selfMasoDmg; private bool crit; private GameObject bodyObj; private GameObject attackerbodyObj; public TakeDamageNetworkRequest() { } public TakeDamageNetworkRequest(NetworkInstanceId netID, NetworkInstanceId attackernetID, float health, bool burn) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: 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_0011: Unknown result type (might be due to invalid IL or missing references) this.netID = netID; this.attackernetID = attackernetID; this.health = health; this.burn = burn; selfMasoDmg = false; crit = true; } public TakeDamageNetworkRequest(NetworkInstanceId netID, NetworkInstanceId attackernetID, float health, bool burn, bool selfMasoDmg) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: 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_0011: Unknown result type (might be due to invalid IL or missing references) this.netID = netID; this.attackernetID = attackernetID; this.health = health; this.burn = burn; this.selfMasoDmg = selfMasoDmg; crit = true; } public TakeDamageNetworkRequest(NetworkInstanceId netID, NetworkInstanceId attackernetID, float health, bool burn, bool selfMasoDmg, bool crit) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: 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_0011: Unknown result type (might be due to invalid IL or missing references) this.netID = netID; this.attackernetID = attackernetID; this.health = health; this.burn = burn; this.selfMasoDmg = selfMasoDmg; this.crit = crit; } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //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) netID = reader.ReadNetworkId(); attackernetID = reader.ReadNetworkId(); health = reader.ReadSingle(); burn = reader.ReadBoolean(); selfMasoDmg = reader.ReadBoolean(); crit = reader.ReadBoolean(); } public void Serialize(NetworkWriter writer) { //IL_0003: 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) writer.Write(netID); writer.Write(attackernetID); writer.Write(health); writer.Write(burn); writer.Write(selfMasoDmg); writer.Write(crit); } public void OnReceived() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_00a1: 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_00ad: 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) //IL_00ba: 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_0103: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) GameObject val = Util.FindNetworkObject(netID); if (!Object.op_Implicit((Object)(object)val)) { return; } CharacterMaster component = val.GetComponent(); CharacterBody body = component.GetBody(); bodyObj = ((Component)body).gameObject; GameObject val2 = Util.FindNetworkObject(attackernetID); CharacterMaster component2 = val2.GetComponent(); CharacterBody body2 = component2.GetBody(); attackerbodyObj = ((Component)body2).gameObject; if (NetworkServer.active && Object.op_Implicit((Object)(object)body.healthComponent)) { DamageInfo val3 = new DamageInfo(); val3.damage = health; val3.position = body.transform.position; val3.force = Vector3.zero; val3.damageColorIndex = (DamageColorIndex)5; val3.crit = crit && body2.RollCrit(); val3.attacker = null; val3.inflictor = null; val3.damageType = (DamageType)0; val3.procCoefficient = 0.2f; val3.procChainMask = default(ProcChainMask); if (burn) { val3.damageType = (DamageType)128; } if (selfMasoDmg) { val3.damageType = (DamageType)67239936; } body.healthComponent.TakeDamage(val3); } } } internal class ToggleMasochismEffectNetworkRequest : INetMessage, ISerializableObject { private NetworkInstanceId charnetID; private bool toggleOn; public ToggleMasochismEffectNetworkRequest() { } public ToggleMasochismEffectNetworkRequest(NetworkInstanceId charnetID, bool toggleOn) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) this.charnetID = charnetID; this.toggleOn = toggleOn; } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) charnetID = reader.ReadNetworkId(); toggleOn = reader.ReadBoolean(); } public void Serialize(NetworkWriter writer) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) writer.Write(charnetID); writer.Write(toggleOn); } public void OnReceived() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) GameObject val = Util.FindNetworkObject(charnetID); if (!Object.op_Implicit((Object)(object)val)) { return; } CharacterBody component = val.GetComponent(); if (Object.op_Implicit((Object)(object)component) && !component.hasEffectiveAuthority) { MasochismController component2 = ((Component)component).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.ToggleMasochismRangeIndicator(toggleOn); } } } } } namespace ArsonistMod.Modules.Characters { internal class ArsonistItemDisplays : ItemDisplaysBase { protected override void SetItemDisplayRules(List itemDisplayRules) { //IL_0004: 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_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_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_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_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_00ab: 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_00b1: 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_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: 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) //IL_00fc: 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_0134: 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_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: 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_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0188: 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_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: 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_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_0211: 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_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0231: 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_023e: 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_0249: 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_024f: 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_026f: 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_028a: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: 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_02d8: 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_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_0310: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03bf: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Unknown result type (might be due to invalid IL or missing references) //IL_03cc: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Unknown result type (might be due to invalid IL or missing references) //IL_03e7: 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_040f: Unknown result type (might be due to invalid IL or missing references) //IL_0418: Unknown result type (might be due to invalid IL or missing references) //IL_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_0481: Unknown result type (might be due to invalid IL or missing references) //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_048e: Unknown result type (might be due to invalid IL or missing references) //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_049e: Unknown result type (might be due to invalid IL or missing references) //IL_049f: Unknown result type (might be due to invalid IL or missing references) //IL_04a4: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Unknown result type (might be due to invalid IL or missing references) //IL_04c4: Unknown result type (might be due to invalid IL or missing references) //IL_04d6: Unknown result type (might be due to invalid IL or missing references) //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_0512: Unknown result type (might be due to invalid IL or missing references) //IL_0517: Unknown result type (might be due to invalid IL or missing references) //IL_052d: 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_0548: Unknown result type (might be due to invalid IL or missing references) //IL_054d: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_055a: Unknown result type (might be due to invalid IL or missing references) //IL_055b: Unknown result type (might be due to invalid IL or missing references) //IL_0565: Unknown result type (might be due to invalid IL or missing references) //IL_0566: Unknown result type (might be due to invalid IL or missing references) //IL_056b: Unknown result type (might be due to invalid IL or missing references) //IL_0575: Unknown result type (might be due to invalid IL or missing references) //IL_058b: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05a6: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_05de: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_05f9: 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_0614: Unknown result type (might be due to invalid IL or missing references) //IL_061c: 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_0622: Unknown result type (might be due to invalid IL or missing references) //IL_062c: Unknown result type (might be due to invalid IL or missing references) //IL_062d: Unknown result type (might be due to invalid IL or missing references) //IL_0632: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Unknown result type (might be due to invalid IL or missing references) //IL_0652: Unknown result type (might be due to invalid IL or missing references) //IL_0664: Unknown result type (might be due to invalid IL or missing references) //IL_066d: Unknown result type (might be due to invalid IL or missing references) //IL_06a0: Unknown result type (might be due to invalid IL or missing references) //IL_06a5: 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_06c0: Unknown result type (might be due to invalid IL or missing references) //IL_06d6: Unknown result type (might be due to invalid IL or missing references) //IL_06db: 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_06e8: Unknown result type (might be due to invalid IL or missing references) //IL_06e9: Unknown result type (might be due to invalid IL or missing references) //IL_06f3: Unknown result type (might be due to invalid IL or missing references) //IL_06f4: Unknown result type (might be due to invalid IL or missing references) //IL_06f9: Unknown result type (might be due to invalid IL or missing references) //IL_0703: Unknown result type (might be due to invalid IL or missing references) //IL_0719: Unknown result type (might be due to invalid IL or missing references) //IL_072b: Unknown result type (might be due to invalid IL or missing references) //IL_0734: 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_076c: Unknown result type (might be due to invalid IL or missing references) //IL_0782: Unknown result type (might be due to invalid IL or missing references) //IL_0787: Unknown result type (might be due to invalid IL or missing references) //IL_079d: Unknown result type (might be due to invalid IL or missing references) //IL_07a2: Unknown result type (might be due to invalid IL or missing references) //IL_07aa: Unknown result type (might be due to invalid IL or missing references) //IL_07af: Unknown result type (might be due to invalid IL or missing references) //IL_07b0: Unknown result type (might be due to invalid IL or missing references) //IL_07ba: Unknown result type (might be due to invalid IL or missing references) //IL_07bb: Unknown result type (might be due to invalid IL or missing references) //IL_07c0: Unknown result type (might be due to invalid IL or missing references) //IL_07ca: Unknown result type (might be due to invalid IL or missing references) //IL_07e0: 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_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_082e: 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_0849: Unknown result type (might be due to invalid IL or missing references) //IL_084e: Unknown result type (might be due to invalid IL or missing references) //IL_0864: Unknown result type (might be due to invalid IL or missing references) //IL_0869: Unknown result type (might be due to invalid IL or missing references) //IL_0871: Unknown result type (might be due to invalid IL or missing references) //IL_0876: Unknown result type (might be due to invalid IL or missing references) //IL_0877: Unknown result type (might be due to invalid IL or missing references) //IL_0881: 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_0887: Unknown result type (might be due to invalid IL or missing references) //IL_0891: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_08b9: 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_08f5: Unknown result type (might be due to invalid IL or missing references) //IL_08fa: Unknown result type (might be due to invalid IL or missing references) //IL_0910: Unknown result type (might be due to invalid IL or missing references) //IL_0915: Unknown result type (might be due to invalid IL or missing references) //IL_092b: Unknown result type (might be due to invalid IL or missing references) //IL_0930: Unknown result type (might be due to invalid IL or missing references) //IL_0938: Unknown result type (might be due to invalid IL or missing references) //IL_093d: Unknown result type (might be due to invalid IL or missing references) //IL_093e: Unknown result type (might be due to invalid IL or missing references) //IL_0948: Unknown result type (might be due to invalid IL or missing references) //IL_0949: Unknown result type (might be due to invalid IL or missing references) //IL_094e: Unknown result type (might be due to invalid IL or missing references) //IL_0958: Unknown result type (might be due to invalid IL or missing references) //IL_096e: 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_0989: Unknown result type (might be due to invalid IL or missing references) //IL_09bc: Unknown result type (might be due to invalid IL or missing references) //IL_09c1: Unknown result type (might be due to invalid IL or missing references) //IL_09d7: Unknown result type (might be due to invalid IL or missing references) //IL_09dc: Unknown result type (might be due to invalid IL or missing references) //IL_09f2: Unknown result type (might be due to invalid IL or missing references) //IL_09f7: Unknown result type (might be due to invalid IL or missing references) //IL_09ff: Unknown result type (might be due to invalid IL or missing references) //IL_0a04: Unknown result type (might be due to invalid IL or missing references) //IL_0a05: 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_0a10: Unknown result type (might be due to invalid IL or missing references) //IL_0a15: Unknown result type (might be due to invalid IL or missing references) //IL_0a1f: Unknown result type (might be due to invalid IL or missing references) //IL_0a35: Unknown result type (might be due to invalid IL or missing references) //IL_0a47: 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_0a83: Unknown result type (might be due to invalid IL or missing references) //IL_0a88: 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_0aa3: Unknown result type (might be due to invalid IL or missing references) //IL_0ab9: Unknown result type (might be due to invalid IL or missing references) //IL_0abe: Unknown result type (might be due to invalid IL or missing references) //IL_0ac6: Unknown result type (might be due to invalid IL or missing references) //IL_0acb: Unknown result type (might be due to invalid IL or missing references) //IL_0acc: Unknown result type (might be due to invalid IL or missing references) //IL_0ad6: Unknown result type (might be due to invalid IL or missing references) //IL_0ad7: Unknown result type (might be due to invalid IL or missing references) //IL_0adc: Unknown result type (might be due to invalid IL or missing references) //IL_0ae6: Unknown result type (might be due to invalid IL or missing references) //IL_0afc: Unknown result type (might be due to invalid IL or missing references) //IL_0b0e: Unknown result type (might be due to invalid IL or missing references) //IL_0b17: Unknown result type (might be due to invalid IL or missing references) //IL_0b4a: Unknown result type (might be due to invalid IL or missing references) //IL_0b4f: Unknown result type (might be due to invalid IL or missing references) //IL_0b65: 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_0b80: Unknown result type (might be due to invalid IL or missing references) //IL_0b85: Unknown result type (might be due to invalid IL or missing references) //IL_0b8d: Unknown result type (might be due to invalid IL or missing references) //IL_0b92: 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_0b9d: Unknown result type (might be due to invalid IL or missing references) //IL_0b9e: Unknown result type (might be due to invalid IL or missing references) //IL_0ba3: Unknown result type (might be due to invalid IL or missing references) //IL_0bad: Unknown result type (might be due to invalid IL or missing references) //IL_0bc3: Unknown result type (might be due to invalid IL or missing references) //IL_0bd5: Unknown result type (might be due to invalid IL or missing references) //IL_0bde: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c16: Unknown result type (might be due to invalid IL or missing references) //IL_0c2c: Unknown result type (might be due to invalid IL or missing references) //IL_0c31: Unknown result type (might be due to invalid IL or missing references) //IL_0c47: Unknown result type (might be due to invalid IL or missing references) //IL_0c4c: Unknown result type (might be due to invalid IL or missing references) //IL_0c54: Unknown result type (might be due to invalid IL or missing references) //IL_0c59: Unknown result type (might be due to invalid IL or missing references) //IL_0c5a: Unknown result type (might be due to invalid IL or missing references) //IL_0c64: Unknown result type (might be due to invalid IL or missing references) //IL_0c65: Unknown result type (might be due to invalid IL or missing references) //IL_0c6a: Unknown result type (might be due to invalid IL or missing references) //IL_0c74: Unknown result type (might be due to invalid IL or missing references) //IL_0c8a: Unknown result type (might be due to invalid IL or missing references) //IL_0c9c: Unknown result type (might be due to invalid IL or missing references) //IL_0ca5: Unknown result type (might be due to invalid IL or missing references) //IL_0cd8: Unknown result type (might be due to invalid IL or missing references) //IL_0cdd: Unknown result type (might be due to invalid IL or missing references) //IL_0cf3: Unknown result type (might be due to invalid IL or missing references) //IL_0cf8: Unknown result type (might be due to invalid IL or missing references) //IL_0d0e: 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_0d1b: Unknown result type (might be due to invalid IL or missing references) //IL_0d20: Unknown result type (might be due to invalid IL or missing references) //IL_0d21: Unknown result type (might be due to invalid IL or missing references) //IL_0d2b: Unknown result type (might be due to invalid IL or missing references) //IL_0d2c: Unknown result type (might be due to invalid IL or missing references) //IL_0d31: 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_0d51: Unknown result type (might be due to invalid IL or missing references) //IL_0d63: Unknown result type (might be due to invalid IL or missing references) //IL_0d6c: Unknown result type (might be due to invalid IL or missing references) //IL_0d9f: Unknown result type (might be due to invalid IL or missing references) //IL_0da4: 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_0dd5: Unknown result type (might be due to invalid IL or missing references) //IL_0dda: Unknown result type (might be due to invalid IL or missing references) //IL_0de2: Unknown result type (might be due to invalid IL or missing references) //IL_0de7: Unknown result type (might be due to invalid IL or missing references) //IL_0de8: Unknown result type (might be due to invalid IL or missing references) //IL_0df2: Unknown result type (might be due to invalid IL or missing references) //IL_0df3: Unknown result type (might be due to invalid IL or missing references) //IL_0df8: Unknown result type (might be due to invalid IL or missing references) //IL_0e02: Unknown result type (might be due to invalid IL or missing references) //IL_0e18: Unknown result type (might be due to invalid IL or missing references) //IL_0e2a: Unknown result type (might be due to invalid IL or missing references) //IL_0e33: Unknown result type (might be due to invalid IL or missing references) //IL_0e66: Unknown result type (might be due to invalid IL or missing references) //IL_0e6b: Unknown result type (might be due to invalid IL or missing references) //IL_0e81: Unknown result type (might be due to invalid IL or missing references) //IL_0e86: Unknown result type (might be due to invalid IL or missing references) //IL_0e9c: Unknown result type (might be due to invalid IL or missing references) //IL_0ea1: 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_0eae: Unknown result type (might be due to invalid IL or missing references) //IL_0eaf: Unknown result type (might be due to invalid IL or missing references) //IL_0eb9: Unknown result type (might be due to invalid IL or missing references) //IL_0eba: 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_0ec9: Unknown result type (might be due to invalid IL or missing references) //IL_0edf: Unknown result type (might be due to invalid IL or missing references) //IL_0ef1: Unknown result type (might be due to invalid IL or missing references) //IL_0efa: 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_0f32: 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_0f4d: Unknown result type (might be due to invalid IL or missing references) //IL_0f63: Unknown result type (might be due to invalid IL or missing references) //IL_0f68: Unknown result type (might be due to invalid IL or missing references) //IL_0f70: Unknown result type (might be due to invalid IL or missing references) //IL_0f75: Unknown result type (might be due to invalid IL or missing references) //IL_0f76: Unknown result type (might be due to invalid IL or missing references) //IL_0f80: Unknown result type (might be due to invalid IL or missing references) //IL_0f81: Unknown result type (might be due to invalid IL or missing references) //IL_0f86: Unknown result type (might be due to invalid IL or missing references) //IL_0f90: Unknown result type (might be due to invalid IL or missing references) //IL_0fa6: Unknown result type (might be due to invalid IL or missing references) //IL_0fb8: Unknown result type (might be due to invalid IL or missing references) //IL_0fc1: Unknown result type (might be due to invalid IL or missing references) //IL_0ff4: Unknown result type (might be due to invalid IL or missing references) //IL_0ff9: Unknown result type (might be due to invalid IL or missing references) //IL_100f: Unknown result type (might be due to invalid IL or missing references) //IL_1014: Unknown result type (might be due to invalid IL or missing references) //IL_102a: Unknown result type (might be due to invalid IL or missing references) //IL_102f: Unknown result type (might be due to invalid IL or missing references) //IL_1037: Unknown result type (might be due to invalid IL or missing references) //IL_103c: Unknown result type (might be due to invalid IL or missing references) //IL_103d: Unknown result type (might be due to invalid IL or missing references) //IL_1047: Unknown result type (might be due to invalid IL or missing references) //IL_1048: Unknown result type (might be due to invalid IL or missing references) //IL_104d: Unknown result type (might be due to invalid IL or missing references) //IL_1057: Unknown result type (might be due to invalid IL or missing references) //IL_106d: Unknown result type (might be due to invalid IL or missing references) //IL_107f: Unknown result type (might be due to invalid IL or missing references) //IL_1088: Unknown result type (might be due to invalid IL or missing references) //IL_10bb: Unknown result type (might be due to invalid IL or missing references) //IL_10c0: Unknown result type (might be due to invalid IL or missing references) //IL_10d6: Unknown result type (might be due to invalid IL or missing references) //IL_10db: Unknown result type (might be due to invalid IL or missing references) //IL_10f1: 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_10fe: Unknown result type (might be due to invalid IL or missing references) //IL_1103: Unknown result type (might be due to invalid IL or missing references) //IL_1104: Unknown result type (might be due to invalid IL or missing references) //IL_110e: Unknown result type (might be due to invalid IL or missing references) //IL_110f: Unknown result type (might be due to invalid IL or missing references) //IL_1114: Unknown result type (might be due to invalid IL or missing references) //IL_111e: Unknown result type (might be due to invalid IL or missing references) //IL_1134: Unknown result type (might be due to invalid IL or missing references) //IL_1146: Unknown result type (might be due to invalid IL or missing references) //IL_114f: Unknown result type (might be due to invalid IL or missing references) //IL_1182: Unknown result type (might be due to invalid IL or missing references) //IL_1187: Unknown result type (might be due to invalid IL or missing references) //IL_119d: Unknown result type (might be due to invalid IL or missing references) //IL_11a2: Unknown result type (might be due to invalid IL or missing references) //IL_11b8: Unknown result type (might be due to invalid IL or missing references) //IL_11bd: Unknown result type (might be due to invalid IL or missing references) //IL_11c5: Unknown result type (might be due to invalid IL or missing references) //IL_11ca: Unknown result type (might be due to invalid IL or missing references) //IL_11cb: 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_11d6: Unknown result type (might be due to invalid IL or missing references) //IL_11db: Unknown result type (might be due to invalid IL or missing references) //IL_11e5: Unknown result type (might be due to invalid IL or missing references) //IL_11fb: Unknown result type (might be due to invalid IL or missing references) //IL_120d: Unknown result type (might be due to invalid IL or missing references) //IL_1216: Unknown result type (might be due to invalid IL or missing references) //IL_1249: Unknown result type (might be due to invalid IL or missing references) //IL_124e: Unknown result type (might be due to invalid IL or missing references) //IL_1264: Unknown result type (might be due to invalid IL or missing references) //IL_1269: Unknown result type (might be due to invalid IL or missing references) //IL_127f: Unknown result type (might be due to invalid IL or missing references) //IL_1284: 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_1291: 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_129c: Unknown result type (might be due to invalid IL or missing references) //IL_129d: Unknown result type (might be due to invalid IL or missing references) //IL_12a2: Unknown result type (might be due to invalid IL or missing references) //IL_12ac: Unknown result type (might be due to invalid IL or missing references) //IL_12c2: Unknown result type (might be due to invalid IL or missing references) //IL_12d4: Unknown result type (might be due to invalid IL or missing references) //IL_12dd: Unknown result type (might be due to invalid IL or missing references) //IL_1310: Unknown result type (might be due to invalid IL or missing references) //IL_1315: Unknown result type (might be due to invalid IL or missing references) //IL_132b: Unknown result type (might be due to invalid IL or missing references) //IL_1330: Unknown result type (might be due to invalid IL or missing references) //IL_1346: Unknown result type (might be due to invalid IL or missing references) //IL_134b: Unknown result type (might be due to invalid IL or missing references) //IL_1353: Unknown result type (might be due to invalid IL or missing references) //IL_1358: Unknown result type (might be due to invalid IL or missing references) //IL_1359: Unknown result type (might be due to invalid IL or missing references) //IL_1362: Unknown result type (might be due to invalid IL or missing references) //IL_136b: Unknown result type (might be due to invalid IL or missing references) //IL_139e: Unknown result type (might be due to invalid IL or missing references) //IL_13a3: Unknown result type (might be due to invalid IL or missing references) //IL_13b9: Unknown result type (might be due to invalid IL or missing references) //IL_13be: Unknown result type (might be due to invalid IL or missing references) //IL_13d4: Unknown result type (might be due to invalid IL or missing references) //IL_13d9: Unknown result type (might be due to invalid IL or missing references) //IL_13e1: 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_13e7: Unknown result type (might be due to invalid IL or missing references) //IL_13f1: Unknown result type (might be due to invalid IL or missing references) //IL_13f2: Unknown result type (might be due to invalid IL or missing references) //IL_13f7: Unknown result type (might be due to invalid IL or missing references) //IL_1401: Unknown result type (might be due to invalid IL or missing references) //IL_1417: Unknown result type (might be due to invalid IL or missing references) //IL_1429: Unknown result type (might be due to invalid IL or missing references) //IL_1432: Unknown result type (might be due to invalid IL or missing references) //IL_1465: Unknown result type (might be due to invalid IL or missing references) //IL_146a: Unknown result type (might be due to invalid IL or missing references) //IL_1480: Unknown result type (might be due to invalid IL or missing references) //IL_1485: Unknown result type (might be due to invalid IL or missing references) //IL_149b: 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_14a8: Unknown result type (might be due to invalid IL or missing references) //IL_14ad: Unknown result type (might be due to invalid IL or missing references) //IL_14ae: Unknown result type (might be due to invalid IL or missing references) //IL_14b8: Unknown result type (might be due to invalid IL or missing references) //IL_14b9: Unknown result type (might be due to invalid IL or missing references) //IL_14be: Unknown result type (might be due to invalid IL or missing references) //IL_14c8: Unknown result type (might be due to invalid IL or missing references) //IL_14de: Unknown result type (might be due to invalid IL or missing references) //IL_14f0: Unknown result type (might be due to invalid IL or missing references) //IL_14f9: Unknown result type (might be due to invalid IL or missing references) //IL_152c: Unknown result type (might be due to invalid IL or missing references) //IL_1531: Unknown result type (might be due to invalid IL or missing references) //IL_1547: Unknown result type (might be due to invalid IL or missing references) //IL_154c: Unknown result type (might be due to invalid IL or missing references) //IL_1562: Unknown result type (might be due to invalid IL or missing references) //IL_1567: Unknown result type (might be due to invalid IL or missing references) //IL_156f: Unknown result type (might be due to invalid IL or missing references) //IL_1574: Unknown result type (might be due to invalid IL or missing references) //IL_1575: Unknown result type (might be due to invalid IL or missing references) //IL_157f: Unknown result type (might be due to invalid IL or missing references) //IL_1580: Unknown result type (might be due to invalid IL or missing references) //IL_1585: 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_1656: Unknown result type (might be due to invalid IL or missing references) //IL_166c: Unknown result type (might be due to invalid IL or missing references) //IL_167e: Unknown result type (might be due to invalid IL or missing references) //IL_1687: Unknown result type (might be due to invalid IL or missing references) //IL_16ba: Unknown result type (might be due to invalid IL or missing references) //IL_16bf: Unknown result type (might be due to invalid IL or missing references) //IL_16d5: Unknown result type (might be due to invalid IL or missing references) //IL_16da: Unknown result type (might be due to invalid IL or missing references) //IL_16f0: Unknown result type (might be due to invalid IL or missing references) //IL_16f5: Unknown result type (might be due to invalid IL or missing references) //IL_16fd: Unknown result type (might be due to invalid IL or missing references) //IL_1702: Unknown result type (might be due to invalid IL or missing references) //IL_1703: Unknown result type (might be due to invalid IL or missing references) //IL_170d: Unknown result type (might be due to invalid IL or missing references) //IL_170e: Unknown result type (might be due to invalid IL or missing references) //IL_1713: Unknown result type (might be due to invalid IL or missing references) //IL_171d: Unknown result type (might be due to invalid IL or missing references) //IL_1733: Unknown result type (might be due to invalid IL or missing references) //IL_1745: Unknown result type (might be due to invalid IL or missing references) //IL_174e: Unknown result type (might be due to invalid IL or missing references) //IL_1781: Unknown result type (might be due to invalid IL or missing references) //IL_1786: Unknown result type (might be due to invalid IL or missing references) //IL_179c: Unknown result type (might be due to invalid IL or missing references) //IL_17a1: Unknown result type (might be due to invalid IL or missing references) //IL_17b7: Unknown result type (might be due to invalid IL or missing references) //IL_17bc: 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_17c9: Unknown result type (might be due to invalid IL or missing references) //IL_17ca: Unknown result type (might be due to invalid IL or missing references) //IL_17d4: Unknown result type (might be due to invalid IL or missing references) //IL_17d5: Unknown result type (might be due to invalid IL or missing references) //IL_17da: Unknown result type (might be due to invalid IL or missing references) //IL_17e4: Unknown result type (might be due to invalid IL or missing references) //IL_17fa: Unknown result type (might be due to invalid IL or missing references) //IL_180c: Unknown result type (might be due to invalid IL or missing references) //IL_1815: Unknown result type (might be due to invalid IL or missing references) //IL_1848: Unknown result type (might be due to invalid IL or missing references) //IL_184d: Unknown result type (might be due to invalid IL or missing references) //IL_1863: Unknown result type (might be due to invalid IL or missing references) //IL_1868: Unknown result type (might be due to invalid IL or missing references) //IL_187e: Unknown result type (might be due to invalid IL or missing references) //IL_1883: Unknown result type (might be due to invalid IL or missing references) //IL_188b: Unknown result type (might be due to invalid IL or missing references) //IL_1890: Unknown result type (might be due to invalid IL or missing references) //IL_1891: Unknown result type (might be due to invalid IL or missing references) //IL_189b: 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_18a1: Unknown result type (might be due to invalid IL or missing references) //IL_18ab: Unknown result type (might be due to invalid IL or missing references) //IL_18c1: Unknown result type (might be due to invalid IL or missing references) //IL_18d3: Unknown result type (might be due to invalid IL or missing references) //IL_18dc: Unknown result type (might be due to invalid IL or missing references) //IL_190f: Unknown result type (might be due to invalid IL or missing references) //IL_1914: Unknown result type (might be due to invalid IL or missing references) //IL_192a: Unknown result type (might be due to invalid IL or missing references) //IL_192f: Unknown result type (might be due to invalid IL or missing references) //IL_1945: Unknown result type (might be due to invalid IL or missing references) //IL_194a: Unknown result type (might be due to invalid IL or missing references) //IL_1952: Unknown result type (might be due to invalid IL or missing references) //IL_1957: Unknown result type (might be due to invalid IL or missing references) //IL_1958: 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_1963: 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_1988: Unknown result type (might be due to invalid IL or missing references) //IL_199a: Unknown result type (might be due to invalid IL or missing references) //IL_19a3: Unknown result type (might be due to invalid IL or missing references) //IL_19d6: Unknown result type (might be due to invalid IL or missing references) //IL_19db: Unknown result type (might be due to invalid IL or missing references) //IL_19f1: Unknown result type (might be due to invalid IL or missing references) //IL_19f6: Unknown result type (might be due to invalid IL or missing references) //IL_1a0c: Unknown result type (might be due to invalid IL or missing references) //IL_1a11: Unknown result type (might be due to invalid IL or missing references) //IL_1a19: Unknown result type (might be due to invalid IL or missing references) //IL_1a1e: Unknown result type (might be due to invalid IL or missing references) //IL_1a1f: Unknown result type (might be due to invalid IL or missing references) //IL_1a28: Unknown result type (might be due to invalid IL or missing references) //IL_1a31: Unknown result type (might be due to invalid IL or missing references) //IL_1a64: Unknown result type (might be due to invalid IL or missing references) //IL_1a69: Unknown result type (might be due to invalid IL or missing references) //IL_1a7f: Unknown result type (might be due to invalid IL or missing references) //IL_1a84: Unknown result type (might be due to invalid IL or missing references) //IL_1a9a: Unknown result type (might be due to invalid IL or missing references) //IL_1a9f: Unknown result type (might be due to invalid IL or missing references) //IL_1aa7: Unknown result type (might be due to invalid IL or missing references) //IL_1aac: Unknown result type (might be due to invalid IL or missing references) //IL_1aad: Unknown result type (might be due to invalid IL or missing references) //IL_1ab7: Unknown result type (might be due to invalid IL or missing references) //IL_1ab8: Unknown result type (might be due to invalid IL or missing references) //IL_1abd: Unknown result type (might be due to invalid IL or missing references) //IL_1ac7: Unknown result type (might be due to invalid IL or missing references) //IL_1add: Unknown result type (might be due to invalid IL or missing references) //IL_1aef: 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_1b2b: Unknown result type (might be due to invalid IL or missing references) //IL_1b30: Unknown result type (might be due to invalid IL or missing references) //IL_1b46: Unknown result type (might be due to invalid IL or missing references) //IL_1b4b: Unknown result type (might be due to invalid IL or missing references) //IL_1b61: Unknown result type (might be due to invalid IL or missing references) //IL_1b66: Unknown result type (might be due to invalid IL or missing references) //IL_1b6e: Unknown result type (might be due to invalid IL or missing references) //IL_1b73: Unknown result type (might be due to invalid IL or missing references) //IL_1b74: Unknown result type (might be due to invalid IL or missing references) //IL_1b7e: Unknown result type (might be due to invalid IL or missing references) //IL_1b7f: Unknown result type (might be due to invalid IL or missing references) //IL_1b84: Unknown result type (might be due to invalid IL or missing references) //IL_1b8e: Unknown result type (might be due to invalid IL or missing references) //IL_1ba4: 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_1bbf: Unknown result type (might be due to invalid IL or missing references) //IL_1bf2: Unknown result type (might be due to invalid IL or missing references) //IL_1bf7: Unknown result type (might be due to invalid IL or missing references) //IL_1c0d: Unknown result type (might be due to invalid IL or missing references) //IL_1c12: Unknown result type (might be due to invalid IL or missing references) //IL_1c28: Unknown result type (might be due to invalid IL or missing references) //IL_1c2d: Unknown result type (might be due to invalid IL or missing references) //IL_1c35: Unknown result type (might be due to invalid IL or missing references) //IL_1c3a: Unknown result type (might be due to invalid IL or missing references) //IL_1c3b: Unknown result type (might be due to invalid IL or missing references) //IL_1c45: Unknown result type (might be due to invalid IL or missing references) //IL_1c46: 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_1c55: 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_1c7d: 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_1cb9: Unknown result type (might be due to invalid IL or missing references) //IL_1cbe: Unknown result type (might be due to invalid IL or missing references) //IL_1cd4: Unknown result type (might be due to invalid IL or missing references) //IL_1cd9: Unknown result type (might be due to invalid IL or missing references) //IL_1cef: Unknown result type (might be due to invalid IL or missing references) //IL_1cf4: Unknown result type (might be due to invalid IL or missing references) //IL_1cfc: Unknown result type (might be due to invalid IL or missing references) //IL_1d01: Unknown result type (might be due to invalid IL or missing references) //IL_1d02: Unknown result type (might be due to invalid IL or missing references) //IL_1d0b: Unknown result type (might be due to invalid IL or missing references) //IL_1d14: Unknown result type (might be due to invalid IL or missing references) //IL_1d47: 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_1d62: Unknown result type (might be due to invalid IL or missing references) //IL_1d67: 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_1d82: Unknown result type (might be due to invalid IL or missing references) //IL_1d8a: Unknown result type (might be due to invalid IL or missing references) //IL_1d8f: Unknown result type (might be due to invalid IL or missing references) //IL_1d90: Unknown result type (might be due to invalid IL or missing references) //IL_1d9a: Unknown result type (might be due to invalid IL or missing references) //IL_1d9b: Unknown result type (might be due to invalid IL or missing references) //IL_1da0: Unknown result type (might be due to invalid IL or missing references) //IL_1daa: Unknown result type (might be due to invalid IL or missing references) //IL_1dc0: Unknown result type (might be due to invalid IL or missing references) //IL_1dd2: Unknown result type (might be due to invalid IL or missing references) //IL_1ddb: Unknown result type (might be due to invalid IL or missing references) //IL_1e0e: Unknown result type (might be due to invalid IL or missing references) //IL_1e13: 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_1e2e: Unknown result type (might be due to invalid IL or missing references) //IL_1e44: Unknown result type (might be due to invalid IL or missing references) //IL_1e49: Unknown result type (might be due to invalid IL or missing references) //IL_1e51: Unknown result type (might be due to invalid IL or missing references) //IL_1e56: Unknown result type (might be due to invalid IL or missing references) //IL_1e57: Unknown result type (might be due to invalid IL or missing references) //IL_1e61: Unknown result type (might be due to invalid IL or missing references) //IL_1e62: Unknown result type (might be due to invalid IL or missing references) //IL_1e67: Unknown result type (might be due to invalid IL or missing references) //IL_1e71: Unknown result type (might be due to invalid IL or missing references) //IL_1e87: Unknown result type (might be due to invalid IL or missing references) //IL_1e99: Unknown result type (might be due to invalid IL or missing references) //IL_1ea2: Unknown result type (might be due to invalid IL or missing references) //IL_1ed5: Unknown result type (might be due to invalid IL or missing references) //IL_1eda: Unknown result type (might be due to invalid IL or missing references) //IL_1ef0: 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_1f0b: Unknown result type (might be due to invalid IL or missing references) //IL_1f10: Unknown result type (might be due to invalid IL or missing references) //IL_1f18: Unknown result type (might be due to invalid IL or missing references) //IL_1f1d: Unknown result type (might be due to invalid IL or missing references) //IL_1f1e: Unknown result type (might be due to invalid IL or missing references) //IL_1f28: 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_1f2e: Unknown result type (might be due to invalid IL or missing references) //IL_1f38: Unknown result type (might be due to invalid IL or missing references) //IL_1f4e: Unknown result type (might be due to invalid IL or missing references) //IL_1f60: Unknown result type (might be due to invalid IL or missing references) //IL_1f69: Unknown result type (might be due to invalid IL or missing references) //IL_1f9c: Unknown result type (might be due to invalid IL or missing references) //IL_1fa1: Unknown result type (might be due to invalid IL or missing references) //IL_1fb7: Unknown result type (might be due to invalid IL or missing references) //IL_1fbc: Unknown result type (might be due to invalid IL or missing references) //IL_1fd2: Unknown result type (might be due to invalid IL or missing references) //IL_1fd7: Unknown result type (might be due to invalid IL or missing references) //IL_1fdf: Unknown result type (might be due to invalid IL or missing references) //IL_1fe4: Unknown result type (might be due to invalid IL or missing references) //IL_1fe5: Unknown result type (might be due to invalid IL or missing references) //IL_1fef: Unknown result type (might be due to invalid IL or missing references) //IL_1ff0: Unknown result type (might be due to invalid IL or missing references) //IL_1ff5: Unknown result type (might be due to invalid IL or missing references) //IL_1fff: Unknown result type (might be due to invalid IL or missing references) //IL_2015: Unknown result type (might be due to invalid IL or missing references) //IL_2027: Unknown result type (might be due to invalid IL or missing references) //IL_2030: Unknown result type (might be due to invalid IL or missing references) //IL_2063: Unknown result type (might be due to invalid IL or missing references) //IL_2068: Unknown result type (might be due to invalid IL or missing references) //IL_207e: Unknown result type (might be due to invalid IL or missing references) //IL_2083: Unknown result type (might be due to invalid IL or missing references) //IL_2099: Unknown result type (might be due to invalid IL or missing references) //IL_209e: Unknown result type (might be due to invalid IL or missing references) //IL_20a6: Unknown result type (might be due to invalid IL or missing references) //IL_20ab: Unknown result type (might be due to invalid IL or missing references) //IL_20ac: Unknown result type (might be due to invalid IL or missing references) //IL_20b6: Unknown result type (might be due to invalid IL or missing references) //IL_20b7: Unknown result type (might be due to invalid IL or missing references) //IL_20bc: Unknown result type (might be due to invalid IL or missing references) //IL_20c6: Unknown result type (might be due to invalid IL or missing references) //IL_20dc: Unknown result type (might be due to invalid IL or missing references) //IL_20ee: Unknown result type (might be due to invalid IL or missing references) //IL_20f7: Unknown result type (might be due to invalid IL or missing references) //IL_212a: Unknown result type (might be due to invalid IL or missing references) //IL_212f: Unknown result type (might be due to invalid IL or missing references) //IL_2145: Unknown result type (might be due to invalid IL or missing references) //IL_214a: Unknown result type (might be due to invalid IL or missing references) //IL_2160: Unknown result type (might be due to invalid IL or missing references) //IL_2165: Unknown result type (might be due to invalid IL or missing references) //IL_216d: Unknown result type (might be due to invalid IL or missing references) //IL_2172: Unknown result type (might be due to invalid IL or missing references) //IL_2173: Unknown result type (might be due to invalid IL or missing references) //IL_217d: Unknown result type (might be due to invalid IL or missing references) //IL_217e: Unknown result type (might be due to invalid IL or missing references) //IL_2183: Unknown result type (might be due to invalid IL or missing references) //IL_218d: Unknown result type (might be due to invalid IL or missing references) //IL_21a3: Unknown result type (might be due to invalid IL or missing references) //IL_21b5: Unknown result type (might be due to invalid IL or missing references) //IL_21be: Unknown result type (might be due to invalid IL or missing references) //IL_21f1: Unknown result type (might be due to invalid IL or missing references) //IL_21f6: Unknown result type (might be due to invalid IL or missing references) //IL_220c: Unknown result type (might be due to invalid IL or missing references) //IL_2211: Unknown result type (might be due to invalid IL or missing references) //IL_2227: Unknown result type (might be due to invalid IL or missing references) //IL_222c: Unknown result type (might be due to invalid IL or missing references) //IL_2234: Unknown result type (might be due to invalid IL or missing references) //IL_2239: Unknown result type (might be due to invalid IL or missing references) //IL_223a: Unknown result type (might be due to invalid IL or missing references) //IL_2244: Unknown result type (might be due to invalid IL or missing references) //IL_2245: Unknown result type (might be due to invalid IL or missing references) //IL_224a: Unknown result type (might be due to invalid IL or missing references) //IL_2254: Unknown result type (might be due to invalid IL or missing references) //IL_226a: Unknown result type (might be due to invalid IL or missing references) //IL_227c: Unknown result type (might be due to invalid IL or missing references) //IL_2285: Unknown result type (might be due to invalid IL or missing references) //IL_22b8: Unknown result type (might be due to invalid IL or missing references) //IL_22bd: Unknown result type (might be due to invalid IL or missing references) //IL_22d3: Unknown result type (might be due to invalid IL or missing references) //IL_22d8: Unknown result type (might be due to invalid IL or missing references) //IL_22ee: Unknown result type (might be due to invalid IL or missing references) //IL_22f3: Unknown result type (might be due to invalid IL or missing references) //IL_22fb: Unknown result type (might be due to invalid IL or missing references) //IL_2300: Unknown result type (might be due to invalid IL or missing references) //IL_2301: Unknown result type (might be due to invalid IL or missing references) //IL_230b: Unknown result type (might be due to invalid IL or missing references) //IL_230c: Unknown result type (might be due to invalid IL or missing references) //IL_2311: Unknown result type (might be due to invalid IL or missing references) //IL_231b: Unknown result type (might be due to invalid IL or missing references) //IL_2331: Unknown result type (might be due to invalid IL or missing references) //IL_2343: Unknown result type (might be due to invalid IL or missing references) //IL_234c: Unknown result type (might be due to invalid IL or missing references) //IL_237f: Unknown result type (might be due to invalid IL or missing references) //IL_2384: Unknown result type (might be due to invalid IL or missing references) //IL_239a: Unknown result type (might be due to invalid IL or missing references) //IL_239f: Unknown result type (might be due to invalid IL or missing references) //IL_23b5: Unknown result type (might be due to invalid IL or missing references) //IL_23ba: Unknown result type (might be due to invalid IL or missing references) //IL_23c2: Unknown result type (might be due to invalid IL or missing references) //IL_23c7: Unknown result type (might be due to invalid IL or missing references) //IL_23c8: Unknown result type (might be due to invalid IL or missing references) //IL_23d2: Unknown result type (might be due to invalid IL or missing references) //IL_23d3: Unknown result type (might be due to invalid IL or missing references) //IL_23d8: Unknown result type (might be due to invalid IL or missing references) //IL_23e2: Unknown result type (might be due to invalid IL or missing references) //IL_23f8: Unknown result type (might be due to invalid IL or missing references) //IL_240a: Unknown result type (might be due to invalid IL or missing references) //IL_2413: Unknown result type (might be due to invalid IL or missing references) //IL_2446: Unknown result type (might be due to invalid IL or missing references) //IL_244b: Unknown result type (might be due to invalid IL or missing references) //IL_2461: Unknown result type (might be due to invalid IL or missing references) //IL_2466: Unknown result type (might be due to invalid IL or missing references) //IL_247c: Unknown result type (might be due to invalid IL or missing references) //IL_2481: Unknown result type (might be due to invalid IL or missing references) //IL_2489: Unknown result type (might be due to invalid IL or missing references) //IL_248e: Unknown result type (might be due to invalid IL or missing references) //IL_248f: Unknown result type (might be due to invalid IL or missing references) //IL_2499: Unknown result type (might be due to invalid IL or missing references) //IL_249a: Unknown result type (might be due to invalid IL or missing references) //IL_249f: Unknown result type (might be due to invalid IL or missing references) //IL_24a9: Unknown result type (might be due to invalid IL or missing references) //IL_24bf: Unknown result type (might be due to invalid IL or missing references) //IL_24d1: Unknown result type (might be due to invalid IL or missing references) //IL_24da: Unknown result type (might be due to invalid IL or missing references) //IL_250d: Unknown result type (might be due to invalid IL or missing references) //IL_2512: Unknown result type (might be due to invalid IL or missing references) //IL_2528: Unknown result type (might be due to invalid IL or missing references) //IL_252d: Unknown result type (might be due to invalid IL or missing references) //IL_2543: Unknown result type (might be due to invalid IL or missing references) //IL_2548: Unknown result type (might be due to invalid IL or missing references) //IL_2550: Unknown result type (might be due to invalid IL or missing references) //IL_2555: Unknown result type (might be due to invalid IL or missing references) //IL_2556: Unknown result type (might be due to invalid IL or missing references) //IL_2560: Unknown result type (might be due to invalid IL or missing references) //IL_2561: Unknown result type (might be due to invalid IL or missing references) //IL_2566: Unknown result type (might be due to invalid IL or missing references) //IL_2570: Unknown result type (might be due to invalid IL or missing references) //IL_2586: Unknown result type (might be due to invalid IL or missing references) //IL_2598: Unknown result type (might be due to invalid IL or missing references) //IL_25a1: Unknown result type (might be due to invalid IL or missing references) //IL_25d4: Unknown result type (might be due to invalid IL or missing references) //IL_25d9: Unknown result type (might be due to invalid IL or missing references) //IL_25ef: Unknown result type (might be due to invalid IL or missing references) //IL_25f4: Unknown result type (might be due to invalid IL or missing references) //IL_260a: Unknown result type (might be due to invalid IL or missing references) //IL_260f: Unknown result type (might be due to invalid IL or missing references) //IL_2617: Unknown result type (might be due to invalid IL or missing references) //IL_261c: Unknown result type (might be due to invalid IL or missing references) //IL_261d: Unknown result type (might be due to invalid IL or missing references) //IL_2627: Unknown result type (might be due to invalid IL or missing references) //IL_2628: Unknown result type (might be due to invalid IL or missing references) //IL_262d: Unknown result type (might be due to invalid IL or missing references) //IL_2637: Unknown result type (might be due to invalid IL or missing references) //IL_264d: Unknown result type (might be due to invalid IL or missing references) //IL_265f: Unknown result type (might be due to invalid IL or missing references) //IL_2668: Unknown result type (might be due to invalid IL or missing references) //IL_269b: Unknown result type (might be due to invalid IL or missing references) //IL_26a0: Unknown result type (might be due to invalid IL or missing references) //IL_26b6: Unknown result type (might be due to invalid IL or missing references) //IL_26bb: Unknown result type (might be due to invalid IL or missing references) //IL_26d1: Unknown result type (might be due to invalid IL or missing references) //IL_26d6: Unknown result type (might be due to invalid IL or missing references) //IL_26de: Unknown result type (might be due to invalid IL or missing references) //IL_26e3: Unknown result type (might be due to invalid IL or missing references) //IL_26e4: Unknown result type (might be due to invalid IL or missing references) //IL_26ee: Unknown result type (might be due to invalid IL or missing references) //IL_26ef: Unknown result type (might be due to invalid IL or missing references) //IL_26f4: Unknown result type (might be due to invalid IL or missing references) //IL_26fe: Unknown result type (might be due to invalid IL or missing references) //IL_2714: Unknown result type (might be due to invalid IL or missing references) //IL_2726: Unknown result type (might be due to invalid IL or missing references) //IL_272f: Unknown result type (might be due to invalid IL or missing references) //IL_2762: Unknown result type (might be due to invalid IL or missing references) //IL_2767: Unknown result type (might be due to invalid IL or missing references) //IL_277d: Unknown result type (might be due to invalid IL or missing references) //IL_2782: Unknown result type (might be due to invalid IL or missing references) //IL_2798: Unknown result type (might be due to invalid IL or missing references) //IL_279d: Unknown result type (might be due to invalid IL or missing references) //IL_27a5: Unknown result type (might be due to invalid IL or missing references) //IL_27aa: Unknown result type (might be due to invalid IL or missing references) //IL_27ab: Unknown result type (might be due to invalid IL or missing references) //IL_27b5: Unknown result type (might be due to invalid IL or missing references) //IL_27b6: Unknown result type (might be due to invalid IL or missing references) //IL_27bb: Unknown result type (might be due to invalid IL or missing references) //IL_27c5: Unknown result type (might be due to invalid IL or missing references) //IL_27db: Unknown result type (might be due to invalid IL or missing references) //IL_27ed: Unknown result type (might be due to invalid IL or missing references) //IL_27f6: Unknown result type (might be due to invalid IL or missing references) //IL_2829: Unknown result type (might be due to invalid IL or missing references) //IL_282e: Unknown result type (might be due to invalid IL or missing references) //IL_2844: Unknown result type (might be due to invalid IL or missing references) //IL_2849: Unknown result type (might be due to invalid IL or missing references) //IL_285f: Unknown result type (might be due to invalid IL or missing references) //IL_2864: Unknown result type (might be due to invalid IL or missing references) //IL_286c: Unknown result type (might be due to invalid IL or missing references) //IL_2871: Unknown result type (might be due to invalid IL or missing references) //IL_2872: Unknown result type (might be due to invalid IL or missing references) //IL_287c: Unknown result type (might be due to invalid IL or missing references) //IL_287d: Unknown result type (might be due to invalid IL or missing references) //IL_2882: Unknown result type (might be due to invalid IL or missing references) //IL_288c: Unknown result type (might be due to invalid IL or missing references) //IL_28a2: Unknown result type (might be due to invalid IL or missing references) //IL_28b4: Unknown result type (might be due to invalid IL or missing references) //IL_28bd: Unknown result type (might be due to invalid IL or missing references) //IL_28f0: Unknown result type (might be due to invalid IL or missing references) //IL_28f5: Unknown result type (might be due to invalid IL or missing references) //IL_290b: Unknown result type (might be due to invalid IL or missing references) //IL_2910: Unknown result type (might be due to invalid IL or missing references) //IL_2926: Unknown result type (might be due to invalid IL or missing references) //IL_292b: Unknown result type (might be due to invalid IL or missing references) //IL_2933: Unknown result type (might be due to invalid IL or missing references) //IL_2938: Unknown result type (might be due to invalid IL or missing references) //IL_2939: Unknown result type (might be due to invalid IL or missing references) //IL_2943: Unknown result type (might be due to invalid IL or missing references) //IL_2944: Unknown result type (might be due to invalid IL or missing references) //IL_2949: Unknown result type (might be due to invalid IL or missing references) //IL_2953: Unknown result type (might be due to invalid IL or missing references) //IL_2969: Unknown result type (might be due to invalid IL or missing references) //IL_297b: Unknown result type (might be due to invalid IL or missing references) //IL_2984: Unknown result type (might be due to invalid IL or missing references) //IL_29b7: Unknown result type (might be due to invalid IL or missing references) //IL_29bc: Unknown result type (might be due to invalid IL or missing references) //IL_29d2: Unknown result type (might be due to invalid IL or missing references) //IL_29d7: Unknown result type (might be due to invalid IL or missing references) //IL_29ed: Unknown result type (might be due to invalid IL or missing references) //IL_29f2: Unknown result type (might be due to invalid IL or missing references) //IL_29fa: Unknown result type (might be due to invalid IL or missing references) //IL_29ff: Unknown result type (might be due to invalid IL or missing references) //IL_2a00: Unknown result type (might be due to invalid IL or missing references) //IL_2a0a: Unknown result type (might be due to invalid IL or missing references) //IL_2a0b: Unknown result type (might be due to invalid IL or missing references) //IL_2a10: Unknown result type (might be due to invalid IL or missing references) //IL_2a1a: Unknown result type (might be due to invalid IL or missing references) //IL_2a30: Unknown result type (might be due to invalid IL or missing references) //IL_2a42: Unknown result type (might be due to invalid IL or missing references) //IL_2a4b: Unknown result type (might be due to invalid IL or missing references) //IL_2a7e: Unknown result type (might be due to invalid IL or missing references) //IL_2a83: Unknown result type (might be due to invalid IL or missing references) //IL_2a99: Unknown result type (might be due to invalid IL or missing references) //IL_2a9e: Unknown result type (might be due to invalid IL or missing references) //IL_2ab4: Unknown result type (might be due to invalid IL or missing references) //IL_2ab9: Unknown result type (might be due to invalid IL or missing references) //IL_2ac1: Unknown result type (might be due to invalid IL or missing references) //IL_2ac6: Unknown result type (might be due to invalid IL or missing references) //IL_2ac7: Unknown result type (might be due to invalid IL or missing references) //IL_2ad1: Unknown result type (might be due to invalid IL or missing references) //IL_2ad2: Unknown result type (might be due to invalid IL or missing references) //IL_2ad7: Unknown result type (might be due to invalid IL or missing references) //IL_2ae1: Unknown result type (might be due to invalid IL or missing references) //IL_2af7: Unknown result type (might be due to invalid IL or missing references) //IL_2b09: Unknown result type (might be due to invalid IL or missing references) //IL_2b12: Unknown result type (might be due to invalid IL or missing references) //IL_2b45: Unknown result type (might be due to invalid IL or missing references) //IL_2b4a: Unknown result type (might be due to invalid IL or missing references) //IL_2b60: Unknown result type (might be due to invalid IL or missing references) //IL_2b65: Unknown result type (might be due to invalid IL or missing references) //IL_2b7b: Unknown result type (might be due to invalid IL or missing references) //IL_2b80: Unknown result type (might be due to invalid IL or missing references) //IL_2b88: Unknown result type (might be due to invalid IL or missing references) //IL_2b8d: Unknown result type (might be due to invalid IL or missing references) //IL_2b8e: Unknown result type (might be due to invalid IL or missing references) //IL_2b98: Unknown result type (might be due to invalid IL or missing references) //IL_2b99: Unknown result type (might be due to invalid IL or missing references) //IL_2b9e: Unknown result type (might be due to invalid IL or missing references) //IL_2ba8: Unknown result type (might be due to invalid IL or missing references) //IL_2bbe: Unknown result type (might be due to invalid IL or missing references) //IL_2bd0: Unknown result type (might be due to invalid IL or missing references) //IL_2bd9: Unknown result type (might be due to invalid IL or missing references) //IL_2c0c: Unknown result type (might be due to invalid IL or missing references) //IL_2c11: Unknown result type (might be due to invalid IL or missing references) //IL_2c27: Unknown result type (might be due to invalid IL or missing references) //IL_2c2c: Unknown result type (might be due to invalid IL or missing references) //IL_2c42: Unknown result type (might be due to invalid IL or missing references) //IL_2c47: Unknown result type (might be due to invalid IL or missing references) //IL_2c4f: Unknown result type (might be due to invalid IL or missing references) //IL_2c54: Unknown result type (might be due to invalid IL or missing references) //IL_2c55: Unknown result type (might be due to invalid IL or missing references) //IL_2c5f: Unknown result type (might be due to invalid IL or missing references) //IL_2c60: Unknown result type (might be due to invalid IL or missing references) //IL_2c65: Unknown result type (might be due to invalid IL or missing references) //IL_2c6f: Unknown result type (might be due to invalid IL or missing references) //IL_2c85: Unknown result type (might be due to invalid IL or missing references) //IL_2c97: Unknown result type (might be due to invalid IL or missing references) //IL_2ca0: Unknown result type (might be due to invalid IL or missing references) //IL_2cd3: Unknown result type (might be due to invalid IL or missing references) //IL_2cd8: Unknown result type (might be due to invalid IL or missing references) //IL_2cee: Unknown result type (might be due to invalid IL or missing references) //IL_2cf3: Unknown result type (might be due to invalid IL or missing references) //IL_2d09: Unknown result type (might be due to invalid IL or missing references) //IL_2d0e: Unknown result type (might be due to invalid IL or missing references) //IL_2d16: Unknown result type (might be due to invalid IL or missing references) //IL_2d1b: Unknown result type (might be due to invalid IL or missing references) //IL_2d1c: Unknown result type (might be due to invalid IL or missing references) //IL_2d26: Unknown result type (might be due to invalid IL or missing references) //IL_2d27: Unknown result type (might be due to invalid IL or missing references) //IL_2d2c: Unknown result type (might be due to invalid IL or missing references) //IL_2d36: Unknown result type (might be due to invalid IL or missing references) //IL_2d4c: Unknown result type (might be due to invalid IL or missing references) //IL_2d5e: Unknown result type (might be due to invalid IL or missing references) //IL_2d67: Unknown result type (might be due to invalid IL or missing references) //IL_2d9a: Unknown result type (might be due to invalid IL or missing references) //IL_2d9f: Unknown result type (might be due to invalid IL or missing references) //IL_2db5: Unknown result type (might be due to invalid IL or missing references) //IL_2dba: Unknown result type (might be due to invalid IL or missing references) //IL_2dd0: Unknown result type (might be due to invalid IL or missing references) //IL_2dd5: Unknown result type (might be due to invalid IL or missing references) //IL_2ddd: Unknown result type (might be due to invalid IL or missing references) //IL_2de2: Unknown result type (might be due to invalid IL or missing references) //IL_2de3: Unknown result type (might be due to invalid IL or missing references) //IL_2dec: Unknown result type (might be due to invalid IL or missing references) //IL_2df5: Unknown result type (might be due to invalid IL or missing references) //IL_2e28: Unknown result type (might be due to invalid IL or missing references) //IL_2e2d: Unknown result type (might be due to invalid IL or missing references) //IL_2e43: Unknown result type (might be due to invalid IL or missing references) //IL_2e48: Unknown result type (might be due to invalid IL or missing references) //IL_2e5e: Unknown result type (might be due to invalid IL or missing references) //IL_2e63: Unknown result type (might be due to invalid IL or missing references) //IL_2e6b: Unknown result type (might be due to invalid IL or missing references) //IL_2e70: Unknown result type (might be due to invalid IL or missing references) //IL_2e71: Unknown result type (might be due to invalid IL or missing references) //IL_2e7b: Unknown result type (might be due to invalid IL or missing references) //IL_2e7c: Unknown result type (might be due to invalid IL or missing references) //IL_2e81: Unknown result type (might be due to invalid IL or missing references) //IL_2e8b: Unknown result type (might be due to invalid IL or missing references) //IL_2ea1: Unknown result type (might be due to invalid IL or missing references) //IL_2eb3: Unknown result type (might be due to invalid IL or missing references) //IL_2ebc: Unknown result type (might be due to invalid IL or missing references) //IL_2eef: Unknown result type (might be due to invalid IL or missing references) //IL_2ef4: Unknown result type (might be due to invalid IL or missing references) //IL_2f0a: Unknown result type (might be due to invalid IL or missing references) //IL_2f0f: Unknown result type (might be due to invalid IL or missing references) //IL_2f25: Unknown result type (might be due to invalid IL or missing references) //IL_2f2a: Unknown result type (might be due to invalid IL or missing references) //IL_2f32: Unknown result type (might be due to invalid IL or missing references) //IL_2f37: Unknown result type (might be due to invalid IL or missing references) //IL_2f38: Unknown result type (might be due to invalid IL or missing references) //IL_2f42: Unknown result type (might be due to invalid IL or missing references) //IL_2f43: Unknown result type (might be due to invalid IL or missing references) //IL_2f48: Unknown result type (might be due to invalid IL or missing references) //IL_2f52: Unknown result type (might be due to invalid IL or missing references) //IL_2f68: Unknown result type (might be due to invalid IL or missing references) //IL_2f7a: Unknown result type (might be due to invalid IL or missing references) //IL_2f83: Unknown result type (might be due to invalid IL or missing references) //IL_2fb6: Unknown result type (might be due to invalid IL or missing references) //IL_2fbb: Unknown result type (might be due to invalid IL or missing references) //IL_2fd1: Unknown result type (might be due to invalid IL or missing references) //IL_2fd6: Unknown result type (might be due to invalid IL or missing references) //IL_2fec: Unknown result type (might be due to invalid IL or missing references) //IL_2ff1: Unknown result type (might be due to invalid IL or missing references) //IL_2ff9: Unknown result type (might be due to invalid IL or missing references) //IL_2ffe: Unknown result type (might be due to invalid IL or missing references) //IL_2fff: Unknown result type (might be due to invalid IL or missing references) //IL_3009: Unknown result type (might be due to invalid IL or missing references) //IL_300a: Unknown result type (might be due to invalid IL or missing references) //IL_300f: Unknown result type (might be due to invalid IL or missing references) //IL_3019: Unknown result type (might be due to invalid IL or missing references) //IL_302f: Unknown result type (might be due to invalid IL or missing references) //IL_3041: Unknown result type (might be due to invalid IL or missing references) //IL_304a: Unknown result type (might be due to invalid IL or missing references) //IL_307d: Unknown result type (might be due to invalid IL or missing references) //IL_3082: Unknown result type (might be due to invalid IL or missing references) //IL_3098: Unknown result type (might be due to invalid IL or missing references) //IL_309d: Unknown result type (might be due to invalid IL or missing references) //IL_30b3: Unknown result type (might be due to invalid IL or missing references) //IL_30b8: Unknown result type (might be due to invalid IL or missing references) //IL_30c0: Unknown result type (might be due to invalid IL or missing references) //IL_30c5: Unknown result type (might be due to invalid IL or missing references) //IL_30c6: Unknown result type (might be due to invalid IL or missing references) //IL_30d0: Unknown result type (might be due to invalid IL or missing references) //IL_30d1: Unknown result type (might be due to invalid IL or missing references) //IL_30d6: Unknown result type (might be due to invalid IL or missing references) //IL_30e0: Unknown result type (might be due to invalid IL or missing references) //IL_30f6: Unknown result type (might be due to invalid IL or missing references) //IL_3108: Unknown result type (might be due to invalid IL or missing references) //IL_3111: Unknown result type (might be due to invalid IL or missing references) //IL_3144: Unknown result type (might be due to invalid IL or missing references) //IL_3149: Unknown result type (might be due to invalid IL or missing references) //IL_315f: Unknown result type (might be due to invalid IL or missing references) //IL_3164: Unknown result type (might be due to invalid IL or missing references) //IL_317a: Unknown result type (might be due to invalid IL or missing references) //IL_317f: Unknown result type (might be due to invalid IL or missing references) //IL_3187: Unknown result type (might be due to invalid IL or missing references) //IL_318c: Unknown result type (might be due to invalid IL or missing references) //IL_318d: Unknown result type (might be due to invalid IL or missing references) //IL_3197: Unknown result type (might be due to invalid IL or missing references) //IL_3198: Unknown result type (might be due to invalid IL or missing references) //IL_319d: Unknown result type (might be due to invalid IL or missing references) //IL_31a7: Unknown result type (might be due to invalid IL or missing references) //IL_31bd: Unknown result type (might be due to invalid IL or missing references) //IL_31cf: Unknown result type (might be due to invalid IL or missing references) //IL_31d8: Unknown result type (might be due to invalid IL or missing references) //IL_320b: Unknown result type (might be due to invalid IL or missing references) //IL_3210: Unknown result type (might be due to invalid IL or missing references) //IL_3226: Unknown result type (might be due to invalid IL or missing references) //IL_322b: Unknown result type (might be due to invalid IL or missing references) //IL_3241: Unknown result type (might be due to invalid IL or missing references) //IL_3246: Unknown result type (might be due to invalid IL or missing references) //IL_324e: Unknown result type (might be due to invalid IL or missing references) //IL_3253: Unknown result type (might be due to invalid IL or missing references) //IL_3254: Unknown result type (might be due to invalid IL or missing references) //IL_325e: Unknown result type (might be due to invalid IL or missing references) //IL_325f: Unknown result type (might be due to invalid IL or missing references) //IL_3264: Unknown result type (might be due to invalid IL or missing references) //IL_326e: Unknown result type (might be due to invalid IL or missing references) //IL_3284: Unknown result type (might be due to invalid IL or missing references) //IL_3296: Unknown result type (might be due to invalid IL or missing references) //IL_329f: Unknown result type (might be due to invalid IL or missing references) //IL_32d2: Unknown result type (might be due to invalid IL or missing references) //IL_32d7: Unknown result type (might be due to invalid IL or missing references) //IL_32ed: Unknown result type (might be due to invalid IL or missing references) //IL_32f2: Unknown result type (might be due to invalid IL or missing references) //IL_3308: Unknown result type (might be due to invalid IL or missing references) //IL_330d: Unknown result type (might be due to invalid IL or missing references) //IL_3315: Unknown result type (might be due to invalid IL or missing references) //IL_331a: Unknown result type (might be due to invalid IL or missing references) //IL_331b: Unknown result type (might be due to invalid IL or missing references) //IL_3325: Unknown result type (might be due to invalid IL or missing references) //IL_3326: Unknown result type (might be due to invalid IL or missing references) //IL_332b: Unknown result type (might be due to invalid IL or missing references) //IL_3335: Unknown result type (might be due to invalid IL or missing references) //IL_334b: Unknown result type (might be due to invalid IL or missing references) //IL_335d: Unknown result type (might be due to invalid IL or missing references) //IL_3366: Unknown result type (might be due to invalid IL or missing references) //IL_3399: Unknown result type (might be due to invalid IL or missing references) //IL_339e: Unknown result type (might be due to invalid IL or missing references) //IL_33b4: Unknown result type (might be due to invalid IL or missing references) //IL_33b9: Unknown result type (might be due to invalid IL or missing references) //IL_33cf: Unknown result type (might be due to invalid IL or missing references) //IL_33d4: Unknown result type (might be due to invalid IL or missing references) //IL_33dc: Unknown result type (might be due to invalid IL or missing references) //IL_33e1: Unknown result type (might be due to invalid IL or missing references) //IL_33e2: Unknown result type (might be due to invalid IL or missing references) //IL_33ec: Unknown result type (might be due to invalid IL or missing references) //IL_33ed: Unknown result type (might be due to invalid IL or missing references) //IL_33f2: Unknown result type (might be due to invalid IL or missing references) //IL_33fc: Unknown result type (might be due to invalid IL or missing references) //IL_3412: Unknown result type (might be due to invalid IL or missing references) //IL_3424: Unknown result type (might be due to invalid IL or missing references) //IL_342d: Unknown result type (might be due to invalid IL or missing references) //IL_3460: Unknown result type (might be due to invalid IL or missing references) //IL_3465: Unknown result type (might be due to invalid IL or missing references) //IL_347b: Unknown result type (might be due to invalid IL or missing references) //IL_3480: Unknown result type (might be due to invalid IL or missing references) //IL_3496: Unknown result type (might be due to invalid IL or missing references) //IL_349b: Unknown result type (might be due to invalid IL or missing references) //IL_34a3: Unknown result type (might be due to invalid IL or missing references) //IL_34a8: Unknown result type (might be due to invalid IL or missing references) //IL_34a9: Unknown result type (might be due to invalid IL or missing references) //IL_34b3: Unknown result type (might be due to invalid IL or missing references) //IL_34b4: Unknown result type (might be due to invalid IL or missing references) //IL_34b9: Unknown result type (might be due to invalid IL or missing references) //IL_34c3: Unknown result type (might be due to invalid IL or missing references) //IL_34d9: Unknown result type (might be due to invalid IL or missing references) //IL_34eb: Unknown result type (might be due to invalid IL or missing references) //IL_34f4: Unknown result type (might be due to invalid IL or missing references) //IL_3527: Unknown result type (might be due to invalid IL or missing references) //IL_352c: Unknown result type (might be due to invalid IL or missing references) //IL_3542: Unknown result type (might be due to invalid IL or missing references) //IL_3547: Unknown result type (might be due to invalid IL or missing references) //IL_355d: Unknown result type (might be due to invalid IL or missing references) //IL_3562: Unknown result type (might be due to invalid IL or missing references) //IL_356a: Unknown result type (might be due to invalid IL or missing references) //IL_356f: Unknown result type (might be due to invalid IL or missing references) //IL_3570: Unknown result type (might be due to invalid IL or missing references) //IL_357a: Unknown result type (might be due to invalid IL or missing references) //IL_357b: Unknown result type (might be due to invalid IL or missing references) //IL_3580: Unknown result type (might be due to invalid IL or missing references) //IL_358a: Unknown result type (might be due to invalid IL or missing references) //IL_35a0: Unknown result type (might be due to invalid IL or missing references) //IL_35b2: Unknown result type (might be due to invalid IL or missing references) //IL_35bb: Unknown result type (might be due to invalid IL or missing references) //IL_35ee: Unknown result type (might be due to invalid IL or missing references) //IL_35f3: Unknown result type (might be due to invalid IL or missing references) //IL_3609: Unknown result type (might be due to invalid IL or missing references) //IL_360e: Unknown result type (might be due to invalid IL or missing references) //IL_3624: Unknown result type (might be due to invalid IL or missing references) //IL_3629: Unknown result type (might be due to invalid IL or missing references) //IL_3631: Unknown result type (might be due to invalid IL or missing references) //IL_3636: Unknown result type (might be due to invalid IL or missing references) //IL_3637: Unknown result type (might be due to invalid IL or missing references) //IL_3641: Unknown result type (might be due to invalid IL or missing references) //IL_3642: Unknown result type (might be due to invalid IL or missing references) //IL_3647: Unknown result type (might be due to invalid IL or missing references) //IL_3651: Unknown result type (might be due to invalid IL or missing references) //IL_3667: Unknown result type (might be due to invalid IL or missing references) //IL_3679: Unknown result type (might be due to invalid IL or missing references) //IL_3682: Unknown result type (might be due to invalid IL or missing references) //IL_36b5: Unknown result type (might be due to invalid IL or missing references) //IL_36ba: Unknown result type (might be due to invalid IL or missing references) //IL_36d0: Unknown result type (might be due to invalid IL or missing references) //IL_36d5: Unknown result type (might be due to invalid IL or missing references) //IL_36eb: Unknown result type (might be due to invalid IL or missing references) //IL_36f0: Unknown result type (might be due to invalid IL or missing references) //IL_36f8: Unknown result type (might be due to invalid IL or missing references) //IL_36fd: Unknown result type (might be due to invalid IL or missing references) //IL_36fe: Unknown result type (might be due to invalid IL or missing references) //IL_3708: Unknown result type (might be due to invalid IL or missing references) //IL_3709: Unknown result type (might be due to invalid IL or missing references) //IL_370e: Unknown result type (might be due to invalid IL or missing references) //IL_3718: Unknown result type (might be due to invalid IL or missing references) //IL_372e: Unknown result type (might be due to invalid IL or missing references) //IL_3740: Unknown result type (might be due to invalid IL or missing references) //IL_3749: Unknown result type (might be due to invalid IL or missing references) //IL_377c: Unknown result type (might be due to invalid IL or missing references) //IL_3781: Unknown result type (might be due to invalid IL or missing references) //IL_3797: Unknown result type (might be due to invalid IL or missing references) //IL_379c: Unknown result type (might be due to invalid IL or missing references) //IL_37b2: Unknown result type (might be due to invalid IL or missing references) //IL_37b7: Unknown result type (might be due to invalid IL or missing references) //IL_37bf: Unknown result type (might be due to invalid IL or missing references) //IL_37c4: Unknown result type (might be due to invalid IL or missing references) //IL_37c5: Unknown result type (might be due to invalid IL or missing references) //IL_37cf: Unknown result type (might be due to invalid IL or missing references) //IL_37d0: Unknown result type (might be due to invalid IL or missing references) //IL_37d5: Unknown result type (might be due to invalid IL or missing references) //IL_37df: Unknown result type (might be due to invalid IL or missing references) //IL_37f5: Unknown result type (might be due to invalid IL or missing references) //IL_3807: Unknown result type (might be due to invalid IL or missing references) //IL_3810: Unknown result type (might be due to invalid IL or missing references) //IL_3843: Unknown result type (might be due to invalid IL or missing references) //IL_3848: Unknown result type (might be due to invalid IL or missing references) //IL_385e: Unknown result type (might be due to invalid IL or missing references) //IL_3863: Unknown result type (might be due to invalid IL or missing references) //IL_3879: Unknown result type (might be due to invalid IL or missing references) //IL_387e: Unknown result type (might be due to invalid IL or missing references) //IL_3886: Unknown result type (might be due to invalid IL or missing references) //IL_388b: Unknown result type (might be due to invalid IL or missing references) //IL_388c: Unknown result type (might be due to invalid IL or missing references) //IL_3896: Unknown result type (might be due to invalid IL or missing references) //IL_3897: Unknown result type (might be due to invalid IL or missing references) //IL_389c: Unknown result type (might be due to invalid IL or missing references) //IL_38a6: Unknown result type (might be due to invalid IL or missing references) //IL_38bc: Unknown result type (might be due to invalid IL or missing references) //IL_38ce: Unknown result type (might be due to invalid IL or missing references) //IL_38d7: Unknown result type (might be due to invalid IL or missing references) //IL_390a: Unknown result type (might be due to invalid IL or missing references) //IL_390f: Unknown result type (might be due to invalid IL or missing references) //IL_3925: Unknown result type (might be due to invalid IL or missing references) //IL_392a: Unknown result type (might be due to invalid IL or missing references) //IL_3940: Unknown result type (might be due to invalid IL or missing references) //IL_3945: Unknown result type (might be due to invalid IL or missing references) //IL_394d: Unknown result type (might be due to invalid IL or missing references) //IL_3952: Unknown result type (might be due to invalid IL or missing references) //IL_3953: Unknown result type (might be due to invalid IL or missing references) //IL_395d: Unknown result type (might be due to invalid IL or missing references) //IL_395e: Unknown result type (might be due to invalid IL or missing references) //IL_3963: Unknown result type (might be due to invalid IL or missing references) //IL_396d: Unknown result type (might be due to invalid IL or missing references) //IL_3983: Unknown result type (might be due to invalid IL or missing references) //IL_3995: Unknown result type (might be due to invalid IL or missing references) //IL_399e: Unknown result type (might be due to invalid IL or missing references) //IL_39d1: Unknown result type (might be due to invalid IL or missing references) //IL_39d6: Unknown result type (might be due to invalid IL or missing references) //IL_39ec: Unknown result type (might be due to invalid IL or missing references) //IL_39f1: Unknown result type (might be due to invalid IL or missing references) //IL_3a07: Unknown result type (might be due to invalid IL or missing references) //IL_3a0c: Unknown result type (might be due to invalid IL or missing references) //IL_3a14: Unknown result type (might be due to invalid IL or missing references) //IL_3a19: Unknown result type (might be due to invalid IL or missing references) //IL_3a1a: Unknown result type (might be due to invalid IL or missing references) //IL_3a24: Unknown result type (might be due to invalid IL or missing references) //IL_3a25: Unknown result type (might be due to invalid IL or missing references) //IL_3a2a: Unknown result type (might be due to invalid IL or missing references) //IL_3a34: Unknown result type (might be due to invalid IL or missing references) //IL_3a4a: Unknown result type (might be due to invalid IL or missing references) //IL_3a5c: Unknown result type (might be due to invalid IL or missing references) //IL_3a65: Unknown result type (might be due to invalid IL or missing references) //IL_3a98: Unknown result type (might be due to invalid IL or missing references) //IL_3a9d: Unknown result type (might be due to invalid IL or missing references) //IL_3ab3: Unknown result type (might be due to invalid IL or missing references) //IL_3ab8: Unknown result type (might be due to invalid IL or missing references) //IL_3ace: Unknown result type (might be due to invalid IL or missing references) //IL_3ad3: Unknown result type (might be due to invalid IL or missing references) //IL_3adb: Unknown result type (might be due to invalid IL or missing references) //IL_3ae0: Unknown result type (might be due to invalid IL or missing references) //IL_3ae1: Unknown result type (might be due to invalid IL or missing references) //IL_3aeb: Unknown result type (might be due to invalid IL or missing references) //IL_3aec: Unknown result type (might be due to invalid IL or missing references) //IL_3af1: Unknown result type (might be due to invalid IL or missing references) //IL_3afb: Unknown result type (might be due to invalid IL or missing references) //IL_3b11: Unknown result type (might be due to invalid IL or missing references) //IL_3b23: Unknown result type (might be due to invalid IL or missing references) //IL_3b2c: Unknown result type (might be due to invalid IL or missing references) //IL_3b5f: Unknown result type (might be due to invalid IL or missing references) //IL_3b64: Unknown result type (might be due to invalid IL or missing references) //IL_3b7a: Unknown result type (might be due to invalid IL or missing references) //IL_3b7f: Unknown result type (might be due to invalid IL or missing references) //IL_3b95: Unknown result type (might be due to invalid IL or missing references) //IL_3b9a: Unknown result type (might be due to invalid IL or missing references) //IL_3ba2: Unknown result type (might be due to invalid IL or missing references) //IL_3ba7: Unknown result type (might be due to invalid IL or missing references) //IL_3ba8: Unknown result type (might be due to invalid IL or missing references) //IL_3bb2: Unknown result type (might be due to invalid IL or missing references) //IL_3bb3: Unknown result type (might be due to invalid IL or missing references) //IL_3bb8: Unknown result type (might be due to invalid IL or missing references) //IL_3bc2: Unknown result type (might be due to invalid IL or missing references) //IL_3bd8: Unknown result type (might be due to invalid IL or missing references) //IL_3bea: Unknown result type (might be due to invalid IL or missing references) //IL_3bf3: Unknown result type (might be due to invalid IL or missing references) //IL_3c26: Unknown result type (might be due to invalid IL or missing references) //IL_3c2b: Unknown result type (might be due to invalid IL or missing references) //IL_3c41: Unknown result type (might be due to invalid IL or missing references) //IL_3c46: Unknown result type (might be due to invalid IL or missing references) //IL_3c5c: Unknown result type (might be due to invalid IL or missing references) //IL_3c61: Unknown result type (might be due to invalid IL or missing references) //IL_3c69: Unknown result type (might be due to invalid IL or missing references) //IL_3c6e: Unknown result type (might be due to invalid IL or missing references) //IL_3c6f: Unknown result type (might be due to invalid IL or missing references) //IL_3c79: Unknown result type (might be due to invalid IL or missing references) //IL_3c7a: Unknown result type (might be due to invalid IL or missing references) //IL_3c7f: Unknown result type (might be due to invalid IL or missing references) //IL_3c89: Unknown result type (might be due to invalid IL or missing references) //IL_3c9f: Unknown result type (might be due to invalid IL or missing references) //IL_3cb1: Unknown result type (might be due to invalid IL or missing references) //IL_3cba: Unknown result type (might be due to invalid IL or missing references) //IL_3ced: Unknown result type (might be due to invalid IL or missing references) //IL_3cf2: Unknown result type (might be due to invalid IL or missing references) //IL_3d08: Unknown result type (might be due to invalid IL or missing references) //IL_3d0d: Unknown result type (might be due to invalid IL or missing references) //IL_3d23: Unknown result type (might be due to invalid IL or missing references) //IL_3d28: Unknown result type (might be due to invalid IL or missing references) //IL_3d30: Unknown result type (might be due to invalid IL or missing references) //IL_3d35: Unknown result type (might be due to invalid IL or missing references) //IL_3d36: Unknown result type (might be due to invalid IL or missing references) //IL_3d40: Unknown result type (might be due to invalid IL or missing references) //IL_3d41: Unknown result type (might be due to invalid IL or missing references) //IL_3d46: Unknown result type (might be due to invalid IL or missing references) //IL_3d50: Unknown result type (might be due to invalid IL or missing references) //IL_3d66: Unknown result type (might be due to invalid IL or missing references) //IL_3d78: Unknown result type (might be due to invalid IL or missing references) //IL_3d81: Unknown result type (might be due to invalid IL or missing references) //IL_3db4: Unknown result type (might be due to invalid IL or missing references) //IL_3db9: Unknown result type (might be due to invalid IL or missing references) //IL_3dcf: Unknown result type (might be due to invalid IL or missing references) //IL_3dd4: Unknown result type (might be due to invalid IL or missing references) //IL_3dea: Unknown result type (might be due to invalid IL or missing references) //IL_3def: Unknown result type (might be due to invalid IL or missing references) //IL_3df7: Unknown result type (might be due to invalid IL or missing references) //IL_3dfc: Unknown result type (might be due to invalid IL or missing references) //IL_3dfd: Unknown result type (might be due to invalid IL or missing references) //IL_3e06: Unknown result type (might be due to invalid IL or missing references) //IL_3e0f: Unknown result type (might be due to invalid IL or missing references) //IL_3e42: Unknown result type (might be due to invalid IL or missing references) //IL_3e47: Unknown result type (might be due to invalid IL or missing references) //IL_3e5d: Unknown result type (might be due to invalid IL or missing references) //IL_3e62: Unknown result type (might be due to invalid IL or missing references) //IL_3e78: Unknown result type (might be due to invalid IL or missing references) //IL_3e7d: Unknown result type (might be due to invalid IL or missing references) //IL_3e85: Unknown result type (might be due to invalid IL or missing references) //IL_3e8a: Unknown result type (might be due to invalid IL or missing references) //IL_3e8b: Unknown result type (might be due to invalid IL or missing references) //IL_3e95: Unknown result type (might be due to invalid IL or missing references) //IL_3e96: Unknown result type (might be due to invalid IL or missing references) //IL_3e9b: Unknown result type (might be due to invalid IL or missing references) //IL_3ea5: Unknown result type (might be due to invalid IL or missing references) //IL_3ebb: Unknown result type (might be due to invalid IL or missing references) //IL_3ecd: Unknown result type (might be due to invalid IL or missing references) //IL_3ed6: Unknown result type (might be due to invalid IL or missing references) //IL_3f09: Unknown result type (might be due to invalid IL or missing references) //IL_3f0e: Unknown result type (might be due to invalid IL or missing references) //IL_3f24: Unknown result type (might be due to invalid IL or missing references) //IL_3f29: Unknown result type (might be due to invalid IL or missing references) //IL_3f3f: Unknown result type (might be due to invalid IL or missing references) //IL_3f44: Unknown result type (might be due to invalid IL or missing references) //IL_3f4c: Unknown result type (might be due to invalid IL or missing references) //IL_3f51: Unknown result type (might be due to invalid IL or missing references) //IL_3f52: Unknown result type (might be due to invalid IL or missing references) //IL_3f5c: Unknown result type (might be due to invalid IL or missing references) //IL_3f5d: Unknown result type (might be due to invalid IL or missing references) //IL_3f62: Unknown result type (might be due to invalid IL or missing references) //IL_3f6c: Unknown result type (might be due to invalid IL or missing references) //IL_3f82: Unknown result type (might be due to invalid IL or missing references) //IL_3f94: Unknown result type (might be due to invalid IL or missing references) //IL_3f9d: Unknown result type (might be due to invalid IL or missing references) //IL_3fd0: Unknown result type (might be due to invalid IL or missing references) //IL_3fd5: Unknown result type (might be due to invalid IL or missing references) //IL_3feb: Unknown result type (might be due to invalid IL or missing references) //IL_3ff0: Unknown result type (might be due to invalid IL or missing references) //IL_4006: Unknown result type (might be due to invalid IL or missing references) //IL_400b: Unknown result type (might be due to invalid IL or missing references) //IL_4013: Unknown result type (might be due to invalid IL or missing references) //IL_4018: Unknown result type (might be due to invalid IL or missing references) //IL_4019: Unknown result type (might be due to invalid IL or missing references) //IL_4023: Unknown result type (might be due to invalid IL or missing references) //IL_4024: Unknown result type (might be due to invalid IL or missing references) //IL_4029: Unknown result type (might be due to invalid IL or missing references) //IL_4033: Unknown result type (might be due to invalid IL or missing references) //IL_4049: Unknown result type (might be due to invalid IL or missing references) //IL_405b: Unknown result type (might be due to invalid IL or missing references) //IL_4064: Unknown result type (might be due to invalid IL or missing references) //IL_4097: Unknown result type (might be due to invalid IL or missing references) //IL_409c: Unknown result type (might be due to invalid IL or missing references) //IL_40b2: Unknown result type (might be due to invalid IL or missing references) //IL_40b7: Unknown result type (might be due to invalid IL or missing references) //IL_40cd: Unknown result type (might be due to invalid IL or missing references) //IL_40d2: Unknown result type (might be due to invalid IL or missing references) //IL_40da: Unknown result type (might be due to invalid IL or missing references) //IL_40df: Unknown result type (might be due to invalid IL or missing references) //IL_40e0: Unknown result type (might be due to invalid IL or missing references) //IL_40ea: Unknown result type (might be due to invalid IL or missing references) //IL_40eb: Unknown result type (might be due to invalid IL or missing references) //IL_40f0: Unknown result type (might be due to invalid IL or missing references) //IL_40fa: Unknown result type (might be due to invalid IL or missing references) //IL_4110: Unknown result type (might be due to invalid IL or missing references) //IL_4122: Unknown result type (might be due to invalid IL or missing references) //IL_412b: Unknown result type (might be due to invalid IL or missing references) //IL_415e: Unknown result type (might be due to invalid IL or missing references) //IL_4163: Unknown result type (might be due to invalid IL or missing references) //IL_4179: Unknown result type (might be due to invalid IL or missing references) //IL_417e: Unknown result type (might be due to invalid IL or missing references) //IL_4194: Unknown result type (might be due to invalid IL or missing references) //IL_4199: Unknown result type (might be due to invalid IL or missing references) //IL_41a1: Unknown result type (might be due to invalid IL or missing references) //IL_41a6: Unknown result type (might be due to invalid IL or missing references) //IL_41a7: Unknown result type (might be due to invalid IL or missing references) //IL_41b1: Unknown result type (might be due to invalid IL or missing references) //IL_41b2: Unknown result type (might be due to invalid IL or missing references) //IL_41b7: Unknown result type (might be due to invalid IL or missing references) //IL_41c1: Unknown result type (might be due to invalid IL or missing references) //IL_41d7: Unknown result type (might be due to invalid IL or missing references) //IL_41e9: Unknown result type (might be due to invalid IL or missing references) //IL_41f2: Unknown result type (might be due to invalid IL or missing references) //IL_4225: Unknown result type (might be due to invalid IL or missing references) //IL_422a: Unknown result type (might be due to invalid IL or missing references) //IL_4240: Unknown result type (might be due to invalid IL or missing references) //IL_4245: Unknown result type (might be due to invalid IL or missing references) //IL_425b: Unknown result type (might be due to invalid IL or missing references) //IL_4260: Unknown result type (might be due to invalid IL or missing references) //IL_4268: Unknown result type (might be due to invalid IL or missing references) //IL_426d: Unknown result type (might be due to invalid IL or missing references) //IL_426e: Unknown result type (might be due to invalid IL or missing references) //IL_4278: Unknown result type (might be due to invalid IL or missing references) //IL_4279: Unknown result type (might be due to invalid IL or missing references) //IL_427e: Unknown result type (might be due to invalid IL or missing references) //IL_4288: Unknown result type (might be due to invalid IL or missing references) //IL_429e: Unknown result type (might be due to invalid IL or missing references) //IL_42b0: Unknown result type (might be due to invalid IL or missing references) //IL_42b9: Unknown result type (might be due to invalid IL or missing references) //IL_42ec: Unknown result type (might be due to invalid IL or missing references) //IL_42f1: Unknown result type (might be due to invalid IL or missing references) //IL_4307: Unknown result type (might be due to invalid IL or missing references) //IL_430c: Unknown result type (might be due to invalid IL or missing references) //IL_4322: Unknown result type (might be due to invalid IL or missing references) //IL_4327: Unknown result type (might be due to invalid IL or missing references) //IL_432f: Unknown result type (might be due to invalid IL or missing references) //IL_4334: Unknown result type (might be due to invalid IL or missing references) //IL_4335: Unknown result type (might be due to invalid IL or missing references) //IL_433f: Unknown result type (might be due to invalid IL or missing references) //IL_4340: Unknown result type (might be due to invalid IL or missing references) //IL_4345: Unknown result type (might be due to invalid IL or missing references) //IL_434f: Unknown result type (might be due to invalid IL or missing references) //IL_4365: Unknown result type (might be due to invalid IL or missing references) //IL_4377: Unknown result type (might be due to invalid IL or missing references) //IL_4380: Unknown result type (might be due to invalid IL or missing references) //IL_43b3: Unknown result type (might be due to invalid IL or missing references) //IL_43b8: Unknown result type (might be due to invalid IL or missing references) //IL_43ce: Unknown result type (might be due to invalid IL or missing references) //IL_43d3: Unknown result type (might be due to invalid IL or missing references) //IL_43e9: Unknown result type (might be due to invalid IL or missing references) //IL_43ee: Unknown result type (might be due to invalid IL or missing references) //IL_43f6: Unknown result type (might be due to invalid IL or missing references) //IL_43fb: Unknown result type (might be due to invalid IL or missing references) //IL_43fc: Unknown result type (might be due to invalid IL or missing references) //IL_4406: Unknown result type (might be due to invalid IL or missing references) //IL_4407: Unknown result type (might be due to invalid IL or missing references) //IL_440c: Unknown result type (might be due to invalid IL or missing references) //IL_4416: Unknown result type (might be due to invalid IL or missing references) //IL_442c: Unknown result type (might be due to invalid IL or missing references) //IL_443e: Unknown result type (might be due to invalid IL or missing references) //IL_4447: Unknown result type (might be due to invalid IL or missing references) //IL_447a: Unknown result type (might be due to invalid IL or missing references) //IL_447f: Unknown result type (might be due to invalid IL or missing references) //IL_4495: Unknown result type (might be due to invalid IL or missing references) //IL_449a: Unknown result type (might be due to invalid IL or missing references) //IL_44b0: Unknown result type (might be due to invalid IL or missing references) //IL_44b5: Unknown result type (might be due to invalid IL or missing references) //IL_44bd: Unknown result type (might be due to invalid IL or missing references) //IL_44c2: Unknown result type (might be due to invalid IL or missing references) //IL_44c3: Unknown result type (might be due to invalid IL or missing references) //IL_44cd: Unknown result type (might be due to invalid IL or missing references) //IL_44ce: Unknown result type (might be due to invalid IL or missing references) //IL_44d3: Unknown result type (might be due to invalid IL or missing references) //IL_44dd: Unknown result type (might be due to invalid IL or missing references) //IL_44f3: Unknown result type (might be due to invalid IL or missing references) //IL_4505: Unknown result type (might be due to invalid IL or missing references) //IL_450e: Unknown result type (might be due to invalid IL or missing references) //IL_4541: Unknown result type (might be due to invalid IL or missing references) //IL_4546: Unknown result type (might be due to invalid IL or missing references) //IL_455c: Unknown result type (might be due to invalid IL or missing references) //IL_4561: Unknown result type (might be due to invalid IL or missing references) //IL_4577: Unknown result type (might be due to invalid IL or missing references) //IL_457c: Unknown result type (might be due to invalid IL or missing references) //IL_4584: Unknown result type (might be due to invalid IL or missing references) //IL_4589: Unknown result type (might be due to invalid IL or missing references) //IL_458a: Unknown result type (might be due to invalid IL or missing references) //IL_4594: Unknown result type (might be due to invalid IL or missing references) //IL_4595: Unknown result type (might be due to invalid IL or missing references) //IL_459a: Unknown result type (might be due to invalid IL or missing references) //IL_45a4: Unknown result type (might be due to invalid IL or missing references) //IL_45ba: Unknown result type (might be due to invalid IL or missing references) //IL_45cc: Unknown result type (might be due to invalid IL or missing references) //IL_45d5: Unknown result type (might be due to invalid IL or missing references) //IL_4608: Unknown result type (might be due to invalid IL or missing references) //IL_460d: Unknown result type (might be due to invalid IL or missing references) //IL_4623: Unknown result type (might be due to invalid IL or missing references) //IL_4628: Unknown result type (might be due to invalid IL or missing references) //IL_463e: Unknown result type (might be due to invalid IL or missing references) //IL_4643: Unknown result type (might be due to invalid IL or missing references) //IL_464b: Unknown result type (might be due to invalid IL or missing references) //IL_4650: Unknown result type (might be due to invalid IL or missing references) //IL_4651: Unknown result type (might be due to invalid IL or missing references) //IL_465b: Unknown result type (might be due to invalid IL or missing references) //IL_465c: Unknown result type (might be due to invalid IL or missing references) //IL_4661: Unknown result type (might be due to invalid IL or missing references) //IL_466b: Unknown result type (might be due to invalid IL or missing references) //IL_4681: Unknown result type (might be due to invalid IL or missing references) //IL_4693: Unknown result type (might be due to invalid IL or missing references) //IL_469c: Unknown result type (might be due to invalid IL or missing references) //IL_46cf: Unknown result type (might be due to invalid IL or missing references) //IL_46d4: Unknown result type (might be due to invalid IL or missing references) //IL_46ea: Unknown result type (might be due to invalid IL or missing references) //IL_46ef: Unknown result type (might be due to invalid IL or missing references) //IL_4705: Unknown result type (might be due to invalid IL or missing references) //IL_470a: Unknown result type (might be due to invalid IL or missing references) //IL_4712: Unknown result type (might be due to invalid IL or missing references) //IL_4717: Unknown result type (might be due to invalid IL or missing references) //IL_4718: Unknown result type (might be due to invalid IL or missing references) //IL_4722: Unknown result type (might be due to invalid IL or missing references) //IL_4723: Unknown result type (might be due to invalid IL or missing references) //IL_4728: Unknown result type (might be due to invalid IL or missing references) //IL_4732: Unknown result type (might be due to invalid IL or missing references) //IL_4748: Unknown result type (might be due to invalid IL or missing references) //IL_475a: Unknown result type (might be due to invalid IL or missing references) //IL_4763: Unknown result type (might be due to invalid IL or missing references) //IL_4796: Unknown result type (might be due to invalid IL or missing references) //IL_479b: Unknown result type (might be due to invalid IL or missing references) //IL_47b1: Unknown result type (might be due to invalid IL or missing references) //IL_47b6: Unknown result type (might be due to invalid IL or missing references) //IL_47cc: Unknown result type (might be due to invalid IL or missing references) //IL_47d1: Unknown result type (might be due to invalid IL or missing references) //IL_47d9: Unknown result type (might be due to invalid IL or missing references) //IL_47de: Unknown result type (might be due to invalid IL or missing references) //IL_47df: Unknown result type (might be due to invalid IL or missing references) //IL_47e9: Unknown result type (might be due to invalid IL or missing references) //IL_47ea: Unknown result type (might be due to invalid IL or missing references) //IL_47ef: Unknown result type (might be due to invalid IL or missing references) //IL_47f9: Unknown result type (might be due to invalid IL or missing references) //IL_480f: Unknown result type (might be due to invalid IL or missing references) //IL_4821: Unknown result type (might be due to invalid IL or missing references) //IL_482a: Unknown result type (might be due to invalid IL or missing references) //IL_485d: Unknown result type (might be due to invalid IL or missing references) //IL_4862: Unknown result type (might be due to invalid IL or missing references) //IL_4878: Unknown result type (might be due to invalid IL or missing references) //IL_487d: Unknown result type (might be due to invalid IL or missing references) //IL_4893: Unknown result type (might be due to invalid IL or missing references) //IL_4898: Unknown result type (might be due to invalid IL or missing references) //IL_48a0: Unknown result type (might be due to invalid IL or missing references) //IL_48a5: Unknown result type (might be due to invalid IL or missing references) //IL_48a6: Unknown result type (might be due to invalid IL or missing references) //IL_48b0: Unknown result type (might be due to invalid IL or missing references) //IL_48b1: Unknown result type (might be due to invalid IL or missing references) //IL_48b6: Unknown result type (might be due to invalid IL or missing references) //IL_48c0: Unknown result type (might be due to invalid IL or missing references) //IL_48d6: Unknown result type (might be due to invalid IL or missing references) //IL_48e8: Unknown result type (might be due to invalid IL or missing references) //IL_48f1: Unknown result type (might be due to invalid IL or missing references) //IL_4924: Unknown result type (might be due to invalid IL or missing references) //IL_4929: Unknown result type (might be due to invalid IL or missing references) //IL_493f: Unknown result type (might be due to invalid IL or missing references) //IL_4944: Unknown result type (might be due to invalid IL or missing references) //IL_495a: Unknown result type (might be due to invalid IL or missing references) //IL_495f: Unknown result type (might be due to invalid IL or missing references) //IL_4967: Unknown result type (might be due to invalid IL or missing references) //IL_496c: Unknown result type (might be due to invalid IL or missing references) //IL_496d: Unknown result type (might be due to invalid IL or missing references) //IL_4977: Unknown result type (might be due to invalid IL or missing references) //IL_4978: Unknown result type (might be due to invalid IL or missing references) //IL_497d: Unknown result type (might be due to invalid IL or missing references) //IL_4987: Unknown result type (might be due to invalid IL or missing references) //IL_499d: Unknown result type (might be due to invalid IL or missing references) //IL_49af: Unknown result type (might be due to invalid IL or missing references) //IL_49b8: Unknown result type (might be due to invalid IL or missing references) //IL_49eb: Unknown result type (might be due to invalid IL or missing references) //IL_49f0: Unknown result type (might be due to invalid IL or missing references) //IL_4a06: Unknown result type (might be due to invalid IL or missing references) //IL_4a0b: Unknown result type (might be due to invalid IL or missing references) //IL_4a21: Unknown result type (might be due to invalid IL or missing references) //IL_4a26: Unknown result type (might be due to invalid IL or missing references) //IL_4a2e: Unknown result type (might be due to invalid IL or missing references) //IL_4a33: Unknown result type (might be due to invalid IL or missing references) //IL_4a34: Unknown result type (might be due to invalid IL or missing references) //IL_4a3e: Unknown result type (might be due to invalid IL or missing references) //IL_4a3f: Unknown result type (might be due to invalid IL or missing references) //IL_4a44: Unknown result type (might be due to invalid IL or missing references) //IL_4a4e: Unknown result type (might be due to invalid IL or missing references) //IL_4a64: Unknown result type (might be due to invalid IL or missing references) //IL_4a76: Unknown result type (might be due to invalid IL or missing references) //IL_4a7f: Unknown result type (might be due to invalid IL or missing references) //IL_4ab2: Unknown result type (might be due to invalid IL or missing references) //IL_4ab7: Unknown result type (might be due to invalid IL or missing references) //IL_4acd: Unknown result type (might be due to invalid IL or missing references) //IL_4ad2: Unknown result type (might be due to invalid IL or missing references) //IL_4ae8: Unknown result type (might be due to invalid IL or missing references) //IL_4aed: Unknown result type (might be due to invalid IL or missing references) //IL_4af5: Unknown result type (might be due to invalid IL or missing references) //IL_4afa: Unknown result type (might be due to invalid IL or missing references) //IL_4afb: Unknown result type (might be due to invalid IL or missing references) //IL_4b05: Unknown result type (might be due to invalid IL or missing references) //IL_4b06: Unknown result type (might be due to invalid IL or missing references) //IL_4b0b: Unknown result type (might be due to invalid IL or missing references) //IL_4b15: Unknown result type (might be due to invalid IL or missing references) //IL_4b2b: Unknown result type (might be due to invalid IL or missing references) //IL_4b3d: Unknown result type (might be due to invalid IL or missing references) //IL_4b46: Unknown result type (might be due to invalid IL or missing references) //IL_4b79: Unknown result type (might be due to invalid IL or missing references) //IL_4b7e: Unknown result type (might be due to invalid IL or missing references) //IL_4b94: Unknown result type (might be due to invalid IL or missing references) //IL_4b99: Unknown result type (might be due to invalid IL or missing references) //IL_4baf: Unknown result type (might be due to invalid IL or missing references) //IL_4bb4: Unknown result type (might be due to invalid IL or missing references) //IL_4bbc: Unknown result type (might be due to invalid IL or missing references) //IL_4bc1: Unknown result type (might be due to invalid IL or missing references) //IL_4bc2: Unknown result type (might be due to invalid IL or missing references) //IL_4bcc: Unknown result type (might be due to invalid IL or missing references) //IL_4bcd: Unknown result type (might be due to invalid IL or missing references) //IL_4bd2: Unknown result type (might be due to invalid IL or missing references) //IL_4bdc: Unknown result type (might be due to invalid IL or missing references) //IL_4bf2: Unknown result type (might be due to invalid IL or missing references) //IL_4c04: Unknown result type (might be due to invalid IL or missing references) //IL_4c0d: Unknown result type (might be due to invalid IL or missing references) //IL_4c40: Unknown result type (might be due to invalid IL or missing references) //IL_4c45: Unknown result type (might be due to invalid IL or missing references) //IL_4c5b: Unknown result type (might be due to invalid IL or missing references) //IL_4c60: Unknown result type (might be due to invalid IL or missing references) //IL_4c76: Unknown result type (might be due to invalid IL or missing references) //IL_4c7b: Unknown result type (might be due to invalid IL or missing references) //IL_4c83: Unknown result type (might be due to invalid IL or missing references) //IL_4c88: Unknown result type (might be due to invalid IL or missing references) //IL_4c89: Unknown result type (might be due to invalid IL or missing references) //IL_4c93: Unknown result type (might be due to invalid IL or missing references) //IL_4c94: Unknown result type (might be due to invalid IL or missing references) //IL_4c99: Unknown result type (might be due to invalid IL or missing references) //IL_4ca3: Unknown result type (might be due to invalid IL or missing references) //IL_4cb9: Unknown result type (might be due to invalid IL or missing references) //IL_4ccb: Unknown result type (might be due to invalid IL or missing references) //IL_4cd4: Unknown result type (might be due to invalid IL or missing references) //IL_4d07: Unknown result type (might be due to invalid IL or missing references) //IL_4d0c: Unknown result type (might be due to invalid IL or missing references) //IL_4d22: Unknown result type (might be due to invalid IL or missing references) //IL_4d27: Unknown result type (might be due to invalid IL or missing references) //IL_4d3d: Unknown result type (might be due to invalid IL or missing references) //IL_4d42: Unknown result type (might be due to invalid IL or missing references) //IL_4d4a: Unknown result type (might be due to invalid IL or missing references) //IL_4d4f: Unknown result type (might be due to invalid IL or missing references) //IL_4d50: Unknown result type (might be due to invalid IL or missing references) //IL_4d5a: Unknown result type (might be due to invalid IL or missing references) //IL_4d5b: Unknown result type (might be due to invalid IL or missing references) //IL_4d60: Unknown result type (might be due to invalid IL or missing references) //IL_4d6a: Unknown result type (might be due to invalid IL or missing references) //IL_4d80: Unknown result type (might be due to invalid IL or missing references) //IL_4d92: Unknown result type (might be due to invalid IL or missing references) //IL_4d9b: Unknown result type (might be due to invalid IL or missing references) //IL_4dce: Unknown result type (might be due to invalid IL or missing references) //IL_4dd3: Unknown result type (might be due to invalid IL or missing references) //IL_4de9: Unknown result type (might be due to invalid IL or missing references) //IL_4dee: Unknown result type (might be due to invalid IL or missing references) //IL_4e04: Unknown result type (might be due to invalid IL or missing references) //IL_4e09: Unknown result type (might be due to invalid IL or missing references) //IL_4e11: Unknown result type (might be due to invalid IL or missing references) //IL_4e16: Unknown result type (might be due to invalid IL or missing references) //IL_4e17: Unknown result type (might be due to invalid IL or missing references) //IL_4e21: Unknown result type (might be due to invalid IL or missing references) //IL_4e22: Unknown result type (might be due to invalid IL or missing references) //IL_4e27: Unknown result type (might be due to invalid IL or missing references) //IL_4e31: Unknown result type (might be due to invalid IL or missing references) //IL_4e47: Unknown result type (might be due to invalid IL or missing references) //IL_4e59: Unknown result type (might be due to invalid IL or missing references) //IL_4e62: Unknown result type (might be due to invalid IL or missing references) //IL_4e95: Unknown result type (might be due to invalid IL or missing references) //IL_4e9a: Unknown result type (might be due to invalid IL or missing references) //IL_4eb0: Unknown result type (might be due to invalid IL or missing references) //IL_4eb5: Unknown result type (might be due to invalid IL or missing references) //IL_4ecb: Unknown result type (might be due to invalid IL or missing references) //IL_4ed0: Unknown result type (might be due to invalid IL or missing references) //IL_4ed8: Unknown result type (might be due to invalid IL or missing references) //IL_4edd: Unknown result type (might be due to invalid IL or missing references) //IL_4ede: Unknown result type (might be due to invalid IL or missing references) //IL_4ee7: Unknown result type (might be due to invalid IL or missing references) //IL_4ef0: Unknown result type (might be due to invalid IL or missing references) //IL_4f23: Unknown result type (might be due to invalid IL or missing references) //IL_4f28: Unknown result type (might be due to invalid IL or missing references) //IL_4f3e: Unknown result type (might be due to invalid IL or missing references) //IL_4f43: Unknown result type (might be due to invalid IL or missing references) //IL_4f59: Unknown result type (might be due to invalid IL or missing references) //IL_4f5e: Unknown result type (might be due to invalid IL or missing references) //IL_4f66: Unknown result type (might be due to invalid IL or missing references) //IL_4f6b: Unknown result type (might be due to invalid IL or missing references) //IL_4f6c: Unknown result type (might be due to invalid IL or missing references) //IL_4f76: Unknown result type (might be due to invalid IL or missing references) //IL_4f77: Unknown result type (might be due to invalid IL or missing references) //IL_4f7c: Unknown result type (might be due to invalid IL or missing references) //IL_4f86: Unknown result type (might be due to invalid IL or missing references) //IL_4f9c: Unknown result type (might be due to invalid IL or missing references) //IL_4fae: Unknown result type (might be due to invalid IL or missing references) //IL_4fb7: Unknown result type (might be due to invalid IL or missing references) //IL_4fea: Unknown result type (might be due to invalid IL or missing references) //IL_4fef: Unknown result type (might be due to invalid IL or missing references) //IL_5005: Unknown result type (might be due to invalid IL or missing references) //IL_500a: Unknown result type (might be due to invalid IL or missing references) //IL_5020: Unknown result type (might be due to invalid IL or missing references) //IL_5025: Unknown result type (might be due to invalid IL or missing references) //IL_502d: Unknown result type (might be due to invalid IL or missing references) //IL_5032: Unknown result type (might be due to invalid IL or missing references) //IL_5033: Unknown result type (might be due to invalid IL or missing references) //IL_503c: Unknown result type (might be due to invalid IL or missing references) //IL_5045: Unknown result type (might be due to invalid IL or missing references) //IL_5078: Unknown result type (might be due to invalid IL or missing references) //IL_507d: Unknown result type (might be due to invalid IL or missing references) //IL_5093: Unknown result type (might be due to invalid IL or missing references) //IL_5098: Unknown result type (might be due to invalid IL or missing references) //IL_50ae: Unknown result type (might be due to invalid IL or missing references) //IL_50b3: Unknown result type (might be due to invalid IL or missing references) //IL_50bb: Unknown result type (might be due to invalid IL or missing references) //IL_50c0: Unknown result type (might be due to invalid IL or missing references) //IL_50c1: Unknown result type (might be due to invalid IL or missing references) //IL_50cb: Unknown result type (might be due to invalid IL or missing references) //IL_50cc: Unknown result type (might be due to invalid IL or missing references) //IL_50d1: Unknown result type (might be due to invalid IL or missing references) //IL_50db: Unknown result type (might be due to invalid IL or missing references) //IL_50f1: Unknown result type (might be due to invalid IL or missing references) //IL_5103: Unknown result type (might be due to invalid IL or missing references) //IL_510c: Unknown result type (might be due to invalid IL or missing references) //IL_513f: Unknown result type (might be due to invalid IL or missing references) //IL_5144: Unknown result type (might be due to invalid IL or missing references) //IL_515a: Unknown result type (might be due to invalid IL or missing references) //IL_515f: Unknown result type (might be due to invalid IL or missing references) //IL_5175: Unknown result type (might be due to invalid IL or missing references) //IL_517a: Unknown result type (might be due to invalid IL or missing references) //IL_5182: Unknown result type (might be due to invalid IL or missing references) //IL_5187: Unknown result type (might be due to invalid IL or missing references) //IL_5188: Unknown result type (might be due to invalid IL or missing references) //IL_5192: Unknown result type (might be due to invalid IL or missing references) //IL_5193: Unknown result type (might be due to invalid IL or missing references) //IL_5198: Unknown result type (might be due to invalid IL or missing references) //IL_51a2: Unknown result type (might be due to invalid IL or missing references) //IL_51b8: Unknown result type (might be due to invalid IL or missing references) //IL_51ca: Unknown result type (might be due to invalid IL or missing references) //IL_51d3: Unknown result type (might be due to invalid IL or missing references) //IL_5206: Unknown result type (might be due to invalid IL or missing references) //IL_520b: Unknown result type (might be due to invalid IL or missing references) //IL_5221: Unknown result type (might be due to invalid IL or missing references) //IL_5226: Unknown result type (might be due to invalid IL or missing references) //IL_523c: Unknown result type (might be due to invalid IL or missing references) //IL_5241: Unknown result type (might be due to invalid IL or missing references) //IL_5249: Unknown result type (might be due to invalid IL or missing references) //IL_524e: Unknown result type (might be due to invalid IL or missing references) //IL_524f: Unknown result type (might be due to invalid IL or missing references) //IL_5259: Unknown result type (might be due to invalid IL or missing references) //IL_525a: Unknown result type (might be due to invalid IL or missing references) //IL_525f: Unknown result type (might be due to invalid IL or missing references) //IL_5269: Unknown result type (might be due to invalid IL or missing references) //IL_527f: Unknown result type (might be due to invalid IL or missing references) //IL_5291: Unknown result type (might be due to invalid IL or missing references) //IL_529a: Unknown result type (might be due to invalid IL or missing references) //IL_52cd: Unknown result type (might be due to invalid IL or missing references) //IL_52d2: Unknown result type (might be due to invalid IL or missing references) //IL_52e8: Unknown result type (might be due to invalid IL or missing references) //IL_52ed: Unknown result type (might be due to invalid IL or missing references) //IL_5303: Unknown result type (might be due to invalid IL or missing references) //IL_5308: Unknown result type (might be due to invalid IL or missing references) //IL_5310: Unknown result type (might be due to invalid IL or missing references) //IL_5315: Unknown result type (might be due to invalid IL or missing references) //IL_5316: Unknown result type (might be due to invalid IL or missing references) //IL_5320: Unknown result type (might be due to invalid IL or missing references) //IL_5321: Unknown result type (might be due to invalid IL or missing references) //IL_5326: Unknown result type (might be due to invalid IL or missing references) //IL_5330: Unknown result type (might be due to invalid IL or missing references) //IL_5346: Unknown result type (might be due to invalid IL or missing references) //IL_5358: Unknown result type (might be due to invalid IL or missing references) //IL_5361: Unknown result type (might be due to invalid IL or missing references) //IL_5394: Unknown result type (might be due to invalid IL or missing references) //IL_5399: Unknown result type (might be due to invalid IL or missing references) //IL_53af: Unknown result type (might be due to invalid IL or missing references) //IL_53b4: Unknown result type (might be due to invalid IL or missing references) //IL_53ca: Unknown result type (might be due to invalid IL or missing references) //IL_53cf: Unknown result type (might be due to invalid IL or missing references) //IL_53d7: Unknown result type (might be due to invalid IL or missing references) //IL_53dc: Unknown result type (might be due to invalid IL or missing references) //IL_53dd: Unknown result type (might be due to invalid IL or missing references) //IL_53e7: Unknown result type (might be due to invalid IL or missing references) //IL_53e8: Unknown result type (might be due to invalid IL or missing references) //IL_53ed: Unknown result type (might be due to invalid IL or missing references) //IL_53f7: Unknown result type (might be due to invalid IL or missing references) //IL_540d: Unknown result type (might be due to invalid IL or missing references) //IL_541f: Unknown result type (might be due to invalid IL or missing references) //IL_5428: Unknown result type (might be due to invalid IL or missing references) //IL_545b: Unknown result type (might be due to invalid IL or missing references) //IL_5460: Unknown result type (might be due to invalid IL or missing references) //IL_5476: Unknown result type (might be due to invalid IL or missing references) //IL_547b: Unknown result type (might be due to invalid IL or missing references) //IL_5491: Unknown result type (might be due to invalid IL or missing references) //IL_5496: Unknown result type (might be due to invalid IL or missing references) //IL_549e: Unknown result type (might be due to invalid IL or missing references) //IL_54a3: Unknown result type (might be due to invalid IL or missing references) //IL_54a4: Unknown result type (might be due to invalid IL or missing references) //IL_54ae: Unknown result type (might be due to invalid IL or missing references) //IL_54af: Unknown result type (might be due to invalid IL or missing references) //IL_54b4: Unknown result type (might be due to invalid IL or missing references) //IL_54be: Unknown result type (might be due to invalid IL or missing references) //IL_54d4: Unknown result type (might be due to invalid IL or missing references) //IL_54e6: Unknown result type (might be due to invalid IL or missing references) //IL_54ef: Unknown result type (might be due to invalid IL or missing references) //IL_5522: Unknown result type (might be due to invalid IL or missing references) //IL_5527: Unknown result type (might be due to invalid IL or missing references) //IL_553d: Unknown result type (might be due to invalid IL or missing references) //IL_5542: Unknown result type (might be due to invalid IL or missing references) //IL_5558: Unknown result type (might be due to invalid IL or missing references) //IL_555d: Unknown result type (might be due to invalid IL or missing references) //IL_5565: Unknown result type (might be due to invalid IL or missing references) //IL_556a: Unknown result type (might be due to invalid IL or missing references) //IL_556b: Unknown result type (might be due to invalid IL or missing references) //IL_5575: Unknown result type (might be due to invalid IL or missing references) //IL_5576: Unknown result type (might be due to invalid IL or missing references) //IL_557b: Unknown result type (might be due to invalid IL or missing references) //IL_5585: Unknown result type (might be due to invalid IL or missing references) //IL_559b: Unknown result type (might be due to invalid IL or missing references) //IL_55ad: Unknown result type (might be due to invalid IL or missing references) //IL_55b6: Unknown result type (might be due to invalid IL or missing references) //IL_55e9: Unknown result type (might be due to invalid IL or missing references) //IL_55ee: Unknown result type (might be due to invalid IL or missing references) //IL_5604: Unknown result type (might be due to invalid IL or missing references) //IL_5609: Unknown result type (might be due to invalid IL or missing references) //IL_561f: Unknown result type (might be due to invalid IL or missing references) //IL_5624: Unknown result type (might be due to invalid IL or missing references) //IL_562c: Unknown result type (might be due to invalid IL or missing references) //IL_5631: Unknown result type (might be due to invalid IL or missing references) //IL_5632: Unknown result type (might be due to invalid IL or missing references) //IL_563c: Unknown result type (might be due to invalid IL or missing references) //IL_563d: Unknown result type (might be due to invalid IL or missing references) //IL_5642: Unknown result type (might be due to invalid IL or missing references) //IL_564c: Unknown result type (might be due to invalid IL or missing references) //IL_5662: Unknown result type (might be due to invalid IL or missing references) //IL_5674: Unknown result type (might be due to invalid IL or missing references) //IL_567d: Unknown result type (might be due to invalid IL or missing references) //IL_56b0: Unknown result type (might be due to invalid IL or missing references) //IL_56b5: Unknown result type (might be due to invalid IL or missing references) //IL_56cb: Unknown result type (might be due to invalid IL or missing references) //IL_56d0: Unknown result type (might be due to invalid IL or missing references) //IL_56e6: Unknown result type (might be due to invalid IL or missing references) //IL_56eb: Unknown result type (might be due to invalid IL or missing references) //IL_56f3: Unknown result type (might be due to invalid IL or missing references) //IL_56f8: Unknown result type (might be due to invalid IL or missing references) //IL_56f9: Unknown result type (might be due to invalid IL or missing references) //IL_5703: Unknown result type (might be due to invalid IL or missing references) //IL_5704: Unknown result type (might be due to invalid IL or missing references) //IL_5709: Unknown result type (might be due to invalid IL or missing references) //IL_5713: Unknown result type (might be due to invalid IL or missing references) //IL_5729: Unknown result type (might be due to invalid IL or missing references) //IL_573b: Unknown result type (might be due to invalid IL or missing references) //IL_5744: Unknown result type (might be due to invalid IL or missing references) //IL_5777: Unknown result type (might be due to invalid IL or missing references) //IL_577c: Unknown result type (might be due to invalid IL or missing references) //IL_5792: Unknown result type (might be due to invalid IL or missing references) //IL_5797: Unknown result type (might be due to invalid IL or missing references) //IL_57ad: Unknown result type (might be due to invalid IL or missing references) //IL_57b2: Unknown result type (might be due to invalid IL or missing references) //IL_57ba: Unknown result type (might be due to invalid IL or missing references) //IL_57bf: Unknown result type (might be due to invalid IL or missing references) //IL_57c0: Unknown result type (might be due to invalid IL or missing references) //IL_57ca: Unknown result type (might be due to invalid IL or missing references) //IL_57cb: Unknown result type (might be due to invalid IL or missing references) //IL_57d0: Unknown result type (might be due to invalid IL or missing references) //IL_57da: Unknown result type (might be due to invalid IL or missing references) //IL_57f0: Unknown result type (might be due to invalid IL or missing references) //IL_5802: Unknown result type (might be due to invalid IL or missing references) //IL_580b: Unknown result type (might be due to invalid IL or missing references) //IL_583e: Unknown result type (might be due to invalid IL or missing references) //IL_5843: Unknown result type (might be due to invalid IL or missing references) //IL_5859: Unknown result type (might be due to invalid IL or missing references) //IL_585e: Unknown result type (might be due to invalid IL or missing references) //IL_5874: Unknown result type (might be due to invalid IL or missing references) //IL_5879: Unknown result type (might be due to invalid IL or missing references) //IL_5881: Unknown result type (might be due to invalid IL or missing references) //IL_5886: Unknown result type (might be due to invalid IL or missing references) //IL_5887: Unknown result type (might be due to invalid IL or missing references) //IL_5891: Unknown result type (might be due to invalid IL or missing references) //IL_5892: Unknown result type (might be due to invalid IL or missing references) //IL_5897: Unknown result type (might be due to invalid IL or missing references) //IL_58a1: Unknown result type (might be due to invalid IL or missing references) //IL_58b7: Unknown result type (might be due to invalid IL or missing references) //IL_58c9: Unknown result type (might be due to invalid IL or missing references) //IL_58d2: Unknown result type (might be due to invalid IL or missing references) //IL_5905: Unknown result type (might be due to invalid IL or missing references) //IL_590a: Unknown result type (might be due to invalid IL or missing references) //IL_5920: Unknown result type (might be due to invalid IL or missing references) //IL_5925: Unknown result type (might be due to invalid IL or missing references) //IL_593b: Unknown result type (might be due to invalid IL or missing references) //IL_5940: Unknown result type (might be due to invalid IL or missing references) //IL_5948: Unknown result type (might be due to invalid IL or missing references) //IL_594d: Unknown result type (might be due to invalid IL or missing references) //IL_594e: Unknown result type (might be due to invalid IL or missing references) //IL_5958: Unknown result type (might be due to invalid IL or missing references) //IL_5959: Unknown result type (might be due to invalid IL or missing references) //IL_595e: Unknown result type (might be due to invalid IL or missing references) //IL_5968: Unknown result type (might be due to invalid IL or missing references) //IL_597e: Unknown result type (might be due to invalid IL or missing references) //IL_5990: Unknown result type (might be due to invalid IL or missing references) //IL_5999: Unknown result type (might be due to invalid IL or missing references) //IL_59cc: Unknown result type (might be due to invalid IL or missing references) //IL_59d1: Unknown result type (might be due to invalid IL or missing references) //IL_59e7: Unknown result type (might be due to invalid IL or missing references) //IL_59ec: Unknown result type (might be due to invalid IL or missing references) //IL_5a02: Unknown result type (might be due to invalid IL or missing references) //IL_5a07: Unknown result type (might be due to invalid IL or missing references) //IL_5a0f: Unknown result type (might be due to invalid IL or missing references) //IL_5a14: Unknown result type (might be due to invalid IL or missing references) //IL_5a15: Unknown result type (might be due to invalid IL or missing references) //IL_5a1f: Unknown result type (might be due to invalid IL or missing references) //IL_5a20: Unknown result type (might be due to invalid IL or missing references) //IL_5a25: Unknown result type (might be due to invalid IL or missing references) //IL_5a2f: Unknown result type (might be due to invalid IL or missing references) //IL_5a45: Unknown result type (might be due to invalid IL or missing references) //IL_5a57: Unknown result type (might be due to invalid IL or missing references) //IL_5a60: Unknown result type (might be due to invalid IL or missing references) //IL_5a93: Unknown result type (might be due to invalid IL or missing references) //IL_5a98: Unknown result type (might be due to invalid IL or missing references) //IL_5aae: Unknown result type (might be due to invalid IL or missing references) //IL_5ab3: Unknown result type (might be due to invalid IL or missing references) //IL_5ac9: Unknown result type (might be due to invalid IL or missing references) //IL_5ace: Unknown result type (might be due to invalid IL or missing references) //IL_5ad6: Unknown result type (might be due to invalid IL or missing references) //IL_5adb: Unknown result type (might be due to invalid IL or missing references) //IL_5adc: Unknown result type (might be due to invalid IL or missing references) //IL_5ae6: Unknown result type (might be due to invalid IL or missing references) //IL_5ae7: Unknown result type (might be due to invalid IL or missing references) //IL_5aec: Unknown result type (might be due to invalid IL or missing references) //IL_5af6: Unknown result type (might be due to invalid IL or missing references) //IL_5b0c: Unknown result type (might be due to invalid IL or missing references) //IL_5b1e: Unknown result type (might be due to invalid IL or missing references) //IL_5b27: Unknown result type (might be due to invalid IL or missing references) //IL_5b5a: Unknown result type (might be due to invalid IL or missing references) //IL_5b5f: Unknown result type (might be due to invalid IL or missing references) //IL_5b75: Unknown result type (might be due to invalid IL or missing references) //IL_5b7a: Unknown result type (might be due to invalid IL or missing references) //IL_5b90: Unknown result type (might be due to invalid IL or missing references) //IL_5b95: Unknown result type (might be due to invalid IL or missing references) //IL_5b9d: Unknown result type (might be due to invalid IL or missing references) //IL_5ba2: Unknown result type (might be due to invalid IL or missing references) //IL_5ba3: Unknown result type (might be due to invalid IL or missing references) //IL_5bad: Unknown result type (might be due to invalid IL or missing references) //IL_5bae: Unknown result type (might be due to invalid IL or missing references) //IL_5bb3: Unknown result type (might be due to invalid IL or missing references) //IL_5bbd: Unknown result type (might be due to invalid IL or missing references) //IL_5bd3: Unknown result type (might be due to invalid IL or missing references) //IL_5be5: Unknown result type (might be due to invalid IL or missing references) //IL_5bee: Unknown result type (might be due to invalid IL or missing references) //IL_5c21: Unknown result type (might be due to invalid IL or missing references) //IL_5c26: Unknown result type (might be due to invalid IL or missing references) //IL_5c3c: Unknown result type (might be due to invalid IL or missing references) //IL_5c41: Unknown result type (might be due to invalid IL or missing references) //IL_5c57: Unknown result type (might be due to invalid IL or missing references) //IL_5c5c: Unknown result type (might be due to invalid IL or missing references) //IL_5c64: Unknown result type (might be due to invalid IL or missing references) //IL_5c69: Unknown result type (might be due to invalid IL or missing references) //IL_5c6a: Unknown result type (might be due to invalid IL or missing references) //IL_5c74: Unknown result type (might be due to invalid IL or missing references) //IL_5c75: Unknown result type (might be due to invalid IL or missing references) //IL_5c7a: Unknown result type (might be due to invalid IL or missing references) //IL_5c84: Unknown result type (might be due to invalid IL or missing references) //IL_5c9a: Unknown result type (might be due to invalid IL or missing references) //IL_5cac: Unknown result type (might be due to invalid IL or missing references) //IL_5cb5: Unknown result type (might be due to invalid IL or missing references) //IL_5ce8: Unknown result type (might be due to invalid IL or missing references) //IL_5ced: Unknown result type (might be due to invalid IL or missing references) //IL_5d03: Unknown result type (might be due to invalid IL or missing references) //IL_5d08: Unknown result type (might be due to invalid IL or missing references) //IL_5d1e: Unknown result type (might be due to invalid IL or missing references) //IL_5d23: Unknown result type (might be due to invalid IL or missing references) //IL_5d2b: Unknown result type (might be due to invalid IL or missing references) //IL_5d30: Unknown result type (might be due to invalid IL or missing references) //IL_5d31: Unknown result type (might be due to invalid IL or missing references) //IL_5d3b: Unknown result type (might be due to invalid IL or missing references) //IL_5d3c: Unknown result type (might be due to invalid IL or missing references) //IL_5d41: Unknown result type (might be due to invalid IL or missing references) //IL_5d4b: Unknown result type (might be due to invalid IL or missing references) //IL_5d61: Unknown result type (might be due to invalid IL or missing references) //IL_5d73: Unknown result type (might be due to invalid IL or missing references) //IL_5d7c: Unknown result type (might be due to invalid IL or missing references) //IL_5daf: Unknown result type (might be due to invalid IL or missing references) //IL_5db4: Unknown result type (might be due to invalid IL or missing references) //IL_5dca: Unknown result type (might be due to invalid IL or missing references) //IL_5dcf: Unknown result type (might be due to invalid IL or missing references) //IL_5de5: Unknown result type (might be due to invalid IL or missing references) //IL_5dea: Unknown result type (might be due to invalid IL or missing references) //IL_5df2: Unknown result type (might be due to invalid IL or missing references) //IL_5df7: Unknown result type (might be due to invalid IL or missing references) //IL_5df8: Unknown result type (might be due to invalid IL or missing references) //IL_5e02: Unknown result type (might be due to invalid IL or missing references) //IL_5e03: Unknown result type (might be due to invalid IL or missing references) //IL_5e08: Unknown result type (might be due to invalid IL or missing references) //IL_5e12: Unknown result type (might be due to invalid IL or missing references) //IL_5e28: Unknown result type (might be due to invalid IL or missing references) //IL_5e3a: Unknown result type (might be due to invalid IL or missing references) //IL_5e43: Unknown result type (might be due to invalid IL or missing references) //IL_5e76: Unknown result type (might be due to invalid IL or missing references) //IL_5e7b: Unknown result type (might be due to invalid IL or missing references) //IL_5e91: Unknown result type (might be due to invalid IL or missing references) //IL_5e96: Unknown result type (might be due to invalid IL or missing references) //IL_5eac: Unknown result type (might be due to invalid IL or missing references) //IL_5eb1: Unknown result type (might be due to invalid IL or missing references) //IL_5eb9: Unknown result type (might be due to invalid IL or missing references) //IL_5ebe: Unknown result type (might be due to invalid IL or missing references) //IL_5ebf: Unknown result type (might be due to invalid IL or missing references) //IL_5ec9: Unknown result type (might be due to invalid IL or missing references) //IL_5eca: Unknown result type (might be due to invalid IL or missing references) //IL_5ecf: Unknown result type (might be due to invalid IL or missing references) //IL_5ed9: Unknown result type (might be due to invalid IL or missing references) //IL_5eef: Unknown result type (might be due to invalid IL or missing references) //IL_5f01: Unknown result type (might be due to invalid IL or missing references) //IL_5f0a: Unknown result type (might be due to invalid IL or missing references) //IL_5f3d: Unknown result type (might be due to invalid IL or missing references) //IL_5f42: Unknown result type (might be due to invalid IL or missing references) //IL_5f58: Unknown result type (might be due to invalid IL or missing references) //IL_5f5d: Unknown result type (might be due to invalid IL or missing references) //IL_5f73: Unknown result type (might be due to invalid IL or missing references) //IL_5f78: Unknown result type (might be due to invalid IL or missing references) //IL_5f80: Unknown result type (might be due to invalid IL or missing references) //IL_5f85: Unknown result type (might be due to invalid IL or missing references) //IL_5f86: Unknown result type (might be due to invalid IL or missing references) //IL_5f90: Unknown result type (might be due to invalid IL or missing references) //IL_5f91: Unknown result type (might be due to invalid IL or missing references) //IL_5f96: Unknown result type (might be due to invalid IL or missing references) //IL_5fa0: Unknown result type (might be due to invalid IL or missing references) //IL_5fb6: Unknown result type (might be due to invalid IL or missing references) //IL_5fc8: Unknown result type (might be due to invalid IL or missing references) //IL_5fd1: Unknown result type (might be due to invalid IL or missing references) //IL_6004: Unknown result type (might be due to invalid IL or missing references) //IL_6009: Unknown result type (might be due to invalid IL or missing references) //IL_601f: Unknown result type (might be due to invalid IL or missing references) //IL_6024: Unknown result type (might be due to invalid IL or missing references) //IL_603a: Unknown result type (might be due to invalid IL or missing references) //IL_603f: Unknown result type (might be due to invalid IL or missing references) //IL_6047: Unknown result type (might be due to invalid IL or missing references) //IL_604c: Unknown result type (might be due to invalid IL or missing references) //IL_604d: Unknown result type (might be due to invalid IL or missing references) //IL_6057: Unknown result type (might be due to invalid IL or missing references) //IL_6058: Unknown result type (might be due to invalid IL or missing references) //IL_605d: Unknown result type (might be due to invalid IL or missing references) itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Jetpack, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBugWings"), childName = "Chest", localPos = new Vector3(0.0009f, 0.2767f, -0.1f), localAngles = new Vector3(21.4993f, 358.6616f, 358.3334f), localScale = new Vector3(0.1f, 0.1f, 0.1f), 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 = ItemDisplays.LoadDisplay("DisplayGoldGat"), childName = "Chest", localPos = new Vector3(0.11976f, 0.68971f, -0.64615f), localAngles = new Vector3(353.8919f, 92.64268f, 310.5055f), localScale = new Vector3(0.15f, 0.15f, 0.15f), 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 = ItemDisplays.LoadDisplay("DisplayBFG"), childName = "Chest", localPos = new Vector3(0.09149f, 0.45843f, -0.3568f), localAngles = new Vector3(65.0858f, 318.6351f, 129.0213f), localScale = new Vector3(0.3f, 0.3f, 0.3f), 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 = ItemDisplays.LoadDisplay("DisplayGlasses"), childName = "Head", localPos = new Vector3(0.00075f, 0.08004f, 0.13148f), localAngles = new Vector3(352.8611f, 4.48447f, 178.9896f), localScale = new Vector3(0.2694f, 0.3034f, 0.3034f), 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 = ItemDisplays.LoadDisplay("DisplaySyringeCluster"), childName = "UpperLegL", localPos = new Vector3(-0.0092f, 0.33457f, -0.0527f), localAngles = new Vector3(46.18665f, 323.4165f, 69.5294f), localScale = new Vector3(0.1f, 0.1f, 0.1f), 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 = ItemDisplays.LoadDisplay("DisplayBehemoth"), childName = "Chest", localPos = new Vector3(-0.00061f, 0.34906f, -0.51324f), localAngles = new Vector3(356.8455f, 179.7156f, 0.0079f), localScale = new Vector3(0.1f, 0.1f, 0.1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Missile, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayMissileLauncher"), childName = "Chest", localPos = new Vector3(-0.25803f, 0.7259f, 0.02337f), localAngles = new Vector3(0.81394f, 355.4843f, 10.41651f), localScale = new Vector3(0.1f, 0.1f, 0.1f), 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 = ItemDisplays.LoadDisplay("DisplayDagger"), childName = "Chest", localPos = new Vector3(-0.0553f, 0.2856f, 0.0945f), localAngles = new Vector3(334.8839f, 31.5284f, 34.6784f), localScale = new Vector3(1.2428f, 1.2428f, 1.2299f), 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 = ItemDisplays.LoadDisplay("DisplayHoof"), childName = "LowerLegL", localPos = new Vector3(0.04682f, 0.28325f, -0.07196f), localAngles = new Vector3(74.13947f, 322.4321f, 352.8413f), localScale = new Vector3(0.09f, 0.09f, 0.08f), 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 = ItemDisplays.LoadDisplay("DisplayUkulele"), childName = "Chest", localPos = new Vector3(-0.01938f, 0.00277f, -0.49459f), localAngles = new Vector3(0f, 180f, 89.3997f), localScale = new Vector3(0.4749f, 0.4749f, 0.4749f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.GhostOnKill, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayMask"), childName = "ShoulderR", localPos = new Vector3(0.12768f, 0.18056f, -0.01546f), localAngles = new Vector3(308.6915f, 22.80954f, 58.57669f), localScale = new Vector3(0.6313f, 0.6313f, 0.6313f), 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 = ItemDisplays.LoadDisplay("DisplayMushroom"), childName = "Head", localPos = new Vector3(-0.01142f, -0.0705f, 0.19813f), localAngles = new Vector3(324.0257f, 84.72206f, 117.309f), localScale = new Vector3(0.0501f, 0.0501f, 0.0501f), 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 = ItemDisplays.LoadDisplay("DisplayWolfPelt"), childName = "Head", localPos = new Vector3(0.00229f, 0.11997f, -0.00059f), localAngles = new Vector3(358.4554f, 0f, 0f), localScale = new Vector3(0.5666f, 0.5666f, 0.5666f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.BleedOnHit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayTriTip"), childName = "Chest", localPos = new Vector3(-0.1247f, 0.416f, 0.1225f), localAngles = new Vector3(11.5211f, 128.5354f, 165.922f), localScale = new Vector3(0.2615f, 0.2615f, 0.2615f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.WardOnLevel, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayWarbanner"), childName = "Waist", localPos = new Vector3(0.05667f, -0.10465f, 0.11493f), localAngles = new Vector3(0f, 0f, 90f), localScale = new Vector3(0.3162f, 0.3162f, 0.3162f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.HealOnCrit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayScythe"), childName = "Chest", localPos = new Vector3(0.05924f, 0.44234f, -0.45865f), localAngles = new Vector3(323.9545f, 90f, 270f), localScale = new Vector3(0.1884f, 0.1884f, 0.1884f), 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 = ItemDisplays.LoadDisplay("DisplaySnail"), childName = "GunMuzzle", localPos = new Vector3(-0.00078f, 0.06341f, 0.15583f), localAngles = new Vector3(291.3543f, 188.8245f, 170.8539f), localScale = new Vector3(0.0289f, 0.0289f, 0.0289f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Clover, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayClover"), childName = "Head", localPos = new Vector3(-0.01135f, 0.18656f, 0.05158f), localAngles = new Vector3(343.1475f, 182.5947f, 354.8226f), localScale = new Vector3(0.2749f, 0.2749f, 0.2749f), 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 = ItemDisplays.LoadDisplay("DisplayAegis"), childName = "LowerArmL", localPos = new Vector3(-0.01471f, 0.17266f, 0.09841f), localAngles = new Vector3(79.87428f, 105.5384f, 308.2473f), localScale = new Vector3(0.2849f, 0.2849f, 0.2849f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.GoldOnHit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBoneCrown"), childName = "Head", localPos = new Vector3(0.00658f, 0.0952f, 0.00621f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.81868f, 1.1754f, 0.73518f), 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 = ItemDisplays.LoadDisplay("DisplayPauldron"), childName = "Head", localPos = new Vector3(-0.01135f, 0.18656f, 0.05158f), localAngles = new Vector3(343.1475f, 182.5947f, 354.8226f), localScale = new Vector3(0.2749f, 0.2749f, 0.2749f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.SprintArmor, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBuckler"), childName = "LowerArmL", localPos = new Vector3(-0.13352f, 0.82188f, -0.18445f), localAngles = new Vector3(293.466f, 173.4912f, 109.2596f), localScale = new Vector3(0.15f, 0.15f, 0.15f), 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 = ItemDisplays.LoadDisplay("DisplayIceRing"), childName = "Chest", localPos = new Vector3(0.11953f, 0.53846f, -0.31889f), localAngles = new Vector3(274.3965f, 90f, 270f), localScale = new Vector3(0.2f, 0.2f, 0.2f), 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 = ItemDisplays.LoadDisplay("DisplayFireRing"), childName = "Chest", localPos = new Vector3(-0.11645f, 0.54562f, -0.31916f), localAngles = new Vector3(272.0696f, 336.8026f, 24.46638f), localScale = new Vector3(0.2f, 0.2f, 0.2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.UtilitySkillMagazine, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayAfterburnerShoulderRing"), childName = "UpperArmL", localPos = new Vector3(0f, 0f, -0.002f), localAngles = new Vector3(-90f, 0f, 0f), localScale = new Vector3(0.01f, 0.01f, 0.01f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayAfterburnerShoulderRing"), childName = "UpperArmR", localPos = new Vector3(0f, 0f, -0.002f), localAngles = new Vector3(-90f, 0f, 0f), localScale = new Vector3(0.01f, 0.01f, 0.01f), 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 = ItemDisplays.LoadDisplay("DisplayWaxBird"), childName = "ShoulderL", localPos = new Vector3(-0.01421f, 0.04932f, -0.2581f), localAngles = new Vector3(346.9228f, 297.0887f, 269.544f), localScale = new Vector3(0.5253f, 0.5253f, 0.5253f), 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 = ItemDisplays.LoadDisplay("DisplayWarhammer"), childName = "Chest", localPos = new Vector3(0.07041f, 0.01662f, -0.50173f), localAngles = new Vector3(64.18901f, 90f, 90f), localScale = new Vector3(0.1722f, 0.1722f, 0.1722f), 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 = ItemDisplays.LoadDisplay("DisplayDiamond"), childName = "Chest", localPos = new Vector3(0.00738f, 0.23811f, 0.09347f), localAngles = new Vector3(338.5961f, 2.4639f, 6.65725f), localScale = new Vector3(0.1236f, 0.1236f, 0.1236f), 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 = ItemDisplays.LoadDisplay("DisplayRepulsionArmorPlate"), childName = "UpperLegR", localPos = new Vector3(0.00022f, 0.27809f, -0.07623f), localAngles = new Vector3(74.02785f, 146.2314f, 167.9274f), localScale = new Vector3(0.1971f, 0.1971f, 0.1971f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.CommandMissile, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayMissileRack"), childName = "Chest", localPos = new Vector3(0.11503f, 0.37435f, -0.42507f), localAngles = new Vector3(90f, 180f, 0f), localScale = new Vector3(0.3362f, 0.3362f, 0.3362f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Feather, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayFeather"), childName = "ShoulderL", localPos = new Vector3(0.08629f, 0.34981f, -0.09208f), localAngles = new Vector3(26.94672f, 274.2835f, 283.6187f), localScale = new Vector3(0.0285f, 0.0285f, 0.0285f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Crowbar, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayCrowbar"), childName = "Chest", localPos = new Vector3(0.22895f, 0.26539f, -0.42756f), localAngles = new Vector3(13.58582f, 295.2679f, 4.90799f), localScale = new Vector3(0.1936f, 0.1936f, 0.1936f), 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 = ItemDisplays.LoadDisplay("DisplayGravBoots"), childName = "FootL", localPos = new Vector3(-0.03128f, 0.03f, -0.08625f), localAngles = new Vector3(47.97496f, 339.2001f, 346.2224f), localScale = new Vector3(0.4f, 0.4f, 0.4f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayGravBoots"), childName = "FootR", localPos = new Vector3(-0.00407f, -0.00589f, -0.06487f), localAngles = new Vector3(41.41172f, 355.7012f, 355.9367f), localScale = new Vector3(0.4f, 0.4f, 0.4f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.ExecuteLowHealthElite, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayGuillotine"), childName = "Chest", localPos = new Vector3(-0.0378f, 0.53843f, -0.14086f), localAngles = new Vector3(297.3819f, 167.5949f, 290.3758f), localScale = new Vector3(0.1843f, 0.1843f, 0.1843f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.EquipmentMagazine, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBattery"), childName = "Chest", localPos = new Vector3(-0.11711f, 0.60178f, -0.31606f), localAngles = new Vector3(273.3415f, 38.45098f, 168.7297f), localScale = new Vector3(0.15f, 0.15f, 0.1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.NovaOnHeal, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayDevilHorns"), childName = "Head", localPos = new Vector3(0.06899f, 0.09266f, 0.01052f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.5349f, 0.5349f, 0.5349f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayDevilHorns"), childName = "Head", localPos = new Vector3(-0.05128f, 0.09477f, -0.03327f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(-0.5349f, 0.5349f, 0.5349f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Infusion, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayInfusion"), childName = "Chest", localPos = new Vector3(-0.03601f, -0.12477f, 0.17421f), localAngles = new Vector3(343.6819f, 7.44074f, 350.8068f), localScale = new Vector3(0.4f, 0.4f, 0.4f), 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 = ItemDisplays.LoadDisplay("DisplayMedkit"), childName = "UpperLegR", localPos = new Vector3(0.04076f, 0.19853f, -0.12084f), localAngles = new Vector3(76.37337f, 160.1654f, 192.351f), localScale = new Vector3(0.4907f, 0.4907f, 0.4907f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Bandolier, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBandolier"), childName = "LowerArmR", localPos = new Vector3(-0.00048f, 0.05921f, -0.01192f), localAngles = new Vector3(270f, 0f, 0f), localScale = new Vector3(0.23717f, 0.27176f, 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 = ItemDisplays.LoadDisplay("DisplayHook"), childName = "Chest", localPos = new Vector3(0.13147f, MathF.E * 23f / 144f, -0.43707f), localAngles = new Vector3(277.7379f, 321.2089f, 324.9133f), localScale = new Vector3(0.214f, 0.214f, 0.214f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.IgniteOnKill, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayGasoline"), childName = "GunMuzzle", localPos = new Vector3(-0.0309f, -0.16239f, 0.24213f), localAngles = new Vector3(90f, 0f, 0f), localScale = new Vector3(0.3165f, 0.3165f, 0.3165f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.StunChanceOnHit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayStunGrenade"), childName = "Chest", localPos = new Vector3(0.14799f, -0.13512f, 0.09309f), localAngles = new Vector3(288.5354f, 186.2776f, 214.2282f), localScale = new Vector3(0.5672f, 0.5672f, 0.5672f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Firework, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayFirework"), childName = "Chest", localPos = new Vector3(0.14149f, 0.57982f, -0.12102f), localAngles = new Vector3(290.1305f, 350.6601f, 33.08888f), localScale = new Vector3(0.3f, 0.3f, 0.3f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LunarDagger, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayLunarDagger"), childName = "UpperLegL", localPos = new Vector3(0.06162f, 0.13562f, -0.08927f), localAngles = new Vector3(39.32266f, 294.3726f, 246.1975f), localScale = new Vector3(0.3385f, 0.3385f, 0.3385f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Knurl, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayKnurl"), childName = "Chest", localPos = new Vector3(0.0325f, 0.10351f, 0.11183f), localAngles = new Vector3(78.87074f, 36.6722f, 105.8275f), localScale = new Vector3(0.0848f, 0.0848f, 0.0848f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.BeetleGland, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBeetleGland"), childName = "Waist", localPos = new Vector3(0.19077f, -0.01495f, 0.09654f), localAngles = new Vector3(339.9042f, 214.4438f, 150.0409f), localScale = new Vector3(0.0553f, 0.0553f, 0.0553f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.SprintBonus, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplaySoda"), childName = "Chest", localPos = new Vector3(-0.15949f, -0.08012f, 0.14443f), localAngles = new Vector3(298.6428f, 107.1691f, 137.4324f), localScale = new Vector3(0.1655f, 0.1655f, 0.1655f), 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 = ItemDisplays.LoadDisplay("DisplayDoubleMag"), childName = "GunMuzzle", localPos = new Vector3(-0.11973f, -0.82979f, 0.17553f), localAngles = new Vector3(82.91307f, 129.7121f, 36.91693f), localScale = new Vector3(0.0441f, 0.0441f, 0.0441f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.StickyBomb, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayStickyBomb"), childName = "GunMuzzle", localPos = new Vector3(0.02501f, 0.01037f, 0.10599f), localAngles = new Vector3(274.446f, 100.6969f, 240.2195f), localScale = new Vector3(0.0736f, 0.0736f, 0.0736f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.TreasureCache, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayKey"), childName = "Chest", localPos = new Vector3(0.0715f, 0.26578f, 0.10488f), localAngles = new Vector3(347.4465f, 263.7032f, 116.532f), localScale = new Vector3(0.4092f, 0.4092f, 0.4092f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.BossDamageBonus, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayAPRound"), childName = "LowerArmR", localPos = new Vector3(0.00923f, 0.2605f, 0.14045f), localAngles = new Vector3(9.38759f, 253.6954f, 277.6768f), localScale = new Vector3(0.2279f, 0.2279f, 0.2279f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.SlowOnHit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBauble"), childName = "GunMuzzle", localPos = new Vector3(0.09002f, -0.92015f, 0.26449f), localAngles = new Vector3(291.9675f, 108.9351f, 251.6214f), localScale = new Vector3(0.2f, 0.2f, 0.2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.ExtraLife, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayHippo"), childName = "Chest", localPos = new Vector3(0.07802f, 0.3075f, 0.10986f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.15f, 0.15f, 0.15f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.KillEliteFrenzy, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBrainstalk"), childName = "Head", localPos = new Vector3(0.00784f, 0.06148f, 0.01618f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.2638f, 0.2638f, 0.2638f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.RepeatHeal, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayCorpseFlower"), childName = "LowerLegL", localPos = new Vector3(-0.06106f, 0.23107f, 0.00194f), localAngles = new Vector3(270f, 90f, 0f), localScale = new Vector3(0.1511f, 0.1511f, 0.1511f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.AutoCastEquipment, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayFossil"), childName = "GunMuzzle", localPos = new Vector3(0.06345f, 0.02365f, 0.19335f), localAngles = new Vector3(80.07019f, 319.5076f, 154.0705f), localScale = new Vector3(0.2f, 0.2f, 0.2f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.IncreaseHealing, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayAntler"), childName = "Head", localPos = new Vector3(0.052f, 0.14175f, 0.00053f), localAngles = new Vector3(0f, 90f, 0f), localScale = new Vector3(0.3395f, 0.3395f, 0.3395f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayAntler"), childName = "Head", localPos = new Vector3(-0.04855f, 0.13621f, 0.00047f), localAngles = new Vector3(0f, 90f, 0f), localScale = new Vector3(0.3395f, 0.3395f, -0.3395f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.TitanGoldDuringTP, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayGoldHeart"), childName = "ShoulderL", localPos = new Vector3(0.00719f, 0.21358f, 0.02092f), localAngles = new Vector3(335.0033f, 343.2951f, 0f), localScale = new Vector3(0.1191f, 0.1191f, 0.1191f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.SprintWisp, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBrokenMask"), childName = "Head", localPos = new Vector3(-0.12337f, 0.08364f, -0.02629f), localAngles = new Vector3(0.99964f, 253.5765f, 358.5796f), localScale = new Vector3(0.1385f, 0.1385f, 0.1385f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.BarrierOnKill, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBrooch"), childName = "Chest", localPos = new Vector3(0.00075f, 0.06264f, 0.1881f), localAngles = new Vector3(283.2713f, 292.7702f, 256.6011f), localScale = new Vector3(0.1841f, 0.1841f, 0.1841f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.TPHealingNova, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayGlowFlower"), childName = "Chest", localPos = new Vector3(0.22899f, 0.16067f, -0.32815f), localAngles = new Vector3(355.5439f, 84.10274f, 3.83476f), localScale = new Vector3(0.2731f, 0.2731f, 0.0273f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LunarUtilityReplacement, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBirdFoot"), childName = "Head", localPos = new Vector3(0.00279f, 0.16048f, -0.11518f), localAngles = new Vector3(0f, 270f, 0f), localScale = new Vector3(0.2833f, 0.2833f, 0.2833f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Thorns, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayRazorwireLeft"), childName = "Chest", localPos = new Vector3(0f, 0f, 0f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.4814f, 0.4814f, 0.4814f), 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 = ItemDisplays.LoadDisplay("DisplayBirdEye"), childName = "Head", localPos = new Vector3(-0.0045f, 0.08f, 0.10748f), localAngles = new Vector3(270f, 0f, 0f), localScale = new Vector3(0.2866f, 0.2866f, 0.2866f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.NovaOnLowHealth, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayJellyGuts"), childName = "Head", localPos = new Vector3(-0.03677f, -0.03241f, -0.00798f), localAngles = new Vector3(355.8627f, 149.6043f, 157.1388f), localScale = new Vector3(0.11484f, 0.1035f, 0.1035f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LunarTrinket, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBeads"), childName = "HandL", localPos = new Vector3(-0.05976f, 0.04005f, 0.03551f), localAngles = new Vector3(0f, 0f, 90f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Plant, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayInterstellarDeskPlant"), childName = "GunMuzzle", localPos = new Vector3(0.0215f, -0.80787f, 0.13265f), localAngles = new Vector3(1.10365f, 181.6334f, 359.1396f), localScale = new Vector3(0.0429f, 0.0429f, 0.0429f), 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 = ItemDisplays.LoadDisplay("DisplayBear"), childName = "Chest", localPos = new Vector3(-0.06309f, 0.29108f, 0.10926f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.158f, 0.15219f, 0.2034f), 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 = ItemDisplays.LoadDisplay("DisplayDeathMark"), childName = "Waist", localPos = new Vector3(0.17816f, -0.04477f, 0.08823f), localAngles = new Vector3(282.87f, 98.06731f, 146.6219f), localScale = new Vector3(-0.0375f, -0.0341f, -0.0464f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.ExplodeOnDeath, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayWilloWisp"), childName = "Chest", localPos = new Vector3(0.00176f, 0.15789f, 0.16807f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.0283f, 0.0283f, 0.0283f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Seed, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplaySeed"), childName = "GunMuzzle", localPos = new Vector3(-0.03404f, -0.31952f, 0.16367f), localAngles = new Vector3(342.385f, 239.7753f, 276.5338f), localScale = new Vector3(0.0275f, 0.0275f, 0.0275f), 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 = ItemDisplays.LoadDisplay("DisplayWhip"), childName = "LowerLegR", localPos = new Vector3(-0.13224f, -0.11197f, 0.11386f), localAngles = new Vector3(333.1261f, 329.6782f, 180.9566f), localScale = new Vector3(0.2845f, 0.2845f, 0.2845f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.CooldownOnCrit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplaySkull"), childName = "Chest", localPos = new Vector3(0f, 0.3997f, 0f), localAngles = new Vector3(270f, 0f, 0f), localScale = new Vector3(0.2789f, 0.2789f, 0.2789f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Phasing, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayStealthkit"), childName = "HandR", localPos = new Vector3(-0.35703f, -0.07017f, 0.16785f), localAngles = new Vector3(26.22575f, 252.5322f, 185.3102f), localScale = new Vector3(0.1454f, 0.2399f, 0.16f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.PersonalShield, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayShieldGenerator"), childName = "Chest", localPos = new Vector3(0.01639f, 0.27516f, 0.11306f), localAngles = new Vector3(299.6767f, 174.4981f, 184.5154f), localScale = new Vector3(0.1057f, 0.1057f, 0.1057f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.ShockNearby, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayTeslaCoil"), childName = "Chest", localPos = new Vector3(-0.17286f, 0.26892f, -0.43071f), localAngles = new Vector3(297.6866f, 1.3864f, 358.5596f), localScale = new Vector3(0.3229f, 0.3229f, 0.3229f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.ShieldOnly, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayShieldBug"), childName = "Head", localPos = new Vector3(-0.0786f, 0.18091f, 0.04495f), localAngles = new Vector3(11.8181f, 268.0985f, 359.6104f), localScale = new Vector3(0.3521f, 0.3521f, -0.3521f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayShieldBug"), childName = "Head", localPos = new Vector3(0.07491f, 0.18208f, 0.05136f), localAngles = new Vector3(348.1819f, 268.0985f, 0.3896f), localScale = new Vector3(0.3521f, 0.3521f, 0.3521f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.AlienHead, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayAlienHead"), childName = "Chest", localPos = new Vector3(0.0417f, 0.2791f, -0.0493f), localAngles = new Vector3(284.1172f, 243.7966f, 260.89f), localScale = new Vector3(0.6701f, 0.6701f, 0.6701f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.HeadHunter, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplaySkullCrown"), childName = "Waist", localPos = new Vector3(-0.01244f, 0.01228f, 0.01044f), localAngles = new Vector3(353.4442f, 333.9133f, 180.5362f), localScale = new Vector3(0.70032f, 0.1617f, 0.24058f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.EnergizedOnEquipmentUse, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayWarHorn"), childName = "Chest", localPos = new Vector3(-0.25299f, 0.21632f, -0.36193f), localAngles = new Vector3(7.24924f, 281.2769f, 88.70856f), localScale = new Vector3(0.2732f, 0.2732f, 0.2732f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.FlatHealth, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplaySteakCurved"), childName = "Head", localPos = new Vector3(0.01179f, 0.19247f, -0.05598f), localAngles = new Vector3(294.98f, 180f, 180f), localScale = new Vector3(0.1245f, 0.1155f, 0.1155f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Tooth, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayToothMeshLarge"), childName = "Head", localPos = new Vector3(0.0003f, 0.13485f, 0.13181f), localAngles = new Vector3(344.9017f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), 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 = ItemDisplays.LoadDisplay("DisplayPearl"), childName = "Chest", localPos = new Vector3(-0.02298f, 0.48171f, -0.32375f), 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.ShinyPearl, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayShinyPearl"), childName = "LowerArmL", localPos = new Vector3(-0.75695f, -0.11935f, -0.24223f), 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.BonusGoldPackOnKill, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayTome"), childName = "Chest", localPos = new Vector3(0.14762f, -0.14599f, 0.0889f), localAngles = new Vector3(354.236f, 22.58681f, 357.831f), localScale = new Vector3(0.0475f, 0.0475f, 0.0475f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Squid, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplaySquidTurret"), childName = "Head", localPos = new Vector3(-0.01683f, 0.18379f, -0.00082f), localAngles = new Vector3(0f, 90f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.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 = ItemDisplays.LoadDisplay("DisplayFrostRelic"), childName = "Chest", localPos = new Vector3(-0.82885f, 0.36302f, -0.25225f), localAngles = new Vector3(74.06326f, 356.7347f, 347.5662f), localScale = new Vector3(1.5f, 1.5f, 1.5f), 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 = ItemDisplays.LoadDisplay("DisplayTalisman"), childName = "Chest", localPos = new Vector3(0.94869f, 0.59897f, -0.6383f), localAngles = new Vector3(341.8796f, 9.94624f, 349.6939f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LaserTurbine, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayLaserTurbine"), childName = "UpperLegL", localPos = new Vector3(0.02068f, 0.19359f, -0.09861f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.2159f, 0.2159f, 0.2159f), 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 = ItemDisplays.LoadDisplay("DisplayFocusedConvergence"), childName = "Chest", localPos = new Vector3(-0.45507f, 0.70758f, 0.21733f), 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.Incubator, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayAncestralIncubator"), childName = "LowerArmR", localPos = new Vector3(0.0218f, 0.26513f, 0.10437f), localAngles = new Vector3(329.451f, 79.31167f, 90.73068f), localScale = new Vector3(0.02f, 0.00879f, 0.0186f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.FireballsOnHit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayFireballsOnHit"), childName = "GunMuzzle", localPos = new Vector3(0.01744f, 0.00486f, 0.28165f), localAngles = new Vector3(277.3176f, 174.9625f, 17.57329f), localScale = new Vector3(0.11169f, 0.07545f, 0.09659f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.SiphonOnLowHealth, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplaySiphonOnLowHealth"), childName = "Chest", localPos = new Vector3(0.08448f, 0.22479f, 0.13311f), localAngles = new Vector3(0f, 303.4368f, 0f), localScale = new Vector3(0.0385f, 0.0385f, 0.0385f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.BleedOnHitAndExplode, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBleedOnHitAndExplode"), childName = "Chest", localPos = new Vector3(0.12389f, -0.27251f, -0.36285f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.0486f, 0.0486f, 0.0486f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.MonstersOnShrineUse, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayMonstersOnShrineUse"), childName = "ShoulderL", localPos = new Vector3(-0.01449f, 0.27333f, 0.01103f), localAngles = new Vector3(12.66529f, 248.1474f, 18.27233f), localScale = new Vector3(0.0246f, 0.0246f, 0.0246f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.RandomDamageZone, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayRandomDamageZone"), childName = "HandL", localPos = new Vector3(0.10343f, 0.1082f, 0.017f), localAngles = new Vector3(352.891f, 234.6638f, 14.55313f), localScale = new Vector3(0.0465f, 0.0465f, 0.0465f), 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 = ItemDisplays.LoadDisplay("DisplayFruit"), childName = "Chest", localPos = new Vector3(0.1108f, 0.1373f, -0.49969f), localAngles = new Vector3(354.7403f, 305.3714f, 336.9526f), localScale = new Vector3(0.2118f, 0.2118f, 0.2118f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixRed, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayEliteHorn"), childName = "Head", localPos = new Vector3(0.05662f, 0.14029f, 0.05443f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.1036f, 0.1036f, 0.1036f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayEliteHorn"), childName = "Head", localPos = new Vector3(-0.06381f, 0.11028f, 0.0371f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(-0.1036f, 0.1036f, 0.1036f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixBlue, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayEliteRhinoHorn"), childName = "Head", localPos = new Vector3(0.00661f, 0.13847f, 0.09803f), localAngles = new Vector3(315f, 0f, 0f), localScale = new Vector3(0.2f, 0.2f, 0.2f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayEliteRhinoHorn"), childName = "Head", localPos = new Vector3(0.00691f, 0.19056f, 67f / (273f * MathF.PI)), localAngles = new Vector3(300f, 0f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixWhite, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayEliteIceCrown"), childName = "Head", localPos = new Vector3(-0.00195f, 0.14732f, -0.00401f), localAngles = new Vector3(270f, 0f, 0f), localScale = new Vector3(0.02f, 0.02f, 0.02f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixPoison, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayEliteUrchinCrown"), childName = "Head", localPos = new Vector3(0.00847f, 0.15971f, 0.00799f), localAngles = new Vector3(270f, 0f, 0f), localScale = new Vector3(0.03f, 0.03f, 0.03f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixHaunted, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayEliteStealthCrown"), childName = "Head", localPos = new Vector3(0.00804f, 0.11159f, 0.00759f), localAngles = new Vector3(299.8908f, 181.7915f, 175.9328f), localScale = new Vector3(0.03504f, 0.0345f, 0.04719f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.CritOnUse, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayNeuralImplant"), childName = "Head", localPos = new Vector3(-0.00912f, 0.06136f, 0.0327f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.2f, 0.2f, 0.17f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.DroneBackup, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayRadio"), childName = "ShoulderR", localPos = new Vector3(0.17395f, 0.23831f, 0.02426f), localAngles = new Vector3(301.4042f, 48.43867f, 117.78f), localScale = new Vector3(0.2641f, 0.2641f, 0.2641f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Lightning, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayLightningArmRight"), childName = "Chest", localPos = new Vector3(0.12195f, 0.27204f, 2E-05f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.3413f, 0.3413f, 0.3413f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.BurnNearby, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayPotion"), childName = "GunMuzzle", localPos = new Vector3(0.01043f, 0.13248f, 0.19732f), localAngles = new Vector3(359.4778f, 319.5302f, 334.7257f), localScale = new Vector3(0.0307f, 0.0307f, 0.0307f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.CrippleWard, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayEffigy"), childName = "Chest", localPos = new Vector3(0.0959f, 0.2622f, 0.15649f), localAngles = new Vector3(33.0348f, 197.4539f, 0f), localScale = new Vector3(0.2812f, 0.2812f, 0.2812f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.QuestVolatileBattery, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayBatteryArray"), childName = "Chest", localPos = new Vector3(0f, 0.25838f, -0.50195f), localAngles = new Vector3(4.07425f, 0f, 0f), localScale = new Vector3(0.2188f, 0.2188f, 0.2188f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Recycle, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayRecycler"), childName = "Chest", localPos = new Vector3(0f, 0.19758f, -0.46486f), localAngles = new Vector3(0f, 90f, 0f), localScale = new Vector3(0.0802f, 0.0802f, 0.0802f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.FireBallDash, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayEgg"), childName = "Chest", localPos = new Vector3(0.09763f, 0.45208f, -0.05569f), localAngles = new Vector3(270f, 0f, 0f), localScale = new Vector3(0.1891f, 0.1891f, 0.1891f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Cleanse, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayWaterPack"), childName = "Chest", localPos = new Vector3(0f, 0.19959f, -0.47872f), localAngles = new Vector3(0f, 180f, 0f), localScale = new Vector3(0.0821f, 0.0821f, 0.0821f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Tonic, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayTonic"), childName = "Chest", localPos = new Vector3(0.12225f, 0.03254f, -0.46722f), localAngles = new Vector3(6.16406f, 359.5957f, 0f), localScale = new Vector3(0.1252f, 0.1252f, 0.1252f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Gateway, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayVase"), childName = "Chest", localPos = new Vector3(0.0807f, 0.08769f, -0.49315f), localAngles = new Vector3(0f, 90f, 0f), localScale = new Vector3(0.0982f, 0.0982f, 0.0982f), 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 = ItemDisplays.LoadDisplay("DisplayMeteor"), childName = "Chest", localPos = new Vector3(1.11869f, -0.69607f, -0.94309f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), 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 = ItemDisplays.LoadDisplay("DisplayGravCube"), childName = "Chest", localPos = new Vector3(-0.72648f, -0.02134f, -0.06767f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Scanner, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayScanner"), childName = "Chest", localPos = new Vector3(0.13132f, 0.48031f, -0.32136f), localAngles = new Vector3(292.3312f, 169.6344f, 18.98395f), localScale = new Vector3(0.0861f, 0.0861f, 0.0861f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.DeathProjectile, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayDeathProjectile"), childName = "Chest", localPos = new Vector3(0.19346f, -0.18323f, -0.11516f), localAngles = new Vector3(340.1308f, 104.4643f, 351.0392f), localScale = new Vector3(0.0596f, 0.0596f, 0.0596f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.LifestealOnHit, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayLifestealOnHit"), childName = "Head", localPos = new Vector3(-0.21047f, 0.30869f, -0.06556f), localAngles = new Vector3(44.0939f, 33.5151f, 43.5058f), localScale = new Vector3(0.1246f, 0.1246f, 0.1246f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.TeamWarCry, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplays.LoadDisplay("DisplayTeamWarCry"), childName = "Chest", localPos = new Vector3(-0.02468f, 0.47916f, -0.12338f), localAngles = new Vector3(359.381f, 14.43894f, 353.1065f), localScale = new Vector3(0.1233f, 0.1233f, 0.1233f), limbMask = (LimbFlags)0 } } } }); } } internal abstract class CharacterBase { public static CharacterBase instance; public abstract string bodyName { get; } public abstract BodyInfo bodyInfo { get; set; } public abstract CustomRendererInfo[] customRendererInfos { get; set; } public abstract Type characterMainState { get; } public virtual Type characterSpawnState { get; } public virtual ItemDisplaysBase itemDisplays { get; } = null; public virtual GameObject bodyPrefab { get; set; } public virtual CharacterModel characterBodyModel { get; set; } public string fullBodyName => bodyName + "Body"; public virtual void Initialize() { instance = this; InitializeCharacter(); } public virtual void InitializeCharacter() { InitializeCharacterBodyAndModel(); InitializeCharacterMaster(); InitializeEntityStateMachine(); InitializeSkills(); InitializeHitboxes(); InitializeHurtboxes(); InitializeSkins(); InitializeItemDisplays(); InitializeDoppelganger("Merc"); } protected virtual void InitializeCharacterBodyAndModel() { bodyPrefab = Prefabs.CreateBodyPrefab(bodyName + "Body", "mdl" + bodyName, bodyInfo); InitializeCharacterModel(); } protected virtual void InitializeCharacterModel() { characterBodyModel = Prefabs.SetupCharacterModel(bodyPrefab, customRendererInfos); } protected virtual void InitializeCharacterMaster() { } protected virtual void InitializeEntityStateMachine() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) bodyPrefab.GetComponent().mainStateType = new SerializableEntityStateType(characterMainState); Content.AddEntityState(characterMainState); if (characterSpawnState != null) { bodyPrefab.GetComponent().initialStateType = new SerializableEntityStateType(characterSpawnState); Content.AddEntityState(characterSpawnState); } } public abstract void InitializeSkills(); public virtual void InitializeHitboxes() { } public virtual void InitializeHurtboxes() { Prefabs.SetupHurtBoxes(bodyPrefab); } public virtual void InitializeSkins() { } public virtual void InitializeDoppelganger(string clone) { Prefabs.CreateGenericDoppelganger(instance.bodyPrefab, bodyName + "MonsterMaster", clone); } public virtual void InitializeItemDisplays() { ItemDisplayRuleSet val = ScriptableObject.CreateInstance(); ((Object)val).name = "idrs" + bodyName; characterBodyModel.itemDisplayRuleSet = val; if (itemDisplays != null) { ContentManager.onContentPacksAssigned += SetItemDisplays; } } public void SetItemDisplays(ReadOnlyArray obj) { itemDisplays.SetItemDisplays(characterBodyModel.itemDisplayRuleSet); } } internal class BodyInfo { public string bodyName = ""; public string bodyNameToken = ""; public string subtitleNameToken = ""; public string bodyNameToClone = "Commando"; public Color bodyColor = Color.white; public Texture characterPortrait = null; public float sortPosition = 100f; public GameObject crosshair = null; public GameObject podPrefab = null; public float maxHealth = 100f; public float healthRegen = 1f; public float armor = 0f; public float shield = 0f; public int jumpCount = 1; public float damage = 12f; public float attackSpeed = 1f; public float crit = 1f; public float moveSpeed = 7f; public float acceleration = 80f; public float jumpPower = 15f; public bool autoCalculateLevelStats = true; public float healthGrowth = 30f; public float regenGrowth = 0.2f; public float armorGrowth = 0f; public float shieldGrowth = 0f; public float damageGrowth = 2.4f; public float attackSpeedGrowth = 0f; public float critGrowth = 0f; public float moveSpeedGrowth = 0f; public float jumpPowerGrowth = 0f; public Vector3 aimOriginPosition = new Vector3(0f, 1.6f, 0f); public Vector3 modelBasePosition = new Vector3(0f, -0.92f, 0f); public Vector3 cameraPivotPosition = new Vector3(0f, 0.8f, 0f); public float cameraParamsVerticalOffset = 1.37f; public float cameraParamsDepth = -10f; private CharacterCameraParams _cameraParams; public CharacterCameraParams cameraParams { get { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_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_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) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_cameraParams == (Object)null) { _cameraParams = ScriptableObject.CreateInstance(); _cameraParams.data.minPitch = BlendableFloat.op_Implicit(-70f); _cameraParams.data.maxPitch = BlendableFloat.op_Implicit(70f); _cameraParams.data.wallCushion = BlendableFloat.op_Implicit(0.1f); _cameraParams.data.pivotVerticalOffset = BlendableFloat.op_Implicit(cameraParamsVerticalOffset); _cameraParams.data.idealLocalCameraPos = BlendableVector3.op_Implicit(new Vector3(0f, 0f, cameraParamsDepth)); } return _cameraParams; } set { _cameraParams = value; } } } public abstract class ItemDisplaysBase { public void SetItemDisplays(ItemDisplayRuleSet itemDisplayRuleSet) { List list = new List(); SetItemDisplayRules(list); itemDisplayRuleSet.keyAssetRuleGroups = list.ToArray(); } protected abstract void SetItemDisplayRules(List itemDisplayRules); } } namespace ArsonistMod.Modules.Survivors { internal class Arsonist : SurvivorBase { public const string ARSONIST_PREFIX = "POPCORN_ARSONIST_BODY_"; public static int FirebugSkinIndex = 2; private static UnlockableDef pigSkinUnlockableDef; private static UnlockableDef masterySkinUnlockableDef; private static UnlockableDef firebugSkinUnlockableDef; private static UnlockableDef flamethrowerUnlockableDef; private static UnlockableDef arsonistUnlockable; public override string bodyName => "Arsonist"; public override string survivorTokenPrefix => "POPCORN_ARSONIST_BODY_"; public override BodyInfo bodyInfo { get; set; } = new BodyInfo { bodyName = "ArsonistBody", bodyNameToken = "POPCORN_ARSONIST_BODY_NAME", subtitleNameToken = "POPCORN_ARSONIST_BODY_SUBTITLE", characterPortrait = Assets.mainAssetBundle.LoadAsset("ArsonistIcon"), bodyColor = Color.red, crosshair = Assets.fireballCrosshair, podPrefab = LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/SurvivorPod"), maxHealth = 110f, healthGrowth = 40f, healthRegen = 1f, moveSpeed = 7f, damage = 12f, armor = 20f, jumpCount = 1 }; public override CustomRendererInfo[] customRendererInfos { get; set; } = new CustomRendererInfo[9] { new CustomRendererInfo { childName = "ArsonistBody", material = Materials.CreateHopooMaterial("matArsonist", noCullEnabled: false) }, new CustomRendererInfo { childName = "ArsonistArmor", material = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true) }, new CustomRendererInfo { childName = "ArsonistBoots", material = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true) }, new CustomRendererInfo { childName = "ArsonistCanister", material = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true) }, new CustomRendererInfo { childName = "ArsonistChestplate", material = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true) }, new CustomRendererInfo { childName = "ArsonistHead", material = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true) }, new CustomRendererInfo { childName = "ArsonistWeapon", material = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true) }, new CustomRendererInfo { childName = "Cylinder" }, new CustomRendererInfo { childName = "PyroRobe", material = Materials.CreateHopooMaterial("matArsonistCloth", noCullEnabled: true) } }; public override UnlockableDef characterUnlockableDef => arsonistUnlockable; public override Type characterMainState => typeof(GenericCharacterMain); public override ItemDisplaysBase itemDisplays => new ArsonistItemDisplays(); public override ConfigEntry characterEnabledConfig => null; public override void InitializeCharacter() { base.InitializeCharacter(); bodyPrefab.AddComponent(); bodyPrefab.AddComponent(); ChildLocator componentInChildren = bodyPrefab.GetComponentInChildren(); Transform val = componentInChildren.FindChild("FireBeam"); Transform val2 = componentInChildren.FindChild("FireBeamForwardFiring"); ParticleSystemRenderer component = ((Component)((Component)val.GetChild(0)).GetComponent()).GetComponent(); ParticleSystemRenderer component2 = ((Component)((Component)val2.GetChild(0)).GetComponent()).GetComponent(); ((Renderer)component).material = Assets.emissionRingMatLesser; ((Renderer)component2).material = Assets.emissionRingMatLesser; } public override void InitializeUnlockables() { masterySkinUnlockableDef = Unlockables.AddUnlockable(serverTracked: true); firebugSkinUnlockableDef = Unlockables.AddUnlockable(serverTracked: true); arsonistUnlockable = Unlockables.AddUnlockable(serverTracked: true); flamethrowerUnlockableDef = Unlockables.AddUnlockable(serverTracked: true); } public override void InitializeHitboxes() { ChildLocator componentInChildren = bodyPrefab.GetComponentInChildren(); GameObject gameObject = ((Component)componentInChildren).gameObject; Transform hitboxTransform = componentInChildren.FindChild("ZeroPointHitbox"); Prefabs.SetupHitbox(gameObject, hitboxTransform, "ZeroPoint"); } public override void InitializeSkills() { //IL_00d3: 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_0120: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: 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_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Unknown result type (might be due to invalid IL or missing references) //IL_044e: 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_0549: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_0651: Unknown result type (might be due to invalid IL or missing references) //IL_0656: Unknown result type (might be due to invalid IL or missing references) //IL_069e: Unknown result type (might be due to invalid IL or missing references) //IL_0782: Unknown result type (might be due to invalid IL or missing references) //IL_0787: Unknown result type (might be due to invalid IL or missing references) //IL_07cf: Unknown result type (might be due to invalid IL or missing references) //IL_08ae: Unknown result type (might be due to invalid IL or missing references) //IL_08b3: Unknown result type (might be due to invalid IL or missing references) //IL_08fb: 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_0a10: Unknown result type (might be due to invalid IL or missing references) ArsonistPassive arsonistPassive = bodyPrefab.AddComponent(); Skills.CreateSkillFamilies(bodyPrefab, passiveEnabled: true); string text = "POPCORN_ARSONIST_BODY_"; SkillLocator component = bodyPrefab.GetComponent(); component.passiveSkill.enabled = true; component.passiveSkill.skillNameToken = "POPCORN_ARSONIST_BODY_PASSIVE_NAME"; component.passiveSkill.skillDescriptionToken = "POPCORN_ARSONIST_BODY_PASSIVE_DESCRIPTION"; component.passiveSkill.icon = Assets.mainAssetBundle.LoadAsset("texPassiveIcon"); arsonistPassive.normalGaugePassive = Skills.CreateSkillDef(new SkillDefInfo { skillName = text + "PASSIVE_NORMAL_GAUGE_NAME", skillNameToken = text + "PASSIVE_NORMAL_GAUGE_NAME", skillDescriptionToken = text + "PASSIVE_NORMAL_GAUGE_DESCRIPTION", skillIcon = Assets.mainAssetBundle.LoadAsset("arsonistNormalGauge"), activationState = new SerializableEntityStateType(typeof(FireSpray)), activationStateMachineName = "Slide", baseMaxStock = 1, baseRechargeInterval = 0f, beginSkillCooldownOnSkillEnd = false, canceledFromSprinting = false, forceSprintDuringState = false, fullRestockOnAssign = true, interruptPriority = (InterruptPriority)1, resetCooldownTimerOnUse = false, isCombatSkill = true, mustKeyPress = true, cancelSprintingOnActivation = false, rechargeStock = 1, requiredStock = 1, stockToConsume = 1 }); arsonistPassive.blueGaugePassive = Skills.CreateSkillDef(new SkillDefInfo { skillName = text + "PASSIVE_BLUE_GAUGE_NAME", skillNameToken = text + "PASSIVE_BLUE_GAUGE_NAME", skillDescriptionToken = text + "PASSIVE_BLUE_GAUGE_DESCRIPTION", skillIcon = Assets.mainAssetBundle.LoadAsset("arsonistBlueGauge"), activationState = new SerializableEntityStateType(typeof(FireSpray)), activationStateMachineName = "Slide", baseMaxStock = 1, baseRechargeInterval = 0f, beginSkillCooldownOnSkillEnd = false, canceledFromSprinting = false, forceSprintDuringState = false, fullRestockOnAssign = true, interruptPriority = (InterruptPriority)1, resetCooldownTimerOnUse = false, isCombatSkill = true, mustKeyPress = true, cancelSprintingOnActivation = false, rechargeStock = 1, requiredStock = 1, stockToConsume = 1 }); Skills.AddPassiveSkills(arsonistPassive.passiveSkillSlot.skillFamily, arsonistPassive.normalGaugePassive, arsonistPassive.blueGaugePassive); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = text + "PRIMARY_FIRESPRAY_NAME"; skillDefInfo.skillNameToken = text + "PRIMARY_FIRESPRAY_NAME"; skillDefInfo.skillDescriptionToken = text + "PRIMARY_FIRESPRAY_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texPrimaryIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(FireSpray)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[2] { text + "KEYWORD_BASEGAUGE", text + "KEYWORD_FIRESPRAYHEAT" }; SkillDef val = Skills.CreateSkillDef(skillDefInfo); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = text + "PRIMARY_FLAMETHROWER_NAME"; skillDefInfo.skillNameToken = text + "PRIMARY_FLAMETHROWER_NAME"; skillDefInfo.skillDescriptionToken = text + "PRIMARY_FLAMETHROWER_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("arsonistFlamethrower"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Flamethrower)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[0]; SkillDef val2 = Skills.CreateSkillDef(skillDefInfo); Skills.AddPrimarySkills(bodyPrefab, val, val2); Skills.AddUnlockablesToFamily(bodyPrefab.GetComponent().primary.skillFamily, default(UnlockableDef), flamethrowerUnlockableDef); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = text + "SECONDARY_FLAREGUN_NAME"; skillDefInfo.skillNameToken = text + "SECONDARY_FLAREGUN_NAME"; skillDefInfo.skillDescriptionToken = text + "SECONDARY_FLAREGUN_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texSecondaryIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Flare)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 14f; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[1] { text + "KEYWORD_FLAREHEAT" }; SkillDef val3 = Skills.CreateSkillDef(skillDefInfo); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = text + "SECONDARY_PUNCH_NAME"; skillDefInfo.skillNameToken = text + "SECONDARY_PUNCH_NAME"; skillDefInfo.skillDescriptionToken = text + "SECONDARY_PUNCH_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("arsonistZPBIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(ZeroPointBlastStart)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 11f; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = true; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[2] { "KEYWORD_AGILE", text + "KEYWORD_ZEROPOINTHEAT" }; SkillDef val4 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSecondarySkills(bodyPrefab, val3, val4); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = text + "UTILITY_CLEANSE_NAME"; skillDefInfo.skillNameToken = text + "UTILITY_CLEANSE_NAME"; skillDefInfo.skillDescriptionToken = text + "UTILITY_CLEANSE_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texUtilityIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Cleanse)); skillDefInfo.activationStateMachineName = "Slide"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 18f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)5; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = false; skillDefInfo.mustKeyPress = true; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[2] { "KEYWORD_AGILE", text + "KEYWORD_CLEANSEHEAT" }; SkillDef val5 = Skills.CreateSkillDef(skillDefInfo); Skills.AddUtilitySkills(bodyPrefab, val5); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = text + "SPECIAL_MASOCHIST_NAME"; skillDefInfo.skillNameToken = text + "SPECIAL_MASOCHIST_NAME"; skillDefInfo.skillDescriptionToken = text + "SPECIAL_MASOCHIST_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texSpecialIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Masochism)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 12f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[2] { "KEYWORD_AGILE", text + "KEYWORD_MASOCHISMHEAT" }; SkillDef val6 = Skills.CreateSkillDef(skillDefInfo); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = text + "SPECIAL_MASOCHISM_NAME"; skillDefInfo.skillNameToken = text + "SPECIAL_MASOCHISM_NAME"; skillDefInfo.skillDescriptionToken = text + "SPECIAL_MASOCHISM_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texSpecialIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(NeoMasochism)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)3; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = true; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 0; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[4] { text + "KEYWORD_MASO_ANTICIPATION", text + "KEYWORD_MASO_LIFESTEAL", text + "KEYWORD_MASO_DETONATE", text + "KEYWORD_OVERHEAT_MASO" }; SkillDef val7 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSpecialSkills(bodyPrefab, val7); } public override void InitializeSkins() { GameObject gameObject = ((Component)bodyPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); ModelSkinController val = gameObject.AddComponent(); ChildLocator component2 = gameObject.GetComponent(); RendererInfo[] baseRendererInfos = component.baseRendererInfos; List list = new List(); Material val2 = Materials.CreateHopooMaterial("matArsonist", noCullEnabled: false); Material val3 = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true); Material val4 = Materials.CreateHopooMaterial("matArsonistCloth", noCullEnabled: true); RendererInfo[] defaultRendererInfos = SkinRendererInfos(baseRendererInfos, (Material[])(object)new Material[9] { val2, val3, val3, val3, val3, val3, val3, default(Material), val4 }); SkinDef val5 = Skins.CreateSkinDef("POPCORN_ARSONIST_BODY_DEFAULT_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texMainSkin"), defaultRendererInfos, gameObject); val5.meshReplacements = Skins.getMeshReplacements(baseRendererInfos, "meshArsonist", "meshArsonistArmor", "meshArsonistBoots", "meshArsonistCanister", "meshArsonistChestplate", "meshArsonistHead", "meshArsonistWeapon", "meshCylinder", "meshPyroRobe"); val5.rendererInfos[0].defaultMaterial = Materials.CreateHopooMaterial("matArsonist", noCullEnabled: false); val5.rendererInfos[1].defaultMaterial = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true); val5.rendererInfos[2].defaultMaterial = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true); val5.rendererInfos[3].defaultMaterial = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true); val5.rendererInfos[4].defaultMaterial = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true); val5.rendererInfos[5].defaultMaterial = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true); val5.rendererInfos[6].defaultMaterial = Materials.CreateHopooMaterial("matArsonistMetal", noCullEnabled: true); val5.rendererInfos[8].defaultMaterial = Materials.CreateHopooMaterial("matArsonistCloth", noCullEnabled: true); list.Add(val5); Material val6 = Materials.CreateHopooMaterial("matSuitArsonist", noCullEnabled: true); Material val7 = Materials.CreateHopooMaterial("matSuitArsonistMetal", noCullEnabled: true); RendererInfo[] defaultRendererInfos2 = SkinRendererInfos(baseRendererInfos, (Material[])(object)new Material[9] { val6, val6, val7, val7, val7, val7, val7, default(Material), val6 }); SkinDef val8 = Skins.CreateSkinDef("POPCORN_ARSONIST_BODY_MASTERY_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("arsonistMastery"), defaultRendererInfos2, gameObject, masterySkinUnlockableDef); val8.meshReplacements = Skins.getMeshReplacements(baseRendererInfos, "SuitArsonist", "SuitArsonist", "SuitArsonistBoots", "SuitArsonistCanister", "SuitArsonistGloves", "SuitArsonistHead", "SuitArsonistWeapon", "meshCylinder", "SuitPyroRobe"); val8.rendererInfos[0].defaultMaterial = Materials.CreateHopooMaterial("matSuitArsonist", noCullEnabled: true); val8.rendererInfos[1].defaultMaterial = Materials.CreateHopooMaterial("matSuitArsonist", noCullEnabled: true); val8.rendererInfos[2].defaultMaterial = Materials.CreateHopooMaterial("matSuitArsonistMetal", noCullEnabled: true); val8.rendererInfos[3].defaultMaterial = Materials.CreateHopooMaterial("matSuitArsonistMetal", noCullEnabled: true); val8.rendererInfos[4].defaultMaterial = Materials.CreateHopooMaterial("matSuitArsonistMetal", noCullEnabled: true); val8.rendererInfos[5].defaultMaterial = Materials.CreateHopooMaterial("matSuitArsonistMetal", noCullEnabled: true); val8.rendererInfos[6].defaultMaterial = Materials.CreateHopooMaterial("matSuitArsonistMetal", noCullEnabled: true); val8.rendererInfos[8].defaultMaterial = Materials.CreateHopooMaterial("matSuitArsonist", noCullEnabled: true); list.Add(val8); Material val9 = Materials.CreateHopooMaterial("matNeoArsonistMetal", noCullEnabled: true); Material val10 = Materials.CreateHopooMaterial("matNeoArsonistCloth", noCullEnabled: true); RendererInfo[] defaultRendererInfos3 = SkinRendererInfos(baseRendererInfos, (Material[])(object)new Material[9] { val9, val9, val9, val9, val9, val9, val9, default(Material), val10 }); SkinDef val11 = Skins.CreateSkinDef("POPCORN_ARSONIST_BODY_GRANDMASTERY_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("arsonistGrandmastery"), defaultRendererInfos3, gameObject, firebugSkinUnlockableDef); val11.meshReplacements = Skins.getMeshReplacements(baseRendererInfos, "NeoArsonist", "NeoArsonistArmor", "NeoArsonistBoots", "NeoArsonistCanister", "NeoArsonistChestplate", "NeoArsonistHead", "NeoArsonistWeapon", "meshCylinder", "NeoPyroRobe"); val11.rendererInfos[0].defaultMaterial = Materials.CreateHopooMaterial("matNeoArsonistMetal", noCullEnabled: true); val11.rendererInfos[1].defaultMaterial = Materials.CreateHopooMaterial("matNeoArsonistMetal", noCullEnabled: true); val11.rendererInfos[2].defaultMaterial = Materials.CreateHopooMaterial("matNeoArsonistMetal", noCullEnabled: true); val11.rendererInfos[3].defaultMaterial = Materials.CreateHopooMaterial("matNeoArsonistMetal", noCullEnabled: true); val11.rendererInfos[4].defaultMaterial = Materials.CreateHopooMaterial("matNeoArsonistMetal", noCullEnabled: true); val11.rendererInfos[5].defaultMaterial = Materials.CreateHopooMaterial("matNeoArsonistMetal", noCullEnabled: true); val11.rendererInfos[6].defaultMaterial = Materials.CreateHopooMaterial("matNeoArsonistMetal", noCullEnabled: true); val11.rendererInfos[8].defaultMaterial = Materials.CreateHopooMaterial("matNeoArsonistCloth", noCullEnabled: true); list.Add(val11); val.skins = list.ToArray(); } private static RendererInfo[] SkinRendererInfos(RendererInfo[] defaultRenderers, Material[] materials) { RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[defaultRenderers.Length]; defaultRenderers.CopyTo(array, 0); for (int i = 0; i < materials.Length; i++) { array[i].defaultMaterial = materials[i]; } return array; } } internal abstract class SurvivorBase : CharacterBase { public abstract string survivorTokenPrefix { get; } public abstract UnlockableDef characterUnlockableDef { get; } public virtual ConfigEntry characterEnabledConfig { get; } public virtual GameObject displayPrefab { get; set; } public override void InitializeCharacter() { if (characterEnabledConfig == null || characterEnabledConfig.Value) { InitializeUnlockables(); base.InitializeCharacter(); InitializeSurvivor(); } } protected override void InitializeCharacterBodyAndModel() { base.InitializeCharacterBodyAndModel(); InitializeDisplayPrefab(); } protected virtual void InitializeSurvivor() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) RegisterNewSurvivor(bodyPrefab, displayPrefab, Color.grey, survivorTokenPrefix, characterUnlockableDef, bodyInfo.sortPosition); } protected virtual void InitializeDisplayPrefab() { displayPrefab = Prefabs.CreateDisplayPrefab(bodyName + "Display", bodyPrefab, bodyInfo); } public virtual void InitializeUnlockables() { } public static void RegisterNewSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) RegisterNewSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, null, 100f); } public static void RegisterNewSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, float sortPosition) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) RegisterNewSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, null, sortPosition); } public static void RegisterNewSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, UnlockableDef unlockableDef) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) RegisterNewSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, unlockableDef, 100f); } public static void RegisterNewSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, UnlockableDef unlockableDef, float sortPosition) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) SurvivorDef val = ScriptableObject.CreateInstance(); val.bodyPrefab = bodyPrefab; val.displayPrefab = displayPrefab; val.primaryColor = charColor; val.cachedName = tokenPrefix; val.displayNameToken = tokenPrefix + "NAME"; val.descriptionToken = tokenPrefix + "DESCRIPTION"; val.outroFlavorToken = tokenPrefix + "OUTRO_FLAVOR"; val.mainEndingEscapeFailureFlavorToken = tokenPrefix + "OUTRO_FAILURE"; val.desiredSortPosition = sortPosition; val.unlockableDef = unlockableDef; Content.AddSurvivorDef(val); } protected virtual void AddCssPreviewSkill(int indexFromEditor, SkillFamily skillFamily, SkillDef skillDef) { CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("trying to add skillChangeResponse to null CharacterSelectSurvivorPreviewDisplayController.\nMake sure you created one on your Display prefab in editor"); return; } component.skillChangeResponses[indexFromEditor].triggerSkillFamily = skillFamily; component.skillChangeResponses[indexFromEditor].triggerSkill = skillDef; } protected virtual void AddCssPreviewSkin(int indexFromEditor, SkinDef skinDef) { CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("trying to add skinChangeResponse to null CharacterSelectSurvivorPreviewDisplayController.\nMake sure you created one on your Display prefab in editor"); } else { component.skinChangeResponses[indexFromEditor].triggerSkin = skinDef; } } protected virtual void FinalizeCSSPreviewDisplayController() { //IL_0073: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)displayPrefab)) { return; } CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } component.bodyPrefab = bodyPrefab; List list = new List(); for (int i = 0; i < component.skillChangeResponses.Length; i++) { if ((Object)(object)component.skillChangeResponses[i].triggerSkillFamily != (Object)null) { list.Add(component.skillChangeResponses[i]); } } component.skillChangeResponses = list.ToArray(); } } } namespace ArsonistMod.Modules.Achievements { [RegisterAchievement("POPCORN_ARSONIST_BODY_ECLIPSE5UNLOCKABLE_ACHIEVEMENT", "POPCORN_ARSONIST_BODY_ECLIPSE5UNLOCKABLE_REWARD_ID", "POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_ACHIEVEMENT", null)] internal class ArsonistEclipse5Achievement : Unlockables.ModdedUnlockable { public override string AchievementIdentifier { get; } = "POPCORN_ARSONIST_BODY_ECLIPSE5UNLOCKABLE_ACHIEVEMENT_ID"; public override string UnlockableIdentifier { get; } = "POPCORN_ARSONIST_BODY_ECLIPSE5UNLOCKABLE_REWARD_ID"; public override string AchievementNameToken { get; } = "POPCORN_ARSONIST_BODY_ECLIPSE5UNLOCKABLE_UNLOCKABLE_NAME"; public override string UnlockableNameToken { get; } = "POPCORN_ARSONIST_BODY_ECLIPSE5UNLOCKABLE_UNLOCKABLE_NAME"; public override string AchievementDescToken { get; } = "POPCORN_ARSONIST_BODY_ECLIPSE5UNLOCKABLE_ACHIEVEMENT_DESC"; public override Sprite Sprite => Assets.mainAssetBundle.LoadAsset("arsonistGrandmastery"); public override Func GetHowToUnlock { get; } = () => Language.GetStringFormatted("UNLOCK_VIA_ACHIEVEMENT_FORMAT", new object[2] { Language.GetString("POPCORN_ARSONIST_BODY_ECLIPSE5UNLOCKABLE_ACHIEVEMENT_NAME"), Language.GetString("POPCORN_ARSONIST_BODY_ECLIPSE5UNLOCKABLE_ACHIEVEMENT_DESC") }); public override Func GetUnlocked { get; } = () => Language.GetStringFormatted("UNLOCKED_FORMAT", new object[2] { Language.GetString("POPCORN_ARSONIST_BODY_ECLIPSE5UNLOCKABLE_ACHIEVEMENT_NAME"), Language.GetString("POPCORN_ARSONIST_BODY_ECLIPSE5UNLOCKABLE_ACHIEVEMENT_DESC") }); public override string PrerequisiteUnlockableIdentifier { get; } = "POPCORN_ARSONIST_BODY_UNLOCKABLE_REWARD_ID"; public override BodyIndex LookUpRequiredBodyIndex() { //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_0013: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex(CharacterBase.instance.fullBodyName); } public bool TyphoonCheckFunc(RunReport runReport) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) DifficultyIndex typhoonIndex = Typhoon.TyphoonIndex; return typhoonIndex == runReport.ruleBook.FindDifficulty(); } public void ClearCheck(Run run, RunReport runReport) { //IL_004b: Unknown result type (might be due to invalid IL or missing references) if (run != null && runReport != null && Object.op_Implicit((Object)(object)runReport.gameEnding) && runReport.gameEnding.isWin) { DifficultyDef difficultyDef = DifficultyCatalog.GetDifficultyDef(runReport.ruleBook.FindDifficulty()); bool flag = difficultyDef.nameToken == "ECLIPSE_5_NAME" || difficultyDef.nameToken == "ECLIPSE_6_NAME" || difficultyDef.nameToken == "ECLIPSE_7_NAME" || difficultyDef.nameToken == "ECLIPSE_8_NAME"; bool flag2 = false; if (ArsonistPlugin.starstormAvailable) { flag2 = TyphoonCheckFunc(runReport); } bool flag3 = flag || flag2; if (difficultyDef != null && flag3 && ((BaseAchievement)this).meetsBodyRequirement) { ((BaseAchievement)this).Grant(); } } } public override void OnInstall() { base.OnInstall(); Run.onClientGameOverGlobal += ClearCheck; } public override void OnUninstall() { base.OnUninstall(); Run.onClientGameOverGlobal -= ClearCheck; } } [RegisterAchievement("POPCORN_ARSONIST_BODY_ECLIPSE8UNLOCKABLE_ACHIEVEMENT", "POPCORN_ARSONIST_BODY_ECLIPSE8UNLOCKABLE_REWARD_ID", "POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_ACHIEVEMENT", null)] internal class ArsonistEclipse8Achievement : Unlockables.ModdedUnlockable { public override string AchievementIdentifier { get; } = "POPCORN_ARSONIST_BODY_ECLIPSE8UNLOCKABLE_ACHIEVEMENT_ID"; public override string UnlockableIdentifier { get; } = "POPCORN_ARSONIST_BODY_ECLIPSE8UNLOCKABLE_REWARD_ID"; public override string AchievementNameToken { get; } = "POPCORN_ARSONIST_BODY_ECLIPSE8UNLOCKABLE_UNLOCKABLE_NAME"; public override string UnlockableNameToken { get; } = "POPCORN_ARSONIST_BODY_ECLIPSE8UNLOCKABLE_UNLOCKABLE_NAME"; public override string AchievementDescToken { get; } = "POPCORN_ARSONIST_BODY_ECLIPSE8UNLOCKABLE_ACHIEVEMENT_DESC"; public override Sprite Sprite => Assets.mainAssetBundle.LoadAsset("arsonistInferno"); public override Func GetHowToUnlock { get; } = () => Language.GetStringFormatted("UNLOCK_VIA_ACHIEVEMENT_FORMAT", new object[2] { Language.GetString("POPCORN_ARSONIST_BODY_ECLIPSE8UNLOCKABLE_ACHIEVEMENT_NAME"), Language.GetString("POPCORN_ARSONIST_BODY_ECLIPSE8UNLOCKABLE_ACHIEVEMENT_DESC") }); public override Func GetUnlocked { get; } = () => Language.GetStringFormatted("UNLOCKED_FORMAT", new object[2] { Language.GetString("POPCORN_ARSONIST_BODY_ECLIPSE8UNLOCKABLE_ACHIEVEMENT_NAME"), Language.GetString("POPCORN_ARSONIST_BODY_ECLIPSE8UNLOCKABLE_ACHIEVEMENT_DESC") }); public override string PrerequisiteUnlockableIdentifier { get; } = "POPCORN_ARSONIST_BODY_UNLOCKABLE_REWARD_ID"; public override BodyIndex LookUpRequiredBodyIndex() { //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_0013: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex(CharacterBase.instance.fullBodyName); } public bool InfernoCheckFunc(RunReport runReport) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) DifficultyIndex infernoDiffIndex = Main.InfernoDiffIndex; return infernoDiffIndex == runReport.ruleBook.FindDifficulty(); } public void ClearCheck(Run run, RunReport runReport) { //IL_0045: Unknown result type (might be due to invalid IL or missing references) if (run != null && runReport != null && Object.op_Implicit((Object)(object)runReport.gameEnding) && runReport.gameEnding.isWin) { DifficultyDef difficultyDef = DifficultyCatalog.GetDifficultyDef(runReport.ruleBook.FindDifficulty()); bool flag = difficultyDef.nameToken == "ECLIPSE_8_NAME"; bool flag2 = false; if (ArsonistPlugin.infernoAvailable) { flag2 = InfernoCheckFunc(runReport); } bool flag3 = flag || flag2; if (difficultyDef != null && flag3 && ((BaseAchievement)this).meetsBodyRequirement) { ((BaseAchievement)this).Grant(); } } } public override void OnInstall() { base.OnInstall(); Run.onClientGameOverGlobal += ClearCheck; } public override void OnUninstall() { base.OnUninstall(); Run.onClientGameOverGlobal -= ClearCheck; } } [RegisterAchievement("POPCORN_ARSONIST_BODY_FLAMETHROWERUNLOCKABLE_ACHIEVEMENT", "POPCORN_ARSONIST_BODY_FLAMETHROWERUNLOCKABLE_REWARD_ID", null, null)] internal class ArsonistFlamethrowerUnlockable : Unlockables.ModdedUnlockable { public CharacterBody body; public override string AchievementIdentifier { get; } = "POPCORN_ARSONIST_BODY_FLAMETHROWERUNLOCKABLE_ACHIEVEMENT_ID"; public override string UnlockableIdentifier { get; } = "POPCORN_ARSONIST_BODY_FLAMETHROWERUNLOCKABLE_REWARD_ID"; public override string AchievementNameToken { get; } = "POPCORN_ARSONIST_BODY_FLAMETHROWERUNLOCKABLE_UNLOCKABLE_NAME"; public override string UnlockableNameToken { get; } = "POPCORN_ARSONIST_BODY_FLAMETHROWERUNLOCKABLE_UNLOCKABLE_NAME"; public override string AchievementDescToken { get; } = "POPCORN_ARSONIST_BODY_FLAMETHROWERUNLOCKABLE_ACHIEVEMENT_DESC"; public override Sprite Sprite => Assets.mainAssetBundle.LoadAsset("arsonistFlamethrower"); public override Func GetHowToUnlock { get; } = () => Language.GetStringFormatted("UNLOCK_VIA_ACHIEVEMENT_FORMAT", new object[2] { Language.GetString("POPCORN_ARSONIST_BODY_FLAMETHROWERUNLOCKABLE_ACHIEVEMENT_NAME"), Language.GetString("POPCORN_ARSONIST_BODY_FLAMETHROWERUNLOCKABLE_ACHIEVEMENT_DESC") }); public override Func GetUnlocked { get; } = () => Language.GetStringFormatted("UNLOCKED_FORMAT", new object[2] { Language.GetString("POPCORN_ARSONIST_BODY_FLAMETHROWERUNLOCKABLE_ACHIEVEMENT_NAME"), Language.GetString("POPCORN_ARSONIST_BODY_FLAMETHROWERUNLOCKABLE_ACHIEVEMENT_DESC") }); public override string PrerequisiteUnlockableIdentifier { get; } = "POPCORN_ARSONIST_BODY_UNLOCKABLE_REWARD_ID"; public override BodyIndex LookUpRequiredBodyIndex() { //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_0013: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex(CharacterBase.instance.fullBodyName); } public override void OnInstall() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected O, but got Unknown base.OnInstall(); SceneExitController.onBeginExit += onSceneExit; CharacterBody.FixedUpdate += new hook_FixedUpdate(CharacterBody_FixedUpdate); } private void CharacterBody_FixedUpdate(orig_FixedUpdate orig, CharacterBody self) { orig.Invoke(self); if (!Object.op_Implicit((Object)(object)body) && self.baseNameToken == "POPCORN_ARSONIST_BODY_NAME" && self.hasEffectiveAuthority) { body = self; } } public override void OnUninstall() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected O, but got Unknown base.OnUninstall(); SceneExitController.onBeginExit -= onSceneExit; CharacterBody.FixedUpdate -= new hook_FixedUpdate(CharacterBody_FixedUpdate); } private void onSceneExit(SceneExitController obj) { if (Object.op_Implicit((Object)(object)body)) { EnergySystem component = ((Component)body).GetComponent(); if (((BaseAchievement)this).meetsBodyRequirement && Object.op_Implicit((Object)(object)component) && !component.hasOverheatedThisStage) { ((BaseAchievement)this).Grant(); } } } } [RegisterAchievement("POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_ACHIEVEMENT", "POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_REWARD_ID", null, null)] internal class ArsonistUnlockable : Unlockables.ModdedUnlockable { public CharacterBody body; public override string AchievementIdentifier { get; } = "POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_ACHIEVEMENT_ID"; public override string UnlockableIdentifier { get; } = "POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_REWARD_ID"; public override string AchievementNameToken { get; } = "POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_UNLOCKABLE_NAME"; public override string UnlockableNameToken { get; } = "POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_UNLOCKABLE_NAME"; public override string AchievementDescToken { get; } = "POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_ACHIEVEMENT_DESC"; public override Sprite Sprite => Assets.mainAssetBundle.LoadAsset("ArsonistIconUnlock"); public override Func GetHowToUnlock { get; } = () => Language.GetStringFormatted("UNLOCK_VIA_ACHIEVEMENT_FORMAT", new object[2] { Language.GetString("POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_ACHIEVEMENT_NAME"), Language.GetString("POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_ACHIEVEMENT_DESC") }); public override Func GetUnlocked { get; } = () => Language.GetStringFormatted("UNLOCKED_FORMAT", new object[2] { Language.GetString("POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_ACHIEVEMENT_NAME"), Language.GetString("POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_ACHIEVEMENT_DESC") }); public override string PrerequisiteUnlockableIdentifier { get; } = "POPCORN_ARSONIST_BODY_UNLOCKABLE_REWARD_ID"; public override BodyIndex LookUpRequiredBodyIndex() { //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_0013: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex(CharacterBase.instance.fullBodyName); } private void CharacterBody_OnDeathStart(orig_OnDeathStart orig, CharacterBody self) { if (Object.op_Implicit((Object)(object)self) && self.isChampion && (self.HasBuff(Buffs.OnFire) || self.HasBuff(Buffs.StrongerBurn))) { ((BaseAchievement)this).Grant(); } orig.Invoke(self); } public override void OnGranted() { base.OnGranted(); if (Object.op_Implicit((Object)(object)body)) { Util.PlaySound("Arsonist_Masochism_Laugh", ((Component)body).gameObject); } } public override void OnInstall() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected O, but got Unknown base.OnInstall(); CharacterBody.OnDeathStart += new hook_OnDeathStart(CharacterBody_OnDeathStart); CharacterBody.Start += new hook_Start(CharacterBody_Start); } private void CharacterBody_Start(orig_Start orig, CharacterBody self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && self.isPlayerControlled && !Object.op_Implicit((Object)(object)body)) { body = self; } } public override void OnUninstall() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected O, but got Unknown base.OnUninstall(); CharacterBody.OnDeathStart -= new hook_OnDeathStart(CharacterBody_OnDeathStart); CharacterBody.Start -= new hook_Start(CharacterBody_Start); } } [RegisterAchievement("POPCORN_ARSONIST_BODY_MASTERYUNLOCKABLE_ACHIEVEMENT", "POPCORN_ARSONIST_BODY_MASTERYUNLOCKABLE_REWARD_ID", "POPCORN_ARSONIST_BODY_ARSONISTUNLOCKABLE_ACHIEVEMENT", null)] internal class MasteryAchievement : Unlockables.ModdedUnlockable { public override string AchievementIdentifier { get; } = "POPCORN_ARSONIST_BODY_MASTERYUNLOCKABLE_ACHIEVEMENT_ID"; public override string UnlockableIdentifier { get; } = "POPCORN_ARSONIST_BODY_MASTERYUNLOCKABLE_REWARD_ID"; public override string AchievementNameToken { get; } = "POPCORN_ARSONIST_BODY_MASTERYUNLOCKABLE_UNLOCKABLE_NAME"; public override string UnlockableNameToken { get; } = "POPCORN_ARSONIST_BODY_MASTERYUNLOCKABLE_UNLOCKABLE_NAME"; public override string AchievementDescToken { get; } = "POPCORN_ARSONIST_BODY_MASTERYUNLOCKABLE_ACHIEVEMENT_DESC"; public override Sprite Sprite => Assets.mainAssetBundle.LoadAsset("arsonistMastery"); public override Func GetHowToUnlock { get; } = () => Language.GetStringFormatted("UNLOCK_VIA_ACHIEVEMENT_FORMAT", new object[2] { Language.GetString("POPCORN_ARSONIST_BODY_MASTERYUNLOCKABLE_ACHIEVEMENT_NAME"), Language.GetString("POPCORN_ARSONIST_BODY_MASTERYUNLOCKABLE_ACHIEVEMENT_DESC") }); public override Func GetUnlocked { get; } = () => Language.GetStringFormatted("UNLOCKED_FORMAT", new object[2] { Language.GetString("POPCORN_ARSONIST_BODY_MASTERYUNLOCKABLE_ACHIEVEMENT_NAME"), Language.GetString("POPCORN_ARSONIST_BODY_MASTERYUNLOCKABLE_ACHIEVEMENT_DESC") }); public override string PrerequisiteUnlockableIdentifier { get; } = "POPCORN_ARSONIST_BODY_UNLOCKABLE_REWARD_ID"; public override BodyIndex LookUpRequiredBodyIndex() { //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_0013: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex(CharacterBase.instance.fullBodyName); } public void ClearCheck(Run run, RunReport runReport) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) if (run != null && runReport != null && Object.op_Implicit((Object)(object)runReport.gameEnding) && runReport.gameEnding.isWin) { DifficultyDef difficultyDef = DifficultyCatalog.GetDifficultyDef(runReport.ruleBook.FindDifficulty()); if (difficultyDef != null && difficultyDef.countsAsHardMode && ((BaseAchievement)this).meetsBodyRequirement) { ((BaseAchievement)this).Grant(); } } } public override void OnInstall() { base.OnInstall(); Run.onClientGameOverGlobal += ClearCheck; } public override void OnUninstall() { base.OnUninstall(); Run.onClientGameOverGlobal -= ClearCheck; } } }