3 const int UNCONSIOUSS_COOLDOWN_TIME = 60;
4 const int UNCONSIOUSS_COOLDOWN_MIN_TIME = 90000;
5 const int UNCONSIOUSS_COOLDOWN_MAX_TIME = 150000;
24 override bool ActivateCondition(
PlayerBase player)
26 if( !player.IsUnconscious() && player.GetHealth(
"",
"Blood") <=
PlayerConstants.SHOCK_DAMAGE_BLOOD_THRESHOLD_HIGH )
28 float energyNormalized = player.GetStatEnergy().Get() / player.GetStatEnergy().GetMax();
29 float waterNormalized = player.GetStatWater().Get() / player.GetStatEnergy().GetMax();
30 float averageUnconsciousTime = (energyNormalized + waterNormalized) / 2;
32 if (
g_Game.GetTime() > (player.m_UnconsciousEndTime +
Math.Lerp(UNCONSIOUSS_COOLDOWN_MIN_TIME, UNCONSIOUSS_COOLDOWN_MAX_TIME, averageUnconsciousTime)) )
42 override bool DeactivateCondition(
PlayerBase player)
44 return !ActivateCondition(player);
48 override void OnTick(
PlayerBase player,
float deltaT)
50 float blood = player.GetHealth(
"",
"Blood");
52 value =
Math.Clamp(value,0,1);
54 float damage = -dmg * deltaT;
55 player.AddHealth(
"",
"Shock", damage);