DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
WarmthNotfr.c
См. документацию.
2{
3 private const float DEC_TRESHOLD_LOW = -0.01;
4 private const float DEC_TRESHOLD_MED = -0.12;
5 private const float DEC_TRESHOLD_HIGH = -0.25;
6 private const float INC_TRESHOLD_LOW = 0.01;
7 private const float INC_TRESHOLD_MED = 0.12;
8 private const float INC_TRESHOLD_HIGH = 0.25;
9
10 protected ref SimpleMovingAverage<float> m_AverageHeatComfortDeltaBuffer;
11
13 {
14 m_AverageHeatComfortDeltaBuffer = new SimpleMovingAverage<float>(6, 0.0);
15 }
16
17 override int GetNotifierType()
18 {
19 return eNotifiers.NTF_WARMTH;
20 }
21
22 protected DSLevelsTemp DetermineLevelEx()
23 {
24 float value = m_Player.GetStatHeatComfort().Get();
25 DSLevelsTemp level = DSLevelsTemp.NORMAL;
26
27 if (value < 0)
28 {
30 level = DSLevelsTemp.WARNING_MINUS;
32 level = DSLevelsTemp.CRITICAL_MINUS;
34 level = DSLevelsTemp.BLINKING_MINUS;
35 }
36 else
37 {
39 level = DSLevelsTemp.WARNING_PLUS;
41 level = DSLevelsTemp.CRITICAL_PLUS;
43 level = DSLevelsTemp.BLINKING_PLUS;
44 }
45
46 return level;
47 }
48
49 override void DisplayTendency(float delta)
50 {
51 int tendency = CalculateTendency(
59 );
60
61 DSLevelsTemp level = DetermineLevelEx();
62
63 DisplayElementTendency displayElement = DisplayElementTendency.Cast(GetVirtualHud().GetElement(eDisplayElements.DELM_TDCY_TEMPERATURE));
64
65 if (displayElement)
66 {
67 displayElement.SetTendency(tendency);
68 displayElement.SetSeriousnessLevel(level);
69 }
70 }
71
72 override protected float GetObservedValue()
73 {
74 return m_AverageHeatComfortDeltaBuffer.Add(m_Player.m_Environment.GetTargetHeatComfort() - m_Player.GetStatHeatComfort().Get());
75 }
76
77 [Obsolete("replaced by DetermineLevelEx")]
78 protected DSLevelsTemp DetermineLevel(float value, float m_warning_treshold, float m_critical_treshold, float m_empty_treshold, float p_warning_treshold, float p_critical_treshold, float p_empty_treshold )
79 {
80 DSLevelsTemp level = DSLevelsTemp.NORMAL;
81
82 if (value < 0)
83 {
84 if (value < m_warning_treshold)
85 level = DSLevelsTemp.WARNING_MINUS;
86 if (value < m_critical_treshold)
87 level = DSLevelsTemp.CRITICAL_MINUS;
88 if (value <= m_empty_treshold)
89 level = DSLevelsTemp.BLINKING_MINUS;
90 }
91 else
92 {
93 if (value > p_warning_treshold)
94 level = DSLevelsTemp.WARNING_PLUS;
95 if (value > p_critical_treshold)
96 level = DSLevelsTemp.CRITICAL_PLUS;
97 if (value >= p_empty_treshold)
98 level = DSLevelsTemp.BLINKING_PLUS;
99 }
100
101 return level;
102 }
103}
DisplayElementBase GetElement(eDisplayElements element_id)
Определения DisplayStatus.c:96
void NotifiersManager(PlayerBase player)
Определения NotifiersManager.c:37
eNotifiers
Определения NotifiersManager.c:3
PlayerBase m_Player
Определения NotifierBase.c:5
VirtualHud GetVirtualHud()
Определения NotifierBase.c:49
void NotifierBase(NotifiersManager manager)
Определения NotifierBase.c:22
int CalculateTendency(float delta, float inctresholdlow, float inctresholdmed, float inctresholdhigh, float dectresholdlow, float dectresholdmed, float dectresholdhigh)
Определения NotifierBase.c:166
static const float THRESHOLD_HEAT_COMFORT_MINUS_WARNING
Определения PlayerConstants.c:92
static const float THRESHOLD_HEAT_COMFORT_PLUS_WARNING
Определения PlayerConstants.c:88
static const float THRESHOLD_HEAT_COMFORT_MINUS_CRITICAL
Определения PlayerConstants.c:93
static const float THRESHOLD_HEAT_COMFORT_PLUS_EMPTY
Определения PlayerConstants.c:90
static const float THRESHOLD_HEAT_COMFORT_MINUS_EMPTY
Определения PlayerConstants.c:94
static const float THRESHOLD_HEAT_COMFORT_PLUS_CRITICAL
Определения PlayerConstants.c:89
Определения PlayerConstants.c:2
const float DEC_TRESHOLD_LOW
Определения WarmthNotfr.c:3
ref SimpleMovingAverage< float > m_AverageHeatComfortDeltaBuffer
Определения WarmthNotfr.c:10
const float INC_TRESHOLD_LOW
Определения WarmthNotfr.c:6
const float DEC_TRESHOLD_HIGH
Определения WarmthNotfr.c:5
const float INC_TRESHOLD_HIGH
Определения WarmthNotfr.c:8
DSLevelsTemp DetermineLevelEx()
Определения WarmthNotfr.c:22
const float DEC_TRESHOLD_MED
Определения WarmthNotfr.c:4
void WarmthNotfr(NotifiersManager manager)
replaces the original delta of values from NotifierBase
Определения WarmthNotfr.c:12
DSLevelsTemp DetermineLevel(float value, float m_warning_treshold, float m_critical_treshold, float m_empty_treshold, float p_warning_treshold, float p_critical_treshold, float p_empty_treshold)
Определения WarmthNotfr.c:78
float GetObservedValue()
Определения WarmthNotfr.c:72
override void DisplayTendency(float delta)
Определения WarmthNotfr.c:49
override int GetNotifierType()
Определения WarmthNotfr.c:17
const float INC_TRESHOLD_MED
Определения WarmthNotfr.c:7
void Obsolete(string msg="")
Определения EnScript.c:371