Пример #1
0
 public SeasonalTime GetSeasonOfNextTick(SeasonalTime currentSeason) =>
 currentSeason.CurrentTime >= currentSeason.Length
         ? _seasonChanger[currentSeason.Id]
         : new SeasonalTime(currentSeason)
 {
     CurrentTime = currentSeason.CurrentTime + 1
 };
Пример #2
0
 // these calculations have been chosen more or less deliberately to kind of simulate a shift in seasons regarding temperature
 // they are not meant to represent realistic values
 public double CalculateTemperature(SeasonalTime season) => Match <SeasonalTime, double> .MatchFirst(season,
                                                                                                     (s => s.Id == Season.Spring, s => (s.CurrentTime * 3) - s.Length),                                                           // linear ascending
                                                                                                     (s => s.Id == Season.Summer, s => (-0.6 * s.CurrentTime * s.CurrentTime) + (s.Length / 2 * s.CurrentTime) + (s.Length * 2)), // parabola facing down
Пример #3
0
 private (double, double, double) GetEarlyMediumAndLateTemperature(SeasonalTime initial, ICalculateSeason calculator) =>
 (calculator.CalculateTemperature(initial),
Пример #4
0
 public double CalculateTemperature(SeasonalTime season) => 0;
Пример #5
0
 public SeasonalTime GetSeasonOfNextTick(SeasonalTime currentSeason) => SeasonalTime.None;
Пример #6
0
 public SeasonalTime(SeasonalTime other)
 {
     Id          = other.Id;
     Length      = other.Length;
     CurrentTime = other.CurrentTime;
 }