示例#1
0
    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;
    }