public override void Execute(Person person)
        {
            Status = "Eating food";

            if (Settings.IsVerbose)
            {
                Console.WriteDebugLine("Eating food");
                Console.WriteDebugLine("  Current hunger: " + person.Vitals[PersonVitalType.Hunger]);
            }

            var amount = Settings.DefaultEatAmount;

            if (amount > person.Inventory [ItemType.Food])
            {
                amount = person.Inventory [ItemType.Food];
            }

            if (Settings.IsVerbose)
            {
                Console.WriteDebugLine("  Amount: " + amount);
            }

            ItemsConsumed[ItemType.Food] += amount;

            var hungerDecrease = amount * Settings.FoodForHungerRatio;

            if (Settings.IsVerbose)
            {
                Console.WriteDebugLine("  Decreased hunger by: " + hungerDecrease);
            }

            VitalsChange.Add(PersonVitalType.Hunger, -hungerDecrease);

            TotalfoodConsumed += amount;
        }
Example #2
0
        public override void Execute(Person person)
        {
            if (Settings.IsVerbose)
            {
                Console.WriteDebugLine("Starting " + GetType().Name + " activity");
                Console.WriteDebugLine("  Quantity (energy): " + NeedEntry.Quantity);
            }

            var amountOfEnergyThisCycle = Settings.EnergyFromSleepRate;

            // If the person has no shelter then halve the amount of energy recovered
            if (!person.HasShelter)
            {
                amountOfEnergyThisCycle = amountOfEnergyThisCycle / 2;
            }

            TotalEnergyRecovered += amountOfEnergyThisCycle;

            VitalsChange.Add(PersonVitalType.Energy, amountOfEnergyThisCycle);

            var fraction = NeedEntry.Quantity / 100;

            var percentComplete = fraction * TotalEnergyRecovered;

            Status = String.Format("Sleeping {0}%", percentComplete);
        }
        public override void Execute(Person person)
        {
            Status = "Drinking water";

            if (Settings.IsVerbose)
            {
                Console.WriteDebugLine("Drinking water");
                Console.WriteDebugLine("  Current thirst: " + person.Vitals[PersonVitalType.Thirst]);
            }

            var amount = Settings.DefaultDrinkAmount;

            if (amount > person.Inventory [ItemType.Water])
            {
                amount = person.Inventory [ItemType.Water];
            }

            if (Settings.IsVerbose)
            {
                Console.WriteDebugLine("  Amount: " + amount);
            }

            ItemsConsumed[ItemType.Water] += amount;

            var thirstDecrease = amount * Settings.WaterForThirstRatio;

            if (Settings.IsVerbose)
            {
                Console.WriteDebugLine("  Decreased thirst by: " + thirstDecrease);
            }

            VitalsChange.Add(PersonVitalType.Thirst, -thirstDecrease);

            TotalWaterConsumed += amount;
        }
Example #4
0
        public override void Execute(Person person)
        {
            var amountOfHarm = 0;

            amountOfHarm += CalculateHarmFromDehydration


                            VitalsChange.Add(PersonVital.Hunger, -amountOfHarm);
        }
Example #5
0
 public override void Execute(Person person)
 {
     VitalsChange.Add(PersonVitalType.Hunger, +Settings.HungerRate);
 }
Example #6
0
 public override void Execute(Person person)
 {
     VitalsChange.Add(PersonVitalType.Thirst, +Settings.ThirstRate);
 }
        public override void Execute(Person person)
        {
            var difference = person.Vitals [PersonVitalType.Thirst] - Settings.DehydrationThreshold;

            VitalsChange.Add(PersonVitalType.Health, -difference);
        }
Example #8
0
 public override void Execute(Person person)
 {
     VitalsChange.Add(PersonVitalType.Energy, -Settings.PersonEnergyConsumptionRate);
 }