Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public void DecreaseNeed(NEEDTYPE need, float amount)
 {
     currentNeeds[need].DecreaseNeed(amount);
 }
Ejemplo n.º 4
0
 public Need getNeed(NEEDTYPE need)
 {
     return(currentNeeds[need]);
 }
Ejemplo n.º 5
0
 public void IncreaseRelativeNeed(NEEDTYPE need, int relativeAmount)
 {
     currentNeeds[need].IncreaseNeedRelative(relativeAmount);
 }