dcs-retribution/gen/to_remove/carrier_group.py
RndName 6baf36c587 Prepare the generators for template migration
adopt armor and ship generators for randomization
2022-02-21 20:45:41 +01:00

125 lines
3.3 KiB
Python

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