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

◆ TickState()

void TickState ( )
protected

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

43 {
44 m_TimeElapsed += UPDATE_RATE * 0.001;
45
46 if (m_GeyserTrigger.GetGeyserState() == EGeyserState.DORMANT)
47 {
49 {
50 m_TimeElapsed = 0;
51 m_RandomizedDuration = Math.RandomInt(m_EffectDuration * 0.8, m_EffectDuration * 1.2);
52 m_GeyserTrigger.AddGeyserState(EGeyserState.ERUPTION_SOON);
53 }
54 }
55 else
56 {
57 if (m_GeyserTrigger.GetGeyserState() & EGeyserState.ERUPTION_SOON)
58 {
60 {
61 m_GeyserTrigger.RemoveGeyserState(EGeyserState.ERUPTION_SOON);
62 m_GeyserTrigger.AddGeyserState(EGeyserState.ERUPTING_PRIMARY);
64 return;
65 }
66 }
67
68 if (m_GeyserTrigger.GetGeyserState() & EGeyserState.ERUPTING_PRIMARY)
69 {
71 {
72 m_TimeElapsed = 0;
73 m_RandomizedInterval = Math.RandomInt(m_EffectInterval * 0.8, m_EffectInterval * 1.2);
74 m_GeyserTrigger.RemoveGeyserState(EGeyserState.ERUPTING_PRIMARY | EGeyserState.ERUPTING_SECONDARY);
75 return;
76 }
77
78 if (m_GeyserTrigger.GetGeyserState() & EGeyserState.ERUPTING_SECONDARY)
79 {
80 if (Math.RandomBool()) // 50% chance to end secondary eruption every update
81 m_GeyserTrigger.RemoveGeyserState(EGeyserState.ERUPTING_SECONDARY);
82 }
83 else if (Math.RandomBool()) // 50% chance to start secondary eruption every update
84 m_GeyserTrigger.AddGeyserState(EGeyserState.ERUPTING_SECONDARY);
85 }
86 }
87 }
GeyserTrigger m_GeyserTrigger
Определения GeyserArea.c:17
int m_TimeElapsed
Определения GeyserArea.c:14
void KillEntitiesInArea()
Определения GeyserArea.c:89
float m_RandomizedInterval
Определения GeyserArea.c:15
float m_RandomizedDuration
Определения GeyserArea.c:16
const float PRE_ERUPTION_DURATION
Определения GeyserArea.c:12
enum EGeyserState UPDATE_RATE
EGeyserState
Определения GeyserArea.c:2
Определения EnMath.c:7
static bool RandomBool()
Returns a random bool .
Определения EnMath.c:73
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].

Перекрестные ссылки KillEntitiesInArea(), m_GeyserTrigger, m_RandomizedDuration, m_RandomizedInterval, m_TimeElapsed, PRE_ERUPTION_DURATION, Math::RandomBool(), Math::RandomInt() и UPDATE_RATE.

Используется в InitZoneServer().