private void AdjustNecessities(NecessityEffect necessityEffect)
 {
     Necessities.AdjustSleep(necessityEffect.SleepEffectiveness);
     Eat(necessityEffect.HungerEffectiveness);
     Drink(necessityEffect.ThirstEffectiveness);
     Necessities.AdjustHygiene(necessityEffect.HygieneEffectiveness);
     Necessities.AdjustHealth(necessityEffect.HealthEffectiveness);
 }
 private void AdjustNecessities(double necessityEffect)
 {
     Necessities.AdjustSleep(necessityEffect);
     Necessities.AdjustHunger(necessityEffect);
     Necessities.AdjustThirst(necessityEffect);
     Necessities.AdjustHygiene(necessityEffect);
     Necessities.AdjustHealth(necessityEffect);
 }
 public void SetNeedsValues(Necessities necessities)
 {
     labelHealthValue.Text  = String.Format("{0} {1}", (int)necessities.Health, necessities.HealthToString());
     labelHygieneValue.Text = String.Format("{0} {1}", (int)necessities.Hygiene, necessities.HygieneToString());
     labelSleepValue.Text   = String.Format("{0} {1}", (int)necessities.Sleep, necessities.SleepToString());
     labelHungerValue.Text  = String.Format("{0} {1}", (int)necessities.Hunger, necessities.HungerToString());
     labelThirstValue.Text  = String.Format("{0} {1}", (int)necessities.Thirst, necessities.ThirstToString());
 }
        public Employee(TimeSpan birthTime, string agentName, TextureBook textureBook, Vector position, AgentOrientation orientation,
                        string firstName, string lastName, DateTime birthday, Skills skills, Job job)
            : base(birthTime, agentName, textureBook, position, speed, orientation)
        {
            FirstName = firstName;
            LastName  = lastName;
            Birthday  = birthday;
            Job       = job;
            Skills    = skills;

            Necessities = new Necessities(Necessities.Rating.Full);
        }
        public void Eat(int hungerEffectiveness)
        {
            Necessities.Rating previousHungerRating = Necessities.Hunger;
            Necessities.AdjustHunger(hungerEffectiveness);

            log.Debug(String.Format("Employee named {0} just ate to increase hunger need from {1} to {2}.", FullName, previousHungerRating, Necessities.Hunger));

            // if, after eating, our hunger is above the threshold AND our previous hunger was below the threshold, our hunger has been satisfied, notify subscribers
            if (Necessities.Hunger >= Necessities.Rating.Neutral && previousHungerRating < Necessities.Rating.Neutral)
            {
                OnThoughtSatisfied(ThoughtType.Hungry);
            }
        }
        public void Drink(int thirstEffectiveness)
        {
            Necessities.Rating previousThirstRating = Necessities.Thirst;
            Necessities.AdjustThirst(thirstEffectiveness);

            log.Debug(String.Format("Employee named {0} just drank to increase thirst need from {1} to {2}.", FullName, previousThirstRating, Necessities.Thirst));

            // if, after drinking, our thirst is above the threshold AND our previous thirst was below the threshold, our thirst has been satisfied, notify subscribers
            if (Necessities.Thirst >= Necessities.Rating.Neutral && previousThirstRating < Necessities.Rating.Neutral)
            {
                OnThoughtSatisfied(ThoughtType.Thirsty);
            }
        }