Ability to configure liveries on flight/flight-member level

This commit is contained in:
Raffson
2024-03-22 20:41:28 +01:00
parent a7d65866e8
commit ab32c44b9d
7 changed files with 61 additions and 5 deletions

View File

@@ -89,6 +89,7 @@ class Flight(
self.initialize_fuel()
self.use_same_loadout_for_all_members = True
self.use_same_livery_for_all_members = True
# Only used by transport missions.
self.cargo = cargo

View File

@@ -1,6 +1,6 @@
from __future__ import annotations
from typing import TYPE_CHECKING, Any
from typing import TYPE_CHECKING, Any, Optional
from game.ato.loadouts import Loadout
from game.lasercodes import LaserCode
@@ -17,6 +17,7 @@ class FlightMember:
self.tgp_laser_code: LaserCode | None = None
self.weapon_laser_code: LaserCode | None = None
self.properties: dict[str, bool | float | int] = {}
self.livery: Optional[str] = None
def __setstate__(self, state: dict[str, Any]) -> None:
if "tgp_laser_code" not in state:

View File

@@ -95,6 +95,13 @@ class FlightMembers(IFlightRoster):
# across all flight members.
member.loadout = loadout
def use_same_livery_for_all_members(self) -> None:
if not self.members:
return
livery = self.members[0].livery
for member in self.members[1:]:
member.livery = livery
def use_distinct_loadouts_for_each_member(self) -> None:
for member in self.members:
member.loadout = member.loadout.clone()