mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Generate ship groups for carriers. Carriers can be destroyed. Faction need to have carrier available.
This commit is contained in:
25
gen/fleet/carrier_group.py
Normal file
25
gen/fleet/carrier_group.py
Normal file
@@ -0,0 +1,25 @@
|
||||
import random
|
||||
|
||||
from gen.sam.group_generator import GroupGenerator
|
||||
|
||||
|
||||
class CarrierGroupGenerator(GroupGenerator):
|
||||
|
||||
def __init__(self, game, ground_object, faction):
|
||||
super(CarrierGroupGenerator, self).__init__(game, ground_object)
|
||||
self.faction = faction
|
||||
|
||||
def generate(self):
|
||||
|
||||
# Add carrier
|
||||
if self.faction["aircraft_carrier"]:
|
||||
carrier_type = random.choice(self.faction["aircraft_carrier"])
|
||||
self.add_unit(carrier_type, "Carrier", self.position.x, self.position.y, self.heading)
|
||||
|
||||
# Add destroyers escort
|
||||
dd_type = random.choice(self.faction["destroyer"])
|
||||
self.add_unit(dd_type, "DD1", self.position.x + 250, self.position.y + 450, self.heading)
|
||||
self.add_unit(dd_type, "DD2", self.position.x + 250, self.position.y - 450, self.heading)
|
||||
|
||||
self.add_unit(dd_type, "DD3", self.position.x + 450, self.position.y + 850, self.heading)
|
||||
self.add_unit(dd_type, "DD4", self.position.x + 450, self.position.y - 850, self.heading)
|
||||
25
gen/fleet/heli_carrier_group.py
Normal file
25
gen/fleet/heli_carrier_group.py
Normal file
@@ -0,0 +1,25 @@
|
||||
import random
|
||||
|
||||
from gen.sam.group_generator import GroupGenerator
|
||||
|
||||
|
||||
class HelicopterCarrierGroupGenerator(GroupGenerator):
|
||||
|
||||
def __init__(self, game, ground_object, faction):
|
||||
super(HelicopterCarrierGroupGenerator, self).__init__(game, ground_object)
|
||||
self.faction = faction
|
||||
|
||||
def generate(self):
|
||||
|
||||
# Add carrier
|
||||
if self.faction["aircraft_carrier"]:
|
||||
carrier_type = random.choice(self.faction["helicopter_carrier"])
|
||||
self.add_unit(carrier_type, "Carrier", self.position.x, self.position.y, self.heading)
|
||||
|
||||
# Add destroyers escort
|
||||
dd_type = random.choice(self.faction["destroyer"])
|
||||
self.add_unit(dd_type, "DD1", self.position.x + 50, self.position.y + 150, self.heading)
|
||||
self.add_unit(dd_type, "DD2", self.position.x + 50, self.position.y - 150, self.heading)
|
||||
|
||||
self.add_unit(dd_type, "DD3", self.position.x + 150, self.position.y + 250, self.heading)
|
||||
self.add_unit(dd_type, "DD4", self.position.x + 150, self.position.y - 250, self.heading)
|
||||
20
gen/fleet/ship_group_generator.py
Normal file
20
gen/fleet/ship_group_generator.py
Normal file
@@ -0,0 +1,20 @@
|
||||
import random
|
||||
|
||||
from dcs.vehicles import Armor
|
||||
|
||||
from game import db
|
||||
from gen.defenses.armored_group_generator import ArmoredGroupGenerator
|
||||
from gen.fleet.carrier_group import CarrierGroupGenerator
|
||||
|
||||
|
||||
def generate_carrier_group(faction:str, game, ground_object):
|
||||
"""
|
||||
This generate a ship group
|
||||
:param parentCp: The parent control point
|
||||
:param ground_object: The ground object which will own the ship group
|
||||
:param country: Owner country
|
||||
:return: Nothing, but put the group reference inside the ground object
|
||||
"""
|
||||
generator = CarrierGroupGenerator(game, ground_object, db.FACTIONS[faction])
|
||||
generator.generate()
|
||||
return generator.get_generated_group()
|
||||
Reference in New Issue
Block a user