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); }
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); }
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); }