Decompiled source of Aatrox v4.4.0
Aatrox.dll
Decompiled a month 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.Permissions; using Aatrox; using Aatrox.Achievements; using Aatrox.Main; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using EmotesAPI; using EntityStates; using EntityStates.Aatrox; using EntityStates.Aatrox.Gun; using EntityStates.Aatrox.Rhaast; using EntityStates.BeetleGuardMonster; using EntityStates.Boris; using EntityStates.ClayBruiser.Weapon; using EntityStates.Commando.CommandoWeapon; using EntityStates.GolemMonster; using EntityStates.Huntress; using EntityStates.ImpBossMonster; using EntityStates.ImpMonster; using EntityStates.LemurianBruiserMonster; using EntityStates.Merc; using HG; using IL.RoR2; using KinematicCharacterController; using Mono.Cecil.Cil; using MonoMod.Cil; using On.RoR2; using On.RoR2.UI; using R2API; using R2API.Utils; using Rewired; using Rewired.Data; using RoR2; using RoR2.Achievements; using RoR2.ContentManagement; using RoR2.Navigation; using RoR2.Orbs; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = "")] [assembly: AssemblyCompany("Aatrox")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Aatrox")] [assembly: AssemblyTitle("Aatrox")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Aatrox { public class AatroxController : MonoBehaviour { public int skillUseCount = 0; public bool massacreFull; public float attackSpeedMod; public float damageBonus; public float armorBonus; private float minAttackSpeed; private float maxAttackSpeed; private int maxStacks; private int currentStacks; private float stackDamage; private float stackArmor; private float minHealthCost; private float maxHealthCost; private float maxMassacreBonusTimer; private float currentMassacreTimer; private float bladeSoundTimer; private CharacterBody charBody; private CharacterMotor charMotor; private HealthComponent charHealth; private InputBankTest inputBank; private ChildLocator childLocator; private Animator animator; private ParticleSystem priceFX; private ParticleSystem thirstFX; private ParticleSystem massacreFX; private ParticleSystem massacreCancelFX; private ParticleSystem darkFlightFX; private ParticleSystem healFX; private Transform chest; public StyleMeter styleMeter; private bool bladeStance; public bool massacre; public bool super; private bool transformationReady; public uint massacrePlayID; public uint buryTheLightSystemID; private void Awake() { //IL_0084: Unknown result type (might be due to invalid IL or missing references) massacrePlayID = 0u; massacre = false; massacreFull = false; minAttackSpeed = 0f; maxAttackSpeed = 0.75f; maxStacks = 20; stackDamage = 0.05f; stackArmor = 4f; minHealthCost = 0.06f; maxHealthCost = 6f; maxMassacreBonusTimer = 200f; if (AatroxPlugin.buryTheLight.Value) { AkSoundEngine.SetState("Ranking", "F"); buryTheLightSystemID = Util.PlaySound("Bury_The_Light_System", ((Component)this).gameObject); } } private void Start() { //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) ParticleSystem[] componentsInChildren = ((Component)this).GetComponentsInChildren<ParticleSystem>(); foreach (ParticleSystem val in componentsInChildren) { if (((Object)((Component)val).transform.parent).name == "PriceEffect") { priceFX = val; } if (((Object)((Component)val).transform.parent).name == "ThirstEffect") { thirstFX = val; } if (((Object)((Component)val).transform.parent).name == "MassacreEffect") { massacreFX = val; chest = ((Component)val).transform.parent.parent; } if (((Object)((Component)val).transform.parent).name == "MassacreCancelEffect") { massacreCancelFX = val; } if (((Object)((Component)val).transform.parent).name == "DarkFlightEffect") { darkFlightFX = val; } if (((Object)((Component)val).transform.parent).name == "HealEffect") { healFX = val; } } charBody = ((Component)this).GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)charBody)) { charHealth = charBody.healthComponent; } charMotor = ((Component)this).GetComponentInChildren<CharacterMotor>(); inputBank = ((Component)this).GetComponentInChildren<InputBankTest>(); childLocator = ((Component)charBody.modelLocator.modelTransform).GetComponent<ChildLocator>(); animator = ((Component)childLocator).GetComponent<Animator>(); ((MonoBehaviour)this).Invoke("WorldEnderCheck", 0.1f); ((MonoBehaviour)this).Invoke("EnableThirst", 0.5f); ((MonoBehaviour)this).InvokeRepeating("Fuck", 0.5f, 0.1f); ((MonoBehaviour)this).InvokeRepeating("MassacreCheck", 1f, 1f); super = false; if (Object.op_Implicit((Object)(object)charBody) && charBody.skinIndex == 3) { super = true; ChargeUltimate(1); } if (AatroxPlugin.wideAatrox.Value && Object.op_Implicit((Object)(object)charBody) && Object.op_Implicit((Object)(object)charBody.modelLocator)) { Vector3 localScale = charBody.modelLocator.modelBaseTransform.localScale; localScale.x *= 2f; charBody.modelLocator.modelBaseTransform.localScale = localScale; } if (AatroxPlugin.bigHead.Value && Object.op_Implicit((Object)(object)childLocator)) { Transform transform = ((Component)childLocator.FindChild("Head")).transform; transform.localScale *= 2.5f; } HideWeapon(); } private void HideWeapon() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) Transform val = childLocator.FindChild("Weapon"); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).transform.localScale = Vector3.one * 0.01f; } val = childLocator.FindChild("Rhaast"); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.SetActive(false); } val = childLocator.FindChild("GauntletL"); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.SetActive(false); } val = childLocator.FindChild("GauntletR"); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.SetActive(false); } } public void ResetWeapon() { int weapon = GetWeapon(); EquipWeapon(weapon); SetCrosshair(weapon); } private int GetWeapon() { if (Object.op_Implicit((Object)(object)charBody) && Object.op_Implicit((Object)(object)charBody.skillLocator)) { if (charBody.skillLocator.primary.skillDef.skillNameToken == "AATROX_PRIMARY_SLASH_NAME") { return 0; } if (charBody.skillLocator.primary.skillDef.skillNameToken == "AATROX_PRIMARY_SCYTHE_NAME") { return 1; } if (charBody.skillLocator.primary.skillDef.skillNameToken == "AATROX_PRIMARY_GUN_NAME") { return 2; } if (charBody.skillLocator.primary.skillDef.skillNameToken == "SKILL_LUNAR_PRIMARY_REPLACEMENT_NAME") { return 3; } } return -1; } private void SetCrosshair(int weaponIndex) { if (Object.op_Implicit((Object)(object)charBody)) { switch (weaponIndex) { case 0: charBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/Crosshair/SimpleDotCrosshair"); break; case 1: charBody._defaultCrosshairPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/Crosshair/SimpleDotCrosshair"); break; case 2: charBody._defaultCrosshairPrefab = AatroxPlugin.gunCrosshair; break; case 3: charBody._defaultCrosshairPrefab = AatroxPlugin.needlerCrosshair; break; } } } public void EquipWeapon(int weaponIndex) { //IL_0047: Unknown result type (might be due to invalid IL or missing references) HideWeapon(); Transform val = null; switch (weaponIndex) { case 0: val = childLocator.FindChild("Weapon"); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).transform.localScale = Vector3.one; } break; case 1: val = childLocator.FindChild("Rhaast"); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.SetActive(true); } break; case 2: val = childLocator.FindChild("GauntletL"); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.SetActive(true); } val = childLocator.FindChild("GauntletR"); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.SetActive(true); } break; } } private void CheckIcon() { if (charBody.skillLocator.special.stock >= 150) { if (!transformationReady) { transformationReady = true; ((Component)childLocator.FindChild("ChestLightning")).gameObject.SetActive(true); Util.PlaySound("BorisUltReady", ((Component)this).gameObject); } if (Object.op_Implicit((Object)(object)charBody.skillLocator) && charBody.skillLocator.special.skillDef.skillNameToken == "AATROX_SPECIAL_WORLDENDERINACTIVE_NAME") { charBody.skillLocator.special.SetBaseSkill(AatroxPlugin.worldEnderDef); } } } public void ChargeUltimate(int toCharge) { if (charBody.skillLocator.special.stock >= 150) { CheckIcon(); return; } for (int i = 0; i < toCharge; i++) { if (charBody.skillLocator.special.stock >= 150) { CheckIcon(); break; } charBody.skillLocator.special.AddOneStock(); if (Object.op_Implicit((Object)(object)styleMeter) && styleMeter.styleScore >= 95f) { charBody.skillLocator.special.AddOneStock(); } } } private void WorldEnderCheck() { if (!super && Object.op_Implicit((Object)(object)charBody.skillLocator) && charBody.skillLocator.special.skillDef.skillNameToken == "AATROX_SPECIAL_WORLDENDER_NAME") { charBody.skillLocator.special.SetBaseSkill(AatroxPlugin.worldEnderInactiveDef); charBody.skillLocator.special.RemoveAllStocks(); } } private void Fuck() { if (!Object.op_Implicit((Object)(object)inputBank) || !Object.op_Implicit((Object)(object)charBody.skillLocator) || !(charBody.skillLocator.secondary.skillDef.skillNameToken == "AATROX_SECONDARY_COMBO_NAME")) { return; } bool flag = bladeStance; if (inputBank.skill2.down) { bladeStance = true; } else { bladeStance = false; } if (bladeStance != flag) { if (bladeStance) { EnablePrice(); } else { EnableThirst(); } } } public void AddStyle(float coefficient) { if (Object.op_Implicit((Object)(object)styleMeter)) { styleMeter.AddStyle(coefficient); } } private void MassacreCheck() { //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Expected O, but got Unknown //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) if (!massacre || !NetworkServer.active || !Object.op_Implicit((Object)(object)charHealth)) { return; } if (!super) { float healthCost = GetHealthCost(); healthCost = charHealth.combinedHealth * healthCost; healthCost /= 0.9f + 0.1f * charBody.level; DamageInfo val = new DamageInfo(); val.damage = healthCost; val.position = charBody.corePosition; val.force = Vector3.zero; val.damageColorIndex = (DamageColorIndex)2; val.crit = false; val.attacker = null; val.inflictor = null; val.damageType = DamageTypeCombo.op_Implicit((DamageType)1); val.procCoefficient = 0f; val.procChainMask = default(ProcChainMask); bool flag = true; if (Object.op_Implicit((Object)(object)styleMeter) && styleMeter.styleScore >= 95f) { flag = false; } if (flag) { charHealth.TakeDamage(val); } } AddMassacreStack(); } public void AddMassacreStack() { if (massacre) { currentStacks = Mathf.Clamp(currentStacks + 1, 0, maxStacks + 1); if (currentStacks >= 1 + maxStacks && !massacreFull) { massacreFull = true; Util.PlayAttackSpeedSound("MassacreCast", ((Component)this).gameObject, 4f); ((Component)childLocator.FindChild("SwordLightning")).gameObject.SetActive(true); animator.SetFloat("ultActive", 1f); } if (currentStacks < 1 + maxStacks && Object.op_Implicit((Object)(object)charBody) && NetworkServer.active) { charBody.AddBuff(AatroxPlugin.massacreBuff); } } } public bool CastMassacre() { //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) massacreFull = false; ((Component)childLocator.FindChild("SwordLightning")).gameObject.SetActive(false); animator.SetFloat("ultActive", 0f); if (massacre) { AatroxPlugin.devilTriggerActive--; massacre = false; currentMassacreTimer = Time.time; if (Object.op_Implicit((Object)(object)massacreFX)) { massacreFX.Stop(); } if (Object.op_Implicit((Object)(object)massacreCancelFX)) { massacreCancelFX.Play(); } if (!AatroxPlugin.buryTheLight.Value) { if (AatroxPlugin.devilTrigger.Value) { massacrePlayID = Util.PlaySound("Devil_Trigger_Pause", ((Component)this).gameObject); } else { AkSoundEngine.StopPlayingID(massacrePlayID); } } } else { AatroxPlugin.devilTriggerActive++; massacre = true; currentMassacreTimer = Time.time; currentStacks = 1; if (Object.op_Implicit((Object)(object)massacreFX)) { massacreFX.Play(); } if (!Object.op_Implicit((Object)(object)chest)) { chest = ((Component)this).transform; } GameObject val = Object.Instantiate<GameObject>(Assets.massacreFX, chest.position, chest.rotation); val.transform.SetParent(chest); Object.Destroy((Object)(object)val, 8f); if (!AatroxPlugin.buryTheLight.Value) { if (AatroxPlugin.devilTrigger.Value) { if (massacrePlayID == 0) { massacrePlayID = Util.PlaySound("Devil_Trigger", ((Component)this).gameObject); } else { massacrePlayID = Util.PlaySound("Devil_Trigger_Resume", ((Component)this).gameObject); } } else { massacrePlayID = Util.PlaySound("MassacreLoop", ((Component)this).gameObject); } } } return massacre; } public void StartDive() { if (Object.op_Implicit((Object)(object)darkFlightFX)) { darkFlightFX.Play(); } } public void EndDive() { if (Object.op_Implicit((Object)(object)darkFlightFX)) { darkFlightFX.Stop(); } } public void PlayHealEffect() { if (Object.op_Implicit((Object)(object)healFX)) { healFX.Play(); } } public void EnablePrice() { if (Time.time > bladeSoundTimer + 0.2f) { Util.PlaySound("PriceToggle", ((Component)this).gameObject); } bladeSoundTimer = Time.time; if (Object.op_Implicit((Object)(object)priceFX)) { priceFX.Play(); } if (Object.op_Implicit((Object)(object)thirstFX)) { thirstFX.Stop(); } } public void EnableThirst() { if (Time.time > bladeSoundTimer + 0.2f) { Util.PlaySound("ThirstToggle", ((Component)this).gameObject); } bladeSoundTimer = Time.time; if (Object.op_Implicit((Object)(object)priceFX)) { priceFX.Stop(); } if (Object.op_Implicit((Object)(object)thirstFX)) { thirstFX.Play(); } } public float GetDamage() { return (float)currentStacks * stackDamage; } public float GetArmor() { return (float)currentStacks * stackArmor; } public float GetHealthCost() { float num = Time.time - currentMassacreTimer; if (num > maxMassacreBonusTimer) { num = maxMassacreBonusTimer; } float result = Mathf.Lerp(minHealthCost, maxHealthCost, num / maxMassacreBonusTimer); if (!massacre || currentMassacreTimer == 0f) { result = 0f; } return result; } public float GetAttackSpeed() { float result = 0f; if (Object.op_Implicit((Object)(object)charHealth)) { result = Mathf.Lerp(maxAttackSpeed, minAttackSpeed, charHealth.combinedHealth / charHealth.fullCombinedHealth); } return result; } public void SelfDamage() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006d: 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_00a4: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active) { if (!super && Object.op_Implicit((Object)(object)charHealth)) { DamageInfo val = new DamageInfo(); val.damage = charHealth.combinedHealth * 0.25f; val.position = charBody.corePosition; val.force = Vector3.zero; val.damageColorIndex = (DamageColorIndex)2; val.crit = false; val.attacker = null; val.inflictor = null; val.damageType = DamageTypeCombo.op_Implicit((DamageType)1); val.procCoefficient = 0f; val.procChainMask = default(ProcChainMask); charHealth.TakeDamage(val); } if (!super && Object.op_Implicit((Object)(object)charBody.skillLocator) && charBody.skillLocator.special.skillDef.skillNameToken == "AATROX_SPECIAL_WORLDENDERINACTIVE_NAME") { ChargeUltimate(3); } } } public void EndSkill() { ((MonoBehaviour)this).Invoke("SkillShit", 0.2f); } private void SkillShit() { skillUseCount--; } private void OnDestroy() { if (massacre) { AatroxPlugin.devilTriggerActive--; } if (massacrePlayID != 0) { AkSoundEngine.StopPlayingID(massacrePlayID); } if (AatroxPlugin.buryTheLight.Value) { AkSoundEngine.StopPlayingID(buryTheLightSystemID); } } } [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.*/)] [BepInPlugin("com.rob.Aatrox", "Aatrox", "4.4.0")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class AatroxPlugin : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__62_1; public static Func<bool, bool> <>9__62_2; public static Manipulator <>9__62_0; internal void <ReadConfig>b__62_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val = new ILCursor(il); int num = default(int); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction i) => ILPatternMatchingExt.MatchStloc(i, ref num) }); val.EmitDelegate<Func<bool, bool>>((Func<bool, bool>)((bool b) => b || devilTriggerActive != 0)); } internal bool <ReadConfig>b__62_1(Instruction i) { int num = default(int); return ILPatternMatchingExt.MatchStloc(i, ref num); } internal bool <ReadConfig>b__62_2(bool b) { if (b) { return true; } return devilTriggerActive != 0; } } internal static AatroxPlugin instance; public const string MODUID = "com.rob.Aatrox"; public static int devilTriggerActive = 0; public static float baseHealAmount = 0.05f; public static int borisPrimaryCost = 10; public static int borisSecondaryCost = 4; public static int borisUtilityCost = 10; public static GameObject aatroxPrefab; public static GameObject characterDisplay; public GameObject doppelganger; public static GameObject borisPrefab; public static GameObject infiniteBorisPrefab; public GameObject borisDisplay; public GameObject borisDoppelganger; public static GameObject gunCrosshair; public static GameObject needlerCrosshair; public static SkillDef massacreDef; public static SkillDef massacreCancelDef; public static SkillDef worldEnderDef; public static SkillDef worldEnderInactiveDef; public static GameObject bladeProjectile; public static GameObject blastProjectile; public static GameObject luceProjectile; public static BuffDef massacreBuff; public static BuffDef worldEnderBuff; public static string aatroxLore = "\n''Some fight for honor, some fight for glory. It matters only that you fight.''\n\nAatrox is a legendary warrior, one of only five that remain of an ancient race known as the Darkin. He wields his massive blade with grace and poise, slicing through legions in a style that is hypnotic to behold. With each foe felled, Aatrox's seemingly living blade drinks in their blood, empowering him and fueling his brutal, elegant campaign of slaughter."; public static string aatroxEnding = "..and so he left, war still raging within."; public static string borisLore = "\n''I must destroy even hope...''\n\nOnce honored defenders against the Void, Aatrox and his brethren would eventually become an even greater threat to the world, and were defeated only by cunning mortal sorcery. But after centuries of imprisonment, Aatrox was the first to find freedom once more, corrupting and transforming those foolish enough to try and wield the magical weapon that contained his essence. Now, with stolen flesh, he walks the land in a brutal approximation of his previous form, seeking an apocalyptic and long overdue vengeance ."; public static string borisEnding = "..and so he left, leaving nothing but carnage in his wake."; public static readonly Color aatroxColor = new Color(0.86f, 0.07f, 0.23f); private static Dictionary<string, GameObject> itemDisplayPrefabs = new Dictionary<string, GameObject>(); public static ConfigEntry<bool> buryTheLight; public static ConfigEntry<bool> devilTrigger; public static ConfigEntry<bool> boris; public static ConfigEntry<bool> wideAatrox; public static ConfigEntry<bool> bigHead; public static ConfigEntry<bool> styleUI; public static ConfigEntry<bool> enableItemDisplays; public static ConfigEntry<bool> classicSkins; public static ConfigEntry<bool> enableEmoteAPI; public static ConfigEntry<float> styleMultiplier; public static ConfigEntry<KeyCode> danceKeybind; public static ConfigEntry<KeyCode> swapKeybind; public static ConfigEntry<KeyCode> swordmasterBackKeybind; public static ConfigEntry<KeyCode> swordmasterForwardKeybind; public static Sprite mainSkinIcon { get; set; } public static Sprite justicarSkinIcon { get; set; } public static Sprite goldSkinIcon { get; set; } public static Sprite superSkinIcon { get; set; } private void Awake() { //IL_0081: Unknown result type (might be due to invalid IL or missing references) instance = this; ReadConfig(); Assets.PopulateAssets(); RegisterStates(); Unlockables.RegisterUnlockables(); CreateDisplayPrefab(); CreateAatroxPrefab(); CreateBorisPrefab(); RegisterBuff(); RegisterAatrox(); RegisterBoris(); Skins.RegisterSkins(); BorisSkins.RegisterSkins(); CreateCrosshair(); if (enableItemDisplays.Value) { ItemDisplays.RegisterDisplays(); ItemDisplays.PopulateDisplays(); } AkSoundEngine.SetState("Ranking", "F"); Hooks.RegisterHooks(); if (ModCompat.EmoteAPIEnabled && enableEmoteAPI.Value) { ModCompat.AddEmoteSupport(); } if (ModCompat.SkillsPlusPlusEnabled) { ModCompat.AddSkillsSupport(); } } private void ReadConfig() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_002c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Expected O, but got Unknown //IL_005c: Expected O, but got Unknown //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_008c: Expected O, but got Unknown //IL_00a1: 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_00bc: Expected O, but got Unknown //IL_00bc: Expected O, but got Unknown //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Expected O, but got Unknown //IL_00ec: Expected O, but got Unknown //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Expected O, but got Unknown //IL_011c: Expected O, but got Unknown //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Expected O, but got Unknown //IL_014c: Expected O, but got Unknown //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Expected O, but got Unknown //IL_017c: Expected O, but got Unknown //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Expected O, but got Unknown //IL_01ac: Expected O, but got Unknown //IL_01c1: 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: Expected O, but got Unknown //IL_01e0: Expected O, but got Unknown //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Expected O, but got Unknown //IL_0211: Expected O, but got Unknown //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Expected O, but got Unknown //IL_0242: Expected O, but got Unknown //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Expected O, but got Unknown //IL_0273: Expected O, but got Unknown //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Expected O, but got Unknown //IL_02a4: Expected O, but got Unknown //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Expected O, but got Unknown buryTheLight = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("01 - General Settings", "Bury The Light"), true, new ConfigDescription("Play Bury The Light when Massacre is active", (AcceptableValueBase)null, Array.Empty<object>())); devilTrigger = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("01 - General Settings", "Devil Trigger"), false, new ConfigDescription("Changes Massacre into Devil Trigger", (AcceptableValueBase)null, Array.Empty<object>())); boris = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("01 - General Settings", "World Ender"), false, new ConfigDescription("Makes World Ender selectable as a standalone character", (AcceptableValueBase)null, Array.Empty<object>())); wideAatrox = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("01 - General Settings", "Wide"), false, new ConfigDescription("Wide Aatrox", (AcceptableValueBase)null, Array.Empty<object>())); bigHead = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("01 - General Settings", "Big Head"), false, new ConfigDescription("Makes Aatrox's head really big", (AcceptableValueBase)null, Array.Empty<object>())); styleUI = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("01 - General Settings", "Style Rank"), true, new ConfigDescription("Enables the DMC style ranking system", (AcceptableValueBase)null, Array.Empty<object>())); enableItemDisplays = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("01 - General Settings", "Enable Item Displays"), true, new ConfigDescription("Enables item displays for Aatrox", (AcceptableValueBase)null, Array.Empty<object>())); classicSkins = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("01 - General Settings", "Classic Skins"), false, new ConfigDescription("Reverts the skins to their original, more detailed textures", (AcceptableValueBase)null, Array.Empty<object>())); enableEmoteAPI = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("01 - General Settings", "Emote API Support"), false, new ConfigDescription("Enables CustomEmotesAPI Support, but it does break the animations.", (AcceptableValueBase)null, Array.Empty<object>())); styleMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("01 - General Settings", "Style Multiplier"), 1f, new ConfigDescription("Multiplies the amount of style you get from everything", (AcceptableValueBase)null, Array.Empty<object>())); danceKeybind = ((BaseUnityPlugin)this).Config.Bind<KeyCode>(new ConfigDefinition("02 - Keybinds", "Dance"), (KeyCode)122, new ConfigDescription("Dance key", (AcceptableValueBase)null, Array.Empty<object>())); swapKeybind = ((BaseUnityPlugin)this).Config.Bind<KeyCode>(new ConfigDefinition("02 - Keybinds", "Weapon Swap"), (KeyCode)102, new ConfigDescription("Weapon swap key", (AcceptableValueBase)null, Array.Empty<object>())); swordmasterForwardKeybind = ((BaseUnityPlugin)this).Config.Bind<KeyCode>(new ConfigDefinition("02 - Keybinds", "Forward"), (KeyCode)119, new ConfigDescription("Whatever key you use to move forward(for Blood Price directional inputs)", (AcceptableValueBase)null, Array.Empty<object>())); swordmasterBackKeybind = ((BaseUnityPlugin)this).Config.Bind<KeyCode>(new ConfigDefinition("02 - Keybinds", "Back"), (KeyCode)115, new ConfigDescription("Whatever key you use to move back(for Blood Price directional inputs)", (AcceptableValueBase)null, Array.Empty<object>())); if (!devilTrigger.Value && !buryTheLight.Value) { return; } object obj = <>c.<>9__62_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val2 = new ILCursor(il); int num = default(int); val2.GotoNext(new Func<Instruction, bool>[1] { (Instruction i) => ILPatternMatchingExt.MatchStloc(i, ref num) }); val2.EmitDelegate<Func<bool, bool>>((Func<bool, bool>)((bool b) => b || devilTriggerActive != 0)); }; <>c.<>9__62_0 = val; obj = (object)val; } MusicController.LateUpdate += (Manipulator)obj; } private void RegisterSkillModifiers() { } private void CreateCrosshair() { //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //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) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0128: 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_0218: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_0295: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02a0: Unknown result type (might be due to invalid IL or missing references) gunCrosshair = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/Crosshair/LoaderCrosshair"), "AatroxGunCrosshair", true); gunCrosshair.AddComponent<NetworkIdentity>(); Object.Destroy((Object)(object)gunCrosshair.GetComponent<LoaderHookCrosshairController>()); CrosshairController component = gunCrosshair.GetComponent<CrosshairController>(); component.maxSpreadAlpha = 0f; component.maxSpreadAngle = 3f; component.minSpreadAlpha = 0f; component.spriteSpreadPositions = (SpritePosition[])(object)new SpritePosition[2] { new SpritePosition { target = ((Component)gunCrosshair.transform.GetChild(2)).GetComponent<RectTransform>(), zeroPosition = new Vector3(-14f, 0f, 0f), onePosition = new Vector3(-48f, 0f, 0f) }, new SpritePosition { target = ((Component)gunCrosshair.transform.GetChild(3)).GetComponent<RectTransform>(), zeroPosition = new Vector3(14f, 0f, 0f), onePosition = new Vector3(48f, 0f, 0f) } }; Object.Destroy((Object)(object)((Component)gunCrosshair.transform.GetChild(0)).gameObject); Object.Destroy((Object)(object)((Component)gunCrosshair.transform.GetChild(1)).gameObject); needlerCrosshair = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/Crosshair/LoaderCrosshair"), "AatroxNeedlerCrosshair", true); needlerCrosshair.AddComponent<NetworkIdentity>(); Object.Destroy((Object)(object)needlerCrosshair.GetComponent<LoaderHookCrosshairController>()); ((Behaviour)needlerCrosshair.GetComponent<RawImage>()).enabled = false; component = needlerCrosshair.GetComponent<CrosshairController>(); component.maxSpreadAlpha = 0f; component.maxSpreadAngle = 3f; component.minSpreadAlpha = 0f; component.spriteSpreadPositions = (SpritePosition[])(object)new SpritePosition[2] { new SpritePosition { target = ((Component)needlerCrosshair.transform.GetChild(2)).GetComponent<RectTransform>(), zeroPosition = new Vector3(-20f, 0f, 0f), onePosition = new Vector3(-48f, 0f, 0f) }, new SpritePosition { target = ((Component)needlerCrosshair.transform.GetChild(3)).GetComponent<RectTransform>(), zeroPosition = new Vector3(20f, 0f, 0f), onePosition = new Vector3(48f, 0f, 0f) } }; Object.Destroy((Object)(object)((Component)needlerCrosshair.transform.GetChild(0)).gameObject); Object.Destroy((Object)(object)((Component)needlerCrosshair.transform.GetChild(1)).gameObject); } private void RegisterBuff() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) massacreBuff = ScriptableObject.CreateInstance<BuffDef>(); massacreBuff.buffColor = aatroxColor; massacreBuff.canStack = true; massacreBuff.iconSprite = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/Common/MiscIcons/texAttackIcon.png").WaitForCompletion(); massacreBuff.isDebuff = false; ((Object)massacreBuff).name = "AatroxMassacreBuff"; ContentAddition.AddBuffDef(massacreBuff); worldEnderBuff = ScriptableObject.CreateInstance<BuffDef>(); worldEnderBuff.buffColor = Color.red; worldEnderBuff.canStack = false; worldEnderBuff.iconSprite = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/Common/MiscIcons/texAttackIcon.png").WaitForCompletion(); worldEnderBuff.isDebuff = false; ((Object)worldEnderBuff).name = "AatroxWorldEnderBuff"; ContentAddition.AddBuffDef(worldEnderBuff); } private static GameObject CreateModel(GameObject main, int modelIndex) { Object.Destroy((Object)(object)((Component)main.transform.Find("ModelBase")).gameObject); Object.Destroy((Object)(object)((Component)main.transform.Find("CameraPivot")).gameObject); Object.Destroy((Object)(object)((Component)main.transform.Find("AimOrigin")).gameObject); GameObject result = null; switch (modelIndex) { case 0: result = Assets.mainAssetBundle.LoadAsset<GameObject>("mdlAatrox"); break; case 1: result = Assets.secondaryAssetBundle.LoadAsset<GameObject>("mdlBoris"); break; case 2: result = Assets.mainAssetBundle.LoadAsset<GameObject>("AatroxDisplay"); break; } return result; } internal static void CreateDisplayPrefab() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Expected O, but got Unknown //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Expected O, but got Unknown //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0183: 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_0206: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/MercBody"), "AatroxDisplay"); GameObject val2 = CreateModel(val, 2); GameObject val3 = new GameObject("ModelBase"); val3.transform.parent = val.transform; val3.transform.localPosition = new Vector3(0f, -0.81f, 0f); val3.transform.localRotation = Quaternion.identity; val3.transform.localScale = new Vector3(1f, 1f, 1f); GameObject val4 = new GameObject("CameraPivot"); val4.transform.parent = val3.transform; val4.transform.localPosition = new Vector3(0f, 1.6f, 0f); val4.transform.localRotation = Quaternion.identity; val4.transform.localScale = Vector3.one; GameObject val5 = new GameObject("AimOrigin"); val5.transform.parent = val3.transform; val5.transform.localPosition = new Vector3(0f, 1.4f, 0f); val5.transform.localRotation = Quaternion.identity; val5.transform.localScale = Vector3.one; Transform transform = val2.transform; transform.parent = val3.transform; transform.localPosition = Vector3.zero; transform.localScale = new Vector3(0.01f, 0.01f, 0.01f); transform.localRotation = Quaternion.identity; ModelLocator component = val.GetComponent<ModelLocator>(); component.modelTransform = transform; component.modelBaseTransform = val3.transform; component.dontReleaseModelOnDeath = false; component.autoUpdateModelTransform = true; component.dontDetatchFromParent = false; component.noCorpse = false; component.normalizeToFloor = false; component.preserveModel = false; CharacterModel val6 = val2.AddComponent<CharacterModel>(); val6.body = null; val6.baseRendererInfos = (RendererInfo[])(object)new RendererInfo[1] { new RendererInfo { defaultMaterial = ((Renderer)val2.GetComponentInChildren<SkinnedMeshRenderer>()).material, renderer = (Renderer)(object)val2.GetComponentInChildren<SkinnedMeshRenderer>(), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false } }; val6.autoPopulateLightInfos = true; val6.invisibilityCount = 0; val6.temporaryOverlays = new List<TemporaryOverlayInstance>(); Reflection.SetFieldValue<SkinnedMeshRenderer>((object)val6, "mainSkinnedMeshRenderer", ((Component)val6.baseRendererInfos[0].renderer).gameObject.GetComponent<SkinnedMeshRenderer>()); RagdollController componentInChildren = val.GetComponentInChildren<RagdollController>(); if (Object.op_Implicit((Object)(object)componentInChildren)) { Object.DestroyImmediate((Object)(object)componentInChildren); } CharacterJoint[] componentsInChildren = val.GetComponentsInChildren<CharacterJoint>(); foreach (CharacterJoint val7 in componentsInChildren) { if (Object.op_Implicit((Object)(object)val7)) { Object.Destroy((Object)(object)val7); } } Collider[] componentsInChildren2 = val.GetComponentsInChildren<Collider>(); foreach (Collider val8 in componentsInChildren2) { if (Object.op_Implicit((Object)(object)val8)) { val8.enabled = false; Object.Destroy((Object)(object)val8); } } Rigidbody[] componentsInChildren3 = val.GetComponentsInChildren<Rigidbody>(); foreach (Rigidbody val9 in componentsInChildren3) { if (Object.op_Implicit((Object)(object)val9)) { val9.isKinematic = true; val9.useGravity = false; val9.freezeRotation = true; Object.Destroy((Object)(object)val9); } } characterDisplay = PrefabAPI.InstantiateClone(((Component)val.GetComponent<ModelLocator>().modelBaseTransform).gameObject, "AatroxDisplay", true); } internal static void CreateAatroxPrefab() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected O, but got Unknown //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_009f: 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_00b5: Expected O, but got Unknown //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Expected O, but got Unknown //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: 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_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_040e: Unknown result type (might be due to invalid IL or missing references) //IL_0413: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_053c: Unknown result type (might be due to invalid IL or missing references) //IL_0564: Unknown result type (might be due to invalid IL or missing references) //IL_0571: 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_057c: Unknown result type (might be due to invalid IL or missing references) //IL_05ba: Unknown result type (might be due to invalid IL or missing references) //IL_05c7: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Unknown result type (might be due to invalid IL or missing references) //IL_05d2: Unknown result type (might be due to invalid IL or missing references) //IL_0610: Unknown result type (might be due to invalid IL or missing references) //IL_061d: Unknown result type (might be due to invalid IL or missing references) //IL_061f: Unknown result type (might be due to invalid IL or missing references) //IL_067e: Unknown result type (might be due to invalid IL or missing references) //IL_06ac: Unknown result type (might be due to invalid IL or missing references) //IL_0863: Unknown result type (might be due to invalid IL or missing references) //IL_0868: Unknown result type (might be due to invalid IL or missing references) //IL_0879: Unknown result type (might be due to invalid IL or missing references) //IL_087e: Unknown result type (might be due to invalid IL or missing references) //IL_0972: Unknown result type (might be due to invalid IL or missing references) //IL_09f1: Unknown result type (might be due to invalid IL or missing references) //IL_0a50: Unknown result type (might be due to invalid IL or missing references) //IL_0a67: Unknown result type (might be due to invalid IL or missing references) //IL_0a6c: Unknown result type (might be due to invalid IL or missing references) //IL_0a74: Unknown result type (might be due to invalid IL or missing references) //IL_0ad5: Unknown result type (might be due to invalid IL or missing references) //IL_0b44: Unknown result type (might be due to invalid IL or missing references) //IL_0b4e: Unknown result type (might be due to invalid IL or missing references) //IL_0b8f: Unknown result type (might be due to invalid IL or missing references) //IL_0b99: Unknown result type (might be due to invalid IL or missing references) //IL_0bda: Unknown result type (might be due to invalid IL or missing references) //IL_0be4: Unknown result type (might be due to invalid IL or missing references) //IL_0c25: Unknown result type (might be due to invalid IL or missing references) //IL_0c2f: Unknown result type (might be due to invalid IL or missing references) //IL_0e1e: Unknown result type (might be due to invalid IL or missing references) //IL_0e23: Unknown result type (might be due to invalid IL or missing references) //IL_0e34: Unknown result type (might be due to invalid IL or missing references) //IL_0e39: Unknown result type (might be due to invalid IL or missing references) aatroxPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/MercBody"), "AatroxBody", true); aatroxPrefab.GetComponent<NetworkIdentity>().localPlayerAuthority = true; GameObject val = CreateModel(aatroxPrefab, 0); GameObject val2 = new GameObject("ModelBase"); val2.transform.parent = aatroxPrefab.transform; val2.transform.localPosition = new Vector3(0f, -0.81f, 0f); val2.transform.localRotation = Quaternion.identity; val2.transform.localScale = new Vector3(1f, 1f, 1f); GameObject val3 = new GameObject("CameraPivot"); val3.transform.parent = val2.transform; val3.transform.localPosition = new Vector3(0f, 1.6f, 0f); val3.transform.localRotation = Quaternion.identity; val3.transform.localScale = Vector3.one; GameObject val4 = new GameObject("AimOrigin"); val4.transform.parent = val2.transform; val4.transform.localPosition = new Vector3(0f, 1.4f, 0f); val4.transform.localRotation = Quaternion.identity; val4.transform.localScale = Vector3.one; Transform transform = val.transform; transform.parent = val2.transform; transform.localPosition = Vector3.zero; transform.localScale = new Vector3(0.01f, 0.01f, 0.01f); transform.localRotation = Quaternion.identity; CharacterDirection component = aatroxPrefab.GetComponent<CharacterDirection>(); component.moveVector = Vector3.zero; component.targetTransform = val2.transform; component.overrideAnimatorForwardTransform = null; component.rootMotionAccumulator = null; component.modelAnimator = val.GetComponentInChildren<Animator>(); component.driveFromRootRotation = false; component.turnSpeed = 720f; CharacterBody component2 = aatroxPrefab.GetComponent<CharacterBody>(); ((Object)component2).name = "AatroxBody"; component2.baseNameToken = "AATROX_NAME"; component2.subtitleNameToken = "AATROX_SUBTITLE"; component2.bodyFlags = (BodyFlags)16; component2.rootMotionInMainState = false; component2.mainRootSpeed = 0f; component2.baseMaxHealth = 100f; component2.levelMaxHealth = 30f; component2.baseRegen = 0.25f; component2.levelRegen = 0.75f; component2.baseMaxShield = 0f; component2.levelMaxShield = 0f; component2.baseMoveSpeed = 7f; component2.levelMoveSpeed = 0f; component2.baseAcceleration = 80f; component2.baseJumpPower = 15f; component2.levelJumpPower = 0f; component2.baseDamage = 11f; component2.levelDamage = 2.2f; component2.baseAttackSpeed = 1f; component2.levelAttackSpeed = 0f; component2.baseCrit = 1f; component2.levelCrit = 0f; component2.baseArmor = 20f; component2.levelArmor = 0f; component2.baseJumpCount = 2; component2.sprintingSpeedMultiplier = 1.45f; component2.wasLucky = false; component2.spreadBloomDecayTime = 1f; component2.spreadBloomCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f); component2._defaultCrosshairPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/Crosshair/SimpleDotCrosshair"); component2.hideCrosshair = false; component2.aimOriginTransform = val4.transform; component2.hullClassification = (HullClassification)0; component2.portraitIcon = Assets.charPortrait; component2.isChampion = false; component2.currentVehicle = null; component2.preferredPodPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/CrocoBody").GetComponent<CharacterBody>().preferredPodPrefab; component2.preferredInitialStateType = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/MercBody").GetComponent<CharacterBody>().preferredInitialStateType; component2.skinIndex = 0u; component2.bodyColor = aatroxColor; CharacterMotor component3 = aatroxPrefab.GetComponent<CharacterMotor>(); component3.walkSpeedPenaltyCoefficient = 1f; component3.characterDirection = component; component3.muteWalkMotion = false; component3.mass = 100f; component3.airControl = 0.25f; component3.disableAirControlUntilCollision = false; component3.generateParametersOnAwake = true; InputBankTest component4 = aatroxPrefab.GetComponent<InputBankTest>(); component4.moveVector = Vector3.zero; CameraTargetParams component5 = aatroxPrefab.GetComponent<CameraTargetParams>(); component5.cameraParams = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/MercBody").GetComponent<CameraTargetParams>().cameraParams; component5.cameraPivotTransform = null; component5.recoil = Vector2.zero; component5.dontRaycastToPivot = false; ModelLocator component6 = aatroxPrefab.GetComponent<ModelLocator>(); component6.modelTransform = transform; component6.modelBaseTransform = val2.transform; component6.dontReleaseModelOnDeath = false; component6.autoUpdateModelTransform = true; component6.dontDetatchFromParent = false; component6.noCorpse = false; component6.normalizeToFloor = false; component6.preserveModel = false; ChildLocator componentInChildren = val.GetComponentInChildren<ChildLocator>(); CharacterModel val5 = val.AddComponent<CharacterModel>(); val5.body = component2; val5.baseRendererInfos = (RendererInfo[])(object)new RendererInfo[3] { new RendererInfo { defaultMaterial = ((Renderer)val.GetComponentInChildren<SkinnedMeshRenderer>()).material, renderer = (Renderer)(object)val.GetComponentInChildren<SkinnedMeshRenderer>(), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { defaultMaterial = ((Renderer)((Component)componentInChildren.FindChild("GauntletL")).GetComponentInChildren<MeshRenderer>()).material, renderer = (Renderer)(object)((Component)componentInChildren.FindChild("GauntletL")).GetComponentInChildren<MeshRenderer>(), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { defaultMaterial = ((Renderer)((Component)componentInChildren.FindChild("GauntletR")).GetComponentInChildren<MeshRenderer>()).material, renderer = (Renderer)(object)((Component)componentInChildren.FindChild("GauntletR")).GetComponentInChildren<MeshRenderer>(), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false } }; val5.autoPopulateLightInfos = true; val5.invisibilityCount = 0; val5.temporaryOverlays = new List<TemporaryOverlayInstance>(); Material val6 = null; for (int i = 0; i < val5.baseRendererInfos.Length; i++) { val6 = Object.Instantiate<Material>(LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren<CharacterModel>().baseRendererInfos[0].defaultMaterial); val6.SetColor("_Color", Color.white); val6.SetTexture("_MainTex", Assets.mainMat.GetTexture("_MainTex")); val6.SetColor("_EmColor", Color.white); val6.SetFloat("_EmPower", 5f); val6.SetTexture("_EmTex", Assets.mainMat.GetTexture("_EmissionMap")); val6.SetFloat("_NormalStrength", 0.5f); val6.SetTexture("_NormalTex", Assets.mainMat.GetTexture("_BumpMap")); val5.baseRendererInfos[i].defaultMaterial = val6; } Reflection.SetFieldValue<SkinnedMeshRenderer>((object)val5, "mainSkinnedMeshRenderer", ((Component)val5.baseRendererInfos[0].renderer).gameObject.GetComponent<SkinnedMeshRenderer>()); TeamComponent val7 = null; val7 = ((!((Object)(object)aatroxPrefab.GetComponent<TeamComponent>() != (Object)null)) ? aatroxPrefab.GetComponent<TeamComponent>() : aatroxPrefab.GetComponent<TeamComponent>()); val7.hideAllyCardDisplay = false; val7.teamIndex = (TeamIndex)(-1); HealthComponent component7 = aatroxPrefab.GetComponent<HealthComponent>(); component7.health = 120f; component7.shield = 0f; component7.barrier = 0f; component7.magnetiCharge = 0f; component7.body = null; component7.dontShowHealthbar = false; component7.globalDeathEventChanceCoefficient = 1f; aatroxPrefab.GetComponent<Interactor>().maxInteractionDistance = 3f; aatroxPrefab.GetComponent<InteractionDriver>().highlightInteractor = true; CharacterDeathBehavior component8 = aatroxPrefab.GetComponent<CharacterDeathBehavior>(); component8.deathStateMachine = aatroxPrefab.GetComponent<EntityStateMachine>(); EntityStateMachine component9 = aatroxPrefab.GetComponent<EntityStateMachine>(); component9.mainStateType = new SerializableEntityStateType(typeof(AatroxMain)); component9.initialStateType = new SerializableEntityStateType(typeof(AatroxSpawnState)); SfxLocator component10 = aatroxPrefab.GetComponent<SfxLocator>(); component10.deathSound = "Play_ui_player_death"; component10.barkSound = ""; component10.openSound = ""; component10.landingSound = "Play_char_land"; component10.fallDamageSound = "Play_char_land_fall_damage"; component10.aliveLoopStart = ""; component10.aliveLoopStop = ""; Rigidbody component11 = aatroxPrefab.GetComponent<Rigidbody>(); component11.mass = 100f; component11.drag = 0f; component11.angularDrag = 0f; component11.useGravity = false; component11.isKinematic = true; component11.interpolation = (RigidbodyInterpolation)0; component11.collisionDetectionMode = (CollisionDetectionMode)0; component11.constraints = (RigidbodyConstraints)0; CapsuleCollider component12 = aatroxPrefab.GetComponent<CapsuleCollider>(); ((Collider)component12).isTrigger = false; ((Collider)component12).material = null; component12.center = new Vector3(0f, 0f, 0f); component12.radius = 0.5f; component12.height = 1.82f; component12.direction = 1; KinematicCharacterMotor component13 = aatroxPrefab.GetComponent<KinematicCharacterMotor>(); component13.CharacterController = (ICharacterController)(object)component3; component13.Capsule = component12; component13.playerCharacter = true; component12.radius = 0.5f; component12.height = 1.82f; component12.center = new Vector3(0f, 0f, 0f); ((Collider)component12).material = null; component13.GroundDetectionExtraDistance = 0f; component13.MaxStepHeight = 0.2f; component13.MinRequiredStepDepth = 0.1f; component13.MaxStableSlopeAngle = 55f; component13.MaxStableDistanceFromLedge = 0.5f; component13.MaxStableDenivelationAngle = 55f; component13.RigidbodyInteractionType = (RigidbodyInteractionType)0; component13.PreserveAttachedRigidbodyMomentum = true; component13.HasPlanarConstraint = false; component13.PlanarConstraintAxis = Vector3.up; component13.StepHandling = (StepHandlingMethod)0; component13.InteractiveRigidbodyHandling = true; HurtBoxGroup val8 = val.AddComponent<HurtBoxGroup>(); HurtBox val9 = ((Component)((Component)val.transform.Find("TempHurtbox")).GetComponent<CapsuleCollider>()).gameObject.AddComponent<HurtBox>(); ((Component)val9).gameObject.layer = LayerIndex.entityPrecise.intVal; val9.healthComponent = component7; val9.isBullseye = true; val9.damageModifier = (DamageModifier)0; val9.hurtBoxGroup = val8; val9.indexInGroup = 0; val8.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val9 }; val8.mainHurtBox = val9; val8.bullseyeCount = 1; HitBox val10 = ((Component)componentInChildren.FindChild("SwordHitbox")).gameObject.AddComponent<HitBox>(); ((Component)val10).gameObject.layer = LayerIndex.projectile.intVal; ((Component)val10).transform.localScale = Vector3.one * 600f; HitBox val11 = ((Component)componentInChildren.FindChild("SwordBigHitbox")).gameObject.AddComponent<HitBox>(); ((Component)val11).gameObject.layer = LayerIndex.projectile.intVal; ((Component)val11).transform.localScale = Vector3.one * 900f; HitBox val12 = ((Component)componentInChildren.FindChild("ScytheHitboxBase")).gameObject.AddComponent<HitBox>(); ((Component)val12).gameObject.layer = LayerIndex.projectile.intVal; ((Component)val12).transform.localScale = Vector3.one * 800f; HitBox val13 = ((Component)componentInChildren.FindChild("ScytheHitboxBlade")).gameObject.AddComponent<HitBox>(); ((Component)val13).gameObject.layer = LayerIndex.projectile.intVal; ((Component)val13).transform.localScale = Vector3.one * 500f; HitBoxGroup val14 = val.AddComponent<HitBoxGroup>(); val14.hitBoxes = (HitBox[])(object)new HitBox[1] { val10 }; val14.groupName = "Sword"; HitBoxGroup val15 = val.AddComponent<HitBoxGroup>(); val15.hitBoxes = (HitBox[])(object)new HitBox[1] { val11 }; val15.groupName = "SwordBig"; HitBoxGroup val16 = val.AddComponent<HitBoxGroup>(); val16.hitBoxes = (HitBox[])(object)new HitBox[2] { val12, val13 }; val16.groupName = "Scythe"; FootstepHandler val17 = val.AddComponent<FootstepHandler>(); val17.baseFootstepString = "Play_player_footstep"; val17.sprintFootstepOverrideString = ""; val17.enableFootstepDust = true; val17.footstepDustPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/GenericFootstepDust"); RagdollController component14 = val.GetComponent<RagdollController>(); PhysicMaterial material = ((Component)LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren<RagdollController>().bones[1]).GetComponent<Collider>().material; Transform[] bones = component14.bones; foreach (Transform val18 in bones) { if (Object.op_Implicit((Object)(object)val18)) { ((Component)val18).gameObject.layer = LayerIndex.ragdoll.intVal; Collider component15 = ((Component)val18).GetComponent<Collider>(); if (Object.op_Implicit((Object)(object)component15)) { component15.material = material; component15.sharedMaterial = material; } } } AimAnimator val19 = val.AddComponent<AimAnimator>(); val19.inputBank = component4; val19.directionComponent = component; val19.pitchRangeMax = 55f; val19.pitchRangeMin = -50f; val19.yawRangeMin = -80f; val19.yawRangeMax = 80f; val19.pitchGiveupRange = 40f; val19.yawGiveupRange = 10f; val19.giveupDuration = 1f; EntityStateMachine val20 = aatroxPrefab.AddComponent<EntityStateMachine>(); val20.customName = "Dash"; val20.initialStateType = new SerializableEntityStateType(typeof(Idle)); val20.mainStateType = new SerializableEntityStateType(typeof(Idle)); NetworkStateMachine component16 = ((Component)component2).GetComponent<NetworkStateMachine>(); List<EntityStateMachine> list = component16.stateMachines.ToList(); list.Add(val20); component16.stateMachines = list.ToArray(); } internal static void CreateBorisPrefab() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected O, but got Unknown //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_009f: 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_00b5: Expected O, but got Unknown //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Expected O, but got Unknown //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: 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_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0470: 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_04ab: Unknown result type (might be due to invalid IL or missing references) //IL_062e: Unknown result type (might be due to invalid IL or missing references) //IL_0633: Unknown result type (might be due to invalid IL or missing references) //IL_0650: Unknown result type (might be due to invalid IL or missing references) //IL_0655: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_075f: Unknown result type (might be due to invalid IL or missing references) //IL_07fe: Unknown result type (might be due to invalid IL or missing references) //IL_0815: Unknown result type (might be due to invalid IL or missing references) //IL_081a: Unknown result type (might be due to invalid IL or missing references) //IL_0822: Unknown result type (might be due to invalid IL or missing references) //IL_0874: Unknown result type (might be due to invalid IL or missing references) //IL_08ba: Unknown result type (might be due to invalid IL or missing references) //IL_08c1: Expected O, but got Unknown //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08f7: Unknown result type (might be due to invalid IL or missing references) //IL_08fc: Unknown result type (might be due to invalid IL or missing references) //IL_090f: Unknown result type (might be due to invalid IL or missing references) //IL_0919: Unknown result type (might be due to invalid IL or missing references) borisPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/MercBody"), "BorisBody", true); borisPrefab.GetComponent<NetworkIdentity>().localPlayerAuthority = true; GameObject val = CreateModel(borisPrefab, 1); GameObject val2 = new GameObject("ModelBase"); val2.transform.parent = borisPrefab.transform; val2.transform.localPosition = new Vector3(0f, -0.81f, 0f); val2.transform.localRotation = Quaternion.identity; val2.transform.localScale = new Vector3(1f, 1f, 1f); GameObject val3 = new GameObject("CameraPivot"); val3.transform.parent = val2.transform; val3.transform.localPosition = new Vector3(0f, 1.6f, 0f); val3.transform.localRotation = Quaternion.identity; val3.transform.localScale = Vector3.one; GameObject val4 = new GameObject("AimOrigin"); val4.transform.parent = val2.transform; val4.transform.localPosition = new Vector3(0f, 1.4f, 0f); val4.transform.localRotation = Quaternion.identity; val4.transform.localScale = Vector3.one; Transform transform = val.transform; transform.parent = val2.transform; transform.localPosition = Vector3.zero; transform.localScale = new Vector3(0.01f, 0.01f, 0.01f); transform.localRotation = Quaternion.identity; CharacterDirection component = borisPrefab.GetComponent<CharacterDirection>(); component.moveVector = Vector3.zero; component.targetTransform = val2.transform; component.overrideAnimatorForwardTransform = null; component.rootMotionAccumulator = null; component.modelAnimator = val.GetComponentInChildren<Animator>(); component.driveFromRootRotation = false; component.turnSpeed = 720f; CharacterBody component2 = borisPrefab.GetComponent<CharacterBody>(); ((Object)component2).name = "BorisBody"; component2.baseNameToken = "BORIS_NAME"; component2.subtitleNameToken = "BORIS_SUBTITLE"; component2.bodyFlags = (BodyFlags)16; component2.rootMotionInMainState = false; component2.mainRootSpeed = 0f; component2.baseMaxHealth = 100f; component2.levelMaxHealth = 30f; component2.baseRegen = 5f; component2.levelRegen = 1.5f; component2.baseMaxShield = 0f; component2.levelMaxShield = 0f; component2.baseMoveSpeed = 7f; component2.levelMoveSpeed = 0f; component2.baseAcceleration = 80f; component2.baseJumpPower = 20f; component2.levelJumpPower = 0f; component2.baseDamage = 12f; component2.levelDamage = 2.4f; component2.baseAttackSpeed = 1f; component2.levelAttackSpeed = 0f; component2.baseCrit = 1f; component2.levelCrit = 0f; component2.baseArmor = 20f; component2.levelArmor = 0f; component2.baseJumpCount = 1; component2.sprintingSpeedMultiplier = 1.55f; component2.wasLucky = false; component2.spreadBloomDecayTime = 1f; component2.spreadBloomCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f); component2._defaultCrosshairPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/Crosshair/SimpleDotCrosshair"); component2.hideCrosshair = true; component2.aimOriginTransform = val4.transform; component2.hullClassification = (HullClassification)0; component2.portraitIcon = Assets.borisPortrait; component2.isChampion = false; component2.currentVehicle = null; component2.preferredPodPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/CrocoBody").GetComponent<CharacterBody>().preferredPodPrefab; component2.preferredInitialStateType = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/MercBody").GetComponent<CharacterBody>().preferredInitialStateType; component2.skinIndex = 0u; CharacterMotor component3 = borisPrefab.GetComponent<CharacterMotor>(); component3.walkSpeedPenaltyCoefficient = 1f; component3.characterDirection = component; component3.muteWalkMotion = false; component3.mass = 100f; component3.airControl = 0.25f; component3.disableAirControlUntilCollision = false; component3.generateParametersOnAwake = true; InputBankTest component4 = borisPrefab.GetComponent<InputBankTest>(); component4.moveVector = Vector3.zero; CameraTargetParams component5 = borisPrefab.GetComponent<CameraTargetParams>(); component5.cameraParams = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/CrocoBody").GetComponent<CameraTargetParams>().cameraParams; component5.cameraPivotTransform = null; component5.recoil = Vector2.zero; component5.dontRaycastToPivot = false; ModelLocator component6 = borisPrefab.GetComponent<ModelLocator>(); component6.modelTransform = transform; component6.modelBaseTransform = val2.transform; component6.dontReleaseModelOnDeath = false; component6.autoUpdateModelTransform = true; component6.dontDetatchFromParent = false; component6.noCorpse = false; component6.normalizeToFloor = false; component6.preserveModel = false; CharacterModel val5 = val.AddComponent<CharacterModel>(); val5.body = component2; val5.baseRendererInfos = (RendererInfo[])(object)new RendererInfo[0]; val5.autoPopulateLightInfos = true; val5.invisibilityCount = 0; val5.temporaryOverlays = new List<TemporaryOverlayInstance>(); TeamComponent val6 = null; val6 = ((!((Object)(object)borisPrefab.GetComponent<TeamComponent>() != (Object)null)) ? borisPrefab.GetComponent<TeamComponent>() : borisPrefab.GetComponent<TeamComponent>()); val6.hideAllyCardDisplay = false; val6.teamIndex = (TeamIndex)(-1); HealthComponent component7 = borisPrefab.GetComponent<HealthComponent>(); component7.health = 120f; component7.shield = 0f; component7.barrier = 0f; component7.magnetiCharge = 0f; component7.body = null; component7.dontShowHealthbar = false; component7.globalDeathEventChanceCoefficient = 1f; borisPrefab.GetComponent<Interactor>().maxInteractionDistance = 3f; borisPrefab.GetComponent<InteractionDriver>().highlightInteractor = true; CharacterDeathBehavior component8 = borisPrefab.GetComponent<CharacterDeathBehavior>(); component8.deathStateMachine = borisPrefab.GetComponent<EntityStateMachine>(); component8.deathState = new SerializableEntityStateType(typeof(GenericCharacterDeath)); EntityStateMachine component9 = borisPrefab.GetComponent<EntityStateMachine>(); component9.mainStateType = new SerializableEntityStateType(typeof(BorisMain)); component9.initialStateType = new SerializableEntityStateType(typeof(BorisSpawnState)); SfxLocator component10 = borisPrefab.GetComponent<SfxLocator>(); component10.deathSound = "Play_ui_player_death"; component10.barkSound = ""; component10.openSound = ""; component10.landingSound = ""; component10.fallDamageSound = "Play_char_land_fall_damage"; component10.aliveLoopStart = ""; component10.aliveLoopStop = ""; Rigidbody component11 = borisPrefab.GetComponent<Rigidbody>(); component11.mass = 100f; component11.drag = 0f; component11.angularDrag = 0f; component11.useGravity = false; component11.isKinematic = true; component11.interpolation = (RigidbodyInterpolation)0; component11.collisionDetectionMode = (CollisionDetectionMode)0; component11.constraints = (RigidbodyConstraints)0; CapsuleCollider component12 = borisPrefab.GetComponent<CapsuleCollider>(); ((Collider)component12).isTrigger = false; ((Collider)component12).material = null; component12.center = new Vector3(0f, 0f, 0f); component12.radius = 0.5f; component12.height = 1.82f; component12.direction = 1; KinematicCharacterMotor component13 = borisPrefab.GetComponent<KinematicCharacterMotor>(); component13.CharacterController = (ICharacterController)(object)component3; component13.Capsule = component12; component13.playerCharacter = true; component13.GroundDetectionExtraDistance = 0f; component13.MaxStepHeight = 0.2f; component13.MinRequiredStepDepth = 0.1f; component13.MaxStableSlopeAngle = 55f; component13.MaxStableDistanceFromLedge = 0.5f; component13.MaxStableDenivelationAngle = 55f; component13.RigidbodyInteractionType = (RigidbodyInteractionType)0; component13.PreserveAttachedRigidbodyMomentum = true; component13.HasPlanarConstraint = false; component13.PlanarConstraintAxis = Vector3.up; component13.StepHandling = (StepHandlingMethod)0; component13.InteractiveRigidbodyHandling = true; HurtBoxGroup val7 = val.AddComponent<HurtBoxGroup>(); HurtBox val8 = ((Component)val.GetComponentInChildren<CapsuleCollider>()).gameObject.AddComponent<HurtBox>(); ((Component)val8).gameObject.layer = LayerIndex.entityPrecise.intVal; val8.healthComponent = component7; val8.isBullseye = true; val8.damageModifier = (DamageModifier)0; val8.hurtBoxGroup = val7; val8.indexInGroup = 0; val7.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val8 }; val7.mainHurtBox = val8; val7.bullseyeCount = 1; HitBoxGroup val9 = val.AddComponent<HitBoxGroup>(); GameObject val10 = new GameObject("Sword"); val10.transform.parent = val.GetComponent<ChildLocator>().FindChild("Weapon_Tip"); val10.transform.localPosition = Vector3.zero; val10.transform.rotation = Quaternion.Euler(Vector3.zero); Transform transform2 = val10.transform; transform2.localScale *= 12f; HitBox val11 = val10.AddComponent<HitBox>(); ((Component)val11).gameObject.layer = LayerIndex.projectile.intVal; val9.hitBoxes = (HitBox[])(object)new HitBox[1] { val11 }; val9.groupName = "Sword"; FootstepHandler val12 = val.AddComponent<FootstepHandler>(); val12.baseFootstepString = "Play_player_footstep"; val12.sprintFootstepOverrideString = ""; val12.enableFootstepDust = true; val12.footstepDustPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/GenericFootstepDust"); RagdollController val13 = val.AddComponent<RagdollController>(); val13.bones = null; val13.componentsToDisableOnRagdoll = null; AimAnimator val14 = val.AddComponent<AimAnimator>(); val14.inputBank = component4; val14.directionComponent = component; val14.pitchRangeMax = 55f; val14.pitchRangeMin = -50f; val14.yawRangeMin = -44f; val14.yawRangeMax = 44f; val14.pitchGiveupRange = 30f; val14.yawGiveupRange = 10f; val14.giveupDuration = 8f; } private void FindComponents(GameObject obj) { if (!Object.op_Implicit((Object)(object)obj)) { return; } Debug.Log((object)("Listing components on " + ((Object)obj).name)); Component[] componentsInChildren = obj.GetComponentsInChildren<Component>(); foreach (Component val in componentsInChildren) { if (Object.op_Implicit((Object)(object)val)) { Debug.Log((object)(((Object)val.gameObject).name + " has component " + ((object)val).GetType().Name)); } } } private void RegisterBoris() { //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Unknown result type (might be due to invalid IL or missing references) //IL_04a9: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Unknown result type (might be due to invalid IL or missing references) borisPrefab.AddComponent<BorisController>(); borisDisplay = PrefabAPI.InstantiateClone(((Component)borisPrefab.GetComponent<ModelLocator>().modelBaseTransform).gameObject, "BorisDisplay", true); borisDisplay.AddComponent<NetworkIdentity>(); borisDisplay.AddComponent<BorisMenuAnim>(); blastProjectile = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/Projectiles/BeamSphere"), "BorisBlastProjectile", true); blastProjectile.GetComponent<ProjectileSimple>().desiredForwardSpeed = 120f; blastProjectile.GetComponent<ProjectileController>().procCoefficient = 1f; blastProjectile.GetComponent<ProjectileDamage>().damage = 1f; ((ProjectileExplosion)blastProjectile.GetComponent<ProjectileImpactExplosion>()).blastDamageCoefficient = 1f; ProjectileProximityBeamController component = blastProjectile.GetComponent<ProjectileProximityBeamController>(); component.attackRange = 12f; component.damageCoefficient = 0.2f; component.lightningType = (LightningType)6; component.procCoefficient = 0.2f; luceProjectile = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/Projectiles/ArtifactShellSeekingSolarFlare"), "BorisLuceProjectile", true); luceProjectile.GetComponent<ProjectileController>().procCoefficient = 0.8f; luceProjectile.GetComponent<ProjectileController>().startSound = "BorisFireBlast"; luceProjectile.GetComponent<ProjectileDirectionalTargetFinder>().lookCone = 360f; luceProjectile.GetComponent<ProjectileSteerTowardTarget>().rotationSpeed = 125f; luceProjectile.GetComponent<SphereCollider>().radius = 1.5f; ProjectileSingleTargetImpact component2 = luceProjectile.GetComponent<ProjectileSingleTargetImpact>(); if (Object.op_Implicit((Object)(object)component2)) { component2.enemyHitSoundString = "BorisBlastImpact"; component2.hitSoundString = "BorisBlastImpact"; } GameObject val = PrefabAPI.InstantiateClone(blastProjectile.GetComponent<ProjectileImpactExplosion>().impactEffect, "AatroxBlastImpact"); ParticleSystem[] componentsInChildren = val.GetComponentsInChildren<ParticleSystem>(); foreach (ParticleSystem val2 in componentsInChildren) { if (Object.op_Implicit((Object)(object)val2)) { val2.startColor = Color.red; } if (Object.op_Implicit((Object)(object)val2) && ((Object)((Component)val2).gameObject).name == "Ring") { Object.Destroy((Object)(object)val2); } } Light[] componentsInChildren2 = val.GetComponentsInChildren<Light>(); foreach (Light val3 in componentsInChildren2) { if (Object.op_Implicit((Object)(object)val3)) { val3.color = Color.red; } } GameObject val4 = PrefabAPI.InstantiateClone(Assets.blastModel, "AatroxBlastModel", true); val4.AddComponent<NetworkIdentity>(); val4.AddComponent<ProjectileGhostController>(); Transform transform = val4.transform; transform.localScale *= 1.25f; blastProjectile.GetComponent<ProjectileController>().ghostPrefab = val4; blastProjectile.GetComponent<ProjectileImpactExplosion>().impactEffect = val; ((ProjectileExplosion)blastProjectile.GetComponent<ProjectileImpactExplosion>()).falloffModel = (FalloffModel)0; luceProjectile.GetComponent<ProjectileController>().ghostPrefab = val4; val.AddComponent<NetworkIdentity>(); if (Object.op_Implicit((Object)(object)borisPrefab)) { PrefabAPI.RegisterNetworkPrefab(borisPrefab); } if (Object.op_Implicit((Object)(object)borisDisplay)) { PrefabAPI.RegisterNetworkPrefab(borisDisplay); } if (Object.op_Implicit((Object)(object)blastProjectile)) { PrefabAPI.RegisterNetworkPrefab(blastProjectile); } if (Object.op_Implicit((Object)(object)luceProjectile)) { PrefabAPI.RegisterNetworkPrefab(luceProjectile); } ContentAddition.AddProjectile(blastProjectile); ContentAddition.AddProjectile(luceProjectile); ContentAddition.AddEffect(val); BorisSkillSetup(); ContentAddition.AddBody(borisPrefab); CreateBorisMaster(); if (boris.Value) { infiniteBorisPrefab = PrefabAPI.InstantiateClone(borisPrefab, "InfiniteBorisBody", true); infiniteBorisPrefab.GetComponent<BorisController>().infiniteSDT = true; string text = "The World Ender, Aatrox's final form, is a powerful juggernaut who uses his massive sword to cleave through his foes.<color=#CCD3E0>" + Environment.NewLine + Environment.NewLine; text = text + "< ! > The Darkin Blade hits harder the more attack speed you have." + Environment.NewLine + Environment.NewLine; text = text + "< ! > Eldritch Bolts are great for taking care of swarms." + Environment.NewLine + Environment.NewLine; text = text + "< ! > Umbral Dash is a versatile skill that can be used both offensively and defensively." + Environment.NewLine + Environment.NewLine; text = text + "< ! > Try and save Judgement for when your transformation is about to end to maximize damage output.</color>" + Environment.NewLine + Environment.NewLine; LanguageAPI.Add("BORIS_NAME", "World Ender"); LanguageAPI.Add("BORIS_DESCRIPTION", text); LanguageAPI.Add("BORIS_SUBTITLE", "Frenzied Berserker"); LanguageAPI.Add("BORIS_LORE", borisLore); LanguageAPI.Add("BORIS_OUTRO_FLAVOR", borisEnding); SurvivorDef val5 = ScriptableObject.CreateInstance<SurvivorDef>(); val5.cachedName = "BORIS_NAME"; val5.unlockableDef = null; val5.descriptionToken = "BORIS_DESCRIPTION"; val5.primaryColor = aatroxColor; val5.bodyPrefab = borisPrefab; val5.displayPrefab = borisDisplay; val5.outroFlavorToken = "BORIS_OUTRO_FLAVOR"; ContentAddition.AddSurvivorDef(val5); } } private void RegisterAatrox() { //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) characterDisplay.AddComponent<NetworkIdentity>(); characterDisplay.AddComponent<MenuAnim>(); aatroxPrefab.AddComponent<AatroxController>(); bladeProjectile = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/Projectiles/FMJ"), "Prefabs/Projectiles/AatroxBladeProjectile", true); GameObject val = PrefabAPI.InstantiateClone(Assets.projectileModel, "BladeProjectileModel", true); val.AddComponent<NetworkIdentity>(); val.AddComponent<ProjectileGhostController>(); Transform transform = bladeProjectile.transform; transform.localScale *= 2f; Transform child = val.transform.GetChild(0); child.localScale *= 1.75f; bladeProjectile.GetComponent<ProjectileController>().ghostPrefab = val; if (Object.op_Implicit((Object)(object)aatroxPrefab)) { PrefabAPI.RegisterNetworkPrefab(aatroxPrefab); } if (Object.op_Implicit((Object)(object)characterDisplay)) { PrefabAPI.RegisterNetworkPrefab(characterDisplay); } if (Object.op_Implicit((Object)(object)bladeProjectile)) { PrefabAPI.RegisterNetworkPrefab(bladeProjectile); } if (Object.op_Implicit((Object)(object)val)) { PrefabAPI.RegisterNetworkPrefab(val); } ContentAddition.AddProjectile(bladeProjectile); string text = "Aatrox is a risky melee survivor who spends his health to inflict heavy damage.<color=#CCD3E0>" + Environment.NewLine + Environment.NewLine; text = text + "< ! > Using Blood Thirst on weak enemies is a good way to stay healthy without putting yourself at risk." + Environment.NewLine + Environment.NewLine; text = text + "< ! > Use Blood Price and Blood Thirst in conjunction to dish out heavy damage while staying healthy." + Environment.NewLine + Environment.NewLine; text = text + "< ! > Blood Price performs different attacks if you're moving either forward or backward." + Environment.NewLine + Environment.NewLine; text = text + "< ! > Massacre gets stronger the longer it's active, however the risk increases as well.</color>" + Environment.NewLine + Environment.NewLine; LanguageAPI.Add("AATROX_NAME", "Aatrox"); LanguageAPI.Add("AATROX_DESCRIPTION", text); LanguageAPI.Add("AATROX_SUBTITLE", "The Darkin Blade"); LanguageAPI.Add("AATROX_LORE", aatroxLore); LanguageAPI.Add("AATROX_OUTRO_FLAVOR", aatroxEnding); SurvivorDef val2 = ScriptableObject.CreateInstance<SurvivorDef>(); val2.cachedName = "AATROX_NAME"; val2.unlockableDef = null; val2.descriptionToken = "AATROX_DESCRIPTION"; val2.primaryColor = aatroxColor; val2.bodyPrefab = aatroxPrefab; val2.displayPrefab = characterDisplay; val2.outroFlavorToken = "AATROX_OUTRO_FLAVOR"; ContentAddition.AddSurvivorDef(val2); SkillSetup(); ContentAddition.AddBody(aatroxPrefab); CreateMaster(); aatroxPrefab.tag = "Player"; } private void BorisSkillSetup() { GenericSkill[] componentsInChildren = borisPrefab.GetComponentsInChildren<GenericSkill>(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } BorisSkillDefs.BorisPassiveSetup(); BorisSkillDefs.BorisPrimarySetup(); BorisSkillDefs.BorisSecondarySetup(); BorisSkillDefs.BorisUtilitySetup(); BorisSkillDefs.BorisSpecialSetup(); } private void SkillSetup() { GenericSkill[] componentsInChildren = aatroxPrefab.GetComponentsInChildren<GenericSkill>(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } AatroxSkillDefs.PassiveSetup(); AatroxSkillDefs.PrimarySetup(); AatroxSkillDefs.SecondarySetup(); AatroxSkillDefs.UtilitySetup(); AatroxSkillDefs.SpecialSetup(); } private void RegisterStates() { //IL_0003: 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_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) bool flag = default(bool); ContentAddition.AddEntityState<BaseEmote>(ref flag); ContentAddition.AddEntityState<Dance>(ref flag); ContentAddition.AddEntityState<AatroxMain>(ref flag); ContentAddition.AddEntityState<AatroxSpawnState>(ref flag); ContentAddition.AddEntityState<AatroxMassacre>(ref flag); ContentAddition.AddEntityState<AatroxTransformation>(ref flag); ContentAddition.AddEntityState<AatroxSwordStance>(ref flag); ContentAddition.AddEntityState<AatroxLunge>(ref flag); ContentAddition.AddEntityState<AatroxLungeFollowup>(ref flag); ContentAddition.AddEntityState<AatroxUppercut>(ref flag); ContentAddition.AddEntityState<AatroxDownslash>(ref flag); ContentAddition.AddEntityState<AatroxGroundLight>(ref flag); ContentAddition.AddEntityState<AatroxBeginFlight>(ref flag); ContentAddition.AddEntityState<AatroxAimDive>(ref flag); ContentAddition.AddEntityState<AatroxDive>(ref flag); ContentAddition.AddEntityState<AatroxFireProjectile>(ref flag); ContentAddition.AddEntityState<AatroxShadowStep>(ref flag); ContentAddition.AddEntityState<RhaastGroundLight>(ref flag); ContentAddition.AddEntityState<RhaastUppercut>(ref flag); ContentAddition.AddEntityState<AatroxFireGuns>(ref flag); ContentAddition.AddEntityState<Rainstorm>(ref flag); ContentAddition.AddEntityState<Flurry>(ref flag); ContentAddition.AddEntityState<GunStinger>(ref flag); ContentAddition.AddEntityState<BorisMain>(ref flag); ContentAddition.AddEntityState<BorisSpawnState>(ref flag); ContentAddition.AddEntityState<BorisBlink>(ref flag); ContentAddition.AddEntityState<BorisEndTransformation>(ref flag); ContentAddition.AddEntityState<BorisGroundLight>(ref flag); ContentAddition.AddEntityState<BorisSpawnState>(ref flag); ContentAddition.AddEntityState<BorisFireProjectile>(ref flag); ContentAddition.AddEntityState<BorisLuce>(ref flag); ContentAddition.AddEntityState<BorisFinisher>(ref flag); } private void CreateMaster() { doppelganger = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterMasters/MercMonsterMaster"), "AatroxMonsterMaster", true); doppelganger.GetComponent<CharacterMaster>().bodyPrefab = aatroxPrefab; ContentAddition.AddMaster(doppelganger); } private void CreateBorisMaster() { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterMasters/LoaderMonsterMaster"), "BorisMonsterMaster", true); val.GetComponent<CharacterMaster>().bodyPrefab = borisPrefab; ContentAddition.AddMaster(val); } } public static class Assets { public static AssetBundle mainAssetBundle; public static AssetBundle secondaryAssetBundle; public static Texture charPortrait; public static Texture borisPortrait; public static Material mainMat; public static Material justicarMat; public static Material gildedMat; public static Material superMat; public static Sprite swapIcon; public static Sprite iconP; public static Sprite icon1; public static Sprite icon1b; public static Sprite icon1c; public static Sprite icon2; public static Sprite icon2b; public static Sprite icon3; public static Sprite icon3b; public static Sprite icon4; public static Sprite icon4b; public static Sprite icon4c; public static Sprite icon4d; public static Sprite bIconP; public static Sprite bIcon1; public static Sprite bIcon2; public static Sprite bIcon3; public static Sprite bIcon4; public static GameObject styleMeter; public static Sprite styleD; public static Sprite styleC; public static Sprite styleB; public static Sprite styleA; public static Sprite styleS; public static Sprite styleSS; public static Sprite styleSSS; public static Sprite styleTextD; public static Sprite styleTextC; public static Sprite styleTextB; public static Sprite styleTextA; public static Sprite styleTextS; public static Sprite styleTextSS; public static Sprite styleTextSSS; public static GameObject combo2FX; public static GameObject combo3FX; public static GameObject downslashFX; public static GameObject uppercutFX; public static GameObject lungeFX; public static GameObject rhaastUppercutFX; public static GameObject flightFX; public static GameObject massacreFX; public static GameObject projectileModel; public static GameObject blastModel; public static GameObject borisSlash1FX; public static GameObject borisSlash2FX; public static GameObject borisSlash3FX; public static GameObject borisCombo1FX; public static GameObject borisCombo2FX; public static GameObject borisSpawnFX; public static GameObject borisDeathFX; public static GameObject borisJudgementFX; public static GameObject borisJudgementStartFX; public static GameObject borisExplosionFX; public static GameObject borisHitFX; public static GameObject hitFX { get; set; } public static GameObject healFX { get; set; } public static GameObject critFX { get; set; } public static GameObject combo1FX { get; set; } public static void PopulateAssets() { //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_08da: Unknown result type (might be due to invalid IL or missing references) //IL_08df: Unknown result type (might be due to invalid IL or missing references) //IL_0959: Unknown result type (might be due to invalid IL or missing references) //IL_09ea: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)mainAssetBundle == (Object)null) { using Stream st