public void checkFireHelps(ERCAgent helper, out bool ReturnB, out Emergency ReturnEm) { if (DisasterEmergenciesNeedingHelp.Count > 0) { Tuple <Emergency, int> help = DisasterEmergenciesNeedingHelp[0]; while (help.Item1 == null) //deletes already completed emergencies { //Debug.Log("Emergency already dealt with previously. Please try to help another"); DisasterEmergenciesNeedingHelp.RemoveAt(0); if (DisasterEmergenciesNeedingHelp.Count == 0) { //Debug.Log("No more help needed"); ReturnB = false; ReturnEm = null; return; } else { help = DisasterEmergenciesNeedingHelp[0]; } } ReturnEm = help.Item1; if (ReturnEm.MyArea.MyERC != helper) { ReturnB = true; int firetrucksNeeded = help.Item2 - 1; DisasterEmergenciesNeedingHelp.RemoveAt(0); if (firetrucksNeeded > 0) { Tuple <Emergency, int> helptuple = new Tuple <Emergency, int>(ReturnEm, firetrucksNeeded); DisasterEmergenciesNeedingHelp.Insert(0, helptuple); } return; } else { //Debug.Log(helper + " cant help itself: " + ReturnEm.MyArea.MyERC); } } ReturnB = false; ReturnEm = null; }