From 22fbdaa82f9c0fdfe249bc85b36bd8f2c5a99de6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Thu, 9 Jul 2026 23:57:03 +0200 Subject: [PATCH] =?UTF-8?q?feature:=20verarbeite=20kritische=20Treffer=20a?= =?UTF-8?q?uch=20bei=20gro=C3=9Fen=20Bauteilen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MechFabrik/bauteile/__init__.py | 6 +++--- MechFabrik/bauteile/items.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/MechFabrik/bauteile/__init__.py b/MechFabrik/bauteile/__init__.py index e2ac656..2336632 100755 --- a/MechFabrik/bauteile/__init__.py +++ b/MechFabrik/bauteile/__init__.py @@ -1,6 +1,6 @@ import enum -from MechFabrik.bauteile.items import Item, ItemStatus +from MechFabrik.bauteile.items import Gyroskope, Item, ItemStatus class ZoneNames(enum.Enum): @@ -144,11 +144,11 @@ class CriticalStrikeEvent: self.__dict__['_zone'].state = AreaStatus.DAMAGED self.__dict__['_area'].state = AreaStatus.DAMAGED item = self.__dict__['_area'].items[self.__dict__['_index']] - if item is None: + if item is None or item.state == ItemStatus.DESTROYED: self.__dict__['_item_is_empty'] = True else: self.__dict__['_item_is_empty'] = False - item.state = ItemStatus.DESTROYED + item.process_strike() return self def is_empty(self): diff --git a/MechFabrik/bauteile/items.py b/MechFabrik/bauteile/items.py index f590522..9313704 100644 --- a/MechFabrik/bauteile/items.py +++ b/MechFabrik/bauteile/items.py @@ -34,6 +34,9 @@ class Item(object): def state(self, new_state: ItemStatus): self._state = new_state + def process_strike(self): + self._state = ItemStatus.DESTROYED + class BigItem(Item): @@ -52,6 +55,14 @@ class DurableItem(Item): super().__init__(item_type) self._max_strike = max_strike + @property + def max_strike(self): + return self._max_strike + + def process_strike(self): + self._max_strike -= 1 + self._state = ItemStatus.DAMAGED if self._max_strike > 0 else ItemStatus.DESTROYED + class Gyroskope(BigItem, DurableItem): def __init__(self, tonnage: float):