Skip to content

Commit

Permalink
Support for restricted payloads
Browse files Browse the repository at this point in the history
  • Loading branch information
332fg-raven committed Feb 17, 2024
1 parent 07fe67e commit 008d97c
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
4 changes: 4 additions & 0 deletions dcs/flyingunit.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ def __init__(
self.radio: Optional[AircraftRadioPresets] = None
self.hardpoint_racks = True
self.addpropaircraft = dict(_type.property_defaults) if _type.property_defaults else None
self.payload_restricted: Optional[Dict[int, Dict[int, str]]] = None

def load_from_dict(self, d):
super(FlyingUnit, self).load_from_dict(d)
Expand All @@ -71,6 +72,7 @@ def load_from_dict(self, d):
self.radio = d.get("Radio")
self.hardpoint_racks = d.get("hardpoint_racks", None)
self.addpropaircraft = d.get("AddPropAircraft")
self.payload_restricted = d["payload"].get("restricted", None)
return True

def set_parking(self, parking_slot: ParkingSlot):
Expand Down Expand Up @@ -227,6 +229,8 @@ def dict(self):
d["callsign"] = self.callsign_dict
if self.radio:
d["Radio"] = self.radio
if self.payload_restricted is not None:
d["payload"]["restricted"] = self.payload_restricted
return d


Expand Down
Binary file added tests/missions/payload.restrictions.miz
Binary file not shown.
17 changes: 17 additions & 0 deletions tests/test_mission.py
Original file line number Diff line number Diff line change
Expand Up @@ -1290,3 +1290,20 @@ def test_geffect(self) -> None:
m2 = Mission()
m2.load_file("missions/saved.g-effect-sim.miz")
self.assertEqual(m.forced_options.geffect, m2.forced_options.geffect)

def test_payload_restrictions(self) -> None:
m = Mission()
m.load_file("tests/missions/payload.restrictions.miz")

country_name = "USA"
coal_name = str(dcs.action.Coalition.Blue.value)

self.assertIsNotNone(m.coalition[coal_name].country(country_name).plane_group[0].units[0].payload_restricted)

m.save("missions/saved.payload.restrictions.miz")

m2 = Mission()
m2.load_file("missions/saved.payload.restrictions.miz")

self.assertDictEqual(m.coalition[coal_name].country(country_name).plane_group[0].units[0].payload_restricted,
m2.coalition[coal_name].country(country_name).plane_group[0].units[0].payload_restricted)

0 comments on commit 008d97c

Please sign in to comment.