From 2b6227f3b14431fee36cdf32a0fde911ae2beb6b Mon Sep 17 00:00:00 2001 From: walterroach Date: Fri, 20 Nov 2020 20:29:30 -0600 Subject: [PATCH] remove dead code --- game/event/frontlineattack.py | 2 +- game/operation/frontlineattack.py | 38 ---- gen/conflictgen.py | 288 ------------------------------ qt_ui/widgets/QTopPanel.py | 2 +- 4 files changed, 2 insertions(+), 328 deletions(-) delete mode 100644 game/operation/frontlineattack.py diff --git a/game/event/frontlineattack.py b/game/event/frontlineattack.py index 0046526d..e38c45f6 100644 --- a/game/event/frontlineattack.py +++ b/game/event/frontlineattack.py @@ -3,7 +3,7 @@ from typing import List, Type from dcs.task import CAP, CAS, Task from game import db -from game.operation.frontlineattack import FrontlineAttackOperation +# from game.operation.frontlineattack import FrontlineAttackOperation from .event import Event from ..debriefing import Debriefing diff --git a/game/operation/frontlineattack.py b/game/operation/frontlineattack.py deleted file mode 100644 index 4dc18dae..00000000 --- a/game/operation/frontlineattack.py +++ /dev/null @@ -1,38 +0,0 @@ -from dcs.terrain.terrain import Terrain - -from gen.conflictgen import Conflict -from .operation import Operation -from .. import db - -MAX_DISTANCE_BETWEEN_GROUPS = 12000 - - -class FrontlineAttackOperation(Operation): - interceptors = None # type: db.AssignedUnitsDict - escort = None # type: db.AssignedUnitsDict - strikegroup = None # type: db.AssignedUnitsDict - - attackers = None # type: db.ArmorDict - defenders = None # type: db.ArmorDict - - def prepare(self, terrain: Terrain, is_quick: bool): - super(FrontlineAttackOperation, self).prepare(terrain, is_quick) - if self.defender_name == self.game.player_name: - self.attackers_starting_position = None - self.defenders_starting_position = None - - conflict = Conflict.frontline_cas_conflict( - attacker_name=self.attacker_name, - defender_name=self.defender_name, - attacker=self.current_mission.country(self.attacker_country), - defender=self.current_mission.country(self.defender_country), - from_cp=self.from_cp, - to_cp=self.to_cp, - theater=self.game.theater - ) - - self.initialize(mission=self.current_mission, - conflict=conflict) - - def generate(self): - super(FrontlineAttackOperation, self).generate() diff --git a/gen/conflictgen.py b/gen/conflictgen.py index 6a5a8e07..ecce03e4 100644 --- a/gen/conflictgen.py +++ b/gen/conflictgen.py @@ -109,24 +109,6 @@ class Conflict: def to_size(self): return self.to_cp.size * GROUND_DISTANCE_FACTOR - def find_insertion_point(self, other_point: Point) -> Point: - if self.is_vector: - dx = self.position.x - self.tail.x - dy = self.position.y - self.tail.y - dr2 = float(dx ** 2 + dy ** 2) - - lerp = ((other_point.x - self.tail.x) * dx + (other_point.y - self.tail.y) * dy) / dr2 - if lerp < 0: - lerp = 0 - elif lerp > 1: - lerp = 1 - - x = lerp * dx + self.tail.x - y = lerp * dy + self.tail.y - return Point(x, y) - else: - return self.position - def find_ground_position(self, at: Point, heading: int, max_distance: int = 40000) -> Point: return Conflict._find_ground_position(at, max_distance, heading, self.theater) @@ -227,273 +209,3 @@ class Conflict: logging.error("Didn't find ground position ({})!".format(initial)) return initial - - @classmethod - def capture_conflict(cls, attacker_name: str, defender_name: str, attacker: Country, defender: Country, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - position = to_cp.position - attack_raw_heading = to_cp.position.heading_between_point(from_cp.position) - attack_heading = to_cp.find_radial(attack_raw_heading) - defense_heading = to_cp.find_radial(from_cp.position.heading_between_point(to_cp.position), ignored_radial=attack_heading) - - distance = GROUND_DISTANCE - attackers_location = position.point_from_heading(attack_heading, distance) - attackers_location = Conflict._find_ground_position(attackers_location, distance * 2, attack_heading, theater) - - defenders_location = position.point_from_heading(defense_heading, 0) - defenders_location = Conflict._find_ground_position(defenders_location, distance * 2, defense_heading, theater) - - return cls( - position=position, - theater=theater, - from_cp=from_cp, - to_cp=to_cp, - attackers_side=attacker_name, - defenders_side=defender_name, - attackers_country=attacker, - defenders_country=defender, - ground_attackers_location=attackers_location, - ground_defenders_location=defenders_location, - air_attackers_location=position.point_from_heading(attack_raw_heading, CAPTURE_AIR_ATTACKERS_DISTANCE), - air_defenders_location=position.point_from_heading(_opposite_heading(attack_raw_heading), CAPTURE_AIR_DEFENDERS_DISTANCE) - ) - - @classmethod - def strike_conflict(cls, attacker_name: str, defender_name: str, attacker: Country, defender: Country, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - position = to_cp.position - attack_raw_heading = to_cp.position.heading_between_point(from_cp.position) - attack_heading = to_cp.find_radial(attack_raw_heading) - defense_heading = to_cp.find_radial(from_cp.position.heading_between_point(to_cp.position), ignored_radial=attack_heading) - - distance = to_cp.size * GROUND_DISTANCE_FACTOR - attackers_location = position.point_from_heading(attack_heading, distance) - attackers_location = Conflict._find_ground_position( - attackers_location, int(distance * 2), - _heading_sum(attack_heading, 180), theater) - - defenders_location = position.point_from_heading(defense_heading, distance) - defenders_location = Conflict._find_ground_position( - defenders_location, int(distance * 2), - _heading_sum(defense_heading, 180), theater) - - return cls( - position=position, - theater=theater, - from_cp=from_cp, - to_cp=to_cp, - attackers_side=attacker_name, - defenders_side=defender_name, - attackers_country=attacker, - defenders_country=defender, - ground_attackers_location=attackers_location, - ground_defenders_location=defenders_location, - air_attackers_location=position.point_from_heading(attack_raw_heading, STRIKE_AIR_ATTACKERS_DISTANCE), - air_defenders_location=position.point_from_heading(_opposite_heading(attack_raw_heading), STRIKE_AIR_DEFENDERS_DISTANCE) - ) - - @classmethod - def intercept_position(cls, from_cp: ControlPoint, to_cp: ControlPoint) -> Point: - raw_distance = from_cp.position.distance_to_point(to_cp.position) * 1.5 - distance = max(min(raw_distance, INTERCEPT_MAX_DISTANCE), INTERCEPT_MIN_DISTANCE) - heading = _heading_sum(from_cp.position.heading_between_point(to_cp.position), random.choice([-1, 1]) * random.randint(60, 100)) - return from_cp.position.point_from_heading(heading, distance) - - @classmethod - def intercept_conflict(cls, attacker_name: str, defender_name: str, attacker: Country, defender: Country, position: Point, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - heading = from_cp.position.heading_between_point(position) - return cls( - position=position.point_from_heading(position.heading_between_point(to_cp.position), INTERCEPT_CONFLICT_DISTANCE), - theater=theater, - from_cp=from_cp, - to_cp=to_cp, - attackers_side=attacker_name, - defenders_side=defender_name, - attackers_country=attacker, - defenders_country=defender, - ground_attackers_location=None, - ground_defenders_location=None, - air_attackers_location=position.point_from_heading(random.randint(*INTERCEPT_ATTACKERS_HEADING) + heading, INTERCEPT_ATTACKERS_DISTANCE), - air_defenders_location=position - ) - - @classmethod - def ground_attack_conflict(cls, attacker_name: str, defender_name: str, attacker: Country, defender: Country, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - heading = random.choice(to_cp.radials) - initial_location = to_cp.position.random_point_within(*GROUND_ATTACK_DISTANCE) - position = Conflict._find_ground_position(initial_location, GROUND_INTERCEPT_SPREAD, _heading_sum(heading, 180), theater) - if not position: - heading = to_cp.find_radial(to_cp.position.heading_between_point(from_cp.position)) - position = to_cp.position.point_from_heading(heading, to_cp.size * GROUND_DISTANCE_FACTOR) - - return cls( - position=position, - theater=theater, - from_cp=from_cp, - to_cp=to_cp, - attackers_side=attacker_name, - defenders_side=defender_name, - attackers_country=attacker, - defenders_country=defender, - ground_attackers_location=position, - ground_defenders_location=None, - air_attackers_location=None, - air_defenders_location=position.point_from_heading(heading, AIR_DISTANCE), - ) - - @classmethod - def convoy_strike_conflict(cls, attacker_name: str, defender_name: str, attacker: Country, defender: Country, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - frontline_position, frontline_heading, frontline_length = Conflict.frontline_vector(from_cp, to_cp, theater) - if not frontline_position: - assert False - - heading = frontline_heading - starting_position = Conflict._find_ground_position(frontline_position.point_from_heading(heading, 7000), - GROUND_INTERCEPT_SPREAD, - _opposite_heading(heading), theater) - if not starting_position: - starting_position = frontline_position - destination_position = frontline_position - else: - destination_position = frontline_position - - return cls( - position=destination_position, - theater=theater, - from_cp=from_cp, - to_cp=to_cp, - attackers_side=attacker_name, - defenders_side=defender_name, - attackers_country=attacker, - defenders_country=defender, - ground_attackers_location=None, - ground_defenders_location=starting_position, - air_attackers_location=starting_position.point_from_heading(_opposite_heading(heading), AIR_DISTANCE), - air_defenders_location=starting_position.point_from_heading(heading, AIR_DISTANCE), - ) - - @classmethod - def frontline_cas_conflict(cls, attacker_name: str, defender_name: str, attacker: Country, defender: Country, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - assert cls.has_frontline_between(from_cp, to_cp) - position, heading, distance = cls.frontline_vector(from_cp, to_cp, theater) - - return cls( - position=position, - heading=heading, - distance=distance, - theater=theater, - from_cp=from_cp, - to_cp=to_cp, - attackers_side=attacker_name, - defenders_side=defender_name, - attackers_country=attacker, - defenders_country=defender, - ground_attackers_location=None, - ground_defenders_location=None, - air_attackers_location=position.point_from_heading(random.randint(*INTERCEPT_ATTACKERS_HEADING) + heading, AIR_DISTANCE), - air_defenders_location=position.point_from_heading(random.randint(*INTERCEPT_ATTACKERS_HEADING) + _opposite_heading(heading), AIR_DISTANCE), - ) - - @classmethod - def frontline_cap_conflict(cls, attacker_name: str, defender_name: str, attacker: Country, defender: Country, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - assert cls.has_frontline_between(from_cp, to_cp) - - position, heading, distance = cls.frontline_vector(from_cp, to_cp, theater) - attack_position = position.point_from_heading(heading, random.randint(0, int(distance))) - attackers_position = attack_position.point_from_heading(heading - 90, AIR_DISTANCE) - defenders_position = attack_position.point_from_heading(heading + 90, random.randint(*CAP_CAS_DISTANCE)) - - return cls( - position=position, - heading=heading, - distance=distance, - theater=theater, - from_cp=from_cp, - to_cp=to_cp, - attackers_side=attacker_name, - defenders_side=defender_name, - attackers_country=attacker, - defenders_country=defender, - air_attackers_location=attackers_position, - air_defenders_location=defenders_position, - ) - - @classmethod - def ground_base_attack(cls, attacker_name: str, defender_name: str, attacker: Country, defender: Country, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - position = to_cp.position - attack_heading = to_cp.find_radial(to_cp.position.heading_between_point(from_cp.position)) - defense_heading = to_cp.find_radial(from_cp.position.heading_between_point(to_cp.position), ignored_radial=attack_heading) - - distance = to_cp.size * GROUND_DISTANCE_FACTOR - defenders_location = position.point_from_heading(defense_heading, distance) - defenders_location = Conflict._find_ground_position( - defenders_location, int(distance * 2), - _heading_sum(defense_heading, 180), theater) - - return cls( - position=position, - theater=theater, - from_cp=from_cp, - to_cp=to_cp, - attackers_side=attacker_name, - defenders_side=defender_name, - attackers_country=attacker, - defenders_country=defender, - ground_attackers_location=None, - ground_defenders_location=defenders_location, - air_attackers_location=position.point_from_heading(attack_heading, AIR_DISTANCE), - air_defenders_location=position - ) - - @classmethod - def naval_intercept_position(cls, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - radial = random.choice(to_cp.sea_radials) - - initial_distance = min(int(from_cp.position.distance_to_point(to_cp.position) * NAVAL_INTERCEPT_DISTANCE_FACTOR), NAVAL_INTERCEPT_DISTANCE_MAX) - initial_position = to_cp.position.point_from_heading(radial, initial_distance) - for offset in range(0, initial_distance, NAVAL_INTERCEPT_STEP): - position = initial_position.point_from_heading(_opposite_heading(radial), offset) - - if not theater.is_on_land(position): - break - return position - - @classmethod - def naval_intercept_conflict(cls, attacker_name: str, defender_name: str, attacker: Country, defender: Country, position: Point, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - attacker_heading = from_cp.position.heading_between_point(to_cp.position) - return cls( - position=position, - theater=theater, - from_cp=from_cp, - to_cp=to_cp, - attackers_side=attacker_name, - defenders_side=defender_name, - attackers_country=attacker, - defenders_country=defender, - ground_attackers_location=None, - ground_defenders_location=position, - air_attackers_location=position.point_from_heading(attacker_heading, AIR_DISTANCE), - air_defenders_location=position.point_from_heading(_opposite_heading(attacker_heading), AIR_DISTANCE) - ) - - @classmethod - def transport_conflict(cls, attacker_name: str, defender_name: str, attacker: Country, defender: Country, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - frontline_position, heading = cls.frontline_position(from_cp, to_cp, theater) - initial_dest = frontline_position.point_from_heading(heading, TRANSPORT_FRONTLINE_DIST) - dest = cls._find_ground_position(initial_dest, from_cp.position.distance_to_point(to_cp.position) / 3, heading, theater) - if not dest: - radial = to_cp.find_radial(to_cp.position.heading_between_point(from_cp.position)) - dest = to_cp.position.point_from_heading(radial, to_cp.size * GROUND_DISTANCE_FACTOR) - - return cls( - position=dest, - theater=theater, - from_cp=from_cp, - to_cp=to_cp, - attackers_side=attacker_name, - defenders_side=defender_name, - attackers_country=attacker, - defenders_country=defender, - ground_attackers_location=from_cp.position, - ground_defenders_location=frontline_position, - air_attackers_location=from_cp.position.point_from_heading(0, 100), - air_defenders_location=frontline_position - ) \ No newline at end of file diff --git a/qt_ui/widgets/QTopPanel.py b/qt_ui/widgets/QTopPanel.py index 4f7e74bc..6202cb48 100644 --- a/qt_ui/widgets/QTopPanel.py +++ b/qt_ui/widgets/QTopPanel.py @@ -229,7 +229,7 @@ class QTopPanel(QFrame): game_event.is_awacs_enabled = True game_event.ca_slots = 1 game_event.departure_cp = self.game.theater.controlpoints[0] - game_event.player_attacking({CAS: {}, CAP: {}}) + # game_event.player_attacking({CAS: {}, CAP: {}}) game_event.depart_from = self.game.theater.controlpoints[0] self.game.initiate_event(game_event)