private void TreatEmergency() { if (Decentralized && myEmergency.NFiretrucks == 1 && curWaterDeposit <= 0 && myEmergency.GetEmergencyDisasterLife() > 0) { onEmergency = false; goingToERC = true; myEmergency.NFiretrucks -= 1; if (!myERC.DisasterEmergenciesWaiting.Contains(myEmergency)) { myERC.DisasterEmergenciesWaiting.Add(myEmergency); } if (myEmergency.NAmbulances <= 0) { myERC.EmergenciesBeingTreated.Remove(myEmergency); } return; } if (myEmergency.GetEmergencyDisasterLife() <= 0) { onEmergency = false; goingToERC = true; myEmergency.NFiretrucks -= 1; if (Decentralized && myEmergency.NAmbulances <= 0 && myEmergency.NFiretrucks <= 0 && myEmergency.GetEmergencyPeopleEnvolved() < 1) { myERC.MedicalEmergenciesWaiting.Remove(myEmergency); myERC.DisasterEmergenciesWaiting.Remove(myEmergency); myERC.EmergencyEnded(myEmergency); } else if (Decentralized && myEmergency.NAmbulances <= 0 && myEmergency.NFiretrucks <= 0) { myERC.EmergenciesBeingTreated.Remove(myEmergency); } return; } if (myEmergency.GetEmergencyDisasterLife() >= 250) { onEmergency = false; goingToERC = true; myEmergency.NFiretrucks -= 1; if (Decentralized && myEmergency.NAmbulances <= 0 && myEmergency.NFiretrucks <= 0 && myEmergency.GetEmergencyPeopleEnvolved() < 1) { myERC.MedicalEmergenciesWaiting.Remove(myEmergency); myERC.DisasterEmergenciesWaiting.Remove(myEmergency); myERC.EmergencyImpossible(myEmergency); } else if (Decentralized && myEmergency.NFiretrucks <= 0) { myERC.DisasterEmergenciesWaiting.Add(myEmergency); if (myEmergency.NAmbulances <= 0) { myERC.EmergenciesBeingTreated.Remove(myEmergency); } } return; } if (curWaterDeposit <= 0) { onEmergency = false; goingToERC = true; myEmergency.NFiretrucks -= 1; return; } if (waitTime >= myEmergency.WaitTime) { if (myEmergency.TreatEmergency(this)) { curWaterDeposit -= damage; } waitTime = 0; } else { waitTime += Time.deltaTime; } }