public void SpawnManager_Timer() { if (Common.Clock - lastSpawn > Common.MS_PER_SECOND * Frequency && AliveMembers.Count < AmountMax) { var toSpawn = Math.Min(AmountPer, DeadMembers.Count); if (toSpawn > 0) { lastSpawn = Common.Clock; for (int i = 0; i < toSpawn; i++) { var mob = DeadMembers.Dequeue(); mob.Respawn(); } } } if (DyingMembers.Count > 0) { foreach (var m in DyingMembers) { if (Common.Clock - m.Value.DiedAt > Common.MS_PER_SECOND * 3) { m.Value.Faded(); } } } if (AliveMembers.Count > 0) { foreach (var member in AliveMembers.Values) { if (member.Alive) { member.Monster_Timer(); } } } //else // Console.WriteLine("ERROR: Dead member {0} in alive collection", member.UID); }
public void SpawnManager_Timer() { if (Common.Clock - lastSpawn > Common.MS_PER_SECOND * Frequency && AliveMembers.Count < AmountMax) { var toSpawn = Math.Min(AmountPer, DeadMembers.Count); if (toSpawn > 0) { lastSpawn = Common.Clock; for (int i = 0; i < toSpawn; i++) { var mob = DeadMembers.Dequeue(); mob.Respawn(); } } } if (DyingMembers.Count > 0) { foreach (var m in DyingMembers) { if (Common.Clock - m.Value.DiedAt > Common.MS_PER_SECOND * 3) { m.Value.Faded(); } } } if (AliveMembers.Count > 0 && IsActive) { foreach (var member in AliveMembers.Values) { if (member.Alive && member.IsActive) { member.Monster_Timer(); member.On_Entity_Timer(); //Added so effects/status on monsters can have a timer! } } } }