Flight Planner first version (just print planned flight in log but does not generate them yet)

This commit is contained in:
Khopa
2019-10-15 23:06:21 +02:00
parent fa99df3ce7
commit b7ee98dcd6
7 changed files with 472 additions and 20 deletions

View File

@@ -8,6 +8,7 @@ from dcs.vehicles import *
from game.game_stats import GameStats
from gen.conflictgen import Conflict
from gen.flights.ai_flight_planner import FlightPlanner
from userdata.debriefing import Debriefing
from theater import *
@@ -111,6 +112,7 @@ class Game:
self.date = datetime(start_date.year, start_date.month, start_date.day)
self.game_stats = GameStats()
self.game_stats.update(self)
self.planners = {}
def _roll(self, prob, mult):
if self.settings.version == "dev":
@@ -310,6 +312,15 @@ class Game:
# Update statistics
self.game_stats.update(self)
# Plan flights for next turn
self.planners = {}
for cp in self.theater.controlpoints:
planner = FlightPlanner(cp, self)
planner.plan_flights()
self.planners[cp.id] = planner
print(planner)
@property
def current_turn_daytime(self):
return ["dawn", "day", "dusk", "night"][self.turn % 4]

View File

@@ -135,10 +135,9 @@ class Operation:
# Generate ground object first
self.groundobjectgen.generate()
# air support
# Air Support (Tanker & Awacs)
self.airsupportgen.generate(self.is_awacs_enabled)
# Generate Activity on the map
for cp in self.game.theater.controlpoints:
side = cp.captured
@@ -157,20 +156,15 @@ class Operation:
self.airgen.generate_dead_sead(cp, country)
for i, tanker_type in enumerate(self.airsupportgen.generated_tankers):
self.briefinggen.append_frequency("Tanker {} ({})".format(TANKER_CALLSIGNS[i], tanker_type), "{}X/{} MHz AM".format(97+i, 130+i))
if self.is_awacs_enabled:
self.briefinggen.append_frequency("AWACS", "133 MHz AM")
# combined arms
#Setup combined arms parameters
self.current_mission.groundControl.pilot_can_control_vehicles = self.ca_slots > 0
if self.game.player_country in [country.name for country in self.current_mission.coalition["blue"].countries.values()]:
self.current_mission.groundControl.blue_tactical_commander = self.ca_slots
else:
self.current_mission.groundControl.red_tactical_commander = self.ca_slots
#self.extra_aagen.generate()
# triggers
if self.game.is_player_attack(self.conflict.attackers_country):
@@ -192,18 +186,10 @@ class Operation:
# options
self.forcedoptionsgen.generate()
# main frequencies
self.briefinggen.append_frequency("Flight", "251 MHz AM")
if self.departure_cp.is_global or self.conflict.to_cp.is_global:
self.briefinggen.append_frequency("Carrier", "20X/ICLS CHAN1")
# briefing
self.briefinggen.generate()
# visuals
# Generate Visuals Smoke Effects
self.visualgen.generate()
# Scripts
# Inject Lua Scripts
load_mist = TriggerStart(comment="Load Mist Lua Framework")
with open(os.path.abspath("./resources/scripts/mist_4_3_74.lua")) as f:
load_mist.add_action(DoScript(String(f.read())))
@@ -219,5 +205,19 @@ class Operation:
load_dcs_libe.add_action(DoScript(String(script)))
self.current_mission.triggerrules.triggers.append(load_dcs_libe)
# Briefing Generation
for i, tanker_type in enumerate(self.airsupportgen.generated_tankers):
self.briefinggen.append_frequency("Tanker {} ({})".format(TANKER_CALLSIGNS[i], tanker_type), "{}X/{} MHz AM".format(97+i, 130+i))
if self.is_awacs_enabled:
self.briefinggen.append_frequency("AWACS", "133 MHz AM")
self.briefinggen.append_frequency("Flight", "251 MHz AM")
if self.departure_cp.is_global or self.conflict.to_cp.is_global:
self.briefinggen.append_frequency("Carrier", "20X/ICLS CHAN1")
# Generate the briefing
self.briefinggen.generate()