mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Split the Pretense zone definition generation into separate methods: generate_pretense_zone_land() for land control points and generate_pretense_zone_sea() for carriers/LHAs.
This commit is contained in:
parent
f7c6f14220
commit
4be122e11a
@ -54,6 +54,420 @@ class PretenseLuaGenerator(LuaGenerator):
|
|||||||
self.mission.triggerrules.triggers.remove(t)
|
self.mission.triggerrules.triggers.remove(t)
|
||||||
self.mission.triggerrules.triggers.append(t)
|
self.mission.triggerrules.triggers.append(t)
|
||||||
|
|
||||||
|
def generate_pretense_zone_land(self, cp_name: str, cp_side: int) -> str:
|
||||||
|
lua_string_zones = ""
|
||||||
|
cp_name_trimmed = "".join([i for i in cp_name.lower() if i.isalnum()])
|
||||||
|
|
||||||
|
lua_string_zones += f"zones.{cp_name_trimmed}:defineUpgrades(" + "{\n"
|
||||||
|
lua_string_zones += " [1] = { --red side\n"
|
||||||
|
lua_string_zones += " presets.upgrades.basic.tent:extend({\n"
|
||||||
|
lua_string_zones += f" name='{cp_name_trimmed}-tent-red',\n"
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.special.red.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-defense-red'})\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " }),\n"
|
||||||
|
lua_string_zones += " presets.upgrades.basic.comPost:extend({\n"
|
||||||
|
lua_string_zones += f" name = '{cp_name_trimmed}-com-red',\n"
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.special.red.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-defense-red'}),\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.defenses.red.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-garrison-red' })\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " }),\n"
|
||||||
|
lua_string_zones += " },\n"
|
||||||
|
lua_string_zones += " [2] = --blue side\n"
|
||||||
|
lua_string_zones += " {\n"
|
||||||
|
lua_string_zones += " presets.upgrades.basic.tent:extend({\n"
|
||||||
|
lua_string_zones += f" name='{cp_name_trimmed}-tent-blue',\n"
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.special.blue.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-defense-blue'})\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " }),\n"
|
||||||
|
lua_string_zones += " presets.upgrades.basic.comPost:extend({\n"
|
||||||
|
lua_string_zones += f" name = '{cp_name_trimmed}-com-blue',\n"
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.special.blue.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-defense-blue'}),\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.defenses.blue.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-garrison-blue' })\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " }),\n"
|
||||||
|
lua_string_zones += " presets.upgrades.supply.fuelTank:extend({\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" name = '" + cp_name_trimmed + "-fueltank-blue',\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
for ground_group in self.game.pretense_ground_supply[cp_side][cp_name_trimmed]:
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.missions.supply.convoy:extend({ name='"
|
||||||
|
+ ground_group
|
||||||
|
+ "'}),\n"
|
||||||
|
)
|
||||||
|
for ground_group in self.game.pretense_ground_assault[cp_side][cp_name_trimmed]:
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.missions.attack.surface:extend({ name='"
|
||||||
|
+ ground_group
|
||||||
|
+ "'}),\n"
|
||||||
|
)
|
||||||
|
for mission_type in self.game.pretense_air[cp_side][cp_name_trimmed]:
|
||||||
|
if mission_type == FlightType.AIR_ASSAULT.name:
|
||||||
|
mission_name = "supply.helo"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "'}),\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " }),\n"
|
||||||
|
lua_string_zones += " presets.upgrades.airdef.comCenter:extend({\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
f" name = '{cp_name_trimmed}-mission-command-blue',\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.defenses.blue.shorad:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-sam-blue' }),\n"
|
||||||
|
)
|
||||||
|
for mission_type in self.game.pretense_air[cp_side][cp_name_trimmed]:
|
||||||
|
if mission_type == FlightType.SEAD.name:
|
||||||
|
mission_name = "attack.sead"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.CAS.name:
|
||||||
|
mission_name = "attack.cas"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.BAI.name:
|
||||||
|
mission_name = "attack.bai"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.STRIKE.name:
|
||||||
|
mission_name = "attack.strike"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', altitude=20000, expend=AI.Task.WeaponExpend.ALL}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.BARCAP.name:
|
||||||
|
mission_name = "patrol.aircraft"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', altitude=25000, range=25}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.REFUELING.name:
|
||||||
|
mission_name = "support.tanker"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
tanker_freq = 257.0
|
||||||
|
tanker_tacan = 37.0
|
||||||
|
for tanker in self.mission_data.tankers:
|
||||||
|
if tanker.group_name == air_group:
|
||||||
|
tanker_freq = tanker.freq.hertz / 1000000
|
||||||
|
tanker_tacan = tanker.tacan.number
|
||||||
|
if tanker.variant == "KC-135 Stratotanker":
|
||||||
|
tanker_variant = "Boom"
|
||||||
|
else:
|
||||||
|
tanker_variant = "Drogue"
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', freq='"
|
||||||
|
+ str(tanker_freq)
|
||||||
|
+ "', tacan='"
|
||||||
|
+ str(tanker_tacan)
|
||||||
|
+ "', variant='"
|
||||||
|
+ tanker_variant
|
||||||
|
+ "'}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.AEWC.name:
|
||||||
|
mission_name = "support.awacs"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
awacs_freq = 257.5
|
||||||
|
for awacs in self.mission_data.awacs:
|
||||||
|
if awacs.group_name == air_group:
|
||||||
|
awacs_freq = awacs.freq.hertz / 1000000
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', freq="
|
||||||
|
+ str(awacs_freq)
|
||||||
|
+ "}),\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " })\n"
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += "})\n"
|
||||||
|
|
||||||
|
return lua_string_zones
|
||||||
|
|
||||||
|
def generate_pretense_zone_sea(self, cp_name: str, cp_side: int) -> str:
|
||||||
|
lua_string_zones = ""
|
||||||
|
cp_name_trimmed = "".join([i for i in cp_name.lower() if i.isalnum()])
|
||||||
|
|
||||||
|
lua_string_zones += f"zones.{cp_name_trimmed}:defineUpgrades(" + "{\n"
|
||||||
|
lua_string_zones += " [1] = { --red side\n"
|
||||||
|
lua_string_zones += " presets.upgrades.basic.tent:extend({\n"
|
||||||
|
lua_string_zones += f" name='{cp_name_trimmed}-tent-red',\n"
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.special.red.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-defense-red'})\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " }),\n"
|
||||||
|
lua_string_zones += " presets.upgrades.basic.comPost:extend({\n"
|
||||||
|
lua_string_zones += f" name = '{cp_name_trimmed}-com-red',\n"
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.special.red.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-defense-red'}),\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.defenses.red.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-garrison-red' })\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " }),\n"
|
||||||
|
lua_string_zones += " },\n"
|
||||||
|
lua_string_zones += " [2] = --blue side\n"
|
||||||
|
lua_string_zones += " {\n"
|
||||||
|
lua_string_zones += " presets.upgrades.basic.tent:extend({\n"
|
||||||
|
lua_string_zones += f" name='{cp_name_trimmed}-tent-blue',\n"
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.special.blue.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-defense-blue'})\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " }),\n"
|
||||||
|
lua_string_zones += " presets.upgrades.basic.comPost:extend({\n"
|
||||||
|
lua_string_zones += f" name = '{cp_name_trimmed}-com-blue',\n"
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.special.blue.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-defense-blue'}),\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.defenses.blue.infantry:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-garrison-blue' })\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " }),\n"
|
||||||
|
lua_string_zones += " presets.upgrades.supply.fuelTank:extend({\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" name = '" + cp_name_trimmed + "-fueltank-blue',\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
for ground_group in self.game.pretense_ground_supply[cp_side][cp_name_trimmed]:
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.missions.supply.convoy:extend({ name='"
|
||||||
|
+ ground_group
|
||||||
|
+ "'}),\n"
|
||||||
|
)
|
||||||
|
for ground_group in self.game.pretense_ground_assault[cp_side][cp_name_trimmed]:
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.missions.attack.surface:extend({ name='"
|
||||||
|
+ ground_group
|
||||||
|
+ "'}),\n"
|
||||||
|
)
|
||||||
|
for mission_type in self.game.pretense_air[cp_side][cp_name_trimmed]:
|
||||||
|
if mission_type == FlightType.AIR_ASSAULT.name:
|
||||||
|
mission_name = "supply.helo"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "'}),\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " }),\n"
|
||||||
|
lua_string_zones += " presets.upgrades.airdef.comCenter:extend({\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
f" name = '{cp_name_trimmed}-mission-command-blue',\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " products = {\n"
|
||||||
|
lua_string_zones += (
|
||||||
|
" presets.defenses.blue.shorad:extend({ name='"
|
||||||
|
+ cp_name_trimmed
|
||||||
|
+ "-sam-blue' }),\n"
|
||||||
|
)
|
||||||
|
for mission_type in self.game.pretense_air[cp_side][cp_name_trimmed]:
|
||||||
|
if mission_type == FlightType.SEAD.name:
|
||||||
|
mission_name = "attack.sead"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.CAS.name:
|
||||||
|
mission_name = "attack.cas"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.BAI.name:
|
||||||
|
mission_name = "attack.bai"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.STRIKE.name:
|
||||||
|
mission_name = "attack.strike"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', altitude=20000, expend=AI.Task.WeaponExpend.ALL}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.BARCAP.name:
|
||||||
|
mission_name = "patrol.aircraft"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', altitude=25000, range=25}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.REFUELING.name:
|
||||||
|
mission_name = "support.tanker"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
tanker_freq = 257.0
|
||||||
|
tanker_tacan = 37.0
|
||||||
|
for tanker in self.mission_data.tankers:
|
||||||
|
if tanker.group_name == air_group:
|
||||||
|
tanker_freq = tanker.freq.hertz / 1000000
|
||||||
|
tanker_tacan = tanker.tacan.number
|
||||||
|
if tanker.variant == "KC-135 Stratotanker":
|
||||||
|
tanker_variant = "Boom"
|
||||||
|
else:
|
||||||
|
tanker_variant = "Drogue"
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', freq='"
|
||||||
|
+ str(tanker_freq)
|
||||||
|
+ "', tacan='"
|
||||||
|
+ str(tanker_tacan)
|
||||||
|
+ "', variant='"
|
||||||
|
+ tanker_variant
|
||||||
|
+ "'}),\n"
|
||||||
|
)
|
||||||
|
elif mission_type == FlightType.AEWC.name:
|
||||||
|
mission_name = "support.awacs"
|
||||||
|
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
||||||
|
mission_type
|
||||||
|
]:
|
||||||
|
awacs_freq = 257.5
|
||||||
|
for awacs in self.mission_data.awacs:
|
||||||
|
if awacs.group_name == air_group:
|
||||||
|
awacs_freq = awacs.freq.hertz / 1000000
|
||||||
|
lua_string_zones += (
|
||||||
|
f" presets.missions.{mission_name}:extend"
|
||||||
|
+ "({name='"
|
||||||
|
+ air_group
|
||||||
|
+ "', freq="
|
||||||
|
+ str(awacs_freq)
|
||||||
|
+ "}),\n"
|
||||||
|
)
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += " })\n"
|
||||||
|
lua_string_zones += " }\n"
|
||||||
|
lua_string_zones += "})\n"
|
||||||
|
|
||||||
|
return lua_string_zones
|
||||||
|
|
||||||
def generate_plugin_data(self) -> None:
|
def generate_plugin_data(self) -> None:
|
||||||
self.mission.triggerrules.triggers.clear()
|
self.mission.triggerrules.triggers.clear()
|
||||||
|
|
||||||
@ -105,210 +519,10 @@ class PretenseLuaGenerator(LuaGenerator):
|
|||||||
lua_string_zones += (
|
lua_string_zones += (
|
||||||
f"zones.{cp_name_trimmed}.maxResource = {max_resource}\n"
|
f"zones.{cp_name_trimmed}.maxResource = {max_resource}\n"
|
||||||
)
|
)
|
||||||
lua_string_zones += f"zones.{cp_name_trimmed}:defineUpgrades(" + "{\n"
|
if cp.is_fleet:
|
||||||
lua_string_zones += " [1] = { --red side\n"
|
lua_string_zones += self.generate_pretense_zone_sea(cp.name, cp_side)
|
||||||
lua_string_zones += " presets.upgrades.basic.tent:extend({\n"
|
else:
|
||||||
lua_string_zones += f" name='{cp_name_trimmed}-tent-red',\n"
|
lua_string_zones += self.generate_pretense_zone_land(cp.name, cp_side)
|
||||||
lua_string_zones += " products = {\n"
|
|
||||||
lua_string_zones += (
|
|
||||||
" presets.special.red.infantry:extend({ name='"
|
|
||||||
+ cp_name_trimmed
|
|
||||||
+ "-defense-red'})\n"
|
|
||||||
)
|
|
||||||
lua_string_zones += " }\n"
|
|
||||||
lua_string_zones += " }),\n"
|
|
||||||
lua_string_zones += " presets.upgrades.basic.comPost:extend({\n"
|
|
||||||
lua_string_zones += f" name = '{cp_name_trimmed}-com-red',\n"
|
|
||||||
lua_string_zones += " products = {\n"
|
|
||||||
lua_string_zones += (
|
|
||||||
" presets.special.red.infantry:extend({ name='"
|
|
||||||
+ cp_name_trimmed
|
|
||||||
+ "-defense-red'}),\n"
|
|
||||||
)
|
|
||||||
lua_string_zones += (
|
|
||||||
" presets.defenses.red.infantry:extend({ name='"
|
|
||||||
+ cp_name_trimmed
|
|
||||||
+ "-garrison-red' })\n"
|
|
||||||
)
|
|
||||||
lua_string_zones += " }\n"
|
|
||||||
lua_string_zones += " }),\n"
|
|
||||||
lua_string_zones += " },\n"
|
|
||||||
lua_string_zones += " [2] = --blue side\n"
|
|
||||||
lua_string_zones += " {\n"
|
|
||||||
lua_string_zones += " presets.upgrades.basic.tent:extend({\n"
|
|
||||||
lua_string_zones += f" name='{cp_name_trimmed}-tent-blue',\n"
|
|
||||||
lua_string_zones += " products = {\n"
|
|
||||||
lua_string_zones += (
|
|
||||||
" presets.special.blue.infantry:extend({ name='"
|
|
||||||
+ cp_name_trimmed
|
|
||||||
+ "-defense-blue'})\n"
|
|
||||||
)
|
|
||||||
lua_string_zones += " }\n"
|
|
||||||
lua_string_zones += " }),\n"
|
|
||||||
lua_string_zones += " presets.upgrades.basic.comPost:extend({\n"
|
|
||||||
lua_string_zones += f" name = '{cp_name_trimmed}-com-blue',\n"
|
|
||||||
lua_string_zones += " products = {\n"
|
|
||||||
lua_string_zones += (
|
|
||||||
" presets.special.blue.infantry:extend({ name='"
|
|
||||||
+ cp_name_trimmed
|
|
||||||
+ "-defense-blue'}),\n"
|
|
||||||
)
|
|
||||||
lua_string_zones += (
|
|
||||||
" presets.defenses.blue.infantry:extend({ name='"
|
|
||||||
+ cp_name_trimmed
|
|
||||||
+ "-garrison-blue' })\n"
|
|
||||||
)
|
|
||||||
lua_string_zones += " }\n"
|
|
||||||
lua_string_zones += " }),\n"
|
|
||||||
lua_string_zones += " presets.upgrades.supply.fuelTank:extend({\n"
|
|
||||||
lua_string_zones += (
|
|
||||||
" name = '" + cp_name_trimmed + "-fueltank-blue',\n"
|
|
||||||
)
|
|
||||||
lua_string_zones += " products = {\n"
|
|
||||||
for ground_group in self.game.pretense_ground_supply[cp_side][
|
|
||||||
cp_name_trimmed
|
|
||||||
]:
|
|
||||||
lua_string_zones += (
|
|
||||||
" presets.missions.supply.convoy:extend({ name='"
|
|
||||||
+ ground_group
|
|
||||||
+ "'}),\n"
|
|
||||||
)
|
|
||||||
for ground_group in self.game.pretense_ground_assault[cp_side][
|
|
||||||
cp_name_trimmed
|
|
||||||
]:
|
|
||||||
lua_string_zones += (
|
|
||||||
" presets.missions.attack.surface:extend({ name='"
|
|
||||||
+ ground_group
|
|
||||||
+ "'}),\n"
|
|
||||||
)
|
|
||||||
for mission_type in self.game.pretense_air[cp_side][cp_name_trimmed]:
|
|
||||||
if mission_type == FlightType.AIR_ASSAULT.name:
|
|
||||||
mission_name = "supply.helo"
|
|
||||||
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
|
||||||
mission_type
|
|
||||||
]:
|
|
||||||
lua_string_zones += (
|
|
||||||
f" presets.missions.{mission_name}:extend"
|
|
||||||
+ "({name='"
|
|
||||||
+ air_group
|
|
||||||
+ "'}),\n"
|
|
||||||
)
|
|
||||||
lua_string_zones += " }\n"
|
|
||||||
lua_string_zones += " }),\n"
|
|
||||||
lua_string_zones += " presets.upgrades.airdef.comCenter:extend({\n"
|
|
||||||
lua_string_zones += (
|
|
||||||
f" name = '{cp_name_trimmed}-mission-command-blue',\n"
|
|
||||||
)
|
|
||||||
lua_string_zones += " products = {\n"
|
|
||||||
lua_string_zones += (
|
|
||||||
" presets.defenses.blue.shorad:extend({ name='"
|
|
||||||
+ cp_name_trimmed
|
|
||||||
+ "-sam-blue' }),\n"
|
|
||||||
)
|
|
||||||
for mission_type in self.game.pretense_air[cp_side][cp_name_trimmed]:
|
|
||||||
if mission_type == FlightType.SEAD.name:
|
|
||||||
mission_name = "attack.sead"
|
|
||||||
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
|
||||||
mission_type
|
|
||||||
]:
|
|
||||||
lua_string_zones += (
|
|
||||||
f" presets.missions.{mission_name}:extend"
|
|
||||||
+ "({name='"
|
|
||||||
+ air_group
|
|
||||||
+ "', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),\n"
|
|
||||||
)
|
|
||||||
elif mission_type == FlightType.CAS.name:
|
|
||||||
mission_name = "attack.cas"
|
|
||||||
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
|
||||||
mission_type
|
|
||||||
]:
|
|
||||||
lua_string_zones += (
|
|
||||||
f" presets.missions.{mission_name}:extend"
|
|
||||||
+ "({name='"
|
|
||||||
+ air_group
|
|
||||||
+ "', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),\n"
|
|
||||||
)
|
|
||||||
elif mission_type == FlightType.BAI.name:
|
|
||||||
mission_name = "attack.bai"
|
|
||||||
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
|
||||||
mission_type
|
|
||||||
]:
|
|
||||||
lua_string_zones += (
|
|
||||||
f" presets.missions.{mission_name}:extend"
|
|
||||||
+ "({name='"
|
|
||||||
+ air_group
|
|
||||||
+ "', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),\n"
|
|
||||||
)
|
|
||||||
elif mission_type == FlightType.STRIKE.name:
|
|
||||||
mission_name = "attack.strike"
|
|
||||||
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
|
||||||
mission_type
|
|
||||||
]:
|
|
||||||
lua_string_zones += (
|
|
||||||
f" presets.missions.{mission_name}:extend"
|
|
||||||
+ "({name='"
|
|
||||||
+ air_group
|
|
||||||
+ "', altitude=20000, expend=AI.Task.WeaponExpend.ALL}),\n"
|
|
||||||
)
|
|
||||||
elif mission_type == FlightType.BARCAP.name:
|
|
||||||
mission_name = "patrol.aircraft"
|
|
||||||
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
|
||||||
mission_type
|
|
||||||
]:
|
|
||||||
lua_string_zones += (
|
|
||||||
f" presets.missions.{mission_name}:extend"
|
|
||||||
+ "({name='"
|
|
||||||
+ air_group
|
|
||||||
+ "', altitude=25000, range=25}),\n"
|
|
||||||
)
|
|
||||||
elif mission_type == FlightType.REFUELING.name:
|
|
||||||
mission_name = "support.tanker"
|
|
||||||
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
|
||||||
mission_type
|
|
||||||
]:
|
|
||||||
tanker_freq = 257.0
|
|
||||||
tanker_tacan = 37.0
|
|
||||||
for tanker in self.mission_data.tankers:
|
|
||||||
if tanker.group_name == air_group:
|
|
||||||
tanker_freq = tanker.freq.hertz / 1000000
|
|
||||||
tanker_tacan = tanker.tacan.number
|
|
||||||
if tanker.variant == "KC-135 Stratotanker":
|
|
||||||
tanker_variant = "Boom"
|
|
||||||
else:
|
|
||||||
tanker_variant = "Drogue"
|
|
||||||
lua_string_zones += (
|
|
||||||
f" presets.missions.{mission_name}:extend"
|
|
||||||
+ "({name='"
|
|
||||||
+ air_group
|
|
||||||
+ "', freq='"
|
|
||||||
+ str(tanker_freq)
|
|
||||||
+ "', tacan='"
|
|
||||||
+ str(tanker_tacan)
|
|
||||||
+ "', variant='"
|
|
||||||
+ tanker_variant
|
|
||||||
+ "'}),\n"
|
|
||||||
)
|
|
||||||
elif mission_type == FlightType.AEWC.name:
|
|
||||||
mission_name = "support.awacs"
|
|
||||||
for air_group in self.game.pretense_air[cp_side][cp_name_trimmed][
|
|
||||||
mission_type
|
|
||||||
]:
|
|
||||||
awacs_freq = 257.5
|
|
||||||
for awacs in self.mission_data.awacs:
|
|
||||||
if awacs.group_name == air_group:
|
|
||||||
awacs_freq = awacs.freq.hertz / 1000000
|
|
||||||
lua_string_zones += (
|
|
||||||
f" presets.missions.{mission_name}:extend"
|
|
||||||
+ "({name='"
|
|
||||||
+ air_group
|
|
||||||
+ "', freq="
|
|
||||||
+ str(awacs_freq)
|
|
||||||
+ "}),\n"
|
|
||||||
)
|
|
||||||
lua_string_zones += " }\n"
|
|
||||||
lua_string_zones += " })\n"
|
|
||||||
lua_string_zones += " }\n"
|
|
||||||
lua_string_zones += "})\n"
|
|
||||||
|
|
||||||
lua_string_connman = " cm = ConnectionManager:new()\n"
|
lua_string_connman = " cm = ConnectionManager:new()\n"
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user