Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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
            }
        }