From 91ee04bf2ad604138f8463964788156ee282febf Mon Sep 17 00:00:00 2001 From: Raffson Date: Thu, 15 Jun 2023 02:58:30 +0200 Subject: [PATCH] Fix save-compat issues --- game/migrator.py | 19 +++++++++++++++++++ game/theater/seasonalconditions.py | 2 +- game/weather/atmosphericconditions.py | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/game/migrator.py b/game/migrator.py index b941d0ff..d6cb0618 100644 --- a/game/migrator.py +++ b/game/migrator.py @@ -6,6 +6,7 @@ from dcs.countries import countries_by_name from game.ato.packagewaypoints import PackageWaypoints from game.data.doctrine import MODERN_DOCTRINE, COLDWAR_DOCTRINE, WWII_DOCTRINE +from game.theater import SeasonalConditions if TYPE_CHECKING: from game import Game @@ -30,6 +31,7 @@ class Migrator: self._update_flights() self._update_squadrons() self._release_untasked_flights() + self._update_weather() def _update_doctrine(self) -> None: doctrines = [ @@ -118,3 +120,20 @@ class Migrator: for c in self.game.coalitions: if isinstance(c.faction.country, str): c.faction.country = countries_by_name[c.faction.country]() + + def _update_weather(self): + a = self.game.conditions.weather.atmospheric + try_set_attr(a, "turbulence_per_10cm", 0.1) + sc = self.game.theater.seasonal_conditions + self.game.theater.seasonal_conditions = SeasonalConditions( + summer_avg_pressure=sc.summer_avg_pressure, + winter_avg_pressure=sc.winter_avg_pressure, + summer_avg_temperature=sc.summer_avg_temperature, + winter_avg_temperature=sc.winter_avg_temperature, + temperature_day_night_difference=sc.temperature_day_night_difference, + high_avg_yearly_turbulence_per_10cm=1.2, + low_avg_yearly_turbulence_per_10cm=0.1, + solar_noon_turbulence_per_10cm=0.8, + midnight_turbulence_per_10cm=0.4, + weather_type_chances=sc.weather_type_chances, + ) diff --git a/game/theater/seasonalconditions.py b/game/theater/seasonalconditions.py index fa91764f..46296485 100644 --- a/game/theater/seasonalconditions.py +++ b/game/theater/seasonalconditions.py @@ -36,7 +36,7 @@ class WeatherTypeChances: clear_skies: float -@dataclass(frozen=True) +@dataclass class SeasonalConditions: # Units are inHg and degrees Celsius summer_avg_pressure: float diff --git a/game/weather/atmosphericconditions.py b/game/weather/atmosphericconditions.py index d075ba06..534e12f2 100644 --- a/game/weather/atmosphericconditions.py +++ b/game/weather/atmosphericconditions.py @@ -5,7 +5,7 @@ from dataclasses import dataclass from game.utils import Pressure -@dataclass(frozen=True) +@dataclass class AtmosphericConditions: #: Pressure at sea level. qnh: Pressure