public void EmergencyEnded(Emergency em) { if (EmergenciesBeingTreated.Contains(em)) { EmergenciesBeingTreated.Remove(em); em.SendStatistics(); Destroy(em.gameObject); Destroy(em); myArea.atualEmergencies--; } }
public void UpdateEmergencies() { //Delete or re-open emergencies that were being treated List <int> emToDestroy = new List <int>(); List <int> emToRemove = new List <int>(); bool ToRemove; int i = 0; while (i < EmergenciesBeingTreated.Count) { ToRemove = false; if (EmergenciesBeingTreated[i].GetEmergencyPeopleEnvolved() < 1 && EmergenciesBeingTreated[i].GetEmergencyDisasterLife() <= 0) { if (EmergenciesBeingTreated[i].NAmbulances <= 0 && EmergenciesBeingTreated[i].NFiretrucks <= 0) { Emergency e = EmergenciesBeingTreated[i]; //EmergenciesBeingTreated.RemoveAt(i); //Debug.Log("removed"); MedicalEmergenciesWaiting.Remove(e); DisasterEmergenciesWaiting.Remove(e); e.SendStatistics(); EmergenciesBeingTreated.Remove(e); Destroy(e.gameObject); Destroy(e); myArea.atualEmergencies--; continue; } } if (EmergenciesBeingTreated[i].GetEmergencyDisasterLife() >= 250) { if (EmergenciesBeingTreated[i].NAmbulances <= 0 && EmergenciesBeingTreated[i].NFiretrucks <= 0) { Emergency e = EmergenciesBeingTreated[i]; //EmergenciesBeingTreated.RemoveAt(i); //Debug.Log("removed"); MedicalEmergenciesWaiting.Remove(e); DisasterEmergenciesWaiting.Remove(e); e.SendStatistics(); EmergenciesBeingTreated.Remove(e); Destroy(e.gameObject); Destroy(e); myArea.atualEmergencies--; myArea.ImpossibleEmergencies += 1; continue; } } if (EmergenciesBeingTreated[i].GetEmergencyPeopleEnvolved() > 0 && EmergenciesBeingTreated[i].NAmbulances <= 0) { if (!MedicalEmergenciesWaiting.Contains(EmergenciesBeingTreated[i])) { MedicalEmergenciesWaiting.Add(EmergenciesBeingTreated[i]); } if (EmergenciesBeingTreated[i].NFiretrucks < 0) { ToRemove = true; } } if (EmergenciesBeingTreated[i].GetEmergencyDisasterLife() > 0 && EmergenciesBeingTreated[i].NFiretrucks <= 0) { if (!DisasterEmergenciesWaiting.Contains(EmergenciesBeingTreated[i])) { DisasterEmergenciesWaiting.Add(EmergenciesBeingTreated[i]); } if (EmergenciesBeingTreated[i].NAmbulances < 0) { ToRemove = true; } } if (ToRemove) { EmergenciesBeingTreated.RemoveAt(i); continue; } i++; } foreach (Emergency e in Calls) { if (!EmergencyDic.ContainsKey(e.gameObject.transform.position)) { EmergencyDic.Add(e.gameObject.transform.position, e); AddEmergency(e); } } Calls.Clear(); }