Decompiled source of AurelionSol v2.0.6
Aurelion.dll
Decompiled 5 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using EntityStates; using EntityStates.Huntress; using EntityStates.Mage.Weapon; using HG; using KinematicCharacterController; using On.RoR2; using On.RoR2.Projectile; using R2API; using R2API.Utils; using Rewired; using RoR2; using RoR2.Achievements; using RoR2.EntityLogic; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Experimental.Rendering; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.Rendering.PostProcessing; [assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = "")] [assembly: AssemblyCompany("Dragonyck")] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: AssemblyProduct("Aurelion")] [assembly: AssemblyTitle("Aurelion")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Aurelion; public static class Assets { public static AssetBundle MainAssetBundle; public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Aurelion.aurelionassets"); MainAssetBundle = AssetBundle.LoadFromStream(stream); } using Stream stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("Aurelion.Aurelion.bnk"); byte[] array = new byte[stream2.Length]; stream2.Read(array, 0, array.Length); SoundBanks.Add(array); } } [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.Dragonyck.AurelionSol", "AurelionSol", "2.0.5")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class Aurelion : BaseUnityPlugin { public const string MODUID = "com.Dragonyck.AurelionSol"; public static GameObject characterPrefab; public GameObject characterDisplay; public GameObject doppelganger; public static ConfigEntry<KeyCode> KeyToggle; private static readonly Color characterColor = new Color(0.12941f, 0.19216f, 0.46275f); private void Awake() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown //IL_0030: Expected O, but got Unknown KeyToggle = ((BaseUnityPlugin)this).Config.Bind<KeyCode>(new ConfigDefinition("Orbiting Stars Radius Toggle Key", "Key"), (KeyCode)308, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty<object>())); Assets.PopulateAssets(); Achievements.RegisterUnlockables(); Prefabs.CreatePrefabs(); CreatePrefab(); RegisterStates(); RegisterCharacter(); CreateDoppelganger(); Hooks(); } private void Hooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown ProjectileController.Start += new hook_Start(ProjectileController_Start); Stage.onStageStartGlobal += Stage_onStageStartGlobal; RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage); GlobalEventManager.onCharacterDeathGlobal += GlobalEventManager_onCharacterDeathGlobal; } private void GlobalEventManager_onCharacterDeathGlobal(DamageReport damageReport) { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)damageReport.victimBody) || !Object.op_Implicit((Object)(object)damageReport.attackerBody)) { return; } DamageType val = (DamageType)96; if (damageReport.victimBody.HasBuff(Prefabs.grav)) { if (!Object.op_Implicit((Object)(object)((Component)damageReport.attackerBody).GetComponent<StardustCollector>()) || !Object.op_Implicit((Object)(object)damageReport.attackerBody.inventory)) { foreach (AurelionGravSphereBehaviour instances in InstanceTracker.GetInstancesList<AurelionGravSphereBehaviour>()) { float num = Vector3.Distance(((Component)instances).transform.position, damageReport.victimBody.footPosition); if (num <= 12f && Object.op_Implicit((Object)(object)instances.owner)) { CharacterBody component = instances.owner.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.inventory)) { component.inventory.GiveItem(Prefabs.star, 1); } } } return; } damageReport.attackerBody.inventory.GiveItem(Prefabs.star, 1); } else if (damageReport.damageInfo.damageType == val) { damageReport.damageInfo.damageType = (DamageType)32; AurelionPassiveBehaviour component2 = ((Component)damageReport.attackerBody).GetComponent<AurelionPassiveBehaviour>(); if (Object.op_Implicit((Object)(object)component2) && component2.hasStardust && Object.op_Implicit((Object)(object)damageReport.attackerBody.inventory)) { damageReport.attackerBody.inventory.GiveItem(Prefabs.star, 1); } } } private void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Invalid comparison between Unknown and I4 //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Invalid comparison between Unknown and I4 //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: 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_010b: Expected O, but got Unknown //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_0191: 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_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)self.body) && Object.op_Implicit((Object)(object)damageInfo.attacker) && Object.op_Implicit((Object)(object)damageInfo.attacker.GetComponent<AurelionPassiveBehaviour>())) { AurelionPassiveBehaviour component = damageInfo.attacker.GetComponent<AurelionPassiveBehaviour>(); CharacterBody component2 = damageInfo.attacker.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component2)) { if ((int)damageInfo.damageType == 2) { damageInfo.damageType = (DamageType)128; DamageAPI.AddModdedDamageType(damageInfo, Prefabs.starburst); } else if ((int)damageInfo.damageType == 262144) { self.body.AddTimedBuff(Prefabs.breath, 1f); if (self.body.GetBuffCount(Prefabs.breath) >= 8) { self.body.ClearTimedBuffs(Prefabs.breath); EffectData val = new EffectData { origin = self.body.corePosition, scale = 10f }; EffectManager.SpawnEffect(Prefabs.aurelionFireBreathHitEffectLarge, val, true); new BlastAttack { attacker = damageInfo.attacker, baseDamage = component2.damage * (component2.attackSpeed * 1.5f + Mathf.Clamp((float)component.starCount * 0.01f, 0f, float.MaxValue)), baseForce = 200f, crit = component2.RollCrit(), damageType = (DamageType)64, falloffModel = (FalloffModel)0, procCoefficient = 1f, radius = 10f, position = self.body.corePosition, attackerFiltering = (AttackerFiltering)2, teamIndex = component2.teamComponent.teamIndex, damageColorIndex = (DamageColorIndex)12 }.Fire(); DamageAPI.AddModdedDamageType(damageInfo, Prefabs.starburst); } damageInfo.damageType = (DamageType)0; } if (component.hasStardust && DamageAPI.HasModdedDamageType(damageInfo, Prefabs.starburst) && Object.op_Implicit((Object)(object)component2.inventory)) { component2.inventory.GiveItem(Prefabs.star, 1); } } } orig.Invoke(self, damageInfo); } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { if (sender.HasBuff(Prefabs.flight)) { args.damageMultAdd += 0.2f; } } private void Stage_onStageStartGlobal(Stage stage) { //IL_0054: 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) SceneDef sceneDef = stage.sceneDef; if (Object.op_Implicit((Object)(object)sceneDef) && sceneDef.baseSceneName == "limbo" && NetworkServer.active) { GameObject val = Object.Instantiate<GameObject>(Prefabs.aurelionInteractable); val.transform.localPosition = new Vector3(-152.4677f, -22f, 519.8533f); val.transform.localRotation = new Quaternion(0f, 90f, 0f, 0f); NetworkServer.Spawn(val); } } private void ProjectileController_Start(orig_Start orig, ProjectileController self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)((Component)self).gameObject) && Object.op_Implicit((Object)(object)((Component)self).GetComponent<AurelionSecondaryBehaviour>()) && Object.op_Implicit((Object)(object)self.owner)) { AurelionSecondaryController component = self.owner.GetComponent<AurelionSecondaryController>(); if (Object.op_Implicit((Object)(object)component)) { component.star = ((Component)self).gameObject; } } } private static GameObject CreateModel(GameObject main) { 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); return Assets.MainAssetBundle.LoadAsset<GameObject>("aurelion"); } internal static void CreatePrefab() { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Expected O, but got Unknown //IL_008e: 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_00bf: 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_00d5: Expected O, but got Unknown //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Expected O, but got Unknown //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_03ec: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_0455: Unknown result type (might be due to invalid IL or missing references) //IL_045a: Unknown result type (might be due to invalid IL or missing references) //IL_0472: 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_048f: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_0509: Unknown result type (might be due to invalid IL or missing references) //IL_050e: Unknown result type (might be due to invalid IL or missing references) //IL_0781: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_07a7: Unknown result type (might be due to invalid IL or missing references) //IL_07ac: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_07d2: Unknown result type (might be due to invalid IL or missing references) //IL_07fd: Unknown result type (might be due to invalid IL or missing references) //IL_080a: Unknown result type (might be due to invalid IL or missing references) //IL_0814: Unknown result type (might be due to invalid IL or missing references) //IL_081e: Unknown result type (might be due to invalid IL or missing references) //IL_083b: Unknown result type (might be due to invalid IL or missing references) //IL_085b: Unknown result type (might be due to invalid IL or missing references) //IL_0964: Unknown result type (might be due to invalid IL or missing references) //IL_0969: Unknown result type (might be due to invalid IL or missing references) //IL_09a3: Unknown result type (might be due to invalid IL or missing references) //IL_09a8: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_0597: Unknown result type (might be due to invalid IL or missing references) //IL_05ac: Unknown result type (might be due to invalid IL or missing references) //IL_0b92: Unknown result type (might be due to invalid IL or missing references) //IL_0c8a: Unknown result type (might be due to invalid IL or missing references) //IL_0c91: Expected O, but got Unknown //IL_0cb1: Unknown result type (might be due to invalid IL or missing references) //IL_0cc3: Unknown result type (might be due to invalid IL or missing references) //IL_0ce4: Unknown result type (might be due to invalid IL or missing references) //IL_0d46: Unknown result type (might be due to invalid IL or missing references) //IL_0d4b: Unknown result type (might be due to invalid IL or missing references) //IL_0d79: Unknown result type (might be due to invalid IL or missing references) //IL_0d7e: Unknown result type (might be due to invalid IL or missing references) //IL_0da7: Unknown result type (might be due to invalid IL or missing references) //IL_0dac: Unknown result type (might be due to invalid IL or missing references) //IL_0dbd: Unknown result type (might be due to invalid IL or missing references) //IL_0dc2: Unknown result type (might be due to invalid IL or missing references) //IL_0deb: Unknown result type (might be due to invalid IL or missing references) //IL_0df0: Unknown result type (might be due to invalid IL or missing references) //IL_0e01: Unknown result type (might be due to invalid IL or missing references) //IL_0e06: Unknown result type (might be due to invalid IL or missing references) //IL_0e2f: 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_0e45: Unknown result type (might be due to invalid IL or missing references) //IL_0e4a: Unknown result type (might be due to invalid IL or missing references) //IL_0e73: Unknown result type (might be due to invalid IL or missing references) //IL_0e78: Unknown result type (might be due to invalid IL or missing references) //IL_0e89: Unknown result type (might be due to invalid IL or missing references) //IL_0e8e: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_069e: Unknown result type (might be due to invalid IL or missing references) //IL_0649: Unknown result type (might be due to invalid IL or missing references) //IL_064e: Unknown result type (might be due to invalid IL or missing references) characterPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/CommandoBody"), "AurelionSolBody", true); characterPrefab.GetComponent<NetworkIdentity>().localPlayerAuthority = true; characterPrefab.AddComponent<StarsAttachment>(); characterPrefab.AddComponent<StardustCollector>(); characterPrefab.AddComponent<AurelionSecondaryController>(); GameObject val = CreateModel(characterPrefab); GameObject val2 = new GameObject("ModelBase"); val2.transform.parent = characterPrefab.transform; val2.transform.localPosition = new Vector3(0f, -0.94f, 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, 2.3f, 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(1f, 1f, 1f); transform.localRotation = Quaternion.identity; CharacterDirection component = characterPrefab.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 = characterPrefab.GetComponent<CharacterBody>(); ((Object)component2).name = "AurelionSolBody"; component2.baseNameToken = "AURELION_NAME"; component2.subtitleNameToken = "AURELION_SUBTITLE"; component2.bodyFlags = (BodyFlags)16; component2.rootMotionInMainState = false; component2.mainRootSpeed = 0f; component2.baseMaxHealth = 130f; component2.levelMaxHealth = 40f; component2.baseRegen = 1f; component2.levelRegen = 0.33f; component2.baseMaxShield = 0f; component2.levelMaxShield = 0f; component2.baseMoveSpeed = 9f; component2.levelMoveSpeed = 0f; component2.baseAcceleration = 14f; component2.baseJumpPower = 15f; component2.levelJumpPower = 0f; component2.baseDamage = 12f; component2.levelDamage = 2.4f; component2.baseAttackSpeed = 1f; component2.levelAttackSpeed = 0f; component2.baseCrit = 1f; component2.levelCrit = 0f; component2.baseArmor = 0f; component2.levelArmor = 0f; component2.baseJumpCount = 1; component2.sprintingSpeedMultiplier = 1.45f; component2.wasLucky = false; component2._defaultCrosshairPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/UI/SimpleDotCrosshair.prefab").WaitForCompletion(); component2.hideCrosshair = false; component2.aimOriginTransform = val4.transform; component2.hullClassification = (HullClassification)0; component2.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("portraitx128").texture; component2.isChampion = false; component2.currentVehicle = null; component2.skinIndex = 0u; component2.preferredPodPrefab = null; component2.bodyColor = characterColor; CharacterMotor component3 = characterPrefab.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 = characterPrefab.GetComponent<InputBankTest>(); component4.moveVector = Vector3.zero; CameraTargetParams component5 = characterPrefab.GetComponent<CameraTargetParams>(); component5.cameraParams = Addressables.LoadAssetAsync<CharacterCameraParams>((object)"RoR2/Base/Croco/ccpCroco.asset").WaitForCompletion(); component5.cameraPivotTransform = null; component5.recoil = Vector2.zero; component5.dontRaycastToPivot = false; ModelLocator component6 = characterPrefab.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 component7 = val.GetComponent<ChildLocator>(); CharacterModel val5 = val.AddComponent<CharacterModel>(); Shader shader = Addressables.LoadAssetAsync<Shader>((object)"RoR2/Base/Shaders/HGUIOverbrighten.shader").WaitForCompletion(); SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>(true); List<RendererInfo> list = new List<RendererInfo>(); for (int i = 0; i < componentsInChildren.Length; i++) { string name = ((Object)componentsInChildren[i]).name; bool flag = name == "Default"; bool flag2 = name == "Default1"; bool flag3 = name == "DefaultSplit"; bool flag4 = name == "Default2"; bool flag5 = name == "Skin03" || name == "Skin05"; RendererInfo val6 = default(RendererInfo); val6.renderer = (Renderer)(object)componentsInChildren[i]; val6.defaultShadowCastingMode = (ShadowCastingMode)1; val6.ignoreOverlays = false; if (flag) { val6.defaultMaterial = Utils.InstantiateMaterial(((Renderer)componentsInChildren[i]).material.mainTexture); val6.defaultMaterial.shader = shader; } else if (flag2) { val6.defaultMaterial = ((Renderer)componentsInChildren[i]).material; } else if (flag3) { val6.defaultMaterial = Utils.InstantiateMaterial(((Renderer)componentsInChildren[i]).material.mainTexture); } else if (flag4) { val6.defaultMaterial = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/CrippleWard/matCrippleSphereIndicator.mat").WaitForCompletion(); } else if (!flag5) { val6.defaultMaterial = Utils.InstantiateMaterial(((Renderer)componentsInChildren[i]).material.mainTexture); } else { val6.defaultMaterial = ((Renderer)componentsInChildren[i]).material; } list.Add(val6); } RendererInfo[] array = list.ToArray(); val5.body = component2; val5.baseRendererInfos = array; val5.autoPopulateLightInfos = true; val5.invisibilityCount = 0; val5.temporaryOverlays = new List<TemporaryOverlay>(); Reflection.SetFieldValue<SkinnedMeshRenderer>((object)val5, "mainSkinnedMeshRenderer", componentsInChildren[0]); ModelSkinController val7 = val.AddComponent<ModelSkinController>(); LanguageAPI.Add("AURELIONBODY_DEFAULT_SKIN_NAME", "Default"); LanguageAPI.Add("AURELIONBODY_SKIN01_SKIN_NAME", "Ashen Lord"); LanguageAPI.Add("AURELIONBODY_SKIN02_SKIN_NAME", "Mecha"); LanguageAPI.Add("AURELIONBODY_SKIN03_SKIN_NAME", "Storm Dragon"); LanguageAPI.Add("AURELIONBODY_SKIN04_SKIN_NAME", "PROJECT"); LanguageAPI.Add("AURELIONBODY_SKIN05_SKIN_NAME", "Inkshadow"); Renderer[] childList = (Renderer[])(object)componentsInChildren; SkinDefInfo val8 = Utils.CreateNewSkinDefInfo(childList, val, "AURELIONBODY_SKIN01_SKIN_NAME", "Skin01", array); val8.UnlockableDef = Achievements.aurelionAshenDef; childList = (Renderer[])(object)componentsInChildren; SkinDefInfo val9 = Utils.CreateNewSkinDefInfo(childList, val, "AURELIONBODY_SKIN02_SKIN_NAME", "Skin02", array); val9.UnlockableDef = Achievements.aurelionMechaDef; childList = (Renderer[])(object)componentsInChildren; SkinDefInfo val10 = Utils.CreateNewSkinDefInfo(childList, val, "AURELIONBODY_SKIN03_SKIN_NAME", "Skin03", array); val10.UnlockableDef = Achievements.aurelionStormDef; SkinDef[] array2 = new SkinDef[6]; childList = (Renderer[])(object)componentsInChildren; array2[0] = LoadoutAPI.CreateNewSkinDef(Utils.CreateNewSkinDefInfo(childList, val, "AURELIONBODY_DEFAULT_SKIN_NAME", "Default", array)); array2[1] = LoadoutAPI.CreateNewSkinDef(val8); array2[2] = LoadoutAPI.CreateNewSkinDef(val9); array2[3] = LoadoutAPI.CreateNewSkinDef(val10); childList = (Renderer[])(object)componentsInChildren; array2[4] = LoadoutAPI.CreateNewSkinDef(Utils.CreateNewSkinDefInfo(childList, val, "AURELIONBODY_SKIN04_SKIN_NAME", "Skin04", array)); childList = (Renderer[])(object)componentsInChildren; array2[5] = LoadoutAPI.CreateNewSkinDef(Utils.CreateNewSkinDefInfo(childList, val, "AURELIONBODY_SKIN05_SKIN_NAME", "Skin05", array)); val7.skins = (SkinDef[])(object)array2; HealthComponent component8 = characterPrefab.GetComponent<HealthComponent>(); component8.health = 130f; component8.shield = 0f; component8.barrier = 0f; component8.magnetiCharge = 0f; component8.body = null; component8.dontShowHealthbar = false; component8.globalDeathEventChanceCoefficient = 1f; SfxLocator component9 = characterPrefab.GetComponent<SfxLocator>(); component9.deathSound = "Play_ui_player_death"; component9.barkSound = ""; component9.openSound = ""; component9.landingSound = null; component9.fallDamageSound = null; component9.aliveLoopStart = ""; component9.aliveLoopStop = ""; Object.Destroy((Object)(object)characterPrefab.GetComponent<CharacterDirection>()); Object.Destroy((Object)(object)characterPrefab.GetComponent<CharacterMotor>()); QuaternionPID val11 = characterPrefab.AddComponent<QuaternionPID>(); val11.customName = "Angular Velocity PID"; val11.PID = new Vector3(6f, 1f, 0f); val11.gain = 1f; VectorPID val12 = characterPrefab.AddComponent<VectorPID>(); val12.customName = "torquePID"; val12.PID = new Vector3(2f, 1f, 0f); val12.isAngle = true; val12.gain = 3f; VectorPID val13 = characterPrefab.AddComponent<VectorPID>(); val13.customName = "forcePID"; val13.PID = new Vector3(3f, 0f, 0f); val13.isAngle = false; val13.gain = 1f; Rigidbody component10 = characterPrefab.GetComponent<Rigidbody>(); component10.mass = 300f; component10.drag = 0f; component10.angularDrag = 0.02f; component10.maxDepenetrationVelocity = 132f; component10.solverIterations = 6; component10.sleepThreshold = 0.005f; component10.maxAngularVelocity = 7f; component10.solverVelocityIterations = 1; component10.useGravity = false; component10.isKinematic = false; component10.interpolation = (RigidbodyInterpolation)1; component10.collisionDetectionMode = (CollisionDetectionMode)0; component10.constraints = (RigidbodyConstraints)0; RigidbodyDirection val14 = characterPrefab.AddComponent<RigidbodyDirection>(); val14.rigid = component10; val14.angularVelocityPID = val11; val14.torquePID = val12; RigidbodyMotor val15 = characterPrefab.AddComponent<RigidbodyMotor>(); val15.rigid = component10; val15.forcePID = val13; val15.canTakeImpactDamage = false; CapsuleCollider component11 = characterPrefab.GetComponent<CapsuleCollider>(); component11.radius = 0.89f; component11.height = 6.71f; component11.direction = 2; Object.Destroy((Object)(object)characterPrefab.GetComponent<KinematicCharacterMotor>()); CapsuleCollider component12 = ((Component)component7.FindChild("collider")).GetComponent<CapsuleCollider>(); HurtBoxGroup val16 = val.AddComponent<HurtBoxGroup>(); List<HurtBox> list2 = new List<HurtBox>(); Collider[] componentsInChildren2 = val.GetComponentsInChildren<Collider>(true); for (int j = 0; j < componentsInChildren2.Length; j++) { HurtBox val17 = ((Component)componentsInChildren2[j]).gameObject.AddComponent<HurtBox>(); ((Component)val17).gameObject.layer = LayerIndex.entityPrecise.intVal; val17.healthComponent = component8; val17.damageModifier = (DamageModifier)0; val17.hurtBoxGroup = val16; val17.indexInGroup = (short)j; val17.teamIndex = (TeamIndex)1; list2.Add(val17); } val16.hurtBoxes = list2.ToArray(); val16.mainHurtBox = ((Component)component12).GetComponent<HurtBox>(); val16.mainHurtBox.isBullseye = true; val16.bullseyeCount = 1; characterPrefab.GetComponent<Interactor>().maxInteractionDistance = 6.5f; AimAnimator val18 = val.AddComponent<AimAnimator>(); val18.inputBank = component4; val18.directionComponent = component; val18.pitchRangeMax = 55f; val18.pitchRangeMin = -50f; val18.yawRangeMin = -44f; val18.yawRangeMax = 44f; val18.pitchGiveupRange = 30f; val18.yawGiveupRange = 10f; val18.giveupDuration = 8f; GameObject val19 = new GameObject("PrimaryHitbox"); val19.transform.SetParent(component7.FindChild("FireBreath")); val19.transform.localPosition = Vector3.zero; val19.transform.localRotation = Quaternion.identity; val19.transform.localScale = new Vector3(12f, 12f, 12f); HitBoxGroup val20 = val19.AddComponent<HitBoxGroup>(); HitBox val21 = val19.AddComponent<HitBox>(); val19.layer = LayerIndex.projectile.intVal; val20.hitBoxes = (HitBox[])(object)new HitBox[1] { val21 }; val20.groupName = "PrimaryHitbox"; EntityStateMachine component13 = ((Component)component2).GetComponent<EntityStateMachine>(); component13.mainStateType = new SerializableEntityStateType(typeof(FlyMain)); CharacterDeathBehavior component14 = characterPrefab.GetComponent<CharacterDeathBehavior>(); component14.deathStateMachine = characterPrefab.GetComponent<EntityStateMachine>(); component14.deathState = new SerializableEntityStateType(typeof(GenericCharacterDeath)); EntityStateMachine val22 = characterPrefab.AddComponent<EntityStateMachine>(); val22.customName = "Util"; val22.initialStateType = new SerializableEntityStateType(typeof(Idle)); val22.mainStateType = new SerializableEntityStateType(typeof(Idle)); EntityStateMachine val23 = characterPrefab.AddComponent<EntityStateMachine>(); val23.customName = "Starsurge"; val23.initialStateType = new SerializableEntityStateType(typeof(Idle)); val23.mainStateType = new SerializableEntityStateType(typeof(Idle)); EntityStateMachine val24 = characterPrefab.AddComponent<EntityStateMachine>(); val24.customName = "StarsurgeRecast"; val24.initialStateType = new SerializableEntityStateType(typeof(Idle)); val24.mainStateType = new SerializableEntityStateType(typeof(Idle)); EntityStateMachine val25 = characterPrefab.AddComponent<EntityStateMachine>(); val25.customName = "InterruptFlyState"; val25.initialStateType = new SerializableEntityStateType(typeof(BaseState)); val25.mainStateType = new SerializableEntityStateType(typeof(BaseState)); NetworkStateMachine component15 = ((Component)component2).GetComponent<NetworkStateMachine>(); List<EntityStateMachine> list3 = component15.stateMachines.ToList(); list3.Add(val22); list3.Add(val23); list3.Add(val24); list3.Add(val25); component15.stateMachines = list3.ToArray(); ContentAddition.AddBody(characterPrefab); } private void RegisterCharacter() { //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) characterDisplay = Utils.NewDisplayModel(((Component)characterPrefab.GetComponent<ModelLocator>().modelBaseTransform).gameObject, "AurelionDisplay"); Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(0.65f, 0.65f, 0.65f); characterDisplay.transform.localScale_Injected = ref val; characterDisplay.AddComponent<NetworkIdentity>(); string text = "Aurelion Sol is an unorthodox survivor who has tools to handle both close and long range, but prefers to position around his expanded star radius in the mid-range.<style=cSub>\r\n\r\n< ! > Solar Flare's firebreath reaches the expanded radius, meaning proper positioning can add tremendous amounts of dps." + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > Starsurge is a fantastic tool to keep aggressive melee enemies in place as you kite them as well as doubling up as a combo and engage tool. Its maximum distance away from Aurelion is the expanded radius." + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > Comet of Legend is a very versatile skill for both getting to points of interest quickly and repositioning for disengaging and engaging with Starsurge." + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > Voice of Light has a high cooldown but is an incredibly powerful skill, both forcing enemies into favourable positions and dealing high long range damage." + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > Finding out when to combo Aurelion Sol's skills together with a star hit will grealty improve your consistency with him!"; string text2 = "..and so he left, freedom in sight. Targon is next."; string text3 = "..and so he vanished, forever a slave to the gods."; LanguageAPI.Add("AURELION_NAME", "Aurelion Sol"); LanguageAPI.Add("AURELION_DESCRIPTION", text); LanguageAPI.Add("AURELION_SUBTITLE", "Aurelion"); LanguageAPI.Add("AURELION_OUTRO", text2); LanguageAPI.Add("AURELION_FAIL", text3); SurvivorDef val2 = ScriptableObject.CreateInstance<SurvivorDef>(); val2.cachedName = "AURELION_NAME"; val2.unlockableDef = Achievements.aurelionUnlockDef; val2.descriptionToken = "AURELION_DESCRIPTION"; val2.primaryColor = characterColor; val2.bodyPrefab = characterPrefab; val2.displayPrefab = characterDisplay; val2.outroFlavorToken = "AURELION_OUTRO"; val2.desiredSortPosition = 0f; val2.mainEndingEscapeFailureFlavorToken = "AURELION_FAIL"; ContentAddition.AddSurvivorDef(val2); SkillSetup(); } 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) bool flag = default(bool); ContentAddition.AddEntityState<AurelionMain>(ref flag); ContentAddition.AddEntityState<FlyMain>(ref flag); ContentAddition.AddEntityState<AurelionPrimary>(ref flag); ContentAddition.AddEntityState<AurelionSecondary>(ref flag); ContentAddition.AddEntityState<AurelionSecondaryRecast>(ref flag); ContentAddition.AddEntityState<DetonateSecondary>(ref flag); ContentAddition.AddEntityState<AurelionUtility>(ref flag); ContentAddition.AddEntityState<UtilityEnd>(ref flag); ContentAddition.AddEntityState<AurelionSpecial>(ref flag); ContentAddition.AddEntityState<AurelionNewPrimary>(ref flag); ContentAddition.AddEntityState<AurelionNewSecondary>(ref flag); ContentAddition.AddEntityState<AurelionNewSecondaryCast>(ref flag); ContentAddition.AddEntityState<AurelionNewUtility>(ref flag); ContentAddition.AddEntityState<AurelionNewUtilityFlight>(ref flag); ContentAddition.AddEntityState<AurelionNewSpecial>(ref flag); ContentAddition.AddEntityState<AurelionNewSpecialCast>(ref flag); ContentAddition.AddEntityState<NewSpecialEnd>(ref flag); } private void SkillSetup() { GenericSkill[] componentsInChildren = characterPrefab.GetComponentsInChildren<GenericSkill>(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } PassiveSetup(); PrimarySetup(); SecondarySetup(); UtilitySetup(); SpecialSetup(); } private void PassiveSetup() { //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Expected O, but got Unknown //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Unknown result type (might be due to invalid IL or missing references) //IL_0327: Unknown result type (might be due to invalid IL or missing references) //IL_0331: Expected O, but got Unknown //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = characterPrefab.GetComponent<SkillLocator>(); LanguageAPI.Add("AURELION_PASSIVE_NAME", "Center of the Universe"); LanguageAPI.Add("AURELION_PASSIVE_DESCRIPTION", "Aurelion Sol can fly at will and is permanently orbited by 3 stars." + Environment.NewLine + "<style=cKeywordName>Celestial Expansion</style><style=cSub>"); KeyCode value = KeyToggle.Value; LanguageAPI.Add("AURELION_PASSIVE_KEYWORD", "<style=cKeywordName>Celestial Expansion</style><style=cSub>Pressing " + ((object)(KeyCode)(ref value)).ToString() + " toggles the stars between close and expanded range, when a star hits an enemy it deals <style=cIsDamage>500% damage</style>. The star's rotation speed scales with attack speed."); LanguageAPI.Add("AURELION_PASSIVE2_NAME", "Cosmic Creator"); LanguageAPI.Add("AURELION_PASSIVE2_DESCRIPTION", "Aurelion Sol can fly at will and his abilities break his foes down to <style=cIsUtility>stardust</style>, stacks of <style=cIsUtility>stardust</style> <style=cIsDamage>empower</style> his abilities in various ways. <style=cKeywordName><style=cIsDamage>Cosmic Creator</style></style><style=cSub>"); component.passiveSkill.enabled = false; component.passiveSkill.skillNameToken = "AURELION_PASSIVE_NAME"; component.passiveSkill.skillDescriptionToken = "AURELION_PASSIVE_DESCRIPTION"; component.passiveSkill.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsol_w_starsout"); component.passiveSkill.keywordToken = "AURELION_PASSIVE_KEYWORD"; GenericSkill val = characterPrefab.AddComponent<GenericSkill>(); val.hideInCharacterSelect = false; SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>(); val2.variants = (Variant[])(object)new Variant[2]; Reflection.SetFieldValue<SkillFamily>((object)val, "_skillFamily", val2); SkillFamily skillFamily = val.skillFamily; SkillDef val3 = ScriptableObject.CreateInstance<SkillDef>(); val3.activationState = new SerializableEntityStateType(typeof(BaseState)); val3.activationStateMachineName = "Weapon"; val3.baseMaxStock = 0; val3.baseRechargeInterval = 0f; val3.beginSkillCooldownOnSkillEnd = true; val3.canceledFromSprinting = false; val3.fullRestockOnAssign = true; val3.interruptPriority = (InterruptPriority)0; val3.isCombatSkill = true; val3.mustKeyPress = false; val3.cancelSprintingOnActivation = true; val3.rechargeStock = 0; val3.requiredStock = 0; val3.stockToConsume = 0; val3.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsol_w_starsout"); val3.skillDescriptionToken = "AURELION_PASSIVE_DESCRIPTION"; val3.skillName = "AURELION_PASSIVE_NAME"; val3.skillNameToken = "AURELION_PASSIVE_NAME"; val3.keywordTokens = new string[1] { "AURELION_PASSIVE_KEYWORD" }; ContentAddition.AddSkillDef(val3); Variant[] variants = skillFamily.variants; Variant val4 = new Variant { skillDef = val3 }; ((Variant)(ref val4)).viewableNode = new Node(val3.skillName, false, (Node)null); variants[0] = val4; val3 = ScriptableObject.CreateInstance<SkillDef>(); val3.activationState = new SerializableEntityStateType(typeof(BaseState)); val3.activationStateMachineName = "Weapon"; val3.baseMaxStock = 0; val3.baseRechargeInterval = 0f; val3.beginSkillCooldownOnSkillEnd = true; val3.canceledFromSprinting = false; val3.fullRestockOnAssign = true; val3.interruptPriority = (InterruptPriority)0; val3.isCombatSkill = true; val3.mustKeyPress = false; val3.cancelSprintingOnActivation = true; val3.rechargeStock = 0; val3.requiredStock = 0; val3.stockToConsume = 0; val3.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsolp.asolgu"); val3.skillDescriptionToken = "AURELION_PASSIVE2_DESCRIPTION"; val3.skillName = "AURELION_PASSIVE2_NAME"; val3.skillNameToken = "AURELION_PASSIVE2_NAME"; ContentAddition.AddSkillDef(val3); Variant[] variants2 = skillFamily.variants; val4 = new Variant { skillDef = val3 }; ((Variant)(ref val4)).viewableNode = new Node(val3.skillName, false, (Node)null); variants2[1] = val4; ContentAddition.AddSkillFamily(skillFamily); } private void PrimarySetup() { //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Expected O, but got Unknown //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: 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_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Expected O, but got Unknown //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = characterPrefab.GetComponent<SkillLocator>(); LanguageAPI.Add("AURELION_M1", "Solar Flare"); LanguageAPI.Add("AURELION_M1_DESCRIPTION", "<style=cIsDamage>Ignite</style>. Aurelion Sol exhales a cluster of starfire close to him, dealing <style=cIsDamage>250% damage</style>. This attack also sends a single, weaker but long range projectile where aimed dealing <style=cIsDamage>200% damage</style>." + Environment.NewLine + Environment.NewLine + "<style=cKeywordName><style=cIsDamage>Cosmic Creator</style></style><style=cSub>Hits with the fire breath collect <style=cIsUtility>stardust</style>. Attack speed and damage is increased with <style=cIsUtility>stardust</style>."); LanguageAPI.Add("AURELION_M1NEW", "Breath of Light"); LanguageAPI.Add("AURELION_M1NEW_DESCRIPTION", "Exhale a beam of starfire, dealing <style=cIsDamage>20% damage</style> every 0.125 seconds to the first enemy hit, with reduced splash damage. Every second the beam hits the same target, it'll burst, dealing <style=cIsDamage>150% damage</style> in an aoe. Attack speed increases damage." + Environment.NewLine + Environment.NewLine + "<style=cKeywordName><style=cIsDamage>Cosmic Creator</style></style><style=cSub>The bursts collect <style=cIsUtility>stardust</style>. Stardust increases the burst's damage."); SkillDef val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(AurelionPrimary)); val.activationStateMachineName = "Weapon"; val.baseMaxStock = 0; val.baseRechargeInterval = 0f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = true; val.rechargeStock = 0; val.requiredStock = 0; val.stockToConsume = 0; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsol_passive"); val.skillDescriptionToken = "AURELION_M1_DESCRIPTION"; val.skillName = "AURELION_M1"; val.skillNameToken = "AURELION_M1"; ContentAddition.AddSkillDef(val); component.primary = characterPrefab.AddComponent<GenericSkill>(); SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>(); val2.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue<SkillFamily>((object)component.primary, "_skillFamily", val2); SkillFamily skillFamily = component.primary.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; ContentAddition.AddSkillFamily(skillFamily); val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(AurelionNewPrimary)); val.activationStateMachineName = "Weapon"; val.baseMaxStock = 0; val.baseRechargeInterval = 0f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = true; val.rechargeStock = 0; val.requiredStock = 0; val.stockToConsume = 0; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsolq.asolgu"); val.skillDescriptionToken = "AURELION_M1NEW_DESCRIPTION"; val.skillName = "AURELION_M1NEW"; val.skillNameToken = "AURELION_M1NEW"; ContentAddition.AddSkillDef(val); Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants2 = skillFamily.variants; int num = skillFamily.variants.Length - 1; val3 = new Variant { skillDef = val, unlockableDef = null }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants2[num] = val3; } private void SecondarySetup() { //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Expected O, but got Unknown //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_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_021c: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_02ff: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Expected O, but got Unknown //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = characterPrefab.GetComponent<SkillLocator>(); LanguageAPI.Add("AURELION_M2", "Starsurge"); LanguageAPI.Add("AURELION_M2_DESCRIPTION", "Aurelion Sol channels a newborn star which travels in the target direction. When recast or it strays too far away from aurelion it detonates, <style=cIsDamage>stunning</style> and dealing <style=cIsDamage>400%</style>, increasing with distance travelled." + Environment.NewLine + Environment.NewLine + "<style=cKeywordName><style=cIsDamage>Cosmic Creator</style></style><style=cSub>Damage with distance is increased."); LanguageAPI.Add("AURELION_M2NEW", "Singularity"); LanguageAPI.Add("AURELION_M2NEW_DESCRIPTION", "Aurelion Sol conjures a black hole, dragging enemies towards the centre and dealing <style=cIsDamage>20% damage</style> every 0.25 seconds for 5 seconds, increased to 30% in the centre. Enemies that die in the black hole are counted as Aurelion Sol killing them." + Environment.NewLine + Environment.NewLine + "<style=cKeywordName><style=cIsDamage>Cosmic Creator</style></style><style=cSub>Enemies that die in the black hole grant 1 stardust each. The effect radius increases with <style=cIsUtility>stardust</style>."); SkillDef val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(AurelionSecondary)); val.activationStateMachineName = "Starsurge"; val.baseMaxStock = 1; val.baseRechargeInterval = 6f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = false; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = true; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsol_q"); val.skillDescriptionToken = "AURELION_M2_DESCRIPTION"; val.skillName = "AURELION_M2"; val.skillNameToken = "AURELION_M2"; ContentAddition.AddSkillDef(val); component.secondary = characterPrefab.AddComponent<GenericSkill>(); SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>(); val2.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue<SkillFamily>((object)component.secondary, "_skillFamily", val2); SkillFamily skillFamily = component.secondary.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; ContentAddition.AddSkillFamily(skillFamily); AurelionSecondary.SkillDef = ScriptableObject.CreateInstance<SkillDef>(); AurelionSecondary.SkillDef.activationState = new SerializableEntityStateType(typeof(AurelionSecondaryRecast)); AurelionSecondary.SkillDef.activationStateMachineName = "StarsurgeRecast"; AurelionSecondary.SkillDef.baseMaxStock = 0; AurelionSecondary.SkillDef.baseRechargeInterval = 0f; AurelionSecondary.SkillDef.beginSkillCooldownOnSkillEnd = true; AurelionSecondary.SkillDef.canceledFromSprinting = false; AurelionSecondary.SkillDef.fullRestockOnAssign = true; AurelionSecondary.SkillDef.interruptPriority = (InterruptPriority)0; AurelionSecondary.SkillDef.isCombatSkill = true; AurelionSecondary.SkillDef.mustKeyPress = true; AurelionSecondary.SkillDef.cancelSprintingOnActivation = false; AurelionSecondary.SkillDef.rechargeStock = 0; AurelionSecondary.SkillDef.requiredStock = 0; AurelionSecondary.SkillDef.stockToConsume = 0; AurelionSecondary.SkillDef.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsol_q_explode"); AurelionSecondary.SkillDef.skillDescriptionToken = "AURELION_M2_DESCRIPTION"; AurelionSecondary.SkillDef.skillName = "AURELION_M2"; AurelionSecondary.SkillDef.skillNameToken = "AURELION_M2"; ContentAddition.AddSkillDef(val); val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(AurelionNewSecondary)); val.activationStateMachineName = "Starsurge"; val.baseMaxStock = 1; val.baseRechargeInterval = 10f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = false; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = true; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.dontAllowPastMaxStocks = true; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsole.asolgu"); val.skillDescriptionToken = "AURELION_M2NEW_DESCRIPTION"; val.skillName = "AURELION_M2NEW"; val.skillNameToken = "AURELION_M2NEW"; ContentAddition.AddSkillDef(val); Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants2 = skillFamily.variants; int num = skillFamily.variants.Length - 1; val3 = new Variant { skillDef = val, unlockableDef = null }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants2[num] = val3; } private void UtilitySetup() { //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Expected O, but got Unknown //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: 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_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Expected O, but got Unknown //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = characterPrefab.GetComponent<SkillLocator>(); LanguageAPI.Add("AURELION_UTIL", "Comet of Legend"); LanguageAPI.Add("AURELION_UTIL_DESCRIPTION", "Aurelion Sol flies in a burst of speed in the direction aimed, the speed and distance scales with <style=cIsUtility>movement speed</style>. If Starsurge is currently active or is cast during Comet of Legend, it will center itself on Aurelion Sol while he travels. Can be cancelled at any time by pressing Jump." + Environment.NewLine + Environment.NewLine + "<style=cKeywordName><style=cIsDamage>Cosmic Creator</style></style><style=cSub>Maximum travel distance is increased further with <style=cIsUtility>stardust</style>."); LanguageAPI.Add("AURELION_UTILNEW", "Dragonflight"); LanguageAPI.Add("AURELION_UTILNEW_DESCRIPTION", "Dash after a brief, while dashing, gain <style=cIsDamage>+20% damage</style>. The trajectory can be influenced with directional keys, can be cancelled early by pressing jump." + Environment.NewLine + Environment.NewLine + "<style=cKeywordName><style=cIsDamage>Cosmic Creator</style></style><style=cSub>Duration increases with <style=cIsUtility>stardust</style>."); SkillDef val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(AurelionUtility)); val.activationStateMachineName = "Slide"; val.baseMaxStock = 1; val.baseRechargeInterval = 6f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = false; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = false; val.mustKeyPress = true; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsol_e_fly"); val.skillDescriptionToken = "AURELION_UTIL_DESCRIPTION"; val.skillName = "AURELION_UTIL"; val.skillNameToken = "AURELION_UTIL"; ContentAddition.AddSkillDef(val); component.utility = characterPrefab.AddComponent<GenericSkill>(); SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>(); val2.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue<SkillFamily>((object)component.utility, "_skillFamily", val2); SkillFamily skillFamily = component.utility.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; ContentAddition.AddSkillFamily(skillFamily); val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(AurelionNewUtilityFlight)); val.activationStateMachineName = "Util"; val.baseMaxStock = 1; val.baseRechargeInterval = 10f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = false; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = false; val.mustKeyPress = true; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsolw1.asolgu"); val.skillDescriptionToken = "AURELION_UTILNEW_DESCRIPTION"; val.skillName = "AURELION_UTILNEW"; val.skillNameToken = "AURELION_UTILNEW"; ContentAddition.AddSkillDef(val); Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants2 = skillFamily.variants; int num = skillFamily.variants.Length - 1; val3 = new Variant { skillDef = val, unlockableDef = null }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants2[num] = val3; } private void SpecialSetup() { //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Expected O, but got Unknown //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_0318: Expected O, but got Unknown //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = characterPrefab.GetComponent<SkillLocator>(); LanguageAPI.Add("AURELION_SPEC", "Voice of Light"); LanguageAPI.Add("AURELION_SPEC_DESCRIPTION", "Aurelion Sol <style=cIsUtility>pulls</style> all nearby enemies to Center of the universe's expanded radius then exhales a beam of starfire in the target direction dealing <style=cIsDamage>1000% damage</style>." + Environment.NewLine + Environment.NewLine + "<style=cKeywordName><style=cIsDamage>Cosmic Creator</style></style><style=cSub>Collects stardust on kill. Damage and length of the blast is increased with <style=cIsUtility>stardust</style>."); LanguageAPI.Add("AURELION_SPECNEW", "Falling Star"); LanguageAPI.Add("AURELION_SPECNEW_DESCRIPTION", "Call down a star to impact the target location after 1.25 seconds, dealing <style=cIsDamage>500% damage</style> to enemies hit and <style=cIsDamage>stunning</style> them for <style=cIsUtility>1s</style>." + Environment.NewLine + Environment.NewLine + "<style=cKeywordName><style=cIsDamage>Cosmic Creator</style></style><style=cSub>Falling Star grants 1 <style=cIsUtility>stardust</style> for each enemy hit. Damage and effect radius increase with <style=cIsUtility>stardust</style>, at 900 <style=cIsUtility>stardust</style> this skill permanently becomes <style=cKeywordName><style=cIsDamage>The Skies Descend</style></style><style=cSub>"); LanguageAPI.Add("AURELION_SPECNEW2", "The Skies Descend"); LanguageAPI.Add("AURELION_SPECNEW2_DESCRIPTION", "Aurelion Sol summons an enormous star to impact the target location after 2 seconds, dealing <style=cIsDamage>3000% damage</style> damage to enemies hit and <style=cIsDamage>stunning</style> them for <style=cIsUtility>1s</style>, upon impact, a massive shockwave rapidly expands through the map, dealing <style=cIsDamage>1800% damage</style> to anything caught and slowing them." + Environment.NewLine + "<style=cKeywordName><style=cIsDamage>Cosmic Creator</style></style><style=cSub>Effect radius, shockwave travel distance and damage are all increased with <style=cIsUtility>stardust</style>."); LanguageAPI.Add("AURELION_SPECNEW2_DESCRIPTION_KEYWORD", "<style=cKeywordName><style=cIsDamage>The Skies Descend</style></style><style=cSub>Aurelion Sol summons an enormous star to impact the target location after 2 seconds, dealing <style=cIsDamage>3000% damage</style> damage to enemies hit and <style=cIsDamage>stunning</style> them for <style=cIsUtility>1s</style>, upon impact, a massive shockwave rapidly expands through the map, dealing <style=cIsDamage>1800% damage</style> to anything caught and slowing them." + Environment.NewLine + "<style=cKeywordName><style=cIsDamage>Cosmic Creator</style></style><style=cSub>Effect radius, shockwave travel distance and damage are all increased with <style=cIsUtility>stardust</style>."); SkillDef val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(AurelionSpecial)); val.activationStateMachineName = "Slide"; val.baseMaxStock = 1; val.baseRechargeInterval = 12f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = false; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = true; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsol_r"); val.skillDescriptionToken = "AURELION_SPEC_DESCRIPTION"; val.skillName = "AURELION_SPEC"; val.skillNameToken = "AURELION_SPEC"; ContentAddition.AddSkillDef(val); component.special = characterPrefab.AddComponent<GenericSkill>(); SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>(); val2.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue<SkillFamily>((object)component.special, "_skillFamily", val2); SkillFamily skillFamily = component.special.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; ContentAddition.AddSkillFamily(skillFamily); val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(AurelionNewSpecial)); val.activationStateMachineName = "Slide"; val.baseMaxStock = 1; val.baseRechargeInterval = 12f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = false; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = true; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsolr1.asolgu"); val.skillDescriptionToken = "AURELION_SPECNEW_DESCRIPTION"; val.skillName = "AURELION_SPECNEW"; val.skillNameToken = "AURELION_SPECNEW"; val.keywordTokens = new string[1] { "AURELION_SPECNEW2_DESCRIPTION_KEYWORD" }; ContentAddition.AddSkillDef(val); Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants2 = skillFamily.variants; int num = skillFamily.variants.Length - 1; val3 = new Variant { skillDef = val, unlockableDef = null }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants2[num] = val3; AurelionPassiveBehaviour.specialOverride = ScriptableObject.CreateInstance<SkillDef>(); AurelionPassiveBehaviour.specialOverride.activationState = new SerializableEntityStateType(typeof(AurelionNewSpecial)); AurelionPassiveBehaviour.specialOverride.activationStateMachineName = "Slide"; AurelionPassiveBehaviour.specialOverride.baseMaxStock = 1; AurelionPassiveBehaviour.specialOverride.baseRechargeInterval = 12f; AurelionPassiveBehaviour.specialOverride.beginSkillCooldownOnSkillEnd = true; AurelionPassiveBehaviour.specialOverride.canceledFromSprinting = false; AurelionPassiveBehaviour.specialOverride.fullRestockOnAssign = true; AurelionPassiveBehaviour.specialOverride.interruptPriority = (InterruptPriority)0; AurelionPassiveBehaviour.specialOverride.isCombatSkill = true; AurelionPassiveBehaviour.specialOverride.mustKeyPress = true; AurelionPassiveBehaviour.specialOverride.cancelSprintingOnActivation = false; AurelionPassiveBehaviour.specialOverride.rechargeStock = 1; AurelionPassiveBehaviour.specialOverride.requiredStock = 1; AurelionPassiveBehaviour.specialOverride.stockToConsume = 1; AurelionPassiveBehaviour.specialOverride.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("aurelionsolr2.asolgu"); AurelionPassiveBehaviour.specialOverride.skillDescriptionToken = "AURELION_SPECNEW2_DESCRIPTION"; AurelionPassiveBehaviour.specialOverride.skillName = "AURELION_SPECNEW2"; AurelionPassiveBehaviour.specialOverride.skillNameToken = "AURELION_SPECNEW2"; ContentAddition.AddSkillDef(AurelionPassiveBehaviour.specialOverride); } private void CreateDoppelganger() { doppelganger = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterMasters/CommandoMonsterMaster"), "AurelionMaster", true); ContentAddition.AddMaster(doppelganger); CharacterMaster component = doppelganger.GetComponent<CharacterMaster>(); component.bodyPrefab = characterPrefab; } } internal class AnimStatePause : MonoBehaviour { private Animation anim; public float time; private void Start() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected O, but got Unknown Animation component = ((Component)this).GetComponent<Animation>(); foreach (AnimationState item in component) { AnimationState val = item; time = val.length / 2f; } } private void FixedUpdate() { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)anim)) { return; } foreach (AnimationState item in anim) { AnimationState val = item; val.time = time; } } } internal class AurelionGravSphereBehaviour : MonoBehaviour { private ProjectileController projectile; private ProjectileExplosion explosion; private AurelionPassiveBehaviour collector; private RadialForce radialForce; public GameObject owner; private float stopwatch; private uint ID; private void Start() { //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) InstanceTracker.Add<AurelionGravSphereBehaviour>(this); ID = AkSoundEngine.PostEvent(SFX.Play_Aurelion_E_Loop, ((Component)this).gameObject); projectile = ((Component)this).GetComponent<ProjectileController>(); if (Object.op_Implicit((Object)(object)projectile) && Object.op_Implicit((Object)(object)projectile.owner)) { owner = projectile.owner; collector = owner.GetComponent<AurelionPassiveBehaviour>(); } radialForce = ((Component)this).GetComponent<RadialForce>(); ApplyDebuff(); explosion = ((Component)this).GetComponent<ProjectileExplosion>(); explosion.blastRadius = 10f + Mathf.Clamp((float)collector.starCount * 0.05f, 0f, float.MaxValue); radialForce.radius = explosion.blastRadius; ((Component)this).transform.localScale = Vector3.one * explosion.blastRadius; if (Object.op_Implicit((Object)(object)explosion) && NetworkServer.active) { explosion.DetonateServer(); } } private void FixedUpdate() { stopwatch += Time.fixedDeltaTime; if (!Object.op_Implicit((Object)(object)explosion) || !Object.op_Implicit((Object)(object)collector) || !Object.op_Implicit((Object)(object)radialForce)) { return; } ApplyDebuff(); if (stopwatch >= 0.25f) { stopwatch = 0f; AkSoundEngine.PostEvent(SFX.Play_Aurelion_E_Hit, ((Component)this).gameObject); if (NetworkServer.active) { explosion.DetonateServer(); } } } private void ApplyDebuff() { if (!Object.op_Implicit((Object)(object)radialForce)) { return; } List<HurtBox> list = CollectionPool<HurtBox, List<HurtBox>>.RentCollection(); radialForce.SearchForTargets(list); foreach (HurtBox item in list) { if (Object.op_Implicit((Object)(object)item.healthComponent) && Object.op_Implicit((Object)(object)item.healthComponent.body) && NetworkServer.active) { item.healthComponent.body.AddTimedBuff(Prefabs.grav, 0.3f); } } } private void OnDisable() { InstanceTracker.Remove<AurelionGravSphereBehaviour>(this); AkSoundEngine.StopPlayingID(ID); AkSoundEngine.PostEvent(SFX.Play_Aurelion_E_End, ((Component)this).gameObject); } } internal class AurelionPassiveBehaviour : NetworkBehaviour { private int passiveIndex = 0; public CharacterBody body; public Inventory inventory; public SkillLocator skillLocator; public static SkillDef specialOverride; public static float minOverrideCount = 900f; public static float minSpecialRadius = 12f; public bool skillOn = false; public bool hasStardust => passiveIndex == 1; public int starCount => Object.op_Implicit((Object)(object)inventory) ? inventory.GetItemCount(Prefabs.star) : 0; public int starBuffCount => Object.op_Implicit((Object)(object)body) ? body.GetBuffCount(Prefabs.stardust) : 0; private void Awake() { body = ((Component)this).GetComponent<CharacterBody>(); } private void Start() { //IL_009a: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)body) && Object.op_Implicit((Object)(object)body.inventory) && Object.op_Implicit((Object)(object)body.skillLocator)) { inventory = body.inventory; skillLocator = body.skillLocator; } GenericSkill skill = ((Component)this).GetComponent<GenericSkill>(); passiveIndex = Array.IndexOf(skill.skillFamily.variants, Array.Find(skill.skillFamily.variants, (Variant element) => (Object)(object)element.skillDef == (Object)(object)skill.skillDef)); } protected virtual void FixedUpdate() { //IL_003c: Unknown result type (might be due to invalid IL or missing references) if (hasStardust && Object.op_Implicit((Object)(object)body) && starBuffCount != starCount && NetworkServer.active) { body.SetBuffCount(Prefabs.stardust.buffIndex, starCount); } if ((float)starCount >= minOverrideCount && Object.op_Implicit((Object)(object)skillLocator.special) && skillLocator.special.skillNameToken == "AURELION_SPECNEW" && !skillLocator.special.HasSkillOverrideOfPriority((SkillOverridePriority)3)) { if (Util.HasEffectiveAuthority(((Component)body).gameObject)) { AkSoundEngine.PostEvent(SFX.Play_Aurelion_R_Override, ((Component)this).gameObject); } skillLocator.special.SetSkillOverride((object)this, specialOverride, (SkillOverridePriority)3); } } private void UNetVersion() { } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } internal class AurelionSecondaryBehaviour : NetworkBehaviour { private ProjectileExplosion impactExplosion; private ProjectileController controller; private ProjectileSimple simple; private ProjectileDamage damage; private Rigidbody rigidBody; public GameObject indicator; private float radius = 1f; private float speedMultiplier = 2.5f; public float starSpeedMult; public uint SoundID; private Vector3 indicatorScale; public AurelionSecondaryController secondaryController; public AurelionPassiveBehaviour behaviour; private void Start() { impactExplosion = ((Component)this).gameObject.GetComponent<ProjectileExplosion>(); controller = ((Component)this).gameObject.GetComponent<ProjectileController>(); simple = ((Component)this).gameObject.GetComponent<ProjectileSimple>(); damage = ((Component)this).gameObject.GetComponent<ProjectileDamage>(); rigidBody = ((Component)this).gameObject.GetComponent<Rigidbody>(); if (Object.op_Implicit((Object)(object)controller) && Object.op_Implicit((Object)(object)controller.ghost)) { SoundID = AkSoundEngine.PostEvent(SFX.Aurelion_qMis, ((Component)controller.ghost).gameObject); } } public void Parent() { //IL_0038: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)simple)) { simple.desiredForwardSpeed = 0f; } if (Object.op_Implicit((Object)(object)rigidBody)) { rigidBody.velocity = Vector3.zero; rigidBody.isKinematic = true; } if (Object.op_Implicit((Object)(object)controller) && Object.op_Implicit((Object)(object)controller.owner) && (Object)(object)((Component)this).gameObject.transform.parent == (Object)null) { ((Component)this).gameObject.transform.SetParent(controller.owner.transform); controller.ghost.transform.SetParent(controller.owner.transform); } } private void UpdateDamage() { } public void UpdateSpeedMult(float speed) { Parent(); starSpeedMult = speed; speedMultiplier = starSpeedMult; } public void UnParent() { if (Object.op_Implicit((Object)(object)simple) && Object.op_Implicit((Object)(object)impactExplosion) && Object.op_Implicit((Object)(object)rigidBody)) { rigidBody.isKinematic = false; ((Component)this).gameObject.transform.SetParent((Transform)null); controller.ghost.transform.SetParent((Transform)null); simple.desiredForwardSpeed = impactExplosion.blastRadius; } } private void FixedUpdate() { //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: 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_0146: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)impactExplosion)) { radius += Time.fixedDeltaTime * speedMultiplier; ProjectileExplosion obj = impactExplosion; obj.blastRadius += Time.fixedDeltaTime * speedMultiplier; } if (!Object.op_Implicit((Object)(object)controller) || !Object.op_Implicit((Object)(object)impactExplosion)) { return; } if (!Object.op_Implicit((Object)(object)indicator)) { indicator = Object.Instantiate<GameObject>(Prefabs.aurelionSecondaryProjectileIndicator, ((Component)controller.ghost).gameObject.transform); indicator.transform.localPosition = Vector3.zero; } else { indicatorScale = Vector3.one * impactExplosion.blastRadius * 2f; indicator.transform.localScale = indicatorScale; } if (!Object.op_Implicit((Object)(object)controller.owner)) { return; } if (!Object.op_Implicit((Object)(object)behaviour)) { behaviour = controller.owner.GetComponent<AurelionPassiveBehaviour>(); } if (Vector3.Distance(((Component)this).transform.position, controller.owner.transform.position) > 13f) { if (Object.op_Implicit((Object)(object)damage)) { ProjectileDamage obj2 = damage; obj2.damage *= (impactExplosion.blastRadius + Mathf.Clamp(Object.op_Implicit((Object)(object)behaviour) ? ((float)behaviour.starCount * 0.005f) : 0f, 0f, float.MaxValue)) / 10f; } AkSoundEngine.StopPlayingID(SoundID); AkSoundEngine.PostEvent(SFX.Aurelion_qPop, ((Component)this).gameObject); if (Object.op_Implicit((Object)(object)secondaryController)) { secondaryController.Detonate(); secondaryController.star = null; secondaryController.behaviour = null; } } } private void OnDisable() { } private void UNetVersion() { } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } internal class AurelionSecondaryController : NetworkBehaviour { public GameObject star; public AurelionSecondaryBehaviour behaviour; public bool utilityOn = false; private void FixedUpdate() { if (Object.op_Implicit((Object)(object)star) && (Object)(object)behaviour == (Object)null) { behaviour = star.GetComponent<AurelionSecondaryBehaviour>(); if (Object.op_Implicit((Object)(object)behaviour)) { behaviour.secondaryController = this; } } } public void Parent() { if (Object.op_Implicit((Object)(object)star) && Object.op_Implicit((Object)(object)behaviour)) { behaviour.Parent(); } } public void Unparent() { if (Object.op_Implicit((Object)(object)star) && Object.op_Implicit((Object)(object)behaviour)) { behaviour.UnParent(); } } public void UpdateSpeedMult(float speed) { if (Object.op_Implicit((Object)(object)star) && Object.op_Implicit((Object)(object)behaviour)) { behaviour.UpdateSpeedMult(speed); } } public void Detonate() { CharacterBody component = ((Component)this).GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.skillLocator) && Object.op_Implicit((Object)(object)component.skillLocator.secondary)) { component.skillLocator.secondary.UnsetSkillOverride((object)((Component)this).gameObject, AurelionSecondary.SkillDef, (SkillOverridePriority)4); } if (Object.op_Implicit((Object)(object)star)) { ProjectileExplosion component2 = star.GetComponent<ProjectileExplosion>(); ProjectileDamage component3 = star.GetComponent<ProjectileDamage>(); if (Object.op_Implicit((Object)(object)component2) && Object.op_Implicit((Object)(object)component3)) { component3.damage *= component2.blastRadius / 10f; AkSoundEngine.StopPlayingID(behaviour.SoundID); AkSoundEngine.PostEvent(SFX.Aurelion_qPop, ((Component)this).gameObject); component2.Detonate(); } } } private void UNetVersion() { } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } internal class CometEnlarge : MonoBehaviour { private ProjectileController projectile; private ProjectileDamage damage; private ProjectileImpactExplosion impact; private AurelionPassiveBehaviour collector; private GameObject owner; private void Start() { //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) damage = ((Component)this).GetComponent<ProjectileDamage>(); projectile = ((Component)this).GetComponent<ProjectileController>(); if (Object.op_Implicit((Object)(object)projectile) && Object.op_Implicit((Object)(object)projectile.owner)) { owner = projectile.owner; collector = projectile.owner.GetComponent<AurelionPassiveBehaviour>(); } impact = ((Component)this).GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)impact).blastRadius = AurelionPassiveBehaviour.minSpecialRadius + Mathf.Clamp((float)collector.starCount * 0.05f, 0f, float.MaxValue); ((Component)this).transform.localScale = Vector3.one * ((ProjectileExplosion)impact).blastRadius; } private void FixedUpdate() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (((Component)this).transform.localScale != Vector3.one * ((ProjectileExplosion)impact).blastRadius) { ((Component)this).transform.localScale = Vector3.one * ((ProjectileExplosion)impact).blastRadius; } } private void OnDisable() { //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)collector) && (float)collector.starCount >= AurelionPassiveBehaviour.minOverrideCount) { AkSoundEngine.PostEvent(SFX.Play_Aurelion_R_Emp_Hit, ((Component)this).gameObject); Object.Instantiate<GameObject>(Prefabs.shockwaveProjectile, ((Component)this).transform.position, Quaternion.identity, (Transform)null).GetComponent<CometImpact>().owner = owner; } else { AkSoundEngine.PostEvent(SFX.Play_Aurelion_R_Hit, ((Component)this).gameObject); } } } internal class CometImpact : MonoBehaviour { public GameObject owner; private CharacterBody body; private AurelionPassiveBehaviour collector; public float maxRadius; private float speed = 3f; private AnimationCurve curve = AnimationCurve.Linear(0f, 0f, 1f, 1f); private float stopwatch; private SphereSearch search = new SphereSearch(); private List<HurtBox> hitList = new List<HurtBox>(); private void Start() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)owner)) { Object.Destroy((Object)(object)((Component)this).gameObject); return; } body = owner.GetComponent<CharacterBody>(); collector = owner.GetComponent<AurelionPassiveBehaviour>(); maxRadius = 2.5f * (AurelionPassiveBehaviour.minSpecialRadius + (float)collector.starCount * 0.06f); search.origin = ((Component)this).transform.position; search.radius = AurelionPassiveBehaviour.minSpecialRadius + (float)collector.starCount * 0.05f; search.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask; if (NetworkServer.active) { Search(); } ((Component)this).transform.localScale = Vector3.one * search.radius; } private void Search() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0084: 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_009c: Expected O, but got Unknown //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Expected O, but got Unknown //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) HurtBox[] hurtBoxes = search.RefreshCandidates().FilterCandidatesByHurtBoxTeam(TeamMask.GetEnemyTeams(body.teamComponent.teamIndex)).OrderCandidatesByDistance() .FilterCandidatesByDistinctHurtBoxEntities() .GetHurtBoxes(); HurtBox[] array = hurtBoxes; foreach (HurtBox val in array) { if (!hitList.Contains(val) && Object.op_Implicit((Object)(object)val.healthComponent)) { hitList.Add(val); EffectData val2 = new EffectData { origin = ((Component)val).transform.position, scale = 1f }; EffectManager.SpawnEffect(Prefabs.shockwaveHitEffect, val2, true); DamageInfo val3 = new DamageInfo(); val3.damage = body.damage * 18f + (float)collector.starCount * 0.05f; val3.attacker = owner; val3.inflictor = owner; Vector3 val4 = ((Component)this).transform.position - ((Component)val).transform.position; val3.force = ((Vector3)(ref val4)).normalized * -1200f; val3.crit = body.RollCrit(); val3.procChainMask = default(ProcChainMask); val3.procCoefficient = 0f; val3.position = ((Component)val).transform.position; val3.damageColorIndex = (DamageColorIndex)0; val3.damageType = (DamageType)8; val.healthComponent.TakeDamage(val3); GlobalEventManager.instance.OnHitEnemy(val3, ((Component)val.healthComponent).gameObject); GlobalEventManager.instance.OnHitAll(val3, ((Component)val.healthComponent).gameObject); } } } private void FixedUpdate() { //IL_0056: 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) stopwatch += Time.fixedDeltaTime; if (search.radius < maxRadius) { SphereSearch obj = search; obj.radius += maxRadius / speed * Time.fixedDeltaTime; ((Component)this).transform.localScale = Vector3.one * search.radius; if (stopwatch >= 0.2f && NetworkServer.active) { stopwatch = 0f; Search(); } } else { Object.Destroy((Object)(object)((Component)this).gameObject); } } } internal class RadialForceFilter : MonoBehaviour { private Transform transform; private TeamFilter teamFilter; private float radius = 20f; private float damping = 0.5f; private float forceMagnitude = -30000f; private float forceCoefficientAtEdge = 0.5f; private float minMass = 100f; private float maxMass = 300f; private TetherVfxOrigin tetherVfxOrigin; private SphereSearch sphereSearch; protected void ApplyPullToHurtBox(HurtBox hurtBox) { //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)hurtBox)) { return; } HealthComponent healthComponent = hurtBox.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent) && NetworkServer.active && Object.op_Implicit((Object)(object)healthComponent.body) && Object.op_Implicit((Object)(object)healthComponent.body.rigidbody) && healthComponent.body.rigidbody.mass <= maxMass) { CharacterMotor characterMotor = healthComponent.body.characterMotor; Vector3 val = ((Component)hurtBox).transform.position - transform.position; float num = 1f - Mathf.Clamp(((Vector3)(ref val)).magnitude / radius, 0f, 1f - forceCoefficientAtEdge); val = ((!(healthComponent.body.rigidbody.mass <= minMass)) ? (((Vector3)(ref val)).normalized * forceMagnitude * (1f - num)) : (((Vector3)(ref val)).normalized * forceMagnitude * (1f - num) / 4f)); Vector3 velocity; float mass; if (Object.op_Implicit((Object)(object)characterMotor)) { velocity = characterMotor.velocity; mass = characterMotor.mass; } else { Rigidbody rigidbody = healthComponent.body.rigidbody; velocity = rigidbody.velocity; mass = rigidbody.mass; } velocity.y += Physics.gravity.y * Time.fixedDeltaTime; healthComponent.TakeDamageForce(val - velocity * (damping * mass * num), true, false); } } protected void Awake() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown transform = ((Component)this).GetComponent<Transform>(); teamFilter = ((Component)this).GetComponent<TeamFilter>(); sphereSearch = new SphereSearch(); } protected void FixedUpdate() { List<HurtBox> list = CollectionPool<HurtBox, List<HurtBox>>.RentCollection(); SearchForTargets(list); int i = 0; for (int count = list.Count; i < count; i++) { ApplyPullToHurtBox(list[i]); } if (Object.op_Implicit((Object)(object)tetherVfxOrigin)) { List<Transform> list2 = CollectionPool<Transform, List<Transform>>.RentCollection(); int j = 0; for (int count2 = list.Count; j < count2; j++) { HurtBox val = list[j]; if (!Object.op_Implicit((Object)(object)val)) { continue; } Transform item = ((Component)val).transform; HealthComponent healthComponent = val.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent)) { Transform coreTransform = healthComponent.body.coreTransform; if (Object.op_Implicit((Object)(object)coreTransform)) { item = coreTransform; } } list2.Add(item); } tetherVfxOrigin.SetTetheredTransforms(list2); CollectionPool<Transform, List<Transform>>.ReturnCollection(list2); } CollectionPool<HurtBox, List<HurtBox>>.ReturnCollection(list); } protected void SearchForTargets(List<HurtBox> dest) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0044: 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) sphereSearch.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask; sphereSearch.origin = transform.position; sphereSearch.radius = radius; sphereSearch.queryTriggerInteraction = (QueryTriggerInteraction)0; sphereSearch.RefreshCandidates(); sphereSearch.FilterCandidatesByHurtBoxTeam(TeamMask.GetEnemyTeams(teamFilter.teamIndex)); sphereSearch.OrderCandidatesByDistance(); sphereSearch.FilterCandidatesByDistinctHurtBoxEntities(); sphereSearch.GetHurtBoxes(dest); sphereSearch.ClearCandidates(); } } internal class StardustCollector : MonoBehaviour { } internal class StarsAttachment : AurelionPassiveBehaviour { public bool toggle = true; public StarsController controller; public Player player; private static int kCmdCmdToggle; private static int kRpcRpcToggle; public void OnEnable() { LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser(); NetworkUser val = ((firstLocalUser != null) ? firstLocalUser.currentNetworkUser : null); if (Object.op_Implicit((Object)(object)val) && val.inputPlayer != null) { player = val.inputPlayer; } } private void Update() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) if ((Object.op_Implicit((Object)(object)controller) && !PauseScreenController.paused && Object.op_Implicit((Object)(object)body) && Util.HasEffectiveAuthority(body.networkIdentity) && Input.GetKeyDown(Aurelion.KeyToggle.Value)) || (player != null && player.GetButtonDown(103))) { CallCmdToggle(); } UpdatePosition(); } [Command] public void CmdToggle() { CallRpcToggle(); } [ClientRpc] public void RpcToggle() { toggle = !toggle; } private void UpdatePosition() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)body) && Object.op_Implicit((Object)(object)controller)) { ((Component)controller).transform.position = body.footPosition; controller.toggle = toggle; } } protected override void FixedUpdate() { base.FixedUpdate(); if (Object.op_Implicit((Object)(object)body) && !base.hasStardust && !Object.op_Implicit((Object)(object)controller) && Object.op_Implicit((Object)(object)body) && !base.hasStardust) { controller = Object.Instantiate<GameObject>(Prefabs.aurelionStars).GetComponent<StarsController>(); controller.body = body; } UpdatePosition(); } private void UNetVersion() { } protected static void InvokeCmdCmdToggle(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkServer.active) { Debug.LogError((object)"Command CmdToggle called on client."); } else { ((StarsAttachment)(object)obj).CmdToggle(); }