using System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using TMPro; using UnboundLib; using UnboundLib.Cards; using UnboundLib.Utils.UI; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyCompany("UnpowerfullGod")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("UnpowerfullGod")] [assembly: AssemblyTitle("UnpowerfullGod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace UnpowerfullGod; [BepInPlugin("quinten.rounds.cards.unpowerfullgod", "Unpowerfull God", "1.4.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class UnpowerfullGodPlugin : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static UnityAction <>9__3_0; internal void b__3_0() { } } public const string ModId = "quinten.rounds.cards.unpowerfullgod"; public const string ModName = "Unpowerfull God"; public const string Version = "1.4.0"; private void Awake() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected O, but got Unknown UnpowerfullGodSettings.Bind(((BaseUnityPlugin)this).Config); new Harmony("quinten.rounds.cards.unpowerfullgod").PatchAll(); CustomCard.BuildCard(); object obj = <>c.<>9__3_0; if (obj == null) { UnityAction val = delegate { }; <>c.<>9__3_0 = val; obj = (object)val; } Unbound.RegisterMenu("Unpowerfull God", (UnityAction)obj, (Action)BuildMenu, (GameObject)null, true); } private static void BuildMenu(GameObject menu) { TextMeshProUGUI val = default(TextMeshProUGUI); MenuHandler.CreateText("Unpowerfull god settings", menu, ref val, 60, true, (Color?)null, (TMP_FontAsset)null, (Material)null, (TextAlignmentOptions?)null); MenuHandler.CreateText(" ", menu, ref val, 30, true, (Color?)null, (TMP_FontAsset)null, (Material)null, (TextAlignmentOptions?)null); MenuHandler.CreateText("Changes apply on the next frame.", menu, ref val, 24, true, (Color?)null, (TMP_FontAsset)null, (Material)null, (TextAlignmentOptions?)null); MenuHandler.CreateText(" ", menu, ref val, 30, true, (Color?)null, (TMP_FontAsset)null, (Material)null, (TextAlignmentOptions?)null); IntSlider("HP cap", UnpowerfullGodSettings.HpCap, 1, 50, menu); IntSlider("Ammo cap", UnpowerfullGodSettings.AmmoCap, 1, 20, menu); FloatSlider("Reload seconds", UnpowerfullGodSettings.ReloadSeconds, 1f, 60f, menu); FloatSlider("Bullet damage", UnpowerfullGodSettings.BulletDamage, 1f, 5000f, menu); IntSlider("Bounces", UnpowerfullGodSettings.Bounces, 0, 99, menu); IntSlider("Block charges", UnpowerfullGodSettings.Blocks, 0, 99, menu); } private static void IntSlider(string label, ConfigEntry entry, int min, int max, GameObject menu) { Slider val = default(Slider); MenuHandler.CreateSlider(label, menu, 30, (float)min, (float)max, (float)entry.Value, (UnityAction)delegate(float v) { entry.Value = Mathf.RoundToInt(v); }, ref val, true, (Color?)null, (Direction)0, true, (Color?)null, (TMP_FontAsset)null, (Material)null, (TextAlignmentOptions?)null); } private static void FloatSlider(string label, ConfigEntry entry, float min, float max, GameObject menu) { Slider val = default(Slider); MenuHandler.CreateSlider(label, menu, 30, min, max, entry.Value, (UnityAction)delegate(float v) { entry.Value = v; }, ref val, false, (Color?)null, (Direction)0, true, (Color?)null, (TMP_FontAsset)null, (Material)null, (TextAlignmentOptions?)null); } } public class UnpowerfullGodCard : CustomCard { protected override string GetTitle() { return "Unpowerfull god"; } protected override string GetDescription() { return "1 hp, 1 bullet, slow reload, big damage.\nedit values in the mod menu."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001f: 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_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: 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_005f: 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_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Expected O, but got Unknown //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Expected O, but got Unknown //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: 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_0106: Expected O, but got Unknown //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Expected O, but got Unknown //IL_0148: 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_0154: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[6] { new CardInfoStat { positive = false, stat = "Max HP", amount = $"= {UnpowerfullGodSettings.HpCap.Value}", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Ammo", amount = $"= {UnpowerfullGodSettings.AmmoCap.Value}", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Reload Time", amount = $"{UnpowerfullGodSettings.ReloadSeconds.Value:0}s", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Damage", amount = $"{UnpowerfullGodSettings.BulletDamage.Value:0}", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Bounces", amount = $"+{UnpowerfullGodSettings.Bounces.Value}", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Blocks", amount = $"+{UnpowerfullGodSettings.Blocks.Value}", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { return (CardThemeColorType)8; } public override string GetModName() { return "UPG"; } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.health = 0.001f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { float num = (data.maxHealth = UnpowerfullGodSettings.HpCap.Value); data.health = Mathf.Min(data.health, num); if ((Object)(object)((Component)player).gameObject.GetComponent() == (Object)null) { ((Component)player).gameObject.AddComponent(); } } public override void OnRemoveCard() { } } public class UnpowerfullGodEnforcer : MonoBehaviour { private CharacterData _data; private Block _block; private void Awake() { _data = ((Component)this).GetComponent(); _block = ((Component)this).GetComponentInChildren(); } private void LateUpdate() { if ((Object)(object)_data == (Object)null) { return; } float num = UnpowerfullGodSettings.HpCap.Value; if (_data.maxHealth > num) { _data.maxHealth = num; } if (_data.health > num) { _data.health = num; } if ((Object)(object)_block != (Object)null) { _block.additionalBlocks = UnpowerfullGodSettings.Blocks.Value; } Gun val = (((Object)(object)_data.weaponHandler != (Object)null) ? _data.weaponHandler.gun : null); if ((Object)(object)val == (Object)null) { return; } val.reloadTime = UnpowerfullGodSettings.ReloadSeconds.Value; val.damage = UnpowerfullGodSettings.BulletDamage.Value; val.reflects = UnpowerfullGodSettings.Bounces.Value; GunAmmo component = ((Component)val).GetComponent(); if (!((Object)(object)component == (Object)null)) { int value = UnpowerfullGodSettings.AmmoCap.Value; Traverse val2 = Traverse.Create((object)component).Field("maxAmmo"); Traverse val3 = Traverse.Create((object)component).Field("currentAmmo"); if (val2.GetValue() != value) { val2.SetValue((object)value); } if (val3.GetValue() > value) { val3.SetValue((object)value); } } } } public static class UnpowerfullGodSettings { public static ConfigEntry HpCap; public static ConfigEntry AmmoCap; public static ConfigEntry ReloadSeconds; public static ConfigEntry BulletDamage; public static ConfigEntry Bounces; public static ConfigEntry Blocks; public static void Bind(ConfigFile cfg) { HpCap = cfg.Bind("Unpowerfull god", "HP cap", 1, "Maximum HP the player is allowed to have."); AmmoCap = cfg.Bind("Unpowerfull god", "Ammo cap", 1, "Maximum ammo (bullets per magazine)."); ReloadSeconds = cfg.Bind("Unpowerfull god", "Reload seconds", 30f, "How long a reload takes, in seconds."); BulletDamage = cfg.Bind("Unpowerfull god", "Bullet damage", 1000f, "Damage per bullet."); Bounces = cfg.Bind("Unpowerfull god", "Bounces", 99, "Bullet bounces (reflects)."); Blocks = cfg.Bind("Unpowerfull god", "Block charges", 99, "Additional block charges."); } }