Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of MercenaryTweaks v1.3.1
MercenaryTweaks.dll
Decompiled a year agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using EntityStates; using EntityStates.Merc; using EntityStates.Merc.Weapon; using Microsoft.CodeAnalysis; using On.EntityStates.Merc; using On.EntityStates.Merc.Weapon; using RoR2; using UnityEngine; 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.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("MercenaryTweaks")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+df95ca2c79860f1559526a3e7920cc92c4bd1d44")] [assembly: AssemblyProduct("MercenaryTweaks")] [assembly: AssemblyTitle("MercenaryTweaks")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace MercenaryTweaks { [BepInPlugin("codedly.MercenaryTweaks", "MercenaryTweaks", "1.3.1")] public class MercenaryTweaks : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_FixedUpdate <>9__44_0; public static hook_OnEnter <>9__44_4; public static hook_PlayAnim <>9__44_5; public static hook_PlayAnim <>9__44_6; public static hook_PlayAnim <>9__44_7; public static hook_OnEnter <>9__44_8; internal void <Awake>b__44_0(orig_FixedUpdate orig, EvisDash self) { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: 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_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Expected O, but got Unknown self.stopwatch += Time.fixedDeltaTime; if (self.stopwatch > EvisDash.dashPrepDuration && !self.isDashing) { self.isDashing = true; self.dashVector = ((EntityState)self).inputBank.aimDirection; self.CreateBlinkEffect(Util.GetCorePosition(((EntityState)self).gameObject)); ((EntityState)self).PlayCrossfade("FullBody, Override", "EvisLoop", 0.1f); if (Object.op_Implicit((Object)(object)self.modelTransform)) { TemporaryOverlayInstance val = TemporaryOverlayManager.AddOverlay(((Component)self.modelTransform).gameObject); val.duration = 0.6f; val.animateShaderAlpha = true; val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val.destroyComponentOnEnd = true; val.originalMaterial = Resources.Load<Material>("Materials/matHuntressFlashBright"); val.AddToCharacterModel(((Component)self.modelTransform).GetComponent<CharacterModel>()); TemporaryOverlayInstance val2 = TemporaryOverlayManager.AddOverlay(((Component)self.modelTransform).gameObject); val2.duration = 0.7f; val2.animateShaderAlpha = true; val2.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val2.destroyComponentOnEnd = true; val2.originalMaterial = Resources.Load<Material>("Materials/matHuntressFlashExpanded"); val2.AddToCharacterModel(((Component)self.modelTransform).GetComponent<CharacterModel>()); } } bool flag = self.stopwatch >= EvisDash.dashDuration + EvisDash.dashPrepDuration; if (self.isDashing) { if (Object.op_Implicit((Object)(object)((EntityState)self).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)self).characterDirection)) { CharacterMotor characterMotor = ((EntityState)self).characterMotor; characterMotor.rootMotion += self.dashVector * (((BaseState)self).moveSpeedStat * EvisDash.speedCoefficient * Time.fixedDeltaTime); } if (((EntityState)self).isAuthority) { Collider[] array = Physics.OverlapSphere(((EntityState)self).transform.position, ((EntityState)self).characterBody.radius + EvisDash.overlapSphereRadius * (flag ? EvisDash.lollypopFactor : 1f), LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask)); for (int i = 0; i < array.Length; i++) { HurtBox component = ((Component)array[i]).GetComponent<HurtBox>(); if (Object.op_Implicit((Object)(object)component) && (Object)(object)component.healthComponent != (Object)(object)((EntityState)self).healthComponent && component.teamIndex != ((EntityState)self).teamComponent.teamIndex) { Evis nextState = new Evis(); ((EntityState)self).outer.SetNextState((EntityState)(object)nextState); return; } } } } if (flag && ((EntityState)self).isAuthority) { ((EntityState)self).outer.SetNextStateToMain(); } } internal void <Awake>b__44_4(orig_OnEnter orig, GroundLight2 self) { if (self.step == 2) { ((BasicMeleeAttack)self).ignoreAttackSpeed = true; } orig.Invoke(self); if (((BasicMeleeAttack)self).ignoreAttackSpeed && self.isComboFinisher) { self.durationBeforeInterruptable = GroundLight2.comboFinisherBaseDurationBeforeInterruptable; } } internal void <Awake>b__44_5(orig_PlayAnim orig, Uppercut self) { self.duration = Uppercut.baseDuration; orig.Invoke(self); } internal void <Awake>b__44_6(orig_PlayAnim orig, WhirlwindAir self) { ((WhirlwindBase)self).duration = ((WhirlwindBase)self).baseDuration; orig.Invoke(self); } internal void <Awake>b__44_7(orig_PlayAnim orig, WhirlwindGround self) { ((WhirlwindBase)self).duration = ((WhirlwindBase)self).baseDuration; orig.Invoke(self); } internal void <Awake>b__44_8(orig_OnEnter orig, Evis self) { Evis.damageCoefficient = EvisDamage.Value; orig.Invoke(self); } } public const string PluginGUID = "codedly.MercenaryTweaks"; public const string PluginAuthor = "codedly"; public const string PluginName = "MercenaryTweaks"; public const string PluginVersion = "1.3.1"; public HurtBox target; public static ConfigEntry<bool> M1AttackSpeedFix { get; set; } public static ConfigEntry<bool> M2AttackSpeedIgnore { get; set; } public static ConfigEntry<bool> FullJumpReset { get; set; } public static ConfigEntry<bool> ExtraJumpOnKill { get; set; } public static ConfigEntry<int> JumpAmount { get; set; } public static ConfigEntry<bool> SingleTargetEvis { get; set; } public static ConfigEntry<bool> EvisMassacre { get; set; } public static ConfigEntry<float> EvisDamage { get; set; } public static ConfigEntry<bool> EvisSlayer { get; set; } public void FullJumpResetMethod(DamageReport report) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)report.attackerBody) && report.attackerBody.bodyIndex == BodyCatalog.FindBodyIndex("MercBody")) { report.attackerBody.characterMotor.jumpCount = 0; } } public void ExtraJumpOnKillMethod(DamageReport report) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)report.attackerBody) && report.attackerBody.bodyIndex == BodyCatalog.FindBodyIndex("MercBody") && report.attackerBody.characterMotor.jumpCount > 0) { CharacterMotor characterMotor = report.attackerBody.characterMotor; characterMotor.jumpCount -= JumpAmount.Value; } } public void MassacreCode(DamageReport rep) { //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Expected O, but got Unknown CharacterBody attackerBody = rep.attackerBody; EntityState val; if ((Object)(object)attackerBody == (Object)null) { val = null; } else { EntityStateMachine component = ((Component)attackerBody).GetComponent<EntityStateMachine>(); val = (((Object)(object)component != (Object)null) ? component.state : null); } EntityState val2 = val; Evis val3 = (Evis)(object)((val2 is Evis) ? val2 : null); if (val3 != null && Object.op_Implicit((Object)(object)rep.attackerBody) && Vector3.Distance(rep.attackerBody.transform.position, ((Component)rep.victim).transform.position) < Evis.maxRadius) { Evis nextState = new Evis(); ((Component)attackerBody).GetComponent<EntityStateMachine>().SetNextState((EntityState)(object)nextState); } } public void Awake() { //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Expected O, but got Unknown //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Expected O, but got Unknown //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Expected O, but got Unknown //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Expected O, but got Unknown //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_01cb: Expected O, but got Unknown //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Expected O, but got Unknown //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Expected O, but got Unknown //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Expected O, but got Unknown //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Expected O, but got Unknown M1AttackSpeedFix = ((BaseUnityPlugin)this).Config.Bind<bool>("Merc tweaks", "M1 attack speed fix", true, "When enabled, gives Merc's 3rd m1 a fixed duration, allowing for consistent m1 extends, breaks at 18.0 attack speed, not sure why"); M2AttackSpeedIgnore = ((BaseUnityPlugin)this).Config.Bind<bool>("Merc tweaks", "M2 Attack Speed Ignore", true, "When enabled, Whirlwind and Rising Thunder will ignore attack speed, making their utility consistent throughout the run"); ExtraJumpOnKill = ((BaseUnityPlugin)this).Config.Bind<bool>("Merc tweaks", "Extra Jump On Kill", true, "When enabled, killing an enemy will give the amount of jumps specified in Jump Amount"); JumpAmount = ((BaseUnityPlugin)this).Config.Bind<int>("Merc tweaks", "Jump Amount", 1, "Amount of jumps given by Extra Jump On Kill, note: numbers higher than 1 can give you more jumps than you started with"); FullJumpReset = ((BaseUnityPlugin)this).Config.Bind<bool>("Merc tweaks", "Reset ALL jumps on kill", false, "When enabled, killing an enemy resets all of your jumps, including ground jump, very cursed, pretty funny"); SingleTargetEvis = ((BaseUnityPlugin)this).Config.Bind<bool>("Merc tweaks", "Single target Eviscerate", true, "When enabled, eviscerate will only attack one enemy at a time, instead of spreading its hits across all nearby targets, targets the lowest health enemy first"); EvisMassacre = ((BaseUnityPlugin)this).Config.Bind<bool>("Merc tweaks", "Eviscerate Masacre upgrade", true, "When enabled, Eviscerate will work like its upgrade in ror1, resetting its duration and switching targets upon killing an enemy"); EvisDamage = ((BaseUnityPlugin)this).Config.Bind<float>("Merc tweaks", "Eviscerate Damage Coefficient", 1.1f, "This number represents how much of your base damage each hit deals, i.e, 1.1 = 110%, 2.0 = 200%, etc"); EvisSlayer = ((BaseUnityPlugin)this).Config.Bind<bool>("Merc tweaks", "Eviscerate Slayer Upgrade", true, "When enabled, Eviscerate will gain slayer, making it deal more damage to low health targets"); object obj = <>c.<>9__44_0; if (obj == null) { hook_FixedUpdate val = delegate(orig_FixedUpdate orig, EvisDash self) { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: 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_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Expected O, but got Unknown self.stopwatch += Time.fixedDeltaTime; if (self.stopwatch > EvisDash.dashPrepDuration && !self.isDashing) { self.isDashing = true; self.dashVector = ((EntityState)self).inputBank.aimDirection; self.CreateBlinkEffect(Util.GetCorePosition(((EntityState)self).gameObject)); ((EntityState)self).PlayCrossfade("FullBody, Override", "EvisLoop", 0.1f); if (Object.op_Implicit((Object)(object)self.modelTransform)) { TemporaryOverlayInstance val16 = TemporaryOverlayManager.AddOverlay(((Component)self.modelTransform).gameObject); val16.duration = 0.6f; val16.animateShaderAlpha = true; val16.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val16.destroyComponentOnEnd = true; val16.originalMaterial = Resources.Load<Material>("Materials/matHuntressFlashBright"); val16.AddToCharacterModel(((Component)self.modelTransform).GetComponent<CharacterModel>()); TemporaryOverlayInstance val17 = TemporaryOverlayManager.AddOverlay(((Component)self.modelTransform).gameObject); val17.duration = 0.7f; val17.animateShaderAlpha = true; val17.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val17.destroyComponentOnEnd = true; val17.originalMaterial = Resources.Load<Material>("Materials/matHuntressFlashExpanded"); val17.AddToCharacterModel(((Component)self.modelTransform).GetComponent<CharacterModel>()); } } bool flag = self.stopwatch >= EvisDash.dashDuration + EvisDash.dashPrepDuration; if (self.isDashing) { if (Object.op_Implicit((Object)(object)((EntityState)self).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)self).characterDirection)) { CharacterMotor characterMotor = ((EntityState)self).characterMotor; characterMotor.rootMotion += self.dashVector * (((BaseState)self).moveSpeedStat * EvisDash.speedCoefficient * Time.fixedDeltaTime); } if (((EntityState)self).isAuthority) { Collider[] array = Physics.OverlapSphere(((EntityState)self).transform.position, ((EntityState)self).characterBody.radius + EvisDash.overlapSphereRadius * (flag ? EvisDash.lollypopFactor : 1f), LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask)); for (int j = 0; j < array.Length; j++) { HurtBox component = ((Component)array[j]).GetComponent<HurtBox>(); if (Object.op_Implicit((Object)(object)component) && (Object)(object)component.healthComponent != (Object)(object)((EntityState)self).healthComponent && component.teamIndex != ((EntityState)self).teamComponent.teamIndex) { Evis nextState = new Evis(); ((EntityState)self).outer.SetNextState((EntityState)(object)nextState); return; } } } } if (flag && ((EntityState)self).isAuthority) { ((EntityState)self).outer.SetNextStateToMain(); } }; <>c.<>9__44_0 = val; obj = (object)val; } EvisDash.FixedUpdate += (hook_FixedUpdate)obj; if (SingleTargetEvis.Value) { Evis.OnEnter += (hook_OnEnter)delegate(orig_OnEnter orig, Evis self) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Expected O, but got Unknown //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_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_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); BullseyeSearch val15 = new BullseyeSearch(); val15.searchOrigin = ((EntityState)self).transform.position; val15.searchDirection = Random.onUnitSphere; val15.maxDistanceFilter = Evis.maxRadius; val15.teamMaskFilter = TeamMask.GetUnprotectedTeams(TeamComponent.GetObjectTeam(((EntityState)self).gameObject)); val15.sortMode = (SortMode)1; val15.RefreshCandidates(); val15.FilterOutGameObject(((EntityState)self).gameObject); IEnumerable<HurtBox> results = val15.GetResults(); target = results.FirstOrDefault(); for (int i = 0; i < results.Count(); i++) { float health = results.ElementAt(i).healthComponent.health; if (health < target.healthComponent.health) { target = results.ElementAt(i); } } }; Evis.FixedUpdate += (hook_FixedUpdate)delegate(orig_FixedUpdate orig, Evis self) { //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_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_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_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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Expected O, but got Unknown //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) self.stopwatch += Time.fixedDeltaTime; self.attackStopwatch += Time.fixedDeltaTime; float num2 = 1f / Evis.damageFrequency / ((BaseState)self).attackSpeedStat; if (self.attackStopwatch >= num2) { self.attackStopwatch -= num2; HurtBox val11 = target; if (Object.op_Implicit((Object)(object)val11)) { Util.PlayAttackSpeedSound(Evis.slashSoundString, ((Component)this).gameObject, Evis.slashPitch); Util.PlaySound(Evis.dashSoundString, ((Component)this).gameObject); Util.PlaySound(Evis.impactSoundString, ((Component)this).gameObject); HurtBoxGroup hurtBoxGroup2 = val11.hurtBoxGroup; HurtBox val12 = hurtBoxGroup2.hurtBoxes[Random.Range(0, hurtBoxGroup2.hurtBoxes.Length - 1)]; if (Object.op_Implicit((Object)(object)val12)) { Vector3 position2 = ((Component)val12).transform.position; Vector2 insideUnitCircle2 = Random.insideUnitCircle; Vector2 normalized2 = ((Vector2)(ref insideUnitCircle2)).normalized; Vector3 val13 = default(Vector3); ((Vector3)(ref val13))..ctor(normalized2.x, 0f, normalized2.y); EffectManager.SimpleImpactEffect(Evis.hitEffectPrefab, position2, val13, false); Transform transform2 = ((Component)val11.hurtBoxGroup).transform; if (NetworkServer.active) { DamageInfo val14 = new DamageInfo(); val14.damage = Evis.damageCoefficient * ((BaseState)self).damageStat; val14.attacker = ((EntityState)self).gameObject; val14.procCoefficient = Evis.procCoefficient; val14.position = ((Component)val12).transform.position; val14.crit = self.crit; if (EvisSlayer.Value) { val14.damageType.damageType = (DamageType)524288; } val12.healthComponent.TakeDamage(val14); GlobalEventManager.instance.OnHitEnemy(val14, ((Component)val12.healthComponent).gameObject); GlobalEventManager.instance.OnHitAll(val14, ((Component)val12.healthComponent).gameObject); } } } else if (((EntityState)self).isAuthority && self.stopwatch > Evis.minimumDuration) { ((EntityState)self).outer.SetNextStateToMain(); } } if (Object.op_Implicit((Object)(object)((EntityState)self).characterMotor)) { ((EntityState)self).characterMotor.velocity = Vector3.zero; } if (self.stopwatch >= Evis.duration && ((EntityState)self).isAuthority) { ((EntityState)self).outer.SetNextStateToMain(); } }; } else { Evis.FixedUpdate += (hook_FixedUpdate)delegate(orig_FixedUpdate orig, Evis self) { //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_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_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_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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Expected O, but got Unknown //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) self.stopwatch += Time.fixedDeltaTime; self.attackStopwatch += Time.fixedDeltaTime; float num = 1f / Evis.damageFrequency / ((BaseState)self).attackSpeedStat; if (self.attackStopwatch >= num) { self.attackStopwatch -= num; HurtBox val7 = self.SearchForTarget(); if (Object.op_Implicit((Object)(object)val7)) { Util.PlayAttackSpeedSound(Evis.slashSoundString, ((Component)this).gameObject, Evis.slashPitch); Util.PlaySound(Evis.dashSoundString, ((Component)this).gameObject); Util.PlaySound(Evis.impactSoundString, ((Component)this).gameObject); HurtBoxGroup hurtBoxGroup = val7.hurtBoxGroup; HurtBox val8 = hurtBoxGroup.hurtBoxes[Random.Range(0, hurtBoxGroup.hurtBoxes.Length - 1)]; if (Object.op_Implicit((Object)(object)val8)) { Vector3 position = ((Component)val8).transform.position; Vector2 insideUnitCircle = Random.insideUnitCircle; Vector2 normalized = ((Vector2)(ref insideUnitCircle)).normalized; Vector3 val9 = default(Vector3); ((Vector3)(ref val9))..ctor(normalized.x, 0f, normalized.y); EffectManager.SimpleImpactEffect(Evis.hitEffectPrefab, position, val9, false); Transform transform = ((Component)val7.hurtBoxGroup).transform; if (NetworkServer.active) { DamageInfo val10 = new DamageInfo(); val10.damage = Evis.damageCoefficient * ((BaseState)self).damageStat; val10.attacker = ((Component)this).gameObject; val10.procCoefficient = Evis.procCoefficient; val10.position = ((Component)val8).transform.position; val10.crit = self.crit; if (EvisSlayer.Value) { val10.damageType.damageType = (DamageType)524288; } val8.healthComponent.TakeDamage(val10); GlobalEventManager.instance.OnHitEnemy(val10, ((Component)val8.healthComponent).gameObject); GlobalEventManager.instance.OnHitAll(val10, ((Component)val8.healthComponent).gameObject); } } } else if (((EntityState)self).isAuthority && self.stopwatch > Evis.minimumDuration) { ((EntityState)self).outer.SetNextStateToMain(); } } if (Object.op_Implicit((Object)(object)((EntityState)self).characterMotor)) { ((EntityState)self).characterMotor.velocity = Vector3.zero; } if (self.stopwatch >= Evis.duration && ((EntityState)self).isAuthority) { ((EntityState)self).outer.SetNextStateToMain(); } }; } if (M1AttackSpeedFix.Value) { object obj2 = <>c.<>9__44_4; if (obj2 == null) { hook_OnEnter val2 = delegate(orig_OnEnter orig, GroundLight2 self) { if (self.step == 2) { ((BasicMeleeAttack)self).ignoreAttackSpeed = true; } orig.Invoke(self); if (((BasicMeleeAttack)self).ignoreAttackSpeed && self.isComboFinisher) { self.durationBeforeInterruptable = GroundLight2.comboFinisherBaseDurationBeforeInterruptable; } }; <>c.<>9__44_4 = val2; obj2 = (object)val2; } GroundLight2.OnEnter += (hook_OnEnter)obj2; } if (M2AttackSpeedIgnore.Value) { object obj3 = <>c.<>9__44_5; if (obj3 == null) { hook_PlayAnim val3 = delegate(orig_PlayAnim orig, Uppercut self) { self.duration = Uppercut.baseDuration; orig.Invoke(self); }; <>c.<>9__44_5 = val3; obj3 = (object)val3; } Uppercut.PlayAnim += (hook_PlayAnim)obj3; object obj4 = <>c.<>9__44_6; if (obj4 == null) { hook_PlayAnim val4 = delegate(orig_PlayAnim orig, WhirlwindAir self) { ((WhirlwindBase)self).duration = ((WhirlwindBase)self).baseDuration; orig.Invoke(self); }; <>c.<>9__44_6 = val4; obj4 = (object)val4; } WhirlwindAir.PlayAnim += (hook_PlayAnim)obj4; object obj5 = <>c.<>9__44_7; if (obj5 == null) { hook_PlayAnim val5 = delegate(orig_PlayAnim orig, WhirlwindGround self) { ((WhirlwindBase)self).duration = ((WhirlwindBase)self).baseDuration; orig.Invoke(self); }; <>c.<>9__44_7 = val5; obj5 = (object)val5; } WhirlwindGround.PlayAnim += (hook_PlayAnim)obj5; } if (FullJumpReset.Value) { GlobalEventManager.onCharacterDeathGlobal += FullJumpResetMethod; } if (ExtraJumpOnKill.Value) { GlobalEventManager.onCharacterDeathGlobal += ExtraJumpOnKillMethod; } if (EvisMassacre.Value) { GlobalEventManager.onCharacterDeathGlobal += MassacreCode; } object obj6 = <>c.<>9__44_8; if (obj6 == null) { hook_OnEnter val6 = delegate(orig_OnEnter orig, Evis self) { Evis.damageCoefficient = EvisDamage.Value; orig.Invoke(self); }; <>c.<>9__44_8 = val6; obj6 = (object)val6; } Evis.OnEnter += (hook_OnEnter)obj6; } } }