Пример #1
0
        private int RecalculateMetric(int oldHealth, PetMetric petMetric, SpeciesCareAction careAction)
        {
            var metric = _metricRepository.Find(petMetric.MetricId);

            return(metric.Type == MetricType.DecreasesWithTime
                ? oldHealth + careAction.Value
                : oldHealth - careAction.Value);
        }
Пример #2
0
 private void AssertCareActionIsCorrect(SpeciesCareAction actualSpeciesCareAction, Interaction expectedInteraction)
 {
     Assert.AreEqual(actualSpeciesCareAction.Value, expectedInteraction.Value);
     Assert.AreEqual(actualSpeciesCareAction.CooldownTime, expectedInteraction.CooldownTime);
     Assert.AreEqual(actualSpeciesCareAction.CooldownTimeUnit, expectedInteraction.CooldownTimeUnit);
     Assert.AreEqual(actualSpeciesCareAction.Name, expectedInteraction.Name);
     Assert.AreEqual(actualSpeciesCareAction.Description, expectedInteraction.Description);
 }
Пример #3
0
        public PetVital Rebuild(PetMetric petMetric, SpeciesVital animalVital, SpeciesCareAction speciesCareAction)
        {
            //This will recalculate the health based on last time interacted with. We then add the positive affect of the interaction
            var oldVital = Build(petMetric, animalVital);

            //Todo - straight return, this is just for debug
            var newVital = new PetVital()
            {
                Health                     = RecalculateMetric(oldVital.Health, petMetric, speciesCareAction), //We recalculate this
                LastTimeCaredFor           = DateTime.UtcNow,                                                  //Gets refreshed
                TimeNeglectedFor           = TimeSpan.FromSeconds(1),
                HealthDeclineDuringNeglect = 0,                                                                //No decline yet
                VitalName                  = animalVital.Name,
                VitalStats                 = animalVital,
                PetVitalId                 = animalVital.VitalId,
                PetId = petMetric.PetId
            };

            return(newVital);
        }