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

◆ OnTick()

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

fainting

unconsciousness

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

298 {
299 float thermalBias = player.GetThermalBiasHandler().Get();
300
301 Param2<int, ref SymptomSyncData> params = new Param2<int, ref SymptomSyncData>(0, null);
302 SymptomSyncData faintData = new SymptomSyncData();
303 if (!player.IsUnconscious())
304 {
305 m_FaintEffectTime += deltaT;
306
307 // HEALTH DAMAGE
308 float health = Math.Remap(THRESHOLD_ACTIVATE, 1.0, HEALTH_DAMAGE_MIN, HEALTH_DAMAGE_MAX, thermalBias);
309 player.AddHealth("", "", -health * deltaT);
310
312 float vignette = Math.Remap(STAGE_THRESHOLDS[3], 1.0, 1.0, 2.0, thermalBias);
313 float fadeOut = Math.Remap(STAGE_THRESHOLDS[3], 1.0, 3.0, 5.0, thermalBias);
314 float interval = Math.Remap(1.0, STAGE_THRESHOLDS[3], 2.0, 10.0, thermalBias) + fadeOut;
315
317 {
318 params.param1 = SymptomIDs.SYMPTOM_FAINT;
319 faintData.m_FloatArray.Insert(vignette);
320 faintData.m_FloatArray.Insert(fadeOut);
321 faintData.m_FloatArray.Insert(interval);
322 faintData.m_IntArray.Insert(1);
323 params.param2 = faintData;
324
325 m_FaintSymptom.SetParam(params);
326
327 m_FaintEffectTime = 0.0;
328 m_FaintEffectActive = true;
331 }
332 else if (m_FaintEffectTime > interval && m_CanFaintEffectFadeOut)
333 {
334 params.param1 = SymptomIDs.SYMPTOM_FAINT;
335 faintData.m_FloatArray.Insert(vignette);
336 faintData.m_FloatArray.Insert(fadeOut);
337 faintData.m_FloatArray.Insert(interval);
338 faintData.m_IntArray.Insert(1);
339 params.param2 = faintData;
340
341 m_FaintSymptom.SetParam(params);
342
343 m_FaintEffectTime = 0.0;
346 }
347 }
348 else
349 {
351 {
352 m_FaintEffectActive = false;
353
354 params.param1 = SymptomIDs.SYMPTOM_FAINT;
355 faintData.m_FloatArray.Insert(vignette);
356 faintData.m_FloatArray.Insert(fadeOut);
357 faintData.m_FloatArray.Insert(interval);
358 faintData.m_IntArray.Insert(2);
359 params.param2 = faintData;
360
361 m_FaintSymptom.SetParam(params);
362 }
363 }
364
367
369 bool canTriggerUnconsciousness = !m_CanFaintEffectFadeOut && player.GetHealth("", "Shock") > SHOCK_ACTIVATION_THRESHOLD_MIN;
370 if ((thermalBias > 0.75 && canTriggerUnconsciousness) || player.IsUnconscious())
371 {
372 float unconsciousnessLength = Math.RandomFloatInclusive(UNCONSCIOUSNESS_LENGTH_MIN, UNCONSCIOUSNESS_LENGTH_MAX);
373 if (m_UnconciousnessInactiveTimer >= m_NextUnconsciousnessEvent && !player.IsUnconscious())
374 {
375 player.RequestUnconsciousness(true);
376 player.SetHealth("", "Shock", 25.0);
380 }
381 else if (m_UnconciousnessActiveTimer > unconsciousnessLength && player.IsUnconscious())
382 {
383 player.RequestUnconsciousness(false);
386 }
387 }
388 }
static const float HEALTH_DAMAGE_MIN
Health damage.
Определения HeatStroke.c:27
static const float UNCONSCIOUSNESS_EVENT_INTERVAL_MIN
Определения HeatStroke.c:21
static const float SHOCK_ACTIVATION_THRESHOLD_MIN
Определения HeatStroke.c:24
static const float UNCONSCIOUSNESS_EVENT_INTERVAL_MAX
Определения HeatStroke.c:22
static const float UNCONSCIOUSNESS_LENGTH_MIN
one time
Определения HeatStroke.c:19
static const float HEALTH_DAMAGE_MAX
Определения HeatStroke.c:28
static const float UNCONSCIOUSNESS_LENGTH_MAX
Определения HeatStroke.c:20
const float STAGE_THRESHOLDS[NUMBER_OF_STAGES]
Определения HeatStroke.c:4
float m_FaintEffectTime
Определения HeatStroke.c:238
bool m_FaintEffectActive
Определения HeatStroke.c:237
float m_UnconciousnessActiveTimer
Определения HeatStroke.c:238
ref SymptomBase m_FaintSymptom
Определения HeatStroke.c:241
float m_NextUnconsciousnessEvent
Определения HeatStroke.c:239
bool m_CanFaintEffectFadeIn
Определения HeatStroke.c:237
float m_UnconciousnessInactiveTimer
Определения HeatStroke.c:238
bool m_CanFaintEffectFadeOut
Определения HeatStroke.c:237
static const float THRESHOLD_ACTIVATE
Определения HeatStroke.c:235
ref TFloatArray m_FloatArray
Определения StateManager.c:53
ref TIntArray m_IntArray
Определения StateManager.c:52

Перекрестные ссылки HeatStrokeMdfr::HEALTH_DAMAGE_MAX, HeatStrokeMdfr::HEALTH_DAMAGE_MIN, m_CanFaintEffectFadeIn, m_CanFaintEffectFadeOut, m_FaintEffectActive, m_FaintEffectTime, m_FaintSymptom, SymptomSyncData::m_FloatArray, SymptomSyncData::m_IntArray, m_NextUnconsciousnessEvent, m_UnconciousnessActiveTimer, m_UnconciousnessInactiveTimer, Math::RandomFloatInclusive(), Math::Remap(), HeatStrokeMdfr::SHOCK_ACTIVATION_THRESHOLD_MIN, HeatStrokeMdfr::STAGE_THRESHOLDS, THRESHOLD_ACTIVATE, HeatStrokeMdfr::UNCONSCIOUSNESS_EVENT_INTERVAL_MAX, HeatStrokeMdfr::UNCONSCIOUSNESS_EVENT_INTERVAL_MIN, HeatStrokeMdfr::UNCONSCIOUSNESS_LENGTH_MAX и HeatStrokeMdfr::UNCONSCIOUSNESS_LENGTH_MIN.