Decompiled source of Lemurian v8.0.3
plugins/Lemurian/Lemurian.dll
Decompiled 2 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.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.Bootstrap; using BepInEx.Configuration; using EntityStates; using EntityStates.Commando; using EntityStates.Commando.CommandoWeapon; using EntityStates.Croco; using EntityStates.FalseSon; using EntityStates.GolemMonster; using EntityStates.ImpBossMonster; using EntityStates.ImpMonster; using EntityStates.LemurianBruiserMonster; using EntityStates.LemurianMonster; using EntityStates.LunarExploderMonster; using EntityStates.TitanMonster; using EntityStates.Toolbot; using EntityStates.VoidRaidCrab; using HG.BlendableTypes; using KinematicCharacterController; using On.RoR2; using R2API; using R2API.Utils; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using RoR2.ContentManagement; using RoR2.Navigation; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using ThreeEyedGames; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using Zio.FileSystems; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyCompany("Lemurian")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Lemurian")] [assembly: AssemblyTitle("Lemurian")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Lemurian; internal static class Files { public static PluginInfo PluginInfo; internal static string assemblyDir => Path.GetDirectoryName(PluginInfo.Location); internal static void Init(PluginInfo info) { PluginInfo = info; } internal static string GetPathToFile(string folderName, string fileName) { return Path.Combine(assemblyDir, folderName, fileName); } } public static class Horns { public class ApplyLemurianHorns : MonoBehaviour { private CharacterModel model; private ChildLocator childLocator; private DisplayRuleGroup Horns; public void OnEnable() { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_013f: 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_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0179: 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_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: 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_0221: Unknown result type (might be due to invalid IL or missing references) model = ((Component)this).GetComponentInChildren<CharacterModel>(); childLocator = ((Component)this).GetComponentInChildren<ChildLocator>(); if (Loader.Hornchoser.Value == Loader.HornChoser.Fire) { Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixRed); } else if (Loader.Hornchoser.Value == Loader.HornChoser.Ice) { Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixWhite); } else if (Loader.Hornchoser.Value == Loader.HornChoser.Thunder) { Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixBlue); } else if (Loader.Hornchoser.Value == Loader.HornChoser.Haunted) { Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixHaunted); } else if (Loader.Hornchoser.Value == Loader.HornChoser.Poison) { Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixPoison); } else if (Loader.Hornchoser.Value == Loader.HornChoser.Gold) { Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.EliteAurelioniteEquipment); } else if (Loader.Hornchoser.Value == Loader.HornChoser.Lunar) { Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixLunar); } else if (Loader.Hornchoser.Value == Loader.HornChoser.Void) { Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.EliteVoidEquipment); } else if (Loader.Hornchoser.Value == Loader.HornChoser.Antler) { Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC1/EliteEarth/EliteEarthEquipment.asset").WaitForCompletion()); } else if (Loader.Hornchoser.Value == Loader.HornChoser.Bead) { Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.EliteBeadEquipment); } Debug.LogError((object)"DoingAddhorns"); if (Loader.EliteHorns.Value) { AddHorns(); } } public void AddHorns() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0102: 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_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)model)) { return; } DisplayRuleGroup horns = Horns; if (horns.rules.Length > 1) { Transform val = childLocator.FindChild(horns.rules[0].childName); if (Object.op_Implicit((Object)(object)val)) { Apply(model, horns.rules[0].followerPrefab, val, horns.rules[0].localPos, Quaternion.Euler(horns.rules[0].localAngles), horns.rules[0].localScale); } if (Object.op_Implicit((Object)(object)childLocator.FindChild(horns.rules[1].childName))) { Apply(model, horns.rules[1].followerPrefab, val, horns.rules[1].localPos, Quaternion.Euler(horns.rules[1].localAngles), horns.rules[1].localScale); } } else { Transform val2 = childLocator.FindChild(horns.rules[0].childName); if (Object.op_Implicit((Object)(object)val2)) { Apply(model, horns.rules[0].followerPrefab, val2, horns.rules[0].localPos, Quaternion.Euler(horns.rules[0].localAngles), horns.rules[0].localScale); } } } public void Apply(CharacterModel characterModel, GameObject prefab, Transform parent, Vector3 localPosition, Quaternion localRotation, Vector3 localScale) { //IL_0014: 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_0030: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate<GameObject>(prefab.gameObject, parent); val.transform.localPosition = localPosition; val.transform.localRotation = localRotation; val.transform.localScale = localScale; LimbMatcher component = val.GetComponent<LimbMatcher>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)childLocator)) { component.SetChildLocator(childLocator); } } } public class ApplyElderHorns : MonoBehaviour { private CharacterModel model2; private ChildLocator childLocator2; public void Start() { model2 = ((Component)this).GetComponentInChildren<CharacterModel>(); childLocator2 = ((Component)this).GetComponentInChildren<ChildLocator>(); AddHorns2(); } public void AddHorns2() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002a: 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_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)model2)) { return; } DisplayRuleGroup val = model2.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixRed); if (val.rules.Length > 1) { Transform val2 = childLocator2.FindChild(val.rules[0].childName); if (Object.op_Implicit((Object)(object)val2)) { Apply2(model2, val.rules[0].followerPrefab, val2, val.rules[0].localPos, Quaternion.Euler(val.rules[0].localAngles), val.rules[0].localScale); } if (Object.op_Implicit((Object)(object)childLocator2.FindChild(val.rules[1].childName))) { Apply2(model2, val.rules[1].followerPrefab, val2, val.rules[1].localPos, Quaternion.Euler(val.rules[1].localAngles), val.rules[1].localScale); } } } public void Apply2(CharacterModel characterModel, GameObject prefab, Transform parent, Vector3 localPosition, Quaternion localRotation, Vector3 localScale) { //IL_0014: 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_0030: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate<GameObject>(prefab.gameObject, parent); val.transform.localPosition = localPosition; val.transform.localRotation = localRotation; val.transform.localScale = localScale; LimbMatcher component = val.GetComponent<LimbMatcher>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)childLocator2)) { component.SetChildLocator(childLocator2); } } } } public static class LemPrefabs { public static GameObject LemChprefab; public static GameObject LemLaserPrimCh; public static GameObject LemSpecialCh; public static GameObject LemPodprefab; public static GameObject ImpChPrefab; public static GameObject LunarChPrefab; public static GameObject LemFireCharge; public static GameObject LemPrim2Explo; public static GameObject LemJumpUtil2; public static GameObject LemExploUtil1; public static GameObject LemJumpUtil1; public static GameObject FlameEffect; public static GameObject LemExploCharge; public static GameObject LemExploSpecial2Charge; public static GameObject LemExploSpecial2Magma; public static GameObject chargeFireBall; public static GameObject ImpSecLaser; public static GameObject ImpSpecialBlink; public static GameObject ImpSpecialSlam; public static GameObject NullifierExlpo; public static GameObject LunGolDeath; public static GameObject LunGolShieldCharge; public static Material FireBuffMat; public static Material LunarSphereMat; public static GameObject SwitchEffect; public static GameObject LemDicator; public static GameObject LunDicator; internal static void PrefabSetup() { //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_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: 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_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0196: 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_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02f2: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_033b: Unknown result type (might be due to invalid IL or missing references) //IL_0358: Unknown result type (might be due to invalid IL or missing references) //IL_035d: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_03be: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_03e0: Unknown result type (might be due to invalid IL or missing references) //IL_03e5: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_040e: Unknown result type (might be due to invalid IL or missing references) //IL_0413: Unknown result type (might be due to invalid IL or missing references) //IL_0430: Unknown result type (might be due to invalid IL or missing references) //IL_0435: Unknown result type (might be due to invalid IL or missing references) //IL_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_04b9: Unknown result type (might be due to invalid IL or missing references) //IL_04c3: Expected O, but got Unknown //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Expected O, but got Unknown //IL_04e3: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: Expected O, but got Unknown //IL_04f8: Unknown result type (might be due to invalid IL or missing references) //IL_0502: Expected O, but got Unknown //IL_050d: Unknown result type (might be due to invalid IL or missing references) //IL_0517: Expected O, but got Unknown //IL_0522: Unknown result type (might be due to invalid IL or missing references) //IL_052c: Expected O, but got Unknown //IL_0537: Unknown result type (might be due to invalid IL or missing references) //IL_0541: Expected O, but got Unknown //IL_054c: Unknown result type (might be due to invalid IL or missing references) //IL_0556: Expected O, but got Unknown //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056b: Expected O, but got Unknown //IL_0576: Unknown result type (might be due to invalid IL or missing references) //IL_0580: Expected O, but got Unknown //IL_058b: Unknown result type (might be due to invalid IL or missing references) //IL_0595: Expected O, but got Unknown //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_05aa: Expected O, but got Unknown //IL_05b5: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Expected O, but got Unknown //IL_05ca: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Expected O, but got Unknown //IL_05df: Unknown result type (might be due to invalid IL or missing references) //IL_05e9: Expected O, but got Unknown //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_05fe: Expected O, but got Unknown //IL_0609: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Expected O, but got Unknown //IL_061e: Unknown result type (might be due to invalid IL or missing references) //IL_0628: Expected O, but got Unknown LemChprefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Croco/CrocoCrosshair.prefab").WaitForCompletion(); LemLaserPrimCh = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Seeker/SeekerCrosshair.prefab").WaitForCompletion(); LemSpecialCh = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Junk/Bandit/BanditCrosshair.prefab").WaitForCompletion(); ImpChPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/UI/SimpleDotCrosshair.prefab").WaitForCompletion(); LunarChPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/UI/SimpleDotCrosshair.prefab").WaitForCompletion(); LemFireCharge = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Lemurian/LemurianChargeFire.prefab").WaitForCompletion(); CreateEffect(LemFireCharge); LemExploCharge = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Child/ChargeChildTrackingSparkBall.prefab").WaitForCompletion(); CreateEffect(LemExploCharge); LemPodprefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorBody.prefab").WaitForCompletion().GetComponent<CharacterBody>() .preferredPodPrefab, "LemPodPrefab", true); ((Renderer)((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod/mdlVoidSurvivorPod")).GetComponentInChildren<SkinnedMeshRenderer>()).sharedMaterial = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/FireballsOnHit/matFireballsOnHit.mat").WaitForCompletion(); ((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod")).transform.localScale = new Vector3(2f, 2f, 2f); ((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod/VoidSurvivorPodArmature/ROOT/Body/Decal (1)")).GetComponentInChildren<Decal>().Material = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/Molotov/matMolotovDecal.mat").WaitForCompletion(); ((Renderer)((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod/VoidSurvivorPodArmature/ROOT/Body/Flames (1)")).GetComponentInChildren<ParticleSystemRenderer>()).sharedMaterial = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/VFX/mageMageFireStarburst.mat").WaitForCompletion(); ((Renderer)((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod/VoidSurvivorPodArmature/ROOT/Body/FallingFX")).GetComponentInChildren<ParticleSystemRenderer>()).sharedMaterial = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/VFX/mageMageFireStarburst.mat").WaitForCompletion(); ((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod/VoidSurvivorPodArmature/ROOT/Body/FallingFX")).GetComponentInChildren<ParticleSystemRenderer>().trailMaterial = Addressables.LoadAssetAsync<Material>((object)"RoR2/Junk/Bandit/matThermiteFlame.mat").WaitForCompletion(); CreateEffect(LemPodprefab); LemPrim2Explo = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LemurianBruiser/OmniExplosionVFXLemurianBruiserFireballImpact.prefab").WaitForCompletion(); CreateEffect(LemPrim2Explo); LemJumpUtil1 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Junk/ArchWisp/OmniExplosionVFXArchWispCannonImpact.prefab").WaitForCompletion(); CreateEffect(LemJumpUtil1); LemJumpUtil2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LemurianBruiser/OmniExplosionVFXLemurianBruiserFireballImpact.prefab").WaitForCompletion(); CreateEffect(LemJumpUtil2); LemExploUtil1 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/FusionCellDestructible/FusionCellExplosion.prefab").WaitForCompletion(); CreateEffect(LemExploUtil1); FlameEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Drones/DroneFlamethrowerEffect.prefab").WaitForCompletion(), "Prefabs/SpecialFlame", true); CreateEffect(FlameEffect); LemExploSpecial2Charge = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/skymeadow/ArtifactworldPortalPrespawnEffect.prefab").WaitForCompletion(); CreateEffect(LemExploSpecial2Charge); LemExploSpecial2Magma = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/MagmaWorm/MagmaOrbExplosion.prefab").WaitForCompletion(); CreateEffect(LemExploSpecial2Magma); ImpSecLaser = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Golem/TracerGolem.prefab").WaitForCompletion(); CreateEffect(ImpSecLaser); ImpSpecialBlink = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ImpBoss/ImpBossBlink.prefab").WaitForCompletion(); CreateEffect(ImpSpecialBlink); ImpSpecialSlam = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ImpBoss/ImpBossGroundSlam.prefab").WaitForCompletion(); CreateEffect(ImpSpecialSlam); LunGolShieldCharge = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarGolem/LunarGolemShieldCharge.prefab").WaitForCompletion(); CreateEffect(LunGolShieldCharge); NullifierExlpo = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Nullifier/NullifierExplosion.prefab").WaitForCompletion(); CreateEffect(NullifierExlpo); LunGolDeath = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarGolem/LunarGolemDeath.prefab").WaitForCompletion(); CreateEffect(LunGolDeath); FireBuffMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/matOnFire.mat").WaitForCompletion(); LunarSphereMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/BurnNearby/matOnHelfire.mat").WaitForCompletion(); SwitchEffect = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Items/MeteorAttackOnHighDamage/RunicMeteorStrikeImpact.prefab").WaitForCompletion(); CreateEffect(SwitchEffect); LemDicator = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Huntress/HuntressArrowRainIndicator.prefab").WaitForCompletion(), "Prefabs/LemDicator", true); ((Renderer)LemDicator.GetComponentInChildren<MeshRenderer>()).sharedMaterial = FireBuffMat; CreateEffect(LemDicator); LunDicator = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Huntress/HuntressArrowRainIndicator.prefab").WaitForCompletion(), "Prefabs/LunDicator", true); ((Renderer)LunDicator.GetComponentInChildren<MeshRenderer>()).sharedMaterial = LunarSphereMat; CreateEffect(LunDicator); Loader.effectPrefabs.Add(new EffectDef(LemFireCharge)); Loader.effectPrefabs.Add(new EffectDef(LemExploCharge)); Loader.effectPrefabs.Add(new EffectDef(LemPodprefab)); Loader.effectPrefabs.Add(new EffectDef(LemPrim2Explo)); Loader.effectPrefabs.Add(new EffectDef(LemJumpUtil1)); Loader.effectPrefabs.Add(new EffectDef(LemJumpUtil2)); Loader.effectPrefabs.Add(new EffectDef(LemExploUtil1)); Loader.effectPrefabs.Add(new EffectDef(FlameEffect)); Loader.effectPrefabs.Add(new EffectDef(LemExploSpecial2Charge)); Loader.effectPrefabs.Add(new EffectDef(ImpSecLaser)); Loader.effectPrefabs.Add(new EffectDef(ImpSpecialBlink)); Loader.effectPrefabs.Add(new EffectDef(ImpSpecialSlam)); Loader.effectPrefabs.Add(new EffectDef(LunGolShieldCharge)); Loader.effectPrefabs.Add(new EffectDef(NullifierExlpo)); Loader.effectPrefabs.Add(new EffectDef(LunGolDeath)); Loader.effectPrefabs.Add(new EffectDef(LemDicator)); Loader.effectPrefabs.Add(new EffectDef(SwitchEffect)); Loader.effectPrefabs.Add(new EffectDef(LunDicator)); } public static void CreateEffect(GameObject effectPrfab) { if (!Object.op_Implicit((Object)(object)effectPrfab.GetComponent<EffectComponent>())) { effectPrfab.AddComponent<EffectComponent>(); } if (!Object.op_Implicit((Object)(object)effectPrfab.GetComponent<VFXAttributes>())) { effectPrfab.AddComponent<VFXAttributes>(); } if (!Object.op_Implicit((Object)(object)effectPrfab.GetComponent<NetworkIdentity>())) { effectPrfab.AddComponent<NetworkIdentity>(); } } } public static class Tokens { public static SubFileSystem fileSystem; internal static string languageRoot => Path.Combine(assemblyDir, "language"); internal static string assemblyDir => Path.GetDirectoryName(Files.PluginInfo.Location); public static void RegisterLanguageTokens() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown Language.SetFolders += new hook_SetFolders(fixme); } private static void fixme(orig_SetFolders orig, Language self, IEnumerable<string> newFolders) { if (Directory.Exists(languageRoot)) { IEnumerable<string> second = Directory.EnumerateDirectories(Path.Combine(languageRoot), self.name); orig.Invoke(self, newFolders.Union(second)); } else { orig.Invoke(self, newFolders); } } } public class LunarExploderMain : GenericCharacterMain { private float stopWatch; private GameObject deathPreExplosionInstance; private Transform muzzleTransform; private Animator animator; public GameObject projectilePrefab; public static GameObject exploprefab; private GameObject aimSphere; public override void OnEnter() { //IL_0050: Unknown result type (might be due to invalid IL or missing references) ((GenericCharacterMain)this).OnEnter(); CrosshairUtils.RequestOverrideForBody(((EntityState)this).characterBody, LemPrefabs.LunarChPrefab, (OverridePriority)0); animator = ((EntityState)this).GetModelAnimator(); aimSphere = Object.Instantiate<GameObject>(LemPrefabs.LemDicator); aimSphere.transform.localScale = new Vector3(2.5f, 2.5f, 2.5f); } public override void Update() { ((GenericCharacterMain)this).Update(); if (!LunarExploder.sprintingenabled.Value & ((EntityState)this).characterBody.isSprinting) { animator.SetBool("isSprinting", false); } } public override void FixedUpdate() { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_009e: 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_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Expected O, but got Unknown //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Expected O, but got Unknown //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Expected O, but got Unknown //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Invalid comparison between Unknown and I4 //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: 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_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Expected O, but got Unknown ((GenericCharacterMain)this).FixedUpdate(); if (((EntityState)this).characterBody.healthComponent.isHealthLow && !Object.op_Implicit((Object)(object)deathPreExplosionInstance) && !((EntityState)this).characterBody.HasBuff(Buffs.ExplodeBuff)) { muzzleTransform = ((BaseState)this).FindModelChild(DeathState.muzzleName); deathPreExplosionInstance = Object.Instantiate<GameObject>(DeathState.deathPreExplosionVFX, muzzleTransform.position, muzzleTransform.rotation); deathPreExplosionInstance.transform.parent = muzzleTransform; deathPreExplosionInstance.transform.localScale = Vector3.one * DeathState.deathExplosionRadius; ScaleParticleSystemDuration component = deathPreExplosionInstance.GetComponent<ScaleParticleSystemDuration>(); if (Object.op_Implicit((Object)(object)component)) { component.newDuration = 2f; } } if (!Object.op_Implicit((Object)(object)deathPreExplosionInstance)) { return; } stopWatch += Time.fixedDeltaTime; if (!(stopWatch >= 2f)) { return; } DeathState val = new DeathState(); exploprefab = Object.Instantiate<GameObject>(val.explosionEffectPrefab); EffectManager.SpawnEffect(exploprefab, new EffectData { origin = ((EntityState)this).transform.position, scale = 100f }, true); EffectManager.SpawnEffect(LemPrefabs.LunGolShieldCharge, new EffectData { origin = ((EntityState)this).transform.position, scale = 100f }, false); if (NetworkServer.active) { Vector3 corePosition = ((EntityState)this).characterBody.corePosition; LayerIndex defaultLayer = LayerIndex.defaultLayer; Collider[] array = Physics.OverlapSphere(corePosition, 100f, LayerMask.op_Implicit(((LayerIndex)(ref defaultLayer)).mask)); for (int i = 0; i < array.Length; i++) { HealthComponent component2 = ((Component)array[i]).GetComponent<HealthComponent>(); if (!Object.op_Implicit((Object)(object)component2)) { continue; } TeamComponent component3 = ((Component)component2).GetComponent<TeamComponent>(); if ((int)component3.teamIndex != 1) { CharacterBody body = component2.body; if (Object.op_Implicit((Object)(object)body)) { projectilePrefab = LunarExploder.LunarDot; ((Component)projectilePrefab.GetComponent<ProjectileDotZone>()).transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); ProjectileManager.instance.FireProjectile(LunarExploder.LunarDot, ((Component)body).transform.position, ((Component)body).transform.rotation, ((EntityState)this).gameObject, ((BaseState)this).damageStat, 0f, false, (DamageColorIndex)0, (GameObject)null, -1f); EffectManager.SpawnEffect(exploprefab, new EffectData { origin = ((Component)body).transform.position, scale = 2.5f }, true); body.AddTimedBuff(Buffs.Cripple, 10f); } } } } ((EntityState)this).characterBody.AddTimedBuff(Buffs.ExplodeBuff, 60f); EntityState.Destroy((Object)(object)deathPreExplosionInstance); stopWatch = 0f; } public override void OnExit() { ((GenericCharacterMain)this).OnExit(); } } public static class LunarExploderItemDisplays { internal static ItemDisplayRuleSet itemDisplayRuleSet; internal static List<KeyAssetRuleGroup> itemDisplayRules; private static Dictionary<string, GameObject> itemDisplayPrefabs = new Dictionary<string, GameObject>(); internal static void InitializeItemDisplays() { PopulateDisplays(); CharacterModel componentInChildren = LunarExploder.myCharacter.GetComponentInChildren<CharacterModel>(); itemDisplayRuleSet = ScriptableObject.CreateInstance<ItemDisplayRuleSet>(); ((Object)itemDisplayRuleSet).name = "idrsLunarExploder"; componentInChildren.itemDisplayRuleSet = itemDisplayRuleSet; } internal static void SetItemDisplays() { //IL_0012: 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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0138: 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_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: 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) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ed: Unknown result type (might be due to invalid IL or missing references) //IL_02f2: Unknown result type (might be due to invalid IL or missing references) //IL_0309: 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_0316: 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_0320: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_0360: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_0398: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Unknown result type (might be due to invalid IL or missing references) //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03db: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Unknown result type (might be due to invalid IL or missing references) //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0423: Unknown result type (might be due to invalid IL or missing references) //IL_042c: Unknown result type (might be due to invalid IL or missing references) //IL_045f: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_0495: Unknown result type (might be due to invalid IL or missing references) //IL_049a: Unknown result type (might be due to invalid IL or missing references) //IL_04a2: Unknown result type (might be due to invalid IL or missing references) //IL_04a7: Unknown result type (might be due to invalid IL or missing references) //IL_04a9: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04b4: Unknown result type (might be due to invalid IL or missing references) //IL_04b9: Unknown result type (might be due to invalid IL or missing references) itemDisplayRules = new List<KeyAssetRuleGroup>(); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixRed, displayRuleGroup = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixRed) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixBlue, displayRuleGroup = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixBlue) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixWhite, displayRuleGroup = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixWhite) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixPoison, displayRuleGroup = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixPoison) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixHaunted, displayRuleGroup = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixHaunted) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixLunar, displayRuleGroup = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixLunar) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.EliteVoidEquipment, displayRuleGroup = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.EliteVoidEquipment) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.EliteAurelioniteEquipment, displayRuleGroup = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.EliteAurelioniteEquipment) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.EliteBeadEquipment, displayRuleGroup = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.EliteBeadEquipment) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC1/EliteEarth/EliteEarthEquipment.asset").WaitForCompletion(), displayRuleGroup = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC1/EliteEarth/EliteEarthEquipment.asset").WaitForCompletion()) }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Jetpack, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayBugWings"), childName = "MuzzleCore", localPos = new Vector3(0f, -1f, -0.5f), localAngles = new Vector3(205f, 0f, 0f), localScale = new Vector3(0f, 0f, 0f), limbMask = (LimbFlags)0 } } } }); itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.GoldGat, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = LoadDisplay("DisplayGoldGat"), childName = "MuzzleCore", localPos = new Vector3(0f, 0f, 0f), localAngles = new Vector3(0f, -90f, 0f), localScale = new Vector3(0f, 0f, 0f), limbMask = (LimbFlags)0 } } } }); itemDisplayRuleSet.keyAssetRuleGroups = itemDisplayRules.ToArray(); itemDisplayRuleSet.GenerateRuntimeValues(); } internal static void PopulateDisplays() { //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) ItemDisplayRuleSet val = ((Component)Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoBody.prefab").WaitForCompletion().GetComponent<ModelLocator>() .modelTransform).GetComponent<CharacterModel>().itemDisplayRuleSet; KeyAssetRuleGroup[] keyAssetRuleGroups = val.keyAssetRuleGroups; for (int i = 0; i < keyAssetRuleGroups.Length; i++) { ItemDisplayRule[] rules = keyAssetRuleGroups[i].displayRuleGroup.rules; for (int j = 0; j < rules.Length; j++) { GameObject followerPrefab = rules[j].followerPrefab; if (Object.op_Implicit((Object)(object)followerPrefab)) { string key = ((Object)followerPrefab).name?.ToLower(); if (!itemDisplayPrefabs.ContainsKey(key)) { itemDisplayPrefabs[key] = followerPrefab; } } } } } internal static GameObject LoadDisplay(string name) { if (itemDisplayPrefabs.ContainsKey(name.ToLower()) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[name.ToLower()])) { return itemDisplayPrefabs[name.ToLower()]; } return null; } } public static class LunarExploderSkins { private static GameObjectActivation[] getActivations(GameObject[] allObjects, params GameObject[] activatedObjects) { //IL_0019: 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) List<GameObjectActivation> list = new List<GameObjectActivation>(); for (int i = 0; i < allObjects.Length; i++) { bool shouldActivate = activatedObjects.Contains(allObjects[i]); list.Add(new GameObjectActivation { gameObject = allObjects[i], shouldActivate = shouldActivate }); } return list.ToArray(); } public static void RegisterSkins() { //IL_004d: 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_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0193: 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_01eb: 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_0213: 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_0270: 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_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_0360: Unknown result type (might be due to invalid IL or missing references) //IL_0374: 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_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_045b: 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_04ac: Unknown result type (might be due to invalid IL or missing references) //IL_04c0: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_051d: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_058c: Unknown result type (might be due to invalid IL or missing references) //IL_05a7: Unknown result type (might be due to invalid IL or missing references) //IL_05e4: Unknown result type (might be due to invalid IL or missing references) //IL_05f8: Unknown result type (might be due to invalid IL or missing references) //IL_060c: Unknown result type (might be due to invalid IL or missing references) //IL_0620: Unknown result type (might be due to invalid IL or missing references) //IL_0669: Unknown result type (might be due to invalid IL or missing references) //IL_055e: Unknown result type (might be due to invalid IL or missing references) //IL_0563: Unknown result type (might be due to invalid IL or missing references) //IL_06d8: Unknown result type (might be due to invalid IL or missing references) //IL_06f3: Unknown result type (might be due to invalid IL or missing references) //IL_0730: Unknown result type (might be due to invalid IL or missing references) //IL_0744: Unknown result type (might be due to invalid IL or missing references) //IL_0758: Unknown result type (might be due to invalid IL or missing references) //IL_076c: Unknown result type (might be due to invalid IL or missing references) //IL_07b5: Unknown result type (might be due to invalid IL or missing references) //IL_06aa: Unknown result type (might be due to invalid IL or missing references) //IL_06af: Unknown result type (might be due to invalid IL or missing references) //IL_0824: Unknown result type (might be due to invalid IL or missing references) //IL_07f6: Unknown result type (might be due to invalid IL or missing references) //IL_07fb: Unknown result type (might be due to invalid IL or missing references) GameObject myCharacter = LunarExploder.myCharacter; GameObject gameObject = ((Component)myCharacter.GetComponentInChildren<ModelLocator>().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent<CharacterModel>(); ModelSkinController val = gameObject.AddComponent<ModelSkinController>(); ChildLocator component2 = gameObject.GetComponent<ChildLocator>(); SkinnedMeshRenderer fieldValue = Reflection.GetFieldValue<SkinnedMeshRenderer>((object)component, "mainSkinnedMeshRenderer"); LanguageAPI.Add("LunarExploder_DEFAULT_SKIN", "Default Exploder"); SkinDefInfo val2 = default(SkinDefInfo); val2.BaseSkins = Array.Empty<SkinDef>(); val2.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val2.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val2.Icon = Skins.CreateSkinIcon(new Color(0.6f, 0.4f, 1f), new Color(0.5019608f, 0f, 0f), new Color(0.6f, 0.4f, 1f), new Color(0.5019608f, 0f, 0f)); val2.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val2.Name = "LunarExploder_DEFAULT_SKIN"; val2.NameToken = "LunarExploder_DEFAULT_SKIN"; val2.RendererInfos = component.baseRendererInfos; val2.RootObject = gameObject; RendererInfo[] rendererInfos = val2.RendererInfos; RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[rendererInfos.Length]; rendererInfos.CopyTo(array, 0); Material defaultMaterial = array[0].defaultMaterial; if (Object.op_Implicit((Object)(object)defaultMaterial)) { defaultMaterial = Object.Instantiate<Material>(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .baseRendererInfos[0].defaultMaterial); array[0].defaultMaterial = defaultMaterial; } val2.RendererInfos = array; SkinDef item = Skins.CreateNewSkinDef(val2); LanguageAPI.Add("LunarExploder_Lunar_SKIN", "Lunar"); SkinDefInfo val3 = default(SkinDefInfo); val3.BaseSkins = Array.Empty<SkinDef>(); val3.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val3.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val3.Icon = Skins.CreateSkinIcon(new Color(0.6f, 0.4f, 1f), new Color(0.8f, 0.7019608f, 1f), new Color(0.6f, 0.4f, 1f), new Color(0.8f, 0.7019608f, 1f)); val3.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val3.Name = "LunarExploder_Lunar_SKIN"; val3.NameToken = "LunarExploder_Lunar_SKIN"; val3.RendererInfos = component.baseRendererInfos; val3.RootObject = gameObject; rendererInfos = val2.RendererInfos; array = (RendererInfo[])(object)new RendererInfo[rendererInfos.Length]; rendererInfos.CopyTo(array, 0); defaultMaterial = array[0].defaultMaterial; if (Object.op_Implicit((Object)(object)defaultMaterial)) { defaultMaterial = Object.Instantiate<Material>(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarGolem/LunarGolemBody.prefab").WaitForCompletion().GetComponentInChildren<CharacterModel>() .baseRendererInfos[0].defaultMaterial); array[0].defaultMaterial = defaultMaterial; } val3.RendererInfos = array; SkinDef item2 = Skins.CreateNewSkinDef(val3); LanguageAPI.Add("LunarExploder_Aurelionite_SKIN", "Aurelionite"); SkinDefInfo val4 = default(SkinDefInfo); val4.BaseSkins = Array.Empty<SkinDef>(); val4.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val4.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val4.Icon = Skins.CreateSkinIcon(new Color(1f, 67f / 85f, 0.1254902f), new Color(74f / 85f, 39f / 85f, 0f), new Color(0.14509805f, 4f / 85f, 0f), new Color(0.9843137f, 82f / 85f, 79f / 85f)); val4.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val4.Name = "LunarExploder_Aurelionite_SKIN"; val4.NameToken = "LunarExploder_Aurelionite_SKIN"; val4.RendererInfos = component.baseRendererInfos; val4.RootObject = gameObject; rendererInfos = val2.RendererInfos; array = (RendererInfo[])(object)new RendererInfo[rendererInfos.Length]; rendererInfos.CopyTo(array, 0); defaultMaterial = array[0].defaultMaterial; if (Object.op_Implicit((Object)(object)defaultMaterial)) { defaultMaterial = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/matAurelioniteGeode.mat").WaitForCompletion()); array[0].defaultMaterial = defaultMaterial; } val4.RendererInfos = array; SkinDef item3 = Skins.CreateNewSkinDef(val4); LanguageAPI.Add("LunarExploder_Engine_SKIN", "Engine"); SkinDefInfo val5 = default(SkinDefInfo); val5.BaseSkins = Array.Empty<SkinDef>(); val5.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val5.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val5.Icon = Skins.CreateSkinIcon(new Color(0.83137256f, 56f / 85f, 20f / 51f), new Color(4f / 15f, 46f / 85f, 0.6431373f), new Color(0.4f, 33f / 85f, 8f / 15f), new Color(13f / 85f, 0.1764706f, 0.32156864f)); val5.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val5.Name = "LunarExploder_Engine_SKIN"; val5.NameToken = "LunarExploder_Engine_SKIN"; val5.RendererInfos = component.baseRendererInfos; val5.RootObject = gameObject; rendererInfos = val2.RendererInfos; array = (RendererInfo[])(object)new RendererInfo[rendererInfos.Length]; rendererInfos.CopyTo(array, 0); defaultMaterial = array[0].defaultMaterial; if (Object.op_Implicit((Object)(object)defaultMaterial)) { defaultMaterial = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/Seeker/matSeeker.mat").WaitForCompletion()); array[0].defaultMaterial = defaultMaterial; } val5.RendererInfos = array; SkinDef item4 = Skins.CreateNewSkinDef(val5); LanguageAPI.Add("LunarExploder_False_SKIN", "Mysterious"); SkinDefInfo val6 = default(SkinDefInfo); val6.BaseSkins = Array.Empty<SkinDef>(); val6.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val6.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val6.Icon = Skins.CreateSkinIcon(new Color(0.56078434f, 0.20784314f, 19f / 85f), new Color(43f / 51f, 0.8901961f, 0.9411765f), new Color(1f / 3f, 24f / 85f, 29f / 85f), new Color(26f / 51f, 0.64705884f, 53f / 85f)); val6.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val6.Name = "LunarExploder_False_SKIN"; val6.NameToken = "LunarExploder_False_SKIN"; val6.RendererInfos = component.baseRendererInfos; val6.RootObject = gameObject; rendererInfos = val2.RendererInfos; array = (RendererInfo[])(object)new RendererInfo[rendererInfos.Length]; rendererInfos.CopyTo(array, 0); defaultMaterial = array[0].defaultMaterial; if (Object.op_Implicit((Object)(object)defaultMaterial)) { defaultMaterial = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/FalseSon/matFalseSon.mat").WaitForCompletion()); array[0].defaultMaterial = defaultMaterial; } val6.RendererInfos = array; SkinDef item5 = Skins.CreateNewSkinDef(val6); LanguageAPI.Add("LunarExploder_Scorch_SKIN", "Scorching"); SkinDefInfo val7 = default(SkinDefInfo); val7.BaseSkins = Array.Empty<SkinDef>(); val7.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val7.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val7.Icon = Skins.CreateSkinIcon(new Color(0.99607843f, 0.827451f, 0.41960785f), new Color(1f, 0.4f, 0.003921569f), new Color(41f / 51f, 0f, 3f / 85f), new Color(0.6313726f, 0.19215687f, 0f)); val7.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val7.Name = "LunarExploder_Scorch_SKIN"; val7.NameToken = "LunarExploder_Scorch_SKIN"; val7.RendererInfos = component.baseRendererInfos; val7.RootObject = gameObject; rendererInfos = val2.RendererInfos; array = (RendererInfo[])(object)new RendererInfo[rendererInfos.Length]; rendererInfos.CopyTo(array, 0); defaultMaterial = array[0].defaultMaterial; if (Object.op_Implicit((Object)(object)defaultMaterial)) { defaultMaterial = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/Scorchling/matScorchling.mat").WaitForCompletion()); array[0].defaultMaterial = defaultMaterial; } val7.RendererInfos = array; SkinDef item6 = Skins.CreateNewSkinDef(val7); List<SkinDef> list = new List<SkinDef> { item, item2, item3, item4, item5, item6 }; val.skins = list.ToArray(); } } public class ElderLemurianUtility : BaseState { public float stopWatch; public override void OnEnter() { //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); ((EntityState)this).characterBody.SetAimTimer(0.2f); ((EntityState)this).PlayAnimation("Gesture, Override", "Flamebreath", "Flamebreath.playbackRate", 0.5f, 0f); Util.PlayAttackSpeedSound(ChargeMegaFireball.attackString, ((EntityState)this).gameObject, base.attackSpeedStat); if (((EntityState)this).isAuthority) { ProjectileManager.instance.FireProjectile(ElderLemurian.ElderUtilProjectile, ((Component)((Component)((EntityState)this).GetModelTransform()).GetComponent<ChildLocator>().FindChild("MuzzleMouth")).transform.position, ((Component)((EntityState)this).characterMotor.characterDirection).transform.rotation, ((EntityState)this).gameObject, base.damageStat * Primary1.damageCoefficient, Primary1.force, Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, 0f); } } public override void OnExit() { ((EntityState)this).PlayCrossfade("Gesture, Override", "BufferEmpty", 0.1f); ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); stopWatch += Time.fixedDeltaTime; if (stopWatch >= 0.5f) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class LemurianMain : GenericCharacterMain { public override void OnEnter() { ((GenericCharacterMain)this).OnEnter(); if (Lemurian.transformer < (float)Run.instance.loopClearCount) { ((EntityState)this).characterBody.AddBuff(Buffs.TransformBuff); } SkillDef skillDef = ((EntityState)this).characterBody.skillLocator.primary.skillDef; bool flag = skillDef.skillNameToken == "Primary3_NAME"; if (flag) { CrosshairUtils.RequestOverrideForBody(((EntityState)this).characterBody, LemPrefabs.LemLaserPrimCh, (OverridePriority)0); } if (!flag) { CrosshairUtils.RequestOverrideForBody(((EntityState)this).characterBody, LemPrefabs.LemChprefab, (OverridePriority)0); } } public override void Update() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) ((GenericCharacterMain)this).Update(); KeyboardShortcut value = Lemurian.switchKey.Value; if (Input.GetKeyDown(((KeyboardShortcut)(ref value)).MainKey) && ((EntityState)this).characterBody.HasBuff(Buffs.TransformBuff) && ((EntityState)this).isAuthority) { Lemurian.transformer = Run.instance.loopClearCount; Switch nextState = new Switch(); ((EntityState)this).outer.SetNextState((EntityState)(object)nextState); } } public override void FixedUpdate() { ((GenericCharacterMain)this).FixedUpdate(); } public override void OnExit() { ((GenericCharacterMain)this).OnExit(); } } public class BleedDistance : BaseState { public static float baseDuration = 0.8f; public static float damageCoefficient = 0.75f; public static float procCoefficient; public static float selfForce = 2f; public static float forceMagnitude = 16f; public static GameObject hitEffectPrefab; public static GameObject swipeEffectPrefab; public static string enterSoundString; public static string slashSoundString; private OverlapAttack attack; private Animator modelAnimator; private float duration; private int spikesfired; private Transform modelTransform; public float stopWatch; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / base.attackSpeedStat; modelAnimator = ((EntityState)this).GetModelAnimator(); modelTransform = ((EntityState)this).GetModelTransform(); ((EntityState)this).characterBody.SetAimTimer(duration); Util.PlayAttackSpeedSound(DoubleSlash.enterSoundString, ((EntityState)this).gameObject, base.attackSpeedStat); if (Object.op_Implicit((Object)(object)modelAnimator)) { ((EntityState)this).PlayAnimation("Gesture, Additive", "DoubleSlash", "DoubleSlash.playbackRate", duration * 0.9f, 0f); ((EntityState)this).PlayAnimation("Gesture, Override", "DoubleSlash", "DoubleSlash.playbackRate", duration * 0.9f, 0f); } spikesfired = 0; stopWatch = 0f; } public override void OnExit() { ((EntityState)this).OnExit(); } private void HandleSlash(string animatorParamName, string muzzleName, string hitBoxGroupName) { if (modelAnimator.GetFloat(animatorParamName) > 0.1f) { Util.PlaySound(DoubleSlash.slashSoundString, ((EntityState)this).gameObject); EffectManager.SimpleMuzzleFlash(DoubleSlash.swipeEffectPrefab, ((EntityState)this).gameObject, muzzleName, true); attack.Fire((List<HurtBox>)null); } } public override void FixedUpdate() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); stopWatch += Time.fixedDeltaTime; Ray aimRay = ((BaseState)this).GetAimRay(); if (stopWatch >= duration * 0.4f && spikesfired == 0 && ((EntityState)this).isAuthority) { ProjectileManager.instance.FireProjectile(Imp.VoidSpike, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, base.damageStat * BleedSec.damageCoefficient, 0f, Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, 150f); spikesfired++; } if (stopWatch >= duration * 0.5f && spikesfired < 2 && ((EntityState)this).isAuthority) { ProjectileManager.instance.FireProjectile(Imp.VoidSpike, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, base.damageStat * BleedSec.damageCoefficient, 0f, Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, 150f); spikesfired++; } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class BleedMelee : BaseState { public static float baseDuration = 0.75f; public static float damageCoefficient = 1.2f; public static float procCoefficient; public static float selfForce = 2f; public static float forceMagnitude = 16f; public static GameObject hitEffectPrefab; public static GameObject swipeEffectPrefab; public static string enterSoundString; public static string slashSoundString; private OverlapAttack attack; private Animator modelAnimator; private float duration; private int slashCount; private Transform modelTransform; public override void OnEnter() { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Expected O, but got Unknown //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = baseDuration / base.attackSpeedStat; modelAnimator = ((EntityState)this).GetModelAnimator(); modelTransform = ((EntityState)this).GetModelTransform(); attack = new OverlapAttack(); attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.teamIndex = TeamComponent.GetObjectTeam(attack.attacker); if (((EntityState)this).characterBody.HasBuff(Buffs.SlashBuff)) { attack.damage = 1.5f * damageCoefficient * base.damageStat; } else { attack.damage = damageCoefficient * base.damageStat; } attack.hitEffectPrefab = DoubleSlash.hitEffectPrefab; attack.isCrit = Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master); attack.procCoefficient = 1.01f; attack.damageType = DamageTypeCombo.op_Implicit((DamageType)0); ((EntityState)this).characterBody.SetAimTimer(duration); Util.PlayAttackSpeedSound(DoubleSlash.enterSoundString, ((EntityState)this).gameObject, base.attackSpeedStat); if (Object.op_Implicit((Object)(object)modelAnimator)) { ((EntityState)this).PlayAnimation("Gesture, Additive", "DoubleSlash", "DoubleSlash.playbackRate", duration * 0.9f, 0f); ((EntityState)this).PlayAnimation("Gesture, Override", "DoubleSlash", "DoubleSlash.playbackRate", duration * 0.9f, 0f); } } public override void OnExit() { if (((EntityState)this).characterBody.HasBuff(Buffs.SlashBuff)) { ((EntityState)this).characterBody.ClearTimedBuffs(Buffs.SlashBuff); } ((EntityState)this).OnExit(); } private void HandleSlash(string animatorParamName, string muzzleName, string hitBoxGroupName) { //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) if (!(modelAnimator.GetFloat(animatorParamName) > 0.1f)) { return; } Util.PlaySound(DoubleSlash.slashSoundString, ((EntityState)this).gameObject); EffectManager.SimpleMuzzleFlash(DoubleSlash.swipeEffectPrefab, ((EntityState)this).gameObject, muzzleName, true); slashCount++; if (Object.op_Implicit((Object)(object)modelTransform)) { attack.hitBoxGroup = Array.Find(((Component)modelTransform).GetComponents<HitBoxGroup>(), (HitBoxGroup element) => element.groupName == hitBoxGroupName); } if (Object.op_Implicit((Object)(object)((EntityState)this).healthComponent)) { ((EntityState)this).healthComponent.TakeDamageForce(((EntityState)this).characterDirection.forward * selfForce, true, false); } attack.ResetIgnoredHealthComponents(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { attack.forceVector = ((EntityState)this).characterDirection.forward * DoubleSlash.forceMagnitude; } if (attack.Fire((List<HurtBox>)null) && Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, 8f); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)modelAnimator)) { switch (slashCount) { case 1: HandleSlash("HandL.hitBoxActive", "SwipeLeft", "HandL"); break; case 0: HandleSlash("HandR.hitBoxActive", "SwipeRight", "HandR"); break; } } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class BleedSec : BaseState { public static float damageCoefficient = 0.75f; public static float baseDuration = 0.2f; public static GameObject hitEffectPrefab; public static GameObject swipeEffectPrefab; public static string enterSoundString; public static string attackSoundString; public int projectileCount; public int projectilesfired; public static float projectileYawSpread; public static float projectileDamageCoefficient; public static float projectileSpeed; public static float projectileSpeedPerProjectile; public static GameObject projectilePrefab; private OverlapAttack attack; private Animator modelAnimator; private float duration; private int slashCount; private Transform modelTransform; public int attacktype; public float stopwatch; public GameObject chargeInstance; public bool charger; public static float damagecoeff = 0.5f; public override void OnEnter() { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = 2f / base.attackSpeedStat; modelAnimator = ((EntityState)this).GetModelAnimator(); modelTransform = ((EntityState)this).GetModelTransform(); projectileCount = 5; Transform val = ((Component)((EntityState)this).GetModelTransform()).GetComponent<ChildLocator>().FindChild("Center"); if (Object.op_Implicit((Object)(object)val)) { chargeInstance = Object.Instantiate<GameObject>(ChargeMegaFireball.chargeEffectPrefab, val.position, val.rotation); chargeInstance.transform.parent = val; ScaleParticleSystemDuration component = chargeInstance.GetComponent<ScaleParticleSystemDuration>(); if (Object.op_Implicit((Object)(object)component)) { component.newDuration = duration; } } Util.PlaySound(FireVoidspikes.enterSoundString, ((EntityState)this).gameObject); projectilesfired = 0; if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetAimTimer(duration); } } public override void OnExit() { if (Object.op_Implicit((Object)(object)chargeInstance)) { EntityState.Destroy((Object)(object)chargeInstance); } ((EntityState)this).OnExit(); } public override void FixedUpdate() { //IL_003f: 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_017c: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); float num = ((!(base.attackSpeedStat > 4f)) ? duration : 0.5f); stopwatch += Time.fixedDeltaTime; Ray aimRay = ((BaseState)this).GetAimRay(); if (!((EntityState)this).inputBank.skill2.down && ((EntityState)this).isAuthority) { if (Object.op_Implicit((Object)(object)modelAnimator) && projectilesfired < projectileCount) { ((EntityState)this).PlayAnimation("Gesture, Override", "DoubleSlash", "DoubleSlash.playbackRate", baseDuration / base.attackSpeedStat, 0f); EffectManager.SimpleMuzzleFlash(FireVoidspikes.swipeEffectPrefab, ((EntityState)this).gameObject, "FireVoidspikesL", true); Util.PlaySound(FireVoidspikes.attackSoundString, ((EntityState)this).gameObject); Ray aimRay2 = ((BaseState)this).GetAimRay(); FireSpike(aimRay2, 0f, 0f, 175f); projectilesfired++; } if (projectilesfired >= projectileCount && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); return; } } if (((EntityState)this).isAuthority && ((EntityState)this).inputBank.skill2.down && stopwatch >= num) { Util.PlaySound(FireLaser.attackSoundString, ((EntityState)this).gameObject); FireLaser(((Ray)(ref aimRay)).direction); ((EntityState)this).outer.SetNextStateToMain(); } } private void FireLaser(Vector3 direction) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: 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_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014b: 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_0160: 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_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_01af: 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_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: 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_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Unknown result type (might be due to invalid IL or missing references) //IL_0239: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_02e9: 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_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0312: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_031c: 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_0339: Unknown result type (might be due to invalid IL or missing references) //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_036b: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_037d: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0394: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Unknown result type (might be due to invalid IL or missing references) //IL_03cc: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03d2: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03e0: Unknown result type (might be due to invalid IL or missing references) //IL_03e2: Unknown result type (might be due to invalid IL or missing references) //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03f0: 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_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_0454: Unknown result type (might be due to invalid IL or missing references) //IL_045b: Unknown result type (might be due to invalid IL or missing references) //IL_045d: Unknown result type (might be due to invalid IL or missing references) //IL_0462: Unknown result type (might be due to invalid IL or missing references) BulletAttack val = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Component)((Component)((EntityState)this).GetModelTransform()).GetComponent<ChildLocator>().FindChild("Neck")).transform.position, aimVector = direction, bulletCount = 1u, falloffModel = (FalloffModel)0 }; LayerIndex world = LayerIndex.world; val.stopperMask = ((LayerIndex)(ref world)).mask; val.procCoefficient = 1.01f; val.damage = damagecoeff * base.damageStat; val.force = 1000f; val.tracerEffectPrefab = LemPrefabs.ImpSecLaser; val.hitEffectPrefab = FireLaser.hitEffectPrefab; val.isCrit = Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master); val.radius = 1f; val.smartCollision = true; val.damageType = DamageTypeCombo.op_Implicit((DamageType)0); val.Fire(); BulletAttack val2 = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Component)((Component)((EntityState)this).GetModelTransform()).GetComponent<ChildLocator>().FindChild("Neck")).transform.position, aimVector = direction, bulletCount = 1u, falloffModel = (FalloffModel)0 }; world = LayerIndex.world; val2.stopperMask = ((LayerIndex)(ref world)).mask; val2.procCoefficient = 1.01f; val2.damage = damagecoeff * base.damageStat; val2.force = 1000f; val2.tracerEffectPrefab = LemPrefabs.ImpSecLaser; val2.hitEffectPrefab = FireLaser.hitEffectPrefab; val2.isCrit = Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master); val2.radius = 1f; val2.smartCollision = true; val2.damageType = DamageTypeCombo.op_Implicit((DamageType)0); val2.Fire(); BulletAttack val3 = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Component)((Component)((EntityState)this).GetModelTransform()).GetComponent<ChildLocator>().FindChild("Neck")).transform.position, aimVector = direction, bulletCount = 1u, falloffModel = (FalloffModel)0 }; world = LayerIndex.world; val3.stopperMask = ((LayerIndex)(ref world)).mask; val3.procCoefficient = 1.01f; val3.damage = damagecoeff * base.damageStat; val3.force = 1000f; val3.hitEffectPrefab = FireLaser.hitEffectPrefab; val3.isCrit = Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master); val3.radius = 1f; val3.smartCollision = true; val3.damageType = DamageTypeCombo.op_Implicit((DamageType)0); val3.Fire(); BulletAttack val4 = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Component)((Component)((EntityState)this).GetModelTransform()).GetComponent<ChildLocator>().FindChild("Neck")).transform.position, aimVector = direction, bulletCount = 1u, falloffModel = (FalloffModel)0 }; world = LayerIndex.world; val4.stopperMask = ((LayerIndex)(ref world)).mask; val4.procCoefficient = 1.01f; val4.damage = damagecoeff * base.damageStat; val4.force = 1000f; val4.hitEffectPrefab = FireLaser.hitEffectPrefab; val4.isCrit = Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master); val4.radius = 1f; val4.smartCollision = true; val4.damageType = DamageTypeCombo.op_Implicit((DamageType)0); val4.Fire(); BulletAttack val5 = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Component)((Component)((EntityState)this).GetModelTransform()).GetComponent<ChildLocator>().FindChild("Neck")).transform.position, aimVector = direction, bulletCount = 1u, falloffModel = (FalloffModel)0 }; world = LayerIndex.world; val5.stopperMask = ((LayerIndex)(ref world)).mask; val5.procCoefficient = 1.01f; val5.damage = damagecoeff * base.damageStat; val5.force = 1000f; val5.hitEffectPrefab = FireLaser.hitEffectPrefab; val5.isCrit = Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master); val5.radius = 1f; val5.smartCollision = true; val5.damageType = DamageTypeCombo.op_Implicit((DamageType)0); val5.Fire(); } private void FireSpike(Ray aimRay, float bonusPitch, float bonusYaw, float speed) { //IL_0003: 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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) Vector3 val = Util.ApplySpread(((Ray)(ref aimRay)).direction, 0f, 5f, 1f, 1f, 0f, 0f); ProjectileManager.instance.FireProjectile(Imp.VoidSpike, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(val), ((EntityState)this).gameObject, base.damageStat * damageCoefficient, 0f, Util.CheckRoll(base.critStat, ((EntityState)thi