Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of M4A1 v1.1.4
plugins/M4A1Mod.dll
Decompiled 3 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; 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.Cryptography; using System.Security.Permissions; using System.Text; using AncientScepter; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using EmotesAPI; using EntityStates; using EntityStates.AI.Walker; using EntityStates.Captain.Weapon; using EntityStates.Commando.CommandoWeapon; using EntityStates.MeridianEvent; using EntityStates.Missions.BrotherEncounter; using EntityStates.SolusHeart.PhasePreFightCutscene; using EntityStates.SolusWing2; using EntityStates.SurvivorPod; using EntityStates.Toolbot; using HG; using HG.BlendableTypes; using HarmonyLib; using M4A1Mod.Modules; using M4A1Mod.Modules.Achievements; using M4A1Mod.Modules.Characters; using M4A1Mod.Survivors.M4A1; using M4A1Mod.Survivors.M4A1.Components; using M4A1Mod.Survivors.M4A1.Config; using M4A1Mod.Survivors.M4A1.Config.Common; using M4A1Mod.Survivors.M4A1.Config.DummyLink; using M4A1Mod.Survivors.M4A1.Config.Grenades; using M4A1Mod.Survivors.M4A1.Constants; using M4A1Mod.Survivors.M4A1.Constants.DummyLink; using M4A1Mod.Survivors.M4A1.Constants.Grenades; using M4A1Mod.Survivors.M4A1.Content; using M4A1Mod.Survivors.M4A1.Controllers; using M4A1Mod.Survivors.M4A1.Hooks; using M4A1Mod.Survivors.M4A1.Networking; using M4A1Mod.Survivors.M4A1.SkillStates.Equip; using M4A1Mod.Survivors.M4A1.SkillStates.Grenades; using M4A1Mod.Survivors.M4A1.SkillStates.Helicopter; using M4A1Mod.Survivors.M4A1.SkillStates.SpawnDummyLink; using M4A1Mod.Survivors.M4A1.SkillStates.Weapon; using M4A1Mod.Survivors.M4A1.SkillStates.Weapon.Minigun; using M4A1Mod.Survivors.M4A1.Utils; using On.EntityStates.MeridianEvent; using On.EntityStates.Missions.BrotherEncounter; using On.EntityStates.SolusHeart.PhasePreFightCutscene; using On.EntityStates.SolusWing2; using On.RoR2; using On.RoR2.Skills; using On.RoR2.UI; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using R2API.Utils; using RiskOfOptions; using RiskOfOptions.Options; using RoR2; using RoR2.Achievements; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.Navigation; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Playables; 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.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("M4A1Mod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+94c5e5d9f025da9ba997921442eca0238aba83cc")] [assembly: AssemblyProduct("M4A1Mod")] [assembly: AssemblyTitle("M4A1Mod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace M4A1Mod { internal static class Log { internal enum DebugLevel { None = 0, Normal = 1, Detailed = 5, Spammy = 20, ReallySpammy = 99 } internal static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void DebugConditional(object data, DebugLevel debugLevel = DebugLevel.Normal) { if (M4A1Mod.Survivors.M4A1.Constants.Mod.debugLevel >= (int)debugLevel) { _logSource.LogDebug(data); } } internal static void Error(object data) { _logSource.LogError(data); } internal static void ErrorAssetBundle(string assetName, string bundleName) { Error("failed to load asset, " + assetName + ", because it does not exist in asset bundle, " + bundleName); } 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); } } [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.Snoresville.M4A1", "M4A1", "1.1.3")] public class M4A1Plugin : BaseUnityPlugin { public const string MODUID = "com.Snoresville.M4A1"; public const string MODNAME = "M4A1"; public const string MODVERSION = "1.1.3"; public const string DEVELOPER_PREFIX = "SNORESVILLE"; public static M4A1Plugin instance; private void Awake() { instance = this; Log.Init(((BaseUnityPlugin)this).Logger); Language.Init(); new M4A1Survivor().Initialize(); new ContentPacks().Initialize(); SetupNetworkMessages(); } private void SetupNetworkMessages() { NetworkingAPI.RegisterMessageType<PlaySoundNetworkRequest>(); } } } namespace M4A1Mod.Survivors.M4A1 { public static class AI { private class SkillDriverProps { public string name; public SkillDef requiredSkill = null; public bool requireSkillReady = false; public bool noRepeat = false; public float minDistance = 0f; public float maxDistance = Mathf.Min(new float[4] { M4A1Mod.Survivors.M4A1.Constants.AssaultRifle.maxRange, M4A1Mod.Survivors.M4A1.Constants.Shotgun.maxRange, M4A1Mod.Survivors.M4A1.Constants.ParticleCannon.range, M4A1Mod.Survivors.M4A1.Constants.Minigun.maxRange }); public AISkillDriver nextHighPriorityOverride = null; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static GetDeployableSameSlotLimit <>9__4_0; internal int <Init>b__4_0(CharacterMaster self, int deployable) { return M4A1Mod.Survivors.M4A1.Constants.DummyLink.Skill.maximumDeployed; } } public static GameObject dummyLinkMaster; public static DeployableSlot dummylinkSlot; public static CharacterBody characterBody; public static void Init(GameObject bodyPrefab, string masterName) { //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_020e: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_026f: 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_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_0327: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown dummyLinkMaster = Prefabs.CreateBlankMasterPrefab(bodyPrefab, masterName); object obj = <>c.<>9__4_0; if (obj == null) { GetDeployableSameSlotLimit val = (CharacterMaster self, int deployable) => M4A1Mod.Survivors.M4A1.Constants.DummyLink.Skill.maximumDeployed; <>c.<>9__4_0 = val; obj = (object)val; } dummylinkSlot = DeployableAPI.RegisterDeployableSlot((GetDeployableSameSlotLimit)obj); dummyLinkMaster.gameObject.AddComponent<SetDontDestroyOnLoad>(); characterBody = bodyPrefab.GetComponent<CharacterBody>(); BaseAI component = dummyLinkMaster.GetComponent<BaseAI>(); component.aimVectorDampTime = 0.001f; component.aimVectorMaxSpeed = 9999f; component.fullVision = true; component.enemyAttentionDuration = 5f; float minDistance = 0f; float maxRange = M4A1Mod.Survivors.M4A1.Constants.AssaultRifle.maxRange; float minDistance2 = 0f; float range = M4A1Mod.Survivors.M4A1.Constants.ParticleCannon.range; float maxDistance = 99999f; Secondary(new SkillDriverProps { name = "Generic Secondary", requireSkillReady = true, noRepeat = true }); Utility(new SkillDriverProps { name = "Generic Utility", requireSkillReady = true, noRepeat = true }); Special(new SkillDriverProps { name = "Generic Special", requireSkillReady = true, noRepeat = true }); Primary(new SkillDriverProps { name = "Fire Particle Cannon", requiredSkill = SkillDefs.particleCannon, minDistance = minDistance2, maxDistance = range }); Primary(new SkillDriverProps { name = "Fire Minigun", requiredSkill = SkillDefs.minigun, minDistance = 0f, maxDistance = M4A1Mod.Survivors.M4A1.Constants.Minigun.maxRange }); Primary(new SkillDriverProps { name = "Fire Shotgun", requiredSkill = SkillDefs.shotgun, minDistance = 0f, maxDistance = M4A1Mod.Survivors.M4A1.Constants.Shotgun.maxRange }); Primary(new SkillDriverProps { name = "Fire Assault Rifle", requiredSkill = SkillDefs.assaultRifle, minDistance = minDistance, maxDistance = maxRange }); Primary(new SkillDriverProps { name = "Generic Primary" }); AISkillDriver val2 = dummyLinkMaster.AddComponent<AISkillDriver>(); val2.customName = "Chase"; val2.skillSlot = (SkillSlot)(-1); val2.requireSkillReady = false; val2.minDistance = 0f; val2.maxDistance = maxDistance; val2.moveTargetType = (TargetType)0; val2.activationRequiresTargetLoS = false; val2.activationRequiresAimTargetLoS = false; val2.activationRequiresAimConfirmation = false; val2.movementType = (MovementType)1; val2.moveInputScale = 1f; val2.aimType = (AimType)1; val2.buttonPressType = (ButtonPressType)0; val2.shouldSprint = true; val2.nextHighPriorityOverride = null; val2.driverUpdateTimerOverride = 0.1f; val2.resetCurrentEnemyOnNextDriverSelection = true; val2.noRepeat = false; val2.nextHighPriorityOverride = null; AISkillDriver val3 = dummyLinkMaster.AddComponent<AISkillDriver>(); val3.customName = "Protect Leader"; val3.skillSlot = (SkillSlot)(-1); val3.requireSkillReady = false; val3.minDistance = 0f; val3.maxDistance = float.PositiveInfinity; val3.moveTargetType = (TargetType)2; val3.activationRequiresTargetLoS = false; val3.activationRequiresAimTargetLoS = false; val3.activationRequiresAimConfirmation = false; val3.movementType = (MovementType)1; val3.moveInputScale = 1f; val3.aimType = (AimType)1; val3.buttonPressType = (ButtonPressType)0; val3.shouldSprint = true; val3.driverUpdateTimerOverride = 0.1f; val3.nextHighPriorityOverride = val2; } private static AISkillDriver CreateSkillDriver(SkillSlot slot, SkillDriverProps props) { //IL_0019: 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_00a0: 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_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) AISkillDriver val = dummyLinkMaster.AddComponent<AISkillDriver>(); val.customName = props.name; val.skillSlot = slot; val.requiredSkill = props.requiredSkill; val.requireSkillReady = props.requireSkillReady; val.requireEquipmentReady = false; val.minUserHealthFraction = float.NegativeInfinity; val.maxUserHealthFraction = float.PositiveInfinity; val.minTargetHealthFraction = float.Epsilon; val.maxTargetHealthFraction = float.PositiveInfinity; val.minDistance = props.minDistance; val.maxDistance = props.maxDistance; val.selectionRequiresTargetLoS = true; val.selectionRequiresOnGround = false; val.selectionRequiresAimTarget = true; val.maxTimesSelected = -1; val.moveTargetType = (TargetType)0; val.activationRequiresTargetLoS = false; val.activationRequiresAimTargetLoS = false; val.activationRequiresAimConfirmation = false; val.movementType = (MovementType)2; val.moveInputScale = 1f; val.aimType = (AimType)2; val.ignoreNodeGraph = false; val.shouldSprint = true; val.shouldFireEquipment = M4A1Mod.Survivors.M4A1.Constants.DummyLink.Dummy.autoEquipmentUsage; val.buttonPressType = (ButtonPressType)0; val.driverUpdateTimerOverride = -1f; val.resetCurrentEnemyOnNextDriverSelection = false; val.noRepeat = props.noRepeat; val.nextHighPriorityOverride = props.nextHighPriorityOverride; return val; } private static AISkillDriver Primary(SkillDriverProps props) { return CreateSkillDriver((SkillSlot)0, props); } private static AISkillDriver Secondary(SkillDriverProps props) { return CreateSkillDriver((SkillSlot)1, props); } private static AISkillDriver Utility(SkillDriverProps props) { return CreateSkillDriver((SkillSlot)2, props); } private static AISkillDriver Special(SkillDriverProps props) { return CreateSkillDriver((SkillSlot)3, props); } } public static class Assets { public static GameObject stunGrenadeExplosionEffect; public static GameObject explosiveGrenadeExplosionEffect; public static GameObject incendiaryGrenadeExplosionEffect; public static GameObject smokeGrenadeExplosionEffect; public static GameObject smokeBuffEffect; public static GameObject particleCannonImpactEffect; public static GameObject particleCannonTracerEffect; public static GameObject particleCannonMuzzleFlashEffect; public static GameObject assaultRifleMuzzleFlashEffect; public static GameObject shotgunMuzzleFlashEffect; public static GameObject minigunMuzzleFlashEffect; public static GameObject dummyLinkSpawnTriggerEffect; public static GameObject dummyLinkSpawnLocationEffect; public static GameObject respawnSicknessDebuffEffect; public static GameObject assaultRifleBulletTracerEffect; public static GameObject shotgunBulletTracerEffect; public static GameObject minigunBulletTracerEffect; public static GameObject stunGrenadeProjectilePrefab; public static GameObject explosiveGrenadeProjectilePrefab; public static GameObject incendiaryGrenadeProjectilePrefab; public static GameObject smokeGrenadeProjectilePrefab; public static GameObject incendiaryGrenadeDamageZonePrefab; public static GameObject smokeGrenadeAOEPrefab; public static GameObject helicopterDropPod; public static AssetBundle assetBundle; public static void Init(AssetBundle _assetBundle) { assetBundle = _assetBundle; CreateHelicopterDropPod(); CreateEffects(); CreateProjectiles(); } private static string HashString(string str) { MD5 mD = MD5.Create(); byte[] array = mD.ComputeHash(Encoding.UTF8.GetBytes(str)); mD.Dispose(); return array.ToString(); } private static void CreateHelicopterDropPod() { //IL_0041: 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_0145: 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_01dd: 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) helicopterDropPod = PrefabAPI.InstantiateClone(assetBundle.LoadAsset<GameObject>("HelicopterModel"), "M4A1HelicopterPod", true); ChildLocator component = helicopterDropPod.GetComponent<ChildLocator>(); NetworkIdentity val = helicopterDropPod.AddComponent<NetworkIdentity>(); val.SetDynamicAssetId(NetworkHash128.Parse(HashString("M4A1 Survivor Pod GameObject"))); SurvivorPodController val2 = helicopterDropPod.AddComponent<SurvivorPodController>(); val2.cameraBone = component.FindChild("CameraForward"); Log.DebugConditional(5); ModelLocator val3 = helicopterDropPod.AddComponent<ModelLocator>(); Log.DebugConditional(6); val3.modelTransform = helicopterDropPod.transform.Find("Base/Model"); val3.modelBaseTransform = helicopterDropPod.transform.Find("Base/Model"); val3.modelScaleCompensation = 1f; val3.autoUpdateModelTransform = false; val3.dontDetatchFromParent = false; val3.noCorpse = false; val3.dontReleaseModelOnDeath = false; val3.preserveModel = false; val3.forceCulled = false; val3.normalizeToFloor = false; Log.DebugConditional(7); EntityStateMachine component2 = helicopterDropPod.GetComponent<EntityStateMachine>(); component2.customName = "Main"; component2.initialStateType = new SerializableEntityStateType(typeof(HelicopterIdle)); component2.mainStateType = new SerializableEntityStateType(typeof(HelicopterIdle)); NetworkStateMachine val4 = helicopterDropPod.AddComponent<NetworkStateMachine>(); val4.stateMachines = (EntityStateMachine[])(object)new EntityStateMachine[1] { component2 }; helicopterDropPod.AddComponent<EntityLocator>().entity = helicopterDropPod.gameObject; Log.DebugConditional(9); VehicleSeat component3 = helicopterDropPod.GetComponent<VehicleSeat>(); component3.seatPosition = component.FindChild("Seat"); component3.exitPosition = component.FindChild("ExitPos"); component3.hidePassenger = true; component3.passengerState = new SerializableEntityStateType(typeof(Idle)); component3.exitVehicleContextString = "SNORESVILLE_M4A1_SURVIVOR_POD_EXIT"; component3.disablePassengerMotor = true; component3.isEquipmentActivationAllowed = false; component3.shouldProximityHighlight = false; Log.DebugConditional(11); helicopterDropPod.AddComponent<HelicopterMovementComponent>(); } private static void CreateEffects() { CreateGrenadeEffects(); CreateAssaultRifleEffects(); CreateShotgunEffects(); CreateParticleCannonEffects(); CreateMinigunEffects(); CreateDummyLinkSpawnLocationEffect(); CreateRespawnSicknessEffect(); } private static GameObject CreateTracer(string path, string newTracerName) { //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_005d: 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) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)path).WaitForCompletion(), newTracerName); if (!Object.op_Implicit((Object)(object)val.GetComponent<EffectComponent>())) { val.AddComponent<EffectComponent>(); } if (!Object.op_Implicit((Object)(object)val.GetComponent<VFXAttributes>())) { VFXAttributes val2 = val.AddComponent<VFXAttributes>(); val2.DoNotPool = true; val2.DoNotCullPool = true; val2.vfxIntensity = (VFXIntensity)0; val2.vfxPriority = (VFXPriority)2; } if (!Object.op_Implicit((Object)(object)val.GetComponent<NetworkIdentity>())) { val.AddComponent<NetworkIdentity>(); } val.GetComponent<Tracer>().speed = 250f; val.GetComponent<Tracer>().length = 50f; return val; } private static void CreateAssaultRifleEffects() { //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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Expected O, but got Unknown //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Expected O, but got Unknown assaultRifleMuzzleFlashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Common/VFX/Muzzleflash1.prefab").WaitForCompletion(), "M4A1AssaultRifleMuzzleFlashEffect", true); assaultRifleMuzzleFlashEffect.AddComponent<NetworkIdentity>(); EffectComponent component = assaultRifleMuzzleFlashEffect.GetComponent<EffectComponent>(); component.soundName = "m4a1_shoot"; M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(assaultRifleMuzzleFlashEffect)); assaultRifleBulletTracerEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/TracerCommandoDefault.prefab").WaitForCompletion(), "M4A1AssaultRifleBulletTracerEffect", true); assaultRifleBulletTracerEffect.AddComponent<NetworkIdentity>(); Tracer component2 = assaultRifleBulletTracerEffect.GetComponent<Tracer>(); component2.speed = 500f; M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(assaultRifleBulletTracerEffect)); } private static void CreateShotgunEffects() { //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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Expected O, but got Unknown //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Expected O, but got Unknown shotgunMuzzleFlashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Common/VFX/Muzzleflash1.prefab").WaitForCompletion(), "M4A1AssaultRifleMuzzleFlashEffect", true); shotgunMuzzleFlashEffect.AddComponent<NetworkIdentity>(); EffectComponent component = shotgunMuzzleFlashEffect.GetComponent<EffectComponent>(); component.soundName = "m4a1_shotgun_shoot"; M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(shotgunMuzzleFlashEffect)); shotgunBulletTracerEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/TracerCommandoDefault.prefab").WaitForCompletion(), "M4A1AssaultRifleBulletTracerEffect", true); shotgunBulletTracerEffect.AddComponent<NetworkIdentity>(); Tracer component2 = shotgunBulletTracerEffect.GetComponent<Tracer>(); component2.speed = 500f; M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(shotgunBulletTracerEffect)); } private static void CreateMinigunEffects() { //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_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Expected O, but got Unknown //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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown minigunMuzzleFlashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Common/VFX/Muzzleflash1.prefab").WaitForCompletion(), "M4A1AssaultRifleMuzzleFlashEffect", true); minigunMuzzleFlashEffect.AddComponent<NetworkIdentity>(); M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(minigunMuzzleFlashEffect)); minigunBulletTracerEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/TracerCommandoDefault.prefab").WaitForCompletion(), "M4A1AssaultRifleBulletTracerEffect", true); minigunBulletTracerEffect.AddComponent<NetworkIdentity>(); Tracer component = minigunBulletTracerEffect.GetComponent<Tracer>(); component.speed = 500f; M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(minigunBulletTracerEffect)); } private static void CreateGrenadeEffects() { //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0094: 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_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: 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) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_0190: 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) stunGrenadeExplosionEffect = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("prefabs/effects/lightningstakenova"), "M4A1StunGrenadeExplosionEffect", true); stunGrenadeExplosionEffect.AddComponent<NetworkIdentity>(); EffectComponent component = stunGrenadeExplosionEffect.GetComponent<EffectComponent>(); component.applyScale = true; component.soundName = "m4a1_grenade_stun_detonate"; M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(stunGrenadeExplosionEffect)); explosiveGrenadeExplosionEffect = assetBundle.LoadEffect("ExplosiveGrenadeEffect", parentToTransform: true); component = explosiveGrenadeExplosionEffect.GetComponent<EffectComponent>(); component.applyScale = false; component.soundName = "m4a1_grenade_explosion_detonate"; M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(explosiveGrenadeExplosionEffect)); incendiaryGrenadeExplosionEffect = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("prefabs/effects/lightningstakenova"), "M4A1IncendiaryGrenadeExplosionEffect", true); incendiaryGrenadeExplosionEffect.AddComponent<NetworkIdentity>(); component = incendiaryGrenadeExplosionEffect.GetComponent<EffectComponent>(); component.applyScale = false; component.soundName = "m4a1_grenade_incendiary_detonate"; M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(incendiaryGrenadeExplosionEffect)); smokeGrenadeExplosionEffect = assetBundle.LoadEffect("SmokeGrenadeEffect", "m4a1_grenade_smoke_detonate", parentToTransform: true); component = smokeGrenadeExplosionEffect.GetComponent<EffectComponent>(); ParticleSystem component2 = ((Component)((Component)component).transform.Find("Gas")).GetComponent<ParticleSystem>(); MainModule main = component2.main; ShapeModule shape = ((Component)((Component)component).transform.Find("Gas")).GetComponent<ParticleSystem>().shape; ((MainModule)(ref main)).duration = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.duration; ((ShapeModule)(ref shape)).radius = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.radius; component2 = ((Component)((Component)component).transform.Find("Gas Emitting")).GetComponent<ParticleSystem>(); main = component2.main; shape = ((Component)((Component)component).transform.Find("Gas Emitting")).GetComponent<ParticleSystem>().shape; ((MainModule)(ref main)).duration = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.duration; ((ShapeModule)(ref shape)).radius = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.radius; smokeBuffEffect = assetBundle.LoadEffect("SmokeBuffEffect", parentToTransform: true); Object.DestroyImmediate((Object)(object)smokeBuffEffect.GetComponent<EffectComponent>()); Object.DestroyImmediate((Object)(object)smokeBuffEffect.GetComponent<DestroyOnTimer>()); } private static void CreateParticleCannonEffects() { //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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Expected O, but got Unknown //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: 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_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0155: 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_0191: 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_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_01bf: 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_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: 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_02fd: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_032b: Unknown result type (might be due to invalid IL or missing references) //IL_0330: 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_0360: Expected O, but got Unknown bool flag = true; particleCannonImpactEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/BFG/BeamSphereExplosion.prefab").WaitForCompletion(), "M4A1ParticleCannonImpactEffect", true); particleCannonImpactEffect.AddComponent<NetworkIdentity>(); particleCannonImpactEffect.transform.localScale = new Vector3(0.75f, 0.75f, 0.75f); M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(particleCannonImpactEffect)); Material val = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/ShockNearby/matLightningTeslaSlow.mat").WaitForCompletion()); val.SetTexture("_RemapTex", Addressables.LoadAssetAsync<Texture>((object)"RoR2/Base/Common/ColorRamps/texRampLightning2.png").WaitForCompletion()); val.SetColor("_TintColor", new Color(0f, 1f, 0f)); particleCannonTracerEffect = CreateTracer("RoR2/Base/Huntress/TracerHuntressSnipe.prefab", "M4A1ParticleCannonTracer"); particleCannonTracerEffect.transform.position = new Vector3(0f, 0f, 0f); Tracer component = particleCannonTracerEffect.GetComponent<Tracer>(); component.speed = 100000000f; component.length = 100000000f; if (flag) { M4A1TracerComponentFix m4A1TracerComponentFix = particleCannonTracerEffect.AddComponent<M4A1TracerComponentFix>(); m4A1TracerComponentFix.minDuration = 0.15f; } GameObject beamObject = component.beamObject; Transform transform = beamObject.transform; transform.localScale *= 1.5f; beamObject.GetComponent<ParticleSystemRenderer>().trailMaterial = val; Transform val2 = particleCannonTracerEffect.transform.Find("TracerHead"); val2.localScale *= 0f; MainModule main = beamObject.GetComponent<ParticleSystem>().main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(new Color(0f, 1f, 0f)); EffectComponent component2 = particleCannonTracerEffect.GetComponent<EffectComponent>(); component2.soundName = "m4a1_particle_cannon_impact"; M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(particleCannonTracerEffect)); particleCannonMuzzleFlashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Lightning/LightningStrikeImpact.prefab").WaitForCompletion(), "M4A1ParticleCannonMuzzleFlashEffect"); ((Component)particleCannonMuzzleFlashEffect.transform.Find("LightningRibbon")).gameObject.SetActive(false); ((Component)particleCannonMuzzleFlashEffect.transform.Find("Flash Lines")).gameObject.SetActive(false); ((Component)particleCannonMuzzleFlashEffect.transform.Find("Flash")).gameObject.SetActive(false); ((Component)particleCannonMuzzleFlashEffect.transform.Find("Distortion")).gameObject.SetActive(false); ((Component)particleCannonMuzzleFlashEffect.transform.Find("Sphere")).gameObject.SetActive(false); particleCannonMuzzleFlashEffect.GetComponent<ShakeEmitter>().wave.amplitude *= 0.25f; particleCannonMuzzleFlashEffect.AddComponent<NetworkIdentity>(); Transform val3 = particleCannonMuzzleFlashEffect.transform.Find("Ring"); val3.localScale *= 0.5f; main = ((Component)val3).gameObject.GetComponent<ParticleSystem>().main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(new Color(0f, 1f, 0f)); component2 = particleCannonMuzzleFlashEffect.GetComponent<EffectComponent>(); component2.soundName = "m4a1_particle_cannon_shoot"; M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(particleCannonMuzzleFlashEffect)); } private static void CreateRespawnSicknessEffect() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) respawnSicknessDebuffEffect = assetBundle.LoadEffect("RespawnSicknessDebuffEffect", parentToTransform: true); Object.DestroyImmediate((Object)(object)respawnSicknessDebuffEffect.GetComponent<EffectComponent>()); Object.DestroyImmediate((Object)(object)respawnSicknessDebuffEffect.GetComponent<DestroyOnTimer>()); MainModule main = respawnSicknessDebuffEffect.GetComponentInChildren<ParticleSystem>().main; ((MainModule)(ref main)).duration = M4A1Mod.Survivors.M4A1.Constants.DummyLink.Passive.respawnSicknessTime; } private static void CreateDummyLinkSpawnLocationEffect() { //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_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Expected O, but got Unknown //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Expected O, but got Unknown //IL_00fb: 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_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) //IL_0146: 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_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_022f: 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_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Expected O, but got Unknown GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainHealingWard.prefab").WaitForCompletion(); dummyLinkSpawnLocationEffect = PrefabAPI.InstantiateClone(val, "M4A1DummyLinkSpawnLocationEffect", true); dummyLinkSpawnLocationEffect.AddComponent<NetworkIdentity>(); ((Component)dummyLinkSpawnLocationEffect.transform.Find("Indicator").Find("HealingSymbols")).gameObject.SetActive(false); ((Component)dummyLinkSpawnLocationEffect.transform.Find("Indicator").Find("Flashes")).gameObject.SetActive(false); Transform val2 = dummyLinkSpawnLocationEffect.transform.Find("Indicator").Find("IndicatorRing"); ((Component)val2).gameObject.AddComponent<DummyLinkSpawnEffect>(); EffectComponent val3 = dummyLinkSpawnLocationEffect.AddComponent<EffectComponent>(); val3.soundName = "m4a1_spawn_dummy_link"; val3.parentToReferencedTransform = true; val3.positionAtReferencedTransform = true; val3.noEffectData = false; val3.effectData = new EffectData(); M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(dummyLinkSpawnLocationEffect)); Material val4 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/ShockNearby/matLightningTeslaSlow.mat").WaitForCompletion()); val4.SetTexture("_RemapTex", Addressables.LoadAssetAsync<Texture>((object)"RoR2/Base/Common/ColorRamps/texRampLightning2.png").WaitForCompletion()); val4.SetColor("_TintColor", new Color(1f, 0.24f, 0f)); dummyLinkSpawnTriggerEffect = CreateTracer("RoR2/Base/Huntress/TracerHuntressSnipe.prefab", "M4A1ParticleCannonTracer"); dummyLinkSpawnTriggerEffect.transform.position = new Vector3(0f, 0f, 0f); Tracer component = dummyLinkSpawnTriggerEffect.GetComponent<Tracer>(); component.speed = 100000000f; component.length = 100000000f; M4A1TracerComponentFix m4A1TracerComponentFix = dummyLinkSpawnTriggerEffect.AddComponent<M4A1TracerComponentFix>(); m4A1TracerComponentFix.minDuration = 0.15f; GameObject beamObject = component.beamObject; Transform transform = beamObject.transform; transform.localScale *= 1.2f; beamObject.GetComponent<ParticleSystemRenderer>().trailMaterial = val4; Transform val5 = dummyLinkSpawnTriggerEffect.transform.Find("TracerHead"); val5.localScale *= 0f; MainModule main = beamObject.GetComponent<ParticleSystem>().main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(new Color(1f, 0.24f, 0f)); M4A1Mod.Modules.Content.AddEffectDef(new EffectDef(dummyLinkSpawnTriggerEffect)); } private static void CreateProjectiles() { CreateStunGrenadeProjectile(); CreateExplosiveGrenadeProjectile(); CreateIncendiaryGrenadeProjectile(); CreateSmokeGrenadeProjectile(); } public static void CreateStunGrenadeProjectile() { //IL_0048: 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_00b4: 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_00c0: Unknown result type (might be due to invalid IL or missing references) stunGrenadeProjectilePrefab = MyAssets.CloneProjectilePrefab("CommandoGrenadeProjectile", "M4A1StunGrenadeProjectile"); Object.Destroy((Object)(object)stunGrenadeProjectilePrefab.GetComponent<ProjectileImpactExplosion>()); ProjectileImpactExplosion val = stunGrenadeProjectilePrefab.AddComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)val).blastRadius = M4A1Mod.Survivors.M4A1.Constants.Grenades.Stun.radius; ((ProjectileExplosion)val).blastDamageCoefficient = 1f; ((ProjectileExplosion)val).falloffModel = (FalloffModel)0; val.destroyOnEnemy = true; val.destroyOnWorld = true; val.lifetime = 12f; val.impactEffect = stunGrenadeExplosionEffect; val.timerAfterImpact = true; ((ProjectileExplosion)val).childrenInheritDamageType = true; val.lifetimeAfterImpact = 0.1f; ProjectileDamage component = stunGrenadeProjectilePrefab.GetComponent<ProjectileDamage>(); component.crit = false; component.damage = 0f; component.damageColorIndex = (DamageColorIndex)0; component.damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)131104), (DamageTypeExtended)0, (DamageSource)2); ProjectileController component2 = stunGrenadeProjectilePrefab.GetComponent<ProjectileController>(); if ((Object)(object)assetBundle.LoadAsset<GameObject>("GrenadeStun") != (Object)null) { component2.ghostPrefab = assetBundle.CreateProjectileGhostPrefab("GrenadeStun"); } component2.startSound = ""; M4A1Mod.Modules.Content.AddProjectilePrefab(stunGrenadeProjectilePrefab); } public static void CreateExplosiveGrenadeProjectile() { //IL_0048: 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_00b4: 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_00c0: Unknown result type (might be due to invalid IL or missing references) explosiveGrenadeProjectilePrefab = MyAssets.CloneProjectilePrefab("CommandoGrenadeProjectile", "M4A1ExplosiveGrenadeProjectile"); Object.Destroy((Object)(object)explosiveGrenadeProjectilePrefab.GetComponent<ProjectileImpactExplosion>()); ProjectileImpactExplosion val = explosiveGrenadeProjectilePrefab.AddComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)val).blastRadius = M4A1Mod.Survivors.M4A1.Constants.Grenades.Explosive.radius; ((ProjectileExplosion)val).blastDamageCoefficient = 1f; ((ProjectileExplosion)val).falloffModel = (FalloffModel)0; val.destroyOnEnemy = true; val.destroyOnWorld = true; val.lifetime = 12f; val.impactEffect = explosiveGrenadeExplosionEffect; val.timerAfterImpact = true; ((ProjectileExplosion)val).childrenInheritDamageType = true; val.lifetimeAfterImpact = 0.1f; ProjectileDamage component = explosiveGrenadeProjectilePrefab.GetComponent<ProjectileDamage>(); component.crit = false; component.damage = 0f; component.damageColorIndex = (DamageColorIndex)0; component.damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)131072), (DamageTypeExtended)0, (DamageSource)2); ProjectileController component2 = explosiveGrenadeProjectilePrefab.GetComponent<ProjectileController>(); if ((Object)(object)assetBundle.LoadAsset<GameObject>("GrenadeHighExplosive") != (Object)null) { component2.ghostPrefab = assetBundle.CreateProjectileGhostPrefab("GrenadeExplosive"); } component2.startSound = ""; M4A1Mod.Modules.Content.AddProjectilePrefab(explosiveGrenadeProjectilePrefab); } public static void CreateIncendiaryGrenadeProjectile() { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0111: 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_011d: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) incendiaryGrenadeProjectilePrefab = MyAssets.CloneProjectilePrefab("CommandoGrenadeProjectile", "M4A1IncendiaryGrenadeProjectile"); incendiaryGrenadeDamageZonePrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/Projectiles/SporeGrenadeProjectileDotZone"), "M4A1IncendiaryGrenadeAOE", true); Object.Destroy((Object)(object)incendiaryGrenadeProjectilePrefab.GetComponent<ProjectileImpactExplosion>()); ProjectileImpactExplosion val = incendiaryGrenadeProjectilePrefab.AddComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)val).blastRadius = M4A1Mod.Survivors.M4A1.Constants.Grenades.Incendiary.radius; ((ProjectileExplosion)val).blastDamageCoefficient = M4A1Mod.Survivors.M4A1.Constants.Grenades.Incendiary.contactDamageCoefficient; ((ProjectileExplosion)val).falloffModel = (FalloffModel)0; val.destroyOnEnemy = true; val.destroyOnWorld = true; val.lifetime = M4A1Mod.Survivors.M4A1.Constants.Grenades.Incendiary.duration; val.impactEffect = incendiaryGrenadeExplosionEffect; val.timerAfterImpact = true; val.lifetimeAfterImpact = 0.1f; ((ProjectileExplosion)val).fireChildren = true; ((ProjectileExplosion)val).childrenCount = 1; ((ProjectileExplosion)val).childrenProjectilePrefab = incendiaryGrenadeDamageZonePrefab; ((ProjectileExplosion)val).childrenInheritDamageType = true; ((ProjectileExplosion)val).childrenDamageCoefficient = 1f; incendiaryGrenadeDamageZonePrefab.transform.localScale = Vector3.one * M4A1Mod.Survivors.M4A1.Constants.Grenades.Incendiary.radius; ProjectileDamage component = incendiaryGrenadeProjectilePrefab.GetComponent<ProjectileDamage>(); component.crit = false; component.damage = M4A1Mod.Survivors.M4A1.Constants.Grenades.Incendiary.contactDamageCoefficient; component.damageColorIndex = (DamageColorIndex)0; component.damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)131200), (DamageTypeExtended)0, (DamageSource)2); ProjectileController component2 = incendiaryGrenadeProjectilePrefab.GetComponent<ProjectileController>(); if ((Object)(object)assetBundle.LoadAsset<GameObject>("GrenadeIncendiary") != (Object)null) { component2.ghostPrefab = assetBundle.CreateProjectileGhostPrefab("GrenadeIncendiary"); } component2.startSound = ""; ProjectileDotZone component3 = incendiaryGrenadeDamageZonePrefab.GetComponent<ProjectileDotZone>(); component3.lifetime = M4A1Mod.Survivors.M4A1.Constants.Grenades.Incendiary.duration; component3.damageCoefficient = M4A1Mod.Survivors.M4A1.Constants.Grenades.Incendiary.damageCoefficientPerTick; component3.fireFrequency = 1f; component3.resetFrequency = 1f; ((Component)component3).transform.localScale = Vector3.one * (M4A1Mod.Survivors.M4A1.Constants.Grenades.Incendiary.radius / 6f); ((ProjectileExplosion)val).childrenProjectilePrefab = incendiaryGrenadeDamageZonePrefab; ((ProjectileExplosion)val).childrenCount = 1; M4A1Mod.Modules.Content.AddProjectilePrefab(incendiaryGrenadeProjectilePrefab); PrefabAPI.RegisterNetworkPrefab(incendiaryGrenadeDamageZonePrefab); } public static void CreateSmokeGrenadeProjectile() { //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0107: 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_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) smokeGrenadeProjectilePrefab = MyAssets.CloneProjectilePrefab("CommandoGrenadeProjectile", "M4A1SmokeGrenadeProjectile"); smokeGrenadeAOEPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/Projectiles/SporeGrenadeProjectileDotZone"), "M4A1SmokeGrenadeAOE", true); Object.Destroy((Object)(object)smokeGrenadeProjectilePrefab.GetComponent<ProjectileImpactExplosion>()); Object.Destroy((Object)(object)smokeGrenadeAOEPrefab.GetComponent<ProjectileDotZone>()); Object.DestroyImmediate((Object)(object)((Component)smokeGrenadeAOEPrefab.transform.GetChild(0)).gameObject); ProjectileImpactExplosion val = smokeGrenadeProjectilePrefab.AddComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)val).blastRadius = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.radius; ((ProjectileExplosion)val).blastDamageCoefficient = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.damageCoefficient; ((ProjectileExplosion)val).falloffModel = (FalloffModel)0; val.destroyOnEnemy = true; val.destroyOnWorld = true; val.lifetime = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.duration; val.impactEffect = smokeGrenadeExplosionEffect; val.timerAfterImpact = true; val.lifetimeAfterImpact = 0.1f; ((ProjectileExplosion)val).fireChildren = true; ((ProjectileExplosion)val).childrenInheritDamageType = true; ((ProjectileExplosion)val).childrenCount = 1; ((ProjectileExplosion)val).childrenProjectilePrefab = smokeGrenadeAOEPrefab; ((ProjectileExplosion)val).childrenDamageCoefficient = 1f; smokeGrenadeAOEPrefab.transform.localScale = Vector3.one * M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.radius; ProjectileDamage component = smokeGrenadeProjectilePrefab.GetComponent<ProjectileDamage>(); component.crit = false; component.damage = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.damageCoefficient; component.damageColorIndex = (DamageColorIndex)0; component.damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)131080), (DamageTypeExtended)0, (DamageSource)2); ProjectileController component2 = smokeGrenadeProjectilePrefab.GetComponent<ProjectileController>(); if ((Object)(object)assetBundle.LoadAsset<GameObject>("GrenadeSmoke") != (Object)null) { component2.ghostPrefab = assetBundle.CreateProjectileGhostPrefab("GrenadeSmoke"); } component2.startSound = ""; BuffWard val2 = smokeGrenadeAOEPrefab.AddComponent<BuffWard>(); val2.radius = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.radius; val2.interval = 0.01f; val2.rangeIndicator = null; val2.buffDef = Buffs.smokeGrenadeBuff; val2.buffDuration = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.buffDuration; val2.invertTeamFilter = false; val2.floorWard = false; val2.expires = true; val2.expireDuration = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.duration; val2.animateRadius = false; BuffWard val3 = smokeGrenadeAOEPrefab.AddComponent<BuffWard>(); val3.radius = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.radius; val3.interval = 0.01f; val3.rangeIndicator = null; val3.buffDef = Buffs.smokeGrenadeDebuff; val3.buffDuration = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.buffDuration; val3.invertTeamFilter = true; val3.floorWard = false; val3.expires = true; val3.expireDuration = M4A1Mod.Survivors.M4A1.Constants.Grenades.Smoke.duration; val3.animateRadius = false; M4A1Mod.Modules.Content.AddProjectilePrefab(smokeGrenadeProjectilePrefab); } } public static class Buffs { public static BuffDef introStateBuff; public static BuffDef particleCannonBuff; public static BuffDef minigunBuff; public static BuffDef dummyLinkSpawnCooldown; public static BuffDef smokeGrenadeBuff; public static BuffDef smokeGrenadeDebuff; public static BuffDef respawnSicknessDebuff; static Buffs() { //IL_0035: 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_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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) MakeEquipBuff("ParticleCannon", out particleCannonBuff); MakeEquipBuff("Minigun", out minigunBuff); introStateBuff = M4A1Mod.Modules.Content.CreateAndAddBuff("M4A1IntroStateBuff", Assets.assetBundle.LoadAsset<Sprite>("dummyLink"), Color.clear, canStack: false, isDebuff: false); smokeGrenadeBuff = M4A1Mod.Modules.Content.CreateAndAddBuff("M4A1SmokeGrenadeBuff", Assets.assetBundle.LoadAsset<Sprite>("grenadeSmoke"), Color.white, canStack: false, isDebuff: false); smokeGrenadeDebuff = M4A1Mod.Modules.Content.CreateAndAddBuff("M4A1SmokeGrenadeDebuff", Assets.assetBundle.LoadAsset<Sprite>("grenadeSmoke"), new Color(110f, 0f, 0f), canStack: false, isDebuff: false); respawnSicknessDebuff = M4A1Mod.Modules.Content.CreateAndAddBuff("M4A1RespawnSicknessDebuff", Assets.assetBundle.LoadAsset<Sprite>("respawnSickness"), Color.white, canStack: false, isDebuff: true); dummyLinkSpawnCooldown = M4A1Mod.Modules.Content.CreateAndAddBuff("M4A1dummyLinkSpawnCooldown", Assets.assetBundle.LoadAsset<Sprite>("dummyLink"), new Color(110f, 0f, 0f), canStack: false, isDebuff: true); } private static void MakeEquipBuff(string name, out BuffDef buffDef) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) buffDef = M4A1Mod.Modules.Content.CreateAndAddBuff("M4A1Equip" + name + "Buff", Assets.assetBundle.LoadAsset<Sprite>("equip" + name), Color.white, canStack: false, isDebuff: false); } } internal class Emotes { private static AssetBundle assetBundle; private static CharacterBody m4a1Body; private static string bodyName; private const string emotePrefabName = "mdlM4A1Emotes"; private const string nameToken = "SNORESVILLE_M4A1_NAME"; private static List<Sprite> sprites = new List<Sprite>(); public static void Init(AssetBundle _assetBundle, CharacterBody _characterBody, string _bodyName) { //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 assetBundle = _assetBundle; bodyName = _bodyName; m4a1Body = _characterBody; InitWheelIcons(); SurvivorCatalog.Init += new hook_Init(SurvivorCatalog_Init); CustomEmotesAPI.animChanged += new AnimationChanged(CustomEmotesAPI_animChanged); CustomEmotesAPI.emoteWheelPulledUp += new EmoteWheelPulledUp(CustomEmotesAPI_emoteWheelPulledUp); } public static void InitWheelIcons() { for (int i = 0; i < 10; i++) { sprites.Add(assetBundle.LoadAsset<Sprite>("emoteWheelIcon" + i)); } } private static void CustomEmotesAPI_emoteWheelPulledUp(Sprite wheelSprite, BoneMapper localMapper) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) object obj; if (localMapper == null) { obj = null; } else { GameObject model = localMapper.model; obj = ((model == null) ? null : model.GetComponent<CharacterModel>()?.body); } CharacterBody val = (CharacterBody)obj; EmoteWheel val2 = Object.FindObjectOfType<EmoteWheel>(); if (Object.op_Implicit((Object)(object)val) && val.bodyIndex == m4a1Body.bodyIndex && Object.op_Implicit((Object)(object)val2)) { Transform val3 = ((Component)val2).transform.Find("Center"); if (Object.op_Implicit((Object)(object)val3)) { int index = Random.RandomRangeInt(0, sprites.Count); ((Component)val3).GetComponent<Image>().overrideSprite = sprites[index]; Log.DebugConditional("pulled up " + index); } } } private static void CustomEmotesAPI_animChanged(string newAnimation, BoneMapper mapper) { //IL_0013: 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) CharacterBody body = mapper.model.GetComponent<CharacterModel>().body; if (body.bodyIndex != m4a1Body.bodyIndex) { return; } ((Component)body).gameObject.GetComponent<M4A1WeaponVisibility>()?.UpdateBody(body); List<CharacterMaster> childDummyLinks = M4A1Mod.Survivors.M4A1.Utils.M4A1.GetChildDummyLinks(body); foreach (CharacterMaster item in childDummyLinks) { CharacterBody body2 = item.GetBody(); BoneMapper val = ((body2 != null) ? ((Component)body2.modelLocator.modelTransform).GetComponentInChildren<BoneMapper>() : null); CustomEmotesAPI.PlayAnimation(newAnimation, val, -2); } } private static void SurvivorCatalog_Init(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == bodyName) { CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, assetBundle.LoadAsset<GameObject>("mdlM4A1Emotes"), 0, true); allSurvivorDef.bodyPrefab.GetComponentInChildren<BoneMapper>().scale = 1f; CustomEmotesAPI.CreateNameTokenSpritePair("SNORESVILLE_M4A1_NAME", assetBundle.LoadAsset<Sprite>("emoteWheelIcon0")); } } } } public class ItemDisplays : ItemDisplaysBase { protected override void SetItemDisplayRules(List<KeyAssetRuleGroup> itemDisplayRules) { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: 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_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_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_0127: 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_014f: 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_015e: 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_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_0217: 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_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_024e: 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_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_02c6: 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_031b: 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_033e: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_03b1: Unknown result type (might be due to invalid IL or missing references) //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_0424: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_046f: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_049c: Unknown result type (might be due to invalid IL or missing references) //IL_04a1: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_04fb: Unknown result type (might be due to invalid IL or missing references) //IL_050f: 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_0519: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_0573: Unknown result type (might be due to invalid IL or missing references) //IL_0587: Unknown result type (might be due to invalid IL or missing references) //IL_058c: 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_0596: Unknown result type (might be due to invalid IL or missing references) //IL_05d7: Unknown result type (might be due to invalid IL or missing references) //IL_05eb: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_0609: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_064f: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Unknown result type (might be due to invalid IL or missing references) //IL_0677: Unknown result type (might be due to invalid IL or missing references) //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_0681: Unknown result type (might be due to invalid IL or missing references) //IL_0686: Unknown result type (might be due to invalid IL or missing references) //IL_06c7: 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_06ef: 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_06fe: Unknown result type (might be due to invalid IL or missing references) //IL_073f: Unknown result type (might be due to invalid IL or missing references) //IL_0753: 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_0771: Unknown result type (might be due to invalid IL or missing references) //IL_0776: Unknown result type (might be due to invalid IL or missing references) //IL_07b7: Unknown result type (might be due to invalid IL or missing references) //IL_07cb: Unknown result type (might be due to invalid IL or missing references) //IL_07df: Unknown result type (might be due to invalid IL or missing references) //IL_07e4: Unknown result type (might be due to invalid IL or missing references) //IL_07e9: Unknown result type (might be due to invalid IL or missing references) //IL_07ee: Unknown result type (might be due to invalid IL or missing references) //IL_082f: Unknown result type (might be due to invalid IL or missing references) //IL_0843: Unknown result type (might be due to invalid IL or missing references) //IL_0857: Unknown result type (might be due to invalid IL or missing references) //IL_085c: Unknown result type (might be due to invalid IL or missing references) //IL_0861: Unknown result type (might be due to invalid IL or missing references) //IL_0886: Unknown result type (might be due to invalid IL or missing references) //IL_089a: 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_08b8: Unknown result type (might be due to invalid IL or missing references) //IL_08bd: Unknown result type (might be due to invalid IL or missing references) //IL_08fe: Unknown result type (might be due to invalid IL or missing references) //IL_0912: Unknown result type (might be due to invalid IL or missing references) //IL_0926: 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_0935: Unknown result type (might be due to invalid IL or missing references) //IL_0976: Unknown result type (might be due to invalid IL or missing references) //IL_098a: Unknown result type (might be due to invalid IL or missing references) //IL_099e: Unknown result type (might be due to invalid IL or missing references) //IL_09a3: Unknown result type (might be due to invalid IL or missing references) //IL_09a8: Unknown result type (might be due to invalid IL or missing references) //IL_09cd: Unknown result type (might be due to invalid IL or missing references) //IL_09e1: Unknown result type (might be due to invalid IL or missing references) //IL_09f5: Unknown result type (might be due to invalid IL or missing references) //IL_09fa: 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_0a45: Unknown result type (might be due to invalid IL or missing references) //IL_0a59: Unknown result type (might be due to invalid IL or missing references) //IL_0a6d: Unknown result type (might be due to invalid IL or missing references) //IL_0a72: Unknown result type (might be due to invalid IL or missing references) //IL_0a77: Unknown result type (might be due to invalid IL or missing references) //IL_0a9c: Unknown result type (might be due to invalid IL or missing references) //IL_0ab0: Unknown result type (might be due to invalid IL or missing references) //IL_0ac4: Unknown result type (might be due to invalid IL or missing references) //IL_0ac9: Unknown result type (might be due to invalid IL or missing references) //IL_0ace: Unknown result type (might be due to invalid IL or missing references) //IL_0ad3: Unknown result type (might be due to invalid IL or missing references) //IL_0b14: Unknown result type (might be due to invalid IL or missing references) //IL_0b28: Unknown result type (might be due to invalid IL or missing references) //IL_0b3c: Unknown result type (might be due to invalid IL or missing references) //IL_0b41: Unknown result type (might be due to invalid IL or missing references) //IL_0b46: Unknown result type (might be due to invalid IL or missing references) //IL_0b4b: Unknown result type (might be due to invalid IL or missing references) //IL_0b8c: Unknown result type (might be due to invalid IL or missing references) //IL_0ba0: Unknown result type (might be due to invalid IL or missing references) //IL_0bb4: Unknown result type (might be due to invalid IL or missing references) //IL_0bb9: Unknown result type (might be due to invalid IL or missing references) //IL_0bbe: 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_0c04: Unknown result type (might be due to invalid IL or missing references) //IL_0c18: 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_0c36: Unknown result type (might be due to invalid IL or missing references) //IL_0c3b: Unknown result type (might be due to invalid IL or missing references) //IL_0c7c: Unknown result type (might be due to invalid IL or missing references) //IL_0c90: Unknown result type (might be due to invalid IL or missing references) //IL_0ca4: Unknown result type (might be due to invalid IL or missing references) //IL_0ca9: Unknown result type (might be due to invalid IL or missing references) //IL_0cae: Unknown result type (might be due to invalid IL or missing references) //IL_0cd3: Unknown result type (might be due to invalid IL or missing references) //IL_0ce7: Unknown result type (might be due to invalid IL or missing references) //IL_0cfb: Unknown result type (might be due to invalid IL or missing references) //IL_0d00: Unknown result type (might be due to invalid IL or missing references) //IL_0d05: Unknown result type (might be due to invalid IL or missing references) //IL_0d2a: Unknown result type (might be due to invalid IL or missing references) //IL_0d3e: Unknown result type (might be due to invalid IL or missing references) //IL_0d52: Unknown result type (might be due to invalid IL or missing references) //IL_0d57: Unknown result type (might be due to invalid IL or missing references) //IL_0d5c: Unknown result type (might be due to invalid IL or missing references) //IL_0d81: Unknown result type (might be due to invalid IL or missing references) //IL_0d95: Unknown result type (might be due to invalid IL or missing references) //IL_0da9: Unknown result type (might be due to invalid IL or missing references) //IL_0dae: Unknown result type (might be due to invalid IL or missing references) //IL_0db3: Unknown result type (might be due to invalid IL or missing references) //IL_0db8: Unknown result type (might be due to invalid IL or missing references) //IL_0df9: Unknown result type (might be due to invalid IL or missing references) //IL_0e0d: Unknown result type (might be due to invalid IL or missing references) //IL_0e21: Unknown result type (might be due to invalid IL or missing references) //IL_0e26: Unknown result type (might be due to invalid IL or missing references) //IL_0e2b: Unknown result type (might be due to invalid IL or missing references) //IL_0e30: Unknown result type (might be due to invalid IL or missing references) //IL_0e71: Unknown result type (might be due to invalid IL or missing references) //IL_0e85: Unknown result type (might be due to invalid IL or missing references) //IL_0e99: Unknown result type (might be due to invalid IL or missing references) //IL_0e9e: Unknown result type (might be due to invalid IL or missing references) //IL_0ea3: Unknown result type (might be due to invalid IL or missing references) //IL_0ea8: Unknown result type (might be due to invalid IL or missing references) //IL_0ee9: Unknown result type (might be due to invalid IL or missing references) //IL_0efd: Unknown result type (might be due to invalid IL or missing references) //IL_0f11: Unknown result type (might be due to invalid IL or missing references) //IL_0f16: Unknown result type (might be due to invalid IL or missing references) //IL_0f1b: Unknown result type (might be due to invalid IL or missing references) //IL_0f20: Unknown result type (might be due to invalid IL or missing references) //IL_0f61: Unknown result type (might be due to invalid IL or missing references) //IL_0f75: Unknown result type (might be due to invalid IL or missing references) //IL_0f89: Unknown result type (might be due to invalid IL or missing references) //IL_0f8e: Unknown result type (might be due to invalid IL or missing references) //IL_0f93: Unknown result type (might be due to invalid IL or missing references) //IL_0f98: Unknown result type (might be due to invalid IL or missing references) //IL_0fd9: Unknown result type (might be due to invalid IL or missing references) //IL_0fed: Unknown result type (might be due to invalid IL or missing references) //IL_1001: Unknown result type (might be due to invalid IL or missing references) //IL_1006: Unknown result type (might be due to invalid IL or missing references) //IL_100b: Unknown result type (might be due to invalid IL or missing references) //IL_1010: Unknown result type (might be due to invalid IL or missing references) //IL_1051: Unknown result type (might be due to invalid IL or missing references) //IL_1065: Unknown result type (might be due to invalid IL or missing references) //IL_1079: Unknown result type (might be due to invalid IL or missing references) //IL_107e: Unknown result type (might be due to invalid IL or missing references) //IL_1083: Unknown result type (might be due to invalid IL or missing references) //IL_10a8: Unknown result type (might be due to invalid IL or missing references) //IL_10bc: Unknown result type (might be due to invalid IL or missing references) //IL_10d0: Unknown result type (might be due to invalid IL or missing references) //IL_10d5: Unknown result type (might be due to invalid IL or missing references) //IL_10da: Unknown result type (might be due to invalid IL or missing references) //IL_10df: Unknown result type (might be due to invalid IL or missing references) //IL_1120: Unknown result type (might be due to invalid IL or missing references) //IL_1134: Unknown result type (might be due to invalid IL or missing references) //IL_1148: Unknown result type (might be due to invalid IL or missing references) //IL_114d: Unknown result type (might be due to invalid IL or missing references) //IL_1152: Unknown result type (might be due to invalid IL or missing references) //IL_1177: Unknown result type (might be due to invalid IL or missing references) //IL_118b: Unknown result type (might be due to invalid IL or missing references) //IL_119f: Unknown result type (might be due to invalid IL or missing references) //IL_11a4: Unknown result type (might be due to invalid IL or missing references) //IL_11a9: Unknown result type (might be due to invalid IL or missing references) //IL_11ae: Unknown result type (might be due to invalid IL or missing references) //IL_11ef: Unknown result type (might be due to invalid IL or missing references) //IL_1203: Unknown result type (might be due to invalid IL or missing references) //IL_1217: Unknown result type (might be due to invalid IL or missing references) //IL_121c: Unknown result type (might be due to invalid IL or missing references) //IL_1221: Unknown result type (might be due to invalid IL or missing references) //IL_1226: Unknown result type (might be due to invalid IL or missing references) //IL_1267: Unknown result type (might be due to invalid IL or missing references) //IL_127b: Unknown result type (might be due to invalid IL or missing references) //IL_128f: Unknown result type (might be due to invalid IL or missing references) //IL_1294: Unknown result type (might be due to invalid IL or missing references) //IL_1299: Unknown result type (might be due to invalid IL or missing references) //IL_12be: Unknown result type (might be due to invalid IL or missing references) //IL_12d2: Unknown result type (might be due to invalid IL or missing references) //IL_12e6: Unknown result type (might be due to invalid IL or missing references) //IL_12eb: Unknown result type (might be due to invalid IL or missing references) //IL_12f0: 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_1329: Unknown result type (might be due to invalid IL or missing references) //IL_133d: Unknown result type (might be due to invalid IL or missing references) //IL_1342: Unknown result type (might be due to invalid IL or missing references) //IL_1347: Unknown result type (might be due to invalid IL or missing references) //IL_136c: Unknown result type (might be due to invalid IL or missing references) //IL_1380: Unknown result type (might be due to invalid IL or missing references) //IL_1394: Unknown result type (might be due to invalid IL or missing references) //IL_1399: 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_13e4: Unknown result type (might be due to invalid IL or missing references) //IL_13f8: Unknown result type (might be due to invalid IL or missing references) //IL_140c: Unknown result type (might be due to invalid IL or missing references) //IL_1411: Unknown result type (might be due to invalid IL or missing references) //IL_1416: Unknown result type (might be due to invalid IL or missing references) //IL_143b: Unknown result type (might be due to invalid IL or missing references) //IL_144f: Unknown result type (might be due to invalid IL or missing references) //IL_1463: Unknown result type (might be due to invalid IL or missing references) //IL_1468: Unknown result type (might be due to invalid IL or missing references) //IL_146d: Unknown result type (might be due to invalid IL or missing references) //IL_1492: Unknown result type (might be due to invalid IL or missing references) //IL_14a6: Unknown result type (might be due to invalid IL or missing references) //IL_14ba: Unknown result type (might be due to invalid IL or missing references) //IL_14bf: Unknown result type (might be due to invalid IL or missing references) //IL_14c4: Unknown result type (might be due to invalid IL or missing references) //IL_14e9: Unknown result type (might be due to invalid IL or missing references) //IL_14fd: Unknown result type (might be due to invalid IL or missing references) //IL_1511: Unknown result type (might be due to invalid IL or missing references) //IL_1516: Unknown result type (might be due to invalid IL or missing references) //IL_151b: Unknown result type (might be due to invalid IL or missing references) //IL_1520: Unknown result type (might be due to invalid IL or missing references) //IL_1561: 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_1589: Unknown result type (might be due to invalid IL or missing references) //IL_158e: Unknown result type (might be due to invalid IL or missing references) //IL_1593: Unknown result type (might be due to invalid IL or missing references) //IL_1598: Unknown result type (might be due to invalid IL or missing references) //IL_15d9: Unknown result type (might be due to invalid IL or missing references) //IL_15ed: Unknown result type (might be due to invalid IL or missing references) //IL_1601: Unknown result type (might be due to invalid IL or missing references) //IL_1606: Unknown result type (might be due to invalid IL or missing references) //IL_160b: Unknown result type (might be due to invalid IL or missing references) //IL_1630: Unknown result type (might be due to invalid IL or missing references) //IL_1644: Unknown result type (might be due to invalid IL or missing references) //IL_1658: Unknown result type (might be due to invalid IL or missing references) //IL_165d: Unknown result type (might be due to invalid IL or missing references) //IL_1662: Unknown result type (might be due to invalid IL or missing references) //IL_1667: Unknown result type (might be due to invalid IL or missing references) //IL_16a8: Unknown result type (might be due to invalid IL or missing references) //IL_16bc: Unknown result type (might be due to invalid IL or missing references) //IL_16d0: 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_16ff: 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_1727: Unknown result type (might be due to invalid IL or missing references) //IL_172c: Unknown result type (might be due to invalid IL or missing references) //IL_1731: Unknown result type (might be due to invalid IL or missing references) //IL_1736: Unknown result type (might be due to invalid IL or missing references) //IL_1777: Unknown result type (might be due to invalid IL or missing references) //IL_178b: Unknown result type (might be due to invalid IL or missing references) //IL_179f: Unknown result type (might be due to invalid IL or missing references) //IL_17a4: Unknown result type (might be due to invalid IL or missing references) //IL_17a9: Unknown result type (might be due to invalid IL or missing references) //IL_17ae: Unknown result type (might be due to invalid IL or missing references) //IL_17ef: Unknown result type (might be due to invalid IL or missing references) //IL_1803: Unknown result type (might be due to invalid IL or missing references) //IL_1817: Unknown result type (might be due to invalid IL or missing references) //IL_181c: Unknown result type (might be due to invalid IL or missing references) //IL_1821: Unknown result type (might be due to invalid IL or missing references) //IL_1826: Unknown result type (might be due to invalid IL or missing references) //IL_1867: Unknown result type (might be due to invalid IL or missing references) //IL_187b: Unknown result type (might be due to invalid IL or missing references) //IL_188f: Unknown result type (might be due to invalid IL or missing references) //IL_1894: Unknown result type (might be due to invalid IL or missing references) //IL_1899: Unknown result type (might be due to invalid IL or missing references) //IL_18be: Unknown result type (might be due to invalid IL or missing references) //IL_18d2: Unknown result type (might be due to invalid IL or missing references) //IL_18e6: Unknown result type (might be due to invalid IL or missing references) //IL_18eb: Unknown result type (might be due to invalid IL or missing references) //IL_18f0: Unknown result type (might be due to invalid IL or missing references) //IL_18f5: Unknown result type (might be due to invalid IL or missing references) //IL_1936: 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_195e: 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_196d: Unknown result type (might be due to invalid IL or missing references) //IL_19ae: Unknown result type (might be due to invalid IL or missing references) //IL_19c2: 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_19e0: Unknown result type (might be due to invalid IL or missing references) //IL_1a05: Unknown result type (might be due to invalid IL or missing references) //IL_1a19: Unknown result type (might be due to invalid IL or missing references) //IL_1a2d: Unknown result type (might be due to invalid IL or missing references) //IL_1a32: Unknown result type (might be due to invalid IL or missing references) //IL_1a37: Unknown result type (might be due to invalid IL or missing references) //IL_1a3c: Unknown result type (might be due to invalid IL or missing references) //IL_1a7d: Unknown result type (might be due to invalid IL or missing references) //IL_1a91: Unknown result type (might be due to invalid IL or missing references) //IL_1aa5: Unknown result type (might be due to invalid IL or missing references) //IL_1aaa: Unknown result type (might be due to invalid IL or missing references) //IL_1aaf: Unknown result type (might be due to invalid IL or missing references) //IL_1ad4: Unknown result type (might be due to invalid IL or missing references) //IL_1ae8: Unknown result type (might be due to invalid IL or missing references) //IL_1afc: Unknown result type (might be due to invalid IL or missing references) //IL_1b01: Unknown result type (might be due to invalid IL or missing references) //IL_1b06: Unknown result type (might be due to invalid IL or missing references) //IL_1b0b: Unknown result type (might be due to invalid IL or missing references) //IL_1b4c: Unknown result type (might be due to invalid IL or missing references) //IL_1b60: 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_1b79: 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_1ba3: Unknown result type (might be due to invalid IL or missing references) //IL_1bb7: Unknown result type (might be due to invalid IL or missing references) //IL_1bcb: Unknown result type (might be due to invalid IL or missing references) //IL_1bd0: Unknown result type (might be due to invalid IL or missing references) //IL_1bd5: Unknown result type (might be due to invalid IL or missing references) //IL_1bda: Unknown result type (might be due to invalid IL or missing references) //IL_1c1b: Unknown result type (might be due to invalid IL or missing references) //IL_1c2f: Unknown result type (might be due to invalid IL or missing references) //IL_1c43: Unknown result type (might be due to invalid IL or missing references) //IL_1c48: Unknown result type (might be due to invalid IL or missing references) //IL_1c4d: Unknown result type (might be due to invalid IL or missing references) //IL_1c52: Unknown result type (might be due to invalid IL or missing references) //IL_1c93: Unknown result type (might be due to invalid IL or missing references) //IL_1ca7: Unknown result type (might be due to invalid IL or missing references) //IL_1cbb: Unknown result type (might be due to invalid IL or missing references) //IL_1cc0: Unknown result type (might be due to invalid IL or missing references) //IL_1cc5: Unknown result type (might be due to invalid IL or missing references) //IL_1cca: 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_1d1f: Unknown result type (might be due to invalid IL or missing references) //IL_1d33: Unknown result type (might be due to invalid IL or missing references) //IL_1d38: Unknown result type (might be due to invalid IL or missing references) //IL_1d3d: Unknown result type (might be due to invalid IL or missing references) //IL_1d42: Unknown result type (might be due to invalid IL or missing references) //IL_1d83: Unknown result type (might be due to invalid IL or missing references) //IL_1d97: Unknown result type (might be due to invalid IL or missing references) //IL_1dab: Unknown result type (might be due to invalid IL or missing references) //IL_1db0: Unknown result type (might be due to invalid IL or missing references) //IL_1db5: Unknown result type (might be due to invalid IL or missing references) //IL_1dba: Unknown result type (might be due to invalid IL or missing references) //IL_1dfb: Unknown result type (might be due to invalid IL or missing references) //IL_1e0f: Unknown result type (might be due to invalid IL or missing references) //IL_1e23: Unknown result type (might be due to invalid IL or missing references) //IL_1e28: Unknown result type (might be due to invalid IL or missing references) //IL_1e2d: Unknown result type (might be due to invalid IL or missing references) //IL_1e32: Unknown result type (might be due to invalid IL or missing references) //IL_1e73: 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_1e9b: Unknown result type (might be due to invalid IL or missing references) //IL_1ea0: Unknown result type (might be due to invalid IL or missing references) //IL_1ea5: Unknown result type (might be due to invalid IL or missing references) //IL_1eaa: Unknown result type (might be due to invalid IL or missing references) //IL_1eeb: Unknown result type (might be due to invalid IL or missing references) //IL_1eff: Unknown result type (might be due to invalid IL or missing references) //IL_1f13: 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_1f42: Unknown result type (might be due to invalid IL or missing references) //IL_1f56: Unknown result type (might be due to invalid IL or missing references) //IL_1f6a: Unknown result type (might be due to invalid IL or missing references) //IL_1f6f: Unknown result type (might be due to invalid IL or missing references) //IL_1f74: Unknown result type (might be due to invalid IL or missing references) //IL_1f79: Unknown result type (might be due to invalid IL or missing references) //IL_1fba: Unknown result type (might be due to invalid IL or missing references) //IL_1fce: Unknown result type (might be due to invalid IL or missing references) //IL_1fe2: Unknown result type (might be due to invalid IL or missing references) //IL_1fe7: Unknown result type (might be due to invalid IL or missing references) //IL_1fec: Unknown result type (might be due to invalid IL or missing references) //IL_1ff1: Unknown result type (might be due to invalid IL or missing references) //IL_2032: Unknown result type (might be due to invalid IL or missing references) //IL_2046: Unknown result type (might be due to invalid IL or missing references) //IL_205a: Unknown result type (might be due to invalid IL or missing references) //IL_205f: Unknown result type (might be due to invalid IL or missing references) //IL_2064: Unknown result type (might be due to invalid IL or missing references) //IL_2069: Unknown result type (might be due to invalid IL or missing references) //IL_20aa: Unknown result type (might be due to invalid IL or missing references) //IL_20be: Unknown result type (might be due to invalid IL or missing references) //IL_20d2: Unknown result type (might be due to invalid IL or missing references) //IL_20d7: 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_20e1: Unknown result type (might be due to invalid IL or missing references) //IL_2122: Unknown result type (might be due to invalid IL or missing references) //IL_2136: 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_214f: Unknown result type (might be due to invalid IL or missing references) //IL_2154: Unknown result type (might be due to invalid IL or missing references) //IL_2159: Unknown result type (might be due to invalid IL or missing references) //IL_219a: Unknown result type (might be due to invalid IL or missing references) //IL_21ae: Unknown result type (might be due to invalid IL or missing references) //IL_21c2: Unknown result type (might be due to invalid IL or missing references) //IL_21c7: Unknown result type (might be due to invalid IL or missing references) //IL_21cc: 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_2205: Unknown result type (might be due to invalid IL or missing references) //IL_2219: Unknown result type (might be due to invalid IL or missing references) //IL_221e: Unknown result type (might be due to invalid IL or missing references) //IL_2223: Unknown result type (might be due to invalid IL or missing references) //IL_2228: Unknown result type (might be due to invalid IL or missing references) //IL_2269: Unknown result type (might be due to invalid IL or missing references) //IL_227d: Unknown result type (might be due to invalid IL or missing references) //IL_2291: Unknown result type (might be due to invalid IL or missing references) //IL_2296: Unknown result type (might be due to invalid IL or missing references) //IL_229b: Unknown result type (might be due to invalid IL or missing references) //IL_22a0: Unknown result type (might be due to invalid IL or missing references) //IL_22e1: Unknown result type (might be due to invalid IL or missing references) //IL_22f5: Unknown result type (might be due to invalid IL or missing references) //IL_2309: Unknown result type (might be due to invalid IL or missing references) //IL_230e: Unknown result type (might be due to invalid IL or missing references) //IL_2313: Unknown result type (might be due to invalid IL or missing references) //IL_2338: 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_2360: Unknown result type (might be due to invalid IL or missing references) //IL_2365: Unknown result type (might be due to invalid IL or missing references) //IL_236a: Unknown result type (might be due to invalid IL or missing references) //IL_236f: Unknown result type (might be due to invalid IL or missing references) //IL_23b0: Unknown result type (might be due to invalid IL or missing references) //IL_23c4: 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_23dd: 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_23e7: Unknown result type (might be due to invalid IL or missing references) //IL_2428: Unknown result type (might be due to invalid IL or missing references) //IL_243c: Unknown result type (might be due to invalid IL or missing references) //IL_2450: Unknown result type (might be due to invalid IL or missing references) //IL_2455: Unknown result type (might be due to invalid IL or missing references) //IL_245a: Unknown result type (might be due to invalid IL or missing references) //IL_247f: Unknown result type (might be due to invalid IL or missing references) //IL_2493: Unknown result type (might be due to invalid IL or missing references) //IL_24a7: Unknown result type (might be due to invalid IL or missing references) //IL_24ac: Unknown result type (might be due to invalid IL or missing references) //IL_24b1: Unknown result type (might be due to invalid IL or missing references) //IL_24b6: Unknown result type (might be due to invalid IL or missing references) //IL_24f7: Unknown result type (might be due to invalid IL or missing references) //IL_250b: Unknown result type (might be due to invalid IL or missing references) //IL_251f: Unknown result type (might be due to invalid IL or missing references) //IL_2524: Unknown result type (might be due to invalid IL or missing references) //IL_2529: Unknown result type (might be due to invalid IL or missing references) //IL_252e: Unknown result type (might be due to invalid IL or missing references) //IL_256f: Unknown result type (might be due to invalid IL or missing references) //IL_2583: Unknown result type (might be due to invalid IL or missing references) //IL_2597: Unknown result type (might be due to invalid IL or missing references) //IL_259c: 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_25c6: Unknown result type (might be due to invalid IL or missing references) //IL_25da: Unknown result type (might be due to invalid IL or missing references) //IL_25ee: Unknown result type (might be due to invalid IL or missing references) //IL_25f3: Unknown result type (might be due to invalid IL or missing references) //IL_25f8: Unknown result type (might be due to invalid IL or missing references) //IL_25fd: Unknown result type (might be due to invalid IL or missing references) //IL_263e: Unknown result type (might be due to invalid IL or missing references) //IL_2652: Unknown result type (might be due to invalid IL or