65 {
66 int heatBufferStage =
m_Player.GetHeatBufferStage();
67 float heatBufferVal =
m_Player.GetStatHeatBuffer().Get();
68 float heatBufferDynMax =
m_Player.GetHeatBufferDynamicMax();
69 float heatBufferPercent = heatBufferVal /
m_Player.GetStatHeatBuffer().GetMax();
72
73 #ifdef HEATBUFFER_INDICATOR_DEBUG
74 Print(
"-----------------------------------------------------------------------");
75 Print(
"Buff stage=" + heatBufferStage);
76 Print(
"Buff value=" + heatBufferVal);
77 Print(
"Buff percent=" + heatBufferPercent);
78 Print(
"Buff dynamic max=" + heatBufferDynMax);
81 Print(
"Buff differance=" + heatBufferDiff);
85 #endif
86
87 for (int i = 1; i < HeatBufferMdfr.NUMBER_OF_STAGES; ++i)
88 {
90 if (!hbw)
91 continue;
92
93 float stageThreshold = HeatBufferMdfr.STAGE_THRESHOLDS[i];
94 #ifdef HEATBUFFER_INDICATOR_DEBUG
95 Print(
"Stage treshold=" + stageThreshold);
96 #endif
97
98
99
100
101 if (heatBufferDiff > 0)
102 {
103
104 if (heatBufferPercent < heatBufferDynMax)
105 {
107 }
108 else
109 {
110 #ifdef HEATBUFFER_INDICATOR_DEBUG
111 Print(
"HEAT BUFFER - DYNAMIC MAX REACHED - DONT CHANGE DIRECTION");
112 #endif
114 }
115 }
116 else if (heatBufferDiff < 0)
117 {
119 }
120
121 #ifdef HEATBUFFER_INDICATOR_DEBUG
123 #endif
124
125
126 if (heatBufferStage < i && m_FlashingStage != i || m_FlashingStage == i && m_FlashingTime >= 2.9)
127 {
129 {
133 }
134
135 hbw.SetAlpha(0);
136 hbw.Show(false);
137 }
138
139
140 if (heatBufferStage >= i)
141 {
142 hbw.Show(true);
143
144 if (heatBufferPercent < stageThreshold)
145 {
147 {
148 #ifdef HEATBUFFER_INDICATOR_DEBUG
149 Print(
"HEAT BUFFER - STAGE " + i +
" - INCREASING");
150 hbw.SetColor(
ARGB(hbw.GetAlpha() * 255, 220, 220, 0));
151 #endif
152
154
156 {
160 }
161
163 }
165 {
166 #ifdef HEATBUFFER_IND ICATOR_DEBUG
167 Print(
"HEAT BUFFER - STAGE " + i +
" - DECREASING");
168 #endif
169
171
173 {
175 }
176
178 if (heatBufferDynMax < 0.5)
179 {
180 flashingThreshold = flashingThreshold + 0.002;
181 }
182
183 #ifdef HEATBUFFER_INDICATOR_DEBUG
184 Print(
"HEAT BUFFER - STAGE " + i +
" - DECREASING - Flashing threshold=" + flashingThreshold);
185 hbw.SetColor(
ARGB(hbw.GetAlpha() * 255, 0, 206, 209));
186 #endif
187
188 if (heatBufferPercent <= flashingThreshold)
189 {
190 #ifdef HEATBUFFER_INDICATOR_DEBUG
191 Print(
"HEAT BUFFER - STAGE " + i +
" - FLASHING");
192 #endif
193
194 #ifdef HEATBUFFER_INDICATOR_DEBUG
195 hbw.SetColor(
ARGB(hbw.GetAlpha() * 255, 255, 0, 0));
196 #endif
197
199
202 {
206 hbw.SetAlpha(0);
207 hbw.Show(false);
208 }
209 }
210 }
212 {
213 #ifdef HEATBUFFER_INDICATOR_DEBUG
214 Print(
"HEAT BUFFER - STAGE " + i +
" - STAL");
215 #endif
216
218 }
219 }
220 else
221 {
222 #ifdef HEATBUFFER_INDICATOR_DEBUG
223 Print(
"HEAT BUFFER - STAGE " + i +
" - MAXED");
224 #endif
225
226 hbw.SetAlpha(1.0);
227 #ifdef HEATBUFFER_INDICATOR_DEBUG
228 hbw.SetColor(
ARGB(hbw.GetAlpha() * 255, 220, 220, 220));
229 #endif
230 }
231 }
232 }
233
236 }
void UpdateEffect(Widget hbw, float duration, float timeslice)
void SetBaseAlpha(Widget hbw, float valuePercent, float stageThreshold)
ref map< int, float > m_FlashingThresholds
proto void Print(void var)
Prints content of variable to console/log.
int ARGB(int a, int r, int g, int b)