mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
The prices are only estimations due to randomization. the real price will be only known when the generator was used and the final units are known
83 lines
2.2 KiB
Python
83 lines
2.2 KiB
Python
import random
|
|
|
|
from dcs.vehicles import AirDefence, Armor, Unarmed
|
|
|
|
from gen.sam.airdefensegroupgenerator import (
|
|
AirDefenseRange,
|
|
AirDefenseGroupGenerator,
|
|
)
|
|
|
|
|
|
class AllyWW2FlakGenerator(AirDefenseGroupGenerator):
|
|
"""
|
|
This generate an ally flak artillery group
|
|
"""
|
|
|
|
name = "WW2 Ally Flak Site"
|
|
|
|
def generate(self):
|
|
|
|
positions = self.get_circular_position(4, launcher_distance=30, coverage=360)
|
|
for i, position in enumerate(positions):
|
|
self.add_unit(
|
|
AirDefence.QF_37_AA,
|
|
"AA#" + str(i),
|
|
position[0],
|
|
position[1],
|
|
position[2],
|
|
)
|
|
|
|
positions = self.get_circular_position(8, launcher_distance=60, coverage=360)
|
|
for i, position in enumerate(positions):
|
|
self.add_unit(
|
|
AirDefence.M1_37mm,
|
|
"AA#" + str(4 + i),
|
|
position[0],
|
|
position[1],
|
|
position[2],
|
|
)
|
|
|
|
positions = self.get_circular_position(8, launcher_distance=90, coverage=360)
|
|
for i, position in enumerate(positions):
|
|
self.add_unit(
|
|
AirDefence.M45_Quadmount,
|
|
"AA#" + str(12 + i),
|
|
position[0],
|
|
position[1],
|
|
position[2],
|
|
)
|
|
|
|
# Add a commander truck
|
|
self.add_unit(
|
|
Unarmed.Willys_MB,
|
|
"CMD#1",
|
|
self.position.x,
|
|
self.position.y - 20,
|
|
random.randint(0, 360),
|
|
)
|
|
self.add_unit(
|
|
Unarmed.M30_CC,
|
|
"LOG#1",
|
|
self.position.x,
|
|
self.position.y + 20,
|
|
random.randint(0, 360),
|
|
)
|
|
self.add_unit(
|
|
Unarmed.M4_Tractor,
|
|
"LOG#2",
|
|
self.position.x + 20,
|
|
self.position.y,
|
|
random.randint(0, 360),
|
|
)
|
|
self.add_unit(
|
|
Unarmed.Bedford_MWD,
|
|
"LOG#3",
|
|
self.position.x - 20,
|
|
self.position.y,
|
|
random.randint(0, 360),
|
|
)
|
|
|
|
@classmethod
|
|
def range(cls) -> AirDefenseRange:
|
|
return AirDefenseRange.AAA
|