diff --git a/.gitignore b/.gitignore index 9f22b322..5e953c36 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ a.py resources/tools/a.miz # User-specific stuff .idea/ +.env /kneeboards /liberation_preferences.json diff --git a/game/theater/conflicttheater.py b/game/theater/conflicttheater.py index bd98485f..dd66a5e8 100644 --- a/game/theater/conflicttheater.py +++ b/game/theater/conflicttheater.py @@ -399,7 +399,7 @@ class MizCampaignLoader: for group in self.ewrs: closest, distance = self.objective_info(group) if distance < self.BASE_DEFENSE_RADIUS: - closest.preset_locations.ewrs.append( + closest.preset_locations.base_ewrs.append( PointWithHeading.from_point(group.position, group.units[0].heading) ) else: diff --git a/game/theater/controlpoint.py b/game/theater/controlpoint.py index 9a8fb261..52937ab0 100644 --- a/game/theater/controlpoint.py +++ b/game/theater/controlpoint.py @@ -64,6 +64,7 @@ class LocationType(Enum): BaseAirDefense = "base air defense" Coastal = "coastal defense" Ewr = "EWR" + BaseEwr = "Base EWR" Garrison = "garrison" MissileSite = "missile site" OffshoreStrikeTarget = "offshore strike target" @@ -87,6 +88,9 @@ class PresetLocations: #: Locations used by EWRs. ewrs: List[PointWithHeading] = field(default_factory=list) + #: Locations used by Base EWRs. + base_ewrs: List[PointWithHeading] = field(default_factory=list) + #: Locations used by non-carrier ships. Carriers and LHAs are not random. ships: List[PointWithHeading] = field(default_factory=list) @@ -135,6 +139,8 @@ class PresetLocations: return self._random_from(self.coastal_defenses) if location_type == LocationType.Ewr: return self._random_from(self.ewrs) + if location_type == LocationType.BaseEwr: + return self._random_from(self.base_ewrs) if location_type == LocationType.Garrison: return self._random_from(self.base_garrisons) if location_type == LocationType.MissileSite: @@ -474,7 +480,7 @@ class ControlPoint(MissionTarget, ABC): for base_defense in self.base_defenses: p = PointWithHeading.from_point(base_defense.position, base_defense.heading) if isinstance(base_defense, EwrGroundObject): - self.preset_locations.ewrs.append(p) + self.preset_locations.base_ewrs.append(p) elif isinstance(base_defense, SamGroundObject): self.preset_locations.base_air_defense.append(p) elif isinstance(base_defense, VehicleGroupGroundObject): diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index 28d610ff..32688b1e 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -303,7 +303,7 @@ class BaseDefenseGenerator: self.generate_base_defenses() def generate_ewr(self) -> None: - position = self.location_finder.location_for(LocationType.Ewr) + position = self.location_finder.location_for(LocationType.BaseEwr) if position is None: return diff --git a/resources/campaigns/full_caucasus.miz b/resources/campaigns/full_caucasus.miz index cbdc9dc7..3f27702c 100644 Binary files a/resources/campaigns/full_caucasus.miz and b/resources/campaigns/full_caucasus.miz differ