mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Added new Flak site configuration (now that flak 18 and bofors guns do not require WW2 asset pack)
This commit is contained in:
parent
b72a2f4a5f
commit
95c4dfa52f
29
gen/sam/aaa_flak18.py
Normal file
29
gen/sam/aaa_flak18.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import random
|
||||||
|
|
||||||
|
from dcs.vehicles import AirDefence, Unarmed
|
||||||
|
|
||||||
|
from gen.sam.group_generator import GroupGenerator
|
||||||
|
|
||||||
|
|
||||||
|
class Flak18Generator(GroupGenerator):
|
||||||
|
"""
|
||||||
|
This generate a German flak artillery group using only free units, thus not requiring the WW2 asset pack
|
||||||
|
"""
|
||||||
|
|
||||||
|
name = "WW2 Flak Site"
|
||||||
|
price = 40
|
||||||
|
|
||||||
|
def generate(self):
|
||||||
|
|
||||||
|
spacing = random.randint(30, 60)
|
||||||
|
index = 0
|
||||||
|
|
||||||
|
for i in range(3):
|
||||||
|
for j in range(2):
|
||||||
|
index = index + 1
|
||||||
|
self.add_unit(AirDefence.AAA_8_8cm_Flak_18, "AAA#" + str(index),
|
||||||
|
self.position.x + spacing * i + random.randint(1, 5),
|
||||||
|
self.position.y + spacing * j + random.randint(1, 5), self.heading)
|
||||||
|
|
||||||
|
# Add a commander truck
|
||||||
|
self.add_unit(Unarmed.Blitz_3_6_6700A, "Blitz#", self.position.x - 35, self.position.y - 20, self.heading)
|
||||||
72
gen/sam/cold_war_flak.py
Normal file
72
gen/sam/cold_war_flak.py
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
import random
|
||||||
|
|
||||||
|
from dcs.vehicles import AirDefence, Unarmed
|
||||||
|
|
||||||
|
from gen.sam.group_generator import GroupGenerator
|
||||||
|
|
||||||
|
|
||||||
|
class EarlyColdWarFlakGenerator(GroupGenerator):
|
||||||
|
"""
|
||||||
|
This generator attempt to mimic an early cold-war era flak AAA site.
|
||||||
|
The Flak 18 88mm is used as the main long range gun and 2 Bofors 40mm guns provide short range protection.
|
||||||
|
|
||||||
|
This does not include search lights and telemeter computer (Kdo.G 40) because these are paid units only available in WW2 asset pack
|
||||||
|
"""
|
||||||
|
|
||||||
|
name = "Early Cold War Flak Site"
|
||||||
|
price = 58
|
||||||
|
|
||||||
|
def generate(self):
|
||||||
|
|
||||||
|
spacing = random.randint(30, 60)
|
||||||
|
index = 0
|
||||||
|
|
||||||
|
# Long range guns
|
||||||
|
for i in range(3):
|
||||||
|
for j in range(2):
|
||||||
|
index = index + 1
|
||||||
|
self.add_unit(AirDefence.AAA_8_8cm_Flak_18, "AAA#" + str(index),
|
||||||
|
self.position.x + spacing * i + random.randint(1, 5),
|
||||||
|
self.position.y + spacing * j + random.randint(1, 5), self.heading)
|
||||||
|
|
||||||
|
# Short range guns
|
||||||
|
self.add_unit(AirDefence.AAA_Bofors_40mm, "SHO#1",
|
||||||
|
self.position.x - 40, self.position.y - 40, self.heading + 180),
|
||||||
|
self.add_unit(AirDefence.AAA_Bofors_40mm, "SHO#1",
|
||||||
|
self.position.x + spacing * 2 + 40, self.position.y + spacing + 40, self.heading),
|
||||||
|
|
||||||
|
# Add a Kamaz truck
|
||||||
|
self.add_unit(Unarmed.Transport_KAMAZ_43101, "Kamaz#", self.position.x - 60, self.position.y - 20, self.heading)
|
||||||
|
|
||||||
|
|
||||||
|
class ColdWarFlakGenerator(GroupGenerator):
|
||||||
|
"""
|
||||||
|
This generator attempt to mimic a cold-war era flak AAA site.
|
||||||
|
The Flak 18 88mm is used as the main long range gun while 2 Zu-23 guns provide short range protection.
|
||||||
|
The site is also fitted with a P-19 radar for early detection.
|
||||||
|
"""
|
||||||
|
|
||||||
|
name = "Early Cold War Flak Site"
|
||||||
|
price = 72
|
||||||
|
|
||||||
|
def generate(self):
|
||||||
|
|
||||||
|
spacing = random.randint(30, 60)
|
||||||
|
index = 0
|
||||||
|
|
||||||
|
# Long range guns
|
||||||
|
for i in range(3):
|
||||||
|
for j in range(2):
|
||||||
|
index = index + 1
|
||||||
|
self.add_unit(AirDefence.AAA_8_8cm_Flak_18, "AAA#" + str(index),
|
||||||
|
self.position.x + spacing * i + random.randint(1, 5),
|
||||||
|
self.position.y + spacing * j + random.randint(1, 5), self.heading)
|
||||||
|
|
||||||
|
# Short range guns
|
||||||
|
self.add_unit(AirDefence.AAA_ZU_23_Closed, "SHO#1",
|
||||||
|
self.position.x - 40, self.position.y - 40, self.heading + 180),
|
||||||
|
self.add_unit(AirDefence.AAA_ZU_23_Closed, "SHO#1",
|
||||||
|
self.position.x + spacing * 2 + 40, self.position.y + spacing + 40, self.heading),
|
||||||
|
|
||||||
|
# Add a P19 Radar for EWR
|
||||||
|
self.add_unit(AirDefence.SAM_SR_P_19, "SR#0", self.position.x - 60, self.position.y - 20, self.heading)
|
||||||
@ -1,13 +1,14 @@
|
|||||||
import random
|
import random
|
||||||
from typing import List, Type
|
from typing import List, Type
|
||||||
|
|
||||||
from dcs.unittype import UnitType
|
|
||||||
from dcs.vehicles import AirDefence
|
from dcs.vehicles import AirDefence
|
||||||
|
|
||||||
from game import db
|
from game import db
|
||||||
from gen.sam.aaa_bofors import BoforsGenerator
|
from gen.sam.aaa_bofors import BoforsGenerator
|
||||||
from gen.sam.aaa_flak import FlakGenerator
|
from gen.sam.aaa_flak import FlakGenerator
|
||||||
|
from gen.sam.aaa_flak18 import Flak18Generator
|
||||||
from gen.sam.aaa_zu23_insurgent import ZU23InsurgentGenerator
|
from gen.sam.aaa_zu23_insurgent import ZU23InsurgentGenerator
|
||||||
|
from gen.sam.cold_war_flak import EarlyColdWarFlakGenerator, ColdWarFlakGenerator
|
||||||
from gen.sam.group_generator import GroupGenerator
|
from gen.sam.group_generator import GroupGenerator
|
||||||
from gen.sam.sam_avenger import AvengerGenerator
|
from gen.sam.sam_avenger import AvengerGenerator
|
||||||
from gen.sam.sam_chaparral import ChaparralGenerator
|
from gen.sam.sam_chaparral import ChaparralGenerator
|
||||||
@ -61,7 +62,10 @@ SAM_MAP = {
|
|||||||
"SA13Generator": SA13Generator,
|
"SA13Generator": SA13Generator,
|
||||||
"SA15Generator": SA15Generator,
|
"SA15Generator": SA15Generator,
|
||||||
"SA19Generator": SA19Generator,
|
"SA19Generator": SA19Generator,
|
||||||
"HQ7Generator": HQ7Generator
|
"HQ7Generator": HQ7Generator,
|
||||||
|
"Flak18Generator": Flak18Generator,
|
||||||
|
"ColdWarFlakGenerator": ColdWarFlakGenerator,
|
||||||
|
"EarlyColdWarFlakGenerator": EarlyColdWarFlakGenerator
|
||||||
}
|
}
|
||||||
|
|
||||||
SAM_PRICES = {
|
SAM_PRICES = {
|
||||||
@ -106,7 +110,8 @@ def get_faction_possible_sams_generator(faction: str) -> List[Type[GroupGenerato
|
|||||||
"""
|
"""
|
||||||
return [SAM_MAP[s] for s in db.FACTIONS[faction].sams if s in SAM_MAP.keys()]
|
return [SAM_MAP[s] for s in db.FACTIONS[faction].sams if s in SAM_MAP.keys()]
|
||||||
|
|
||||||
def generate_anti_air_group(game, parent_cp, ground_object, faction:str):
|
|
||||||
|
def generate_anti_air_group(game, parent_cp, ground_object, faction: str):
|
||||||
"""
|
"""
|
||||||
This generate a SAM group
|
This generate a SAM group
|
||||||
:param parentCp: The parent control point
|
:param parentCp: The parent control point
|
||||||
@ -133,8 +138,3 @@ def generate_shorad_group(game, parent_cp, ground_object, faction_name: str):
|
|||||||
return generator.get_generated_group()
|
return generator.get_generated_group()
|
||||||
else:
|
else:
|
||||||
return generate_anti_air_group(game, parent_cp, ground_object, faction_name)
|
return generate_anti_air_group(game, parent_cp, ground_object, faction_name)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user