protected override void Action() { int amountOfWoodToCollect = calculateAmountOfResourceToCollect(MaterialConcept.MaterialType.Wood); if (amountOfWoodToCollect > 0) { Agent.AddBehaviour(new ScheduleCollectingWoodBehaviour(coordinatorAgent, controller)); return; } else if (coordinatorAgent.GetAllJobsOfType(MaterialConcept.MaterialType.Wood).Count > 0) { Agent.AddBehaviour(new CancelAllJobsOfTypeBehaviour(coordinatorAgent, controller, MaterialConcept.MaterialType.Wood)); } int amountOfStoneToCollect = calculateAmountOfResourceToCollect(MaterialConcept.MaterialType.Stone); if (amountOfStoneToCollect > 0) { Agent.AddBehaviour(new ScheduleCollectingStoneBehaviour(coordinatorAgent, controller)); return; } else if (coordinatorAgent.GetAllJobsOfType(MaterialConcept.MaterialType.Stone).Count > 0) { Agent.AddBehaviour(new CancelAllJobsOfTypeBehaviour(coordinatorAgent, controller, MaterialConcept.MaterialType.Stone)); } Finish(); }
override protected void Action() { List <ScheduledJob> jobs = coordinatorAgent.GetAllJobsOfType(materialType); List <ScheduledJob> activeJobs = jobs.FindAll(job => job.JobStatus == ScheduledJob.Status.Confirmed || job.JobStatus == ScheduledJob.Status.Requested); activeJobs.ForEach(job => sendCancelMessage(job)); }