fixed incompatible missions being available from carriers

This commit is contained in:
Vasyl Horbachenko
2018-11-06 02:59:24 +02:00
parent e1d50f1f27
commit 7842c69ebb
13 changed files with 69 additions and 9 deletions

View File

@@ -28,6 +28,9 @@ class ConvoyStrikeOperation(Operation):
conflict=conflict)
def generate(self):
if self.is_player_attack:
self.prepare_carriers(db.unitdict_from(self.strikegroup))
planes_flights = {k: v for k, v in self.strikegroup.items() if k in plane_map.values()}
self.airgen.generate_cas_strikegroup(*assigned_units_split(planes_flights), at=self.attackers_starting_position)

View File

@@ -37,6 +37,9 @@ class FrontlineAttackOperation(Operation):
conflict=conflict)
def generate(self):
if self.is_player_attack:
self.prepare_carriers(db.unitdict_from(self.strikegroup))
self.armorgen.generate_vec(self.attackers, self.target)
planes_flights = {k: v for k, v in self.strikegroup.items() if k in plane_map.values()}

View File

@@ -43,6 +43,9 @@ class FrontlinePatrolOperation(Operation):
conflict=conflict)
def generate(self):
if self.is_player_attack:
self.prepare_carriers(db.unitdict_from(self.interceptors))
self.airgen.generate_defenders_cas(*assigned_units_split(self.cas), at=self.defenders_starting_position)
self.airgen.generate_defenders_escort(*assigned_units_split(self.escort), at=self.defenders_starting_position)
self.airgen.generate_migcap(*assigned_units_split(self.interceptors), at=self.attackers_starting_position)

View File

@@ -43,7 +43,8 @@ class InterceptOperation(Operation):
conflict=conflict)
def generate(self):
self.prepare_carriers(db.unitdict_from(self.interceptors))
if self.is_player_attack:
self.prepare_carriers(db.unitdict_from(self.interceptors))
self.airgen.generate_transport(self.transport, self.to_cp.at)
self.airgen.generate_defenders_escort(*assigned_units_split(self.escort), at=self.defenders_starting_position)

View File

@@ -37,7 +37,8 @@ class NavalInterceptionOperation(Operation):
self.initialize(self.current_mission, conflict)
def generate(self):
self.prepare_carriers(db.unitdict_from(self.strikegroup))
if self.is_player_attack:
self.prepare_carriers(db.unitdict_from(self.strikegroup))
target_groups = self.shipgen.generate_cargo(units=self.targets)

View File

@@ -55,6 +55,10 @@ class Operation:
def is_successfull(self, debriefing: Debriefing) -> bool:
return True
@property
def is_player_attack(self) -> bool:
return self.from_cp.captured
def initialize(self, mission: Mission, conflict: Conflict):
self.current_mission = mission
self.conflict = conflict
@@ -104,7 +108,10 @@ class Operation:
at=global_cp.at)
if global_cp == self.departure_cp and not self.is_quick:
self.attackers_starting_position = ship
if self.to_cp.captured:
self.attackers_starting_position = ship
else:
self.defenders_starting_position = ship
def generate(self):
# air support