DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ OnTick()

void CholeraMdfr::OnTick ( PlayerBase player,
float deltaT )
inlineprotected

См. определение в файле Cholera.c строка 63

64 {
65 float waterLoss = ( deltaT * ( WATER_LOSS_CHOLERA * Math.Max( WATER_LOSS_CHOLERA_MIN, player.GetSingleAgentCountNormalized( eAgents.CHOLERA ) ) ) );
66 player.GetStatWater().Add(-waterLoss);
67
68 float stomachVolume = player.m_PlayerStomach.GetStomachVolume();
69 if (stomachVolume >= STOMACH_MIN_VOLUME)
70 {
71 int roll = Math.RandomInt( 0, 100 );
72 if( roll < ( CHANCE_OF_VOMIT + ( CHANCE_OF_VOMIT_AGENT * player.GetSingleAgentCountNormalized( eAgents.CHOLERA ) ) ) )
73 {
74 SymptomBase symptom = player.GetSymptomManager().QueueUpPrimarySymptom( SymptomIDs.SYMPTOM_VOMIT );
75 if (symptom)
76 {
77 CachedObjectsParams.PARAM1_FLOAT.param1 = 65.0;
78 symptom.SetParam(CachedObjectsParams.PARAM1_FLOAT);
79 symptom.SetDuration(Math.RandomIntInclusive(4.0, 8.0));
80
81 if (m_Player.GetStatWater().Get() > (WATER_DRAIN_FROM_VOMIT))
82 m_Player.GetStatWater().Add(-1 * WATER_DRAIN_FROM_VOMIT);
83 if (m_Player.GetStatEnergy().Get() > (ENERGY_DRAIN_FROM_VOMIT))
84 m_Player.GetStatEnergy().Add(-1 * ENERGY_DRAIN_FROM_VOMIT);
85
86 player.GetStaminaHandler().ActivateRecoveryModifier(EStaminaMultiplierTypes.VOMIT_EXHAUSTION);
87 player.GetStaminaHandler().ActivateDepletionModifier(EStaminaMultiplierTypes.VOMIT_EXHAUSTION);
88
89 m_Exhaustion = true;
91 }
92 }
93 }
94
95 if (m_Exhaustion)
96 {
97 m_ExhaustionTimer += deltaT;
98 if (m_ExhaustionTimer >= 30)
99 {
100 player.GetStaminaHandler().DeactivateRecoveryModifier(EStaminaMultiplierTypes.VOMIT_EXHAUSTION);
101 player.GetStaminaHandler().DeactivateDepletionModifier(EStaminaMultiplierTypes.VOMIT_EXHAUSTION);
102
103 m_Exhaustion = false;
104 }
105 }
106 }
eAgents
Определения EAgents.c:3
DayZPlayer m_Player
Определения Hand_Events.c:42
EStaminaMultiplierTypes
Определения StaminaHandler.c:2
static const int CHANCE_OF_VOMIT
Определения Cholera.c:6
bool m_Exhaustion
Определения Cholera.c:15
static const float WATER_LOSS_CHOLERA
Определения Cholera.c:10
float m_ExhaustionTimer
Определения Cholera.c:14
static const float WATER_LOSS_CHOLERA_MIN
Определения Cholera.c:11
static const int WATER_DRAIN_FROM_VOMIT
Определения Cholera.c:8
static const int CHANCE_OF_VOMIT_AGENT
Определения Cholera.c:7
static const int ENERGY_DRAIN_FROM_VOMIT
Определения Cholera.c:9
static const float STOMACH_MIN_VOLUME
Определения Cholera.c:12
void SetDuration(float duration)
Определения StateBase.c:80
void SetParam(Param p)
Определения StateBase.c:105

Перекрестные ссылки CHANCE_OF_VOMIT, CHANCE_OF_VOMIT_AGENT, ENERGY_DRAIN_FROM_VOMIT, m_Exhaustion, m_ExhaustionTimer, m_Player, Math::Max(), CachedObjectsParams::PARAM1_FLOAT, Math::RandomInt(), Math::RandomIntInclusive(), SymptomBase::SetDuration(), SymptomBase::SetParam(), STOMACH_MIN_VOLUME, WATER_DRAIN_FROM_VOMIT, WATER_LOSS_CHOLERA и WATER_LOSS_CHOLERA_MIN.