Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of DeltaruneMod v2.2.2
DeltaruneMod.dll
Decompiled 2 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using DeltaruneMod.Characters.Modules; using DeltaruneMod.Characters.Modules.BaseContent.BaseStates; using DeltaruneMod.Characters.Modules.BaseContent.Characters; using DeltaruneMod.Characters.RoaringKnight.SkillStates; using DeltaruneMod.Elite; using DeltaruneMod.Elites; using DeltaruneMod.Interactables; using DeltaruneMod.Interactables.SusExchange.TradingItems; using DeltaruneMod.Items; using DeltaruneMod.Items.Lunar; using DeltaruneMod.Items.Spamton; using DeltaruneMod.Items.Tier1.Gacha; using DeltaruneMod.Items.Yellow; using DeltaruneMod.NeoMithrix; using DeltaruneMod.Unlocks; using DeltaruneMod.Util; using EntityStates; using EntityStates.AI.Walker; using EntityStates.Commando; using EntityStates.Commando.CommandoWeapon; using EntityStates.Croco; using EntityStates.Mage.Weapon; using HG; using HG.BlendableTypes; using IL.RoR2; using Microsoft.CodeAnalysis; using Mono.Cecil; using Mono.Cecil.Cil; using MonoMod.Cil; using On.RoR2; using On.RoR2.Orbs; using R2API; using RiskOfOptions; using RiskOfOptions.Options; using RoR2; using RoR2.Achievements; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.Hologram; using RoR2.Navigation; using RoR2.Orbs; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.UI; [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("DeltaruneMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+412cd7c4b9fac638e4325847ede2e0f2333335b3")] [assembly: AssemblyProduct("DeltaruneMod")] [assembly: AssemblyTitle("DeltaruneMod")] [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.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [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 DeltaruneMod { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("AGU.DeltaruneMod", "DeltaruneMod", "2.2.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class DeltarunePlugin : BaseUnityPlugin { [CompilerGenerated] private sealed class <LoadSoundBankWhenReady>d__25 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public DeltarunePlugin <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <LoadSoundBankWhenReady>d__25(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; goto IL_0051; case 1: <>1__state = -1; goto IL_0051; case 2: { <>1__state = -1; SoundBank.Init(); return false; } IL_0051: if (!AkSoundEngine.IsInitialized()) { Debug.Log((object)"Waiting for sound engine"); <>2__current = null; <>1__state = 1; return true; } <>2__current = (object)new WaitForSeconds(0.5f); <>1__state = 2; return true; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public const string PluginGUID = "AGU.DeltaruneMod"; public const string PluginAuthor = "AGU"; public const string PluginName = "DeltaruneMod"; public const string PluginVersion = "2.2.0"; public static DeltarunePlugin Instance; public static CharacterMaster characterMaster; public static CharacterBody characterBody; public static AssetBundle MainAssets; public List<ItemBase> Items = new List<ItemBase>(); public List<InteractableBase> Interactables = new List<InteractableBase>(); public static HashSet<ItemDef> BlacklistedFromPrinter = new HashSet<ItemDef>(); public static ConfigEntry<bool>? useChapter1; public static ConfigEntry<bool>? useChapter2; public static ConfigEntry<bool>? useChapter3; public static ConfigEntry<bool>? useChapter4; public static ConfigEntry<bool>? neoEliteDisable; public static ConfigEntry<int>? neoEliteMaxBuffs; public static ConfigEntry<float>? neoEliteDamageMult; public static ConfigEntry<bool>? allEnemiesNEO; public static ConfigEntry<int>? susExchangeChance; public static ConfigEntry<int>? susExchangeMaxUses; public static ConfigEntry<bool>? susExchangeMusicDisabled; public static ConfigEntry<bool>? antiFunMode; public static Material malachiteOverlayMat = new Material(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/ElitePoison/matElitePoisonOverlay.mat").WaitForCompletion()); public void Awake() { //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Expected O, but got Unknown //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Expected O, but got Unknown //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Expected O, but got Unknown //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Expected O, but got Unknown //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Expected O, but got Unknown //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Expected O, but got Unknown //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Expected O, but got Unknown //IL_0346: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Expected O, but got Unknown //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Expected O, but got Unknown //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_03b4: Expected O, but got Unknown //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Expected O, but got Unknown //IL_04d3: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Expected O, but got Unknown ModSettingsManager.SetModDescription("Adds various aspects to the game inspired by Deltarune."); useChapter1 = ((BaseUnityPlugin)this).Config.Bind<bool>("Chapter Settings", "Use Chapter 1 Features", true, "Enable or Disable Chapter 1"); useChapter2 = ((BaseUnityPlugin)this).Config.Bind<bool>("Chapter Settings", "Use Chapter 2 Features", true, "Enable or Disable Chapter 2"); useChapter3 = ((BaseUnityPlugin)this).Config.Bind<bool>("Chapter Settings", "Use Chapter 3 Features", true, "Enable or Disable Chapter 3"); useChapter4 = ((BaseUnityPlugin)this).Config.Bind<bool>("Chapter Settings", "Use Chapter 4 Features", true, "Enable or Disable Chapter 4"); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(useChapter1)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(useChapter2)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(useChapter3)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(useChapter4)); Instance = this; Log.Init(((BaseUnityPlugin)this).Logger); Debug.Log((object)"Starting Model Intialization for DeltaruneMod"); using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("DeltaruneMod.AssetBundle.deltarune_mod")) { MainAssets = AssetBundle.LoadFromStream(stream); } Debug.Log((object)"Model Intialization for DeltaruneMod successful!"); Debug.Log((object)"Starting Item Intialization for DeltaruneMod"); IEnumerable<Type> enumerable = from type in Assembly.GetExecutingAssembly().GetTypes() where !type.IsAbstract && type.IsSubclassOf(typeof(ItemBase)) select type; foreach (Type item in enumerable) { ItemBase itemBase = (ItemBase)Activator.CreateInstance(item); if (ValidateItem(itemBase, Items)) { itemBase.Init(); Debug.Log((object)("Item: " + itemBase.ItemName + " Initialized!")); } } Debug.Log((object)"Item Intialization for DeltaruneMod successful!"); susExchangeChance = ((BaseUnityPlugin)this).Config.Bind<int>("Interactable Settings", "Change Exchange Rate", 40, "[REQUIRES RESTART] Changes the exchange rate at the Susipicous Exchange. Default: 40"); ModSettingsManager.AddOption((BaseOption)new IntFieldOption(susExchangeChance)); susExchangeMaxUses = ((BaseUnityPlugin)this).Config.Bind<int>("Interactable Settings", "Change Max Uses", 10, "[REQUIRES RESTART] Changes the maximum uses at the Susipicous Exchange. Default: 10"); ModSettingsManager.AddOption((BaseOption)new IntFieldOption(susExchangeMaxUses)); susExchangeMusicDisabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactable Settings", "Disable Suspicious Exchange Music", false, "[REQUIRES RESTART] Disables the music at the Susipicious Exchange."); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(susExchangeMusicDisabled)); Log.Debug("Trashcan empty... loading!"); IEnumerable<Type> enumerable2 = from type in Assembly.GetExecutingAssembly().GetTypes() where !type.IsAbstract && type.IsSubclassOf(typeof(InteractableBase)) select type; foreach (Type item2 in enumerable2) { InteractableBase interactableBase = (InteractableBase)Activator.CreateInstance(item2); if (ValidateInteractable(interactableBase, Interactables)) { interactableBase.Init(); Debug.Log((object)("Interactable: " + interactableBase.InteractableName + " Initialized!")); } } Log.Debug("Trashcan full!"); neoEliteDisable = ((BaseUnityPlugin)this).Config.Bind<bool>("Elite Settings", "Disable N.E.O. Elite", false, "[REQUIRES RESTART] Disables N.E.O. Elites from spawning."); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(neoEliteDisable)); neoEliteMaxBuffs = ((BaseUnityPlugin)this).Config.Bind<int>("Elite Settings", "Change N.E.O. Elite Max Buffs", 2, "[REQUIRES RESTART] Changes the maximum buffs N.E.O. Elites spawn with. Default: 2"); ModSettingsManager.AddOption((BaseOption)new IntFieldOption(neoEliteMaxBuffs)); neoEliteDamageMult = ((BaseUnityPlugin)this).Config.Bind<float>("Elite Settings", "Change N.E.O. Elite DMG Multiplyer", 1.3f, "[REQUIRES RESTART] Changes the damage multiplayer of N.E.O. Elites. Default: 1.3x"); ModSettingsManager.AddOption((BaseOption)new FloatFieldOption(neoEliteDamageMult)); allEnemiesNEO = ((BaseUnityPlugin)this).Config.Bind<bool>("Elite Settings", "Make (almost) all enemies N.E.O. Elites.", false, "Makes all possible enemies N.E.O. Elites."); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(allEnemiesNEO)); if (!neoEliteDisable.Value) { IEnumerable<Type> enumerable3 = from type in Assembly.GetExecutingAssembly().GetTypes() where !type.IsAbstract && type.IsSubclassOf(typeof(EliteBase)) select type; foreach (Type item3 in enumerable3) { EliteBase eliteBase = (EliteBase)Activator.CreateInstance(item3); eliteBase.Init(); Debug.Log((object)("Elite: " + eliteBase.EliteName + " Initialized!")); } } ((MonoBehaviour)this).StartCoroutine(LoadSoundBankWhenReady()); RemoveFromLootPool(); new NeoMithrixController(); new Hooks(); antiFunMode = ((BaseUnityPlugin)this).Config.Bind<bool>("Additional Settings", "(NOT RECOMMENDED!) Allow Suspicious Exchange items in Lootpool?", false, "(Use only with command, otherwise it just ruins the fun!)"); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(antiFunMode)); antiFunMode.SettingChanged += ToggleItemsForCommand; Log.Debug("DeltaruneMod loaded successfully!"); } [IteratorStateMachine(typeof(<LoadSoundBankWhenReady>d__25))] private IEnumerator LoadSoundBankWhenReady() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <LoadSoundBankWhenReady>d__25(0) { <>4__this = this }; } public bool ValidateItem(ItemBase item, List<ItemBase> itemList) { ItemBase item2 = item; ConfigEntry<bool> enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enable Item?", item2.ConfigCategory, true, "Should this item appear in runs?"); bool flag = item2.ItemTags.Contains((ItemTag)4); bool value = ((BaseUnityPlugin)this).Config.Bind<bool>(item2.ConfigCategory, "Blacklist Item from AI Use?", flag, "Should the AI not be able to obtain this item?").Value; bool value2 = ((BaseUnityPlugin)this).Config.Bind<bool>(item2.ConfigCategory, "Blacklist Item from Printers?", false, "Should the printers be able to print this item?").Value; useChapter1.SettingChanged += delegate { if (!useChapter1.Value && item2.isChapter1) { enabled.Value = false; } }; useChapter2.SettingChanged += delegate { if (!useChapter2.Value && item2.isChapter2) { enabled.Value = false; } }; useChapter3.SettingChanged += delegate { if (!useChapter3.Value && item2.isChapter3) { enabled.Value = false; } }; useChapter4.SettingChanged += delegate { if (!useChapter4.Value && item2.isChapter4) { enabled.Value = false; } }; if (enabled.Value) { itemList.Add(item2); if (value2) { item2.PrinterBlacklisted = true; } if (value) { item2.AIBlacklisted = true; } } return enabled.Value; } public bool ValidateInteractable(InteractableBase interactable, List<InteractableBase> interactableList) { InteractableBase interactable2 = interactable; ConfigEntry<bool> enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enable Interactable?", interactable2.ConfigCategory, true, "Should this interactable appear in runs?"); useChapter1.SettingChanged += delegate { if (!useChapter1.Value && interactable2.isChapter1) { enabled.Value = false; } }; useChapter2.SettingChanged += delegate { if (!useChapter2.Value && interactable2.isChapter2) { enabled.Value = false; } }; useChapter3.SettingChanged += delegate { if (!useChapter3.Value && interactable2.isChapter3) { enabled.Value = false; } }; useChapter4.SettingChanged += delegate { if (!useChapter4.Value && interactable2.isChapter4) { enabled.Value = false; } }; if (enabled.Value) { interactableList.Add(interactable2); } return enabled.Value; } public void ToggleItemsForCommand(object sender, EventArgs e) { List<ItemDef> toggleableItems = new List<ItemDef>(); toggleableItems.Add(ItemBase<BrokenHeart>.instance.ItemDef); toggleableItems.Add(ItemBase<CommRing>.instance.ItemDef); toggleableItems.Add(ItemBase<LightBulb>.instance.ItemDef); toggleableItems.Add(ItemBase<MalfunctiongCore>.instance.ItemDef); toggleableItems.Add(ItemBase<Pipis>.instance.ItemDef); toggleableItems.Add(ItemBase<MrPipis>.instance.ItemDef); Run.onRunSetRuleBookGlobal += delegate(Run run, RuleBook rulebook) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) foreach (ItemDef item in toggleableItems) { if (antiFunMode.Value) { try { run.availableItems.Add(item.itemIndex); } catch { Debug.Log((object)(((object)item)?.ToString() + " is already disabled!")); } } else if (!antiFunMode.Value) { try { run.availableItems.Remove(item.itemIndex); } catch { Debug.Log((object)(((object)item)?.ToString() + " is already enabled!")); } } } }; } public void RemoveFromLootPool() { List<ItemDef> blacklistedItems = new List<ItemDef>(); blacklistedItems.Add(ItemBase<BrokenHeart>.instance.ItemDef); blacklistedItems.Add(ItemBase<CommRing>.instance.ItemDef); blacklistedItems.Add(ItemBase<LightBulb>.instance.ItemDef); blacklistedItems.Add(ItemBase<MalfunctiongCore>.instance.ItemDef); blacklistedItems.Add(ItemBase<Pipis>.instance.ItemDef); blacklistedItems.Add(ItemBase<MrPipis>.instance.ItemDef); blacklistedItems.Add(ItemBase<Kromer>.instance.ItemDef); blacklistedItems.Add(ItemBase<BrokenHeartTradingItem>.instance.ItemDef); blacklistedItems.Add(ItemBase<CommRingTradingItem>.instance.ItemDef); blacklistedItems.Add(ItemBase<LightBulbTradingItem>.instance.ItemDef); blacklistedItems.Add(ItemBase<MalfunctiongCoreTradingItem>.instance.ItemDef); blacklistedItems.Add(ItemBase<RandomTradingItem>.instance.ItemDef); blacklistedItems.Add(ItemBase<FinalForm>.instance.ItemDef); blacklistedItems.Add(ItemBase<ThornRing>.instance.ItemDef); blacklistedItems.Add(ItemBase<PipisTradingItem>.instance.ItemDef); blacklistedItems.Add(ItemBase<MrPipisTradingItem>.instance.ItemDef); blacklistedItems.Add(ItemBase<GoldenIdol>.instance.ItemDef); blacklistedItems.Add(ItemBase<TVDinner>.instance.ItemDef); blacklistedItems.Add(ItemBase<ExecBuffet>.instance.ItemDef); blacklistedItems.Add(ItemBase<GingerGuard>.instance.ItemDef); blacklistedItems.Add(ItemBase<BlueRibbon>.instance.ItemDef); Run.onRunSetRuleBookGlobal += delegate(Run run, RuleBook rulebook) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) foreach (ItemDef item in blacklistedItems) { try { run.availableItems.Remove(item.itemIndex); } catch { Debug.Log((object)(((object)item)?.ToString() + " is already disabled!")); } } PickupDropTable.RegenerateAll(run); }; } private void Update() { } } } namespace DeltaruneMod.Util { public class Components { public class FollowTarget : MonoBehaviour { public Transform target; public Vector3 offset = Vector3.zero; public bool followRotation = false; private void FixedUpdate() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)target)) { ((Component)this).transform.position = target.position + offset; if (followRotation) { ((Component)this).transform.rotation = target.rotation; } } } } public class TextController : NetworkBehaviour { public TextMeshPro textMesh; public void SetText(string newText) { ((TMP_Text)textMesh).text = newText; } } public class Timer : MonoBehaviour { private float timer = 0f; private bool timerActive = false; public bool CallTimer(float interval) { timer = interval; timerActive = true; while (timer > 0f) { Debug.Log((object)("Timer: " + timer)); } return true; } private void Update() { if (timerActive) { timer -= Time.deltaTime; } } } } public abstract class CoreModule { public abstract string Name { get; } public abstract void Init(); } public static class Helpers { public static List<ItemDef> GetItems(int tierIndex) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Invalid comparison between Unknown and I4 //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: 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_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Invalid comparison between Unknown and I4 //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Invalid comparison between Unknown and I4 //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Invalid comparison between Unknown and I4 //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Invalid comparison between Unknown and I4 //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Invalid comparison between Unknown and I4 //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Invalid comparison between Unknown and I4 //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Invalid comparison between Unknown and I4 //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Invalid comparison between Unknown and I4 //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Invalid comparison between Unknown and I4 List<ItemDef> list = new List<ItemDef>(); for (ItemIndex val = (ItemIndex)0; (int)val < ItemCatalog.itemCount; val = (ItemIndex)(val + 1)) { ItemDef itemDef = ItemCatalog.GetItemDef(val); if ((Object)(object)itemDef == (Object)null || itemDef.ContainsTag((ItemTag)9)) { continue; } switch (tierIndex) { case 99: list.Add(itemDef); continue; case 0: if ((int)itemDef.tier == 0) { list.Add(itemDef); continue; } break; } if (tierIndex == 1 && (int)itemDef.tier == 1) { list.Add(itemDef); } else if (tierIndex == 2 && (int)itemDef.tier == 2) { list.Add(itemDef); } else if (tierIndex == 3 && (int)itemDef.tier == 3) { list.Add(itemDef); } else if (tierIndex == 4 && (int)itemDef.tier == 4) { list.Add(itemDef); } else if (tierIndex == 5 && (int)itemDef.tier == 5) { list.Add(itemDef); } else if (tierIndex == 6 && (int)itemDef.tier == 6) { list.Add(itemDef); } else if (tierIndex == 7 && (int)itemDef.tier == 7) { list.Add(itemDef); } else if (tierIndex == 8 && (int)itemDef.tier == 8) { list.Add(itemDef); } else if (tierIndex == 9 && (int)itemDef.tier == 9) { list.Add(itemDef); } else if (tierIndex == 10 && (int)itemDef.tier == 11) { list.Add(itemDef); } } return list; } public static List<ItemDef> GetAllPermenantItemsFromInventory(Inventory inv) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) List<ItemDef> list = new List<ItemDef>(); for (ItemIndex val = (ItemIndex)0; (int)val < ItemCatalog.itemCount; val = (ItemIndex)(val + 1)) { ItemDef itemDef = ItemCatalog.GetItemDef(val); if (!((Object)(object)itemDef == (Object)null) && inv.GetItemCountPermanent(val) > 0) { list.Add(itemDef); } } return list; } public static List<ItemDef> GetAllTempItemsFromInventory(Inventory inv) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) List<ItemDef> list = new List<ItemDef>(); for (ItemIndex val = (ItemIndex)0; (int)val < ItemCatalog.itemCount; val = (ItemIndex)(val + 1)) { ItemDef itemDef = ItemCatalog.GetItemDef(val); if (!((Object)(object)itemDef == (Object)null) && inv.GetItemCountTemp(val) > 0) { list.Add(itemDef); } } return list; } public static List<BuffDef> GetBuffs(int type) { List<BuffDef> list = new List<BuffDef>(); FieldInfo[] fields = typeof(Buffs).GetFields(BindingFlags.Static | BindingFlags.Public); FieldInfo[] array = fields; foreach (FieldInfo fieldInfo in array) { object? value = fieldInfo.GetValue(null); BuffDef val = (BuffDef)((value is BuffDef) ? value : null); if (val != null && !val.isHidden) { if (type == 0 && !val.isElite && !val.isDebuff) { list.Add(val); } else if (type == 1 && val.isDebuff) { list.Add(val); } else if (type == 2 && val.isElite) { list.Add(val); } else if (type == 99) { list.Add(val); } } } fields = typeof(Buffs).GetFields(BindingFlags.Static | BindingFlags.Public); FieldInfo[] array2 = fields; foreach (FieldInfo fieldInfo2 in array2) { object? value2 = fieldInfo2.GetValue(null); BuffDef val2 = (BuffDef)((value2 is BuffDef) ? value2 : null); if (val2 != null && !val2.isHidden) { if (type == 0 && !val2.isElite && !val2.isDebuff) { list.Add(val2); } else if (type == 1 && val2.isDebuff) { list.Add(val2); } else if (type == 2 && val2.isElite) { list.Add(val2); } else if (type == 99) { list.Add(val2); } } } fields = typeof(Buffs).GetFields(BindingFlags.Static | BindingFlags.Public); FieldInfo[] array3 = fields; foreach (FieldInfo fieldInfo3 in array3) { object? value3 = fieldInfo3.GetValue(null); BuffDef val3 = (BuffDef)((value3 is BuffDef) ? value3 : null); if (val3 != null && !val3.isHidden) { if (type == 0 && !val3.isElite && !val3.isDebuff) { list.Add(val3); } else if (type == 1 && val3.isDebuff) { list.Add(val3); } else if (type == 2 && val3.isElite) { list.Add(val3); } else if (type == 99) { list.Add(val3); } } } return list; } public static void CreateEffectPrefab(GameObject obj, bool isFollower) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) EffectComponent val = obj.GetComponent<EffectComponent>(); if (!Object.op_Implicit((Object)(object)val)) { val = obj.AddComponent<EffectComponent>(); } val.applyScale = isFollower; val.effectIndex = (EffectIndex)(-1); val.parentToReferencedTransform = isFollower; val.positionAtReferencedTransform = isFollower; ContentAddition.AddEffect(obj); } public static void AddEffectPrefabToContentAddition(GameObject obj) { if (!Object.op_Implicit((Object)(object)obj.GetComponent<NetworkIdentity>())) { obj.AddComponent<NetworkIdentity>(); } if (!Object.op_Implicit((Object)(object)obj.GetComponent<EffectComponent>())) { obj.AddComponent<EffectComponent>(); } ContentAddition.AddEffect(obj); } public static void CreateNetworkedObjectPrefab(GameObject obj) { if (!Object.op_Implicit((Object)(object)obj.GetComponent<NetworkIdentity>())) { obj.AddComponent<NetworkIdentity>(); } PrefabAPI.RegisterNetworkPrefab(obj); ContentAddition.AddNetworkedObject(obj); } public static void CreateNetworkedProjectilePrefab(GameObject obj) { if (!Object.op_Implicit((Object)(object)obj.GetComponent<ProjectileController>())) { obj.AddComponent<ProjectileController>(); } if (!Object.op_Implicit((Object)(object)obj.GetComponent<ProjectileSimple>())) { obj.AddComponent<ProjectileSimple>(); } if (!Object.op_Implicit((Object)(object)obj.GetComponent<NetworkIdentity>())) { obj.AddComponent<NetworkIdentity>(); } PrefabAPI.RegisterNetworkPrefab(obj); ContentAddition.AddProjectile(obj); } public static GameObject ModifyVanillaPrefab(string addressablePath, string newName, bool shouldNetwork, Func<GameObject, GameObject> modifierCallback) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)addressablePath).WaitForCompletion(), "Temporary Setup Prefab", false); GameObject val2 = modifierCallback(val); GameObject result = PrefabAPI.InstantiateClone(val2, newName, shouldNetwork); Object.Destroy((Object)(object)val); Object.Destroy((Object)(object)val2); return result; } public static NetworkSoundEventDef CreateNetworkSoundEventDef(string eventName) { NetworkSoundEventDef val = ScriptableObject.CreateInstance<NetworkSoundEventDef>(); val.akId = AkSoundEngine.GetIDFromString(eventName); val.eventName = eventName; ContentAddition.AddNetworkSoundEventDef(val); return val; } public static void GetAllComponentNames(GameObject obj) { Component[] components = obj.GetComponents<Component>(); foreach (Component val in components) { Debug.Log((object)(((object)obj)?.ToString() + ": " + (object)val)); } } public static void GetAllTransformNames(GameObject obj) { Transform[] componentsInChildren = obj.GetComponentsInChildren<Transform>(); foreach (Transform val in componentsInChildren) { Debug.Log((object)(((Object)val.parent).name + ": " + ((Object)val).name)); } } public static void AddPersistentListener(this UnityEvent<MPButton, PickupDef> unityEvent, UnityAction<MPButton, PickupDef> action) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Expected O, but got Unknown //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) PersistentCallGroup persistentCalls = ((UnityEventBase)unityEvent).m_PersistentCalls; PersistentCall val = new PersistentCall(); ref Object target = ref val.m_Target; object? target2 = ((Delegate)(object)action).Target; target = (Object)((target2 is Object) ? target2 : null); val.m_TargetAssemblyTypeName = UnityEventTools.TidyAssemblyTypeName(((Delegate)(object)action).Method.DeclaringType.AssemblyQualifiedName); val.m_MethodName = ((Delegate)(object)action).Method.Name; val.m_CallState = (UnityEventCallState)2; val.m_Mode = (PersistentListenerMode)0; persistentCalls.AddListener(val); } public static void AddPersistentListener(this UnityEvent<int> unityEvent, UnityAction<int> action) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Expected O, but got Unknown //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) PersistentCallGroup persistentCalls = ((UnityEventBase)unityEvent).m_PersistentCalls; PersistentCall val = new PersistentCall(); ref Object target = ref val.m_Target; object? target2 = ((Delegate)(object)action).Target; target = (Object)((target2 is Object) ? target2 : null); val.m_TargetAssemblyTypeName = UnityEventTools.TidyAssemblyTypeName(((Delegate)(object)action).Method.DeclaringType.AssemblyQualifiedName); val.m_MethodName = ((Delegate)(object)action).Method.Name; val.m_CallState = (UnityEventCallState)2; val.m_Mode = (PersistentListenerMode)0; persistentCalls.AddListener(val); } public static void AddPersistentListener(this UnityEvent<Interactor> unityEvent, UnityAction<Interactor> action) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Expected O, but got Unknown //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) PersistentCallGroup persistentCalls = ((UnityEventBase)unityEvent).m_PersistentCalls; PersistentCall val = new PersistentCall(); ref Object target = ref val.m_Target; object? target2 = ((Delegate)(object)action).Target; target = (Object)((target2 is Object) ? target2 : null); val.m_TargetAssemblyTypeName = UnityEventTools.TidyAssemblyTypeName(((Delegate)(object)action).Method.DeclaringType.AssemblyQualifiedName); val.m_MethodName = ((Delegate)(object)action).Method.Name; val.m_CallState = (UnityEventCallState)2; val.m_Mode = (PersistentListenerMode)0; persistentCalls.AddListener(val); } public static Texture2D CreateGradientTexture(Color32[] colors, int width, int height) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Expected O, but got Unknown //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) Texture2D val = new Texture2D(width, height); ((Texture)val).wrapMode = (TextureWrapMode)1; for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { float num = (float)j / (float)(width - 1); float num2 = num * (float)(colors.Length - 1); int num3 = Mathf.FloorToInt(num2); float t = num2 - (float)num3; if (num3 >= colors.Length - 1) { num3 = colors.Length - 2; t = 1f; } Color32 val2 = LerpColor32(colors[num3], colors[num3 + 1], t); val.SetPixel(j, i, Color32.op_Implicit(val2)); } } val.Apply(); DeltarunePlugin.malachiteOverlayMat.SetTexture("_RemapTex", (Texture)(object)val); return val; } public static Color32 LerpColor32(Color32 colorA, Color32 colorB, float t) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004a: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) byte b = (byte)Mathf.Lerp((float)(int)colorA.r, (float)(int)colorB.r, t); byte b2 = (byte)Mathf.Lerp((float)(int)colorA.g, (float)(int)colorB.g, t); byte b3 = (byte)Mathf.Lerp((float)(int)colorA.b, (float)(int)colorB.b, t); byte b4 = (byte)Mathf.Lerp((float)(int)colorA.a, (float)(int)colorB.a, t); return new Color32(b, b2, b3, b4); } } public class Hooks { private int numOfEnemiesSpawned = 0; public Hooks() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown CharacterMaster.OnBodyStart += new hook_OnBodyStart(CharacterMaster_OnBodyStart); } private void CharacterMaster_OnBodyStart(orig_OnBodyStart orig, CharacterMaster self, CharacterBody body) { //IL_0066: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, body); if (!DeltarunePlugin.neoEliteDisable.Value && DeltarunePlugin.allEnemiesNEO.Value && !body.isPlayerControlled && !body.isRemoteOp && !body.IsDrone) { numOfEnemiesSpawned++; body.inventory.SetEquipmentIndex(EliteBase<NeoElite>.instance.EliteEquip.equipmentIndex, true); } } } 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); } } public static class SoundBank { public static uint _soundBankId; public const string soundBankFolderName = "AGU-DeltaruneMod"; public const string soundBankFileName = "DeltaruneSoundBank.bnk"; public static string SoundBankDirectory => Path.GetDirectoryName(((BaseUnityPlugin)DeltarunePlugin.Instance).Info.Location); public static void Init() { //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Invalid comparison between Unknown and I4 //IL_00d1: Unknown result type (might be due to invalid IL or missing references) Debug.Log((object)SoundBankDirectory); try { string text = ((!SoundBankDirectory.Contains("AGU-DeltaruneMod")) ? Path.Combine(SoundBankDirectory, "AGU-DeltaruneMod", "DeltaruneSoundBank.bnk") : Path.Combine(SoundBankDirectory, "DeltaruneSoundBank.bnk")); Debug.Log((object)(SoundBankDirectory + " ||| DeltaruneSoundBank.bnk")); Debug.Log((object)$"SoundBank size: {new FileInfo(text).Length} bytes"); Debug.Log((object)"Attempting to load sound bank..."); if (!File.Exists(text)) { Debug.Log((object)"Sound bank path does not exist!!"); return; } AKRESULT val = AkSoundEngine.LoadBank(text, ref _soundBankId); if ((int)val == 1) { Debug.Log((object)"SoundBank loaded successfully!"); } else { Debug.Log((object)$"SoundBank failed to load. {val}"); } SoundBanks.Add(text); } catch (Exception ex) { Debug.Log((object)("Failed to load soundbank: " + ex)); } } } public class StatHooks : CoreModule { public class StatHookEventArgs : EventArgs { public float healthMultAdd = 0f; public float baseHealthAdd = 0f; public float baseShieldAdd = 0f; public float regenMultAdd = 0f; public float baseRegenAdd = 0f; public float baseMoveSpeedAdd = 0f; public float moveSpeedMultAdd = 0f; public float jumpPowerMultAdd = 0f; public float damageMultAdd = 0f; public float baseDamageAdd = 0f; public float baseAttackSpeedAdd = 0f; public float attackSpeedMultAdd = 0f; public float critAdd = 0f; public float armorAdd = 0f; } public delegate void StatHookEventHandler(CharacterBody sender, StatHookEventArgs args); [CompilerGenerated] private static class <>O { public static Manipulator <0>__IL_CBRecalcStats; } public override string Name => "StatHooks (from TILER2 originally)"; public static event StatHookEventHandler GetStatCoefficients; public override void Init() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown object obj = <>O.<0>__IL_CBRecalcStats; if (obj == null) { Manipulator val = IL_CBRecalcStats; <>O.<0>__IL_CBRecalcStats = val; obj = (object)val; } CharacterBody.RecalculateStats += (Manipulator)obj; } internal static void IL_CBRecalcStats(ILContext il) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Unknown result type (might be due to invalid IL or missing references) //IL_0a84: Unknown result type (might be due to invalid IL or missing references) //IL_0aa9: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); StatHookEventArgs statMods = null; val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Action<CharacterBody>>((Action<CharacterBody>)delegate(CharacterBody cb) { statMods = new StatHookEventArgs(); StatHooks.GetStatCoefficients?.Invoke(cb, statMods); }); int locBaseHealthIndex = -1; int locHealthMultIndex = -1; if (val.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "baseMaxHealth"), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "levelMaxHealth") }) && val.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, ref locBaseHealthIndex) }) && val.TryGotoNext(new Func<Instruction, bool>[4] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, locBaseHealthIndex), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref locHealthMultIndex), (Instruction x) => ILPatternMatchingExt.MatchMul(x), (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locBaseHealthIndex) })) { val.GotoPrev(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "baseMaxHealth") }); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locBaseHealthIndex) }); val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origMaxHealth) => origMaxHealth + statMods.baseHealthAdd)); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locHealthMultIndex) }); val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origHealthMult) => origHealthMult + statMods.healthMultAdd)); } val.Index = 0; int locBaseShieldIndex = -1; if (val.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "baseMaxShield"), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "levelMaxShield") }) && val.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, ref locBaseShieldIndex) })) { val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origBaseShield) => origBaseShield + statMods.baseShieldAdd)); } val.Index = 0; int locRegenMultIndex = -1; int locFinalRegenIndex = -1; if (val.TryGotoNext(new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref locFinalRegenIndex), (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "set_regen") }) && val.TryGotoPrev(new Func<Instruction, bool>[4] { (Instruction x) => ILPatternMatchingExt.MatchAdd(x), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref locRegenMultIndex), (Instruction x) => ILPatternMatchingExt.MatchMul(x), (Instruction x) => ILPatternMatchingExt.MatchStloc(x, ref locFinalRegenIndex) })) { val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref locRegenMultIndex) }); val.EmitDelegate<Func<float>>((Func<float>)(() => statMods.baseRegenAdd)); val.Emit(OpCodes.Add); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchMul(x) }); val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origRegenMult) => origRegenMult + statMods.regenMultAdd)); } val.Index = 0; int locBaseSpeedIndex = -1; int locSpeedMultIndex = -1; int locSpeedDivIndex = -1; if (val.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "baseMoveSpeed"), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "levelMoveSpeed") }) && val.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, ref locBaseSpeedIndex) }) && val.TryGotoNext(new Func<Instruction, bool>[6] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, locBaseSpeedIndex), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref locSpeedMultIndex), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref locSpeedDivIndex), (Instruction x) => ILPatternMatchingExt.MatchDiv(x), (Instruction x) => ILPatternMatchingExt.MatchMul(x), (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locBaseSpeedIndex) })) { val.GotoPrev(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "levelMoveSpeed") }); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locBaseSpeedIndex) }); val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origBaseMoveSpeed) => origBaseMoveSpeed + statMods.baseMoveSpeedAdd)); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locSpeedMultIndex) }); val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origMoveSpeedMult) => origMoveSpeedMult + statMods.moveSpeedMultAdd)); } val.Index = 0; int num = default(int); if (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[6] { (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "baseJumpPower"), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "levelJumpPower"), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref num), (Instruction x) => ILPatternMatchingExt.MatchMul(x), (Instruction x) => ILPatternMatchingExt.MatchAdd(x) })) { val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origJumpPower) => origJumpPower * (1f + statMods.jumpPowerMultAdd))); } val.Index = 0; int locBaseDamageIndex = -1; int locDamageMultIndex = -1; if (val.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "baseDamage"), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "levelDamage") }) && val.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, ref locBaseDamageIndex) }) && val.TryGotoNext(new Func<Instruction, bool>[4] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, locBaseDamageIndex), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref locDamageMultIndex), (Instruction x) => ILPatternMatchingExt.MatchMul(x), (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locBaseDamageIndex) })) { val.GotoPrev(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "baseDamage") }); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locBaseDamageIndex) }); val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origDamage) => origDamage + statMods.baseDamageAdd)); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locDamageMultIndex) }); val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origDamageMult) => origDamageMult + statMods.damageMultAdd)); } val.Index = 0; int locBaseAttackSpeedIndex = -1; int locAttackSpeedMultIndex = -1; if (val.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "baseAttackSpeed"), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "levelAttackSpeed") }) && val.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, ref locBaseAttackSpeedIndex) }) && val.TryGotoNext(new Func<Instruction, bool>[4] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, locBaseAttackSpeedIndex), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref locAttackSpeedMultIndex), (Instruction x) => ILPatternMatchingExt.MatchMul(x), (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locBaseAttackSpeedIndex) })) { val.GotoPrev(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "baseAttackSpeed") }); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locBaseAttackSpeedIndex) }); val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origSpeed) => origSpeed + statMods.baseAttackSpeedAdd)); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, locAttackSpeedMultIndex) }); val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origSpeedMult) => origSpeedMult + statMods.attackSpeedMultAdd)); } val.Index = 0; int locOrigCrit = -1; if (val.TryGotoNext(new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref locOrigCrit), (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "set_crit") })) { val.Emit(OpCodes.Ldloc, locOrigCrit); val.EmitDelegate<Func<float, float>>((Func<float, float>)((float origCrit) => origCrit + statMods.critAdd)); val.Emit(OpCodes.Stloc, locOrigCrit); } val.Index = 0; if (val.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdfld<CharacterBody>(x, "baseArmor") }) && val.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "get_armor") }) && val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "get_armor") })) { val.EmitDelegate<Func<float, float>>((Func<float, float>)((float oldArmor) => oldArmor + statMods.armorAdd)); } } } internal class UnusedCode { } } namespace DeltaruneMod.Unlocks { public class NEOMithrixUnlock : BaseAchievement { } internal class RiskOfRuneUnlocks { public static UnlockableDef roaringKnightUnlockableDef; public static void Init() { } } } namespace DeltaruneMod.NeoMithrix { public class NeoMithrixController { private static bool playerHadThornRing; public NeoMithrixController() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown CharacterMaster.OnBodyStart += new hook_OnBodyStart(CharacterMaster_OnBodyStart); } private void CharacterMaster_OnBodyStart(orig_OnBodyStart orig, CharacterMaster self, CharacterBody body) { //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Unknown result type (might be due to invalid IL or missing references) //IL_0340: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, body); if (body.isPlayerControlled && body.inventory.GetItemCount(ItemBase<ThornRing>.instance.ItemDef) > 0) { playerHadThornRing = true; Debug.Log((object)"Player had thorn ring."); } if (playerHadThornRing) { if (((Object)body).name == "BrotherBody(Clone)" && body.inventory.GetItemCountPermanent(ItemBase<NeoMithrixItem>.instance.ItemDef) <= 0) { self.inventory.GiveItemPermanent(ItemBase<NeoMithrixItem>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixLeftWing>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixRightWing>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixLimb>.instance.ItemDef, 1); self.inventory.SetEquipmentIndex(EliteBase<NeoElite>.instance.EliteEquip.equipmentIndex, true); Debug.Log((object)"Giving basic mithrix item."); } else if (((Object)body).name == "BrotherGlassBody(Clone)" && body.inventory.GetItemCountPermanent(ItemBase<NeoMithrixItem>.instance.ItemDef) <= 0) { self.inventory.GiveItemPermanent(ItemBase<NeoMithrixItem>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixLeftWing>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixRightWing>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixLimb>.instance.ItemDef, 1); self.inventory.SetEquipmentIndex(EliteBase<NeoElite>.instance.EliteEquip.equipmentIndex, true); Debug.Log((object)"Giving glass mithrix item."); } else if (((Object)body).name == "BrotherHurtBody(Clone)" && body.inventory.GetItemCountPermanent(ItemBase<NeoMithrixItem>.instance.ItemDef) <= 0) { self.inventory.GiveItemPermanent(ItemBase<NeoMithrixItem>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixLeftWing>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixRightWing>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixLimb>.instance.ItemDef, 1); self.inventory.SetEquipmentIndex(EliteBase<NeoElite>.instance.EliteEquip.equipmentIndex, true); Debug.Log((object)"Giving hurt mithrix item."); } else if (((Object)body).name == "ITBrotherBody(Clone)" && body.inventory.GetItemCountPermanent(ItemBase<NeoMithrixItem>.instance.ItemDef) <= 0) { self.inventory.GiveItemPermanent(ItemBase<NeoMithrixItem>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixLeftWing>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixRightWing>.instance.ItemDef, 1); self.inventory.GiveItemPermanent(ItemBase<NeoMithrixLimb>.instance.ItemDef, 1); self.inventory.SetEquipmentIndex(EliteBase<NeoElite>.instance.EliteEquip.equipmentIndex, true); Debug.Log((object)"Giving IT mithrix item."); } } } } public class NeoMithrixItem : ItemBase<NeoMithrixItem> { public override string ItemName => "NEO_MITHRIX_BASE_ITEM"; public override string ItemLangTokenName => "NEO_MITHRIX_BASE"; public override string ItemPickupDesc => ""; public override string ItemFullDescription => ""; public override string ItemLore => ""; public override ItemTier Tier => (ItemTier)11; public override GameObject ItemModel => DeltarunePlugin.MainAssets.LoadAsset<GameObject>("neo_chestplate.prefab"); public override Sprite ItemIcon => null; public override bool isChapter1 => false; public override bool isChapter2 => true; public override bool isChapter3 => false; public override bool isChapter4 => false; public override ItemDisplayRuleDict CreateItemDisplayRules() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) ItemDisplayRuleDict val = new ItemDisplayRuleDict(Array.Empty<ItemDisplayRule>()); val.Add("mdlBrother", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemModel, childName = "chest", localPos = new Vector3(-0.02253f, -0.24776f, 0.26671f), localAngles = new Vector3(340.4726f, 7.2708f, 350.1845f), localScale = new Vector3(13.03703f, 14.24153f, 15.06375f) } }); return val; } public override void Hooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { if (!NetworkServer.active || !Object.op_Implicit((Object)(object)sender.inventory) || GetCount(sender) <= 0) { return; } if (sender.GetBuffCount(ThornRing.frostbite) > 0) { for (int i = 0; i < sender.GetBuffCount(ThornRing.frostbite); i++) { sender.RemoveBuff(ThornRing.frostbite); Debug.Log((object)"Removing fortbite stacks!"); } } args.healthMultAdd += 8f; args.armorTotalMult += 0.5f; args.attackSpeedMultAdd += 2f; args.critDamageMultAdd += 2f; args.critAdd += 1.25f; args.regenMultAdd += 2f; args.damageMultAdd += 2f; } public override void Init() { CreateItem(); CreateLang(); Hooks(); } } public class NeoMithrixLeftWing : ItemBase<NeoMithrixLeftWing> { public override string ItemName => "NEO_MITHRIX_LEFT_WING_DISPLAY_ITEM"; public override string ItemLangTokenName => "NEO_MITHRIX_LEFT_WING_DISPLAY_ITEM"; public override string ItemPickupDesc => ""; public override string ItemFullDescription => ""; public override string ItemLore => ""; public override ItemTier Tier => (ItemTier)11; public override GameObject ItemModel => DeltarunePlugin.MainAssets.LoadAsset<GameObject>("neo_left_wing.prefab"); public override Sprite ItemIcon => null; public override bool isChapter1 => false; public override bool isChapter2 => true; public override bool isChapter3 => false; public override bool isChapter4 => false; public override ItemDisplayRuleDict CreateItemDisplayRules() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) ItemDisplayRuleDict val = new ItemDisplayRuleDict(Array.Empty<ItemDisplayRule>()); val.Add("mdlBrother", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemModel, childName = "chest", localPos = new Vector3(-0.24608f, 0.298f, -0.2235f), localAngles = new Vector3(22.15644f, 326.9847f, 325.871f), localScale = new Vector3(32.06147f, 23.74224f, 9.22609f) } }); return val; } public override void Hooks() { } public override void Init() { CreateItem(); CreateLang(); } } public class NeoMithrixLimb : ItemBase<NeoMithrixLimb> { public override string ItemName => "NEO_MITHRIX_LIMB_DISPLAY_ITEM"; public override string ItemLangTokenName => "NEO_MITHRIX_LIMB_DISPLAY_ITEM"; public override string ItemPickupDesc => ""; public override string ItemFullDescription => ""; public override string ItemLore => ""; public override ItemTier Tier => (ItemTier)11; public override GameObject ItemModel => DeltarunePlugin.MainAssets.LoadAsset<GameObject>("neo_limb.prefab"); public override Sprite ItemIcon => null; public override bool isChapter1 => false; public override bool isChapter2 => true; public override bool isChapter3 => false; public override bool isChapter4 => false; public override ItemDisplayRuleDict CreateItemDisplayRules() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: 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) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0117: 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_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0173: 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_018e: 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_0198: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) ItemDisplayRuleDict val = new ItemDisplayRuleDict(Array.Empty<ItemDisplayRule>()); val.Add("mdlBrother", (ItemDisplayRule[])(object)new ItemDisplayRule[4] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemModel, childName = "LowerArmR", localPos = new Vector3(2.21972f, -0.3514f, 0.97877f), localAngles = new Vector3(359.5706f, 336.0472f, 355.0849f), localScale = new Vector3(50.67373f, 10.90218f, 37.61541f) }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemModel, childName = "CalfL", localPos = new Vector3(1.69327f, -0.87295f, -2.68867f), localAngles = new Vector3(357.1952f, 58.53083f, 350.397f), localScale = new Vector3(68.1146f, 14.93527f, 46.738f) }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemModel, childName = "CalfR", localPos = new Vector3(2.03953f, 1.32916f, 2.46837f), localAngles = new Vector3(358.2022f, 130.2431f, 171.4975f), localScale = new Vector3(68.1146f, 14.93527f, 46.738f) }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemModel, childName = "LowerArmL", localPos = new Vector3(2.66172f, 0.04324f, MathF.E * -147f / 292f), localAngles = new Vector3(8.13478f, 26.6752f, 5.05343f), localScale = new Vector3(60.19924f, 12.65326f, 39.0168f) } }); return val; } public override void Hooks() { } public override void Init() { CreateItem(); CreateLang(); } } public class NeoMithrixRightWing : ItemBase<NeoMithrixRightWing> { public override string ItemName => "NEO_MITHRIX_RIGHT_WING_DISPLAY_ITEM"; public override string ItemLangTokenName => "NEO_MITHRIX_RIGHT_WING_DISPLAY_ITEM"; public override string ItemPickupDesc => ""; public override string ItemFullDescription => ""; public override string ItemLore => ""; public override ItemTier Tier => (ItemTier)11; public override GameObject ItemModel => DeltarunePlugin.MainAssets.LoadAsset<GameObject>("neo_right_wing.prefab"); public override Sprite ItemIcon => null; public override bool isChapter1 => false; public override bool isChapter2 => true; public override bool isChapter3 => false; public override bool isChapter4 => false; public override ItemDisplayRuleDict CreateItemDisplayRules() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) ItemDisplayRuleDict val = new ItemDisplayRuleDict(Array.Empty<ItemDisplayRule>()); val.Add("mdlBrother", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemModel, childName = "chest", localPos = new Vector3(0.34145f, 0.30649f, -0.20338f), localAngles = new Vector3(349.2747f, 212.71f, 321.6776f), localScale = new Vector3(40.64867f, 23.74224f, 9.22609f) } }); return val; } public override void Hooks() { } public override void Init() { CreateItem(); CreateLang(); } } } namespace DeltaruneMod.Items { public abstract class ItemBase<T> : ItemBase where T : ItemBase<T> { public static T instance { get; private set; } public ItemBase() { if (instance != null) { throw new InvalidOperationException("Singleton class \"" + typeof(T).Name + "\" inheriting ItemBase was instantiated twice"); } instance = this as T; } } public abstract class ItemBase { public ItemDef ItemDef; public abstract string ItemName { get; } public abstract string ItemLangTokenName { get; } public abstract string ItemPickupDesc { get; } public abstract string ItemFullDescription { get; } public abstract string ItemLore { get; } public abstract ItemTier Tier { get; } public virtual ItemTag[] ItemTags { get; set; } = (ItemTag[])(object)new ItemTag[0]; public abstract GameObject ItemModel { get; } public abstract Sprite ItemIcon { get; } public virtual string CorruptsItem { get; set; } = null; public virtual UnlockableDef ItemUnlockableDef { get; set; } = null; public virtual bool CanRemove { get; } = true; public virtual bool AIBlacklisted { get; set; } = false; public virtual bool PrinterBlacklisted { get; set; } = false; public virtual bool RequireUnlock { get; set; } = true; public abstract bool isChapter1 { get; } public abstract bool isChapter2 { get; } public abstract bool isChapter3 { get; } public abstract bool isChapter4 { get; } public string ConfigCategory => "Item: " + ItemLangTokenName; public abstract void Init(); protected void CreateLang() { LanguageAPI.Add("ITEM_" + ItemLangTokenName + "_NAME", ItemName); LanguageAPI.Add("ITEM_" + ItemLangTokenName + "_PICKUP", ItemPickupDesc); LanguageAPI.Add("ITEM_" + ItemLangTokenName + "_DESCRIPTION", ItemFullDescription); LanguageAPI.Add("ITEM_" + ItemLangTokenName + "_LORE", ItemLore); } public abstract ItemDisplayRuleDict CreateItemDisplayRules(); protected void CreateItem() { //IL_0119: 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) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Expected O, but got Unknown if (AIBlacklisted) { ItemTags = new List<ItemTag>(ItemTags) { (ItemTag)4 }.ToArray(); } ItemDef = ScriptableObject.CreateInstance<ItemDef>(); ((Object)ItemDef).name = "ITEM_" + ItemLangTokenName; ItemDef.nameToken = "ITEM_" + ItemLangTokenName + "_NAME"; ItemDef.pickupToken = "ITEM_" + ItemLangTokenName + "_PICKUP"; ItemDef.descriptionToken = "ITEM_" + ItemLangTokenName + "_DESCRIPTION"; ItemDef.loreToken = "ITEM_" + ItemLangTokenName + "_LORE"; ItemDef.pickupModelPrefab = ItemModel; ItemDef.pickupIconSprite = ItemIcon; ItemDef.hidden = false; ItemDef.canRemove = CanRemove; ItemDef.deprecatedTier = Tier; if (ItemTags.Length != 0) { ItemDef.tags = ItemTags; } if (PrinterBlacklisted) { DeltarunePlugin.BlacklistedFromPrinter.Add(ItemDef); } if (Object.op_Implicit((Object)(object)ItemUnlockableDef)) { ItemDef.unlockableDef = ItemUnlockableDef; } ItemAPI.Add(new CustomItem(ItemDef, CreateItemDisplayRules())); } public abstract void Hooks(); public int GetCount(CharacterBody body) { if (!Object.op_Implicit((Object)(object)body) || !Object.op_Implicit((Object)(object)body.inventory)) { return 0; } return body.inventory.GetItemCount(ItemDef); } public int GetCount(CharacterMaster master) { if (!Object.op_Implicit((Object)(object)master) || !Object.op_Implicit((Object)(object)master.inventory)) { return 0; } return master.inventory.GetItemCount(ItemDef); } public static void BlacklistFromPrinter(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_00d0: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); int listIndex = -1; int thisIndex = -1; ILLabel[] array = default(ILLabel[]); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchSwitch(x, ref array) }); bool flag = val.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, ref thisIndex) }); bool flag2 = val.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref listIndex) }); MethodReference val2 = default(MethodReference); val.GotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall(x, ref val2) }); if (!(flag && flag2)) { return; } val.Emit(OpCodes.Ldarg, thisIndex); val.Emit(OpCodes.Ldloc, listIndex); val.EmitDelegate<Action<ShopTerminalBehavior, List<PickupIndex>>>((Action<ShopTerminalBehavior, List<PickupIndex>>)delegate(ShopTerminalBehavior shopTerminalBehavior, List<PickupIndex> list) { if (Object.op_Implicit((Object)(object)shopTerminalBehavior) && ((Object)((Component)shopTerminalBehavior).gameObject).name.Contains("Duplicator")) { list.RemoveAll((PickupIndex x) => DeltarunePlugin.BlacklistedFromPrinter.Contains(ItemCatalog.GetItemDef(PickupCatalog.GetPickupDef(x).itemIndex))); } }); } } public class DroneHealingBoost : ItemBase<DroneHealingBoost> { public class DroneHealingBehavior : ItemBehavior { private float healTimer = 0f; private const float healInterval = 10f; private const float healFraction = 0.025f; private void Awake() { ((Behaviour)this).enabled = false; } private void OnEnable() { } private void FixedUpdate() { healTimer -= Time.fixedDeltaTime; if (healTimer <= 0f) { healTimer = 10f; FindAndHeal(base.body); } } private void OnDisable() { } private void FindAndHeal(CharacterBody drone) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: 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_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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_0097: 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_009e: Expected O, but got Unknown //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Expected O, but got Unknown TeamIndex teamIndex = drone.teamComponent.teamIndex; Ray aimRay = ((Component)drone).GetComponent<InputBankTest>().GetAimRay(); TeamMask none = TeamMask.none; ((TeamMask)(ref none)).AddTeam(drone.master.teamIndex); BullseyeSearch val = new BullseyeSearch { viewer = drone, filterByDistinctEntity = true, filterByLoS = false, minDistanceFilter = 0f, maxDistanceFilter = 100f, maxAngleFilter = 360f, searchDirection = ((Ray)(ref aimRay)).direction, searchOrigin = ((Ray)(ref aimRay)).origin, sortMode = (SortMode)1, queryTriggerInteraction = (QueryTriggerInteraction)0, teamMaskFilter = none }; val.RefreshCandidates(); val.FilterOutGameObject(((Component)drone).gameObject); foreach (HurtBox result in val.GetResults()) { CharacterBody val2 = result.healthComponent?.body; if (Object.op_Implicit((Object)(object)val2) && (Object)(object)val2 != (Object)(object)drone) { try { EffectData val3 = new EffectData { origin = val2.transform.position, scale = 1f }; EffectManager.SpawnEffect(HealEffectPrefab, val3, true); } catch { Debug.Log((object)"NRE, don't spawn effect."); } float num = val2.healthComponent.fullCombinedHealth * 0.025f; val2.healthComponent.Heal(num, default(ProcChainMask), true); } } } } public static GameObject HealEffectPrefab; public override string ItemName => "DroneHealingBoost"; public override string ItemLangTokenName => "DRONE_HEAL_BOOST"; public override string ItemPickupDesc => ""; public override string ItemFullDescription => ""; public override string ItemLore => ""; public override ItemTier Tier => (ItemTier)11; public override GameObject ItemModel => DeltarunePlugin.MainAssets.LoadAsset<GameObject>("guide_book.prefab"); public override Sprite ItemIcon => DeltarunePlugin.MainAssets.LoadAsset<Sprite>("guide_book_icon.png"); public override bool isChapter1 => true; public override bool isChapter2 => false; public override bool isChapter3 => false; public override bool isChapter4 => false; public override ItemDisplayRuleDict CreateItemDisplayRules() { return null; } public override void Hooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); } private void CharacterBody_OnInventoryChanged(orig_OnInventoryChanged orig, CharacterBody self) { if (GetCount(self) > 0) { self.AddItemBehavior<DroneHealingBehavior>(GetCount(self)); Debug.Log((object)("Gave " + ((object)self)?.ToString() + " " + ItemName + ".")); } orig.Invoke(self); } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { //IL_0051: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active || sender.isPlayerControlled || !Object.op_Implicit((Object)(object)sender.inventory)) { return; } int count = GetCount(sender); DroneHealingBehavior droneHealingBehavior = ((Component)sender).gameObject.GetComponent<DroneHealingBehavior>(); if (count > 0) { if (((Enum)sender.bodyFlags).HasFlag((Enum)(object)(BodyFlags)1024)) { sender.inventory.RemoveItem(ItemDef, 1); if (Object.op_Implicit((Object)(object)droneHealingBehavior)) { ((Behaviour)droneHealingBehavior).enabled = false; } } else if (!Object.op_Implicit((Object)(object)droneHealingBehavior)) { droneHealingBehavior = ((Component)sender).gameObject.AddComponent<DroneHealingBehavior>(); ((ItemBehavior)droneHealingBehavior).body = sender; ((Behaviour)droneHealingBehavior).enabled = true; } } if (count <= 0 && Object.op_Implicit((Object)(object)droneHealingBehavior)) { ((Behaviour)droneHealingBehavior).enabled = false; } } private static void CreateEffect() { HealEffectPrefab = PrefabAPI.InstantiateClone(DeltarunePlugin.MainAssets.LoadAsset<GameObject>("guide_book_heal.prefab"), "guidebook_heal", true); Helpers.CreateEffectPrefab(HealEffectPrefab, isFollower: true); } public override void Init() { CreateItem(); CreateLang(); CreateEffect(); Hooks(); } } } namespace DeltaruneMod.Items.Yellow { public class MrPipis : ItemBase<MrPipis> { public class MrPipisTracker : MonoBehaviour { private List<BuffDef> allAffixes = Helpers.GetBuffs(2); public CharacterBody body; private void Awake() { ((Behaviour)this).enabled = false; } private void OnEnable() { } private void FixedUpdate() { foreach (BuffDef allAffix in allAffixes) { if (!body.HasBuff(allAffix) && (Object)(object)allAffix != (Object)(object)Buffs.AurelioniteBlessing && (Object)(object)allAffix != (Object)(object)Buffs.EliteAurelionite) { body.AddBuff(allAffix); } } } private void OnDisable() { foreach (BuffDef allAffix in allAffixes) { if (body.HasBuff(allAffix)) { body.RemoveBuff(allAffix); } } } } public override string ItemName => "Mr. Pipis"; public override string ItemLangTokenName => "MR_PIPIS"; public override string ItemPickupDesc => "Gain [ALL] elite buffs!"; public override string ItemFullDescription => "Provides <style=cIsUtility>all elite buffs</style> <style=cStack>(excluding Aurelionite's blessing)</style>."; public override string ItemLore => "WOWZAS! You can't get THIS from an egg!"; public override ItemTier Tier => (ItemTier)4; public override GameObject ItemModel => DeltarunePlugin.MainAssets.LoadAsset<GameObject>("mr_pipis.prefab"); public override Sprite ItemIcon => DeltarunePlugin.MainAssets.LoadAsset<Sprite>("mr_pipis_icon.png"); public override ItemTag[] ItemTags => (ItemTag[])(object)new ItemTag[2] { (ItemTag)3, (ItemTag)31 }; public override bool PrinterBlacklisted { get { return base.PrinterBlacklisted; } set { base.PrinterBlacklisted = true; } } public override bool isChapter1 => false; public override bool isChapter2 => true; public override bool isChapter3 => true; public override bool isChapter4 => false; public override void Init() { CreateLang(); CreateItem(); Hooks(); } public override ItemDisplayRuleDict CreateItemDisplayRules() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Unknown result type (might be due to invalid IL or missing references) //IL_02df: Unknown result type (might be due to invalid IL or missing references) //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_0358: Unknown result type (might be due to invalid IL or missing references) //IL_036e: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_0394: Unknown result type (might be due to invalid IL or missing references) //IL_039d: Unknown result type (might be due to invalid IL or missing references) //IL_03cc: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03ec: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_0407: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_040d: Unknown result type (might be due to invalid IL or missing references) //IL_0428: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_0460: Unknown result type (might be due to invalid IL or missing references) //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_047b: Unknown result type (might be due to invalid IL or missing references) //IL_0480: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_049b: Unknown result type (might be due to invalid IL or missing references) //IL_04a0: Unknown result type (might be due to invalid IL or missing references) //IL_04a1: Unknown result type (might be due to invalid IL or missing references) //IL_04bc: Unknown result type (might be due to invalid IL or missing references) //IL_04c5: Unknown result type (might be due to invalid IL or missing references) //IL_04f4: Unknown result type (might be due to invalid IL or missing references) //IL_04f9: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_052f: Unknown result type (might be due to invalid IL or missing references) //IL_0534: Unknown result type (might be due to invalid IL or missing references) //IL_0535: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0559: Unknown result type (might be due to invalid IL or missing references) //IL_0588: Unknown result type (might be due to invalid IL or missing references) //IL_058d: Unknown result type (might be due to invalid IL or missing references) //IL_05a3: Unknown result type (might be due to invalid IL or missing references) //IL_05a8: Unknown result type (might be due to invalid IL or missing references) //IL_05be: Unknown result type (might be due to invalid IL or missing references) //IL_05c3: Unknown result type (might be due to invalid IL or missing references) //IL_05c8: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Unknown result type (might be due to invalid IL or missing references) //IL_05e4: Unknown result type (might be due to invalid IL or missing references) //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_061c: Unknown result type (might be due to invalid IL or missing references) //IL_0621: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Unknown result type (might be due to invalid IL or missing references) //IL_0652: Unknown result type (might be due to invalid IL or missing references) //IL_0657: Unknown result type (might be due to invalid IL or missing references) //IL_065c: Unknown result type (might be due to invalid IL or missing references) //IL_065d: Unknown result type (might be due to invalid IL or missing references) //IL_0678: Unknown result type (might be due to invalid IL or missing references) //IL_0681: Unknown result type (might be due to invalid IL or missing references) //IL_06b0: Unknown result type (might be due to invalid IL or missing references) //IL_06b5: Unknown result type (might be due to invalid IL or missing references) //IL_06cb: Unknown result type (might be due to invalid IL or missing references) //IL_06d0: Unknown result type (might be due to invalid IL or missing references) //IL_06e6: Unknown result type (might be due to invalid IL or missing references) //IL_06eb: Unknown result type (might be due to invalid IL or missing references) //IL_06f0: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_070c: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Unknown result type (might be due to invalid IL or missing references) //IL_0744: Unknown result type (might be due to invalid IL or missing references) //IL_0749: Unknown result type (might be due to invalid IL or missing references) //IL_075f: Unknown result type (might be due to invalid IL or missing references) //IL_0764: Unknown result type (might be due to invalid IL or missing references) //IL_077a: Unknown result type (might be due to invalid IL or missing references) //IL_077f: Unknown result type (might be due to invalid IL or missing references) //IL_0784: Unknown result type (might be due to invalid IL or missing references) //IL_0785: Unknown result type (might be due to invalid IL or missing references) //IL_07a0: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07d8: Unknown result type (might be due to invalid IL or missing references) //IL_07dd: Unknown result type (might be due to invalid IL or missing references) //IL_07f3: Unknown result type (might be due to invalid IL or missing references) //IL_07f8: Unknown result type (might be due to invalid IL or missing references) //IL_080e: Unknown result type (might be due to invalid IL or missing references) //IL_0813: Unknown result type (might be due to invalid IL or missing references) //IL_0818: Unknown result type (might be due to invalid IL or missing references) //IL_0819: Unknown result type (might be due to invalid IL or missing references) //IL_0834: Unknown result type (might be due to invalid IL or missing references) //IL_083d: Unknown result type (might be due to invalid IL or missing references) //IL_086c: Unknown result type (might be due to invalid IL or missing references) //IL_0871: Unknown result type (might be due to invalid IL or missing references) //IL_0887: Unknown result type (might be due to invalid IL or missing references) //IL_088c: Unknown result type (might be due to invalid IL or missing references) //IL_08a2: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_