34 m_SourceID = source_ID;
35 m_Severity = severity;
36 m_ParentMetaData = parent;
37 m_CurrentDropProbabilityStep = 0;
38 m_ActiveDrops =
new set<ref BleedingIndicatorDropData>;
39 m_CleanupQueue =
new set<int>;
40 m_DropProbabilityArray = m_ParentMetaData.GetProbabilities(m_Severity);
41 m_DropProbabilityRollsCount = m_DropProbabilityArray.Count();
75 Debug.Log(
"Unknown severity value!");
87 m_TimeElapsedTotal = 0;
88 m_TimeElapsedSequence = 0;
183 if (m_TimeElapsedSequence > (m_SequenceTick * m_CurrentDropProbabilityStep))
185 if (m_CurrentDropProbabilityStep < m_DropProbabilityRollsCount)
187 float rnd =
Math.RandomFloat01();
188 if (rnd < m_DropProbabilityArray[m_CurrentDropProbabilityStep])
190 m_DropSpawnsQueued++;
193 m_CurrentDropProbabilityStep++;
198 if (m_TimeElapsedSequence > m_SequenceDuration)
202 else if (m_DropSpawnsQueued > 0)
204 if (sinceLastDrop >= m_DropSpawnMinDelay)
209 else if (sinceLastDrop > m_DropSpawnMaxDelay)
212 m_CurrentDropProbabilityStep++;
226 m_ActiveDrops[i].Update(timeSlice);
230 m_ActiveDrops[i].StopDrop();
235 m_CleanupQueue.Insert(i);
240 for (i = m_CleanupQueue.Count() - 1; i >= 0; i--)
242 m_ActiveDrops.Remove(m_CleanupQueue[i]);
243 m_ActiveDropsCount--;
245 m_CleanupQueue.Clear();
252 m_TimeElapsedTotal += timeSlice;
253 m_TimeElapsedSequence += timeSlice;