Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
fever.c
Go to the documentation of this file.
2{
3 private float m_Time;
4 private float m_NextEvent;
5
6 static const float EVENT_INTERVAL_MIN = 12;
7 static const float EVENT_INTERVAL_MAX = 18;
8
9
10 override void Init()
11 {
14 m_ID = eModifiers.MDF_FEVER;
17 m_SyncID = eModifierSyncIDs.MODIFIER_SYNC_FEVER;
18 }
19 override bool ActivateCondition(PlayerBase player)
20 {
21 return (player.GetModifiersManager().IsModifierActive(eModifiers.MDF_CHOLERA) || player.GetModifiersManager().IsModifierActive(eModifiers.MDF_INFLUENZA) || player.GetModifiersManager().IsModifierActive(eModifiers.MDF_WOUND_INFECTION2));
22 }
23
24 override void OnActivate(PlayerBase player)
25 {
26 if( player.m_NotifiersManager )
27 player.m_NotifiersManager.ActivateByType(eNotifiers.NTF_FEVERISH);
28
29 player.GetSymptomManager().QueueUpSecondarySymptom(SymptomIDs.SYMPTOM_FEVERBLUR);
30 }
31
32 override void OnReconnect(PlayerBase player)
33 {
34 this.OnActivate(player);
35 }
36
37
38 override void OnDeactivate(PlayerBase player)
39 {
40 if( player.m_NotifiersManager )
41 player.m_NotifiersManager.DeactivateByType(eNotifiers.NTF_FEVERISH);
42 player.GetSymptomManager().RemoveSecondarySymptom(SymptomIDs.SYMPTOM_FEVERBLUR);
43 }
44
45
46 override bool DeactivateCondition(PlayerBase player)
47 {
48 return !ActivateCondition(player);
49 }
50
51 override void OnTick(PlayerBase player, float deltaT)
52 {
53 float water_loss = deltaT * PlayerConstants.WATER_LOSS_FEVER;
54 player.GetStatWater().Add(-water_loss);
55
56 m_Time += deltaT;
57
58 if ( m_Time >= m_NextEvent )
59 {
60 m_Time = 0;
61 m_NextEvent = Math.RandomFloatInclusive( EVENT_INTERVAL_MIN, EVENT_INTERVAL_MAX );
62
63 player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_HOT);
64 }
65 }
66};
Definition enmath.c:7
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
float m_Time
Definition environment.c:59
bool m_TrackActivatedTime
overall time this modifier was active
bool m_AnalyticsStatsEnabled
eModifierSyncIDs m_SyncID
float m_TickIntervalActive
float m_TickIntervalInactive
eModifierSyncIDs
const int DEFAULT_TICK_TIME_INACTIVE
const int DEFAULT_TICK_TIME_ACTIVE_SHORT
eNotifiers
void OnActivate()
float m_NextEvent