Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
shockdamage.c
Go to the documentation of this file.
2{
3 const int UNCONSIOUSS_COOLDOWN_TIME = 60;//in s
4 const int UNCONSIOUSS_COOLDOWN_MIN_TIME = 90000;//in miliseconds
5 const int UNCONSIOUSS_COOLDOWN_MAX_TIME = 150000;//in miliseconds
6 override void Init()
7 {
9 m_ID = eModifiers.MDF_SHOCK_DAMAGE;
12 }
13
14 override void OnActivate(PlayerBase player)
15 {
16
17 }
18
19 override void OnReconnect(PlayerBase player)
20 {
21
22 }
23
24 override bool ActivateCondition(PlayerBase player)
25 {
26 if( !player.IsUnconscious() && player.GetHealth("","Blood") <= PlayerConstants.SHOCK_DAMAGE_BLOOD_THRESHOLD_HIGH )
27 {
28 float energyNormalized = player.GetStatEnergy().Get() / player.GetStatEnergy().GetMax();
29 float waterNormalized = player.GetStatWater().Get() / player.GetStatEnergy().GetMax();
30 float averageUnconsciousTime = (energyNormalized + waterNormalized) / 2;
31
32 if ( g_Game.GetTime() > (player.m_UnconsciousEndTime + Math.Lerp(UNCONSIOUSS_COOLDOWN_MIN_TIME, UNCONSIOUSS_COOLDOWN_MAX_TIME, averageUnconsciousTime)) )
33 {
34 return true;
35 }
36 }
37
38 return false;
39
40 }
41
42 override bool DeactivateCondition(PlayerBase player)
43 {
44 return !ActivateCondition(player);
45 }
46 // ------------------------------------------------------------------------------
47
48 override void OnTick(PlayerBase player, float deltaT)
49 {
50 float blood = player.GetHealth("","Blood");
52 value = Math.Clamp(value,0,1);
54 float damage = -dmg * deltaT;
55 player.AddHealth("","Shock", damage);
56 //PrintString(damage.ToString());
57 }
58};
Definition enmath.c:7
static const float SHOCK_DAMAGE_LOW
static const float SHOCK_DAMAGE_BLOOD_THRESHOLD_HIGH
static const float SHOCK_DAMAGE_BLOOD_THRESHOLD_LOW
static const float SHOCK_DAMAGE_HIGH
override bool DeactivateCondition(PlayerBase player)
Definition shockdamage.c:42
override void OnReconnect(PlayerBase player)
Definition shockdamage.c:19
override void OnActivate(PlayerBase player)
Definition shockdamage.c:14
const int UNCONSIOUSS_COOLDOWN_TIME
Definition shockdamage.c:3
override void OnTick(PlayerBase player, float deltaT)
Definition shockdamage.c:48
override void Init()
Definition shockdamage.c:6
override bool ActivateCondition(PlayerBase player)
Definition shockdamage.c:24
const int UNCONSIOUSS_COOLDOWN_MIN_TIME
Definition shockdamage.c:4
const int UNCONSIOUSS_COOLDOWN_MAX_TIME
Definition shockdamage.c:5
DayZGame g_Game
Definition dayzgame.c:3942
int m_ID
ID of effect, given by SEffectManager when registered (automatically done when playing through it).
Definition effect.c:51
eModifiers
Definition emodifiers.c:2
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.
bool m_TrackActivatedTime
overall time this modifier was active
float m_TickIntervalActive
float m_TickIntervalInactive
const int DEFAULT_TICK_TIME_INACTIVE