Details

Last Updated
First Uploaded
Downloads
16
Likes
0
Size
4.4KB
Dependency string
Scyye_Test-GoldShield-1.1.3
Dependants
Download

GoldShield.dll

Download (3.7 KB)
using System.Diagnostics;using System.Reflection;using System.Runtime.CompilerServices;using System.Runtime.Versioning;using BepInEx;using On.RoR2;using RoR2;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(".NETStandard,Version=v2.0", FrameworkDisplayName = "")][assembly: AssemblyCompany("GoldShield")][assembly: AssemblyConfiguration("Debug")][assembly: AssemblyFileVersion("1.0.0.0")][assembly: AssemblyInformationalVersion("1.0.0")][assembly: AssemblyProduct("GoldShield")][assembly: AssemblyTitle("GoldShield")][assembly: AssemblyVersion("1.0.0.0")]namespace GoldShield;[BepInPlugin("com.NoSym.goldshield", "Gold Shield", "1.1.2")]public class GoldShield : BaseUnityPlugin{	public void Awake()	{		//IL_008b: Unknown result type (might be due to invalid IL or missing references)		//IL_0095: Expected O, but got Unknown		string shieldFormula = ((BaseUnityPlugin)this).Config.Wrap<string>("Settings", "ShieldFormula", "Gold Shield Formula\n'percent' Uses Brittle Crown's gold loss formula.\n'flat' Uses a flat 1:1 ratio between damage blocked and gold lost.", "percent").Value;		int blockRatio = ((BaseUnityPlugin)this).Config.Wrap<int>("Settings", "BlockRatio", "What percent of damage should be blockable with gold.", 100).Value;		if (blockRatio > 100)		{			blockRatio = 100;		}		else if (blockRatio < 0)		{			blockRatio = 0;		}		HealthComponent.TakeDamage += (hook_TakeDamage)delegate(orig_TakeDamage orig, HealthComponent self, DamageInfo damager)		{			//IL_01fa: Unknown result type (might be due to invalid IL or missing references)			//IL_01ff: Unknown result type (might be due to invalid IL or missing references)			if ((Object)(object)self != (Object)null && (Object)(object)self.body != (Object)null && (Object)(object)self.body.master != (Object)null && (Object)(object)((Component)self.body.master).GetComponent<PlayerCharacterMasterController>() != (Object)null)			{				CharacterMaster master = self.body.master;				float num = damager.damage * (float)blockRatio / 100f;				float num2 = damager.damage * (1f - (float)blockRatio / 100f);				uint money = master.money;				if (shieldFormula.ToLowerInvariant() == "flat")				{					int money2 = (int)master.money;					int num3 = 0;					num3 = ((money2 < (int)num) ? money2 : ((int)num));					master.money -= (uint)num3;					damager.damage -= (float)num3;				}				else if ((float)master.money * (num / self.fullCombinedHealth) > num)				{					int num4 = (int)((float)master.money * (num / self.fullCombinedHealth));					if (num4 > master.money)					{						master.money = 0u;						num *= Mathf.Max(1f, Mathf.Abs(num / self.fullCombinedHealth - 1f));						damager.damage = num + num2;					}					else					{						num = 0f;						master.money -= (uint)num4;						damager.damage = num + num2;					}				}				else				{					int num5 = (int)master.money - (int)num;					if (num5 < 0)					{						num = Mathf.Abs(num5);
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.