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 {
306
307
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;
323 params.param2 = faintData;
324
326
331 }
333 {
334 params.param1 = SymptomIDs.SYMPTOM_FAINT;
339 params.param2 = faintData;
340
342
346 }
347 }
348 else
349 {
351 {
353
354 params.param1 = SymptomIDs.SYMPTOM_FAINT;
359 params.param2 = faintData;
360
362 }
363 }
364
367
370 if ((thermalBias > 0.75 && canTriggerUnconsciousness) || player.IsUnconscious())
371 {
374 {
375 player.RequestUnconsciousness(true);
376 player.SetHealth("", "Shock", 25.0);
380 }
382 {
383 player.RequestUnconsciousness(false);
386 }
387 }
388 }
static const float HEALTH_DAMAGE_MIN
Health damage.
static const float UNCONSCIOUSNESS_EVENT_INTERVAL_MIN
static const float SHOCK_ACTIVATION_THRESHOLD_MIN
static const float UNCONSCIOUSNESS_EVENT_INTERVAL_MAX
static const float UNCONSCIOUSNESS_LENGTH_MIN
one time
static const float HEALTH_DAMAGE_MAX
static const float UNCONSCIOUSNESS_LENGTH_MAX
const float STAGE_THRESHOLDS[NUMBER_OF_STAGES]
float m_UnconciousnessActiveTimer
ref SymptomBase m_FaintSymptom
float m_NextUnconsciousnessEvent
bool m_CanFaintEffectFadeIn
float m_UnconciousnessInactiveTimer
bool m_CanFaintEffectFadeOut
static const float THRESHOLD_ACTIVATE
ref TFloatArray m_FloatArray