Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of MercenaryTweaks v1.3.1
MercenaryTweaks.dll
Decompiled 10 months 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; } } }