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

◆ OnTick()

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

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

124 {
125 m_Time += deltaT;
126
127 if (m_IsDeaf)
128 {
129 m_DeafnessTime += deltaT;
130 }
131
132 if (m_Time >= m_NextEvent)
133 {
134 if (player.GetSingleAgentCount(eAgents.HEAVYMETAL) >= SYMPTOMFALLOFF_THRESHOLD1)
135 {
136 player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_PAIN_LIGHT);
137 m_Time = 0;
138
139 m_NextEvent = Math.RandomFloatInclusive(PAIN_EVENT_INTERVAL_MIN, PAIN_EVENT_INTERVAL_MAX);
140 }
141 }
142
143 float chanceOfDeafness = player.GetSingleAgentCountNormalized(eAgents.HEAVYMETAL);
144 if (Math.RandomFloat01() < chanceOfDeafness / Math.RandomInt(5, 10))
145 {
146 player.GetSymptomManager().QueueUpSecondarySymptom(SymptomIDs.SYMPTOM_DEAFNESS_COMPLETE);
147 m_Time = 0;
148 m_DeafnessTime = 0;
149 m_IsDeaf = true;
150
151 m_NextEvent = Math.RandomFloatInclusive(PAIN_EVENT_INTERVAL_MIN, PAIN_EVENT_INTERVAL_MAX);
152 }
153
154 if (m_IsDeaf && m_DeafnessTime > DEAFNESS_INTERVAL + player.GetSingleAgentCountNormalized(eAgents.HEAVYMETAL)*0.6)
155 {
156 player.GetSymptomManager().RemoveSecondarySymptom(SymptomIDs.SYMPTOM_DEAFNESS_COMPLETE);
157 m_IsDeaf = false;
158 }
159
160 if (player.GetSingleAgentCount(eAgents.HEAVYMETAL) <= SYMPTOMFALLOFF_THRESHOLD3 && eAgents.HEAVYMETAL >= SYMPTOMFALLOFF_THRESHOLD1)
161 {
162 float waterLoss = (deltaT * (WATER_LOSS_HEAVYMETAL_MAX * Math.Max(WATER_LOSS_HEAVYMETAL_MIN, player.GetSingleAgentCountNormalized(eAgents.HEAVYMETAL))));
163 player.GetStatWater().Add(-waterLoss);
164 }
165
166 if (player.GetSingleAgentCount(eAgents.HEAVYMETAL) <= SYMPTOMFALLOFF_THRESHOLD3)
167 {
168 player.m_AgentPool.AddAgent(eAgents.HEAVYMETAL, -0.5);
169 }
170 }
eAgents
Определения EAgents.c:3
static const int SYMPTOMFALLOFF_THRESHOLD3
Определения HeavyMetal.c:11
bool m_IsDeaf
Определения HeavyMetal.c:17
static const float WATER_LOSS_HEAVYMETAL_MIN
Определения HeavyMetal.c:3
static const float WATER_LOSS_HEAVYMETAL_MAX
Определения HeavyMetal.c:4
static const int SYMPTOMFALLOFF_THRESHOLD1
Определения HeavyMetal.c:9
float m_Time
Определения HeavyMetal.c:14
float m_NextEvent
Определения HeavyMetal.c:13
float m_DeafnessTime
Определения HeavyMetal.c:16
static const int PAIN_EVENT_INTERVAL_MIN
Определения HeavyMetal.c:96
static const int PAIN_EVENT_INTERVAL_MAX
Определения HeavyMetal.c:97
static const int DEAFNESS_INTERVAL
Определения HeavyMetal.c:99

Перекрестные ссылки DEAFNESS_INTERVAL, HeavyMetalMdfr::m_DeafnessTime, HeavyMetalMdfr::m_IsDeaf, HeavyMetalMdfr::m_NextEvent, HeavyMetalMdfr::m_Time, Math::Max(), PAIN_EVENT_INTERVAL_MAX, PAIN_EVENT_INTERVAL_MIN, Math::RandomFloat01(), Math::RandomFloatInclusive(), Math::RandomInt(), HeavyMetalMdfr::SYMPTOMFALLOFF_THRESHOLD1, HeavyMetalMdfr::SYMPTOMFALLOFF_THRESHOLD3, HeavyMetalMdfr::WATER_LOSS_HEAVYMETAL_MAX и HeavyMetalMdfr::WATER_LOSS_HEAVYMETAL_MIN.