From bb1a066ff795c979810327275447010a94b5041c Mon Sep 17 00:00:00 2001
From: SnappyComebacks <74509817+SnappyComebacks@users.noreply.github.com>
Date: Fri, 14 May 2021 18:18:03 -0600
Subject: [PATCH] Let map objects be Strike targets.
This PR allows campaign creators to incorporate map objects (referred to as Scenery in the code) into their Liberation campaign.
Map objects are defined using white trigger zones created by right clicking on scenery and clicking `assign as...`. Objective groups are defined by creating a blue TriggerZone surrounding the centers of the white trigger zones. The type of objective is determined by the campaign creator, assigning the value of the first property of the blue TriggerZone with the objective type.
Map objects maintain their visually dead state by assigning a `Mission Start` `Scenery Object Dead` trigger to the trigger zone. It is important for the Liberation generated TriggerZone to be as small as possible so that no other scenery is marked dead by DCS.
TriggerZones are hidden during gameplay (DCS behavior. I don't know if it's possible to turn that off.) TriggerZones are visible in the mission editor and mission planner however. If a player is using an older plane, it is important for them to remember where the target is.
In the mission planner, the trigger zones' will be blue or red depending on which faction the map objects belong to.
Inherent Resolve campaign has been modified to integrate scenery objects.
### **Limitations:**
- Objective definitions (Any Blue TriggerZones) in campaign definition cannot overlap.
- Map object deaths in `state.json` is tracking integers. You won't know what died until debriefing.
- No images for the various buildings. In theory it can be done, but an unreasonable amount of work.
- Every blue trigger zone must have a unique name. (If you let DCS auto increment the names this is not a concern.
- No output to screen when scenery object is dead. You can see the building drawn as dead in the F10 map though.
### **Pictures:**
An objective:

How the objective looks once in the mission planner/editor. This objective belongs to the enemy faction:

---
game/debriefing.py | 5 +-
game/scenery_group.py | 89 ++++++++++++++++++++++
game/theater/conflicttheater.py | 12 +++
game/theater/controlpoint.py | 4 +
game/theater/start_generator.py | 37 +++++++++
game/theater/theatergroundobject.py | 37 +++++++++
game/unitmap.py | 12 ++-
game/version.py | 11 ++-
gen/groundobjectsgen.py | 61 ++++++++++++++-
resources/campaigns/inherent_resolve.json | 2 +-
resources/campaigns/inherent_resolve.miz | Bin 51309 -> 57464 bytes
11 files changed, 265 insertions(+), 5 deletions(-)
create mode 100644 game/scenery_group.py
diff --git a/game/debriefing.py b/game/debriefing.py
index fcfbca9f..ce473ef4 100644
--- a/game/debriefing.py
+++ b/game/debriefing.py
@@ -117,7 +117,10 @@ class StateData:
killed_aircraft=data["killed_aircrafts"],
# Airfields emit a new "dead" event every time a bomb is dropped on
# them when they've already dead. Dedup.
- killed_ground_units=list(set(data["killed_ground_units"])),
+ #
+ # Also normalize dead map objects (which are ints) to strings. The unit map
+ # only stores strings.
+ killed_ground_units=list({str(u) for u in data["killed_ground_units"]}),
destroyed_statics=data["destroyed_objects_positions"],
base_capture_events=data["base_capture_events"],
)
diff --git a/game/scenery_group.py b/game/scenery_group.py
new file mode 100644
index 00000000..0015ab8f
--- /dev/null
+++ b/game/scenery_group.py
@@ -0,0 +1,89 @@
+from __future__ import annotations
+from game.theater.theatergroundobject import NAME_BY_CATEGORY
+from dcs.triggers import TriggerZone
+
+from typing import Iterable, List
+
+
+class SceneryGroupError(RuntimeError):
+ """Error for when there are insufficient conditions to create a SceneryGroup."""
+
+ pass
+
+
+class SceneryGroup:
+ """Store information about a scenery objective."""
+
+ def __init__(
+ self, zone_def: TriggerZone, zones: Iterable[TriggerZone], category: str
+ ) -> None:
+
+ self.zone_def = zone_def
+ self.zones = zones
+ self.position = zone_def.position
+ self.category = category
+
+ @staticmethod
+ def from_trigger_zones(trigger_zones: Iterable[TriggerZone]) -> List[SceneryGroup]:
+ """Define scenery objectives based on their encompassing blue/red circle."""
+ zone_definitions = []
+ white_zones = []
+
+ scenery_groups = []
+
+ # Aggregate trigger zones into different groups based on color.
+ for zone in trigger_zones:
+ if SceneryGroup.is_blue(zone):
+ zone_definitions.append(zone)
+ if SceneryGroup.is_white(zone):
+ white_zones.append(zone)
+
+ # For each objective definition.
+ for zone_def in zone_definitions:
+
+ zone_def_radius = zone_def.radius
+ zone_def_position = zone_def.position
+ zone_def_name = zone_def.name
+
+ if len(zone_def.properties) == 0:
+ raise SceneryGroupError(
+ "Undefined SceneryGroup category in TriggerZone: " + zone_def_name
+ )
+
+ # Arbitrary campaign design requirement: First property must define the category.
+ zone_def_category = zone_def.properties[1].get("value").lower()
+
+ valid_white_zones = []
+
+ for zone in list(white_zones):
+ if zone.position.distance_to_point(zone_def_position) < zone_def_radius:
+ valid_white_zones.append(zone)
+ white_zones.remove(zone)
+
+ if len(valid_white_zones) > 0 and zone_def_category in NAME_BY_CATEGORY:
+ scenery_groups.append(
+ SceneryGroup(zone_def, valid_white_zones, zone_def_category)
+ )
+ elif len(valid_white_zones) == 0:
+ raise SceneryGroupError(
+ "No white triggerzones found in: " + zone_def_name
+ )
+ elif zone_def_category not in NAME_BY_CATEGORY:
+ raise SceneryGroupError(
+ "Incorrect TriggerZone category definition for: "
+ + zone_def_name
+ + " in campaign definition. TriggerZone category: "
+ + zone_def_category
+ )
+
+ return scenery_groups
+
+ @staticmethod
+ def is_blue(zone: TriggerZone) -> bool:
+ # Blue in RGB is [0 Red], [0 Green], [1 Blue]. Ignore the fourth position: Transparency.
+ return zone.color[1] == 0 and zone.color[2] == 0 and zone.color[3] == 1
+
+ @staticmethod
+ def is_white(zone: TriggerZone) -> bool:
+ # White in RGB is [1 Red], [1 Green], [1 Blue]. Ignore the fourth position: Transparency.
+ return zone.color[1] == 1 and zone.color[2] == 1 and zone.color[3] == 1
diff --git a/game/theater/conflicttheater.py b/game/theater/conflicttheater.py
index 8a1257ee..f9c928ca 100644
--- a/game/theater/conflicttheater.py
+++ b/game/theater/conflicttheater.py
@@ -40,6 +40,10 @@ from dcs.unitgroup import (
VehicleGroup,
)
from dcs.vehicles import AirDefence, Armor, MissilesSS, Unarmed
+from dcs.triggers import Triggers
+from dcs.triggers import TriggerZone
+
+from ..scenery_group import SceneryGroup
from pyproj import CRS, Transformer
from shapely import geometry, ops
@@ -258,6 +262,10 @@ class MizCampaignLoader:
if group.units[0].type in self.FACTORY_UNIT_TYPE:
yield group
+ @property
+ def scenery(self) -> List[SceneryGroup]:
+ return SceneryGroup.from_trigger_zones(self.mission.triggers._zones)
+
@cached_property
def control_points(self) -> Dict[int, ControlPoint]:
control_points = {}
@@ -445,6 +453,10 @@ class MizCampaignLoader:
PointWithHeading.from_point(group.position, group.units[0].heading)
)
+ for group in self.scenery:
+ closest, distance = self.objective_info(group)
+ closest.preset_locations.scenery.append(group)
+
def populate_theater(self) -> None:
for control_point in self.control_points.values():
self.theater.add_controlpoint(control_point)
diff --git a/game/theater/controlpoint.py b/game/theater/controlpoint.py
index f7714b72..bd6f45f6 100644
--- a/game/theater/controlpoint.py
+++ b/game/theater/controlpoint.py
@@ -1,4 +1,5 @@
from __future__ import annotations
+from game.scenery_group import SceneryGroup
import heapq
import itertools
@@ -114,6 +115,9 @@ class PresetLocations:
#: Locations of EWRs which should always be spawned.
required_ewrs: List[PointWithHeading] = field(default_factory=list)
+ #: Locations of map scenery to create zones for.
+ scenery: List[SceneryGroup] = field(default_factory=list)
+
#: Locations of factories for producing ground units. These will always be spawned.
factories: List[PointWithHeading] = field(default_factory=list)
diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py
index 0cb11d08..7b68a4ea 100644
--- a/game/theater/start_generator.py
+++ b/game/theater/start_generator.py
@@ -1,4 +1,5 @@
from __future__ import annotations
+from game.scenery_group import SceneryGroup
import logging
import pickle
@@ -23,6 +24,7 @@ from game.theater.theatergroundobject import (
MissileSiteGroundObject,
SamGroundObject,
ShipGroundObject,
+ SceneryGroundObject,
VehicleGroupGroundObject,
CoastalSiteGroundObject,
)
@@ -463,6 +465,7 @@ class AirbaseGroundObjectGenerator(ControlPointGroundObjectGenerator):
"""Generate ground objects and AA sites for the control point."""
skip_sams = self.generate_required_aa()
skip_ewrs = self.generate_required_ewr()
+ self.generate_scenery_sites()
self.generate_factories()
if self.control_point.is_global:
@@ -651,6 +654,40 @@ class AirbaseGroundObjectGenerator(ControlPointGroundObjectGenerator):
g.groups = [group]
self.control_point.connected_objectives.append(g)
+ def generate_scenery_sites(self) -> None:
+ presets = self.control_point.preset_locations
+ for scenery_group in presets.scenery:
+ self.generate_tgo_for_scenery(scenery_group)
+
+ def generate_tgo_for_scenery(self, scenery: SceneryGroup) -> None:
+
+ obj_name = namegen.random_objective_name()
+ category = scenery.category
+ group_id = self.game.next_group_id()
+ object_id = 0
+
+ # Each nested trigger zone is a target/building/unit for an objective.
+ for zone in scenery.zones:
+
+ object_id += 1
+ local_position = zone.position
+ local_dcs_identifier = zone.name
+
+ g = SceneryGroundObject(
+ obj_name,
+ category,
+ group_id,
+ object_id,
+ local_position,
+ self.control_point,
+ local_dcs_identifier,
+ zone,
+ )
+
+ self.control_point.connected_objectives.append(g)
+
+ return
+
def generate_missile_sites(self) -> None:
for i in range(self.faction.missiles_group_count):
self.generate_missile_site()
diff --git a/game/theater/theatergroundobject.py b/game/theater/theatergroundobject.py
index b084b614..2922089c 100644
--- a/game/theater/theatergroundobject.py
+++ b/game/theater/theatergroundobject.py
@@ -7,6 +7,7 @@ from typing import Iterator, List, TYPE_CHECKING
from dcs.mapping import Point
from dcs.unit import Unit
from dcs.unitgroup import Group
+from dcs.triggers import TriggerZone, Triggers
from .. import db
from ..data.radar_db import UNITS_WITH_RADAR
@@ -281,6 +282,42 @@ class BuildingGroundObject(TheaterGroundObject):
self._dead = True
+class SceneryGroundObject(BuildingGroundObject):
+ def __init__(
+ self,
+ name: str,
+ category: str,
+ group_id: int,
+ object_id: int,
+ position: Point,
+ control_point: ControlPoint,
+ dcs_identifier: str,
+ zone: TriggerZone,
+ ) -> None:
+ super().__init__(
+ name=name,
+ category=category,
+ group_id=group_id,
+ object_id=object_id,
+ position=position,
+ heading=0,
+ control_point=control_point,
+ dcs_identifier=dcs_identifier,
+ airbase_group=False,
+ )
+ self.zone = zone
+ try:
+ # In the default TriggerZone using "assign as..." in the DCS Mission Editor,
+ # property three has the scenery's object ID as its value.
+ self.map_object_id = self.zone.properties[3]["value"]
+ except (IndexError, KeyError):
+ logging.exception(
+ "Invalid TriggerZone for Scenery definition. The third property must "
+ "be the map object ID."
+ )
+ raise
+
+
class FactoryGroundObject(BuildingGroundObject):
def __init__(
self,
diff --git a/game/unitmap.py b/game/unitmap.py
index dd1f527b..e8b6ac28 100644
--- a/game/unitmap.py
+++ b/game/unitmap.py
@@ -8,7 +8,7 @@ from dcs.unittype import VehicleType
from game import db
from game.theater import Airfield, ControlPoint, TheaterGroundObject
-from game.theater.theatergroundobject import BuildingGroundObject
+from game.theater.theatergroundobject import BuildingGroundObject, SceneryGroundObject
from game.transfers import CargoShip, Convoy, TransferOrder
from gen.flights.flight import Flight
@@ -202,5 +202,15 @@ class UnitMap:
raise RuntimeError(f"Duplicate TGO unit: {name}")
self.buildings[name] = Building(ground_object)
+ def add_scenery(self, ground_object: SceneryGroundObject) -> None:
+ name = str(ground_object.map_object_id)
+ if name in self.buildings:
+ raise RuntimeError(
+ f"Duplicate TGO unit: {name}. TriggerZone name: "
+ f"{ground_object.dcs_identifier}"
+ )
+
+ self.buildings[name] = Building(ground_object)
+
def building_or_fortification(self, name: str) -> Optional[Building]:
return self.buildings.get(name, None)
diff --git a/game/version.py b/game/version.py
index b48f3056..2c886538 100644
--- a/game/version.py
+++ b/game/version.py
@@ -44,4 +44,13 @@ VERSION = _build_version_string()
#: * Bulker Handy Winds define shipping lanes. They should be placed in port areas that
#: are navigable by ships and have a route to another port area. DCS ships *will not*
#: avoid driving into islands, so ensure that their waypoints plot a navigable route.
-CAMPAIGN_FORMAT_VERSION = 3
+#:
+#: Version 4
+#: * TriggerZones define map based building targets. White TriggerZones created by right
+#: clicking an object and using "assign as..." define the buildings within an objective.
+#: Blue circular TriggerZones created normally must surround groups of one or more
+#: white TriggerZones to define an objective. If a white TriggerZone is not surrounded
+#: by a blue circular TriggerZone, campaign creation will fail. Blue circular
+#: TriggerZones must also have their first property's value field define the type of
+#: objective (a valid value for a building TGO category, from `game.db.PRICES`).
+CAMPAIGN_FORMAT_VERSION = 4
diff --git a/gen/groundobjectsgen.py b/gen/groundobjectsgen.py
index b397fdad..d6349c8e 100644
--- a/gen/groundobjectsgen.py
+++ b/gen/groundobjectsgen.py
@@ -12,6 +12,7 @@ import random
from typing import Dict, Iterator, Optional, TYPE_CHECKING, Type, List
from dcs import Mission, Point, unitgroup
+from dcs.action import SceneryDestructionZone
from dcs.country import Country
from dcs.point import StaticPoint
from dcs.statics import Fortification, fortification_map, warehouse_map, Warehouse
@@ -22,6 +23,7 @@ from dcs.task import (
OptAlarmState,
FireAtPoint,
)
+from dcs.triggers import TriggerStart, TriggerZone
from dcs.unit import Ship, Unit, Vehicle, SingleHeliPad, Static
from dcs.unitgroup import Group, ShipGroup, StaticGroup, VehicleGroup
from dcs.unittype import StaticType, UnitType
@@ -39,9 +41,10 @@ from game.theater.theatergroundobject import (
LhaGroundObject,
ShipGroundObject,
MissileSiteGroundObject,
+ SceneryGroundObject,
)
from game.unitmap import UnitMap
-from game.utils import knots, mps
+from game.utils import feet, knots, mps
from .radios import RadioFrequency, RadioRegistry
from .runways import RunwayData
from .tacan import TacanBand, TacanChannel, TacanRegistry
@@ -259,6 +262,58 @@ class FactoryGenerator(BuildingSiteGenerator):
self.generate_static(Fortification.Workshop_A)
+class SceneryGenerator(BuildingSiteGenerator):
+ def generate(self) -> None:
+ assert isinstance(self.ground_object, SceneryGroundObject)
+
+ trigger_zone = self.generate_trigger_zone(self.ground_object)
+
+ # DCS only visually shows a scenery object is dead when
+ # this trigger rule is applied. Otherwise you can kill a
+ # structure twice.
+ if self.ground_object.is_dead:
+ self.generate_dead_trigger_rule(trigger_zone)
+
+ # Tell Liberation to manage this groundobjectsgen as part of the campaign.
+ self.register_scenery()
+
+ def generate_trigger_zone(self, scenery: SceneryGroundObject) -> TriggerZone:
+
+ zone = scenery.zone
+
+ # Align the trigger zones to the faction color on the DCS briefing/F10 map.
+ if scenery.is_friendly(to_player=True):
+ color = {1: 0.2, 2: 0.7, 3: 1, 4: 0.15}
+ else:
+ color = {1: 1, 2: 0.2, 3: 0.2, 4: 0.15}
+
+ # Create the smallest valid size trigger zone (16 feet) so that risk of overlap is minimized.
+ # As long as the triggerzone is over the scenery object, we're ok.
+ smallest_valid_radius = feet(16).meters
+
+ return self.m.triggers.add_triggerzone(
+ zone.position,
+ smallest_valid_radius,
+ zone.hidden,
+ zone.name,
+ color,
+ zone.properties,
+ )
+
+ def generate_dead_trigger_rule(self, trigger_zone: TriggerZone) -> None:
+ # Add destruction zone trigger
+ t = TriggerStart(comment="Destruction")
+ t.actions.append(
+ SceneryDestructionZone(destruction_level=100, zone=trigger_zone.id)
+ )
+ self.m.triggerrules.triggers.append(t)
+
+ def register_scenery(self) -> None:
+ scenery = self.ground_object
+ assert isinstance(scenery, SceneryGroundObject)
+ self.unit_map.add_scenery(scenery)
+
+
class GenericCarrierGenerator(GenericGroundObjectGenerator):
"""Base type for carrier group generation.
@@ -576,6 +631,10 @@ class GroundObjectsGenerator:
generator = FactoryGenerator(
ground_object, country, self.game, self.m, self.unit_map
)
+ elif isinstance(ground_object, SceneryGroundObject):
+ generator = SceneryGenerator(
+ ground_object, country, self.game, self.m, self.unit_map
+ )
elif isinstance(ground_object, BuildingGroundObject):
generator = BuildingSiteGenerator(
ground_object, country, self.game, self.m, self.unit_map
diff --git a/resources/campaigns/inherent_resolve.json b/resources/campaigns/inherent_resolve.json
index 7d9143a6..256216a4 100644
--- a/resources/campaigns/inherent_resolve.json
+++ b/resources/campaigns/inherent_resolve.json
@@ -5,7 +5,7 @@
"recommended_player_faction": "USA 2005",
"recommended_enemy_faction": "Insurgents (Hard)",
"description": "
In this scenario, you start from Jordan, and have to fight your way through eastern Syria.
",
- "version": 3,
+ "version": 4,
"miz": "inherent_resolve.miz",
"performance": 1
}
\ No newline at end of file
diff --git a/resources/campaigns/inherent_resolve.miz b/resources/campaigns/inherent_resolve.miz
index 9fe585f8fa31642ea7958c3a45cf1caf9927f5cd..5f3ac702c67e2a26eb17ffceae1d7c83e865518a 100644
GIT binary patch
literal 57464
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