Decompiled source of SeekingItemReworks v1.3.1
SeekingItemReworks.dll
Decompiled 2 days ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using EntityStates; using HG; using IL.RoR2; using IL.RoR2.Items; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using On.RoR2; using R2API; using RoR2; using RoR2.Items; using SeekerItems; using SeekingItemReworks; 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.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("SeekingItemReworks")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+9ad22ad452b378e0bb596307aa7fff158211ddfd")] [assembly: AssemblyProduct("SeekingItemReworks")] [assembly: AssemblyTitle("SeekingItemReworks")] [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 SeekingItemReworks { public static class ColorCode { public enum Color { cStack, cIsDamage, cIsHealth, cIsUtility, cIsHealing } public static string Style(this string self, Color style) { return "<style=" + style.ToString() + ">" + self + "</style>"; } } } namespace SeekerItems { public class LanternCountBuff { public static BuffDef LanternCounter; private static readonly Sprite spriteIcon = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/DLC2/Items/LowerHealthHigherDamage/texBuffLowerHealthHigherDamageIcon.png").WaitForCompletion(); public LanternCountBuff() { LanternCounter = ScriptableObject.CreateInstance<BuffDef>(); ((Object)LanternCounter).name = "AllyLanternCount"; LanternCounter.canStack = true; LanternCounter.isCooldown = false; LanternCounter.isDebuff = false; LanternCounter.ignoreGrowthNectar = false; LanternCounter.iconSprite = spriteIcon; ((Object)LanternCounter).name = ((Object)LanternCounter).name; ContentAddition.AddBuffDef(LanternCounter); } } internal class AntlerShield : ItemTemplate { public static string StaticName = "Antler Shield"; public static ConfigEntry<int> Rework; public static ConfigEntry<float> Armor_Percent_Base; public static ConfigEntry<float> Armor_Percent_Stack; public static ConfigEntry<float> Movement_Base; public static ConfigEntry<float> Movement_Stack; public AntlerShield(int descType) { ItemInternal = "NEGATEATTACK"; if (descType == 1) { ItemInfo = "Gain armor from movement speed, and increase movement speed."; ItemDesc = string.Format("Increase " + "armor ".Style(ColorCode.Color.cIsHealing) + "by " + "{0}% ".Style(ColorCode.Color.cIsHealing) + "(+{1}% per stack) ".Style(ColorCode.Color.cStack) + "of " + "current movement speed".Style(ColorCode.Color.cIsUtility) + ". Increase " + "movement speed ".Style(ColorCode.Color.cIsUtility) + "by " + "{2}% ".Style(ColorCode.Color.cIsUtility) + "(+{3}% per stack)".Style(ColorCode.Color.cStack) + ".", Math.Round(Armor_Percent_Base.Value, ItemTemplate.roundVal), Math.Round(Armor_Percent_Stack.Value, ItemTemplate.roundVal), Math.Round(Movement_Base.Value, ItemTemplate.roundVal), Math.Round(Movement_Stack.Value, ItemTemplate.roundVal)); } } } internal class BolsteringLantern : ItemTemplate { public static string StaticName = "Bolstering Lantern"; public static ConfigEntry<int> Rework; public static ConfigEntry<int> LowHealth; public static ConfigEntry<int> HighHealth; public static ConfigEntry<float> Damage_Base; public static ConfigEntry<float> Damage_Stack; public static ConfigEntry<float> Chance_Base; public static ConfigEntry<float> Chance_Stack; public BolsteringLantern(int descType) { ItemInternal = "LOWERHEALTHHIGHERDAMAGE"; switch (descType) { case 1: ItemInfo = $"Ignite enemies at low health until health is restored {HighHealth.Value}%."; ItemDesc = string.Format("Falling below " + "{0}% health".Style(ColorCode.Color.cIsHealth) + " grants a buff that " + "ignites ".Style(ColorCode.Color.cIsDamage) + "enemies for " + "{1}% ".Style(ColorCode.Color.cIsDamage) + "(+{2}% per stack) ".Style(ColorCode.Color.cStack) + "base damage on hit, until " + "health ".Style(ColorCode.Color.cIsHealing) + "is restored to " + "{3}%".Style(ColorCode.Color.cIsHealing) + ".", LowHealth.Value, Math.Round(Damage_Base.Value, ItemTemplate.roundVal), Math.Round(Damage_Stack.Value, ItemTemplate.roundVal), HighHealth.Value); break; case 2: ItemInfo = "Chance on hit to ignite. Inherited by allies."; ItemDesc = string.Format("{0}% ".Style(ColorCode.Color.cIsDamage) + "(+{1}% per stack) ".Style(ColorCode.Color.cStack) + "chance on hit to " + "ignite ".Style(ColorCode.Color.cIsDamage) + "enemies for " + "{2}% ".Style(ColorCode.Color.cIsDamage) + "(+{3}% per stack) ".Style(ColorCode.Color.cStack) + "base damage. This item is " + "inherited by allies ".Style(ColorCode.Color.cIsUtility) + "and is boosted with " + "Ignition Tank".Style(ColorCode.Color.cIsUtility) + ".", Math.Round(Chance_Base.Value, ItemTemplate.roundVal), Math.Round(Chance_Stack.Value, ItemTemplate.roundVal), Math.Round(Damage_Base.Value, ItemTemplate.roundVal), Math.Round(Damage_Stack.Value, ItemTemplate.roundVal)); break; } } } internal class ChronicExpansion : ItemTemplate { public static string StaticName = "Chronic Expansion"; public static ConfigEntry<int> Rework; public static ConfigEntry<float> Damage_Base; public static ConfigEntry<float> Damage_Stack; public ChronicExpansion(int descType) { ItemInternal = "INCREASEDAMAGEONMULTIKILL"; if (descType == 1) { ItemInfo = "Gain stacking damage after killing 5 enemies while in combat."; ItemDesc = string.Format("Killing 5 enemies ".Style(ColorCode.Color.cIsDamage) + "in combat buffs damage by " + "{0}% ".Style(ColorCode.Color.cIsDamage) + "(+{1}% per stack) ".Style(ColorCode.Color.cStack) + "temporarily each time, until leaving combat.", Math.Round(Damage_Base.Value, ItemTemplate.roundVal), Math.Round(Damage_Stack.Value, ItemTemplate.roundVal)); } } } internal class KnockbackFin : ItemTemplate { public static string StaticName = "Knockback Fin"; public static ConfigEntry<int> Rework; public static ConfigEntry<bool> IsHyperbolic; public static ConfigEntry<float> Chance_Base; public static ConfigEntry<float> Chance_Stack; public static ConfigEntry<float> Damage_Base; public static ConfigEntry<float> Damage_Stack; public KnockbackFin(int descType) { ItemInternal = "KNOCKBACKHITENEMIES"; switch (descType) { case 1: ItemInfo = "Chance on hit to knock enemies into the air.\nDeal bonus damage to airborne enemies."; ItemDesc = string.Format("{0}% ".Style(ColorCode.Color.cIsUtility) + "(+{1}% per stack) ".Style(ColorCode.Color.cStack) + "chance on hit to " + "knock up enemies".Style(ColorCode.Color.cIsUtility) + ". Deal " + "+{2}% ".Style(ColorCode.Color.cIsDamage) + "(+{3}% per stack) ".Style(ColorCode.Color.cStack) + "damage to " + "airborne ".Style(ColorCode.Color.cIsUtility) + "enemies.", Math.Round(Chance_Base.Value, ItemTemplate.roundVal), Math.Round(Chance_Stack.Value, ItemTemplate.roundVal), Math.Round(Damage_Base.Value, ItemTemplate.roundVal), Math.Round(Damage_Stack.Value, ItemTemplate.roundVal)); break; case -1: ItemInfo = "Chance on hit to knock up enemies.\nDeal bonus damage to airborne enemies."; ItemDesc = string.Format("{0}% ".Style(ColorCode.Color.cIsUtility) + "(+{1}% per stack) ".Style(ColorCode.Color.cStack) + "chance on hit to " + "knock up enemies".Style(ColorCode.Color.cIsUtility) + ". Deal " + "+{2}% ".Style(ColorCode.Color.cIsDamage) + "(+{3}% per stack) ".Style(ColorCode.Color.cStack) + "damage to " + "airborne ".Style(ColorCode.Color.cIsUtility) + "enemies.", Math.Round(Chance_Base.Value, ItemTemplate.roundVal), Math.Round(Chance_Stack.Value, ItemTemplate.roundVal), Math.Round(Damage_Base.Value, ItemTemplate.roundVal), Math.Round(Damage_Stack.Value, ItemTemplate.roundVal)); break; } } } internal class WarpedEcho : ItemTemplate { public static string StaticName = "Warped Echo"; public static ConfigEntry<int> Rework; public static ConfigEntry<float> Delay_Base; public static ConfigEntry<int> Instance_Stack; public WarpedEcho(int descType) { ItemInternal = "DELAYEDDAMAGE"; if (descType == 1) { ItemInfo = "Half of incoming damage is delayed."; ItemDesc = string.Format("Incoming damage ".Style(ColorCode.Color.cIsDamage) + "is split " + "50%".Style(ColorCode.Color.cIsDamage) + ", with the other " + "50% ".Style(ColorCode.Color.cIsDamage) + "delayed for " + "{0}s ".Style(ColorCode.Color.cIsDamage) + "(+{1} instances per stack)".Style(ColorCode.Color.cStack) + ". Recharges one instance after delayed damage.", Math.Round(Delay_Base.Value, ItemTemplate.roundVal), Instance_Stack.Value); } } } internal class SeedOfLife : ItemTemplate { public static string StaticName = "Seed of Life"; public static ConfigEntry<int> Rework; public SeedOfLife(int descType) { ItemInternal = "HEALANDREVIVE"; if (descType == 1) { ItemInfo = "Revives user or allies. Consume on use."; ItemDesc = "Returns ".Style(ColorCode.Color.cIsHealing) + "the user " + "to life ".Style(ColorCode.Color.cIsHealing) + "upon death ".Style(ColorCode.Color.cIsUtility) + "or dead allies on use. Equipment is " + "consumed ".Style(ColorCode.Color.cIsUtility) + "on use."; } } } internal class BensRaincoat : ItemTemplate { public static string StaticName = "Bens Raincoat"; public static ConfigEntry<int> Rework; } internal class GrowthNectar : ItemTemplate { public static string StaticName = "Growth Nectar"; public static ConfigEntry<int> Rework; public static ConfigEntry<float> Stat_Base; public static ConfigEntry<float> Stat_Stack; public static ConfigEntry<float> Charge_Stat_Increase; public static ConfigEntry<float> Charge_Cap_Base; public static ConfigEntry<float> Charge_Cap_Stack; public GrowthNectar(int descType) { ItemInternal = "BOOSTALLSTATS"; if (descType == 1) { ItemInfo = "Not using an equipment increases ALL of your stats. Scales with equipment charges."; ItemDesc = string.Format("When your Equipment is off " + "cooldown".Style(ColorCode.Color.cIsUtility) + ", increase " + "ALL stats ".Style(ColorCode.Color.cIsUtility) + "by " + "{0}% ".Style(ColorCode.Color.cIsUtility) + "(+{1}% per stack)".Style(ColorCode.Color.cStack) + ", and by " + "{2}% ".Style(ColorCode.Color.cIsUtility) + "per " + "Equipment charge".Style(ColorCode.Color.cIsUtility) + ", up to a maximum of " + "{3}% ".Style(ColorCode.Color.cIsUtility) + "(+{4}% per stack)".Style(ColorCode.Color.cStack) + ".", Math.Round(Stat_Base.Value, ItemTemplate.roundVal), Math.Round(Stat_Stack.Value, ItemTemplate.roundVal), Math.Round(Charge_Stat_Increase.Value, ItemTemplate.roundVal), Math.Round(Charge_Cap_Base.Value, ItemTemplate.roundVal), Math.Round(Charge_Cap_Stack.Value, ItemTemplate.roundVal)); } } } internal class WarBonds : ItemTemplate { public static string StaticName = "War Bonds"; public static ConfigEntry<int> Rework; public static ConfigEntry<int> Purchase_Base; public static ConfigEntry<int> Purchase_Stack; public static ConfigEntry<float> Experience_Percent_Base; public static ConfigEntry<float> Experience_Percent_Stack; public WarBonds(int descType) { ItemInternal = "GOLDONSTAGESTART"; if (descType == 1) { ItemInfo = $"Gain free purchases at the start of each stage.\nGain {Math.Round(Experience_Percent_Base.Value, ItemTemplate.roundVal)}% experience on cash spent on all purchases."; ItemDesc = string.Format("Gain " + "{0} ".Style(ColorCode.Color.cIsUtility) + "(+{1} per stack) ".Style(ColorCode.Color.cStack) + "free purchases ".Style(ColorCode.Color.cIsUtility) + "at the " + "start of each stage".Style(ColorCode.Color.cIsUtility) + ". When making a gold purchase, get " + "{2}% ".Style(ColorCode.Color.cIsUtility) + "(+{3}% per stack) ".Style(ColorCode.Color.cStack) + "of spent gold as " + "experience".Style(ColorCode.Color.cIsUtility) + ".", Purchase_Base.Value, Purchase_Stack.Value, Math.Round(Experience_Percent_Base.Value, ItemTemplate.roundVal), Math.Round(Experience_Percent_Stack.Value, ItemTemplate.roundVal)); } } } internal class OldWarStealthKit : ItemTemplate { public static string StaticName = "Old War Stealthkit"; public static ConfigEntry<int> Rework; public OldWarStealthKit(int descType) { ItemInternal = "PHASING"; if (descType == 1) { ItemInfo = "Turn invisible and cleanse debuffs at low health."; ItemDesc = "Falling below " + "25% health ".Style(ColorCode.Color.cIsHealth) + "causes you to become " + "invisible ".Style(ColorCode.Color.cIsUtility) + "for " + "5s".Style(ColorCode.Color.cIsUtility) + ", boost " + "movement speed ".Style(ColorCode.Color.cIsUtility) + "by " + "40% ".Style(ColorCode.Color.cIsUtility) + "and " + "cleanse 2 ".Style(ColorCode.Color.cIsUtility) + "debuffs ".Style(ColorCode.Color.cIsDamage) + "(+1 per stack)".Style(ColorCode.Color.cStack) + ". Recharges every " + "30 ".Style(ColorCode.Color.cIsUtility) + "(-50% per stack) ".Style(ColorCode.Color.cStack) + "seconds."; } } } internal class SaleStar : ItemTemplate { public static string StaticName = "Sale Star"; public static ConfigEntry<int> Rework; public static ConfigEntry<bool> IsHyperbolic; public static ConfigEntry<float> Consume_Base; public static ConfigEntry<float> Consume_Stack; public SaleStar(int descType) { ItemInternal = "LOWERPRICEDCHESTS"; Consume_Base.Value = Math.Max(Math.Min(Consume_Base.Value, 100f), 0f); Consume_Stack.Value = Math.Max(Math.Min(Consume_Stack.Value, Consume_Base.Value), 0f); if (descType == 1) { ItemInfo = "Gain an extra item from chests. Chance to be consumed on use once per stage."; ItemDesc = string.Format("Gain an " + "extra item ".Style(ColorCode.Color.cIsUtility) + "when purchasing a " + "chest ".Style(ColorCode.Color.cIsUtility) + "with a " + "{0}% ".Style(ColorCode.Color.cIsUtility) + "(-{1}% per stack) ".Style(ColorCode.Color.cStack) + "chance to be " + "consumed ".Style(ColorCode.Color.cIsUtility) + "on use. At the start of each stage, it regenerates.", Math.Round(Consume_Base.Value, ItemTemplate.roundVal), Math.Round(Consume_Stack.Value, ItemTemplate.roundVal)); } } } internal class UnstableTransmitter : ItemTemplate { public static string StaticName = "Unstable Transmitter"; public static ConfigEntry<int> Rework; public static ConfigEntry<bool> IsFloat; public static ConfigEntry<int> LowHealth; public static ConfigEntry<float> Refresh; public static ConfigEntry<float> Range; public static ConfigEntry<float> Damage_Base; public static ConfigEntry<float> Damage_Stack; public static ConfigEntry<float> Duration_Base; public static ConfigEntry<float> Duration_Stack; public UnstableTransmitter(int descType) { ItemInternal = "TELEPORTONLOWHEALTH"; if (descType == 1) { ItemInfo = "Become intangible and explode, bleeding nearby enemies at low health."; ItemDesc = string.Format("Falling below " + "{0}% health ".Style(ColorCode.Color.cIsHealth) + "causes you to fade away, becoming " + "intangible ".Style(ColorCode.Color.cIsUtility) + "and exploding, inflicting " + "bleed ".Style(ColorCode.Color.cIsDamage) + "to enemies within " + "{1}m ".Style(ColorCode.Color.cIsDamage) + "for " + "{2}% ".Style(ColorCode.Color.cIsDamage) + "(+{3}% per stack) ".Style(ColorCode.Color.cStack) + "base damage. Lasts " + "{4}s ".Style(ColorCode.Color.cIsUtility) + "(+{5}s per stack)".Style(ColorCode.Color.cStack) + ". Recharges every " + "{6} ".Style(ColorCode.Color.cIsUtility) + "seconds.", LowHealth.Value, Math.Round(Range.Value, ItemTemplate.roundVal), Math.Round(Damage_Base.Value, ItemTemplate.roundVal), Math.Round(Damage_Stack.Value, ItemTemplate.roundVal), Math.Round(Duration_Base.Value, ItemTemplate.roundVal), Math.Round(Duration_Stack.Value, ItemTemplate.roundVal), Math.Round(Refresh.Value)); } } } public class ItemInfo { public ItemInfo() { if (WarpedEcho.Rework.Value == 1) { SetDesc(new WarpedEcho(WarpedEcho.Rework.Value)); } if (ChronicExpansion.Rework.Value == 1) { SetDesc(new ChronicExpansion(ChronicExpansion.Rework.Value)); } if (KnockbackFin.Rework.Value == 1 && !MainConfig.CursedRewrite.Value) { SetDesc(new KnockbackFin(KnockbackFin.Rework.Value)); SetName(new KnockbackFin(KnockbackFin.Rework.Value), "Flying Fin"); } if (KnockbackFin.Rework.Value == 1 && MainConfig.CursedRewrite.Value) { SetDesc(new KnockbackFin(KnockbackFin.Rework.Value * -1)); SetName(new KnockbackFin(KnockbackFin.Rework.Value * -1), "Knockup Fin"); } if (BolsteringLantern.Rework.Value == 1) { SetDesc(new BolsteringLantern(BolsteringLantern.Rework.Value)); } if (BolsteringLantern.Rework.Value == 2) { SetDesc(new BolsteringLantern(BolsteringLantern.Rework.Value)); } if (AntlerShield.Rework.Value == 1) { SetDesc(new AntlerShield(AntlerShield.Rework.Value)); } if (SaleStar.Rework.Value == 1) { SetDesc(new SaleStar(SaleStar.Rework.Value)); } if (UnstableTransmitter.Rework.Value == 1) { SetDesc(new UnstableTransmitter(UnstableTransmitter.Rework.Value)); } if (WarBonds.Rework.Value == 1) { SetDesc(new WarBonds(WarBonds.Rework.Value)); } if (GrowthNectar.Rework.Value == 1) { SetDesc(new GrowthNectar(GrowthNectar.Rework.Value)); } if (SeedOfLife.Rework.Value == 1) { SetDesc(new SeedOfLife(SeedOfLife.Rework.Value), "EQUIPMENT_"); } if (OldWarStealthKit.Rework.Value == 1) { SetDesc(new OldWarStealthKit(OldWarStealthKit.Rework.Value)); } } private static void SetDesc(ItemTemplate ItemInfo, string forcedPrefix = "ITEM_") { LanguageAPI.Add(forcedPrefix + ItemInfo.ItemInternal + "_PICKUP", ItemInfo.ItemInfo); LanguageAPI.Add(forcedPrefix + ItemInfo.ItemInternal + "_DESC", ItemInfo.ItemDesc); } private static void SetName(ItemTemplate ItemInfo, string name, string forcedPrefix = "ITEM_") { LanguageAPI.Add(forcedPrefix + ItemInfo.ItemInternal + "_NAME", name); } } internal class ItemTemplate { public static int roundVal = MainConfig.RoundNumber.Value; public string ItemInternal; public string ItemInfo; public string ItemDesc; } internal static class Log { private static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("noodlegemo.SeekingItemReworks", "SeekingItemReworks", "1.3.1")] public class Main : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__5_17; public static Func<Instruction, bool> <>9__5_18; public static Action<CharacterBody, DelayedDamageInfo> <>9__5_15; public static Func<Instruction, bool> <>9__5_20; public static Action<CharacterBody> <>9__5_19; public static hook_UpdateDelayedDamage <>9__5_2; public static Func<Instruction, bool> <>9__5_21; public static Func<Instruction, bool> <>9__5_22; public static Func<Instruction, bool> <>9__5_24; public static Func<Instruction, bool> <>9__5_25; public static Func<Instruction, bool> <>9__5_26; public static Action<CharacterBody, int> <>9__5_27; public static Func<Instruction, bool> <>9__5_28; public static Func<Instruction, bool> <>9__5_29; public static Func<Instruction, bool> <>9__5_30; public static Func<Instruction, bool> <>9__5_33; public static Func<Instruction, bool> <>9__5_34; public static Func<Instruction, bool> <>9__5_35; public static Func<Instruction, bool> <>9__5_36; public static Func<int, int> <>9__5_31; public static hook_ProcessHitEnemy <>9__5_5; public static Func<Instruction, bool> <>9__5_39; public static Func<Instruction, bool> <>9__5_40; public static Func<Instruction, bool> <>9__5_41; public static Func<Instruction, bool> <>9__5_42; public static Func<Instruction, bool> <>9__5_43; public static Func<Instruction, bool> <>9__5_44; public static Func<Instruction, bool> <>9__5_45; public static Func<HealthComponent, DamageInfo, float, float> <>9__5_37; public static Func<Instruction, bool> <>9__5_47; public static Func<Instruction, bool> <>9__5_48; public static Func<Instruction, bool> <>9__5_49; public static Func<Instruction, bool> <>9__5_46; public static hook_UpdateLowerHealthHigherDamage <>9__5_8; public static hook_UpdateLowerHealthHigherDamage <>9__5_10; public static hook_FixedUpdate <>9__5_11; public static hook_ProcessHitEnemy <>9__5_12; public static Func<Instruction, bool> <>9__5_51; public static Func<Instruction, bool> <>9__5_52; public static Func<Instruction, bool> <>9__5_53; public static Action<CharacterBody> <>9__5_50; public static Func<Instruction, bool> <>9__5_55; public static Func<Instruction, bool> <>9__5_56; public static Func<int, int> <>9__5_54; public static Func<Instruction, bool> <>9__6_7; public static Func<Instruction, bool> <>9__6_8; public static Func<Instruction, bool> <>9__6_9; public static Func<int, int> <>9__6_6; public static hook_OnInteractionBegin <>9__6_1; public static hook_RpcTeleportCharacterToSafety <>9__6_2; public static Func<Instruction, bool> <>9__6_11; public static Func<Instruction, bool> <>9__6_12; public static Func<Instruction, bool> <>9__6_13; public static Func<Instruction, bool> <>9__6_14; public static Func<Instruction, bool> <>9__6_15; public static Func<int, int> <>9__6_10; public static hook_UpdateLastHitTime <>9__6_4; public static Func<Instruction, bool> <>9__6_17; public static Func<Instruction, bool> <>9__6_18; public static Func<Instruction, bool> <>9__6_19; public static Action<PhasingBodyBehavior> <>9__6_16; public static Func<Instruction, bool> <>9__7_9; public static Func<Instruction, bool> <>9__7_10; public static Func<Instruction, bool> <>9__7_11; public static Func<Instruction, bool> <>9__7_12; public static Func<int, int> <>9__7_7; public static hook_Start <>9__7_1; public static Func<Instruction, bool> <>9__7_14; public static Func<Instruction, bool> <>9__7_15; public static Func<Instruction, bool> <>9__7_17; public static Action<PurchaseInteraction, Interactor> <>9__7_13; public static Manipulator <>9__7_2; public static hook_MyFixedUpdate <>9__7_3; public static hook_UpdateBoostAllStatsTimer <>9__7_4; public static Func<Instruction, bool> <>9__7_19; public static Func<Instruction, bool> <>9__7_20; public static Func<Instruction, bool> <>9__7_21; public static Func<Instruction, bool> <>9__7_22; public static Func<int, int> <>9__7_18; public static Func<Instruction, bool> <>9__7_25; public static Func<Instruction, bool> <>9__7_26; public static Func<Instruction, bool> <>9__7_27; public static Action<CharacterBody, int> <>9__7_23; internal bool <SetUpCommonItems>b__5_17(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 1); } internal bool <SetUpCommonItems>b__5_18(Instruction x) { return ILPatternMatchingExt.MatchStfld(x, typeof(DelayedDamageInfo), "halfDamage"); } internal void <SetUpCommonItems>b__5_15(CharacterBody body, DelayedDamageInfo damageInfo) { damageInfo.timeUntilDamage = WarpedEcho.Delay_Base.Value; } internal bool <SetUpCommonItems>b__5_20(Instruction x) { return ILPatternMatchingExt.MatchCall<CharacterBody>(x, "RemoveBuff"); } internal void <SetUpCommonItems>b__5_19(CharacterBody body) { body.AddBuff(Buffs.DelayedDamageBuff); } internal void <SetUpCommonItems>b__5_2(orig_UpdateDelayedDamage orig, CharacterBody self, float deltaTime) { if (!NetworkServer.active) { return; } int num = (Object.op_Implicit((Object)(object)self.inventory) ? self.inventory.GetItemCount(Items.DelayedDamage) : 0); if (num > 0) { num = 1 + WarpedEcho.Instance_Stack.Value * (num - 1); int buffCount = self.GetBuffCount(Buffs.DelayedDamageBuff); if (self.oldDelayedDamageCount != num) { int num2 = num - self.oldDelayedDamageCount; if (num2 > 0) { for (int i = 0; i < Math.Abs(num2); i++) { self.AddBuff(Buffs.DelayedDamageBuff); } } else { for (int j = 0; j < Math.Abs(num2); j++) { self.RemoveBuff(Buffs.DelayedDamageBuff); } } } self.oldDelayedDamageCount = num; } else { self.oldDelayedDamageCount = 0; self.RemoveBuff(Buffs.DelayedDamageBuff); self.RemoveBuff(Buffs.DelayedDamageDebuff); self.RemoveOldestTimedBuff(Buffs.DelayedDamageDebuff); } } internal bool <SetUpCommonItems>b__5_21(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Items), "IncreaseDamageOnMultiKill"); } internal bool <SetUpCommonItems>b__5_22(Instruction x) { return ILPatternMatchingExt.MatchCallvirt<Inventory>(x, "GetItemCount"); } internal bool <SetUpCommonItems>b__5_24(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpCommonItems>b__5_25(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "IncreaseDamageBuff"); } internal bool <SetUpCommonItems>b__5_26(Instruction x) { return ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "GetBuffCount"); } internal void <SetUpCommonItems>b__5_27(CharacterBody body, int itemCount) { int buffCount = body.GetBuffCount(Buffs.IncreaseDamageBuff); float num = (float)buffCount * (ChronicExpansion.Damage_Base.Value + ChronicExpansion.Damage_Stack.Value * (float)(itemCount - 1)) / 100f; body.damage *= 1f + num; if (body.oldComboMeter < buffCount) { body.oldComboMeter = buffCount; } } internal bool <SetUpCommonItems>b__5_28(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpCommonItems>b__5_29(Instruction x) { int num = default(int); return ILPatternMatchingExt.MatchLdloc(x, ref num); } internal bool <SetUpCommonItems>b__5_30(Instruction x) { return ILPatternMatchingExt.MatchStfld<CharacterBody>(x, "oldComboMeter"); } internal bool <SetUpCommonItems>b__5_33(Instruction x) { int num = default(int); return ILPatternMatchingExt.MatchLdcI4(x, ref num); } internal bool <SetUpCommonItems>b__5_34(Instruction x) { ILLabel val = default(ILLabel); return ILPatternMatchingExt.MatchBle(x, ref val); } internal bool <SetUpCommonItems>b__5_35(Instruction x) { int num = default(int); return ILPatternMatchingExt.MatchLdloc(x, ref num); } internal bool <SetUpCommonItems>b__5_36(Instruction x) { return ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "get_isBoss"); } internal int <SetUpCommonItems>b__5_31(int itemCount) { return -1; } internal void <SetUpCommonItems>b__5_5(orig_ProcessHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim) { //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0136: 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_014f: Expected I4, but got Unknown //IL_00e8: 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_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Expected O, but got Unknown //IL_01d6: 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) orig.Invoke(self, damageInfo, victim); if (!Object.op_Implicit((Object)(object)damageInfo.attacker) || !(damageInfo.procCoefficient > 0f)) { return; } CharacterBody component = damageInfo.attacker.GetComponent<CharacterBody>(); CharacterBody component2 = victim.GetComponent<CharacterBody>(); int num = (Object.op_Implicit((Object)(object)component.inventory) ? component.inventory.GetItemCount(Items.KnockBackHitEnemies) : 0); if (!Object.op_Implicit((Object)(object)component2) || num <= 0) { return; } CharacterMotor component3 = victim.GetComponent<CharacterMotor>(); victim.GetComponent<RigidbodyMotor>(); float num2 = (KnockbackFin.Chance_Base.Value + KnockbackFin.Chance_Stack.Value * (float)(num - 1)) * damageInfo.procCoefficient; if (KnockbackFin.IsHyperbolic.Value) { num2 = Util.ConvertAmplificationPercentageIntoReductionPercentage(num2); } if (Object.op_Implicit((Object)(object)component3) && component3.isGrounded && !component2.isChampion && (component2.bodyFlags & 1) == 0 && !component2.HasBuff(Buffs.KnockUpHitEnemies) && Util.CheckRoll(num2, 0f, (CharacterMaster)null)) { component2.AddTimedBuff(Buffs.KnockUpHitEnemies, 5f); float scale = 1f; HullClassification hullClassification = component2.hullClassification; HullClassification val = hullClassification; switch ((int)val) { case 0: scale = 1f; break; case 1: scale = 5f; break; case 2: scale = 10f; break; } Util.PlaySound("Play_item_proc_knockBackHitEnemies", ((Component)component).gameObject); EffectManager.SpawnEffect(CommonAssets.knockbackFinEffect, new EffectData { origin = ((Component)component2).gameObject.transform.position, scale = scale }, true); Vector3 val2 = default(Vector3); ((Vector3)(ref val2))..ctor(0f, 1f, 0f); float num3 = component3.mass * 25f; component3.ApplyForce(num3 * val2, false, false); } } internal bool <SetUpCommonItems>b__5_39(Instruction x) { int num = default(int); return ILPatternMatchingExt.MatchLdloc(x, ref num); } internal bool <SetUpCommonItems>b__5_40(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpCommonItems>b__5_41(Instruction x) { return ILPatternMatchingExt.MatchLdfld<HealthComponent>(x, "body"); } internal bool <SetUpCommonItems>b__5_42(Instruction x) { return ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "get_teamComponent"); } internal bool <SetUpCommonItems>b__5_43(Instruction x) { int num = default(int); return ILPatternMatchingExt.MatchLdloc(x, ref num); } internal bool <SetUpCommonItems>b__5_44(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpCommonItems>b__5_45(Instruction x) { return ILPatternMatchingExt.MatchCallOrCallvirt<HealthComponent>(x, "get_fullCombinedHealth"); } internal float <SetUpCommonItems>b__5_37(HealthComponent healthComponent, DamageInfo damageInfo, float damage) { //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) float num = damage; CharacterBody val = (Object.op_Implicit((Object)(object)damageInfo.attacker) ? damageInfo.attacker.GetComponent<CharacterBody>() : null); int num2 = ((Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val.inventory)) ? val.inventory.GetItemCount(Items.KnockBackHitEnemies) : 0); if (num2 > 0 && (healthComponent.body.isFlying || ((Object)(object)healthComponent.body.characterMotor != (Object)null && !healthComponent.body.characterMotor.isGrounded))) { num *= 1f + (KnockbackFin.Damage_Base.Value + KnockbackFin.Damage_Stack.Value * (float)(num2 - 1)) / 100f; EffectManager.SimpleImpactEffect(AssetReferences.mercExposeConsumeEffectPrefab, damageInfo.position, Vector3.up, true); } return num; } internal bool <SetUpCommonItems>b__5_47(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpCommonItems>b__5_48(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "LowerHealthHigherDamageBuff"); } internal bool <SetUpCommonItems>b__5_49(Instruction x) { return ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "HasBuff"); } internal bool <SetUpCommonItems>b__5_46(Instruction x) { ILLabel val = default(ILLabel); return ILPatternMatchingExt.MatchBrfalse(x, ref val); } internal void <SetUpCommonItems>b__5_8(orig_UpdateLowerHealthHigherDamage orig, CharacterBody body) { if (!NetworkServer.active) { return; } int num = (Object.op_Implicit((Object)(object)body.inventory) ? body.inventory.GetItemCount(Items.LowerHealthHigherDamage) : 0); if (num > 0) { float normalizedHealth = body.healthComponent.GetNormalizedHealth(); if (normalizedHealth <= (float)BolsteringLantern.LowHealth.Value / 100f && !body.HasBuff(Buffs.LowerHealthHigherDamageBuff)) { body.AddBuff(Buffs.LowerHealthHigherDamageBuff); Util.PlaySound("Play_item_proc_lowerHealthHigherDamage_proc", ((Component)body).gameObject); } else if (normalizedHealth >= (float)BolsteringLantern.HighHealth.Value / 100f && body.HasBuff(Buffs.LowerHealthHigherDamageBuff)) { body.RemoveBuff(Buffs.LowerHealthHigherDamageBuff); } } else if (num <= 0 && body.HasBuff(Buffs.LowerHealthHigherDamageBuff)) { body.RemoveBuff(Buffs.LowerHealthHigherDamageBuff); } } internal void <SetUpCommonItems>b__5_10(orig_UpdateLowerHealthHigherDamage orig, CharacterBody body) { } internal void <SetUpCommonItems>b__5_11(orig_FixedUpdate orig, CharacterBody body) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(body); int num = ((Object.op_Implicit((Object)(object)body) && Object.op_Implicit((Object)(object)body.inventory)) ? body.inventory.GetItemCount(Items.LowerHealthHigherDamage) : 0); if (num <= 0) { return; } MinionGroup val = MinionGroup.FindGroup(body.masterObjectId); body.SetBuffCount(LanternCountBuff.LanternCounter.buffIndex, num); if (val == null) { return; } MinionOwnership[] members = val.members; foreach (MinionOwnership val2 in members) { if (!((Object)(object)val2 == (Object)null)) { CharacterMaster component = ((Component)val2).GetComponent<CharacterMaster>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.inventory) && Object.op_Implicit((Object)(object)component.GetBody())) { component.GetBody().SetBuffCount(LanternCountBuff.LanternCounter.buffIndex, num); } } } } internal void <SetUpCommonItems>b__5_12(orig_ProcessHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim) { //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, damageInfo, victim); if (Object.op_Implicit((Object)(object)damageInfo.attacker) && damageInfo.procCoefficient > 0f) { CharacterBody component = damageInfo.attacker.GetComponent<CharacterBody>(); int buffCount = component.GetBuffCount(LanternCountBuff.LanternCounter); if (Object.op_Implicit((Object)(object)component) && buffCount > 0 && Util.CheckRoll(BolsteringLantern.Chance_Base.Value + BolsteringLantern.Chance_Stack.Value * (float)(buffCount - 1), 0f, (CharacterMaster)null)) { Inventory val = ((component.master.minionOwnership.group != null && Object.op_Implicit((Object)(object)component.master.minionOwnership.group.resolvedOwnerMaster)) ? component.master.minionOwnership.group.resolvedOwnerMaster.inventory : component.inventory); InflictDotInfo val2 = default(InflictDotInfo); val2.attackerObject = damageInfo.attacker; val2.victimObject = victim; val2.totalDamage = damageInfo.damage * (BolsteringLantern.Damage_Base.Value + BolsteringLantern.Damage_Stack.Value * (float)(buffCount - 1)) / 100f; val2.damageMultiplier = 1f; val2.duration = 0.1f; val2.dotIndex = (DotIndex)1; InflictDotInfo val3 = val2; StrengthenBurnUtils.CheckDotForUpgrade(val, ref val3); DotController.InflictDot(ref val3); } } } internal bool <SetUpCommonItems>b__5_51(Instruction x) { return ILPatternMatchingExt.MatchCall<CharacterBody>(x, "set_armor"); } internal bool <SetUpCommonItems>b__5_52(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpCommonItems>b__5_53(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "Cripple"); } internal void <SetUpCommonItems>b__5_50(CharacterBody body) { int num = (Object.op_Implicit((Object)(object)body.inventory) ? body.inventory.GetItemCount(Items.NegateAttack) : 0); if (num > 0) { body.armor += (AntlerShield.Armor_Percent_Base.Value + AntlerShield.Armor_Percent_Stack.Value * (float)(num - 1)) / 100f * body.moveSpeed; body.moveSpeed *= 1f + (AntlerShield.Movement_Base.Value + AntlerShield.Movement_Stack.Value * (float)(num - 1)) / 100f; } } internal bool <SetUpCommonItems>b__5_55(Instruction x) { return ILPatternMatchingExt.MatchLdfld(x, typeof(ItemCounts), "antlerShield"); } internal bool <SetUpCommonItems>b__5_56(Instruction x) { return ILPatternMatchingExt.MatchLdcI4(x, 0); } internal int <SetUpCommonItems>b__5_54(int stack) { return int.MaxValue; } internal bool <SetUpUncommonItems>b__6_7(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Items), "LowerPricedChests"); } internal bool <SetUpUncommonItems>b__6_8(Instruction x) { return ILPatternMatchingExt.MatchCallOrCallvirt<Inventory>(x, "GetItemCount"); } internal bool <SetUpUncommonItems>b__6_9(Instruction x) { int num = default(int); return ILPatternMatchingExt.MatchLdcI4(x, ref num); } internal int <SetUpUncommonItems>b__6_6(int stack) { return int.MaxValue; } internal void <SetUpUncommonItems>b__6_1(orig_OnInteractionBegin orig, PurchaseInteraction self, Interactor activator) { //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, activator); CharacterBody component = ((Component)activator).GetComponent<CharacterBody>(); int num = (Object.op_Implicit((Object)(object)component.inventory) ? component.inventory.GetItemCount(Items.LowerPricedChests) : 0); if (num > 0 && self.saleStarCompatible) { if (Object.op_Implicit((Object)(object)((Component)self).GetComponent<ChestBehavior>())) { ChestBehavior component2 = ((Component)self).GetComponent<ChestBehavior>(); component2.dropCount++; } else if (Object.op_Implicit((Object)(object)((Component)self).GetComponent<RouletteChestController>())) { RouletteChestController component3 = ((Component)self).GetComponent<RouletteChestController>(); component3.dropCount++; } float num2 = (SaleStar.IsHyperbolic.Value ? Util.ConvertAmplificationPercentageIntoReductionPercentage(SaleStar.Consume_Stack.Value * (float)(num - 1)) : (SaleStar.Consume_Stack.Value * (float)(num - 1))); if (Util.CheckRoll(SaleStar.Consume_Base.Value - num2, component.master)) { component.inventory.RemoveItem(Items.LowerPricedChests, num); component.inventory.GiveItem(Items.LowerPricedChestsConsumed, num); CharacterMasterNotificationQueue.SendTransformNotification(component.master, Items.LowerPricedChests.itemIndex, Items.LowerPricedChestsConsumed.itemIndex, (TransformationType)6); } Util.PlaySound("Play_item_proc_lowerPricedChest", ((Component)self).gameObject); } } internal void <SetUpUncommonItems>b__6_2(orig_RpcTeleportCharacterToSafety orig, CharacterBody self) { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Expected O, but got Unknown //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0069: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_0115: 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_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) if (!self.hasEffectiveAuthority) { return; } self.hasTeleported = true; int itemCount = self.inventory.GetItemCount(Items.TeleportOnLowHealth); EntityStateMachine.FindByCustomName(((Component)self).gameObject, "Body").SetNextState((EntityState)(object)new IntangibleSkillState()); List<HurtBox> list = CollectionPool<HurtBox, List<HurtBox>>.RentCollection(); SphereSearch val = new SphereSearch(); val.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask; val.origin = self.transform.position; val.radius = UnstableTransmitter.Range.Value; val.queryTriggerInteraction = (QueryTriggerInteraction)0; val.RefreshCandidates(); val.FilterCandidatesByHurtBoxTeam(TeamMask.GetEnemyTeams(self.teamComponent.teamIndex)); val.OrderCandidatesByDistance(); val.FilterCandidatesByDistinctHurtBoxEntities(); val.GetHurtBoxes(list); val.ClearCandidates(); for (int i = 0; i < list.Count; i++) { HurtBox val2 = list[i]; CharacterBody body = val2.healthComponent.body; if (Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)val2.healthComponent) && val2.healthComponent.alive) { InflictDotInfo val3 = default(InflictDotInfo); val3.attackerObject = ((Component)self).gameObject; val3.victimObject = ((Component)body).gameObject; val3.dotIndex = (DotIndex)0; val3.damageMultiplier = self.damage * ((UnstableTransmitter.Damage_Base.Value + UnstableTransmitter.Damage_Stack.Value * (float)(itemCount - 1)) / 150f); val3.duration = 3f; InflictDotInfo val4 = val3; DotController.InflictDot(ref val4); } } } internal bool <SetUpUncommonItems>b__6_11(Instruction x) { int num = default(int); return ILPatternMatchingExt.MatchLdcI4(x, ref num); } internal bool <SetUpUncommonItems>b__6_12(Instruction x) { ILLabel val = default(ILLabel); return ILPatternMatchingExt.MatchBle(x, ref val); } internal bool <SetUpUncommonItems>b__6_13(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpUncommonItems>b__6_14(Instruction x) { return ILPatternMatchingExt.MatchLdfld<HealthComponent>(x, "body"); } internal bool <SetUpUncommonItems>b__6_15(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "TeleportOnLowHealth"); } internal int <SetUpUncommonItems>b__6_10(int stack) { return int.MaxValue; } internal void <SetUpUncommonItems>b__6_4(orig_UpdateLastHitTime orig, HealthComponent self, float damageValue, Vector3 damagePosition, bool damageIsSilent, GameObject attacker) { //IL_00f7: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active && Object.op_Implicit((Object)(object)self.body) && damageValue > 0f) { float num = (self.health + self.shield) / self.combinedHealth; int num2 = (Object.op_Implicit((Object)(object)self.body.inventory) ? self.body.inventory.GetItemCount(Items.TeleportOnLowHealth) : 0); bool flag = Object.op_Implicit((Object)(object)self.body) && self.body.HasBuff(Buffs.TeleportOnLowHealth); if (num <= (float)UnstableTransmitter.LowHealth.Value / 100f && num2 > 0 && flag) { self.body.hasTeleported = true; self.body.RemoveBuff(Buffs.TeleportOnLowHealth); self.body.AddTimedBuff(Buffs.TeleportOnLowHealthCooldown, UnstableTransmitter.Refresh.Value); self.body.CallRpcTeleportCharacterToSafety(); } } orig.Invoke(self, damageValue, damagePosition, damageIsSilent, attacker); } internal bool <SetUpUncommonItems>b__6_17(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpUncommonItems>b__6_18(Instruction x) { return ILPatternMatchingExt.MatchCall(x, typeof(BaseItemBodyBehavior), "get_body"); } internal bool <SetUpUncommonItems>b__6_19(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "Cloak"); } internal void <SetUpUncommonItems>b__6_16(PhasingBodyBehavior itemBase) { //IL_00a6: 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_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Expected O, but got Unknown int activeBuffsListCount = ((BaseItemBodyBehavior)itemBase).body.activeBuffsListCount; int itemCount = ((BaseItemBodyBehavior)itemBase).body.inventory.GetItemCount(Items.Phasing); int num = 1 + itemCount; for (int i = 0; i < activeBuffsListCount; i++) { BuffDef buffDef = BuffCatalog.GetBuffDef(((BaseItemBodyBehavior)itemBase).body.activeBuffsList[i]); if (buffDef.isDebuff && num > 0) { num--; i--; ((BaseItemBodyBehavior)itemBase).body.RemoveBuff(buffDef); } else if (num <= 0) { break; } } if (num < 1 + itemCount) { EffectManager.SpawnEffect(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/CleanseEffect"), new EffectData { origin = ((BaseItemBodyBehavior)itemBase).body.transform.position }, true); } } internal bool <SetUpLegendaryItems>b__7_9(Instruction x) { int num = default(int); return ILPatternMatchingExt.MatchLdcI4(x, ref num); } internal bool <SetUpLegendaryItems>b__7_10(Instruction x) { ILLabel val = default(ILLabel); return ILPatternMatchingExt.MatchBle(x, ref val); } internal bool <SetUpLegendaryItems>b__7_11(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpLegendaryItems>b__7_12(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Items), "GoldOnStageStart"); } internal int <SetUpLegendaryItems>b__7_7(int stack) { return 0; } internal void <SetUpLegendaryItems>b__7_1(orig_Start orig, CharacterBody self) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); int num = ((Object.op_Implicit((Object)(object)self.master) && Object.op_Implicit((Object)(object)self.master.inventory) && NetworkServer.active) ? self.master.inventory.GetItemCount(Items.GoldOnStageStart) : 0); if (num > 0) { self.SetBuffCount(Buffs.FreeUnlocks.buffIndex, WarBonds.Purchase_Base.Value + WarBonds.Purchase_Stack.Value * (num - 1)); } } internal void <SetUpLegendaryItems>b__7_2(ILContext il) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) <>c__DisplayClass7_1 CS$<>8__locals0 = new <>c__DisplayClass7_1(); ILCursor val = new ILCursor(il); CS$<>8__locals0.costIndex = -1; if (val.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdfld<PurchaseInteraction>(x, "cost"), (Instruction x) => ILPatternMatchingExt.MatchStloc(x, ref CS$<>8__locals0.costIndex) })) { } if (!val.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0) })) { return; } val.Emit(OpCodes.Ldarg_0); val.Emit(OpCodes.Ldarg_1); val.EmitDelegate<Action<PurchaseInteraction, Interactor>>((Action<PurchaseInteraction, Interactor>)delegate(PurchaseInteraction interact, Interactor activator) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Invalid comparison between Unknown and I4 //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Expected O, but got Unknown CharacterBody component = ((Component)activator).GetComponent<CharacterBody>(); int num = (Object.op_Implicit((Object)(object)component.inventory) ? component.inventory.GetItemCount(Items.GoldOnStageStart) : 0); if (num > 0 && (int)interact.costType == 1) { ExperienceManager.instance.AwardExperience(((Component)interact).transform.position, component, (ulong)((float)interact.cost * (WarBonds.Experience_Percent_Base.Value + WarBonds.Experience_Percent_Stack.Value * (float)(num - 1)) / 100f)); } if (component.HasBuff(Buffs.FreeUnlocks)) { Util.PlaySound("Play_item_proc_goldOnStageStart", ((Component)component).gameObject); EffectManager.SpawnEffect(AssetReferences.gainCoinsImpactEffectPrefab, new EffectData { origin = component.transform.position }, false); } }); } internal bool <SetUpLegendaryItems>b__7_14(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpLegendaryItems>b__7_15(Instruction x) { return ILPatternMatchingExt.MatchLdfld<PurchaseInteraction>(x, "cost"); } internal bool <SetUpLegendaryItems>b__7_17(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal void <SetUpLegendaryItems>b__7_13(PurchaseInteraction interact, Interactor activator) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Invalid comparison between Unknown and I4 //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Expected O, but got Unknown CharacterBody component = ((Component)activator).GetComponent<CharacterBody>(); int num = (Object.op_Implicit((Object)(object)component.inventory) ? component.inventory.GetItemCount(Items.GoldOnStageStart) : 0); if (num > 0 && (int)interact.costType == 1) { ExperienceManager.instance.AwardExperience(((Component)interact).transform.position, component, (ulong)((float)interact.cost * (WarBonds.Experience_Percent_Base.Value + WarBonds.Experience_Percent_Stack.Value * (float)(num - 1)) / 100f)); } if (component.HasBuff(Buffs.FreeUnlocks)) { Util.PlaySound("Play_item_proc_goldOnStageStart", ((Component)component).gameObject); EffectManager.SpawnEffect(AssetReferences.gainCoinsImpactEffectPrefab, new EffectData { origin = component.transform.position }, false); } } internal void <SetUpLegendaryItems>b__7_3(orig_MyFixedUpdate orig, EquipmentSlot equip, float deltaTime) { orig.Invoke(equip, deltaTime); if (NetworkServer.active && Object.op_Implicit((Object)(object)equip.characterBody.inventory)) { int itemCount = equip.characterBody.inventory.GetItemCount(Items.BoostAllStats); bool flag = equip.cooldownTimer == float.PositiveInfinity || equip.cooldownTimer == float.NegativeInfinity; bool flag2 = equip.characterBody.HasBuff(Buffs.BoostAllStatsBuff); if (itemCount > 0 && !flag2 && (equip.cooldownTimer <= 0f || flag)) { equip.characterBody.AddBuff(Buffs.BoostAllStatsBuff); } else if ((itemCount <= 0 || !flag) && flag2) { equip.characterBody.RemoveBuff(Buffs.BoostAllStatsBuff); } } } internal void <SetUpLegendaryItems>b__7_4(orig_UpdateBoostAllStatsTimer orig, CharacterBody self, float timer) { } internal bool <SetUpLegendaryItems>b__7_19(Instruction x) { return ILPatternMatchingExt.MatchLdcI4(x, 0); } internal bool <SetUpLegendaryItems>b__7_20(Instruction x) { ILLabel val = default(ILLabel); return ILPatternMatchingExt.MatchBle(x, ref val); } internal bool <SetUpLegendaryItems>b__7_21(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpLegendaryItems>b__7_22(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "BoostAllStatsBuff"); } internal int <SetUpLegendaryItems>b__7_18(int stack) { return int.MaxValue; } internal bool <SetUpLegendaryItems>b__7_25(Instruction x) { return ILPatternMatchingExt.MatchConvR4(x); } internal bool <SetUpLegendaryItems>b__7_26(Instruction x) { return ILPatternMatchingExt.MatchLdarg(x, 0); } internal bool <SetUpLegendaryItems>b__7_27(Instruction x) { return ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "boostAllStatsMultiplier"); } internal void <SetUpLegendaryItems>b__7_23(CharacterBody body, int nectarCount) { EquipmentSlot equipmentSlot = body.equipmentSlot; float num = GrowthNectar.Stat_Base.Value + GrowthNectar.Stat_Stack.Value * (float)(nectarCount - 1); float num2 = Math.Min(GrowthNectar.Charge_Stat_Increase.Value * (float)(equipmentSlot.maxStock - 1), GrowthNectar.Charge_Cap_Base.Value + GrowthNectar.Charge_Cap_Stack.Value * (float)(nectarCount - 1)); float num3 = (num + num2) / 100f; body.maxHealth += body.maxHealth * num3; body.moveSpeed += body.moveSpeed * num3; body.damage += body.damage * num3; body.attackSpeed += body.attackSpeed * num3; body.crit += body.crit * num3; body.regen += body.regen * num3; } } [CompilerGenerated] private sealed class <>c__DisplayClass7_1 { public int costIndex; internal bool <SetUpLegendaryItems>b__16(Instruction x) { return ILPatternMatchingExt.MatchStloc(x, ref costIndex); } } public const string PluginGUID = "noodlegemo.SeekingItemReworks"; public const string PluginAuthor = "noodlegemo"; public const string PluginName = "SeekingItemReworks"; public const string PluginVersion = "1.3.1"; public void Awake() { Log.Init(((BaseUnityPlugin)this).Logger); MainConfig.SetUpConfigs((BaseUnityPlugin)(object)this); new ItemInfo(); SetUpCommonItems(); SetUpUncommonItems(); SetUpLegendaryItems(); } private void SetUpCommonItems() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Expected O, but got Unknown //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Expected O, but got Unknown //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Expected O, but got Unknown //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Expected O, but got Unknown //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Expected O, but got Unknown //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Expected O, but got Unknown //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_0136: Expected O, but got Unknown //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Expected O, but got Unknown //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Expected O, but got Unknown //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Expected O, but got Unknown //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Expected O, but got Unknown //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_01d2: Expected O, but got Unknown if (WarpedEcho.Rework.Value == 1) { CharacterBody.SecondHalfOfDelayedDamage += (Manipulator)delegate(ILContext il) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) ILCursor val27 = new ILCursor(il); int damageIndex2 = -1; if (val27.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref damageIndex2), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 1), (Instruction x) => ILPatternMatchingExt.MatchStfld(x, typeof(DelayedDamageInfo), "halfDamage") })) { val27.Emit(OpCodes.Ldarg_0); val27.Emit(OpCodes.Ldloc, damageIndex2); val27.EmitDelegate<Action<CharacterBody, DelayedDamageInfo>>((Action<CharacterBody, DelayedDamageInfo>)delegate(CharacterBody body, DelayedDamageInfo damageInfo) { damageInfo.timeUntilDamage = WarpedEcho.Delay_Base.Value; }); } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(WarpedEcho.StaticName + " #1 - IL Fail #1")); } }; CharacterBody.UpdateSecondHalfOfDamage += (Manipulator)delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_004d: Unknown result type (might be due to invalid IL or missing references) ILCursor val26 = new ILCursor(il); if (val26.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<CharacterBody>(x, "RemoveBuff") })) { int index2 = val26.Index; val26.Index = index2 + 1; val26.Emit(OpCodes.Ldarg_0); val26.EmitDelegate<Action<CharacterBody>>((Action<CharacterBody>)delegate(CharacterBody body) { body.AddBuff(Buffs.DelayedDamageBuff); }); } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(WarpedEcho.StaticName + " #1 - IL Fail #2")); } }; object obj = <>c.<>9__5_2; if (obj == null) { hook_UpdateDelayedDamage val = delegate(orig_UpdateDelayedDamage orig, CharacterBody self, float deltaTime) { if (NetworkServer.active) { int num15 = (Object.op_Implicit((Object)(object)self.inventory) ? self.inventory.GetItemCount(Items.DelayedDamage) : 0); if (num15 > 0) { num15 = 1 + WarpedEcho.Instance_Stack.Value * (num15 - 1); int buffCount3 = self.GetBuffCount(Buffs.DelayedDamageBuff); if (self.oldDelayedDamageCount != num15) { int num16 = num15 - self.oldDelayedDamageCount; if (num16 > 0) { for (int j = 0; j < Math.Abs(num16); j++) { self.AddBuff(Buffs.DelayedDamageBuff); } } else { for (int k = 0; k < Math.Abs(num16); k++) { self.RemoveBuff(Buffs.DelayedDamageBuff); } } } self.oldDelayedDamageCount = num15; } else { self.oldDelayedDamageCount = 0; self.RemoveBuff(Buffs.DelayedDamageBuff); self.RemoveBuff(Buffs.DelayedDamageDebuff); self.RemoveOldestTimedBuff(Buffs.DelayedDamageDebuff); } } }; <>c.<>9__5_2 = val; obj = (object)val; } CharacterBody.UpdateDelayedDamage += (hook_UpdateDelayedDamage)obj; } if (ChronicExpansion.Rework.Value == 1) { CharacterBody.RecalculateStats += (Manipulator)delegate(ILContext il) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_0114: 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_0160: Unknown result type (might be due to invalid IL or missing references) ILCursor val24 = new ILCursor(il); int itemIndex2 = -1; if (!val24.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Items), "IncreaseDamageOnMultiKill"), (Instruction x) => ILPatternMatchingExt.MatchCallvirt<Inventory>(x, "GetItemCount"), (Instruction x) => ILPatternMatchingExt.MatchStloc(x, ref itemIndex2) })) { ((BaseUnityPlugin)this).Logger.LogWarning((object)(ChronicExpansion.StaticName + " - IL Fail #1")); } if (val24.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "IncreaseDamageBuff"), (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "GetBuffCount") })) { val24.Emit(OpCodes.Ldarg_0); val24.Emit(OpCodes.Ldloc, itemIndex2); val24.EmitDelegate<Action<CharacterBody, int>>((Action<CharacterBody, int>)delegate(CharacterBody body, int itemCount) { int buffCount2 = body.GetBuffCount(Buffs.IncreaseDamageBuff); float num14 = (float)buffCount2 * (ChronicExpansion.Damage_Base.Value + ChronicExpansion.Damage_Stack.Value * (float)(itemCount - 1)) / 100f; body.damage *= 1f + num14; if (body.oldComboMeter < buffCount2) { body.oldComboMeter = buffCount2; } }); ILLabel val25 = val24.DefineLabel(); val24.Emit(OpCodes.Br_S, (object)val25); int num13 = default(int); if (val24.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref num13), (Instruction x) => ILPatternMatchingExt.MatchStfld<CharacterBody>(x, "oldComboMeter") })) { val24.MarkLabel(val25); } } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(ChronicExpansion.StaticName + " #1 - IL Fail #2")); } }; } if (KnockbackFin.Rework.Value == 1) { GlobalEventManager.ProcessHitEnemy += (Manipulator)delegate(ILContext il) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) ILCursor val22 = new ILCursor(il); int itemIndex = -1; int num12 = default(int); ILLabel val23 = default(ILLabel); int num11 = default(int); if (val22.TryGotoNext(new Func<Instruction, bool>[5] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref itemIndex), (Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, ref num12), (Instruction x) => ILPatternMatchingExt.MatchBle(x, ref val23), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref num11), (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "get_isBoss") })) { val22.Emit(OpCodes.Ldloc, itemIndex); val22.EmitDelegate<Func<int, int>>((Func<int, int>)((int itemCount) => -1)); val22.Emit(OpCodes.Stloc, itemIndex); } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(KnockbackFin.StaticName + " #1 - IL Fail #1")); } }; object obj2 = <>c.<>9__5_5; if (obj2 == null) { hook_ProcessHitEnemy val2 = delegate(orig_ProcessHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim) { //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0136: 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_014f: Expected I4, but got Unknown //IL_00e8: 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_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Expected O, but got Unknown //IL_01d6: 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) orig.Invoke(self, damageInfo, victim); if (Object.op_Implicit((Object)(object)damageInfo.attacker) && damageInfo.procCoefficient > 0f) { CharacterBody component4 = damageInfo.attacker.GetComponent<CharacterBody>(); CharacterBody component5 = victim.GetComponent<CharacterBody>(); int num8 = (Object.op_Implicit((Object)(object)component4.inventory) ? component4.inventory.GetItemCount(Items.KnockBackHitEnemies) : 0); if (Object.op_Implicit((Object)(object)component5) && num8 > 0) { CharacterMotor component6 = victim.GetComponent<CharacterMotor>(); victim.GetComponent<RigidbodyMotor>(); float num9 = (KnockbackFin.Chance_Base.Value + KnockbackFin.Chance_Stack.Value * (float)(num8 - 1)) * damageInfo.procCoefficient; if (KnockbackFin.IsHyperbolic.Value) { num9 = Util.ConvertAmplificationPercentageIntoReductionPercentage(num9); } if (Object.op_Implicit((Object)(object)component6) && component6.isGrounded && !component5.isChampion && (component5.bodyFlags & 1) == 0 && !component5.HasBuff(Buffs.KnockUpHitEnemies) && Util.CheckRoll(num9, 0f, (CharacterMaster)null)) { component5.AddTimedBuff(Buffs.KnockUpHitEnemies, 5f); float scale = 1f; HullClassification hullClassification = component5.hullClassification; HullClassification val20 = hullClassification; switch ((int)val20) { case 0: scale = 1f; break; case 1: scale = 5f; break; case 2: scale = 10f; break; } Util.PlaySound("Play_item_proc_knockBackHitEnemies", ((Component)component4).gameObject); EffectManager.SpawnEffect(CommonAssets.knockbackFinEffect, new EffectData { origin = ((Component)component5).gameObject.transform.position, scale = scale }, true); Vector3 val21 = default(Vector3); ((Vector3)(ref val21))..ctor(0f, 1f, 0f); float num10 = component6.mass * 25f; component6.ApplyForce(num10 * val21, false, false); } } } }; <>c.<>9__5_5 = val2; obj2 = (object)val2; } GlobalEventManager.ProcessHitEnemy += (hook_ProcessHitEnemy)obj2; HealthComponent.TakeDamageProcess += (Manipulator)delegate(ILContext il) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) ILCursor val18 = new ILCursor(il); int damageIndex = -1; int num7 = default(int); if (!val18.TryGotoNext(new Func<Instruction, bool>[5] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, ref damageIndex), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref num7), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdfld<HealthComponent>(x, "body"), (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "get_teamComponent") })) { ((BaseUnityPlugin)this).Logger.LogWarning((object)(KnockbackFin.StaticName + " #1 - IL Fail #2")); } ((BaseUnityPlugin)this).Logger.LogDebug((object)("DamageIndex: " + damageIndex)); int num6 = default(int); if (val18.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref num6), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<HealthComponent>(x, "get_fullCombinedHealth") })) { ((BaseUnityPlugin)this).Logger.LogDebug((object)"1"); val18.Emit(OpCodes.Ldarg_0); ((BaseUnityPlugin)this).Logger.LogDebug((object)"2"); val18.Emit(OpCodes.Ldarg_1); ((BaseUnityPlugin)this).Logger.LogDebug((object)"3"); val18.Emit(OpCodes.Ldloc, damageIndex); ((BaseUnityPlugin)this).Logger.LogDebug((object)"4"); val18.EmitDelegate<Func<HealthComponent, DamageInfo, float, float>>((Func<HealthComponent, DamageInfo, float, float>)delegate(HealthComponent healthComponent, DamageInfo damageInfo, float damage) { //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) float num4 = damage; CharacterBody val19 = (Object.op_Implicit((Object)(object)damageInfo.attacker) ? damageInfo.attacker.GetComponent<CharacterBody>() : null); int num5 = ((Object.op_Implicit((Object)(object)val19) && Object.op_Implicit((Object)(object)val19.inventory)) ? val19.inventory.GetItemCount(Items.KnockBackHitEnemies) : 0); if (num5 > 0 && (healthComponent.body.isFlying || ((Object)(object)healthComponent.body.characterMotor != (Object)null && !healthComponent.body.characterMotor.isGrounded))) { num4 *= 1f + (KnockbackFin.Damage_Base.Value + KnockbackFin.Damage_Stack.Value * (float)(num5 - 1)) / 100f; EffectManager.SimpleImpactEffect(AssetReferences.mercExposeConsumeEffectPrefab, damageInfo.position, Vector3.up, true); } return num4; }); ((BaseUnityPlugin)this).Logger.LogDebug((object)"5"); val18.Emit(OpCodes.Stloc, damageIndex); ((BaseUnityPlugin)this).Logger.LogDebug((object)"6"); } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(KnockbackFin.StaticName + " #1 - IL Fail #3")); } }; } if (BolsteringLantern.Rework.Value > 0) { CharacterBody.RecalculateStats += (Manipulator)delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_00b0: Unknown result type (might be due to invalid IL or missing references) ILCursor val16 = new ILCursor(il); if (val16.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "LowerHealthHigherDamageBuff"), (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "HasBuff") })) { ILLabel val17 = default(ILLabel); val16.GotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchBrfalse(x, ref val17) }); val16.Emit(OpCodes.Br, val16.Next); } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(BolsteringLantern.StaticName + " #0 - IL Fail #1")); } }; } if (BolsteringLantern.Rework.Value == 1) { object obj3 = <>c.<>9__5_8; if (obj3 == null) { hook_UpdateLowerHealthHigherDamage val3 = delegate(orig_UpdateLowerHealthHigherDamage orig, CharacterBody body) { if (NetworkServer.active) { int num3 = (Object.op_Implicit((Object)(object)body.inventory) ? body.inventory.GetItemCount(Items.LowerHealthHigherDamage) : 0); if (num3 > 0) { float normalizedHealth = body.healthComponent.GetNormalizedHealth(); if (normalizedHealth <= (float)BolsteringLantern.LowHealth.Value / 100f && !body.HasBuff(Buffs.LowerHealthHigherDamageBuff)) { body.AddBuff(Buffs.LowerHealthHigherDamageBuff); Util.PlaySound("Play_item_proc_lowerHealthHigherDamage_proc", ((Component)body).gameObject); } else if (normalizedHealth >= (float)BolsteringLantern.HighHealth.Value / 100f && body.HasBuff(Buffs.LowerHealthHigherDamageBuff)) { body.RemoveBuff(Buffs.LowerHealthHigherDamageBuff); } } else if (num3 <= 0 && body.HasBuff(Buffs.LowerHealthHigherDamageBuff)) { body.RemoveBuff(Buffs.LowerHealthHigherDamageBuff); } } }; <>c.<>9__5_8 = val3; obj3 = (object)val3; } CharacterBody.UpdateLowerHealthHigherDamage += (hook_UpdateLowerHealthHigherDamage)obj3; GlobalEventManager.ProcessHitEnemy += (hook_ProcessHitEnemy)delegate(orig_ProcessHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim) { //IL_006e: 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_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, damageInfo, victim); if (Object.op_Implicit((Object)(object)damageInfo.attacker) && damageInfo.procCoefficient > 0f) { CharacterBody component3 = damageInfo.attacker.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component3) && component3.HasBuff(Buffs.LowerHealthHigherDamageBuff)) { int itemCount2 = component3.inventory.GetItemCount(Items.LowerHealthHigherDamage); InflictDotInfo val14 = default(InflictDotInfo); val14.attackerObject = damageInfo.attacker; val14.victimObject = victim; val14.totalDamage = damageInfo.damage * (BolsteringLantern.Damage_Base.Value + BolsteringLantern.Damage_Stack.Value * (float)(itemCount2 - 1)) / 100f; val14.damageMultiplier = 1f; val14.duration = 0.1f; val14.dotIndex = (DotIndex)1; InflictDotInfo val15 = val14; StrengthenBurnUtils.CheckDotForUpgrade(component3.inventory, ref val15); DotController.InflictDot(ref val15); } } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(KnockbackFin.StaticName + " #1 - IL Fail #1")); } }; } if (BolsteringLantern.Rework.Value == 2) { new LanternCountBuff(); object obj4 = <>c.<>9__5_10; if (obj4 == null) { hook_UpdateLowerHealthHigherDamage val4 = delegate { }; <>c.<>9__5_10 = val4; obj4 = (object)val4; } CharacterBody.UpdateLowerHealthHigherDamage += (hook_UpdateLowerHealthHigherDamage)obj4; object obj5 = <>c.<>9__5_11; if (obj5 == null) { hook_FixedUpdate val5 = delegate(orig_FixedUpdate orig, CharacterBody body) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(body); int num2 = ((Object.op_Implicit((Object)(object)body) && Object.op_Implicit((Object)(object)body.inventory)) ? body.inventory.GetItemCount(Items.LowerHealthHigherDamage) : 0); if (num2 > 0) { MinionGroup val12 = MinionGroup.FindGroup(body.masterObjectId); body.SetBuffCount(LanternCountBuff.LanternCounter.buffIndex, num2); if (val12 != null) { MinionOwnership[] members = val12.members; foreach (MinionOwnership val13 in members) { if (!((Object)(object)val13 == (Object)null)) { CharacterMaster component2 = ((Component)val13).GetComponent<CharacterMaster>(); if (Object.op_Implicit((Object)(object)component2) && Object.op_Implicit((Object)(object)component2.inventory) && Object.op_Implicit((Object)(object)component2.GetBody())) { component2.GetBody().SetBuffCount(LanternCountBuff.LanternCounter.buffIndex, num2); } } } } } }; <>c.<>9__5_11 = val5; obj5 = (object)val5; } CharacterBody.FixedUpdate += (hook_FixedUpdate)obj5; object obj6 = <>c.<>9__5_12; if (obj6 == null) { hook_ProcessHitEnemy val6 = delegate(orig_ProcessHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim) { //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, damageInfo, victim); if (Object.op_Implicit((Object)(object)damageInfo.attacker) && damageInfo.procCoefficient > 0f) { CharacterBody component = damageInfo.attacker.GetComponent<CharacterBody>(); int buffCount = component.GetBuffCount(LanternCountBuff.LanternCounter); if (Object.op_Implicit((Object)(object)component) && buffCount > 0 && Util.CheckRoll(BolsteringLantern.Chance_Base.Value + BolsteringLantern.Chance_Stack.Value * (float)(buffCount - 1), 0f, (CharacterMaster)null)) { Inventory val9 = ((component.master.minionOwnership.group != null && Object.op_Implicit((Object)(object)component.master.minionOwnership.group.resolvedOwnerMaster)) ? component.master.minionOwnership.group.resolvedOwnerMaster.inventory : component.inventory); InflictDotInfo val10 = default(InflictDotInfo); val10.attackerObject = damageInfo.attacker; val10.victimObject = victim; val10.totalDamage = damageInfo.damage * (BolsteringLantern.Damage_Base.Value + BolsteringLantern.Damage_Stack.Value * (float)(buffCount - 1)) / 100f; val10.damageMultiplier = 1f; val10.duration = 0.1f; val10.dotIndex = (DotIndex)1; InflictDotInfo val11 = val10; StrengthenBurnUtils.CheckDotForUpgrade(val9, ref val11); DotController.InflictDot(ref val11); } } }; <>c.<>9__5_12 = val6; obj6 = (object)val6; } GlobalEventManager.ProcessHitEnemy += (hook_ProcessHitEnemy)obj6; } if (AntlerShield.Rework.Value != 1) { return; } CharacterBody.RecalculateStats += (Manipulator)delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0091: Unknown result type (might be due to invalid IL or missing references) ILCursor val8 = new ILCursor(il); if (val8.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchCall<CharacterBody>(x, "set_armor"), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "Cripple") })) { int index = val8.Index; val8.Index = index + 1; val8.Emit(OpCodes.Ldarg_0); val8.EmitDelegate<Action<CharacterBody>>((Action<CharacterBody>)delegate(CharacterBody body) { int num = (Object.op_Implicit((Object)(object)body.inventory) ? body.inventory.GetItemCount(Items.NegateAttack) : 0); if (num > 0) { body.armor += (AntlerShield.Armor_Percent_Base.Value + AntlerShield.Armor_Percent_Stack.Value * (float)(num - 1)) / 100f * body.moveSpeed; body.moveSpeed *= 1f + (AntlerShield.Movement_Base.Value + AntlerShield.Movement_Stack.Value * (float)(num - 1)) / 100f; } }); } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(AntlerShield.StaticName + " #1 - IL Fail #1")); } }; HealthComponent.TakeDamageProcess += (Manipulator)delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val7 = new ILCursor(il); if (val7.TryGotoNext(new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdfld(x, typeof(ItemCounts), "antlerShield"), (Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 0) })) { val7.Index += 2; val7.EmitDelegate<Func<int, int>>((Func<int, int>)((int stack) => int.MaxValue)); } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(AntlerShield.StaticName + " #2 - IL Fail #1")); } }; } private void SetUpUncommonItems() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Expected O, but got Unknown //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Expected O, but got Unknown //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Expected O, but got Unknown //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Expected O, but got Unknown if (SaleStar.Rework.Value == 1) { PurchaseInteraction.OnInteractionBegin += (Manipulator)delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val11 = new ILCursor(il); int num7 = default(int); if (val11.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Items), "LowerPricedChests"), (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<Inventory>(x, "GetItemCount"), (Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, ref num7) })) { val11.Index += 3; val11.EmitDelegate<Func<int, int>>((Func<int, int>)((int stack) => int.MaxValue)); } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(SaleStar.StaticName + " #1 - IL Fail #1")); } }; object obj = <>c.<>9__6_1; if (obj == null) { hook_OnInteractionBegin val = delegate(orig_OnInteractionBegin orig, PurchaseInteraction self, Interactor activator) { //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, activator); CharacterBody component = ((Component)activator).GetComponent<CharacterBody>(); int num5 = (Object.op_Implicit((Object)(object)component.inventory) ? component.inventory.GetItemCount(Items.LowerPricedChests) : 0); if (num5 > 0 && self.saleStarCompatible) { if (Object.op_Implicit((Object)(object)((Component)self).GetComponent<ChestBehavior>())) { ChestBehavior component2 = ((Component)self).GetComponent<ChestBehavior>(); component2.dropCount++; } else if (Object.op_Implicit((Object)(object)((Component)self).GetComponent<RouletteChestController>())) { RouletteChestController component3 = ((Component)self).GetComponent<RouletteChestController>(); component3.dropCount++; } float num6 = (SaleStar.IsHyperbolic.Value ? Util.ConvertAmplificationPercentageIntoReductionPercentage(SaleStar.Consume_Stack.Value * (float)(num5 - 1)) : (SaleStar.Consume_Stack.Value * (float)(num5 - 1))); if (Util.CheckRoll(SaleStar.Consume_Base.Value - num6, component.master)) { component.inventory.RemoveItem(Items.LowerPricedChests, num5); component.inventory.GiveItem(Items.LowerPricedChestsConsumed, num5); CharacterMasterNotificationQueue.SendTransformNotification(component.master, Items.LowerPricedChests.itemIndex, Items.LowerPricedChestsConsumed.itemIndex, (TransformationType)6); } Util.PlaySound("Play_item_proc_lowerPricedChest", ((Component)self).gameObject); } }; <>c.<>9__6_1 = val; obj = (object)val; } PurchaseInteraction.OnInteractionBegin += (hook_OnInteractionBegin)obj; } if (UnstableTransmitter.Rework.Value == 1) { object obj2 = <>c.<>9__6_2; if (obj2 == null) { hook_RpcTeleportCharacterToSafety val2 = delegate(orig_RpcTeleportCharacterToSafety orig, CharacterBody self) { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Expected O, but got Unknown //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0069: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_0115: 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_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) if (self.hasEffectiveAuthority) { self.hasTeleported = true; int itemCount2 = self.inventory.GetItemCount(Items.TeleportOnLowHealth); EntityStateMachine.FindByCustomName(((Component)self).gameObject, "Body").SetNextState((EntityState)(object)new IntangibleSkillState()); List<HurtBox> list = CollectionPool<HurtBox, List<HurtBox>>.RentCollection(); SphereSearch val7 = new SphereSearch(); val7.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask; val7.origin = self.transform.position; val7.radius = UnstableTransmitter.Range.Value; val7.queryTriggerInteraction = (QueryTriggerInteraction)0; val7.RefreshCandidates(); val7.FilterCandidatesByHurtBoxTeam(TeamMask.GetEnemyTeams(self.teamComponent.teamIndex)); val7.OrderCandidatesByDistance(); val7.FilterCandidatesByDistinctHurtBoxEntities(); val7.GetHurtBoxes(list); val7.ClearCandidates(); for (int j = 0; j < list.Count; j++) { HurtBox val8 = list[j]; CharacterBody body = val8.healthComponent.body; if (Object.op_Implicit((Object)(object)val8) && Object.op_Implicit((Object)(object)val8.healthComponent) && val8.healthComponent.alive) { InflictDotInfo val9 = default(InflictDotInfo); val9.attackerObject = ((Component)self).gameObject; val9.victimObject = ((Component)body).gameObject; val9.dotIndex = (DotIndex)0; val9.damageMultiplier = self.damage * ((UnstableTransmitter.Damage_Base.Value + UnstableTransmitter.Damage_Stack.Value * (float)(itemCount2 - 1)) / 150f); val9.duration = 3f; InflictDotInfo val10 = val9; DotController.InflictDot(ref val10); } } } }; <>c.<>9__6_2 = val2; obj2 = (object)val2; } CharacterBody.RpcTeleportCharacterToSafety += (hook_RpcTeleportCharacterToSafety)obj2; HealthComponent.UpdateLastHitTime += (Manipulator)delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val5 = new ILCursor(il); int num4 = default(int); ILLabel val6 = default(ILLabel); if (val5.TryGotoNext(new Func<Instruction, bool>[5] { (Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, ref num4), (Instruction x) => ILPatternMatchingExt.MatchBle(x, ref val6), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdfld<HealthComponent>(x, "body"), (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "TeleportOnLowHealth") })) { val5.EmitDelegate<Func<int, int>>((Func<int, int>)((int stack) => int.MaxValue)); } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(BolsteringLantern.StaticName + " #1 - IL Fail #1")); } }; object obj3 = <>c.<>9__6_4; if (obj3 == null) { hook_UpdateLastHitTime val3 = delegate(orig_UpdateLastHitTime orig, HealthComponent self, float damageValue, Vector3 damagePosition, bool damageIsSilent, GameObject attacker) { //IL_00f7: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active && Object.op_Implicit((Object)(object)self.body) && damageValue > 0f) { float num2 = (self.health + self.shield) / self.combinedHealth; int num3 = (Object.op_Implicit((Object)(object)self.body.inventory) ? self.body.inventory.GetItemCount(Items.TeleportOnLowHealth) : 0); bool flag = Object.op_Implicit((Object)(object)self.body) && self.body.HasBuff(Buffs.TeleportOnLowHealth); if (num2 <= (float)UnstableTransmitter.LowHealth.Value / 100f && num3 > 0 && flag) { self.body.hasTeleported = true; self.body.RemoveBuff(Buffs.TeleportOnLowHealth); self.body.AddTimedBuff(Buffs.TeleportOnLowHealthCooldown, UnstableTransmitter.Refresh.Value); self.body.CallRpcTeleportCharacterToSafety(); } } orig.Invoke(self, damageValue, damagePosition, damageIsSilent, attacker); }; <>c.<>9__6_4 = val3; obj3 = (object)val3; } HealthComponent.UpdateLastHitTime += (hook_UpdateLastHitTime)obj3; } if (OldWarStealthKit.Rework.Value != 1) { return; } PhasingBodyBehavior.FixedUpdate += (Manipulator)delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0080: Unknown result type (might be due to invalid IL or missing references) ILCursor val4 = new ILCursor(il); if (val4.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchCall(x, typeof(BaseItemBodyBehavior), "get_body"), (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "Cloak") })) { val4.Emit(OpCodes.Ldarg_0); val4.EmitDelegate<Action<PhasingBodyBehavior>>((Action<PhasingBodyBehavior>)delegate(PhasingBodyBehavior itemBase) { //IL_00a6: 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_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Expected O, but got Unknown int activeBuffsListCount = ((BaseItemBodyBehavior)itemBase).body.activeBuffsListCount; int itemCount = ((BaseItemBodyBehavior)itemBase).body.inventory.GetItemCount(Items.Phasing); int num = 1 + itemCount; for (int i = 0; i < activeBuffsListCount; i++) { BuffDef buffDef = BuffCatalog.GetBuffDef(((BaseItemBodyBehavior)itemBase).body.activeBuffsList[i]); if (buffDef.isDebuff && num > 0) { num--; i--; ((BaseItemBodyBehavior)itemBase).body.RemoveBuff(buffDef); } else if (num <= 0) { break; } } if (num < 1 + itemCount) { EffectManager.SpawnEffect(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/CleanseEffect"), new EffectData { origin = ((BaseItemBodyBehavior)itemBase).body.transform.position }, true); } }); } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(OldWarStealthKit.StaticName + " #1 - IL Fail #1")); } }; } private void SetUpLegendaryItems() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //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_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Expected O, but got Unknown //IL_005e: 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_0069: Expected O, but got Unknown //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Expected O, but got Unknown //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Expected O, but got Unknown //IL_00bb: 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_00c6: Expected O, but got Unknown if (WarBonds.Rework.Value == 1) { CharacterBody.Start += (Manipulator)delegate(ILContext il) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) ILCursor val10 = new ILCursor(il); int itemIndex = -1; int num6 = default(int); ILLabel val11 = default(ILLabel); if (val10.TryGotoNext(new Func<Instruction, bool>[5] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref itemIndex), (Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, ref num6), (Instruction x) => ILPatternMatchingExt.MatchBle(x, ref val11), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Items), "GoldOnStageStart") })) { val10.Emit(OpCodes.Ldloc, itemIndex); val10.EmitDelegate<Func<int, int>>((Func<int, int>)((int stack) => 0)); val10.Emit(OpCodes.Stloc, itemIndex); } else { ((BaseUnityPlugin)this).Logger.LogWarning((object)(WarBonds.StaticName + " #1 - IL Fail #1")); } }; object obj = <>c.<>9__7_1; if (obj == null) { hook_Start val = delegate(orig_Start orig, CharacterBody self) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); int num5 = ((Object.op_Implicit((Object)(object)self.master) && Object.op_Implicit((Object)(object)self.master.inventory) && NetworkServer.active) ? self.master.inventory.GetItemCount(Items.GoldOnStageStart) : 0); if (num5 > 0) { self.SetBuffCount(Buffs.FreeUnlocks.buffIndex, WarBonds.Purchase_Base.Value + WarBonds.Purchase_Stack.Value * (num5 - 1)); } }; <>c.<>9__7_1 = val; obj = (object)val; } CharacterBody.Start += (hook_Start)obj; object obj2 = <>c.<>9__7_2; if (obj2 == null) { Manipulator val2 = delegate(ILContext il) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b