public override GenRange Calculate(BodyMassIndex bmi, PersonAge age)
        {
            Range <Rating> rangeForPower;

            if (bmi.BMI > 23 && bmi.Height.Centimeters >= 185)
            {
                rangeForPower = MaxRange;
            }
            else if (bmi.BMI < 22)
            {
                rangeForPower = MinRange;
            }
            else
            {
                rangeForPower = MediumRange;
            }

            // take player's age into account
            if (age > PersonAge.FromYears(25))
            {
                rangeForPower = new Range <Rating>(rangeForPower.Lower * 1.05, rangeForPower.Upper * 1.05);
            }
            else if (age < PersonAge.FromYears(20))
            {
                rangeForPower = new Range <Rating>(rangeForPower.Lower * 0.8, rangeForPower.Upper * 0.9);
            }
            return(new GenRange(FeatureType.Power, rangeForPower));
        }
Exemplo n.º 2
0
        public override GenRange Calculate(BodyMassIndex bmi, PersonAge age)
        {
            Range <Rating> rangeForSpeed;

            if (bmi.BMI > 22.8)
            {
                rangeForSpeed = MinRange;
            }
            else if (bmi.BMI < 21.2)
            {
                rangeForSpeed = MaxRange;
            }
            else
            {
                rangeForSpeed = MediumRange;
            }

            // take player age into account
            if (age > PersonAge.FromYears(30))
            {
                rangeForSpeed = new Range <Rating>(rangeForSpeed.Lower * 0.82, rangeForSpeed.Upper * 0.88);
            }
            else if (age < PersonAge.FromYears(23))
            {
                rangeForSpeed = new Range <Rating>(rangeForSpeed.Lower * 1.052, rangeForSpeed.Upper * 1.055);
            }
            return(new GenRange(FeatureType.Acceleration, rangeForSpeed));
        }
Exemplo n.º 3
0
        public void ImproveRatingFromAge_2()
        {
            Rating rating          = new Rating(0.8);
            var    ageRating       = new AgeRating(PersonAge.FromYears(27), rating);
            var    newRatingForAge = Phase1Evolution.Value.ImproveRatingFromAge(ageRating, Duration.FromMonths(1));

            Assert.IsNotNull(newRatingForAge);
            Assert.AreEqual(Duration.FromMonths(27 * 12 + 1).Years, newRatingForAge.Age.Years);
            Assert.AreEqual(0.81, newRatingForAge.Rating.Value);
        }
Exemplo n.º 4
0
 public static Phase1Evolution Create(EvolutionCurve evolutionCurve)
 => new Phase1Evolution(new Range <PersonAge>(PersonAge.FromYears(AGE_MIN), PersonAge.FromYears(AGE_MAX)), evolutionCurve);
Exemplo n.º 5
0
        public void Phase1Evolution_ImproveRating4()
        {
            FeatureImprovementRatio improvement = Phase1Evolution.Value.GetImprovementFromAge(PersonAge.FromYears(28));

            Rating rating    = new Rating(0.7);
            var    newRating = improvement.ImproveRating(rating);

            Assert.IsNotNull(newRating);
            Assert.AreEqual(0.99, newRating.Value);
        }
Exemplo n.º 6
0
        public void GetValue_Pass28_ShouldReturnValue()
        {
            FeatureImprovementRatio improvement = Phase1Evolution.Value.GetImprovementFromAge(PersonAge.FromYears(28));

            Assert.IsNotNull(improvement);
            Assert.AreEqual(0.5, improvement.Value);
        }
Exemplo n.º 7
0
        public void Phase1Evolution_GetValue()
        {
            FeatureImprovementRatio improvement = Phase1Evolution.Value.GetImprovementFromAge(PersonAge.FromYears(16));

            Assert.IsNotNull(improvement);
            Assert.AreEqual(0.01, improvement.Value);
        }
Exemplo n.º 8
0
 public WeightForAge(int ageInYears, UnitsNet.Mass mass)
 {
     Age  = PersonAge.FromYears(ageInYears);
     Mass = mass;
 }
Exemplo n.º 9
0
 public StatureForAge(int ageInYears, UnitsNet.Length stature)
 {
     Age     = PersonAge.FromYears(ageInYears);
     Stature = stature;
 }