public static void PostStart(Exosuit __instance) { ExosuitUpdater exosuitUpdate = __instance.gameObject.EnsureComponent <ExosuitUpdater>(); Vehicle vehicle = __instance; exosuitUpdate.Initialise(ref vehicle); if (__instance.gameObject != null && __instance.gameObject.TryGetComponent <LiveMixin>(out LiveMixin mixin)) { float defaultHealth = mixin.defaultHealth; float instanceHealthPct = Mathf.Min(mixin.GetHealthFraction(), 1f); float maxHealth = defaultHealth; maxHealth *= Main.config.ExosuitHealthMult; mixin.data.maxHealth = maxHealth; mixin.health = maxHealth * instanceHealthPct; } }
public static void PostStart(Exosuit __instance) { ExosuitUpdater exosuitUpdate = __instance.gameObject.EnsureComponent <ExosuitUpdater>(); Vehicle vehicle = __instance; exosuitUpdate.Initialise(ref vehicle); if (__instance.gameObject != null && __instance.gameObject.TryGetComponent <LiveMixin>(out LiveMixin mixin) && Main.defaultHealth.TryGetValue(TechType.Exosuit, out float defaultHealth)) { float instanceHealthPct = Mathf.Min(mixin.GetHealthFraction(), 1f); float maxHealth = defaultHealth; maxHealth *= Main.config.ExosuitHealthMult; mixin.data.maxHealth = maxHealth; mixin.health = maxHealth * instanceHealthPct; #if SUBNAUTICA_STABLE mixin.initialHealth = defaultHealth; #endif } }