Decompiled source of BetterAmog v1.0.0

BetterAmog.dll

Decompiled 3 weeks ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using Assets.Scripts.Actors.Player;
using Assets.Scripts.Inventory__Items__Pickups.Stats;
using Assets.Scripts.Menu.Shop;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Core.Logging.Interpolation;
using BepInEx.Logging;
using BepInEx.Unity.IL2CPP;
using HarmonyLib;
using Il2CppSystem.Collections.Generic;
using Microsoft.CodeAnalysis;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyCompany("MEGABONK_AMOG_REWORK")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("Amog rework")]
[assembly: AssemblyFileVersion("0.0.1.0")]
[assembly: AssemblyInformationalVersion("0.0.1")]
[assembly: AssemblyProduct("MEGABONK_AMOG_REWORK")]
[assembly: AssemblyTitle("MEGABONK_AMOG_REWORK")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.1.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace MEGABONK_BETTER_AMOG
{
	[BepInPlugin("plutoforever_BetterAmog", "BetterAmog", "1.0.0")]
	public class Plugin : BasePlugin
	{
		public const string MODNAME = "BetterAmog";

		public const string AUTHOR = "plutoforever";

		public const string GUID = "plutoforever_BetterAmog";

		public const string VERSION = "1.0.0";

		public static ManualLogSource log;

		private Harmony harmony;

		public static ConfigEntry<float> MaxHealth;

		public static ConfigEntry<float> HealthRegen;

		public static ConfigEntry<float> Shield;

		public static ConfigEntry<float> Thorns;

		public static ConfigEntry<float> Armor;

		public static ConfigEntry<float> Evasion;

		public static ConfigEntry<float> DamageReductionMultiplier;

		public static ConfigEntry<float> DamageCooldownMultiplier;

		public static ConfigEntry<float> Overheal;

		public static ConfigEntry<float> HealingMultiplier;

		public static ConfigEntry<float> SizeMultiplier;

		public static ConfigEntry<float> DurationMultiplier;

		public static ConfigEntry<float> ProjectileSpeedMultiplier;

		public static ConfigEntry<float> DamageMultiplier;

		public static ConfigEntry<float> EffectDurationMultiplier;

		public static ConfigEntry<float> AttackSpeed;

		public static ConfigEntry<float> Projectiles;

		public static ConfigEntry<float> WeaponBurstCooldown;

		public static ConfigEntry<float> ProjectileBounces;

		public static ConfigEntry<float> Evolve;

		public static ConfigEntry<float> Lifesteal;

		public static ConfigEntry<float> CritChance;

		public static ConfigEntry<float> CritDamage;

		public static ConfigEntry<float> FireDamage;

		public static ConfigEntry<float> IceDamage;

		public static ConfigEntry<float> LightningDamage;

		public static ConfigEntry<float> EliteDamageMultiplier;

		public static ConfigEntry<float> KnockbackMultiplier;

		public static ConfigEntry<float> BurnChance;

		public static ConfigEntry<float> FreezeChance;

		public static ConfigEntry<float> MoveSpeedMultiplier;

		public static ConfigEntry<float> JumpHeight;

		public static ConfigEntry<float> FallDamageReduction;

		public static ConfigEntry<float> Slam;

		public static ConfigEntry<float> ExtraJumps;

		public static ConfigEntry<float> PickupRange;

		public static ConfigEntry<float> Luck;

		public static ConfigEntry<float> GoldIncreaseMultiplier;

		public static ConfigEntry<float> XpIncreaseMultiplier;

		public static ConfigEntry<float> ChestIncreaseMultiplier;

		public static ConfigEntry<float> ChestPriceMultiplier;

		public static ConfigEntry<float> ShopPriceReduction;

		public static ConfigEntry<float> SilverIncreaseMultiplier;

		public static ConfigEntry<float> Holiness;

		public static ConfigEntry<float> Wickedness;

		public static ConfigEntry<float> PowerupBoostMultiplier;

		public static ConfigEntry<float> PowerupChance;

		public static ConfigEntry<float> Difficulty;

		public static ConfigEntry<float> EliteSpawnIncrease;

		public static ConfigEntry<float> EnemyAmountMultiplier;

		public static ConfigEntry<float> EnemySizeMultiplier;

		public static ConfigEntry<float> EnemySpeedMultiplier;

		public static ConfigEntry<float> EnemyHpMultiplier;

		public static ConfigEntry<float> EnemyDamageMultiplier;

		public static ConfigEntry<float> EnemyScalingMultiplier;

		public Plugin()
		{
			log = ((BasePlugin)this).Log;
		}

		public override void Load()
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Expected O, but got Unknown
			//IL_0827: Unknown result type (might be due to invalid IL or missing references)
			//IL_0831: Expected O, but got Unknown
			//IL_0868: Unknown result type (might be due to invalid IL or missing references)
			//IL_086e: Expected O, but got Unknown
			ManualLogSource val = log;
			bool flag = default(bool);
			BepInExInfoLogInterpolatedStringHandler val2 = new BepInExInfoLogInterpolatedStringHandler(14, 3, ref flag);
			if (flag)
			{
				((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("Loading ");
				((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<string>("BetterAmog");
				((BepInExLogInterpolatedStringHandler)val2).AppendLiteral(" v");
				((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<string>("1.0.0");
				((BepInExLogInterpolatedStringHandler)val2).AppendLiteral(" by ");
				((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<string>("plutoforever");
			}
			val.LogInfo(val2);
			MaxHealth = ((BasePlugin)this).Config.Bind<float>("1. Survival Stats", "MaxHealth", 0f, "Max Health bonus (0 = vanilla, positive = more health)");
			HealthRegen = ((BasePlugin)this).Config.Bind<float>("1. Survival Stats", "HealthRegen", 0f, "Health regeneration per second");
			Shield = ((BasePlugin)this).Config.Bind<float>("1. Survival Stats", "Shield", 0f, "Shield amount");
			Thorns = ((BasePlugin)this).Config.Bind<float>("1. Survival Stats", "Thorns", 0f, "Damage reflected to enemies");
			Armor = ((BasePlugin)this).Config.Bind<float>("1. Survival Stats", "Armor", 0f, "Damage reduction");
			Evasion = ((BasePlugin)this).Config.Bind<float>("1. Survival Stats", "Evasion", 0f, "Chance to dodge attacks (0.1 = 10%)");
			DamageReductionMultiplier = ((BasePlugin)this).Config.Bind<float>("1. Survival Stats", "DamageReductionMultiplier", 0f, "Multiplier for damage reduction");
			DamageCooldownMultiplier = ((BasePlugin)this).Config.Bind<float>("1. Survival Stats", "DamageCooldownMultiplier", 0f, "Multiplier for invincibility time after taking damage");
			Overheal = ((BasePlugin)this).Config.Bind<float>("1. Survival Stats", "Overheal", 0f, "Maximum overheal amount");
			HealingMultiplier = ((BasePlugin)this).Config.Bind<float>("1. Survival Stats", "HealingMultiplier", 0f, "Multiplier for all healing received");
			SizeMultiplier = ((BasePlugin)this).Config.Bind<float>("2. Weapon Stats", "SizeMultiplier", 0f, "Weapon/projectile size multiplier (0.2 = 20% larger)");
			DurationMultiplier = ((BasePlugin)this).Config.Bind<float>("2. Weapon Stats", "DurationMultiplier", 0f, "Weapon duration multiplier");
			ProjectileSpeedMultiplier = ((BasePlugin)this).Config.Bind<float>("2. Weapon Stats", "ProjectileSpeedMultiplier", 0f, "Projectile speed multiplier");
			DamageMultiplier = ((BasePlugin)this).Config.Bind<float>("2. Weapon Stats", "DamageMultiplier", 0f, "Damage multiplier (1.0 = double damage)");
			EffectDurationMultiplier = ((BasePlugin)this).Config.Bind<float>("2. Weapon Stats", "EffectDurationMultiplier", 0f, "Status effect duration multiplier");
			AttackSpeed = ((BasePlugin)this).Config.Bind<float>("2. Weapon Stats", "AttackSpeed", 0f, "Attack speed bonus (negative = faster, -0.3 = 30% faster)");
			Projectiles = ((BasePlugin)this).Config.Bind<float>("2. Weapon Stats", "Projectiles", 1f, "Extra projectiles");
			WeaponBurstCooldown = ((BasePlugin)this).Config.Bind<float>("2. Weapon Stats", "WeaponBurstCooldown", 0f, "Weapon burst cooldown reduction");
			ProjectileBounces = ((BasePlugin)this).Config.Bind<float>("2. Weapon Stats", "ProjectileBounces", 0f, "Extra projectile bounces");
			Evolve = ((BasePlugin)this).Config.Bind<float>("2. Weapon Stats", "Evolve", 0f, "Weapon evolution level");
			Lifesteal = ((BasePlugin)this).Config.Bind<float>("3. Damage Stats", "Lifesteal", 0f, "Lifesteal percentage (0.1 = 10% lifesteal)");
			CritChance = ((BasePlugin)this).Config.Bind<float>("3. Damage Stats", "CritChance", 0f, "Critical hit chance (0.25 = 25% crit chance)");
			CritDamage = ((BasePlugin)this).Config.Bind<float>("3. Damage Stats", "CritDamage", 0f, "Critical damage multiplier bonus");
			FireDamage = ((BasePlugin)this).Config.Bind<float>("3. Damage Stats", "FireDamage", 0f, "Fire damage bonus");
			IceDamage = ((BasePlugin)this).Config.Bind<float>("3. Damage Stats", "IceDamage", 0f, "Ice damage bonus");
			LightningDamage = ((BasePlugin)this).Config.Bind<float>("3. Damage Stats", "LightningDamage", 0f, "Lightning damage bonus");
			EliteDamageMultiplier = ((BasePlugin)this).Config.Bind<float>("3. Damage Stats", "EliteDamageMultiplier", 0f, "Bonus damage vs elite enemies");
			KnockbackMultiplier = ((BasePlugin)this).Config.Bind<float>("3. Damage Stats", "KnockbackMultiplier", 0f, "Knockback strength multiplier");
			BurnChance = ((BasePlugin)this).Config.Bind<float>("3. Damage Stats", "BurnChance", 0f, "Chance to burn enemies (0.2 = 20%)");
			FreezeChance = ((BasePlugin)this).Config.Bind<float>("3. Damage Stats", "FreezeChance", 0f, "Chance to freeze enemies (0.2 = 20%)");
			MoveSpeedMultiplier = ((BasePlugin)this).Config.Bind<float>("4. Movement Stats", "MoveSpeedMultiplier", 0.1f, "Movement speed multiplier (0.2 = 20% faster)");
			JumpHeight = ((BasePlugin)this).Config.Bind<float>("4. Movement Stats", "JumpHeight", 0f, "Jump height bonus");
			FallDamageReduction = ((BasePlugin)this).Config.Bind<float>("4. Movement Stats", "FallDamageReduction", 0f, "Fall damage reduction");
			Slam = ((BasePlugin)this).Config.Bind<float>("4. Movement Stats", "Slam", 0f, "Ground slam damage");
			ExtraJumps = ((BasePlugin)this).Config.Bind<float>("4. Movement Stats", "ExtraJumps", 0f, "Extra jumps/double jumps");
			PickupRange = ((BasePlugin)this).Config.Bind<float>("5. Economy Stats", "PickupRange", 0f, "Pickup range bonus");
			Luck = ((BasePlugin)this).Config.Bind<float>("5. Economy Stats", "Luck", 0f, "Luck (better drops)");
			GoldIncreaseMultiplier = ((BasePlugin)this).Config.Bind<float>("5. Economy Stats", "GoldIncreaseMultiplier", 0f, "Gold gain multiplier (0.5 = 50% more gold)");
			XpIncreaseMultiplier = ((BasePlugin)this).Config.Bind<float>("5. Economy Stats", "XpIncreaseMultiplier", 0f, "XP gain multiplier (0.5 = 50% more XP)");
			ChestIncreaseMultiplier = ((BasePlugin)this).Config.Bind<float>("5. Economy Stats", "ChestIncreaseMultiplier", 0f, "Chest spawn rate multiplier");
			ChestPriceMultiplier = ((BasePlugin)this).Config.Bind<float>("5. Economy Stats", "ChestPriceMultiplier", 0f, "Chest price multiplier (negative = cheaper)");
			ShopPriceReduction = ((BasePlugin)this).Config.Bind<float>("5. Economy Stats", "ShopPriceReduction", 0f, "Shop price reduction (0.2 = 20% cheaper)");
			SilverIncreaseMultiplier = ((BasePlugin)this).Config.Bind<float>("5. Economy Stats", "SilverIncreaseMultiplier", 0f, "Silver gain multiplier");
			Holiness = ((BasePlugin)this).Config.Bind<float>("6. Special Stats", "Holiness", 0f, "Holiness stat");
			Wickedness = ((BasePlugin)this).Config.Bind<float>("6. Special Stats", "Wickedness", 0f, "Wickedness stat");
			PowerupBoostMultiplier = ((BasePlugin)this).Config.Bind<float>("6. Special Stats", "PowerupBoostMultiplier", 0f, "Powerup effectiveness multiplier");
			PowerupChance = ((BasePlugin)this).Config.Bind<float>("6. Special Stats", "PowerupChance", 0f, "Powerup spawn chance");
			Difficulty = ((BasePlugin)this).Config.Bind<float>("7. Difficulty Modifiers", "Difficulty", 0f, "Overall difficulty modifier");
			EliteSpawnIncrease = ((BasePlugin)this).Config.Bind<float>("7. Difficulty Modifiers", "EliteSpawnIncrease", 0f, "Elite enemy spawn rate increase");
			EnemyAmountMultiplier = ((BasePlugin)this).Config.Bind<float>("7. Difficulty Modifiers", "EnemyAmountMultiplier", 0f, "Enemy spawn amount multiplier");
			EnemySizeMultiplier = ((BasePlugin)this).Config.Bind<float>("7. Difficulty Modifiers", "EnemySizeMultiplier", 0f, "Enemy size multiplier");
			EnemySpeedMultiplier = ((BasePlugin)this).Config.Bind<float>("7. Difficulty Modifiers", "EnemySpeedMultiplier", 0f, "Enemy speed multiplier");
			EnemyHpMultiplier = ((BasePlugin)this).Config.Bind<float>("7. Difficulty Modifiers", "EnemyHpMultiplier", 0f, "Enemy health multiplier");
			EnemyDamageMultiplier = ((BasePlugin)this).Config.Bind<float>("7. Difficulty Modifiers", "EnemyDamageMultiplier", 0f, "Enemy damage multiplier");
			EnemyScalingMultiplier = ((BasePlugin)this).Config.Bind<float>("7. Difficulty Modifiers", "EnemyScalingMultiplier", 0f, "Enemy scaling multiplier");
			harmony = new Harmony("plutoforever_BetterAmog");
			harmony.PatchAll();
			log.LogInfo((object)"===========================================");
			log.LogInfo((object)"Better Amog loaded successfully!");
			ManualLogSource val3 = log;
			val2 = new BepInExInfoLogInterpolatedStringHandler(13, 1, ref flag);
			if (flag)
			{
				((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("Config file: ");
				((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<string>(((BasePlugin)this).Config.ConfigFilePath);
			}
			val3.LogInfo(val2);
			log.LogInfo((object)"Edit the config file to customize Amog's stats");
			log.LogInfo((object)"Restart the game after editing for changes to apply");
			log.LogInfo((object)"===========================================");
		}

		public override bool Unload()
		{
			Harmony obj = harmony;
			if (obj != null)
			{
				obj.UnpatchSelf();
			}
			return ((BasePlugin)this).Unload();
		}
	}
	[HarmonyPatch(typeof(MyPlayer), "Awake")]
	public class MyPlayerAwakePatch
	{
		private static void Postfix(MyPlayer __instance)
		{
			//IL_05fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0605: Expected O, but got Unknown
			//IL_04ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_058c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0593: Expected O, but got Unknown
			//IL_04f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_052c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0531: Unknown result type (might be due to invalid IL or missing references)
			//IL_0532: Unknown result type (might be due to invalid IL or missing references)
			//IL_053a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0542: Unknown result type (might be due to invalid IL or missing references)
			//IL_054d: Expected O, but got Unknown
			bool flag2 = default(bool);
			try
			{
				AlwaysManager val = Object.FindObjectOfType<AlwaysManager>();
				if ((Object)(object)val == (Object)null || (Object)(object)val.dataManager == (Object)null)
				{
					Plugin.log.LogWarning((object)"AlwaysManager or DataManager not found");
					return;
				}
				DataManager dataManager = val.dataManager;
				if (!dataManager.characterData.ContainsKey((ECharacter)14))
				{
					return;
				}
				CharacterData val2 = dataManager.characterData[(ECharacter)14];
				Plugin.log.LogInfo((object)"=== APPLYING AMOG OVERHAUL ===");
				Dictionary<EStat, float> dictionary = new Dictionary<EStat, float>
				{
					{
						(EStat)0,
						Plugin.MaxHealth.Value
					},
					{
						(EStat)1,
						Plugin.HealthRegen.Value
					},
					{
						(EStat)2,
						Plugin.Shield.Value
					},
					{
						(EStat)3,
						Plugin.Thorns.Value
					},
					{
						(EStat)4,
						Plugin.Armor.Value
					},
					{
						(EStat)5,
						Plugin.Evasion.Value
					},
					{
						(EStat)7,
						Plugin.DamageReductionMultiplier.Value
					},
					{
						(EStat)8,
						Plugin.DamageCooldownMultiplier.Value
					},
					{
						(EStat)47,
						Plugin.Overheal.Value
					},
					{
						(EStat)48,
						Plugin.HealingMultiplier.Value
					},
					{
						(EStat)9,
						Plugin.SizeMultiplier.Value
					},
					{
						(EStat)10,
						Plugin.DurationMultiplier.Value
					},
					{
						(EStat)11,
						Plugin.ProjectileSpeedMultiplier.Value
					},
					{
						(EStat)12,
						Plugin.DamageMultiplier.Value
					},
					{
						(EStat)14,
						Plugin.EffectDurationMultiplier.Value
					},
					{
						(EStat)15,
						Plugin.AttackSpeed.Value
					},
					{
						(EStat)16,
						Plugin.Projectiles.Value
					},
					{
						(EStat)44,
						Plugin.WeaponBurstCooldown.Value
					},
					{
						(EStat)45,
						Plugin.ProjectileBounces.Value
					},
					{
						(EStat)6,
						Plugin.Evolve.Value
					},
					{
						(EStat)17,
						Plugin.Lifesteal.Value
					},
					{
						(EStat)18,
						Plugin.CritChance.Value
					},
					{
						(EStat)19,
						Plugin.CritDamage.Value
					},
					{
						(EStat)20,
						Plugin.FireDamage.Value
					},
					{
						(EStat)21,
						Plugin.IceDamage.Value
					},
					{
						(EStat)22,
						Plugin.LightningDamage.Value
					},
					{
						(EStat)23,
						Plugin.EliteDamageMultiplier.Value
					},
					{
						(EStat)24,
						Plugin.KnockbackMultiplier.Value
					},
					{
						(EStat)42,
						Plugin.BurnChance.Value
					},
					{
						(EStat)43,
						Plugin.FreezeChance.Value
					},
					{
						(EStat)25,
						Plugin.MoveSpeedMultiplier.Value
					},
					{
						(EStat)26,
						Plugin.JumpHeight.Value
					},
					{
						(EStat)27,
						Plugin.FallDamageReduction.Value
					},
					{
						(EStat)28,
						Plugin.Slam.Value
					},
					{
						(EStat)46,
						Plugin.ExtraJumps.Value
					},
					{
						(EStat)29,
						Plugin.PickupRange.Value
					},
					{
						(EStat)30,
						Plugin.Luck.Value
					},
					{
						(EStat)31,
						Plugin.GoldIncreaseMultiplier.Value
					},
					{
						(EStat)32,
						Plugin.XpIncreaseMultiplier.Value
					},
					{
						(EStat)33,
						Plugin.ChestIncreaseMultiplier.Value
					},
					{
						(EStat)34,
						Plugin.ChestPriceMultiplier.Value
					},
					{
						(EStat)35,
						Plugin.ShopPriceReduction.Value
					},
					{
						(EStat)49,
						Plugin.SilverIncreaseMultiplier.Value
					},
					{
						(EStat)36,
						Plugin.Holiness.Value
					},
					{
						(EStat)37,
						Plugin.Wickedness.Value
					},
					{
						(EStat)40,
						Plugin.PowerupBoostMultiplier.Value
					},
					{
						(EStat)41,
						Plugin.PowerupChance.Value
					},
					{
						(EStat)38,
						Plugin.Difficulty.Value
					},
					{
						(EStat)39,
						Plugin.EliteSpawnIncrease.Value
					},
					{
						(EStat)50,
						Plugin.EnemyAmountMultiplier.Value
					},
					{
						(EStat)51,
						Plugin.EnemySizeMultiplier.Value
					},
					{
						(EStat)52,
						Plugin.EnemySpeedMultiplier.Value
					},
					{
						(EStat)53,
						Plugin.EnemyHpMultiplier.Value
					},
					{
						(EStat)54,
						Plugin.EnemyDamageMultiplier.Value
					},
					{
						(EStat)55,
						Plugin.EnemyScalingMultiplier.Value
					}
				};
				int num = 0;
				int num2 = 0;
				foreach (KeyValuePair<EStat, float> item in dictionary)
				{
					EStat key = item.Key;
					float value = item.Value;
					if (value == 0f)
					{
						continue;
					}
					bool flag = false;
					Enumerator<StatModifier> enumerator2 = val2.statModifiers.GetEnumerator();
					while (enumerator2.MoveNext())
					{
						StatModifier current2 = enumerator2.Current;
						if (current2.stat == key)
						{
							current2.modification = value;
							flag = true;
							num++;
							break;
						}
					}
					if (!flag)
					{
						StatModifier val3 = new StatModifier
						{
							stat = key,
							modifyType = (EStatModifyType)2,
							modification = value
						};
						val2.statModifiers.Add(val3);
						num2++;
					}
				}
				ManualLogSource log = Plugin.log;
				BepInExInfoLogInterpolatedStringHandler val4 = new BepInExInfoLogInterpolatedStringHandler(42, 2, ref flag2);
				if (flag2)
				{
					((BepInExLogInterpolatedStringHandler)val4).AppendLiteral("Modified ");
					((BepInExLogInterpolatedStringHandler)val4).AppendFormatted<int>(num);
					((BepInExLogInterpolatedStringHandler)val4).AppendLiteral(" existing stats, added ");
					((BepInExLogInterpolatedStringHandler)val4).AppendFormatted<int>(num2);
					((BepInExLogInterpolatedStringHandler)val4).AppendLiteral(" new stats");
				}
				log.LogInfo(val4);
				Plugin.log.LogInfo((object)"=== AMOG OVERHAUL APPLIED ===");
			}
			catch (Exception ex)
			{
				ManualLogSource log2 = Plugin.log;
				BepInExErrorLogInterpolatedStringHandler val5 = new BepInExErrorLogInterpolatedStringHandler(28, 1, ref flag2);
				if (flag2)
				{
					((BepInExLogInterpolatedStringHandler)val5).AppendLiteral("Exception in Amog overhaul: ");
					((BepInExLogInterpolatedStringHandler)val5).AppendFormatted<Exception>(ex);
				}
				log2.LogError(val5);
			}
		}
	}
}