Decompiled source of OrtonUtils v1.0.0

OrtonUtils.dll

Decompiled 3 weeks ago
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("OrtonUtils")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("OrtonUtils")]
[assembly: AssemblyCopyright("Copyright ©  2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("669fd67c-a4a4-4f30-adb4-58bcffccda10")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace OrtonUtils;

public static class MyPluginInfo
{
	public const string PLUGIN_GUID = "OrtonUtils";

	public const string PLUGIN_NAME = "OrtonUtils";

	public const string PLUGIN_VERSION = "1.0.0";
}
[BepInPlugin("OrtonUtils", "OrtonUtils", "1.0.0")]
public class Plugin : BaseUnityPlugin
{
	private void Awake()
	{
		((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin OrtonUtils is loaded!");
	}
}
public class SkinnedEnemyHealth : MonoBehaviour
{
	public Transform meshParent;

	private List<Renderer> renderers;

	private List<Material> sharedMaterials = new List<Material>();

	internal List<Material> instancedMaterials = new List<Material>();

	private bool hurtEffect;

	private AnimationCurve hurtCurve;

	private float hurtLerp;

	private int materialHurtColor;

	private int materialHurtAmount;

	private void Awake()
	{
		//IL_016f: Unknown result type (might be due to invalid IL or missing references)
		hurtCurve = AssetManager.instance.animationCurveImpact;
		renderers = new List<Renderer>();
		if (Object.op_Implicit((Object)(object)meshParent))
		{
			renderers.AddRange(((Component)meshParent).GetComponentsInChildren<Renderer>(true));
		}
		foreach (Renderer renderer in renderers)
		{
			Material val = null;
			foreach (Material sharedMaterial in sharedMaterials)
			{
				if (((Object)renderer.sharedMaterial).name == ((Object)sharedMaterial).name)
				{
					val = sharedMaterial;
					renderer.sharedMaterial = instancedMaterials[sharedMaterials.IndexOf(sharedMaterial)];
				}
			}
			if (!Object.op_Implicit((Object)(object)val))
			{
				val = renderer.sharedMaterial;
				sharedMaterials.Add(val);
				instancedMaterials.Add(renderer.material);
			}
		}
		materialHurtColor = Shader.PropertyToID("_ColorOverlay");
		materialHurtAmount = Shader.PropertyToID("_ColorOverlayAmount");
		foreach (Material instancedMaterial in instancedMaterials)
		{
			instancedMaterial.SetColor(materialHurtColor, Color.red);
		}
	}

	public void OnSpawn()
	{
		string text = "Add for EnemyStateSpawn UnityEvent: OnSpawn";
		if (!hurtEffect)
		{
			return;
		}
		hurtLerp = 1f;
		hurtEffect = false;
		foreach (Material instancedMaterial in instancedMaterials)
		{
			instancedMaterial.SetFloat(materialHurtAmount, 0f);
		}
	}

	public void OnHurt()
	{
		string text = "Add for EnemyHealth UnityEvents: OnHurt and DeathStart";
		hurtEffect = true;
		hurtLerp = 0f;
	}

	private void Update()
	{
		if (!hurtEffect)
		{
			return;
		}
		hurtLerp += 2.5f * Time.deltaTime;
		hurtLerp = Mathf.Clamp01(hurtLerp);
		foreach (Material instancedMaterial in instancedMaterials)
		{
			instancedMaterial.SetFloat(materialHurtAmount, hurtCurve.Evaluate(hurtLerp));
		}
		if (!(hurtLerp > 1f))
		{
			return;
		}
		hurtEffect = false;
		foreach (Material instancedMaterial2 in instancedMaterials)
		{
			instancedMaterial2.SetFloat(materialHurtAmount, 0f);
		}
	}
}