public bool FCanFulfillNeed(NEEDK needk) { switch (_jobk) { case JOBK.StoreFood: if (needk == NEEDK.Food) { return(_mpReskCRes[RESOURCEK.Food] > 0); } return(false); case JOBK.WarmHome: if (needk == NEEDK.Warmth) { return(_mpReskCRes[RESOURCEK.WarmBed] > 0); } return(false); case JOBK.CollectFood: case JOBK.Build: return(false); } Debug.LogError("Unexpected JOBK!"); return(false); }
// If this returns true, the list of tasks is filled out with instructions on how to fulfill the need public bool FTryFulfillNeed(NEEDK needk, ref List <Task> pLTask) { foreach (JobSite job in _lJob) { if (job.FCanFulfillNeed(needk)) { switch (needk) { case NEEDK.Food: Task.CancelTasks(pLTask); pLTask.Clear(); pLTask.Add(new Task(job, TASKK.EatFood)); break; case NEEDK.Warmth: Task.CancelTasks(pLTask); pLTask.Clear(); pLTask.Add(new Task(job, TASKK.GetWarm)); break; } return(true); } } return(false); }