Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
salmonella.c
Go to the documentation of this file.
1
class
SalmonellaMdfr
:
ModifierBase
2
{
3
static
const
int
AGENT_THRESHOLD_ACTIVATE
= 60;
4
static
const
int
AGENT_THRESHOLD_DEACTIVATE
= 20;
5
6
static
const
int
CHANCE_OF_VOMIT
= 10;
// base vomit chance
7
static
const
int
CHANCE_OF_VOMIT_AGENT
= 20;
// adjusted by the agent count
8
static
const
int
WATER_DRAIN_FROM_VOMIT
= 450;
9
static
const
int
ENERGY_DRAIN_FROM_VOMIT
= 310;
10
static
const
float
STOMACH_MIN_VOLUME
= 200;
// min volume of stomach for vomit symptom
11
12
static
const
float
EVENT_INTERVAL_MIN
= 12;
13
static
const
float
EVENT_INTERVAL_MAX
= 18;
14
15
private
float
m_Time
;
16
private
float
m_NextEvent
;
17
private
float
m_ExhaustionTimer
;
18
19
private
bool
m_Exhaustion
;
20
21
override
void
Init
()
22
{
23
m_TrackActivatedTime
=
false
;
24
m_AnalyticsStatsEnabled
=
true
;
25
m_ID
=
eModifiers
.MDF_SALMONELLA;
26
m_TickIntervalInactive
=
DEFAULT_TICK_TIME_INACTIVE
;
27
m_TickIntervalActive
=
DEFAULT_TICK_TIME_ACTIVE
;
28
}
29
30
override
string
GetDebugText
()
31
{
32
return
(
"Activate threshold: "
+
AGENT_THRESHOLD_ACTIVATE
+
"| "
+
"Deativate threshold: "
+
AGENT_THRESHOLD_DEACTIVATE
);
33
}
34
35
override
protected
bool
ActivateCondition
(
PlayerBase
player)
36
{
37
return
player.GetSingleAgentCount(
eAgents
.SALMONELLA) >=
AGENT_THRESHOLD_ACTIVATE
;
38
}
39
40
override
protected
bool
DeactivateCondition
(
PlayerBase
player)
41
{
42
return
player.GetSingleAgentCount(
eAgents
.SALMONELLA) <=
AGENT_THRESHOLD_DEACTIVATE
;
43
}
44
45
override
protected
void
OnActivate
(
PlayerBase
player)
46
{
47
player.IncreaseDiseaseCount();
48
49
SymptomBase
symptom = player.GetSymptomManager().QueueUpPrimarySymptom( SymptomIDs.SYMPTOM_VOMIT );
50
if
(symptom)
51
{
52
CachedObjectsParams
.
PARAM1_FLOAT
.param1 = 50.0;
53
symptom.
SetParam
(
CachedObjectsParams
.
PARAM1_FLOAT
);
54
symptom.
SetDuration
(5.0);
55
}
56
}
57
58
override
protected
void
OnDeactivate
(
PlayerBase
player)
59
{
60
player.GetStaminaHandler().DeactivateRecoveryModifier(
EStaminaMultiplierTypes
.VOMIT_EXHAUSTION);
61
player.GetStaminaHandler().DeactivateDepletionModifier(
EStaminaMultiplierTypes
.VOMIT_EXHAUSTION);
62
m_Exhaustion
=
false
;
63
m_ExhaustionTimer
= 0;
64
player.DecreaseDiseaseCount();
65
}
66
67
override
protected
void
OnTick
(
PlayerBase
player,
float
deltaT)
68
{
69
float
stomach_volume = player.m_PlayerStomach.GetStomachVolume();
70
if
(stomach_volume >=
STOMACH_MIN_VOLUME
)
71
{
72
int
roll =
Math
.
RandomInt
(0, 100);
73
int
chanceOfVomit =
CHANCE_OF_VOMIT
+ (
CHANCE_OF_VOMIT_AGENT
* player.GetSingleAgentCountNormalized(
eAgents
.SALMONELLA));
74
if
(roll < chanceOfVomit)
75
{
76
SymptomBase
symptom = player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT);
77
78
if
(symptom)
79
{
80
CachedObjectsParams
.
PARAM1_FLOAT
.param1 = 50.0;
81
symptom.
SetParam
(
CachedObjectsParams
.
PARAM1_FLOAT
);
82
symptom.
SetDuration
(5);
83
player.m_AgentPool.ReduceAgent(
eAgents
.SALMONELLA, 30.0);
84
85
if
(
m_Player
.GetStatWater().Get() >
WATER_DRAIN_FROM_VOMIT
)
86
m_Player
.GetStatWater().Add(-1 *
WATER_DRAIN_FROM_VOMIT
);
87
if
(
m_Player
.GetStatEnergy().Get() >
ENERGY_DRAIN_FROM_VOMIT
)
88
m_Player
.GetStatEnergy().Add(-1 *
ENERGY_DRAIN_FROM_VOMIT
);
89
90
player.GetStaminaHandler().ActivateRecoveryModifier(
EStaminaMultiplierTypes
.VOMIT_EXHAUSTION);
91
player.GetStaminaHandler().ActivateDepletionModifier(
EStaminaMultiplierTypes
.VOMIT_EXHAUSTION);
92
93
m_Exhaustion
=
true
;
94
m_ExhaustionTimer
= 0;
95
}
96
}
97
}
98
99
m_Time
+= deltaT;
100
101
if
(
m_Time
>=
m_NextEvent
)
102
{
103
m_Time
= 0;
104
m_NextEvent
=
Math
.
RandomFloatInclusive
(
EVENT_INTERVAL_MIN
,
EVENT_INTERVAL_MAX
);
105
player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_PAIN_LIGHT);
106
}
107
108
if
(
m_Exhaustion
)
109
{
110
m_ExhaustionTimer
+= deltaT;
111
if
(
m_ExhaustionTimer
>= 45)
112
{
113
player.GetStaminaHandler().DeactivateRecoveryModifier(
EStaminaMultiplierTypes
.DISEASE_PNEUMONIA);
114
player.GetStaminaHandler().DeactivateDepletionModifier(
EStaminaMultiplierTypes
.DISEASE_PNEUMONIA);
115
116
m_Exhaustion
=
false
;
117
}
118
}
119
120
121
}
122
}
m_Player
map m_Player
CachedObjectsParams
Definition
utilityclasses.c:10
CachedObjectsParams::PARAM1_FLOAT
static ref Param1< float > PARAM1_FLOAT
Definition
utilityclasses.c:13
Math
Definition
enmath.c:7
ModifierBase
Definition
breathvapourmdfr.c:4
PlayerBase
Definition
playerbaseclient.c:2
SalmonellaMdfr
Definition
salmonella.c:2
SalmonellaMdfr::m_NextEvent
float m_NextEvent
Definition
salmonella.c:16
SalmonellaMdfr::CHANCE_OF_VOMIT_AGENT
static const int CHANCE_OF_VOMIT_AGENT
Definition
salmonella.c:7
SalmonellaMdfr::STOMACH_MIN_VOLUME
static const float STOMACH_MIN_VOLUME
Definition
salmonella.c:10
SalmonellaMdfr::m_Time
float m_Time
Definition
salmonella.c:15
SalmonellaMdfr::AGENT_THRESHOLD_ACTIVATE
static const int AGENT_THRESHOLD_ACTIVATE
Definition
salmonella.c:3
SalmonellaMdfr::ActivateCondition
bool ActivateCondition(PlayerBase player)
Definition
salmonella.c:35
SalmonellaMdfr::m_Exhaustion
bool m_Exhaustion
Definition
salmonella.c:19
SalmonellaMdfr::GetDebugText
override string GetDebugText()
Definition
salmonella.c:30
SalmonellaMdfr::WATER_DRAIN_FROM_VOMIT
static const int WATER_DRAIN_FROM_VOMIT
Definition
salmonella.c:8
SalmonellaMdfr::EVENT_INTERVAL_MIN
static const float EVENT_INTERVAL_MIN
Definition
salmonella.c:12
SalmonellaMdfr::CHANCE_OF_VOMIT
static const int CHANCE_OF_VOMIT
Definition
salmonella.c:6
SalmonellaMdfr::Init
override void Init()
Definition
salmonella.c:21
SalmonellaMdfr::DeactivateCondition
bool DeactivateCondition(PlayerBase player)
Definition
salmonella.c:40
SalmonellaMdfr::AGENT_THRESHOLD_DEACTIVATE
static const int AGENT_THRESHOLD_DEACTIVATE
Definition
salmonella.c:4
SalmonellaMdfr::OnTick
void OnTick(PlayerBase player, float deltaT)
Definition
salmonella.c:67
SalmonellaMdfr::OnActivate
void OnActivate(PlayerBase player)
Definition
salmonella.c:45
SalmonellaMdfr::OnDeactivate
void OnDeactivate(PlayerBase player)
Definition
salmonella.c:58
SalmonellaMdfr::m_ExhaustionTimer
float m_ExhaustionTimer
Definition
salmonella.c:17
SalmonellaMdfr::ENERGY_DRAIN_FROM_VOMIT
static const int ENERGY_DRAIN_FROM_VOMIT
Definition
salmonella.c:9
SalmonellaMdfr::EVENT_INTERVAL_MAX
static const float EVENT_INTERVAL_MAX
Definition
salmonella.c:13
SymptomBase
Definition
statebase.c:2
SymptomBase::SetDuration
void SetDuration(float duration)
Definition
statebase.c:80
SymptomBase::SetParam
void SetParam(Param p)
Definition
statebase.c:105
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::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_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
DEFAULT_TICK_TIME_ACTIVE
enum eModifierSyncIDs DEFAULT_TICK_TIME_ACTIVE
EStaminaMultiplierTypes
EStaminaMultiplierTypes
Definition
staminahandler.c:2
Games
Dayz
scripts
4_world
classes
playermodifiers
modifiers
diseases
salmonella.c
Generated by
1.17.0