Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
vomitstate.c
Go to the documentation of this file.
1
class
VomitSymptom
:
SymptomBase
2
{
3
static
const
float
STAMINA_DEPLETION_MULTIPLIER
= 1.3;
4
static
const
float
STAMINA_RECOVERY_MULTIPLIER
= 0.5;
5
6
//just for the Symptom parameters set-up and gets called even if the Symptom doesn't execute, don't put any gameplay code in here
7
const
int
BLOOD_LOSS
= 250;
8
const
int
STOMACH_CONTENT_PERCENTAGE_DEFAULT
= 5;
//per second
9
10
private
float
m_VomitContentPercentage
= -1;
//considered unspecified at -1
11
12
override
void
OnInit
()
13
{
14
m_SymptomType
=
SymptomTypes
.PRIMARY;
15
m_Priority
= 100;
16
m_ID
= SymptomIDs.SYMPTOM_VOMIT;
17
m_DestroyOnAnimFinish
=
true
;
18
m_SyncToClient
=
false
;
19
m_Duration
= 5;
20
m_MaxCount
= 1;
21
m_VomitContentPercentage
= -1;
22
}
23
24
bool
IsContaminationActive
()
25
{
26
return
m_Player
.GetModifiersManager().IsModifierActive(
eModifiers
.MDF_CONTAMINATION2) ||
m_Player
.GetModifiersManager().IsModifierActive(
eModifiers
.MDF_CONTAMINATION3);
27
}
28
29
override
void
SetParam
(
Param
p)
30
{
31
Param1<float> p1 = Param1<float>.Cast(p);
32
if
( p1 )
33
{
34
m_VomitContentPercentage
= p1.param1;
35
}
36
}
37
38
override
void
OnAnimationStart
()
39
{
40
if
(
m_Player
)
41
{
42
m_Player
.GetStatToxicity().Set(0);
43
if
(
m_Player
.m_PlayerStomach)
44
{
45
if
(
m_VomitContentPercentage
< 0)
//unspecified, calculate from duration
46
{
47
float
contentLoss =
STOMACH_CONTENT_PERCENTAGE_DEFAULT
*
m_Duration
;
48
m_Player
.m_PlayerStomach.ReduceContents(contentLoss);
49
}
50
else
51
m_Player
.m_PlayerStomach.ReduceContents(
m_VomitContentPercentage
);
52
}
53
54
if
(
IsContaminationActive
())
55
m_Player
.AddHealth(
""
,
"Blood"
, -
BLOOD_LOSS
);
56
}
57
}
58
59
override
void
OnAnimationFinish
()
60
{
62
m_Player
.GetStaminaHandler().DepleteStaminaEx(
EStaminaModifiers
.OVERALL_DRAIN);
63
64
if
(
IsContaminationActive
())
65
{
66
PluginLifespan
module_lifespan =
PluginLifespan
.Cast(
GetPlugin
(
PluginLifespan
) );
67
module_lifespan.UpdateBloodyHandsVisibilityEx(
m_Player
,
eBloodyHandsTypes
.JUST_BLOOD );
68
}
69
}
70
71
override
bool
CanActivate
()
72
{
73
return
(
m_Manager
.GetCurrentCommandID() ==
DayZPlayerConstants
.COMMANDID_MOVE ||
m_Manager
.GetCurrentCommandID() ==
DayZPlayerConstants
.COMMANDID_ACTION );
74
}
75
77
override
void
OnGetActivatedServer
(
PlayerBase
player)
78
{
79
PlayAnimationFB
(
DayZPlayerConstants
.CMD_ACTIONFB_VOMIT,
DayZPlayerConstants
.STANCEMASK_CROUCH,
GetDuration
() );
80
}
81
82
override
SmptAnimMetaBase
SpawnAnimMetaObject
()
83
{
84
return
new
SmptAnimMetaFB();
85
}
86
87
override
bool
IsSyncToRemotes
()
88
{
89
return
true
;
90
}
91
}
Param
Base Param Class with no parameters.
Definition
param.c:12
PlayerBase
Definition
playerbaseclient.c:2
SmptAnimMetaBase
Definition
smptanimmeta.c:83
SymptomBase::m_SyncToClient
bool m_SyncToClient
Definition
statebase.c:21
SymptomBase::PlayAnimationFB
void PlayAnimationFB(int animation, int stance_mask, float running_time=-1)
Definition
statebase.c:245
SymptomBase::m_Priority
int m_Priority
Definition
statebase.c:4
SymptomBase::m_SymptomType
int m_SymptomType
Definition
statebase.c:18
SymptomBase::SymptomBase
void SymptomBase()
Definition
statebase.c:30
SymptomBase::m_Player
PlayerBase m_Player
Definition
statebase.c:8
SymptomBase::m_MaxCount
int m_MaxCount
Definition
statebase.c:24
SymptomBase::m_ID
int m_ID
Definition
statebase.c:13
SymptomBase::m_Manager
SymptomManager m_Manager
Definition
statebase.c:20
SymptomBase::GetDuration
float GetDuration()
Definition
statebase.c:85
SymptomBase::m_DestroyOnAnimFinish
bool m_DestroyOnAnimFinish
Definition
statebase.c:16
SymptomBase::m_Duration
float m_Duration
Definition
statebase.c:22
VomitSymptom
Definition
vomitstate.c:2
VomitSymptom::OnInit
override void OnInit()
Definition
vomitstate.c:12
VomitSymptom::OnAnimationStart
override void OnAnimationStart()
Definition
vomitstate.c:38
VomitSymptom::OnGetActivatedServer
override void OnGetActivatedServer(PlayerBase player)
gets called once on an Symptom which is being activated
Definition
vomitstate.c:77
VomitSymptom::STOMACH_CONTENT_PERCENTAGE_DEFAULT
const int STOMACH_CONTENT_PERCENTAGE_DEFAULT
Definition
vomitstate.c:8
VomitSymptom::BLOOD_LOSS
const int BLOOD_LOSS
Definition
vomitstate.c:7
VomitSymptom::IsContaminationActive
bool IsContaminationActive()
Definition
vomitstate.c:24
VomitSymptom::STAMINA_DEPLETION_MULTIPLIER
static const float STAMINA_DEPLETION_MULTIPLIER
Definition
vomitstate.c:3
VomitSymptom::m_VomitContentPercentage
float m_VomitContentPercentage
Definition
vomitstate.c:10
VomitSymptom::SpawnAnimMetaObject
override SmptAnimMetaBase SpawnAnimMetaObject()
Definition
vomitstate.c:82
VomitSymptom::IsSyncToRemotes
override bool IsSyncToRemotes()
Definition
vomitstate.c:87
VomitSymptom::CanActivate
override bool CanActivate()
Definition
vomitstate.c:71
VomitSymptom::OnAnimationFinish
override void OnAnimationFinish()
Definition
vomitstate.c:59
VomitSymptom::SetParam
override void SetParam(Param p)
Definition
vomitstate.c:29
VomitSymptom::STAMINA_RECOVERY_MULTIPLIER
static const float STAMINA_RECOVERY_MULTIPLIER
Definition
vomitstate.c:4
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition
dayzplayer.c:602
eModifiers
eModifiers
Definition
emodifiers.c:2
EStaminaModifiers
EStaminaModifiers
Definition
estaminamodifiers.c:2
PluginLifespan
void PluginLifespan()
Definition
pluginlifespan.c:45
eBloodyHandsTypes
eBloodyHandsTypes
Definition
pluginlifespan.c:9
GetPlugin
PluginBase GetPlugin(typename plugin_type)
Definition
pluginmanager.c:325
SymptomTypes
SymptomTypes
Definition
statemanager.c:32
Games
Dayz
scripts
4_world
classes
playersymptoms
states
primary
vomitstate.c
Generated by
1.17.0