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

◆ OnTick()

void OnTick ( PlayerBase player,
float deltaT )
private

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

187 {
188 PlayerStat<float> waterStat = player.GetStatWater();
189 PlayerStat<float> energyStat = player.GetStatEnergy();
190 waterStat.Add(-WATER_DRAIN_FROM_FEVER_ST3 * deltaT);
191
192 float thermalBias = player.GetThermalBiasHandler().Get();
193
194 float thermalBiasRemapped = Math.Remap(THRESHOLD_ACTIVATE, 1.0, 0.0, 1.0, thermalBias);
195 float chance = Math.Lerp(VOMIT_OCCURRENCES_MIN, VOMIT_OCCURRENCES_MAX, thermalBiasRemapped);
196 chance = (chance / 900) * deltaT;
197
198 if (Math.RandomFloat01() < chance)
199 {
200 SymptomBase symptom = player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT);
201 if (symptom)
202 {
203 CachedObjectsParams.PARAM1_FLOAT.param1 = 10.0;
205
206 if (waterStat.Get() > WATER_DRAIN_FROM_VOMIT)
207 waterStat.Add(-1 * WATER_DRAIN_FROM_VOMIT);
208 if (energyStat.Get() > ENERGY_DRAIN_FROM_VOMIT)
209 energyStat.Add(-1 * ENERGY_DRAIN_FROM_VOMIT);
210
211 player.GetStaminaHandler().ActivateRecoveryModifier(EStaminaMultiplierTypes.VOMIT_EXHAUSTION);
212 player.GetStaminaHandler().ActivateDepletionModifier(EStaminaMultiplierTypes.VOMIT_EXHAUSTION);
213
214 m_Exhaustion = true;
216 }
217 }
218
219 if (m_Exhaustion)
220 {
221 m_ExhaustionTimer += deltaT;
222 if (m_ExhaustionTimer >= 30 * thermalBiasRemapped)
223 {
224 player.GetStaminaHandler().DeactivateRecoveryModifier(EStaminaMultiplierTypes.VOMIT_EXHAUSTION);
225 player.GetStaminaHandler().DeactivateDepletionModifier(EStaminaMultiplierTypes.VOMIT_EXHAUSTION);
226
227 m_Exhaustion = false;
228 }
229 }
230 }
bool m_Exhaustion
Определения HeatStroke.c:144
HeatStrokeMdfr THRESHOLD_ACTIVATE
phase3 stays active together with phase4
float m_ExhaustionTimer
Определения HeatStroke.c:145
void PlayerStat(T min, T max, T init, string label, int flags)
Определения PlayerStatBase.c:43
EStaminaMultiplierTypes
Определения StaminaHandler.c:2
static ref Param1< float > PARAM1_FLOAT
Определения UtilityClasses.c:13
Определения EnMath.c:7
void SetParam(Param p)
Определения StateBase.c:105
Определения StateBase.c:2
static float RandomFloat01()
Returns a random float number between and min [inclusive] and max [inclusive].
Определения EnMath.c:126
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.
static float Remap(float inputMin, float inputMax, float outputMin, float outputMax, float inputValue, bool clampedOutput=true)
Returns given value remaped from input range into output range.
Определения EnMath.c:740

Перекрестные ссылки EYES_IRRITATION_AGENTS_PER_SEC, HandleCoughing(), Math::Lerp(), m_Exhaustion, m_ExhaustionTimer, m_NextEvent, m_SandstormController, m_Time, Math::Max(), PAIN_EVENT_INTERVAL_MAX, PAIN_EVENT_INTERVAL_MIN, CachedObjectsParams::PARAM1_FLOAT, PlayerStat(), Math::RandomFloat01(), Math::RandomFloatInclusive(), Math::Remap(), SymptomBase::SetParam(), SHIVER_EVENT_INTERVAL_MAX, SHIVER_EVENT_INTERVAL_MIN, SILICOSIS_AGENTS_PER_SEC, THRESHOLD_ACTIVATE и TransmitAgents().