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 OrtonUtils v1.0.0
OrtonUtils.dll
Decompiled a year agousing 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); } } }