Decompiled source of Risk Of Rain Rebalanced v1.2.0
BepInEx/plugins/Nuxlar-MithrixTheAccursed/MithrixTheAccursed.dll
Decompiled 10 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Threading.Tasks; using BepInEx; using BepInEx.Configuration; using EntityStates; using EntityStates.BrotherHaunt; using EntityStates.BrotherMonster; using EntityStates.BrotherMonster.Weapon; using EntityStates.Huntress; using EntityStates.LunarExploderMonster.Weapon; using EntityStates.LunarGolem; using EntityStates.Missions.BrotherEncounter; using KinematicCharacterController; using On.EntityStates; using On.EntityStates.BrotherMonster; using On.EntityStates.BrotherMonster.Weapon; using On.EntityStates.Missions.BrotherEncounter; using On.RoR2; using R2API; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using RoR2.Projectile; using RoR2.Skills; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = "")] [assembly: AssemblyCompany("MithrixTheAccursed")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("MithrixTheAccursed")] [assembly: AssemblyTitle("MithrixTheAccursed")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace MithrixTheAccursed; [BepInPlugin("com.Nuxlar.MithrixTheAccursed", "MithrixTheAccursed", "2.9.8")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class MithrixTheAccursed : BaseUnityPlugin { [CompilerGenerated] private static class <>O { public static hook_OnEnter <0>__CleanupPillar; public static hook_OnEnter <1>__FistSlamOnEnter; public static hook_FixedUpdate <2>__FistSlamFixedUpdate; public static hook_OnEnter <3>__SpellChannelEnterStateOnEnter; public static hook_OnEnter <4>__SpellChannelStateOnEnter; public static hook_OnEnter <5>__SpellChannelExitStateOnEnter; public static hook_OnEnter <6>__StaggerEnterOnEnter; public static hook_OnEnter <7>__StaggerExitOnEnter; public static hook_OnEnter <8>__StaggerLoopOnEnter; } private bool hasfired; private int phaseCounter = 0; private float elapsed = 0f; private GameObject Mithrix = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Brother/BrotherBody.prefab").WaitForCompletion(); private GameObject MithrixHurt = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Brother/BrotherHurtBody.prefab").WaitForCompletion(); private GameObject BrotherHaunt = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/BrotherHaunt/BrotherHauntBody.prefab").WaitForCompletion(); private SpawnCard MithrixCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/Brother/cscBrother.asset").WaitForCompletion(); private SpawnCard MithrixGlassCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Junk/BrotherGlass/cscBrotherGlass.asset").WaitForCompletion(); private static GameObject exploderProjectile = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarExploder/LunarExploderShardProjectile.prefab").WaitForCompletion(); private static GameObject golemProjectile = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarGolem/LunarGolemTwinShotProjectile.prefab").WaitForCompletion(); public void Awake() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Expected O, but got Unknown //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Expected O, but got Unknown //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Expected O, but got Unknown //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Expected O, but got Unknown //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Expected O, but got Unknown //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Expected O, but got Unknown //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Expected O, but got Unknown //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Expected O, but got Unknown //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Expected O, but got Unknown //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Expected O, but got Unknown //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Expected O, but got Unknown //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Expected O, but got Unknown //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Expected O, but got Unknown //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Expected O, but got Unknown //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Expected O, but got Unknown //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Expected O, but got Unknown //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Expected O, but got Unknown //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Expected O, but got Unknown //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_0119: Expected O, but got Unknown //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_0194: Expected O, but got Unknown //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_01b5: Expected O, but got Unknown //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Expected O, but got Unknown //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_020e: Expected O, but got Unknown //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Expected O, but got Unknown //IL_021f: 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_022a: Expected O, but got Unknown //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Expected O, but got Unknown //IL_0261: 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_026c: Expected O, but got Unknown //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Expected O, but got Unknown //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Expected O, but got Unknown ModConfig.InitConfig(((BaseUnityPlugin)this).Config); AddContent(); Run.Start += new hook_Start(OnRunStart); CharacterMaster.OnBodyStart += new hook_OnBodyStart(CharacterMasterOnBodyStart); BrotherEncounterPhaseBaseState.OnEnter += new hook_OnEnter(BrotherEncounterPhaseBaseStateOnEnter); Phase1.OnEnter += new hook_OnEnter(Phase1OnEnter); Phase2.OnEnter += new hook_OnEnter(Phase2OnEnter); Phase3.OnEnter += new hook_OnEnter(Phase3OnEnter); Phase4.OnEnter += new hook_OnEnter(Phase4OnEnter); FrozenState.OnEnter += new hook_OnEnter(FrozenStateOnEnter); CharacterBody.AddTimedBuff_BuffDef_float += new hook_AddTimedBuff_BuffDef_float(AddTimedBuff_BuffDef_float); SkyLeapDeathState.OnEnter += new hook_OnEnter(SkyLeapDeathStateOnEnter); SlideIntroState.OnEnter += new hook_OnEnter(SlideIntroStateOnEnter); SprintBash.OnEnter += new hook_OnEnter(SprintBashOnEnter); WeaponSlam.OnEnter += new hook_OnEnter(WeaponSlamOnEnter); object obj = <>O.<0>__CleanupPillar; if (obj == null) { hook_OnEnter val = CleanupPillar; <>O.<0>__CleanupPillar = val; obj = (object)val; } WeaponSlam.OnEnter += (hook_OnEnter)obj; WeaponSlam.FixedUpdate += new hook_FixedUpdate(WeaponSlamFixedUpdate); FireLunarShards.OnEnter += new hook_OnEnter(FireLunarShardsOnEnter); UltEnterState.OnEnter += new hook_OnEnter(UltEnterStateOnEnter); UltExitState.OnEnter += new hook_OnEnter(UltExitStateOnEnter); UltChannelState.FireWave += new hook_FireWave(UltChannelStateFireWave); object obj2 = <>O.<1>__FistSlamOnEnter; if (obj2 == null) { hook_OnEnter val2 = FistSlamOnEnter; <>O.<1>__FistSlamOnEnter = val2; obj2 = (object)val2; } FistSlam.OnEnter += (hook_OnEnter)obj2; object obj3 = <>O.<2>__FistSlamFixedUpdate; if (obj3 == null) { hook_FixedUpdate val3 = FistSlamFixedUpdate; <>O.<2>__FistSlamFixedUpdate = val3; obj3 = (object)val3; } FistSlam.FixedUpdate += (hook_FixedUpdate)obj3; object obj4 = <>O.<3>__SpellChannelEnterStateOnEnter; if (obj4 == null) { hook_OnEnter val4 = SpellChannelEnterStateOnEnter; <>O.<3>__SpellChannelEnterStateOnEnter = val4; obj4 = (object)val4; } SpellChannelEnterState.OnEnter += (hook_OnEnter)obj4; object obj5 = <>O.<4>__SpellChannelStateOnEnter; if (obj5 == null) { hook_OnEnter val5 = SpellChannelStateOnEnter; <>O.<4>__SpellChannelStateOnEnter = val5; obj5 = (object)val5; } SpellChannelState.OnEnter += (hook_OnEnter)obj5; SpellChannelState.OnExit += new hook_OnExit(SpellChannelStateOnExit); object obj6 = <>O.<5>__SpellChannelExitStateOnEnter; if (obj6 == null) { hook_OnEnter val6 = SpellChannelExitStateOnEnter; <>O.<5>__SpellChannelExitStateOnEnter = val6; obj6 = (object)val6; } SpellChannelExitState.OnEnter += (hook_OnEnter)obj6; object obj7 = <>O.<6>__StaggerEnterOnEnter; if (obj7 == null) { hook_OnEnter val7 = StaggerEnterOnEnter; <>O.<6>__StaggerEnterOnEnter = val7; obj7 = (object)val7; } StaggerEnter.OnEnter += (hook_OnEnter)obj7; object obj8 = <>O.<7>__StaggerExitOnEnter; if (obj8 == null) { hook_OnEnter val8 = StaggerExitOnEnter; <>O.<7>__StaggerExitOnEnter = val8; obj8 = (object)val8; } StaggerExit.OnEnter += (hook_OnEnter)obj8; object obj9 = <>O.<8>__StaggerLoopOnEnter; if (obj9 == null) { hook_OnEnter val9 = StaggerLoopOnEnter; <>O.<8>__StaggerLoopOnEnter = val9; obj9 = (object)val9; } StaggerLoop.OnEnter += (hook_OnEnter)obj9; TrueDeathState.OnEnter += new hook_OnEnter(TrueDeathStateOnEnter); } private void AdjustBaseStats() { ((BaseUnityPlugin)this).Logger.LogMessage((object)"Adjusting Phase 1 Stats"); int count = PlayerCharacterMasterController.instances.Count; float num; float num2; if (Run.instance.loopClearCount == 1) { num = ModConfig.phase1BaseHPScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase1PlayerHPScaling.Value * (float)count; num2 = ModConfig.phase1BaseMobilityScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase1PlayerMobilityScaling.Value * (float)count; } else { num = ModConfig.phase1LoopHPScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase1PlayerHPScaling.Value * (float)count; num2 = ModConfig.phase1LoopMobilityScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase1PlayerMobilityScaling.Value * (float)count; } CharacterBody component = Mithrix.GetComponent<CharacterBody>(); CharacterDirection component2 = Mithrix.GetComponent<CharacterDirection>(); CharacterMotor component3 = Mithrix.GetComponent<CharacterMotor>(); ((Object)component).name = "MithrixBody"; component3.mass = ModConfig.mass.Value; component3.airControl = ModConfig.aircontrol.Value; component.baseMaxHealth = ModConfig.basehealth.Value + ModConfig.basehealth.Value * num; component.levelMaxHealth = ModConfig.levelhealth.Value + ModConfig.levelhealth.Value * num; component.baseDamage = ModConfig.basedamage.Value; component.levelDamage = ModConfig.leveldamage.Value; component.baseAttackSpeed = ModConfig.baseattackspeed.Value; component.baseMoveSpeed = ModConfig.basespeed.Value + ModConfig.basespeed.Value * num2; component.baseAcceleration = ModConfig.acceleration.Value + ModConfig.acceleration.Value * num2; component.baseJumpPower = ModConfig.jumpingpower.Value + ModConfig.jumpingpower.Value * num2; component2.turnSpeed = ModConfig.turningspeed.Value + ModConfig.turningspeed.Value * num2; component.baseArmor = ModConfig.basearmor.Value; ProjectileSteerTowardTarget component4 = FireLunarShards.projectilePrefab.GetComponent<ProjectileSteerTowardTarget>(); component4.rotationSpeed = ModConfig.ShardHoming.Value; ProjectileDirectionalTargetFinder component5 = FireLunarShards.projectilePrefab.GetComponent<ProjectileDirectionalTargetFinder>(); component5.lookRange = ModConfig.ShardRange.Value; component5.lookCone = ModConfig.ShardCone.Value; component5.allowTargetLoss = true; WeaponSlam.duration = 3.5f / ModConfig.baseattackspeed.Value; HoldSkyLeap.duration = ModConfig.JumpPause.Value; ExitSkyLeap.waveProjectileCount = ModConfig.JumpWaveCount.Value; ExitSkyLeap.recastChance = ModConfig.JumpRecast.Value; UltChannelState.waveProjectileCount = ModConfig.UltimateWaves.Value; UltChannelState.maxDuration = ModConfig.UltimateDuration.Value; UltChannelState.totalWaves = ModConfig.UltimateCount.Value; } private void AdjustBaseSkills() { //IL_010d: 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) SkillLocator component = Mithrix.GetComponent<SkillLocator>(); SkillFamily skillFamily = component.primary.skillFamily; SkillDef skillDef = skillFamily.variants[0].skillDef; skillDef.baseRechargeInterval = ModConfig.PrimCD.Value; skillDef.baseMaxStock = ModConfig.PrimStocks.Value; SkillFamily skillFamily2 = component.secondary.skillFamily; SkillDef skillDef2 = skillFamily2.variants[0].skillDef; skillDef2.baseRechargeInterval = ModConfig.SecCD.Value; skillDef2.baseMaxStock = ModConfig.SecStocks.Value; SkillFamily skillFamily3 = component.utility.skillFamily; SkillDef skillDef3 = skillFamily3.variants[0].skillDef; skillDef3.baseRechargeInterval = ModConfig.UtilCD.Value; skillDef3.baseMaxStock = ModConfig.UtilStocks.Value; SkillFamily skillFamily4 = component.special.skillFamily; SkillDef skillDef4 = skillFamily4.variants[0].skillDef; skillDef4.baseRechargeInterval = ModConfig.SpecialCD.Value; skillDef4.activationState = new SerializableEntityStateType(typeof(EnterCrushingLeap)); } private void AdjustPhase2Stats() { ((BaseUnityPlugin)this).Logger.LogMessage((object)"Adjusting Phase 2 Stats"); int count = PlayerCharacterMasterController.instances.Count; float num; float num2; if (Run.instance.loopClearCount == 1) { num = ModConfig.phase2BaseHPScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase2PlayerHPScaling.Value * (float)count; num2 = ModConfig.phase2BaseMobilityScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase2PlayerMobilityScaling.Value * (float)count; } else { num = ModConfig.phase2LoopHPScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase2PlayerHPScaling.Value * (float)count; num2 = ModConfig.phase2LoopMobilityScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase2PlayerMobilityScaling.Value * (float)count; } CharacterBody component = Mithrix.GetComponent<CharacterBody>(); CharacterDirection component2 = Mithrix.GetComponent<CharacterDirection>(); component.baseMaxHealth = (ModConfig.basehealth.Value + ModConfig.basehealth.Value * num) * 5f; component.levelMaxHealth = (ModConfig.levelhealth.Value + ModConfig.levelhealth.Value * num) * 5f; component.baseMoveSpeed = ModConfig.basespeed.Value + ModConfig.basespeed.Value * num2; component.baseAcceleration = ModConfig.acceleration.Value + ModConfig.acceleration.Value * num2; component.baseJumpPower = ModConfig.jumpingpower.Value + ModConfig.jumpingpower.Value * num2; component2.turnSpeed = ModConfig.turningspeed.Value + ModConfig.turningspeed.Value * num2; WeaponSlam.duration = 3.5f / ModConfig.baseattackspeed.Value; } private void AdjustPhase3Stats() { ((BaseUnityPlugin)this).Logger.LogMessage((object)"Adjusting Phase 3 Stats"); int count = PlayerCharacterMasterController.instances.Count; float num; float num2; if (Run.instance.loopClearCount == 1) { num = ModConfig.phase3BaseHPScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase3PlayerHPScaling.Value * (float)count; num2 = ModConfig.phase3BaseMobilityScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase3PlayerMobilityScaling.Value * (float)count; } else { num = ModConfig.phase3LoopHPScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase3PlayerHPScaling.Value * (float)count; num2 = ModConfig.phase3LoopMobilityScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase3PlayerMobilityScaling.Value * (float)count; } CharacterBody component = Mithrix.GetComponent<CharacterBody>(); CharacterDirection component2 = Mithrix.GetComponent<CharacterDirection>(); component.baseMaxHealth = ModConfig.basehealth.Value + ModConfig.basehealth.Value * num; component.levelMaxHealth = ModConfig.levelhealth.Value + ModConfig.levelhealth.Value * num; component.baseMoveSpeed = ModConfig.basespeed.Value + ModConfig.basespeed.Value * num2; component.baseAcceleration = ModConfig.acceleration.Value + ModConfig.acceleration.Value * num2; component.baseJumpPower = ModConfig.jumpingpower.Value + ModConfig.jumpingpower.Value * num2; component2.turnSpeed = ModConfig.turningspeed.Value + ModConfig.turningspeed.Value * num2; WeaponSlam.duration = 3.5f / ModConfig.baseattackspeed.Value; } private void AdjustPhase4Stats() { ((BaseUnityPlugin)this).Logger.LogMessage((object)"Adjusting Phase 4 Stats"); int count = PlayerCharacterMasterController.instances.Count; float num = ((Run.instance.loopClearCount != 1) ? (ModConfig.phase4LoopHPScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase4PlayerHPScaling.Value * (float)count) : (ModConfig.phase4BaseHPScaling.Value * (float)Run.instance.loopClearCount + ModConfig.phase4PlayerHPScaling.Value * (float)count)); CharacterBody component = MithrixHurt.GetComponent<CharacterBody>(); component.baseMaxHealth = ModConfig.basehealth.Value + 400f + ModConfig.basehealth.Value * num; component.levelMaxHealth = ModConfig.levelhealth.Value + 120f + ModConfig.levelhealth.Value * num; component.baseArmor = ModConfig.basearmor.Value; SkillLocator component2 = MithrixHurt.GetComponent<SkillLocator>(); SkillFamily skillFamily = component2.primary.skillFamily; SkillDef skillDef = skillFamily.variants[0].skillDef; skillDef.baseRechargeInterval = ModConfig.SuperShardCD.Value; skillDef.baseMaxStock = ModConfig.SuperShardCount.Value; } private void OnRunStart(orig_Start orig, Run self) { ((BaseUnityPlugin)this).Logger.LogMessage((object)"Accursing the King of Nothing"); AdjustBaseSkills(); AdjustBaseStats(); orig.Invoke(self); } private void AddContent() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) bool flag = default(bool); ContentAddition.AddEntityState<EnterCrushingLeap>(ref flag); ContentAddition.AddEntityState<AimCrushingLeap>(ref flag); ContentAddition.AddEntityState<ExitCrushingLeap>(ref flag); } private void FrozenStateOnEnter(orig_OnEnter orig, FrozenState self) { if ((!(((Object)((EntityState)self).characterBody).name == "MithrixBody(Clone)") && !(((Object)((EntityState)self).characterBody).name == "BrotherHurtBody(Clone)")) || (Run.instance.loopClearCount < 2 && !ModConfig.debuffResistance.Value)) { orig.Invoke(self); } } private void AddTimedBuff_BuffDef_float(orig_AddTimedBuff_BuffDef_float orig, CharacterBody self, BuffDef buffDef, float duration) { if ((!(((Object)self).name == "MithrixBody(Clone)") && !(((Object)self).name == "BrotherHurtBody(Clone)")) || !((Object)(object)buffDef == (Object)(object)Buffs.Nullified) || (Run.instance.loopClearCount < 2 && !ModConfig.debuffResistance.Value)) { orig.Invoke(self, buffDef, duration); } } private void CharacterMasterOnBodyStart(orig_OnBodyStart orig, CharacterMaster self, CharacterBody body) { orig.Invoke(self, body); if (Object.op_Implicit((Object)(object)PhaseCounter.instance) && (PhaseCounter.instance.phase == 2 || PhaseCounter.instance.phase == 3) && (((Object)body).name == "LunarGolemBody(Clone)" || ((Object)body).name == "LunarExploderBody(Clone)" || ((Object)body).name == "LunarWispBody(Clone)")) { body.healthComponent.Suicide((GameObject)null, (GameObject)null, (DamageType)0); } if (((Object)body).name == "MithrixBody(Clone)" && phaseCounter != 0) { self.inventory.GiveEquipmentString(((Object)Equipment.Cleanse).name); self.inventory.GiveItemString(((Object)Items.AutoCastEquipment).name); } if (((Object)self).name == "BrotherHurtMaster(Clone)") { body.AddBuff(Buffs.Immune); Task.Delay(3000).ContinueWith(delegate { body.RemoveBuff(Buffs.Immune); }); } } private void BrotherEncounterPhaseBaseStateOnEnter(orig_OnEnter orig, BrotherEncounterPhaseBaseState self) { //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0211: 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_0241: Unknown result type (might be due to invalid IL or missing references) //IL_025d: 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_026f: 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) phaseCounter++; ((BrotherEncounterBaseState)self).childLocator = ((EntityState)self).GetComponent<ChildLocator>(); Transform val = ((BrotherEncounterBaseState)self).childLocator.FindChild("ArenaWalls"); Transform val2 = ((BrotherEncounterBaseState)self).childLocator.FindChild("ArenaNodes"); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.SetActive(((BrotherEncounterBaseState)self).shouldEnableArenaWalls); } if (!Object.op_Implicit((Object)(object)val2)) { return; } ((Component)val2).gameObject.SetActive(((BrotherEncounterBaseState)self).shouldEnableArenaNodes); if (Object.op_Implicit((Object)(object)PhaseCounter.instance)) { phaseCounter = PhaseCounter.instance.phase; PhaseCounter.instance.GoToNextPhase(); } if (Object.op_Implicit((Object)(object)((BrotherEncounterBaseState)self).childLocator)) { self.phaseControllerObject = ((Component)((BrotherEncounterBaseState)self).childLocator.FindChild(self.phaseControllerChildString)).gameObject; if (Object.op_Implicit((Object)(object)self.phaseControllerObject)) { self.phaseScriptedCombatEncounter = self.phaseControllerObject.GetComponent<ScriptedCombatEncounter>(); self.phaseBossGroup = self.phaseControllerObject.GetComponent<BossGroup>(); self.phaseControllerSubObjectContainer = ((Component)self.phaseControllerObject.transform.Find("PhaseObjects")).gameObject; self.phaseControllerSubObjectContainer.SetActive(true); } GameObject gameObject = ((Component)((BrotherEncounterBaseState)self).childLocator.FindChild("AllPhases")).gameObject; if (Object.op_Implicit((Object)(object)gameObject)) { gameObject.SetActive(true); } } self.healthBarShowTime = FixedTimeStamp.now + self.healthBarShowDelay; if (Object.op_Implicit((Object)(object)DirectorCore.instance)) { CombatDirector[] components = ((Component)DirectorCore.instance).GetComponents<CombatDirector>(); for (int i = 0; i < components.Length; i++) { Behaviour val3 = (Behaviour)(object)components[i]; val3.enabled = false; } } if (NetworkServer.active && !((Object)(object)self.phaseScriptedCombatEncounter == (Object)null)) { if (phaseCounter == 1) { Mithrix.transform.position = new Vector3(-88.5f, 491.5f, -0.3f); Mithrix.transform.rotation = Quaternion.identity; Transform transform = Mithrix.transform; SpawnInfo val4 = default(SpawnInfo); val4.explicitSpawnPosition = transform; val4.spawnCard = MithrixCard; SpawnInfo val5 = val4; self.phaseScriptedCombatEncounter.spawns = (SpawnInfo[])(object)new SpawnInfo[1] { val5 }; } self.phaseScriptedCombatEncounter.combatSquad.onMemberAddedServer += self.OnMemberAddedServer; } } private void SkyLeapDeathStateOnEnter(orig_OnEnter orig, SkyLeapDeathState self) { if (((Object)((EntityState)self).characterBody).name == "BrotherGlassBody(Clone)") { ((GenericCharacterDeath)self).DestroyModel(); if (NetworkServer.active) { ((GenericCharacterDeath)self).DestroyBodyAsapServer(); } } else { orig.Invoke(self); } } private void Phase1OnEnter(orig_OnEnter orig, Phase1 self) { AdjustBaseStats(); orig.Invoke(self); } private void Phase2OnEnter(orig_OnEnter orig, Phase2 self) { ((BrotherEncounterBaseState)self).KillAllMonsters(); AdjustPhase2Stats(); orig.Invoke(self); } private void Phase3OnEnter(orig_OnEnter orig, Phase3 self) { ((BrotherEncounterBaseState)self).KillAllMonsters(); AdjustPhase3Stats(); orig.Invoke(self); } private void Phase4OnEnter(orig_OnEnter orig, Phase4 self) { AdjustPhase4Stats(); orig.Invoke(self); } private void SlideIntroStateOnEnter(orig_OnEnter orig, SlideIntroState self) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown //IL_003b: 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_007e: Expected O, but got Unknown //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0118: 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_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) Ray aimRay = ((BaseState)self).GetAimRay(); if (((EntityState)self).isAuthority) { if (((Object)((EntityState)self).characterBody).name == "MithrixBody(Clone)") { DirectorPlacementRule val = new DirectorPlacementRule(); val.placementMode = (PlacementMode)1; val.minDistance = 3f; val.maxDistance = 20f; val.spawnOnTarget = ((EntityState)self).gameObject.transform; Xoroshiro128Plus rng = RoR2Application.rng; DirectorSpawnRequest val2 = new DirectorSpawnRequest(MithrixGlassCard, val, rng); val2.summonerBodyObject = ((EntityState)self).gameObject; val2.onSpawnedServer = (Action<SpawnResult>)Delegate.Combine(val2.onSpawnedServer, (Action<SpawnResult>)delegate(SpawnResult spawnResult) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) spawnResult.spawnedInstance.GetComponent<Inventory>().GiveItem(Items.HealthDecay, 1); }); DirectorCore.instance.TrySpawnObject(val2); } if (ModConfig.DashProjectileCount.Value > 0) { int num = 360 / ModConfig.DashProjectileCount.Value; Vector3 val3 = Vector3.ProjectOnPlane(((EntityState)self).inputBank.aimDirection, Vector3.up); for (int i = 0; i < ModConfig.DashProjectileCount.Value; i++) { Util.PlaySound(((GenericProjectileBaseState)new FireExploderShards()).attackSoundString, ((EntityState)self).gameObject); Vector3 val4 = Quaternion.AngleAxis((float)(num * i), Vector3.forward) * val3; ProjectileManager.instance.FireProjectile(exploderProjectile, ((Ray)(ref aimRay)).origin, Quaternion.LookRotation(val4), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * FistSlam.waveProjectileDamageCoefficient / 10f, 0f, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); ProjectileManager.instance.FireProjectile(golemProjectile, ((Ray)(ref aimRay)).origin, Quaternion.LookRotation(val4), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * FistSlam.waveProjectileDamageCoefficient / 4f, 0f, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } } } orig.Invoke(self); } private void SprintBashOnEnter(orig_OnEnter orig, SprintBash self) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: 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_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_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012b: 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_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_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_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_0233: 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_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) if (((EntityState)self).isAuthority) { Util.PlaySound(FireTwinShots.attackSoundString, ((EntityState)self).gameObject); Ray aimRay = ((BaseState)self).GetAimRay(); Util.PlaySound(FireLunarShards.fireSound, ((EntityState)self).gameObject); for (int i = 0; i < ModConfig.SuperShardWeight.Value; i++) { ProjectileManager.instance.FireProjectile(FireLunarShards.projectilePrefab, ((Ray)(ref aimRay)).origin, Quaternion.LookRotation(((Ray)(ref aimRay)).direction), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * 0.1f / 12f, 0f, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } if (Object.op_Implicit((Object)(object)PhaseCounter.instance)) { Vector3 val = Vector3.ProjectOnPlane(((EntityState)self).inputBank.aimDirection, Vector3.up); Vector3 footPosition = ((EntityState)self).characterBody.footPosition; if (PhaseCounter.instance.phase != 1) { Vector3 val2 = Quaternion.AngleAxis(0f, Vector3.up) * val; ProjectileManager.instance.FireProjectile(WeaponSlam.waveProjectilePrefab, footPosition, Util.QuaternionSafeLookRotation(val2), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * WeaponSlam.waveProjectileDamageCoefficient, WeaponSlam.waveProjectileForce, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } if (PhaseCounter.instance.phase == 3 && ((Object)((EntityState)self).characterBody).name != "BrotherGlassBody(Clone)") { ProjectileManager.instance.FireProjectile(FireRandomProjectiles.projectilePrefab, footPosition, Util.QuaternionSafeLookRotation(Quaternion.AngleAxis(-30f, Vector3.up) * val), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * FireRandomProjectiles.damageCoefficient, UltChannelState.waveProjectileForce, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); ProjectileManager.instance.FireProjectile(FireRandomProjectiles.projectilePrefab, footPosition, Util.QuaternionSafeLookRotation(Quaternion.AngleAxis(0f, Vector3.up) * val), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * FireRandomProjectiles.damageCoefficient, UltChannelState.waveProjectileForce, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); ProjectileManager.instance.FireProjectile(FireRandomProjectiles.projectilePrefab, footPosition, Util.QuaternionSafeLookRotation(Quaternion.AngleAxis(30f, Vector3.up) * val), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * FireRandomProjectiles.damageCoefficient, UltChannelState.waveProjectileForce, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } } } orig.Invoke(self); } private void WeaponSlamOnEnter(orig_OnEnter orig, WeaponSlam self) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) GameObject pillarProjectilePrefab = WeaponSlam.pillarProjectilePrefab; pillarProjectilePrefab.transform.localScale = new Vector3(3f, 3f, 3f); pillarProjectilePrefab.GetComponent<ProjectileController>().ghostPrefab.transform.localScale = new Vector3(3f, 3f, 3f); hasfired = false; orig.Invoke(self); } private void WeaponSlamFixedUpdate(orig_FixedUpdate orig, WeaponSlam self) { //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: 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_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_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_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: 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_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_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_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01df: 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_028a: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) if (((EntityState)self).isAuthority && self.hasDoneBlastAttack) { ((BaseUnityPlugin)this).Logger.LogDebug((object)"blast attack done"); if (Object.op_Implicit((Object)(object)self.modelTransform) && !hasfired) { hasfired = true; ((BaseUnityPlugin)this).Logger.LogDebug((object)"modeltransformed"); if (Object.op_Implicit((Object)(object)PhaseCounter.instance)) { int value = ModConfig.SlamOrbProjectileCount.Value; int value2 = ModConfig.SlamShardCount.Value; int num = ((PhaseCounter.instance.phase == 2) ? 8 : 10); float num2 = 360f / (float)value; float num3 = 360f / (float)value2; float num4 = 360f / (float)num; Vector3 val = Vector3.ProjectOnPlane(((EntityState)self).inputBank.aimDirection, Vector3.up); Vector3 val2 = Vector3.ProjectOnPlane(((EntityState)self).inputBank.aimDirection, Vector3.forward); Transform val3 = ((BaseState)self).FindModelChild(WeaponSlam.muzzleString); Vector3 position = val3.position; for (int i = 0; i < value; i++) { Vector3 val4 = Quaternion.AngleAxis(num2 * (float)i, Vector3.up) * val; ProjectileManager.instance.FireProjectile(FistSlam.waveProjectilePrefab, position, Util.QuaternionSafeLookRotation(val4), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * FistSlam.waveProjectileDamageCoefficient, FistSlam.waveProjectileForce, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } for (int j = 0; j < value2; j++) { Ray aimRay = ((BaseState)self).GetAimRay(); for (int k = 0; k < ModConfig.SuperShardWeight.Value; k++) { Vector3 val5 = Quaternion.AngleAxis(num3 * (float)k, Vector3.up) * val; ProjectileManager.instance.FireProjectile(FireLunarShards.projectilePrefab, ((Ray)(ref aimRay)).origin, Quaternion.LookRotation(val5), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * 0.1f / 12f, 0f, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } } if (PhaseCounter.instance.phase != 1) { for (int l = 0; l < num; l++) { Vector3 val6 = Quaternion.AngleAxis(num4 * (float)l, Vector3.up) * val; ProjectileManager.instance.FireProjectile(FireRandomProjectiles.projectilePrefab, position, Util.QuaternionSafeLookRotation(val6), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * FireRandomProjectiles.damageCoefficient, UltChannelState.waveProjectileForce, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } } } } } orig.Invoke(self); } private void FireLunarShardsOnEnter(orig_OnEnter orig, FireLunarShards self) { //IL_0033: 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_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0089: 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_0258: 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_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0275: 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_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_024a: 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_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: 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_0124: Unknown result type (might be due to invalid IL or missing references) //IL_015a: 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_0316: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) if (self is FireLunarShardsHurt) { self.duration = FireLunarShards.baseDuration / ((BaseState)self).attackSpeedStat; if (((EntityState)self).isAuthority) { Ray aimRay = ((BaseState)self).GetAimRay(); Transform val = ((BaseState)self).FindModelChild(FireLunarShards.muzzleString); if (Object.op_Implicit((Object)(object)val)) { ((Ray)(ref aimRay)).origin = val.position; } ((Ray)(ref aimRay)).direction = Util.ApplySpread(((Ray)(ref aimRay)).direction, 0f, self.maxSpread, self.spreadYawScale, self.spreadPitchScale, 0f, 0f); for (int i = 0; i < 12; i++) { int num = (int)Util.PlaySound(FireLunarShards.fireSound, ((EntityState)self).gameObject); ProjectileManager.instance.FireProjectile(new FireProjectileInfo { position = ((Ray)(ref aimRay)).origin, rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction), crit = ((EntityState)self).characterBody.RollCrit(), damage = ((EntityState)self).characterBody.damage * self.damageCoefficient, damageColorIndex = (DamageColorIndex)0, owner = ((EntityState)self).gameObject, procChainMask = default(ProcChainMask), force = 0f, useFuseOverride = false, useSpeedOverride = false, target = null, projectilePrefab = FireLunarShards.projectilePrefab }); } } ((EntityState)self).PlayAnimation("Gesture, Additive", "FireLunarShards"); ((EntityState)self).PlayAnimation("Gesture, Override", "FireLunarShards"); ((BaseState)self).AddRecoil(-0.4f * FireLunarShards.recoilAmplitude, -0.8f * FireLunarShards.recoilAmplitude, -0.3f * FireLunarShards.recoilAmplitude, 0.3f * FireLunarShards.recoilAmplitude); ((EntityState)self).characterBody.AddSpreadBloom(FireLunarShards.spreadBloomValue); EffectManager.SimpleMuzzleFlash(FireLunarShards.muzzleFlashEffectPrefab, ((EntityState)self).gameObject, FireLunarShards.muzzleString, false); return; } if (!(self is FireLunarShardsHurt) && ((EntityState)self).isAuthority) { Ray aimRay2 = ((BaseState)self).GetAimRay(); Transform val2 = ((BaseState)self).FindModelChild(FireLunarShards.muzzleString); if (Object.op_Implicit((Object)(object)val2)) { ((Ray)(ref aimRay2)).origin = val2.position; } FireProjectileInfo val3 = default(FireProjectileInfo); val3.position = ((Ray)(ref aimRay2)).origin; val3.rotation = Quaternion.LookRotation(((Ray)(ref aimRay2)).direction); val3.crit = ((EntityState)self).characterBody.RollCrit(); val3.damage = ((EntityState)self).characterBody.damage * self.damageCoefficient; val3.damageColorIndex = (DamageColorIndex)0; val3.owner = ((EntityState)self).gameObject; val3.procChainMask = default(ProcChainMask); val3.force = 0f; val3.useFuseOverride = false; val3.useSpeedOverride = false; val3.target = null; val3.projectilePrefab = FireLunarShards.projectilePrefab; for (int j = 0; j < ModConfig.LunarShardAdd.Value; j++) { ProjectileManager.instance.FireProjectile(val3); ((Ray)(ref aimRay2)).direction = Util.ApplySpread(((Ray)(ref aimRay2)).direction, 0f, self.maxSpread * (1f + 0.45f * (float)j), self.spreadYawScale * (1f + 0.45f * (float)j), self.spreadPitchScale * (1f + 0.45f * (float)j), 0f, 0f); val3.rotation = Quaternion.LookRotation(((Ray)(ref aimRay2)).direction); } } orig.Invoke(self); } private void UltEnterStateOnEnter(orig_OnEnter orig, UltEnterState self) { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (Object.op_Implicit((Object)(object)PhaseCounter.instance) && PhaseCounter.instance.phase == 3) { ((EntityState)self).characterBody.AddBuff(Buffs.Immune); ProjectileManager.instance.FireProjectile(WeaponSlam.pillarProjectilePrefab, ((EntityState)self).characterBody.footPosition, Quaternion.identity, ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * WeaponSlam.pillarDamageCoefficient, 0f, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } } private void UltExitStateOnEnter(orig_OnEnter orig, UltExitState self) { if (Object.op_Implicit((Object)(object)PhaseCounter.instance) && PhaseCounter.instance.phase == 3) { ((EntityState)self).characterBody.RemoveBuff(Buffs.Immune); } orig.Invoke(self); } private void UltChannelStateFireWave(orig_FireWave orig, UltChannelState self) { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: 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_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: 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_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_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: 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_0142: 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) if (Object.op_Implicit((Object)(object)PhaseCounter.instance) && PhaseCounter.instance.phase == 3) { UltChannelState.waveProjectileCount = 0; int count = PlayerCharacterMasterController.instances.Count; int num = ModConfig.UltimateWaves.Value + 2; float num2 = 360f / (float)num; Vector3 val = Vector3.ProjectOnPlane(Random.onUnitSphere, Vector3.up); Vector3 normalized = ((Vector3)(ref val)).normalized; GameObject val2 = UltChannelState.waveProjectileLeftPrefab; if ((double)Random.value <= 0.5) { val2 = UltChannelState.waveProjectileRightPrefab; } Random random = new Random(); int index = random.Next(0, count - 1); PlayerCharacterMasterController val3 = PlayerCharacterMasterController.instances[index]; Vector3 val4 = new Vector3(val3.body.footPosition.x, ((EntityState)self).characterBody.footPosition.y, val3.body.footPosition.z) + new Vector3(Random.Range(-50f, 50f), 0f, Random.Range(-50f, 50f)); for (int i = 0; i < num; i++) { Vector3 val5 = Quaternion.AngleAxis(num2 * (float)i, Vector3.up) * normalized; ProjectileManager.instance.FireProjectile(val2, val4, Util.QuaternionSafeLookRotation(val5), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * UltChannelState.waveProjectileDamageCoefficient, UltChannelState.waveProjectileForce, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } } orig.Invoke(self); } private static void FistSlamOnEnter(orig_OnEnter orig, FistSlam self) { FistSlam.waveProjectileDamageCoefficient = 2.3f; FistSlam.healthCostFraction = 0f; FistSlam.waveProjectileCount = 20; FistSlam.baseDuration = 3.5f; orig.Invoke(self); } private static void FistSlamFixedUpdate(orig_FixedUpdate orig, FistSlam self) { //IL_004d: 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_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_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_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_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_009f: 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_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_011b: 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_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)self.modelAnimator) && (double)self.modelAnimator.GetFloat("fist.hitBoxActive") > 0.5 && !self.hasAttacked && ((EntityState)self).isAuthority) { Ray aimRay = ((BaseState)self).GetAimRay(); float num = 360f / (float)FistSlam.waveProjectileCount; Vector3 val = Vector3.ProjectOnPlane(((EntityState)self).inputBank.aimDirection, Vector3.up); Vector3 footPosition = ((EntityState)self).characterBody.footPosition; Vector3 corePosition = ((EntityState)self).characterBody.corePosition; for (int i = 0; i < FistSlam.waveProjectileCount; i++) { Vector3 val2 = Quaternion.AngleAxis(num * (float)i, Vector3.up) * val; ProjectileManager.instance.FireProjectile(golemProjectile, corePosition, Util.QuaternionSafeLookRotation(val2), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * FistSlam.waveProjectileDamageCoefficient / 4f, 0f, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); ProjectileManager.instance.FireProjectile(exploderProjectile, corePosition, Util.QuaternionSafeLookRotation(val2), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * FistSlam.waveProjectileDamageCoefficient / 10f, 0f, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); ProjectileManager.instance.FireProjectile(FireLunarShards.projectilePrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)self).gameObject, ((EntityState)self).characterBody.damage * 0.1f / 12f, 0f, Util.CheckRoll(((EntityState)self).characterBody.crit, ((EntityState)self).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f); } } orig.Invoke(self); } private static void SpellChannelEnterStateOnEnter(orig_OnEnter orig, SpellChannelEnterState self) { SpellChannelEnterState.duration = 3f; orig.Invoke(self); } private static void SpellChannelStateOnEnter(orig_OnEnter orig, SpellChannelState self) { SpellChannelState.stealInterval = 0.1f; SpellChannelState.delayBeforeBeginningSteal = 0f; SpellChannelState.maxDuration = 15f; orig.Invoke(self); } private void SpellChannelStateOnExit(orig_OnExit orig, SpellChannelState self) { orig.Invoke(self); GameObject val = Object.Instantiate<GameObject>(BrotherHaunt); val.GetComponent<TeamComponent>().teamIndex = (TeamIndex)2; NetworkServer.Spawn(val); } private static void SpellChannelExitStateOnEnter(orig_OnEnter orig, SpellChannelExitState self) { SpellChannelExitState.lendInterval = 0.04f; SpellChannelExitState.duration = 2.5f; orig.Invoke(self); } private static void StaggerEnterOnEnter(orig_OnEnter orig, StaggerEnter self) { ((StaggerBaseState)self).duration = 0f; orig.Invoke(self); } private static void StaggerExitOnEnter(orig_OnEnter orig, StaggerExit self) { ((StaggerBaseState)self).duration = 0f; orig.Invoke(self); } private static void StaggerLoopOnEnter(orig_OnEnter orig, StaggerLoop self) { ((StaggerBaseState)self).duration = 0f; orig.Invoke(self); } private void TrueDeathStateOnEnter(orig_OnEnter orig, TrueDeathState self) { TrueDeathState.dissolveDuration = 3f; GameObject.Find("BrotherHauntBody(Clone)").GetComponent<HealthComponent>().Suicide((GameObject)null, (GameObject)null, (DamageType)0); orig.Invoke(self); } private static void CleanupPillar(orig_OnEnter orig, WeaponSlam self) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) GameObject pillarProjectilePrefab = WeaponSlam.pillarProjectilePrefab; pillarProjectilePrefab.transform.localScale = new Vector3(1f, 1f, 1f); pillarProjectilePrefab.GetComponent<ProjectileController>().ghostPrefab.transform.localScale = new Vector3(1f, 1f, 1f); orig.Invoke(self); } } internal class ModConfig { public static ConfigEntry<bool> debuffResistance; public static ConfigEntry<float> phase1BaseHPScaling; public static ConfigEntry<float> phase2BaseHPScaling; public static ConfigEntry<float> phase3BaseHPScaling; public static ConfigEntry<float> phase4BaseHPScaling; public static ConfigEntry<float> phase1BaseMobilityScaling; public static ConfigEntry<float> phase2BaseMobilityScaling; public static ConfigEntry<float> phase3BaseMobilityScaling; public static ConfigEntry<float> phase1LoopHPScaling; public static ConfigEntry<float> phase2LoopHPScaling; public static ConfigEntry<float> phase3LoopHPScaling; public static ConfigEntry<float> phase4LoopHPScaling; public static ConfigEntry<float> phase1LoopMobilityScaling; public static ConfigEntry<float> phase2LoopMobilityScaling; public static ConfigEntry<float> phase3LoopMobilityScaling; public static ConfigEntry<float> phase1PlayerHPScaling; public static ConfigEntry<float> phase1PlayerMobilityScaling; public static ConfigEntry<float> phase2PlayerHPScaling; public static ConfigEntry<float> phase2PlayerMobilityScaling; public static ConfigEntry<float> phase3PlayerHPScaling; public static ConfigEntry<float> phase3PlayerMobilityScaling; public static ConfigEntry<float> phase4PlayerHPScaling; public static ConfigEntry<float> basehealth; public static ConfigEntry<float> levelhealth; public static ConfigEntry<float> basedamage; public static ConfigEntry<float> leveldamage; public static ConfigEntry<float> basearmor; public static ConfigEntry<float> baseattackspeed; public static ConfigEntry<float> basespeed; public static ConfigEntry<float> mass; public static ConfigEntry<float> turningspeed; public static ConfigEntry<float> jumpingpower; public static ConfigEntry<float> acceleration; public static ConfigEntry<float> aircontrol; public static ConfigEntry<int> PrimStocks; public static ConfigEntry<int> SecStocks; public static ConfigEntry<int> UtilStocks; public static ConfigEntry<float> PrimCD; public static ConfigEntry<float> SecCD; public static ConfigEntry<float> UtilCD; public static ConfigEntry<float> SpecialCD; public static ConfigEntry<float> CrushingLeap; public static ConfigEntry<float> P2SuperShardInterval; public static ConfigEntry<int> SuperShardWeight; public static ConfigEntry<int> P2UltCount; public static ConfigEntry<int> P2UltOrbCount; public static ConfigEntry<float> P2UltDuration; public static ConfigEntry<int> SuperShardCount; public static ConfigEntry<float> SuperShardCD; public static ConfigEntry<int> SlamOrbProjectileCount; public static ConfigEntry<int> SlamShardCount; public static ConfigEntry<int> DashProjectileCount; public static ConfigEntry<int> LunarShardAdd; public static ConfigEntry<int> UltimateWaves; public static ConfigEntry<int> UltimateCount; public static ConfigEntry<float> UltimateDuration; public static ConfigEntry<float> JumpRecast; public static ConfigEntry<float> JumpPause; public static ConfigEntry<int> JumpWaveCount; public static ConfigEntry<float> ShardHoming; public static ConfigEntry<float> ShardRange; public static ConfigEntry<float> ShardCone; public static void InitConfig(ConfigFile config) { //IL_074e: Unknown result type (might be due to invalid IL or missing references) //IL_0758: Expected O, but got Unknown //IL_075e: Unknown result type (might be due to invalid IL or missing references) //IL_0763: Unknown result type (might be due to invalid IL or missing references) //IL_076e: Unknown result type (might be due to invalid IL or missing references) //IL_0779: Unknown result type (might be due to invalid IL or missing references) //IL_0789: Expected O, but got Unknown //IL_0784: Unknown result type (might be due to invalid IL or missing references) //IL_078e: Expected O, but got Unknown //IL_0794: Unknown result type (might be due to invalid IL or missing references) //IL_0799: Unknown result type (might be due to invalid IL or missing references) //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_07af: Unknown result type (might be due to invalid IL or missing references) //IL_07bf: Expected O, but got Unknown //IL_07ba: Unknown result type (might be due to invalid IL or missing references) //IL_07c4: Expected O, but got Unknown //IL_07ca: Unknown result type (might be due to invalid IL or missing references) //IL_07cf: Unknown result type (might be due to invalid IL or missing references) //IL_07da: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_07f5: Expected O, but got Unknown //IL_07f0: Unknown result type (might be due to invalid IL or missing references) //IL_07fa: Expected O, but got Unknown //IL_0800: Unknown result type (might be due to invalid IL or missing references) //IL_0805: Unknown result type (might be due to invalid IL or missing references) //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_081b: Unknown result type (might be due to invalid IL or missing references) //IL_082b: Expected O, but got Unknown //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_0830: Expected O, but got Unknown //IL_0836: Unknown result type (might be due to invalid IL or missing references) //IL_083b: Unknown result type (might be due to invalid IL or missing references) //IL_0846: Unknown result type (might be due to invalid IL or missing references) //IL_0851: Unknown result type (might be due to invalid IL or missing references) //IL_0861: Expected O, but got Unknown //IL_085c: Unknown result type (might be due to invalid IL or missing references) //IL_0866: Expected O, but got Unknown //IL_086c: Unknown result type (might be due to invalid IL or missing references) //IL_0871: Unknown result type (might be due to invalid IL or missing references) //IL_087c: Unknown result type (might be due to invalid IL or missing references) //IL_0887: Unknown result type (might be due to invalid IL or missing references) //IL_0897: Expected O, but got Unknown //IL_0892: Unknown result type (might be due to invalid IL or missing references) //IL_089c: Expected O, but got Unknown //IL_08a2: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_08b2: Unknown result type (might be due to invalid IL or missing references) //IL_08bd: Unknown result type (might be due to invalid IL or missing references) //IL_08cd: Expected O, but got Unknown //IL_08c8: Unknown result type (might be due to invalid IL or missing references) //IL_08d2: Expected O, but got Unknown //IL_08d8: Unknown result type (might be due to invalid IL or missing references) //IL_08dd: Unknown result type (might be due to invalid IL or missing references) //IL_08e8: Unknown result type (might be due to invalid IL or missing references) //IL_08f3: Unknown result type (might be due to invalid IL or missing references) //IL_0903: Expected O, but got Unknown //IL_08fe: Unknown result type (might be due to invalid IL or missing references) //IL_0908: Expected O, but got Unknown //IL_090e: Unknown result type (might be due to invalid IL or missing references) //IL_0913: Unknown result type (might be due to invalid IL or missing references) //IL_091e: Unknown result type (might be due to invalid IL or missing references) //IL_0929: Unknown result type (might be due to invalid IL or missing references) //IL_0939: Expected O, but got Unknown //IL_0934: Unknown result type (might be due to invalid IL or missing references) //IL_093e: Expected O, but got Unknown //IL_0944: Unknown result type (might be due to invalid IL or missing references) //IL_0949: Unknown result type (might be due to invalid IL or missing references) //IL_0954: Unknown result type (might be due to invalid IL or missing references) //IL_095f: Unknown result type (might be due to invalid IL or missing references) //IL_096f: Expected O, but got Unknown //IL_096a: Unknown result type (might be due to invalid IL or missing references) //IL_0974: Expected O, but got Unknown //IL_097a: Unknown result type (might be due to invalid IL or missing references) //IL_097f: Unknown result type (might be due to invalid IL or missing references) //IL_098a: Unknown result type (might be due to invalid IL or missing references) //IL_0995: Unknown result type (might be due to invalid IL or missing references) //IL_09a5: Expected O, but got Unknown //IL_09a0: Unknown result type (might be due to invalid IL or missing references) //IL_09aa: Expected O, but got Unknown //IL_09b0: Unknown result type (might be due to invalid IL or missing references) //IL_09b5: Unknown result type (might be due to invalid IL or missing references) //IL_09c0: Unknown result type (might be due to invalid IL or missing references) //IL_09cb: Unknown result type (might be due to invalid IL or missing references) //IL_09db: Expected O, but got Unknown //IL_09d6: Unknown result type (might be due to invalid IL or missing references) //IL_09e0: Expected O, but got Unknown //IL_09e6: Unknown result type (might be due to invalid IL or missing references) //IL_09eb: Unknown result type (might be due to invalid IL or missing references) //IL_09f6: Unknown result type (might be due to invalid IL or missing references) //IL_0a01: Unknown result type (might be due to invalid IL or missing references) //IL_0a11: Expected O, but got Unknown //IL_0a0c: Unknown result type (might be due to invalid IL or missing references) //IL_0a16: Expected O, but got Unknown //IL_0a1c: Unknown result type (might be due to invalid IL or missing references) //IL_0a21: Unknown result type (might be due to invalid IL or missing references) //IL_0a2c: Unknown result type (might be due to invalid IL or missing references) //IL_0a37: Unknown result type (might be due to invalid IL or missing references) //IL_0a47: Expected O, but got Unknown //IL_0a42: Unknown result type (might be due to invalid IL or missing references) //IL_0a4c: Expected O, but got Unknown //IL_0a52: Unknown result type (might be due to invalid IL or missing references) //IL_0a57: Unknown result type (might be due to invalid IL or missing references) //IL_0a62: Unknown result type (might be due to invalid IL or missing references) //IL_0a6d: Unknown result type (might be due to invalid IL or missing references) //IL_0a7d: Expected O, but got Unknown //IL_0a78: Unknown result type (might be due to invalid IL or missing references) //IL_0a82: Expected O, but got Unknown //IL_0a88: Unknown result type (might be due to invalid IL or missing references) //IL_0a8d: Unknown result type (might be due to invalid IL or missing references) //IL_0a98: Unknown result type (might be due to invalid IL or missing references) //IL_0aa3: Unknown result type (might be due to invalid IL or missing references) //IL_0ab3: Expected O, but got Unknown //IL_0aae: Unknown result type (might be due to invalid IL or missing references) //IL_0ab8: Expected O, but got Unknown //IL_0abe: Unknown result type (might be due to invalid IL or missing references) //IL_0ac3: Unknown result type (might be due to invalid IL or missing references) //IL_0ace: Unknown result type (might be due to invalid IL or missing references) //IL_0ad9: Unknown result type (might be due to invalid IL or missing references) //IL_0ae9: Expected O, but got Unknown //IL_0ae4: Unknown result type (might be due to invalid IL or missing references) //IL_0aee: Expected O, but got Unknown //IL_0af4: Unknown result type (might be due to invalid IL or missing references) //IL_0af9: Unknown result type (might be due to invalid IL or missing references) //IL_0b04: Unknown result type (might be due to invalid IL or missing references) //IL_0b0f: Unknown result type (might be due to invalid IL or missing references) //IL_0b1f: Expected O, but got Unknown //IL_0b1a: Unknown result type (might be due to invalid IL or missing references) //IL_0b24: Expected O, but got Unknown //IL_0b2a: Unknown result type (might be due to invalid IL or missing references) //IL_0b2f: Unknown result type (might be due to invalid IL or missing references) //IL_0b3a: Unknown result type (might be due to invalid IL or missing references) //IL_0b45: Unknown result type (might be due to invalid IL or missing references) //IL_0b55: Expected O, but got Unknown //IL_0b50: Unknown result type (might be due to invalid IL or missing references) //IL_0b5a: Expected O, but got Unknown //IL_0b60: Unknown result type (might be due to invalid IL or missing references) //IL_0b65: Unknown result type (might be due to invalid IL or missing references) //IL_0b70: Unknown result type (might be due to invalid IL or missing references) //IL_0b7b: Unknown result type (might be due to invalid IL or missing references) //IL_0b8b: Expected O, but got Unknown //IL_0b86: Unknown result type (might be due to invalid IL or missing references) //IL_0b90: Expected O, but got Unknown //IL_0b96: Unknown result type (might be due to invalid IL or missing references) //IL_0b9b: Unknown result type (might be due to invalid IL or missing references) //IL_0ba6: Unknown result type (might be due to invalid IL or missing references) //IL_0bb1: Unknown result type (might be due to invalid IL or missing references) //IL_0bc1: Expected O, but got Unknown //IL_0bbc: Unknown result type (might be due to invalid IL or missing references) //IL_0bc6: Expected O, but got Unknown //IL_0bcc: Unknown result type (might be due to invalid IL or missing references) //IL_0bd1: Unknown result type (might be due to invalid IL or missing references) //IL_0bdc: Unknown result type (might be due to invalid IL or missing references) //IL_0be7: Unknown result type (might be due to invalid IL or missing references) //IL_0bf7: Expected O, but got Unknown //IL_0bf2: Unknown result type (might be due to invalid IL or missing references) //IL_0bfc: Expected O, but got Unknown //IL_0c02: Unknown result type (might be due to invalid IL or missing references) //IL_0c07: Unknown result type (might be due to invalid IL or missing references) //IL_0c12: Unknown result type (might be due to invalid IL or missing references) //IL_0c1d: Unknown result type (might be due to invalid IL or missing references) //IL_0c2d: Expected O, but got Unknown //IL_0c28: Unknown result type (might be due to invalid IL or missing references) //IL_0c32: Expected O, but got Unknown //IL_0c38: Unknown result type (might be due to invalid IL or missing references) //IL_0c3d: Unknown result type (might be due to invalid IL or missing references) //IL_0c48: Unknown result type (might be due to invalid IL or missing references) //IL_0c53: Unknown result type (might be due to invalid IL or missing references) //IL_0c63: Expected O, but got Unknown //IL_0c5e: Unknown result type (might be due to invalid IL or missing references) //IL_0c68: Expected O, but got Unknown //IL_0c6e: Unknown result type (might be due to invalid IL or missing references) //IL_0c73: Unknown result type (might be due to invalid IL or missing references) //IL_0c7e: Unknown result type (might be due to invalid IL or missing references) //IL_0c89: Unknown result type (might be due to invalid IL or missing references) //IL_0c99: Expected O, but got Unknown //IL_0c94: Unknown result type (might be due to invalid IL or missing references) //IL_0c9e: Expected O, but got Unknown //IL_0ca4: Unknown result type (might be due to invalid IL or missing references) //IL_0ca9: Unknown result type (might be due to invalid IL or missing references) //IL_0cb4: Unknown result type (might be due to invalid IL or missing references) //IL_0cbf: Unknown result type (might be due to invalid IL or missing references) //IL_0ccf: Expected O, but got Unknown //IL_0cca: Unknown result type (might be due to invalid IL or missing references) //IL_0cd4: Expected O, but got Unknown //IL_0cda: Unknown result type (might be due to invalid IL or missing references) //IL_0cdf: Unknown result type (might be due to invalid IL or missing references) //IL_0cea: Unknown result type (might be due to invalid IL or missing references) //IL_0cf5: Unknown result type (might be due to invalid IL or missing references) //IL_0d05: Expected O, but got Unknown //IL_0d00: Unknown result type (might be due to invalid IL or missing references) //IL_0d0a: Expected O, but got Unknown //IL_0d10: Unknown result type (might be due to invalid IL or missing references) //IL_0d15: Unknown result type (might be due to invalid IL or missing references) //IL_0d20: Unknown result type (might be due to invalid IL or missing references) //IL_0d2b: Unknown result type (might be due to invalid IL or missing references) //IL_0d3b: Expected O, but got Unknown //IL_0d36: Unknown result type (might be due to invalid IL or missing references) //IL_0d40: Expected O, but got Unknown //IL_0d46: Unknown result type (might be due to invalid IL or missing references) //IL_0d4b: Unknown result type (might be due to invalid IL or missing references) //IL_0d56: Unknown result type (might be due to invalid IL or missing references) //IL_0d61: Unknown result type (might be due to invalid IL or missing references) //IL_0d71: Expected O, but got Unknown //IL_0d6c: Unknown result type (might be due to invalid IL or missing references) //IL_0d76: Expected O, but got Unknown //IL_0d7c: Unknown result type (might be due to invalid IL or missing references) //IL_0d81: Unknown result type (might be due to invalid IL or missing references) //IL_0d8c: Unknown result type (might be due to invalid IL or missing references) //IL_0d97: Unknown result type (might be due to invalid IL or missing references) //IL_0da7: Expected O, but got Unknown //IL_0da2: Unknown result type (might be due to invalid IL or missing references) //IL_0dac: Expected O, but got Unknown //IL_0db2: Unknown result type (might be due to invalid IL or missing references) //IL_0db7: Unknown result type (might be due to invalid IL or missing references) //IL_0dc2: Unknown result type (might be due to invalid IL or missing references) //IL_0dcd: Unknown result type (might be due to invalid IL or missing references) //IL_0ddd: Expected O, but got Unknown //IL_0dd8: Unknown result type (might be due to invalid IL or missing references) //IL_0de2: Expected O, but got Unknown //IL_0de8: Unknown result type (might be due to invalid IL or missing references) //IL_0ded: Unknown result type (might be due to invalid IL or missing references) //IL_0df8: Unknown result type (might be due to invalid IL or missing references) //IL_0e03: Unknown result type (might be due to invalid IL or missing references) //IL_0e13: Expected O, but got Unknown //IL_0e0e: Unknown result type (might be due to invalid IL or missing references) //IL_0e18: Expected O, but got Unknown //IL_0e1e: Unknown result type (might be due to invalid IL or missing references) //IL_0e23: Unknown result type (might be due to invalid IL or missing references) //IL_0e2e: Unknown result type (might be due to invalid IL or missing references) //IL_0e39: Unknown result type (might be due to invalid IL or missing references) //IL_0e49: Expected O, but got Unknown //IL_0e44: Unknown result type (might be due to invalid IL or missing references) //IL_0e4e: Expected O, but got Unknown //IL_0e54: Unknown result type (might be due to invalid IL or missing references) //IL_0e59: Unknown result type (might be due to invalid IL or missing references) //IL_0e60: Unknown result type (might be due to invalid IL or missing references) //IL_0e6c: Expected O, but got Unknown //IL_0e67: Unknown result type (might be due to invalid IL or missing references) //IL_0e71: Expected O, but got Unknown //IL_0e77: Unknown result type (might be due to invalid IL or missing references) //IL_0e7c: Unknown result type (might be due to invalid IL or missing references) //IL_0e83: Unknown result type (might be due to invalid IL or missing references) //IL_0e8f: Expected O, but got Unknown //IL_0e8a: Unknown result type (might be due to invalid IL or missing references) //IL_0e94: Expected O, but got Unknown //IL_0e9a: Unknown result type (might be due to invalid IL or missing references) //IL_0e9f: Unknown result type (might be due to invalid IL or missing references) //IL_0ea6: Unknown result type (might be due to invalid IL or missing references) //IL_0eb2: Expected O, but got Unknown //IL_0ead: Unknown result type (might be due to invalid IL or missing references) //IL_0eb7: Expected O, but got Unknown //IL_0ebd: Unknown result type (might be due to invalid IL or missing references) //IL_0ec2: Unknown result type (might be due to invalid IL or missing references) //IL_0ecd: Unknown result type (might be due to invalid IL or missing references) //IL_0ed8: Unknown result type (might be due to invalid IL or missing references) //IL_0ee8: Expected O, but got Unknown //IL_0ee3: Unknown result type (might be due to invalid IL or missing references) //IL_0eed: Expected O, but got Unknown //IL_0ef3: Unknown result type (might be due to invalid IL or missing references) //IL_0ef8: Unknown result type (might be due to invalid IL or missing references) //IL_0f03: Unknown result type (might be due to invalid IL or missing references) //IL_0f0e: Unknown result type (might be due to invalid IL or missing references) //IL_0f1e: Expected O, but got Unknown //IL_0f19: Unknown result type (might be due to invalid IL or missing references) //IL_0f23: Expected O, but got Unknown //IL_0f29: Unknown result type (might be due to invalid IL or missing references) //IL_0f2e: Unknown result type (might be due to invalid IL or missing references) //IL_0f39: Unknown result type (might be due to invalid IL or missing references) //IL_0f44: Unknown result type (might be due to invalid IL or missing references) //IL_0f54: Expected O, but got Unknown //IL_0f4f: Unknown result type (might be due to invalid IL or missing references) //IL_0f59: Expected O, but got Unknown //IL_0f5f: Unknown result type (might be due to invalid IL or missing references) //IL_0f64: Unknown result type (might be due to invalid IL or missing references) //IL_0f6f: Unknown result type (might be due to invalid IL or missing references) //IL_0f7a: Unknown result type (might be due to invalid IL or missing references) //IL_0f8a: Expected O, but got Unknown //IL_0f85: Unknown result type (might be due to invalid IL or missing references) //IL_0f8f: Expected O, but got Unknown //IL_0f95: Unknown result type (might be due to invalid IL or missing references) //IL_0f9a: Unknown result type (might be due to invalid IL or missing references) //IL_0fa5: Unknown result type (might be due to invalid IL or missing references) //IL_0fb0: Unknown result type (might be due to invalid IL or missing references) //IL_0fc0: Expected O, but got Unknown //IL_0fbb: Unknown result type (might be due to invalid IL or missing references) //IL_0fc5: Expected O, but got Unknown //IL_0fcb: Unknown result type (might be due to invalid IL or missing references) //IL_0fd0: Unknown result type (might be due to invalid IL or missing references) //IL_0fd7: Unknown result type (might be due to invalid IL or missing references) //IL_0fe4: Expected O, but got Unknown //IL_0fdf: Unknown result type (might be due to invalid IL or missing references) //IL_0fe9: Expected O, but got Unknown //IL_0fef: Unknown result type (might be due to invalid IL or missing references) //IL_0ff4: Unknown result type (might be due to invalid IL or missing references) //IL_0ffb: Unknown result type (might be due to invalid IL or missing references) //IL_1008: Expected O, but got Unknown //IL_1003: Unknown result type (might be due to invalid IL or missing references) //IL_100d: Expected O, but got Unknown //IL_1013: Unknown result type (might be due to invalid IL or missing references) //IL_1018: Unknown result type (might be due to invalid IL or missing references) //IL_1023: Unknown result type (might be due to invalid IL or missing references) //IL_102e: Unknown result type (might be due to invalid IL or missing references) //IL_103e: Expected O, but got Unknown //IL_1039: Unknown result type (might be due to invalid IL or missing references) //IL_1043: Expected O, but got Unknown //IL_1049: Unknown result type (might be due to invalid IL or missing references) //IL_104e: Unknown result type (might be due to invalid IL or missing references) //IL_1055: Unknown result type (might be due to invalid IL or missing references) //IL_1062: Expected O, but got Unknown //IL_105d: Unknown result type (might be due to invalid IL or missing references) //IL_1067: Expected O, but got Unknown //IL_106d: Unknown result type (might be due to invalid IL or missing references) //IL_1072: Unknown result type (might be due to invalid IL or missing references) //IL_1079: Unknown result type (might be due to invalid IL or missing references) //IL_1086: Expected O, but got Unknown //IL_1081: Unknown result type (might be due to invalid IL or missing references) //IL_108b: Expected O, but got Unknown //IL_1091: Unknown result type (might be due to invalid IL or missing references) //IL_1096: Unknown result type (might be due to invalid IL or missing references) //IL_109d: Unknown result type (might be due to invalid IL or missing references) //IL_10aa: Expected O, but got Unknown //IL_10a5: Unknown result type (might be due to invalid IL or missing references) //IL_10af: Expected O, but got Unknown //IL_10b5: Unknown result type (might be due to invalid IL or missing references) //IL_10ba: Unknown result type (might be due to invalid IL or missing references) //IL_10c1: Unknown result type (might be due to invalid IL or missing references) //IL_10cd: Expected O, but got Unknown //IL_10c8: Unknown result type (might be due to invalid IL or missing references) //IL_10d2: Expected O, but got Unknown //IL_10d8: Unknown result type (might be due to invalid IL or missing references) //IL_10dd: Unknown result type (might be due to invalid IL or missing references) //IL_10e4: Unknown result type (might be due to invalid IL or missing references) //IL_10f1: Expected O, but got Unknown //IL_10ec: Unknown result type (might be due to invalid IL or missing references) //IL_10f6: Expected O, but got Unknown //IL_10fc: Unknown result type (might be due to invalid IL or missing references) //IL_1101: Unknown result type (might be due to invalid IL or missing references) //IL_110c: Unknown result type (might be due to invalid IL or missing references) //IL_1117: Unknown result type (might be due to invalid IL or missing references) //IL_1127: Expected O, but got Unknown //IL_1122: Unknown result type (might be due to invalid IL or missing references) //IL_112c: Expected O, but got Unknown //IL_1132: Unknown result type (might be due to invalid IL or missing references) //IL_1137: Unknown result type (might be due to invalid IL or missing references) //IL_1142: Unknown result type (might be due to invalid IL or missing references) //IL_114d: Unknown result type (might be due to invalid IL or missing references) //IL_115d: Expected O, but got Unknown //IL_1158: Unknown result type (might be due to invalid IL or missing references) //IL_1162: Expected O, but got Unknown //IL_1168: Unknown result type (might be due to invalid IL or missing references) //IL_116d: Unknown result type (might be due to invalid IL or missing references) //IL_1178: Unknown result type (might be due to invalid IL or missing references) //IL_1183: Unknown result type (might be due to invalid IL or missing references) //IL_1193: Expected O, but got Unknown //IL_118e: Unknown result type (might be due to invalid IL or missing references) //IL_1198: Expected O, but got Unknown //IL_119e: Unknown result type (might be due to invalid IL or missing references) //IL_11a3: Unknown result type (might be due to invalid IL or missing references) //IL_11ab: Unknown result type (might be due to invalid IL or missing references) //IL_11b8: Expected O, but got Unknown //IL_11b3: Unknown result type (might be due to invalid IL or missing references) //IL_11bd: Expected O, but got Unknown //IL_11c3: Unknown result type (might be due to invalid IL or missing references) //IL_11c8: Unknown result type (might be due to invalid IL or missing references) //IL_11d3: Unknown result type (might be due to invalid IL or missing references) //IL_11de: Unknown result type (might be due to invalid IL or missing references) //IL_11ee: Expected O, but got Unknown //IL_11e9: Unknown result type (might be due to invalid IL or missing references) //IL_11f3: Expected O, but got Unknown //IL_11f9: Unknown result type (might be due to invalid IL or missing references) //IL_11fe: Unknown result type (might be due to invalid IL or missing references) //IL_1209: Unknown result type (might be due to invalid IL or missing references) //IL_1214: Unknown result type (might be due to invalid IL or missing references) //IL_1224: Expected O, but got Unknown //IL_121f: Unknown result type (might be due to invalid IL or missing references) //IL_1229: Expected O, but got Unknown //IL_122f: Unknown result type (might be due to invalid IL or missing references) //IL_1234: Unknown result type (might be due to invalid IL or missing references) //IL_123f: Unknown result type (might be due to invalid IL or missing references) //IL_124a: Unknown result type (might be due to invalid IL or missing references) //IL_125a: Expected O, but got Unknown //IL_1255: Unknown result type (might be due to invalid IL or missing references) //IL_125f: Expected O, but got Unknown debuffResistance = config.Bind<bool>("General", "Freeze/Nullify Immune", false, "Toggle the debuff resistance for loop 1, will not turn off for loops 2 and up"); phase1BaseHPScaling = config.Bind<float>("Scaling First Loop", "P1 HP", 0f, "HP boost percentage for Phase 1 FIRST LOOP (5 stages)"); phase2BaseHPScaling = config.Bind<float>("Scaling First Loop", "P2 HP", 0f, "HP boost percentage for Phase 2 FIRST LOOP"); phase3BaseHPScaling = config.Bind<float>("Scaling First Loop", "P3 HP", 0f, "HP boost percentage for Phase 3 FIRST LOOP"); phase4BaseHPScaling = config.Bind<float>("Scaling First Loop", "P4 HP", 0f, "HP boost percentage for Phase 4 FIRST LOOP"); phase1BaseMobilityScaling = config.Bind<float>("Scaling First Loop", "P1 Mobility", 0f, "Mobility boost percentage for Phase 1 FIRST LOOP"); phase2BaseMobilityScaling = config.Bind<float>("Scaling First Loop", "P2 Mobility", 0f, "Mobility boost percentage for Phase 2 FIRST LOOP"); phase3BaseMobilityScaling = config.Bind<float>("Scaling First Loop", "P3 Mobility", 0f, "Mobility boost percentage for Phase 3 FIRST LOOP"); phase1LoopHPScaling = config.Bind<float>("Scaling Per Loop", "P1 Loop HP", 0.2f, "HP boost percentage for Phase 1 PER LOOP (every 5 stages)"); phase2LoopHPScaling = config.Bind<float>("Scaling Per Loop", "P2 Loop HP", 0.3f, "HP boost percentage for Phase 2 PER LOOP"); phase3LoopHPScaling = config.Bind<float>("Scaling Per Loop", "P3 Loop HP", 0.4f, "HP boost percentage for Phase 3 PER LOOP"); phase4LoopHPScaling = config.Bind<float>("Scaling Per Loop", "P4 Loop HP", 0.5f, "HP boost percentage for Phase 4 PER LOOP"); phase1LoopMobilityScaling = config.Bind<float>("Scaling Per Loop", "P1 Loop Mobility", 0.15f, "Mobility (movementspd, acceleration, turningspd) boost percentage for Phase 1 PER LOOP"); phase2LoopMobilityScaling = config.Bind<float>("Scaling Per Loop", "P2 Loop Mobility", 0.25f, "Mobility boost percentage for Phase 2 PER LOOP"); phase3LoopMobilityScaling = config.Bind<float>("Scaling Per Loop", "P3 Loop Mobility", 0.35f, "Mobility boost percentage for Phase 3 PER LOOP"); phase1PlayerHPScaling = config.Bind<float>("Player Scaling", "P1 HP Scaling", 0.0125f, "HP boost percentage for Phase 1 PER PLAYER"); phase2PlayerHPScaling = config.Bind<float>("Player Scaling", "P2 HP Scaling", 0.025f, "HP boost percentage for Phase 2 PER PLAYER"); phase3PlayerHPScaling = config.Bind<float>("Player Scaling", "P3 HP Scaling", 0.05f, "HP boost percentage for Phase 3 PER PLAYER"); phase4PlayerHPScaling = config.Bind<float>("Player Scaling", "P4 HP Scaling", 0.075f, "HP boost percentage for Phase 4 PER PLAYER"); phase1PlayerMobilityScaling = config.Bind<float>("Player Scaling", "P1 Mobility Scaling", 0.0125f, "Mobility boost percentage for Phase 1 PER PLAYER"); phase2PlayerMobilityScaling = config.Bind<float>("Player Scaling", "P2 Mobility Scaling", 0.025f, "Mobility boost percentage for Phase 2 PER PLAYER"); phase3PlayerMobilityScaling = config.Bind<float>("Player Scaling", "P3 Mobility Scaling", 0.05f, "Mobility boost percentage for Phase 3 PER PLAYER"); basehealth = config.Bind<float>("Stats", "Base Health", 1100f, "Vanilla: 1000"); levelhealth = config.Bind<float>("Stats", "Level Health", 350f, "Health gained per level. Vanilla: 300"); basedamage = config.Bind<float>("Stats", "Base Damage", 15f, "Vanilla: 16"); leveldamage = config.Bind<float>("Stats", "Level Damage", 2.75f, "Damage gained per level. Vanilla: 3.2"); basearmor = config.Bind<float>("Stats", "Base Armor", 30f, "Vanilla: 20"); baseattackspeed = config.Bind<float>("Stats", "Base Attack Speed", 1.25f, "Vanilla: 1"); basespeed = config.Bind<float>("Movement", "Base Move Speed", 16f, "Vanilla: 15"); mass = config.Bind<float>("Movement", "Mass", 5000f, "Recommended to increase if you increase his movement speed. Vanilla: 900"); turningspeed = config.Bind<float>("Movement", "Turn Speed", 540f, "Vanilla: 270"); jumpingpower = config.Bind<float>("Movement", "Moon Shoes", 75f, "How high Mithrix jumps. Vanilla: 25"); acceleration = config.Bind<float>("Movement", "Acceleration", 350f, "Vanilla: 45"); aircontrol = config.Bind<float>("Movement", "Air Control", 1.5f, "Vanilla: 0.25"); PrimStocks = config.Bind<int>("Skills", "Primary Stocks", 1, "Max Stocks for Mithrix's Weapon Slam. Vanilla: 1"); SecStocks = config.Bind<int>("Skills", "Secondary Stocks", 1, "Max Stocks for Mithrix's Dash Attack. Vanilla: 1"); UtilStocks = config.Bind<int>("Skills", "Util Stocks", 2, "Max Stocks for Mithrix's Dash. Vanilla: 2"); PrimCD = config.Bind<float>("Skills", "Primary Cooldown", 4f, "Cooldown for Mithrix's Weapon Slam. Vanilla: 4"); SecCD = config.Bind<float>("Skills", "Secondary Cooldown", 4.5f, "Cooldown for Mithrix's Dash Attack. Vanilla: 5"); UtilCD = config.Bind<float>("Skills", "Util Cooldown", 2.5f, "Cooldown for Mithrix's Dash. Vanilla: 3"); SpecialCD = config.Bind<float>("Skills", "Special Cooldown", 30f, "Cooldown for Mithrix's Jump Attack. Vanilla: 30"); CrushingLeap = config.Bind<float>("New Skills", "Crushing Leap", 2f, "How long Mithrix stays in the air during the crushing leap. Vanilla: N/A"); P2SuperShardInterval = config.Bind<float>("New Skills", "P2 Ult Super Shards", 0.6f, "Interval at which super shards are fired in P2 Ult in seconds. Vanilla: N/A"); SuperShardWeight = config.Bind<int>("New Skills", "Super Shards", 6, "How many shards are in 1 super shard. Vanilla: N/A"); P2UltCount = config.Bind<int>("New Skills", "P2 Ult Bursts", 4, "Total times the shrapnel waves fire in phase 2 ultimate. Vanilla: N/A"); P2UltOrbCount = config.Bind<int>("New Skills", "P2 Ult Waves", 8, "Total shrapnel waves and golem projectiles fired in a circle in phase 2 ultimate. Vanilla: N/A"); P2UltDuration = config.Bind<float>("New Skills", "P2 Ult Duration", 6f, "How long phase 2 ultimate lasts. Vanilla: N/A"); SuperShardCount = config.Bind<int>("New Skills", "Super Shard Stocks", 3, "How many super shards Mithrix can fire before CD. Vanilla: N/A"); SuperShardCD = config.Bind<float>("New Skills", "Super Shard CD", 5f, "How long it takes for Mithrix to fire super shards again. Vanilla: N/A"); SlamOrbProjectileCount = config.Bind<int>("Skill Mods", "Orb Projectile Count", 6, "Orbs fired by weapon slam in a circle. Vanilla: N/A"); SlamShardCount = config.Bind<int>("Skill Mods", "Slam Shard Count", 4, "Super Shards fired by weapon slam in a circle. Vanilla: N/A"); DashProjectileCount = config.Bind<int>("Skill Mods", "Dash Projectile Count", 3, "Projectiles (Golem, Exploder, Shards) fired by dash in a cone. Vanilla: N/A"); LunarShardAdd = config.Bind<int>("Skill Mods", "Shard Add Count", 5, "Bonus shards added to each shot of lunar shards. Vanilla: N/A"); UltimateWaves = config.Bind<int>("Skill Mods", "P3 Ult Lines", 12, "Total lines in ultimate per burst. Vanilla: 4"); UltimateCount = config.Bind<int>("Skill Mods", "P3 Ult Bursts", 8, "Total times the ultimate fires. Vanilla: 4"); UltimateDuration = config.Bind<float>("Skill Mods", "P3 Ult Duration", 8f, "How long ultimate lasts. Vanilla: 8"); JumpRecast = config.Bind<float>("Skill Mods", "Recast Chance", 0f, "Chance Mithrix has to recast his jump skill. USE WITH CAUTION. Vanilla: 0"); JumpPause = config.Bind<float>("Skill Mods", "Jump Delay", 0.3f, "How long Mithrix spends in the air when using his jump special. Vanilla: 3"); JumpWaveCount = config.Bind<int>("Skill Mods", "Jump Wave Count", 16, "Shockwave count when Mithrix lands after a jump. Vanilla: 12"); ShardHoming = config.Bind<float>("Skill Mods", "Shard Homing", 25f, "How strongly lunar shards home in to targets. Vanilla: 20"); ShardRange = config.Bind<float>("Skill Mods", "Shard Range", 100f, "Range (distance) in which shards look for targets. Vanilla: 80"); ShardCone = config.Bind<float>("Skill Mods", "Shard Cone", 120f, "Cone (Angle) in which shards look for targets. Vanilla: 90"); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(debuffResistance)); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase1BaseHPScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.025f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase2BaseHPScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.025f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase3BaseHPScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.025f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase4BaseHPScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.025f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase1BaseMobilityScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.025f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase2BaseMobilityScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.025f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase3BaseMobilityScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.025f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase1LoopHPScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.025f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase2LoopHPScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.025f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase3LoopHPScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.025f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase4LoopHPScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.025f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase1LoopMobilityScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.05f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase2LoopMobilityScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.05f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(phase3LoopMobilityScaling, new StepSliderConfig { min = 0f, max = 1f, increment = 0.05f })); ModSettingsManager.AddOption((Bas