diff --git a/gen/fleet/carrier_group.py b/gen/fleet/carrier_group.py index bc7a712c..7d79dbca 100644 --- a/gen/fleet/carrier_group.py +++ b/gen/fleet/carrier_group.py @@ -1,14 +1,10 @@ import random -from gen.sam.group_generator import GroupGenerator +from gen.sam.group_generator import ShipGroupGenerator -class CarrierGroupGenerator(GroupGenerator): - - def __init__(self, game, ground_object, faction): - super(CarrierGroupGenerator, self).__init__(game, ground_object) - self.faction = faction - +class CarrierGroupGenerator(ShipGroupGenerator): + def generate(self): # Add carrier diff --git a/gen/fleet/cn_dd_group.py b/gen/fleet/cn_dd_group.py index efef82d2..162137c9 100644 --- a/gen/fleet/cn_dd_group.py +++ b/gen/fleet/cn_dd_group.py @@ -1,15 +1,11 @@ import random from gen.fleet.dd_group import DDGroupGenerator -from gen.sam.group_generator import GroupGenerator +from gen.sam.group_generator import ShipGroupGenerator from dcs.ships import * -class ChineseNavyGroupGenerator(GroupGenerator): - - def __init__(self, game, ground_object, faction): - super(ChineseNavyGroupGenerator, self).__init__(game, ground_object) - self.faction = faction +class ChineseNavyGroupGenerator(ShipGroupGenerator): def generate(self): diff --git a/gen/fleet/dd_group.py b/gen/fleet/dd_group.py index 3ba5517e..14d58951 100644 --- a/gen/fleet/dd_group.py +++ b/gen/fleet/dd_group.py @@ -1,40 +1,19 @@ import random -from gen.sam.group_generator import GroupGenerator -from dcs import unitgroup -from dcs.point import PointAction -from dcs.unit import Ship +from gen.sam.group_generator import ShipGroupGenerator from dcs.ships import * -class DDGroupGenerator(GroupGenerator): +class DDGroupGenerator(ShipGroupGenerator): def __init__(self, game, ground_object, faction, ddtype): - self.game = game - self.go = ground_object - self.position = ground_object.position - self.heading = random.randint(0, 359) - self.faction = faction - self.vg = unitgroup.ShipGroup(self.game.next_group_id(), self.groupNamePrefix + self.go.group_identifier) - wp = self.vg.add_waypoint(self.position, 0) - wp.ETA_locked = True + super(DDGroupGenerator, self).__init__(game, ground_object, faction, ddtype) self.ddtype = ddtype def generate(self): self.add_unit(self.ddtype, "DD1", self.position.x + 500, self.position.y + 900, self.heading) self.add_unit(self.ddtype, "DD2", self.position.x + 500, self.position.y - 900, self.heading) self.get_generated_group().points[0].speed = 20 - - def add_unit(self, unit_type, name, pos_x, pos_y, heading): - nn = "cgroup|" + str(self.go.cp_id) + '|' + str(self.go.group_id) + '|' + str(self.go.group_identifier) + "|" + name - - unit = Ship(self.game.next_unit_id(), - nn, unit_type) - unit.position.x = pos_x - unit.position.y = pos_y - unit.heading = heading - self.vg.add_unit(unit) - return unit diff --git a/gen/fleet/lha_group.py b/gen/fleet/lha_group.py index 6fbf23ac..49ab31e6 100644 --- a/gen/fleet/lha_group.py +++ b/gen/fleet/lha_group.py @@ -1,13 +1,9 @@ import random -from gen.sam.group_generator import GroupGenerator +from gen.sam.group_generator import ShipGroupGenerator -class LHAGroupGenerator(GroupGenerator): - - def __init__(self, game, ground_object, faction): - super(LHAGroupGenerator, self).__init__(game, ground_object) - self.faction = faction +class LHAGroupGenerator(ShipGroupGenerator): def generate(self): diff --git a/gen/fleet/ru_dd_group.py b/gen/fleet/ru_dd_group.py index dc048029..ed9d6ad4 100644 --- a/gen/fleet/ru_dd_group.py +++ b/gen/fleet/ru_dd_group.py @@ -1,15 +1,11 @@ import random from gen.fleet.dd_group import DDGroupGenerator -from gen.sam.group_generator import GroupGenerator +from gen.sam.group_generator import ShipGroupGenerator from dcs.ships import * -class RussianNavyGroupGenerator(GroupGenerator): - - def __init__(self, game, ground_object, faction): - super(RussianNavyGroupGenerator, self).__init__(game, ground_object) - self.faction = faction +class RussianNavyGroupGenerator(ShipGroupGenerator): def generate(self): diff --git a/gen/fleet/schnellboot.py b/gen/fleet/schnellboot.py index 20459ac7..20b128ae 100644 --- a/gen/fleet/schnellboot.py +++ b/gen/fleet/schnellboot.py @@ -2,14 +2,10 @@ import random from dcs.ships import Schnellboot_type_S130 -from gen.sam.group_generator import GroupGenerator +from gen.sam.group_generator import ShipGroupGenerator -class SchnellbootGroupGenerator(GroupGenerator): - - def __init__(self, game, ground_object, faction): - super(SchnellbootGroupGenerator, self).__init__(game, ground_object) - self.faction = faction +class SchnellbootGroupGenerator(ShipGroupGenerator): def generate(self): diff --git a/gen/fleet/ship_group_generator.py b/gen/fleet/ship_group_generator.py index b60746b7..b3f8855c 100644 --- a/gen/fleet/ship_group_generator.py +++ b/gen/fleet/ship_group_generator.py @@ -11,6 +11,9 @@ from gen.fleet.ru_dd_group import RussianNavyGroupGenerator, GrishaGroupGenerato from gen.fleet.schnellboot import SchnellbootGroupGenerator from gen.fleet.uboat import UBoatGroupGenerator from gen.fleet.ww2lst import WW2LSTGroupGenerator +# from dcs import unitgroup +# from dcs.unit import Ship + SHIP_MAP = { "SchnellbootGroupGenerator": SchnellbootGroupGenerator, @@ -68,4 +71,27 @@ def generate_lha_group(faction:str, game, ground_object): """ generator = LHAGroupGenerator(game, ground_object, db.FACTIONS[faction]) generator.generate() - return generator.get_generated_group() \ No newline at end of file + return generator.get_generated_group() + +# class ShipGroupGenerator(GroupGenerator): +# """Abstract class for other ship generator classes""" +# def __init__(self, game, ground_object, faction): +# self.game = game +# self.go = ground_object +# self.position = ground_object.position +# self.heading = random.randint(0, 359) +# self.faction = faction +# self.vg = unitgroup.ShipGroup(self.game.next_group_id(), self.groupNamePrefix + self.go.group_identifier) +# wp = self.vg.add_waypoint(self.position, 0) +# wp.ETA_locked = True + +# def add_unit(self, unit_type, name, pos_x, pos_y, heading): +# nn = "cgroup|" + str(self.go.cp_id) + '|' + str(self.go.group_id) + '|' + str(self.go.group_identifier) + "|" + name + +# unit = Ship(self.game.next_unit_id(), +# nn, unit_type) +# unit.position.x = pos_x +# unit.position.y = pos_y +# unit.heading = heading +# self.vg.add_unit(unit) +# return unit diff --git a/gen/fleet/uboat.py b/gen/fleet/uboat.py index c93c7814..8d2e9cc0 100644 --- a/gen/fleet/uboat.py +++ b/gen/fleet/uboat.py @@ -2,14 +2,10 @@ import random from dcs.ships import Uboat_VIIC_U_flak -from gen.sam.group_generator import GroupGenerator +from gen.sam.group_generator import ShipGroupGenerator -class UBoatGroupGenerator(GroupGenerator): - - def __init__(self, game, ground_object, faction): - super(UBoatGroupGenerator, self).__init__(game, ground_object) - self.faction = faction +class UBoatGroupGenerator(ShipGroupGenerator): def generate(self): diff --git a/gen/fleet/ww2lst.py b/gen/fleet/ww2lst.py index 07f320d0..e0512009 100644 --- a/gen/fleet/ww2lst.py +++ b/gen/fleet/ww2lst.py @@ -2,14 +2,10 @@ import random from dcs.ships import LS_Samuel_Chase, LST_Mk_II -from gen.sam.group_generator import GroupGenerator +from gen.sam.group_generator import ShipGroupGenerator -class WW2LSTGroupGenerator(GroupGenerator): - - def __init__(self, game, ground_object, faction): - super(WW2LSTGroupGenerator, self).__init__(game, ground_object) - self.faction = faction +class WW2LSTGroupGenerator(ShipGroupGenerator): def generate(self): diff --git a/gen/sam/group_generator.py b/gen/sam/group_generator.py index 9f150ef4..c3e0912f 100644 --- a/gen/sam/group_generator.py +++ b/gen/sam/group_generator.py @@ -3,7 +3,7 @@ import random from dcs import unitgroup from dcs.point import PointAction -from dcs.unit import Vehicle +from dcs.unit import Vehicle, Ship class GroupGenerator(): @@ -75,3 +75,25 @@ class GroupGenerator(): current_offset += outer_offset return positions +class ShipGroupGenerator(GroupGenerator): + """Abstract class for other ship generator classes""" + def __init__(self, game, ground_object, faction): + self.game = game + self.go = ground_object + self.position = ground_object.position + self.heading = random.randint(0, 359) + self.faction = faction + self.vg = unitgroup.ShipGroup(self.game.next_group_id(), self.groupNamePrefix + self.go.group_identifier) + wp = self.vg.add_waypoint(self.position, 0) + wp.ETA_locked = True + + def add_unit(self, unit_type, name, pos_x, pos_y, heading): + nn = "cgroup|" + str(self.go.cp_id) + '|' + str(self.go.group_id) + '|' + str(self.go.group_identifier) + "|" + name + + unit = Ship(self.game.next_unit_id(), + nn, unit_type) + unit.position.x = pos_x + unit.position.y = pos_y + unit.heading = heading + self.vg.add_unit(unit) + return unit