Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of AurelionSol v2.0.10
Aurelion.dll
Decompiled 8 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.1", FrameworkDisplayName = "")] [assembly: AssemblyCompany("Aurelion")] [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.AssetBundle.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.*/)] [BepInPlugin("com.Dragonyck.AurelionSol", "AurelionSol", "2.0.9")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [NetworkCompatibility(/*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.*/)] 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_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)damageReport.victimBody) || !Object.op_Implicit((Object)(object)damageReport.attackerBody)) { return; } 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 (DamageTypeCombo.op_Implicit(damageReport.damageInfo.damageType & DamageTypeCombo.op_Implicit((DamageType)96)) != 0) { damageReport.damageInfo.damageType = DamageTypeCombo.op_Implicit((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: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Expected O, but got Unknown //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: 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_01b9: 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_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) 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 (DamageTypeCombo.op_Implicit(damageInfo.damageType & DamageTypeCombo.op_Implicit((DamageType)2)) != 0) { damageInfo.damageType &= DamageTypeCombo.op_Implicit((DamageType)(-3)); component2.inventory.GiveItem(Prefabs.star, 1); } else if (DamageTypeCombo.op_Implicit(damageInfo.damageType & DamageTypeCombo.op_Implicit((DamageType)262144)) != 0) { 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 = DamageTypeCombo.op_Implicit((DamageType)64), falloffModel = (FalloffModel)0, procCoefficient = 1f, radius = 10f, position = self.body.corePosition, attackerFiltering = (AttackerFiltering)2, teamIndex = component2.teamComponent.teamIndex, damageColorIndex = (DamageColorIndex)12 }.Fire(); component2.inventory.GiveItem(Prefabs.star, 1); } damageInfo.damageType = DamageTypeCombo.op_Implicit((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_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_0097: 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_00c8: 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_00de: Expected O, but got Unknown //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Expected O, but got Unknown //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_0388: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Unknown result type (might be due to invalid IL or missing references) //IL_03f5: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_045e: Unknown result type (might be due to invalid IL or missing references) //IL_0463: Unknown result type (might be due to invalid IL or missing references) //IL_047b: Unknown result type (might be due to invalid IL or missing references) //IL_0480: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_049d: Unknown result type (might be due to invalid IL or missing references) //IL_0512: Unknown result type (might be due to invalid IL or missing references) //IL_0517: Unknown result type (might be due to invalid IL or missing references) //IL_0750: Unknown result type (might be due to invalid IL or missing references) //IL_0755: Unknown result type (might be due to invalid IL or missing references) //IL_0776: Unknown result type (might be due to invalid IL or missing references) //IL_077b: Unknown result type (might be due to invalid IL or missing references) //IL_079c: Unknown result type (might be due to invalid IL or missing references) //IL_07a1: Unknown result type (might be due to invalid IL or missing references) //IL_07cc: Unknown result type (might be due to invalid IL or missing references) //IL_07d9: Unknown result type (might be due to invalid IL or missing references) //IL_07e3: Unknown result type (might be due to invalid IL or missing references) //IL_07ed: 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_082a: Unknown result type (might be due to invalid IL or missing references) //IL_084a: Unknown result type (might be due to invalid IL or missing references) //IL_0937: Unknown result type (might be due to invalid IL or missing references) //IL_093c: Unknown result type (might be due to invalid IL or missing references) //IL_0976: Unknown result type (might be due to invalid IL or missing references) //IL_097b: Unknown result type (might be due to invalid IL or missing references) //IL_09bd: Unknown result type (might be due to invalid IL or missing references) //IL_09c2: Unknown result type (might be due to invalid IL or missing references) //IL_05ae: Unknown result type (might be due to invalid IL or missing references) //IL_05c3: Unknown result type (might be due to invalid IL or missing references) //IL_0b65: Unknown result type (might be due to invalid IL or missing references) //IL_0c5d: Unknown result type (might be due to invalid IL or missing references) //IL_0c64: Expected O, but got Unknown //IL_0c84: Unknown result type (might be due to invalid IL or missing references) //IL_0c96: Unknown result type (might be due to invalid IL or missing references) //IL_0cb7: Unknown result type (might be due to invalid IL or missing references) //IL_0d19: Unknown result type (might be due to invalid IL or missing references) //IL_0d1e: Unknown result type (might be due to invalid IL or missing references) //IL_0d4c: Unknown result type (might be due to invalid IL or missing references) //IL_0d51: Unknown result type (might be due to invalid IL or missing references) //IL_0d7a: Unknown result type (might be due to invalid IL or missing references) //IL_0d7f: Unknown result type (might be due to invalid IL or missing references) //IL_0d90: Unknown result type (might be due to invalid IL or missing references) //IL_0d95: Unknown result type (might be due to invalid IL or missing references) //IL_0dbe: Unknown result type (might be due to invalid IL or missing references) //IL_0dc3: Unknown result type (might be due to invalid IL or missing references) //IL_0dd4: Unknown result type (might be due to invalid IL or missing references) //IL_0dd9: Unknown result type (might be due to invalid IL or missing references) //IL_0e02: Unknown result type (might be due to invalid IL or missing references) //IL_0e07: Unknown result type (might be due to invalid IL or missing references) //IL_0e18: Unknown result type (might be due to invalid IL or missing references) //IL_0e1d: Unknown result type (might be due to invalid IL or missing references) //IL_0e46: Unknown result type (might be due to invalid IL or missing references) //IL_0e4b: Unknown result type (might be due to invalid IL or missing references) //IL_0e5c: Unknown result type (might be due to invalid IL or missing references) //IL_0e61: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_06b5: Unknown result type (might be due to invalid IL or missing references) //IL_0660: Unknown result type (might be due to invalid IL or missing references) //IL_0665: Unknown result type (might be due to invalid IL or missing references) characterPrefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoBody.prefab").WaitForCompletion(), "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" || name.Contains("Skin06"); 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.temporaryOverlays = new List<TemporaryOverlayInstance>(); Reflection.SetFieldValue<SkinnedMeshRenderer>((object)val5, "mainSkinnedMeshRenderer", componentsInChildren[0]); ModelSkinController val7 = val.AddComponent<ModelSkinController>(); LanguageAPI.Add("AURELIONBODY_SKIN05_SKIN_NAME", "Inkshadow"); LanguageAPI.Add("AURELIONBODY_SKIN06_SKIN_NAME", "Porcelain Protector"); 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[7]; childList = (Renderer[])(object)componentsInChildren; array2[0] = Skins.CreateNewSkinDef(Utils.CreateNewSkinDefInfo(childList, val, "AURELIONBODY_DEFAULT_SKIN_NAME", "Default", array)); array2[1] = Skins.CreateNewSkinDef(val8); array2[2] = Skins.CreateNewSkinDef(val9); array2[3] = Skins.CreateNewSkinDef(val10); childList = (Renderer[])(object)componentsInChildren; array2[4] = Skins.CreateNewSkinDef(Utils.CreateNewSkinDefInfo(childList, val, "AURELIONBODY_SKIN04_SKIN_NAME", "Skin04", array)); childList = (Renderer[])(object)componentsInChildren; array2[5] = Skins.CreateNewSkinDef(Utils.CreateNewSkinDefInfo(childList, val, "AURELIONBODY_SKIN05_SKIN_NAME", "Skin05", array)); childList = (Renderer[])(object)componentsInChildren; array2[6] = Skins.CreateNewSkinDef(Utils.CreateNewSkinDefInfo(childList, val, "AURELIONBODY_SKIN06_SKIN_NAME", "Skin06", array)); val7.skins = (SkinDef[])(object)array2; HealthComponent component8 = characterPrefab.GetComponent<HealthComponent>(); component8.health = 130f; component8.shield = 0f; component8.barrier = 0f; component8.magnetiCharge = 0f; 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_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) characterDisplay = Utils.NewDisplayModel(((Component)characterPrefab.GetComponent<ModelLocator>().modelBaseTransform).gameObject, "AurelionDisplay"); characterDisplay.transform.localScale = new Vector3(0.65f, 0.65f, 0.65f); 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", "The Star Forger"); LanguageAPI.Add("AURELION_OUTRO", text2); LanguageAPI.Add("AURELION_FAIL", text3); SurvivorDef val = ScriptableObject.CreateInstance<SurvivorDef>(); val.cachedName = "AURELION_NAME"; val.unlockableDef = Achievements.aurelionUnlockDef; val.descriptionToken = "AURELION_DESCRIPTION"; val.primaryColor = characterColor; val.bodyPrefab = characterPrefab; val.displayPrefab = characterDisplay; val.outroFlavorToken = "AURELION_OUTRO"; val.desiredSortPosition = 0f; val.mainEndingEscapeFailureFlavorToken = "AURELION_FAIL"; ContentAddition.AddSurvivorDef(val); 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() { //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) doppelganger = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoMonsterMaster.prefab").WaitForCompletion(), "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) //IL_0178: 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 = DamageTypeCombo.op_Implicit((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))) { CallCmdToggl