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));
    }