mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Large aircraft ground spawns (#237)
* Large aircraft ground spawns Added the ability to add separate ground spawns for C-130 and other large aircraft to campaigns. Implemented on @holyorangejuice 's request. Large aircraft ground spawns are added to the campaign by placing a C-130 on the ramp, just like an A-10 or AJS37 previously. Note: use the stock DCS C-130, so the campaign miz can be safely opened without the C-130 mod (or any other mod) installed. Not the C-130J player-flyable transport, not the KC-130J tanker included in the UH-60L mod etc. Large planes (wingspan more than 40 meters, such as the C-130): - First try spawning on large ground spawns - Then try the regular airfield ramp spawns Below 40 meter wingspan aircraft: - First try spawning on regular or roadbase ground spawns - Then try the regular airfield ramp spawns - Then, if both of the above fail, use the large ground spawns * Specify explicit black version 23.9.1 to fix lint error. * Update lint.yml --------- Co-authored-by: Raffson <Raffson@users.noreply.github.com>
This commit is contained in:
@@ -9,7 +9,7 @@ from uuid import UUID
|
||||
from dcs import Mission
|
||||
from dcs.countries import CombinedJointTaskForcesBlue, CombinedJointTaskForcesRed
|
||||
from dcs.country import Country
|
||||
from dcs.planes import F_15C, A_10A, AJS37
|
||||
from dcs.planes import F_15C, A_10A, AJS37, C_130
|
||||
from dcs.ships import HandyWind, LHA_Tarawa, Stennis, USS_Arleigh_Burke_IIa
|
||||
from dcs.statics import Fortification, Warehouse
|
||||
from dcs.terrain import Airport
|
||||
@@ -43,6 +43,7 @@ class MizCampaignLoader:
|
||||
OFF_MAP_UNIT_TYPE = F_15C.id
|
||||
GROUND_SPAWN_UNIT_TYPE = A_10A.id
|
||||
GROUND_SPAWN_ROADBASE_UNIT_TYPE = AJS37.id
|
||||
GROUND_SPAWN_LARGE_UNIT_TYPE = C_130.id
|
||||
|
||||
CV_UNIT_TYPE = Stennis.id
|
||||
LHA_UNIT_TYPE = LHA_Tarawa.id
|
||||
@@ -237,6 +238,12 @@ class MizCampaignLoader:
|
||||
if group.units[0].type == self.GROUND_SPAWN_ROADBASE_UNIT_TYPE:
|
||||
yield group
|
||||
|
||||
@property
|
||||
def ground_spawns_large(self) -> Iterator[PlaneGroup]:
|
||||
for group in itertools.chain(self.blue.plane_group, self.red.plane_group):
|
||||
if group.units[0].type == self.GROUND_SPAWN_LARGE_UNIT_TYPE:
|
||||
yield group
|
||||
|
||||
@property
|
||||
def ground_spawns(self) -> Iterator[PlaneGroup]:
|
||||
for group in itertools.chain(self.blue.plane_group, self.red.plane_group):
|
||||
@@ -536,6 +543,10 @@ class MizCampaignLoader:
|
||||
closest, distance = self.objective_info(plane_group)
|
||||
self._add_ground_spawn(closest.ground_spawns_roadbase, plane_group)
|
||||
|
||||
for plane_group in self.ground_spawns_large:
|
||||
closest, distance = self.objective_info(plane_group)
|
||||
self._add_ground_spawn(closest.ground_spawns_large, plane_group)
|
||||
|
||||
for plane_group in self.ground_spawns:
|
||||
closest, distance = self.objective_info(plane_group)
|
||||
self._add_ground_spawn(closest.ground_spawns, plane_group)
|
||||
|
||||
Reference in New Issue
Block a user