Generate ship groups for carriers. Carriers can be destroyed. Faction need to have carrier available.

This commit is contained in:
Khopa
2019-10-26 22:59:59 +02:00
parent 2936df6a02
commit 76638b549f
20 changed files with 245 additions and 46 deletions

View 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)

View 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)

View 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()