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

◆ OnTick()

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

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

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;
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 }
eAgents
Определения EAgents.c:3
DayZPlayer m_Player
Определения Hand_Events.c:42
EStaminaMultiplierTypes
Определения StaminaHandler.c:2
static const float EVENT_INTERVAL_MIN
Определения Salmonella.c:12
static const int WATER_DRAIN_FROM_VOMIT
Определения Salmonella.c:8
static const int CHANCE_OF_VOMIT
Определения Salmonella.c:6
float m_ExhaustionTimer
Определения Salmonella.c:17
static const int ENERGY_DRAIN_FROM_VOMIT
Определения Salmonella.c:9
static const float STOMACH_MIN_VOLUME
Определения Salmonella.c:10
bool m_Exhaustion
Определения Salmonella.c:19
float m_NextEvent
Определения Salmonella.c:16
static const float EVENT_INTERVAL_MAX
Определения Salmonella.c:13
float m_Time
Определения Salmonella.c:15
static const int CHANCE_OF_VOMIT_AGENT
Определения Salmonella.c:7
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, EVENT_INTERVAL_MAX, EVENT_INTERVAL_MIN, m_Exhaustion, m_ExhaustionTimer, m_NextEvent, m_Player, m_Time, CachedObjectsParams::PARAM1_FLOAT, Math::RandomFloatInclusive(), Math::RandomInt(), SymptomBase::SetDuration(), SymptomBase::SetParam(), STOMACH_MIN_VOLUME и WATER_DRAIN_FROM_VOMIT.