public void ReOpenEmergency(DisasterEmergency em) { MyERC.EmergencyReOpen(em); }
public void EmergencyReOpen(DisasterEmergency em) { //EmergenciesBeingTreated.Remove(em); EmergencyCall(em); }
void CreateEmergency() { float type_probability = Random.Range(0f, 1f); Emergency.E_Severity Eserv; int people_involved = -1; E_Type Etype; if (type_probability <= 0.6f) { float x = (float)Random.Range((int)1, (int)21) / 20; //max(21) is exclusive x = Mathf.Pow(-x + 1, 3); //chance distribution. less people is more probable people_involved = (int)Mathf.Max(x * 20, 1); Etype = E_Type.Medical; } else if (type_probability <= 0.8f) { Etype = E_Type.Disaster; } else { float x = (float)Random.Range((int)1, (int)21) / 20; //max(21) is exclusive x = Mathf.Pow(-x + 1, 3); //chance distribution. less people is more probable people_involved = (int)Mathf.Max(x * 20, 1); Etype = E_Type.Both; } float creation_probability = Random.Range(0.0f, 1.0f); if (creation_probability <= 0.6f) { Eserv = Emergency.E_Severity.Light; } else if (creation_probability <= 0.9f) { Eserv = Emergency.E_Severity.Medium; } else { Eserv = Emergency.E_Severity.Severe; } Vector3 pos = new Vector3(Random.Range(-range, range), 1f, Random.Range(-range, range)) + transform.position; while (this.MyEmergencies.ContainsKey(pos) || TooCloseToCentral(pos)) { pos = new Vector3(Random.Range(-range, range), 1f, Random.Range(-range, range)) + transform.position; } if (Etype == E_Type.Medical) { GameObject em = Instantiate(MedicalEmergencyObject, pos, Quaternion.Euler(new Vector3(0f, 0f, 0f))); MedicalEmergency e = em.GetComponent <MedicalEmergency>(); e.InitEmergency(Eserv, people_involved, this); MyERC.EmergencyCall(e); //Notify Area that emergency exists MyEmergencies.Add(em.gameObject.transform.position, em); } else if (Etype == E_Type.Disaster) { GameObject em = Instantiate(DisasterEmergencyObject, pos, Quaternion.Euler(new Vector3(0f, 0f, 0f))); DisasterEmergency e = em.GetComponent <DisasterEmergency>(); e.InitEmergency(Eserv, people_involved, this); MyERC.EmergencyCall(e); //Notify Area that emergency exists MyEmergencies.Add(em.gameObject.transform.position, em); } else if (Etype == E_Type.Both) { GameObject em = Instantiate(BothEmergencyObject, pos, Quaternion.Euler(new Vector3(0f, 0f, 0f))); BothEmergency e = em.GetComponent <BothEmergency>(); e.InitEmergency(Eserv, people_involved, this); MyERC.EmergencyCall(e); //Notify Area that emergency exists MyEmergencies.Add(em.gameObject.transform.position, em); } //Notify ERC that an emergency occured -> simulating the "calls" }