DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
HeatBuffer.c
См. документацию.
2{
3 const int NUMBER_OF_STAGES = 4;
4 const float STAGE_THRESHOLDS[NUMBER_OF_STAGES] = {0.0, 0.60, 0.85, 1.0};
5
6 protected int m_Stage;
7 protected int m_StageLast;
8
9 protected float m_Value;
10
11 override void Init()
12 {
15 m_ID = eModifiers.MDF_HEATBUFFER;
18 }
19
20 override bool ActivateCondition(PlayerBase player)
21 {
22 PlayerStat<float> heatBufferStat = player.GetStatHeatBuffer();
23 m_Value = heatBufferStat.Get() / heatBufferStat.GetMax();
24 return m_Value > STAGE_THRESHOLDS[0];
25 }
26
27 override bool DeactivateCondition(PlayerBase player)
28 {
29 PlayerStat<float> heatBufferStat = player.GetStatHeatBuffer();
30 m_Value = heatBufferStat.Get() / heatBufferStat.GetMax();;
31 return m_Value <= STAGE_THRESHOLDS[0];
32 }
33
34 override void OnActivate(PlayerBase player)
35 {
36 player.ToggleHeatBufferVisibility(GetHeatBufferStage());
37 }
38
39 override void OnDeactivate(PlayerBase player)
40 {
41 player.ToggleHeatBufferVisibility(GetHeatBufferStage());
42 //Protection against influenza with duration
43 if (player.GetTemporaryResistanceToAgent(eAgents.INFLUENZA) < 300)
44 player.SetTemporaryResistanceToAgent(eAgents.INFLUENZA, 300);
45 }
46
47 override void Tick(float delta_time)
48 {
49 super.Tick(delta_time);
50
51 m_Value = m_Player.GetStatHeatBuffer().Get() / m_Player.GetStatHeatBuffer().GetMax();
53
54 if (m_Stage != m_StageLast)
55 {
56 m_Player.ToggleHeatBufferVisibility(m_Stage);
58 }
59 }
60
61 protected int GetHeatBufferStage()
62 {
64 return 1;
65 else if (m_Value >= STAGE_THRESHOLDS[1] && m_Value < STAGE_THRESHOLDS[2])
66 return 2;
67 else if (m_Value >= STAGE_THRESHOLDS[2])
68 return 3;
69
70 return 0;
71 }
72
74 protected const float HEATBUFFER_SHOW = 25.0;
75 protected const float HEATBUFFER_HIDE = 20.0;
76}
map m_Player
eAgents
Определения EAgents.c:3
int m_ID
ID of effect, given by SEffectManager when registered (automatically done when playing through it)
Определения Effect.c:51
bool m_TrackActivatedTime
overall time this modifier was active
Определения ModifierBase.c:14
bool m_AnalyticsStatsEnabled
Определения ModifierBase.c:31
float m_TickIntervalActive
Определения ModifierBase.c:18
float m_TickIntervalInactive
Определения ModifierBase.c:17
enum eModifierSyncIDs DEFAULT_TICK_TIME_ACTIVE
void PlayerStat(T min, T max, T init, string label, int flags)
Определения PlayerStatBase.c:43
const float HEATBUFFER_SHOW
DEPRECATED.
Определения HeatBuffer.c:74
int m_Stage
Определения HeatBuffer.c:6
override bool DeactivateCondition(PlayerBase player)
Определения HeatBuffer.c:27
const int NUMBER_OF_STAGES
Определения HeatBuffer.c:3
override void Tick(float delta_time)
Определения HeatBuffer.c:47
const float HEATBUFFER_HIDE
Определения HeatBuffer.c:75
int GetHeatBufferStage()
Определения HeatBuffer.c:61
override void Init()
Определения HeatBuffer.c:11
const float STAGE_THRESHOLDS[NUMBER_OF_STAGES]
Определения HeatBuffer.c:4
override bool ActivateCondition(PlayerBase player)
Определения HeatBuffer.c:20
override void OnActivate(PlayerBase player)
Определения HeatBuffer.c:34
int m_StageLast
Определения HeatBuffer.c:7
override void OnDeactivate(PlayerBase player)
Определения HeatBuffer.c:39
float m_Value
Определения HeatBuffer.c:9
Определения HeatBuffer.c:2
Определения BreathVapourMdfr.c:4
Определения PlayerBaseClient.c:2
eModifiers
Определения eModifiers.c:2