using NewHorizons.Utility.OWML; using UnityEngine; namespace NewHorizons.Handlers { internal class InvulnerabilityHandler { private static float _defaultImpactDeathSpeed = -1f; public static void MakeInvulnerable(bool invulnerable) { NHLogger.Log($"Toggling immortality: {invulnerable}"); var deathManager = GetDeathManager(); var resources = GetPlayerResouces(); if (invulnerable) { if (_defaultImpactDeathSpeed == -1f) _defaultImpactDeathSpeed = deathManager._impactDeathSpeed; deathManager._impactDeathSpeed = Mathf.Infinity; deathManager._invincible = true; } else { deathManager._impactDeathSpeed = _defaultImpactDeathSpeed; resources._currentHealth = 100f; deathManager._invincible = false; } } private static DeathManager GetDeathManager() => GameObject.FindObjectOfType(); private static PlayerResources GetPlayerResouces() => GameObject.FindObjectOfType(); } }