Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
woundinfection2.c
Go to the documentation of this file.
1
class
WoundInfectStage2Mdfr
:
ModifierBase
2
{
3
static
const
int
AGENT_THRESHOLD_ACTIVATE
= 250;
4
static
const
int
AGENT_THRESHOLD_DEACTIVATE
= 0;
5
6
static
const
int
PAIN_EVENT_INTERVAL_MIN
= 6;
7
static
const
int
PAIN_EVENT_INTERVAL_MAX
= 12;
8
9
10
static
const
float
DAMAGE_PER_SEC
= 0.04;
11
12
protected
float
m_NextEvent
;
13
protected
float
m_Time
;
14
15
override
void
Init
()
16
{
17
m_TrackActivatedTime
=
false
;
18
m_AnalyticsStatsEnabled
=
true
;
19
m_ID
=
eModifiers
.MDF_WOUND_INFECTION2;
20
m_TickIntervalInactive
=
DEFAULT_TICK_TIME_INACTIVE
;
21
m_TickIntervalActive
=
DEFAULT_TICK_TIME_ACTIVE
;
22
m_SyncID
=
eModifierSyncIDs
.MODIFIER_SYNC_WOUND_INFECT_2;
23
}
24
25
override
string
GetDebugText
()
26
{
27
return
(
"Activate threshold: "
+
AGENT_THRESHOLD_ACTIVATE
+
"| "
+
"Deativate threshold: "
+
AGENT_THRESHOLD_DEACTIVATE
);
28
}
29
30
override
protected
bool
ActivateCondition
(
PlayerBase
player)
31
{
32
if
(player.GetSingleAgentCount(
eAgents
.WOUND_AGENT) >=
AGENT_THRESHOLD_ACTIVATE
)
33
{
34
return
true
;
35
}
36
else
37
{
38
return
false
;
39
}
40
}
41
42
override
protected
void
OnActivate
(
PlayerBase
player)
43
{
44
player.IncreaseDiseaseCount();
45
m_NextEvent
=
Math
.
RandomFloatInclusive
(
PAIN_EVENT_INTERVAL_MIN
,
PAIN_EVENT_INTERVAL_MAX
);
46
47
SymptomBase
shivers = player.GetSymptomManager().QueueUpSecondarySymptomEx(SymptomIDs.SYMPTOM_HAND_SHIVER);
48
if
( shivers )
49
{
50
CachedObjectsParams
.
PARAM1_INT
.param1 = 3;
51
shivers.
SetParam
(
CachedObjectsParams
.
PARAM1_INT
);
52
}
53
54
}
55
56
override
protected
void
OnDeactivate
(
PlayerBase
player)
57
{
58
player.DecreaseDiseaseCount();
59
player.GetSymptomManager().RemoveSecondarySymptom(SymptomIDs.SYMPTOM_HAND_SHIVER);
60
}
61
62
override
protected
bool
DeactivateCondition
(
PlayerBase
player)
63
{
64
if
(player.GetSingleAgentCount(
eAgents
.WOUND_AGENT) <=
AGENT_THRESHOLD_DEACTIVATE
)
65
{
66
return
true
;
67
}
68
else
69
{
70
return
false
;
71
}
72
}
73
74
override
protected
void
OnTick
(
PlayerBase
player,
float
deltaT)
75
{
76
m_Time
+= deltaT;
77
78
if
(
m_Time
>=
m_NextEvent
)
79
{
80
if
( player.IsAntibioticsActive() )
81
{
82
player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_PAIN_LIGHT);
83
}
84
else
85
{
86
player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_PAIN_HEAVY);
87
float
damage =
m_Time
* (
DAMAGE_PER_SEC
+ player.GetHealthRegenSpeed());
88
player.AddHealth(
""
,
""
, -damage);
89
}
90
91
m_Time
= 0;
92
m_NextEvent
=
Math
.
RandomFloatInclusive
(
PAIN_EVENT_INTERVAL_MIN
,
PAIN_EVENT_INTERVAL_MAX
);
93
}
94
95
96
}
97
};
CachedObjectsParams
Definition
utilityclasses.c:10
CachedObjectsParams::PARAM1_INT
static ref Param1< int > PARAM1_INT
Definition
utilityclasses.c:11
Math
Definition
enmath.c:7
ModifierBase
Definition
breathvapourmdfr.c:4
PlayerBase
Definition
playerbaseclient.c:2
SymptomBase
Definition
statebase.c:2
SymptomBase::SetParam
void SetParam(Param p)
Definition
statebase.c:105
WoundInfectStage2Mdfr
Definition
woundinfection2.c:2
WoundInfectStage2Mdfr::m_NextEvent
float m_NextEvent
Definition
woundinfection2.c:12
WoundInfectStage2Mdfr::PAIN_EVENT_INTERVAL_MIN
static const int PAIN_EVENT_INTERVAL_MIN
Definition
woundinfection2.c:6
WoundInfectStage2Mdfr::m_Time
float m_Time
Definition
woundinfection2.c:13
WoundInfectStage2Mdfr::AGENT_THRESHOLD_ACTIVATE
static const int AGENT_THRESHOLD_ACTIVATE
Definition
woundinfection2.c:3
WoundInfectStage2Mdfr::ActivateCondition
bool ActivateCondition(PlayerBase player)
Definition
woundinfection2.c:30
WoundInfectStage2Mdfr::GetDebugText
override string GetDebugText()
Definition
woundinfection2.c:25
WoundInfectStage2Mdfr::PAIN_EVENT_INTERVAL_MAX
static const int PAIN_EVENT_INTERVAL_MAX
Definition
woundinfection2.c:7
WoundInfectStage2Mdfr::DAMAGE_PER_SEC
static const float DAMAGE_PER_SEC
Definition
woundinfection2.c:10
WoundInfectStage2Mdfr::Init
override void Init()
Definition
woundinfection2.c:15
WoundInfectStage2Mdfr::DeactivateCondition
bool DeactivateCondition(PlayerBase player)
Definition
woundinfection2.c:62
WoundInfectStage2Mdfr::AGENT_THRESHOLD_DEACTIVATE
static const int AGENT_THRESHOLD_DEACTIVATE
Definition
woundinfection2.c:4
WoundInfectStage2Mdfr::OnTick
void OnTick(PlayerBase player, float deltaT)
Definition
woundinfection2.c:74
WoundInfectStage2Mdfr::OnActivate
void OnActivate(PlayerBase player)
Definition
woundinfection2.c:42
WoundInfectStage2Mdfr::OnDeactivate
void OnDeactivate(PlayerBase player)
Definition
woundinfection2.c:56
eAgents
eAgents
Definition
eagents.c:3
m_ID
int m_ID
ID of effect, given by SEffectManager when registered (automatically done when playing through it).
Definition
effect.c:51
eModifiers
eModifiers
Definition
emodifiers.c:2
Math::RandomFloatInclusive
static float RandomFloatInclusive(float min, float max)
Returns a random float number between and min [inclusive] and max [inclusive].
Definition
enmath.c:106
m_TrackActivatedTime
bool m_TrackActivatedTime
overall time this modifier was active
Definition
modifierbase.c:14
m_AnalyticsStatsEnabled
bool m_AnalyticsStatsEnabled
Definition
modifierbase.c:31
m_SyncID
eModifierSyncIDs m_SyncID
Definition
modifierbase.c:28
m_TickIntervalActive
float m_TickIntervalActive
Definition
modifierbase.c:18
m_TickIntervalInactive
float m_TickIntervalInactive
Definition
modifierbase.c:17
eModifierSyncIDs
eModifierSyncIDs
Definition
modifiersmanager.c:3
DEFAULT_TICK_TIME_INACTIVE
const int DEFAULT_TICK_TIME_INACTIVE
Definition
modifiersmanager.c:29
DEFAULT_TICK_TIME_ACTIVE
enum eModifierSyncIDs DEFAULT_TICK_TIME_ACTIVE
Games
Dayz
scripts
4_world
classes
playermodifiers
modifiers
diseases
woundinfection2.c
Generated by
1.17.0