from MechFabrik.bauteile import CriticalStrikeEvent, InnerStructure, Item, StrikeEvent, ZoneNames from events import CriticalStrikeEvent, StrikeEvent class Mech(object): def __init__(self, name: str, tonnage: float, movement_rate: int, inner_structure: InnerStructure): self._movement_rate = movement_rate self._tonnage = tonnage self._name = name self._inner_structure = inner_structure @property def name(self) -> str: return self._name @property def tonnage(self) -> float: return self._tonnage @property def inner_structure(self) -> InnerStructure: return self._inner_structure @property def movement_rate(self) -> int: return self._movement_rate def set_item(self, key: tuple, item: Item): pass def strike(self, zone_name: ZoneNames, hits: int) -> StrikeEvent: zone = self._inner_structure.zones.get(zone_name) if zone is None: raise Exception(f"Zone {zone_name} not found") return StrikeEvent(zone, hits) def critical_strike(self, zone_name: ZoneNames, index: tuple[int, int]) -> CriticalStrikeEvent: zone = self._inner_structure.zones.get(zone_name) if zone is None: raise Exception(f"Zone {zone_name} not found") return CriticalStrikeEvent(zone, index)