mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Prepare the generators for template migration
adopt armor and ship generators for randomization
This commit is contained in:
parent
9e6b1cf716
commit
6baf36c587
@ -1,40 +0,0 @@
|
||||
import logging
|
||||
import random
|
||||
from typing import Optional
|
||||
|
||||
from dcs.unitgroup import VehicleGroup
|
||||
|
||||
from game import Game
|
||||
from game.factions import FACTIONS
|
||||
from game.theater.theatergroundobject import CoastalSiteGroundObject
|
||||
from gen.coastal.silkworm import SilkwormGenerator
|
||||
|
||||
COASTAL_MAP = {
|
||||
"SilkwormGenerator": SilkwormGenerator,
|
||||
}
|
||||
|
||||
|
||||
def generate_coastal_group(
|
||||
game: Game, ground_object: CoastalSiteGroundObject, faction_name: str
|
||||
) -> Optional[VehicleGroup]:
|
||||
"""
|
||||
This generate a coastal defenses group
|
||||
:return: The generated group, or None if this faction does not support coastal
|
||||
defenses.
|
||||
"""
|
||||
faction = FACTIONS[faction_name]
|
||||
if len(faction.coastal_defenses) > 0:
|
||||
generators = faction.coastal_defenses
|
||||
if len(generators) > 0:
|
||||
gen = random.choice(generators)
|
||||
if gen in COASTAL_MAP.keys():
|
||||
generator = COASTAL_MAP[gen](game, ground_object, faction)
|
||||
generator.generate()
|
||||
return generator.get_generated_group()
|
||||
else:
|
||||
logging.info(
|
||||
"Unable to generate missile group, generator : "
|
||||
+ str(gen)
|
||||
+ "does not exists"
|
||||
)
|
||||
return None
|
||||
@ -1,124 +0,0 @@
|
||||
import random
|
||||
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
from game.utils import Heading
|
||||
|
||||
from dcs.ships import USS_Arleigh_Burke_IIa, TICONDEROG
|
||||
|
||||
|
||||
class CarrierGroupGenerator(ShipGroupGenerator):
|
||||
def generate(self) -> None:
|
||||
|
||||
# Carrier Strike Group 8
|
||||
if self.faction.carrier_names[0] == "Carrier Strike Group 8":
|
||||
carrier_type = random.choice(self.faction.aircraft_carrier)
|
||||
|
||||
self.add_unit(
|
||||
carrier_type,
|
||||
"CVN-75 Harry S. Truman",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
# Add Arleigh Burke escort
|
||||
self.add_unit(
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Ramage",
|
||||
self.position.x + 6482,
|
||||
self.position.y + 6667,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.add_unit(
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Mitscher",
|
||||
self.position.x - 7963,
|
||||
self.position.y + 7037,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.add_unit(
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Forrest Sherman",
|
||||
self.position.x - 7408,
|
||||
self.position.y - 7408,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.add_unit(
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Lassen",
|
||||
self.position.x + 8704,
|
||||
self.position.y - 6296,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
# Add Ticonderoga escort
|
||||
if self.heading >= Heading.from_degrees(180):
|
||||
self.add_unit(
|
||||
TICONDEROG,
|
||||
"USS Hué City",
|
||||
self.position.x + 2222,
|
||||
self.position.y - 3333,
|
||||
self.heading,
|
||||
)
|
||||
else:
|
||||
self.add_unit(
|
||||
TICONDEROG,
|
||||
"USS Hué City",
|
||||
self.position.x - 3333,
|
||||
self.position.y + 2222,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.get_generated_group().points[0].speed = 20
|
||||
##################################################################################################
|
||||
# Add carrier for normal generation
|
||||
else:
|
||||
if len(self.faction.aircraft_carrier) > 0:
|
||||
carrier_type = random.choice(self.faction.aircraft_carrier)
|
||||
self.add_unit(
|
||||
carrier_type,
|
||||
"Carrier",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
else:
|
||||
return
|
||||
|
||||
# Add destroyers escort
|
||||
if len(self.faction.destroyers) > 0:
|
||||
dd_type = random.choice(self.faction.destroyers)
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD1",
|
||||
self.position.x + 2500,
|
||||
self.position.y + 4500,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD2",
|
||||
self.position.x + 2500,
|
||||
self.position.y - 4500,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD3",
|
||||
self.position.x + 4500,
|
||||
self.position.y + 8500,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD4",
|
||||
self.position.x + 4500,
|
||||
self.position.y - 8500,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.get_generated_group().points[0].speed = 20
|
||||
@ -1,70 +0,0 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import random
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from dcs.ships import (
|
||||
Type_052C,
|
||||
Type_052B,
|
||||
Type_054A,
|
||||
)
|
||||
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import ShipGroundObject
|
||||
from gen.fleet.dd_group import DDGroupGenerator
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from game.game import Game
|
||||
|
||||
|
||||
class ChineseNavyGroupGenerator(ShipGroupGenerator):
|
||||
def generate(self) -> None:
|
||||
|
||||
include_frigate = random.choice([True, True, False])
|
||||
include_dd = random.choice([True, False])
|
||||
|
||||
if not any([include_frigate, include_dd]):
|
||||
include_frigate = True
|
||||
|
||||
if include_frigate:
|
||||
self.add_unit(
|
||||
Type_054A,
|
||||
"FF1",
|
||||
self.position.x + 1200,
|
||||
self.position.y + 900,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Type_054A,
|
||||
"FF2",
|
||||
self.position.x + 1200,
|
||||
self.position.y - 900,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
if include_dd:
|
||||
dd_type = random.choice([Type_052C, Type_052B])
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD1",
|
||||
self.position.x + 2400,
|
||||
self.position.y + 900,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD2",
|
||||
self.position.x + 2400,
|
||||
self.position.y - 900,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.get_generated_group().points[0].speed = 20
|
||||
|
||||
|
||||
class Type54GroupGenerator(DDGroupGenerator):
|
||||
def __init__(self, game: Game, ground_object: ShipGroundObject, faction: Faction):
|
||||
super(Type54GroupGenerator, self).__init__(
|
||||
game, ground_object, faction, Type_054A
|
||||
)
|
||||
@ -1,34 +0,0 @@
|
||||
import random
|
||||
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
|
||||
|
||||
class LHAGroupGenerator(ShipGroupGenerator):
|
||||
def generate(self) -> None:
|
||||
|
||||
# Add carrier
|
||||
if len(self.faction.helicopter_carrier) > 0:
|
||||
carrier_type = random.choice(self.faction.helicopter_carrier)
|
||||
self.add_unit(
|
||||
carrier_type, "LHA", self.position.x, self.position.y, self.heading
|
||||
)
|
||||
|
||||
# Add destroyers escort
|
||||
if len(self.faction.destroyers) > 0:
|
||||
dd_type = random.choice(self.faction.destroyers)
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD1",
|
||||
self.position.x + 1250,
|
||||
self.position.y + 1450,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD2",
|
||||
self.position.x + 1250,
|
||||
self.position.y - 1450,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.get_generated_group().points[0].speed = 20
|
||||
@ -1,108 +0,0 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import random
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from dcs.ships import (
|
||||
ALBATROS,
|
||||
MOLNIYA,
|
||||
NEUSTRASH,
|
||||
REZKY,
|
||||
MOSCOW,
|
||||
KILO,
|
||||
SOM,
|
||||
)
|
||||
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import ShipGroundObject
|
||||
from gen.fleet.dd_group import DDGroupGenerator
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from game.game import Game
|
||||
|
||||
|
||||
class RussianNavyGroupGenerator(ShipGroupGenerator):
|
||||
def generate(self) -> None:
|
||||
|
||||
include_frigate = random.choice([True, True, False])
|
||||
include_dd = random.choice([True, False])
|
||||
|
||||
if include_dd:
|
||||
include_cc = random.choice([True, False])
|
||||
else:
|
||||
include_cc = False
|
||||
|
||||
if not any([include_frigate, include_dd, include_cc]):
|
||||
include_frigate = True
|
||||
|
||||
if include_frigate:
|
||||
frigate_type = random.choice([ALBATROS, MOLNIYA])
|
||||
self.add_unit(
|
||||
frigate_type,
|
||||
"FF1",
|
||||
self.position.x + 1200,
|
||||
self.position.y + 900,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
frigate_type,
|
||||
"FF2",
|
||||
self.position.x + 1200,
|
||||
self.position.y - 900,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
if include_dd:
|
||||
dd_type = random.choice([NEUSTRASH, REZKY])
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD1",
|
||||
self.position.x + 2400,
|
||||
self.position.y + 900,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD2",
|
||||
self.position.x + 2400,
|
||||
self.position.y - 900,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
if include_cc:
|
||||
# Only include the Moskva for now, the Pyotry Velikiy is an unkillable monster.
|
||||
# See https://github.com/dcs-liberation/dcs_liberation/issues/567
|
||||
self.add_unit(
|
||||
MOSCOW,
|
||||
"CC1",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.get_generated_group().points[0].speed = 20
|
||||
|
||||
|
||||
class GrishaGroupGenerator(DDGroupGenerator):
|
||||
def __init__(self, game: Game, ground_object: ShipGroundObject, faction: Faction):
|
||||
super(GrishaGroupGenerator, self).__init__(
|
||||
game, ground_object, faction, ALBATROS
|
||||
)
|
||||
|
||||
|
||||
class MolniyaGroupGenerator(DDGroupGenerator):
|
||||
def __init__(self, game: Game, ground_object: ShipGroundObject, faction: Faction):
|
||||
super(MolniyaGroupGenerator, self).__init__(
|
||||
game, ground_object, faction, MOLNIYA
|
||||
)
|
||||
|
||||
|
||||
class KiloSubGroupGenerator(DDGroupGenerator):
|
||||
def __init__(self, game: Game, ground_object: ShipGroundObject, faction: Faction):
|
||||
super(KiloSubGroupGenerator, self).__init__(game, ground_object, faction, KILO)
|
||||
|
||||
|
||||
class TangoSubGroupGenerator(DDGroupGenerator):
|
||||
def __init__(self, game: Game, ground_object: ShipGroundObject, faction: Faction):
|
||||
super(TangoSubGroupGenerator, self).__init__(game, ground_object, faction, SOM)
|
||||
@ -1,106 +0,0 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
import random
|
||||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
from dcs.unitgroup import ShipGroup
|
||||
|
||||
from game.factions import FACTIONS
|
||||
from game.theater.theatergroundobject import (
|
||||
CarrierGroundObject,
|
||||
LhaGroundObject,
|
||||
ShipGroundObject,
|
||||
)
|
||||
from gen.fleet.carrier_group import CarrierGroupGenerator
|
||||
from gen.fleet.cn_dd_group import ChineseNavyGroupGenerator, Type54GroupGenerator
|
||||
from gen.fleet.dd_group import (
|
||||
ArleighBurkeGroupGenerator,
|
||||
OliverHazardPerryGroupGenerator,
|
||||
)
|
||||
from gen.fleet.lacombattanteII import LaCombattanteIIGroupGenerator
|
||||
from gen.fleet.lha_group import LHAGroupGenerator
|
||||
from gen.fleet.ru_dd_group import (
|
||||
GrishaGroupGenerator,
|
||||
KiloSubGroupGenerator,
|
||||
MolniyaGroupGenerator,
|
||||
RussianNavyGroupGenerator,
|
||||
TangoSubGroupGenerator,
|
||||
)
|
||||
from gen.fleet.schnellboot import SchnellbootGroupGenerator
|
||||
from gen.fleet.uboat import UBoatGroupGenerator
|
||||
from gen.fleet.ww2lst import WW2LSTGroupGenerator
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from game import Game
|
||||
|
||||
|
||||
SHIP_MAP = {
|
||||
"SchnellbootGroupGenerator": SchnellbootGroupGenerator,
|
||||
"WW2LSTGroupGenerator": WW2LSTGroupGenerator,
|
||||
"UBoatGroupGenerator": UBoatGroupGenerator,
|
||||
"OliverHazardPerryGroupGenerator": OliverHazardPerryGroupGenerator,
|
||||
"ArleighBurkeGroupGenerator": ArleighBurkeGroupGenerator,
|
||||
"RussianNavyGroupGenerator": RussianNavyGroupGenerator,
|
||||
"ChineseNavyGroupGenerator": ChineseNavyGroupGenerator,
|
||||
"GrishaGroupGenerator": GrishaGroupGenerator,
|
||||
"MolniyaGroupGenerator": MolniyaGroupGenerator,
|
||||
"KiloSubGroupGenerator": KiloSubGroupGenerator,
|
||||
"TangoSubGroupGenerator": TangoSubGroupGenerator,
|
||||
"Type54GroupGenerator": Type54GroupGenerator,
|
||||
"LaCombattanteIIGroupGenerator": LaCombattanteIIGroupGenerator,
|
||||
}
|
||||
|
||||
|
||||
def generate_ship_group(
|
||||
game: Game, ground_object: ShipGroundObject, faction_name: str
|
||||
) -> Optional[ShipGroup]:
|
||||
"""
|
||||
This generate a ship group
|
||||
:return: The generated group, or None if this faction does not support ships.
|
||||
"""
|
||||
faction = FACTIONS[faction_name]
|
||||
if len(faction.navy_generators) > 0:
|
||||
gen = random.choice(faction.navy_generators)
|
||||
if gen in SHIP_MAP.keys():
|
||||
generator = SHIP_MAP[gen](game, ground_object, faction)
|
||||
print(generator.position)
|
||||
generator.generate()
|
||||
return generator.get_generated_group()
|
||||
else:
|
||||
logging.info(
|
||||
"Unable to generate ship group, generator : "
|
||||
+ str(gen)
|
||||
+ "does not exists"
|
||||
)
|
||||
return None
|
||||
|
||||
|
||||
def generate_carrier_group(
|
||||
faction: str, game: Game, ground_object: CarrierGroundObject
|
||||
) -> ShipGroup:
|
||||
"""Generates a carrier group.
|
||||
|
||||
:param faction: The faction the TGO belongs to.
|
||||
:param game: The Game the group is being generated for.
|
||||
:param ground_object: The ground object which will own the ship group
|
||||
:return: The generated group.
|
||||
"""
|
||||
generator = CarrierGroupGenerator(game, ground_object, FACTIONS[faction])
|
||||
generator.generate()
|
||||
return generator.get_generated_group()
|
||||
|
||||
|
||||
def generate_lha_group(
|
||||
faction: str, game: Game, ground_object: LhaGroundObject
|
||||
) -> ShipGroup:
|
||||
"""Generate an LHA group.
|
||||
|
||||
:param faction: The faction the TGO belongs to.
|
||||
:param game: The Game the group is being generated for.
|
||||
:param ground_object: The ground object which will own the ship group
|
||||
:return: The generated group.
|
||||
"""
|
||||
generator = LHAGroupGenerator(game, ground_object, FACTIONS[faction])
|
||||
generator.generate()
|
||||
return generator.get_generated_group()
|
||||
@ -4,7 +4,7 @@ import logging
|
||||
import math
|
||||
import operator
|
||||
from collections.abc import Iterable
|
||||
from typing import Any, Generic, TYPE_CHECKING, Type, TypeVar
|
||||
from typing import Any, Generic, TYPE_CHECKING, Type, TypeVar, Iterator
|
||||
|
||||
from dcs import unitgroup
|
||||
from dcs.mapping import Point
|
||||
@ -26,7 +26,7 @@ if TYPE_CHECKING:
|
||||
GroupT = TypeVar("GroupT", VehicleGroup, ShipGroup)
|
||||
UnitT = TypeVar("UnitT", bound=Unit)
|
||||
UnitTypeT = TypeVar("UnitTypeT", bound=Type[UnitType])
|
||||
TgoT = TypeVar("TgoT", bound=TheaterGroundObject[Any])
|
||||
TgoT = TypeVar("TgoT", bound=TheaterGroundObject)
|
||||
|
||||
|
||||
# TODO: Generate a group description rather than a pydcs group.
|
||||
@ -42,6 +42,7 @@ class GroupGenerator(Generic[GroupT, UnitT, UnitTypeT, TgoT]):
|
||||
self.heading: Heading = Heading.random()
|
||||
self.price = 0
|
||||
self.vg: GroupT = group
|
||||
self.auxiliary_groups: list[GroupT] = []
|
||||
|
||||
def generate(self) -> None:
|
||||
raise NotImplementedError
|
||||
@ -49,6 +50,11 @@ class GroupGenerator(Generic[GroupT, UnitT, UnitTypeT, TgoT]):
|
||||
def get_generated_group(self) -> GroupT:
|
||||
return self.vg
|
||||
|
||||
@property
|
||||
def groups(self) -> Iterator[GroupT]:
|
||||
yield self.vg
|
||||
yield from self.auxiliary_groups
|
||||
|
||||
def add_unit(
|
||||
self,
|
||||
unit_type: UnitTypeT,
|
||||
@ -107,6 +113,12 @@ class VehicleGroupGenerator(
|
||||
wp = self.vg.add_waypoint(self.position, PointAction.OffRoad, 0)
|
||||
wp.ETA_locked = True
|
||||
|
||||
def add_vehicle_group(self) -> VehicleGroup:
|
||||
gid = self.game.next_group_id()
|
||||
group = VehicleGroup(gid, f"{self.go.group_name} #{len(self.auxiliary_groups)}")
|
||||
self.auxiliary_groups.append(group)
|
||||
return group
|
||||
|
||||
def generate(self) -> None:
|
||||
raise NotImplementedError
|
||||
|
||||
@ -187,6 +199,12 @@ class ShipGroupGenerator(
|
||||
wp = self.vg.add_waypoint(self.position, 0)
|
||||
wp.ETA_locked = True
|
||||
|
||||
def add_auxiliary_group(self) -> ShipGroup:
|
||||
gid = self.game.next_group_id()
|
||||
group = ShipGroup(gid, f"{self.go.group_name} #{len(self.auxiliary_groups)}")
|
||||
self.auxiliary_groups.append(group)
|
||||
return group
|
||||
|
||||
def generate(self) -> None:
|
||||
raise NotImplementedError
|
||||
|
||||
@ -1,38 +0,0 @@
|
||||
import logging
|
||||
import random
|
||||
from typing import Optional
|
||||
|
||||
from dcs.unitgroup import VehicleGroup
|
||||
|
||||
from game import Game
|
||||
from game.factions import FACTIONS
|
||||
from game.theater.theatergroundobject import MissileSiteGroundObject
|
||||
from gen.missiles.scud_site import ScudGenerator
|
||||
from gen.missiles.v1_group import V1GroupGenerator
|
||||
|
||||
MISSILES_MAP = {"V1GroupGenerator": V1GroupGenerator, "ScudGenerator": ScudGenerator}
|
||||
|
||||
|
||||
def generate_missile_group(
|
||||
game: Game, ground_object: MissileSiteGroundObject, faction_name: str
|
||||
) -> Optional[VehicleGroup]:
|
||||
"""
|
||||
This generate a missiles group
|
||||
:return: Nothing, but put the group reference inside the ground object
|
||||
"""
|
||||
faction = FACTIONS[faction_name]
|
||||
if len(faction.missiles) > 0:
|
||||
generators = faction.missiles
|
||||
if len(generators) > 0:
|
||||
gen = random.choice(generators)
|
||||
if gen in MISSILES_MAP.keys():
|
||||
generator = MISSILES_MAP[gen](game, ground_object, faction)
|
||||
generator.generate()
|
||||
return generator.get_generated_group()
|
||||
else:
|
||||
logging.info(
|
||||
"Unable to generate missile group, generator : "
|
||||
+ str(gen)
|
||||
+ "does not exists"
|
||||
)
|
||||
return None
|
||||
@ -1,65 +0,0 @@
|
||||
import random
|
||||
from typing import List, Optional, Type
|
||||
|
||||
from dcs.unitgroup import VehicleGroup
|
||||
|
||||
from game import Game
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import EwrGroundObject
|
||||
from gen.sam.ewrs import (
|
||||
BigBirdGenerator,
|
||||
BoxSpringGenerator,
|
||||
DogEarGenerator,
|
||||
FlatFaceGenerator,
|
||||
HawkEwrGenerator,
|
||||
PatriotEwrGenerator,
|
||||
RolandEwrGenerator,
|
||||
SnowDriftGenerator,
|
||||
StraightFlushGenerator,
|
||||
TallRackGenerator,
|
||||
EwrGenerator,
|
||||
TinShieldGenerator,
|
||||
)
|
||||
|
||||
EWR_MAP = {
|
||||
"BoxSpringGenerator": BoxSpringGenerator,
|
||||
"TallRackGenerator": TallRackGenerator,
|
||||
"DogEarGenerator": DogEarGenerator,
|
||||
"RolandEwrGenerator": RolandEwrGenerator,
|
||||
"FlatFaceGenerator": FlatFaceGenerator,
|
||||
"PatriotEwrGenerator": PatriotEwrGenerator,
|
||||
"BigBirdGenerator": BigBirdGenerator,
|
||||
"SnowDriftGenerator": SnowDriftGenerator,
|
||||
"StraightFlushGenerator": StraightFlushGenerator,
|
||||
"HawkEwrGenerator": HawkEwrGenerator,
|
||||
"TinShieldGenerator": TinShieldGenerator,
|
||||
}
|
||||
|
||||
|
||||
def get_faction_possible_ewrs_generator(
|
||||
faction: Faction,
|
||||
) -> List[Type[EwrGenerator]]:
|
||||
"""
|
||||
Return the list of possible EWR generators for the given faction
|
||||
:param faction: Faction name to search units for
|
||||
"""
|
||||
return [EWR_MAP[s] for s in faction.ewrs]
|
||||
|
||||
|
||||
def generate_ewr_group(
|
||||
game: Game, ground_object: EwrGroundObject, faction: Faction
|
||||
) -> Optional[VehicleGroup]:
|
||||
"""Generates an early warning radar group.
|
||||
|
||||
:param game: The Game.
|
||||
:param ground_object: The ground object which will own the EWR group.
|
||||
:param faction: Owner faction.
|
||||
:return: The generated group, or None if one could not be generated.
|
||||
"""
|
||||
generators = get_faction_possible_ewrs_generator(faction)
|
||||
if len(generators) > 0:
|
||||
generator_class = random.choice(generators)
|
||||
generator = generator_class(game, ground_object)
|
||||
generator.generate()
|
||||
return generator.get_generated_group()
|
||||
return None
|
||||
@ -2,8 +2,8 @@ import random
|
||||
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -2,8 +2,8 @@ import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
from game.utils import Heading
|
||||
@ -2,8 +2,8 @@ import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import random
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
from pydcs_extensions.highdigitsams import highdigitsams
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from dcs.vehicles import AirDefence, Armor, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
from game.utils import Heading
|
||||
@ -1,7 +1,7 @@
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -2,8 +2,8 @@ import random
|
||||
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,41 +1,17 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
from enum import Enum
|
||||
from typing import Iterator, List
|
||||
|
||||
from dcs.unitgroup import VehicleGroup
|
||||
|
||||
from game import Game
|
||||
from game.theater.theatergroundobject import SamGroundObject
|
||||
from gen.sam.group_generator import VehicleGroupGenerator
|
||||
|
||||
|
||||
class SkynetRole(Enum):
|
||||
#: A radar SAM that should be controlled by Skynet.
|
||||
Sam = "Sam"
|
||||
|
||||
#: A radar SAM that should be controlled and used as an EWR by Skynet.
|
||||
SamAsEwr = "SamAsEwr"
|
||||
|
||||
#: An air defense unit that should be used as point defense by Skynet.
|
||||
PointDefense = "PD"
|
||||
|
||||
#: All other types of groups that might be present in a SAM TGO. This includes
|
||||
#: SHORADS, AAA, supply trucks, etc. Anything that shouldn't be controlled by Skynet
|
||||
#: should use this role.
|
||||
NoSkynetBehavior = "NoSkynetBehavior"
|
||||
|
||||
|
||||
class AirDefenseRange(Enum):
|
||||
AAA = ("AAA", SkynetRole.NoSkynetBehavior)
|
||||
Short = ("short", SkynetRole.NoSkynetBehavior)
|
||||
Medium = ("medium", SkynetRole.Sam)
|
||||
Long = ("long", SkynetRole.SamAsEwr)
|
||||
|
||||
def __init__(self, description: str, default_role: SkynetRole) -> None:
|
||||
self.range_name = description
|
||||
self.default_role = default_role
|
||||
from game.theater.theatergroundobject import (
|
||||
SamGroundObject,
|
||||
SkynetRole,
|
||||
AirDefenseRange,
|
||||
)
|
||||
from gen.group_generator import VehicleGroupGenerator
|
||||
|
||||
|
||||
class AirDefenseGroupGenerator(VehicleGroupGenerator[SamGroundObject], ABC):
|
||||
@ -48,7 +24,6 @@ class AirDefenseGroupGenerator(VehicleGroupGenerator[SamGroundObject], ABC):
|
||||
|
||||
self.vg.name = self.group_name_for_role(self.vg.id, self.primary_group_role())
|
||||
self.auxiliary_groups: List[VehicleGroup] = []
|
||||
self.heading = self.heading_to_conflict()
|
||||
|
||||
def add_auxiliary_group(self, role: SkynetRole) -> VehicleGroup:
|
||||
gid = self.game.next_group_id()
|
||||
@ -67,9 +42,7 @@ class AirDefenseGroupGenerator(VehicleGroupGenerator[SamGroundObject], ABC):
|
||||
# that the PD will know which group it's protecting. We then append the role so
|
||||
# our config knows what to do with the group, and finally the GID of *this*
|
||||
# group to ensure no conflicts.
|
||||
return "|".join(
|
||||
[self.go.faction_color, "SAM", str(self.go.group_id), role.value, str(gid)]
|
||||
)
|
||||
return "|".join([self.go.faction_color, "SAM", role.value, str(gid)])
|
||||
|
||||
def get_generated_group(self) -> VehicleGroup:
|
||||
raise RuntimeError(
|
||||
@ -4,11 +4,11 @@ from typing import Optional
|
||||
from dcs.unitgroup import VehicleGroup
|
||||
|
||||
from game import Game
|
||||
from game.data.groundunitclass import GroundUnitClass
|
||||
from game.data.units import UnitClass
|
||||
from game.dcs.groundunittype import GroundUnitType
|
||||
from game.factions import FACTIONS
|
||||
from game.theater.theatergroundobject import VehicleGroupGroundObject
|
||||
from gen.defenses.armored_group_generator import (
|
||||
from gen.to_remove.armored_group_generator import (
|
||||
ArmoredGroupGenerator,
|
||||
FixedSizeArmorGroupGenerator,
|
||||
)
|
||||
@ -22,10 +22,10 @@ def generate_armor_group(
|
||||
:return: Generated group
|
||||
"""
|
||||
armor_types = (
|
||||
GroundUnitClass.Apc,
|
||||
GroundUnitClass.Atgm,
|
||||
GroundUnitClass.Ifv,
|
||||
GroundUnitClass.Tank,
|
||||
UnitClass.Apc,
|
||||
UnitClass.Atgm,
|
||||
UnitClass.Ifv,
|
||||
UnitClass.Tank,
|
||||
)
|
||||
possible_unit = [
|
||||
u for u in FACTIONS[faction].frontline_units if u.unit_class in armor_types
|
||||
@ -1,9 +1,13 @@
|
||||
import random
|
||||
|
||||
import dcs.vehicles
|
||||
from dcs import Point
|
||||
|
||||
from game import Game
|
||||
from game.dcs.groundunittype import GroundUnitType
|
||||
from game.theater.theatergroundobject import VehicleGroupGroundObject
|
||||
from gen.sam.group_generator import VehicleGroupGenerator
|
||||
from game.utils import Heading
|
||||
from gen.group_generator import VehicleGroupGenerator
|
||||
|
||||
|
||||
class ArmoredGroupGenerator(VehicleGroupGenerator[VehicleGroupGroundObject]):
|
||||
@ -15,6 +19,7 @@ class ArmoredGroupGenerator(VehicleGroupGenerator[VehicleGroupGroundObject]):
|
||||
) -> None:
|
||||
super().__init__(game, ground_object)
|
||||
self.unit_type = unit_type
|
||||
self.heading = Heading.from_degrees(0)
|
||||
|
||||
def generate(self) -> None:
|
||||
grid_x = random.randint(2, 3)
|
||||
@ -46,9 +51,10 @@ class FixedSizeArmorGroupGenerator(VehicleGroupGenerator[VehicleGroupGroundObjec
|
||||
super().__init__(game, ground_object)
|
||||
self.unit_type = unit_type
|
||||
self.size = size
|
||||
self.spacing = random.randint(20, 70)
|
||||
self.heading = Heading.from_degrees(0)
|
||||
|
||||
def generate(self) -> None:
|
||||
spacing = random.randint(20, 70)
|
||||
|
||||
index = 0
|
||||
for i in range(self.size):
|
||||
@ -56,7 +62,23 @@ class FixedSizeArmorGroupGenerator(VehicleGroupGenerator[VehicleGroupGroundObjec
|
||||
self.add_unit(
|
||||
self.unit_type.dcs_unit_type,
|
||||
"Armor#" + str(index),
|
||||
self.position.x + spacing * i,
|
||||
self.position.x + self.spacing * i,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
|
||||
class FixedSizeArmorGroupGeneratorWithAA(FixedSizeArmorGroupGenerator):
|
||||
def generate(self) -> None:
|
||||
super(FixedSizeArmorGroupGeneratorWithAA, self).generate()
|
||||
aux_group = self.add_vehicle_group()
|
||||
index = 0
|
||||
for i in [1, 2]:
|
||||
index = index + 1
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
dcs.vehicles.AirDefence.M6_Linebacker,
|
||||
"Anti Air#" + str(index),
|
||||
Point(self.position.x - self.spacing * i, self.position.y),
|
||||
self.heading,
|
||||
)
|
||||
124
gen/to_remove/carrier_group.py
Normal file
124
gen/to_remove/carrier_group.py
Normal file
@ -0,0 +1,124 @@
|
||||
import random
|
||||
|
||||
import dcs.ships
|
||||
from dcs import Point
|
||||
|
||||
from gen.group_generator import ShipGroupGenerator
|
||||
from game.utils import Heading
|
||||
|
||||
from dcs.ships import USS_Arleigh_Burke_IIa, TICONDEROG
|
||||
|
||||
|
||||
class CarrierGroupGenerator(ShipGroupGenerator):
|
||||
def generate(self) -> None:
|
||||
self.add_unit(
|
||||
dcs.ships.Stennis,
|
||||
"Carrier",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
aux_group = self.add_auxiliary_group()
|
||||
# Add destroyers escort
|
||||
dd_type = dcs.ships.USS_Arleigh_Burke_IIa
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
dd_type,
|
||||
"DD1",
|
||||
Point(self.position.x + 2500, self.position.y + 4500),
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
dd_type,
|
||||
"DD2",
|
||||
Point(self.position.x + 2500, self.position.y - 4500),
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
dd_type,
|
||||
"DD3",
|
||||
Point(self.position.x + 4500, self.position.y + 8500),
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
dd_type,
|
||||
"DD4",
|
||||
Point(self.position.x + 4500, self.position.y - 8500),
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.get_generated_group().points[0].speed = 20
|
||||
|
||||
|
||||
class CarrierStrikeGroup8Generator(ShipGroupGenerator):
|
||||
def generate(self) -> None:
|
||||
# Carrier Strike Group 8
|
||||
carrier_type = dcs.ships.Stennis
|
||||
|
||||
self.add_unit(
|
||||
carrier_type,
|
||||
"CVN-75 Harry S. Truman",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
aux_group = self.add_auxiliary_group()
|
||||
|
||||
# Add Arleigh Burke escort
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Ramage",
|
||||
Point(self.position.x + 6482, self.position.y + 6667),
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Mitscher",
|
||||
Point(self.position.x - 7963, self.position.y + 7037),
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Forrest Sherman",
|
||||
Point(self.position.x - 7408, self.position.y - 7408),
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Lassen",
|
||||
Point(self.position.x + 8704, self.position.y - 6296),
|
||||
self.heading,
|
||||
)
|
||||
|
||||
# Add Ticonderoga escort
|
||||
if self.heading >= Heading.from_degrees(180):
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
TICONDEROG,
|
||||
"USS Hué City",
|
||||
Point(self.position.x + 2222, self.position.y - 3333),
|
||||
self.heading,
|
||||
)
|
||||
else:
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
TICONDEROG,
|
||||
"USS Hué City",
|
||||
Point(self.position.x - 3333, self.position.y + 2222),
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.get_generated_group().points[0].speed = 20
|
||||
59
gen/to_remove/cn_dd_group.py
Normal file
59
gen/to_remove/cn_dd_group.py
Normal file
@ -0,0 +1,59 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import random
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from dcs.ships import (
|
||||
Type_052C,
|
||||
Type_052B,
|
||||
Type_054A,
|
||||
)
|
||||
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import ShipGroundObject
|
||||
from gen.to_remove.dd_group import DDGroupGenerator
|
||||
from gen.group_generator import ShipGroupGenerator
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from game.game import Game
|
||||
|
||||
|
||||
class ChineseNavyGroupGenerator(ShipGroupGenerator):
|
||||
def generate(self) -> None:
|
||||
self.add_unit(
|
||||
Type_054A,
|
||||
"FF1",
|
||||
self.position.x + 1200,
|
||||
self.position.y + 900,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Type_054A,
|
||||
"FF2",
|
||||
self.position.x + 1200,
|
||||
self.position.y - 900,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Type_052C,
|
||||
"DD1",
|
||||
self.position.x + 2400,
|
||||
self.position.y + 900,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Type_052C,
|
||||
"DD2",
|
||||
self.position.x + 2400,
|
||||
self.position.y - 900,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.get_generated_group().points[0].speed = 20
|
||||
|
||||
|
||||
class Type54GroupGenerator(DDGroupGenerator):
|
||||
def __init__(self, game: Game, ground_object: ShipGroundObject, faction: Faction):
|
||||
super(Type54GroupGenerator, self).__init__(
|
||||
game, ground_object, faction, Type_054A
|
||||
)
|
||||
13
gen/to_remove/coastal_group_generator.py
Normal file
13
gen/to_remove/coastal_group_generator.py
Normal file
@ -0,0 +1,13 @@
|
||||
import logging
|
||||
import random
|
||||
from typing import Optional
|
||||
|
||||
from dcs.unitgroup import VehicleGroup
|
||||
|
||||
from game import db, Game
|
||||
from game.theater.theatergroundobject import CoastalSiteGroundObject
|
||||
from gen.to_remove.silkworm import SilkwormGenerator
|
||||
|
||||
COASTAL_MAP = {
|
||||
"SilkwormGenerator": SilkwormGenerator,
|
||||
}
|
||||
@ -2,8 +2,8 @@ import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -7,7 +7,7 @@ from dcs.unittype import ShipType
|
||||
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import ShipGroundObject
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
from gen.group_generator import ShipGroupGenerator
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from game.game import Game
|
||||
27
gen/to_remove/ewr_group_generator.py
Normal file
27
gen/to_remove/ewr_group_generator.py
Normal file
@ -0,0 +1,27 @@
|
||||
from gen.to_remove.ewrs import (
|
||||
BigBirdGenerator,
|
||||
BoxSpringGenerator,
|
||||
DogEarGenerator,
|
||||
FlatFaceGenerator,
|
||||
HawkEwrGenerator,
|
||||
PatriotEwrGenerator,
|
||||
RolandEwrGenerator,
|
||||
SnowDriftGenerator,
|
||||
StraightFlushGenerator,
|
||||
TallRackGenerator,
|
||||
TinShieldGenerator,
|
||||
)
|
||||
|
||||
EWR_MAP = {
|
||||
"BoxSpringGenerator": BoxSpringGenerator,
|
||||
"TallRackGenerator": TallRackGenerator,
|
||||
"DogEarGenerator": DogEarGenerator,
|
||||
"RolandEwrGenerator": RolandEwrGenerator,
|
||||
"FlatFaceGenerator": FlatFaceGenerator,
|
||||
"PatriotEwrGenerator": PatriotEwrGenerator,
|
||||
"BigBirdGenerator": BigBirdGenerator,
|
||||
"SnowDriftGenerator": SnowDriftGenerator,
|
||||
"StraightFlushGenerator": StraightFlushGenerator,
|
||||
"HawkEwrGenerator": HawkEwrGenerator,
|
||||
"TinShieldGenerator": TinShieldGenerator,
|
||||
}
|
||||
@ -4,11 +4,11 @@ from dcs.unittype import VehicleType
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from game.theater.theatergroundobject import EwrGroundObject
|
||||
from gen.sam.group_generator import VehicleGroupGenerator
|
||||
from gen.group_generator import VehicleGroupGenerator
|
||||
|
||||
|
||||
class EwrGenerator(VehicleGroupGenerator[EwrGroundObject]):
|
||||
unit_type: Type[VehicleType]
|
||||
unit_type: Type[VehicleType] = AirDefence.P_19_s_125_sr
|
||||
|
||||
@classmethod
|
||||
def name(cls) -> str:
|
||||
@ -20,7 +20,7 @@ class EwrGenerator(VehicleGroupGenerator[EwrGroundObject]):
|
||||
"EWR",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading_to_conflict(),
|
||||
self.heading,
|
||||
)
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
from dcs.vehicles import AirDefence, Infantry, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
from game.utils import Heading
|
||||
@ -3,7 +3,7 @@ from dcs.ships import La_Combattante_II
|
||||
from game import Game
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import ShipGroundObject
|
||||
from gen.fleet.dd_group import DDGroupGenerator
|
||||
from gen.to_remove.dd_group import DDGroupGenerator
|
||||
|
||||
|
||||
class LaCombattanteIIGroupGenerator(DDGroupGenerator):
|
||||
39
gen/to_remove/lha_group.py
Normal file
39
gen/to_remove/lha_group.py
Normal file
@ -0,0 +1,39 @@
|
||||
import random
|
||||
|
||||
import dcs.ships
|
||||
from dcs import Point
|
||||
|
||||
from gen.group_generator import ShipGroupGenerator
|
||||
|
||||
|
||||
class LHAGroupGenerator(ShipGroupGenerator):
|
||||
def generate(self) -> None:
|
||||
|
||||
# Add carrier
|
||||
self.add_unit(
|
||||
dcs.ships.LHA_Tarawa,
|
||||
"LHA",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
# Add destroyers escort
|
||||
aux_group = self.add_auxiliary_group()
|
||||
dd_type = dcs.ships.USS_Arleigh_Burke_IIa
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
dd_type,
|
||||
"DD1",
|
||||
Point(self.position.x + 1250, self.position.y + 1450),
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit_to_group(
|
||||
aux_group,
|
||||
dd_type,
|
||||
"DD2",
|
||||
Point(self.position.x + 1250, self.position.y - 1450),
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.get_generated_group().points[0].speed = 20
|
||||
12
gen/to_remove/missiles_group_generator.py
Normal file
12
gen/to_remove/missiles_group_generator.py
Normal file
@ -0,0 +1,12 @@
|
||||
import logging
|
||||
import random
|
||||
from typing import Optional
|
||||
|
||||
from dcs.unitgroup import VehicleGroup
|
||||
|
||||
from game import db, Game
|
||||
from game.theater.theatergroundobject import MissileSiteGroundObject
|
||||
from gen.to_remove.scud_site import ScudGenerator
|
||||
from gen.to_remove.v1_group import V1GroupGenerator
|
||||
|
||||
MISSILES_MAP = {"V1GroupGenerator": V1GroupGenerator, "ScudGenerator": ScudGenerator}
|
||||
92
gen/to_remove/ru_dd_group.py
Normal file
92
gen/to_remove/ru_dd_group.py
Normal file
@ -0,0 +1,92 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import random
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from dcs.ships import (
|
||||
ALBATROS,
|
||||
MOLNIYA,
|
||||
NEUSTRASH,
|
||||
REZKY,
|
||||
MOSCOW,
|
||||
KILO,
|
||||
SOM,
|
||||
)
|
||||
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import ShipGroundObject
|
||||
from gen.to_remove.dd_group import DDGroupGenerator
|
||||
from gen.group_generator import ShipGroupGenerator
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from game.game import Game
|
||||
|
||||
|
||||
class RussianNavyGroupGenerator(ShipGroupGenerator):
|
||||
def generate(self) -> None:
|
||||
|
||||
self.add_unit(
|
||||
ALBATROS,
|
||||
"FF1",
|
||||
self.position.x + 1200,
|
||||
self.position.y + 900,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
ALBATROS,
|
||||
"FF2",
|
||||
self.position.x + 1200,
|
||||
self.position.y - 900,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.add_unit(
|
||||
NEUSTRASH,
|
||||
"DD1",
|
||||
self.position.x + 2400,
|
||||
self.position.y + 900,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
NEUSTRASH,
|
||||
"DD2",
|
||||
self.position.x + 2400,
|
||||
self.position.y - 900,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
# Only include the Moskva for now, the Pyotry Velikiy is an unkillable monster.
|
||||
# See https://github.com/dcs-liberation/dcs_liberation/issues/567
|
||||
self.add_unit(
|
||||
MOSCOW,
|
||||
"CC1",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
self.get_generated_group().points[0].speed = 20
|
||||
|
||||
|
||||
class GrishaGroupGenerator(DDGroupGenerator):
|
||||
def __init__(self, game: Game, ground_object: ShipGroundObject, faction: Faction):
|
||||
super(GrishaGroupGenerator, self).__init__(
|
||||
game, ground_object, faction, ALBATROS
|
||||
)
|
||||
|
||||
|
||||
class MolniyaGroupGenerator(DDGroupGenerator):
|
||||
def __init__(self, game: Game, ground_object: ShipGroundObject, faction: Faction):
|
||||
super(MolniyaGroupGenerator, self).__init__(
|
||||
game, ground_object, faction, MOLNIYA
|
||||
)
|
||||
|
||||
|
||||
class KiloSubGroupGenerator(DDGroupGenerator):
|
||||
def __init__(self, game: Game, ground_object: ShipGroundObject, faction: Faction):
|
||||
super(KiloSubGroupGenerator, self).__init__(game, ground_object, faction, KILO)
|
||||
|
||||
|
||||
class TangoSubGroupGenerator(DDGroupGenerator):
|
||||
def __init__(self, game: Game, ground_object: ShipGroundObject, faction: Faction):
|
||||
super(TangoSubGroupGenerator, self).__init__(game, ground_object, faction, SOM)
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -5,34 +5,33 @@ from dcs.unitgroup import VehicleGroup
|
||||
|
||||
from game import Game
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import SamGroundObject
|
||||
from gen.sam.aaa_bofors import BoforsGenerator
|
||||
from gen.sam.aaa_flak import FlakGenerator
|
||||
from gen.sam.aaa_flak18 import Flak18Generator
|
||||
from gen.sam.aaa_ks19 import KS19Generator
|
||||
from gen.sam.aaa_ww2_ally_flak import AllyWW2FlakGenerator
|
||||
from gen.sam.aaa_zsu57 import ZSU57Generator
|
||||
from gen.sam.aaa_zu23_insurgent import ZU23InsurgentGenerator
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
from game.theater.theatergroundobject import SamGroundObject, AirDefenseRange
|
||||
from gen.to_remove.aaa_bofors import BoforsGenerator
|
||||
from gen.to_remove.aaa_flak import FlakGenerator
|
||||
from gen.to_remove.aaa_flak18 import Flak18Generator
|
||||
from gen.to_remove.aaa_ks19 import KS19Generator
|
||||
from gen.to_remove.aaa_ww2_ally_flak import AllyWW2FlakGenerator
|
||||
from gen.to_remove.aaa_zsu57 import ZSU57Generator
|
||||
from gen.to_remove.aaa_zu23_insurgent import ZU23InsurgentGenerator
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
AirDefenseRange,
|
||||
)
|
||||
from gen.sam.cold_war_flak import (
|
||||
from gen.to_remove.cold_war_flak import (
|
||||
ColdWarFlakGenerator,
|
||||
EarlyColdWarFlakGenerator,
|
||||
)
|
||||
from gen.sam.freya_ewr import FreyaGenerator
|
||||
from gen.sam.sam_avenger import AvengerGenerator
|
||||
from gen.sam.sam_chaparral import ChaparralGenerator
|
||||
from gen.sam.sam_gepard import GepardGenerator
|
||||
from gen.sam.sam_hawk import HawkGenerator
|
||||
from gen.sam.sam_hq7 import HQ7Generator
|
||||
from gen.sam.sam_linebacker import LinebackerGenerator
|
||||
from gen.sam.sam_nasams import NasamBGenerator, NasamCGenerator
|
||||
from gen.sam.sam_patriot import PatriotGenerator
|
||||
from gen.sam.sam_rapier import RapierGenerator
|
||||
from gen.sam.sam_roland import RolandGenerator
|
||||
from gen.sam.sam_sa10 import (
|
||||
from gen.to_remove.freya_ewr import FreyaGenerator
|
||||
from gen.to_remove.sam_avenger import AvengerGenerator
|
||||
from gen.to_remove.sam_chaparral import ChaparralGenerator
|
||||
from gen.to_remove.sam_gepard import GepardGenerator
|
||||
from gen.to_remove.sam_hawk import HawkGenerator
|
||||
from gen.to_remove.sam_hq7 import HQ7Generator
|
||||
from gen.to_remove.sam_linebacker import LinebackerGenerator
|
||||
from gen.to_remove.sam_nasams import NasamBGenerator, NasamCGenerator
|
||||
from gen.to_remove.sam_patriot import PatriotGenerator
|
||||
from gen.to_remove.sam_rapier import RapierGenerator
|
||||
from gen.to_remove.sam_roland import RolandGenerator
|
||||
from gen.to_remove.sam_sa10 import (
|
||||
SA10Generator,
|
||||
Tier2SA10Generator,
|
||||
Tier3SA10Generator,
|
||||
@ -42,22 +41,22 @@ from gen.sam.sam_sa10 import (
|
||||
SA20BGenerator,
|
||||
SA23Generator,
|
||||
)
|
||||
from gen.sam.sam_sa11 import SA11Generator
|
||||
from gen.sam.sam_sa13 import SA13Generator
|
||||
from gen.sam.sam_sa15 import SA15Generator
|
||||
from gen.sam.sam_sa17 import SA17Generator
|
||||
from gen.sam.sam_sa19 import SA19Generator
|
||||
from gen.sam.sam_sa2 import SA2Generator
|
||||
from gen.sam.sam_sa3 import SA3Generator
|
||||
from gen.sam.sam_sa5 import SA5Generator, SA5FlatFaceGenerator
|
||||
from gen.sam.sam_sa6 import SA6Generator
|
||||
from gen.sam.sam_sa8 import SA8Generator
|
||||
from gen.sam.sam_sa9 import SA9Generator
|
||||
from gen.sam.sam_vulcan import VulcanGenerator
|
||||
from gen.sam.sam_zsu23 import ZSU23Generator
|
||||
from gen.sam.sam_zu23 import ZU23Generator
|
||||
from gen.sam.sam_zu23_ural import ZU23UralGenerator
|
||||
from gen.sam.sam_zu23_ural_insurgent import ZU23UralInsurgentGenerator
|
||||
from gen.to_remove.sam_sa11 import SA11Generator
|
||||
from gen.to_remove.sam_sa13 import SA13Generator
|
||||
from gen.to_remove.sam_sa15 import SA15Generator
|
||||
from gen.to_remove.sam_sa17 import SA17Generator
|
||||
from gen.to_remove.sam_sa19 import SA19Generator
|
||||
from gen.to_remove.sam_sa2 import SA2Generator
|
||||
from gen.to_remove.sam_sa3 import SA3Generator
|
||||
from gen.to_remove.sam_sa5 import SA5Generator, SA5FlatFaceGenerator
|
||||
from gen.to_remove.sam_sa6 import SA6Generator
|
||||
from gen.to_remove.sam_sa8 import SA8Generator
|
||||
from gen.to_remove.sam_sa9 import SA9Generator
|
||||
from gen.to_remove.sam_vulcan import VulcanGenerator
|
||||
from gen.to_remove.sam_zsu23 import ZSU23Generator
|
||||
from gen.to_remove.sam_zu23 import ZU23Generator
|
||||
from gen.to_remove.sam_zu23_ural import ZU23UralGenerator
|
||||
from gen.to_remove.sam_zu23_ural_insurgent import ZU23UralInsurgentGenerator
|
||||
|
||||
SAM_MAP: Dict[str, Type[AirDefenseGroupGenerator]] = {
|
||||
"HawkGenerator": HawkGenerator,
|
||||
@ -1,12 +1,9 @@
|
||||
import random
|
||||
|
||||
from dcs.mapping import Point
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange, SkynetRole
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
SkynetRole,
|
||||
)
|
||||
|
||||
|
||||
@ -1,12 +1,9 @@
|
||||
import random
|
||||
|
||||
from dcs.mapping import Point
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange, SkynetRole
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
SkynetRole,
|
||||
)
|
||||
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,13 +1,12 @@
|
||||
from typing import Type
|
||||
|
||||
from dcs.mapping import Point
|
||||
from dcs.unittype import VehicleType
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from game import Game
|
||||
from game.theater import SamGroundObject
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
from dcs.mapping import Point
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import SkynetRole, AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
SkynetRole,
|
||||
)
|
||||
|
||||
|
||||
@ -1,11 +1,8 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import SkynetRole, AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
SkynetRole,
|
||||
)
|
||||
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import SkynetRole, AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
SkynetRole,
|
||||
)
|
||||
|
||||
|
||||
@ -6,10 +6,9 @@ from dcs.vehicles import AirDefence
|
||||
|
||||
from game import Game
|
||||
from game.theater import SamGroundObject
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import SkynetRole, AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
SkynetRole,
|
||||
)
|
||||
from pydcs_extensions.highdigitsams import highdigitsams
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
from pydcs_extensions.highdigitsams import highdigitsams
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -5,8 +5,8 @@ from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from game import Game
|
||||
from game.theater import SamGroundObject
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -70,6 +70,8 @@ class SA5FlatFaceGenerator(SA5Generator):
|
||||
This generate a SA-5 group using the P-19 FlatFace SR
|
||||
"""
|
||||
|
||||
name = "SA-5/S-200 Site wit FlatFace SR"
|
||||
|
||||
def __init__(self, game: Game, ground_object: SamGroundObject):
|
||||
super().__init__(game, ground_object)
|
||||
self.sr: Type[VehicleType] = AirDefence.P_19_s_125_sr
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -2,8 +2,8 @@ import random
|
||||
|
||||
from dcs.vehicles import AirDefence, Unarmed
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from gen.sam.airdefensegroupgenerator import (
|
||||
AirDefenseRange,
|
||||
from game.theater.theatergroundobject import AirDefenseRange
|
||||
from gen.to_remove.airdefensegroupgenerator import (
|
||||
AirDefenseGroupGenerator,
|
||||
)
|
||||
|
||||
@ -2,7 +2,7 @@ import random
|
||||
|
||||
from dcs.ships import Schnellboot_type_S130
|
||||
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
from gen.group_generator import ShipGroupGenerator
|
||||
|
||||
|
||||
class SchnellbootGroupGenerator(ShipGroupGenerator):
|
||||
@ -6,7 +6,7 @@ from game import Game
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import MissileSiteGroundObject
|
||||
from game.utils import Heading
|
||||
from gen.sam.group_generator import VehicleGroupGenerator
|
||||
from gen.group_generator import VehicleGroupGenerator
|
||||
|
||||
|
||||
class ScudGenerator(VehicleGroupGenerator[MissileSiteGroundObject]):
|
||||
52
gen/to_remove/ship_group_generator.py
Normal file
52
gen/to_remove/ship_group_generator.py
Normal file
@ -0,0 +1,52 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
import random
|
||||
from typing import TYPE_CHECKING, Optional
|
||||
|
||||
from dcs.unitgroup import ShipGroup
|
||||
|
||||
from game import db
|
||||
from game.theater.theatergroundobject import (
|
||||
LhaGroundObject,
|
||||
CarrierGroundObject,
|
||||
ShipGroundObject,
|
||||
)
|
||||
from gen.to_remove.carrier_group import CarrierGroupGenerator
|
||||
from gen.to_remove.cn_dd_group import ChineseNavyGroupGenerator, Type54GroupGenerator
|
||||
from gen.to_remove.dd_group import (
|
||||
ArleighBurkeGroupGenerator,
|
||||
OliverHazardPerryGroupGenerator,
|
||||
)
|
||||
from gen.to_remove.lacombattanteII import LaCombattanteIIGroupGenerator
|
||||
from gen.to_remove.lha_group import LHAGroupGenerator
|
||||
from gen.to_remove.ru_dd_group import (
|
||||
RussianNavyGroupGenerator,
|
||||
GrishaGroupGenerator,
|
||||
MolniyaGroupGenerator,
|
||||
KiloSubGroupGenerator,
|
||||
TangoSubGroupGenerator,
|
||||
)
|
||||
from gen.to_remove.schnellboot import SchnellbootGroupGenerator
|
||||
from gen.to_remove.uboat import UBoatGroupGenerator
|
||||
from gen.to_remove.ww2lst import WW2LSTGroupGenerator
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from game import Game
|
||||
|
||||
|
||||
SHIP_MAP = {
|
||||
"SchnellbootGroupGenerator": SchnellbootGroupGenerator,
|
||||
"WW2LSTGroupGenerator": WW2LSTGroupGenerator,
|
||||
"UBoatGroupGenerator": UBoatGroupGenerator,
|
||||
"OliverHazardPerryGroupGenerator": OliverHazardPerryGroupGenerator,
|
||||
"ArleighBurkeGroupGenerator": ArleighBurkeGroupGenerator,
|
||||
"RussianNavyGroupGenerator": RussianNavyGroupGenerator,
|
||||
"ChineseNavyGroupGenerator": ChineseNavyGroupGenerator,
|
||||
"GrishaGroupGenerator": GrishaGroupGenerator,
|
||||
"MolniyaGroupGenerator": MolniyaGroupGenerator,
|
||||
"KiloSubGroupGenerator": KiloSubGroupGenerator,
|
||||
"TangoSubGroupGenerator": TangoSubGroupGenerator,
|
||||
"Type54GroupGenerator": Type54GroupGenerator,
|
||||
"LaCombattanteIIGroupGenerator": LaCombattanteIIGroupGenerator,
|
||||
}
|
||||
@ -4,7 +4,7 @@ from game import Game
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import CoastalSiteGroundObject
|
||||
from game.utils import Heading
|
||||
from gen.sam.group_generator import VehicleGroupGenerator
|
||||
from gen.group_generator import VehicleGroupGenerator
|
||||
|
||||
|
||||
class SilkwormGenerator(VehicleGroupGenerator[CoastalSiteGroundObject]):
|
||||
@ -2,7 +2,7 @@ import random
|
||||
|
||||
from dcs.ships import Uboat_VIIC
|
||||
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
from gen.group_generator import ShipGroupGenerator
|
||||
|
||||
|
||||
class UBoatGroupGenerator(ShipGroupGenerator):
|
||||
@ -6,7 +6,7 @@ from game import Game
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import MissileSiteGroundObject
|
||||
from game.utils import Heading
|
||||
from gen.sam.group_generator import VehicleGroupGenerator
|
||||
from gen.group_generator import VehicleGroupGenerator
|
||||
|
||||
|
||||
class V1GroupGenerator(VehicleGroupGenerator[MissileSiteGroundObject]):
|
||||
@ -2,7 +2,7 @@ import random
|
||||
|
||||
from dcs.ships import USS_Samuel_Chase, LST_Mk2
|
||||
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
from gen.group_generator import ShipGroupGenerator
|
||||
|
||||
|
||||
class WW2LSTGroupGenerator(ShipGroupGenerator):
|
||||
Loading…
x
Reference in New Issue
Block a user