private NEEDTYPE getMoreImportant(NEEDTYPE newNeed, NEEDTYPE highestNeed) { if (newNeed == NEEDTYPE.NONE) { return(highestNeed); } else if (highestNeed == NEEDTYPE.NONE) { return(newNeed); } if ((newNeed == NEEDTYPE.SLEEP && highestNeed == NEEDTYPE.HUNGER) || (newNeed == NEEDTYPE.HUNGER && highestNeed == NEEDTYPE.SLEEP)) { NeedAmount sleepAmount = currentNeeds[NEEDTYPE.SLEEP].CurrentAmount; NeedAmount hungerAmount = currentNeeds[NEEDTYPE.HUNGER].CurrentAmount; if (hungerAmount >= NeedAmount.Major) { return(NEEDTYPE.HUNGER); } else if (sleepAmount >= NeedAmount.Moderate && hungerAmount <= NeedAmount.Little) { return(NEEDTYPE.SLEEP); } } return(highestNeed); }
public NEEDTYPE getMostUrgent() { NEEDTYPE highest = NEEDTYPE.NONE; foreach (NEEDTYPE need in currentNeeds.Keys) { if (currentNeeds[need].CurrentAmount >= currentNeeds[highest].CurrentAmount) { highest = getMoreImportant(need, highest); } } // No needs if we're fine // if (currentNeeds[highest].CurrentAmount != NeedAmount.Critical && currentNeeds[highest].CurrentAmount != NeedAmount.Major && currentNeeds[highest].CurrentAmount != NeedAmount.Moderate && currentNeeds[highest].CurrentAmount != NeedAmount.Little) { return(NEEDTYPE.NONE); } return(highest); }
public void DecreaseNeed(NEEDTYPE need, float amount) { currentNeeds[need].DecreaseNeed(amount); }
public Need getNeed(NEEDTYPE need) { return(currentNeeds[need]); }
public void IncreaseRelativeNeed(NEEDTYPE need, int relativeAmount) { currentNeeds[need].IncreaseNeedRelative(relativeAmount); }