Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
commoncold.c
Go to the documentation of this file.
1
class
CommonColdMdfr
:
ModifierBase
2
{
3
const
int
AGENT_THRESHOLD_ACTIVATE
= 100;
4
const
int
AGENT_THRESHOLD_DEACTIVATE
= 0;
5
6
private
const
int
SNEEZE_RND_DIVIDER_NORMAL_MIN
= 15;
7
private
const
int
SNEEZE_RND_DIVIDER_NORMAL_MAX
= 20;
8
private
const
int
SNEEZE_RND_DIVIDER_SUPPRESSED_MIN
= 30;
9
private
const
int
SNEEZE_RND_DIVIDER_SUPPRESSED_MAX
= 40;
10
11
private
const
int
TEMPORARY_RESISTANCE_TIME
= 900;
12
13
private
ModifiersManager
m_ModifiersManager
;
14
15
override
void
Init
()
16
{
17
m_TrackActivatedTime
=
false
;
18
m_AnalyticsStatsEnabled
=
true
;
19
m_ID
=
eModifiers
.MDF_COMMON_COLD;
20
m_TickIntervalInactive
=
DEFAULT_TICK_TIME_INACTIVE
;
21
m_TickIntervalActive
=
DEFAULT_TICK_TIME_ACTIVE
;
22
}
23
24
override
string
GetDebugText
()
25
{
26
return
(
"Activate threshold: "
+
AGENT_THRESHOLD_ACTIVATE
+
"| "
+
"Deativate threshold: "
+
AGENT_THRESHOLD_DEACTIVATE
);
27
}
28
29
override
bool
ActivateCondition
(
PlayerBase
player)
30
{
31
if
(player.GetSingleAgentCount(
eAgents
.INFLUENZA) >=
AGENT_THRESHOLD_ACTIVATE
)
32
return
true
;
33
34
return
false
;
35
}
36
37
override
protected
void
OnActivate
(
PlayerBase
player)
38
{
39
player.IncreaseDiseaseCount();
40
41
m_ModifiersManager
= player.GetModifiersManager();
42
player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_SNEEZE);
43
}
44
45
override
protected
void
OnDeactivate
(
PlayerBase
player)
46
{
47
player.DecreaseDiseaseCount();
48
49
player.SetTemporaryResistanceToAgent(
eAgents
.INFLUENZA,
TEMPORARY_RESISTANCE_TIME
);
50
}
51
52
override
protected
bool
DeactivateCondition
(
PlayerBase
player)
53
{
54
return
(player.GetSingleAgentCount(
eAgents
.INFLUENZA) <=
AGENT_THRESHOLD_DEACTIVATE
);
55
}
56
57
override
protected
void
OnTick
(
PlayerBase
player,
float
deltaT)
58
{
59
float
chanceOfSneeze =
Math
.
Clamp
(player.GetSingleAgentCountNormalized(
eAgents
.INFLUENZA),0.4,0.75);
60
61
float
randomDivider =
Math
.
RandomInt
(
SNEEZE_RND_DIVIDER_NORMAL_MIN
,
SNEEZE_RND_DIVIDER_NORMAL_MAX
);
62
if
(
m_ModifiersManager
.IsModifierActive(
eModifiers
.MDF_PAINKILLERS) ||
m_ModifiersManager
.IsModifierActive(
eModifiers
.MDF_MORPHINE))
63
randomDivider =
Math
.
RandomInt
(
SNEEZE_RND_DIVIDER_SUPPRESSED_MIN
,
SNEEZE_RND_DIVIDER_SUPPRESSED_MAX
);
64
65
if
(
Math
.
RandomFloat01
() < chanceOfSneeze / randomDivider)
66
{
67
player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_SNEEZE);
68
}
69
}
70
}
CommonColdMdfr
Definition
commoncold.c:2
CommonColdMdfr::m_ModifiersManager
ModifiersManager m_ModifiersManager
Definition
commoncold.c:13
CommonColdMdfr::AGENT_THRESHOLD_ACTIVATE
const int AGENT_THRESHOLD_ACTIVATE
Definition
commoncold.c:3
CommonColdMdfr::GetDebugText
override string GetDebugText()
Definition
commoncold.c:24
CommonColdMdfr::Init
override void Init()
Definition
commoncold.c:15
CommonColdMdfr::DeactivateCondition
bool DeactivateCondition(PlayerBase player)
Definition
commoncold.c:52
CommonColdMdfr::AGENT_THRESHOLD_DEACTIVATE
const int AGENT_THRESHOLD_DEACTIVATE
Definition
commoncold.c:4
CommonColdMdfr::OnTick
void OnTick(PlayerBase player, float deltaT)
Definition
commoncold.c:57
CommonColdMdfr::TEMPORARY_RESISTANCE_TIME
const int TEMPORARY_RESISTANCE_TIME
Definition
commoncold.c:11
CommonColdMdfr::ActivateCondition
override bool ActivateCondition(PlayerBase player)
Definition
commoncold.c:29
CommonColdMdfr::SNEEZE_RND_DIVIDER_SUPPRESSED_MAX
const int SNEEZE_RND_DIVIDER_SUPPRESSED_MAX
Definition
commoncold.c:9
CommonColdMdfr::OnActivate
void OnActivate(PlayerBase player)
Definition
commoncold.c:37
CommonColdMdfr::SNEEZE_RND_DIVIDER_NORMAL_MIN
const int SNEEZE_RND_DIVIDER_NORMAL_MIN
Definition
commoncold.c:6
CommonColdMdfr::OnDeactivate
void OnDeactivate(PlayerBase player)
Definition
commoncold.c:45
CommonColdMdfr::SNEEZE_RND_DIVIDER_SUPPRESSED_MIN
const int SNEEZE_RND_DIVIDER_SUPPRESSED_MIN
Definition
commoncold.c:8
CommonColdMdfr::SNEEZE_RND_DIVIDER_NORMAL_MAX
const int SNEEZE_RND_DIVIDER_NORMAL_MAX
Definition
commoncold.c:7
Math
Definition
enmath.c:7
ModifierBase
Definition
breathvapourmdfr.c:4
PlayerBase
Definition
playerbaseclient.c:2
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::RandomInt
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].
Math::Clamp
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'.
Math::RandomFloat01
static float RandomFloat01()
Returns a random float number between and min [inclusive] and max [inclusive].
Definition
enmath.c:126
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_TickIntervalActive
float m_TickIntervalActive
Definition
modifierbase.c:18
m_TickIntervalInactive
float m_TickIntervalInactive
Definition
modifierbase.c:17
DEFAULT_TICK_TIME_INACTIVE
const int DEFAULT_TICK_TIME_INACTIVE
Definition
modifiersmanager.c:29
ModifiersManager
void ModifiersManager(PlayerBase player)
Definition
modifiersmanager.c:80
DEFAULT_TICK_TIME_ACTIVE
enum eModifierSyncIDs DEFAULT_TICK_TIME_ACTIVE
Games
Dayz
scripts
4_world
classes
playermodifiers
modifiers
diseases
commoncold.c
Generated by
1.17.0