tests: verarbeite kritische Treffer auch bei großen Bauteilen

This commit is contained in:
2026-07-09 17:11:09 +02:00
parent 0c985589a2
commit d8df5db7f4
5 changed files with 57 additions and 32 deletions
+2 -2
View File
@@ -2,8 +2,8 @@ import unittest
from Hangar.mech import Mech
from MechFabrik import MechFabrik
from MechFabrik.bauteile import Gyroskope, InnerStructure, AreaNames, Area, OuterAmor, Zone, ZoneNames
from MechFabrik.bauteile.items import Cockpit, Item, ItemTypes, Reaktor
from MechFabrik.bauteile import InnerStructure, AreaNames, Area, OuterAmor, Zone, ZoneNames
from MechFabrik.bauteile.items import Cockpit, Gyroskope, Item, ItemTypes, Reaktor
from test_mech import AbstractTestMechAmor, INNER_ARMOR, OUTER_ARMOR
+34 -12
View File
@@ -1,5 +1,4 @@
from MechFabrik import Cockpit, Sensors, Sustainment
from MechFabrik.bauteile.items import ItemStatus
from MechFabrik.bauteile.items import BigItem, DurableItem, Item, ItemStatus, ItemTypes
from test_mech import AbstractTestMechAmor, INNER_ARMOR, NEXT_OUTER_ZONE, OUTER_ARMOR
from MechFabrik.bauteile import Area, AreaStatus, OuterAmor, StrikeEvent, CriticalStrikeEvent, ZoneNames
@@ -99,32 +98,55 @@ class TestMechAmor(AbstractTestMechAmor):
parent = Area()
area = Area()
area.parent = parent
cockpit = Cockpit()
area.cockpit = cockpit
big_item_01 = BigItem(ItemTypes.SUSTAINMENT, 5.0)
item_01 = Item(ItemTypes.SUSTAINMENT)
durable_item_01 = DurableItem(ItemTypes.SUSTAINMENT, 3)
area.items = {
(1, 1): Sustainment(),
(1, 2): Sensors(),
(1, 3): cockpit,
(1, 1): big_item_01,
(1, 2): durable_item_01,
(1, 3): durable_item_01,
(1, 4): None,
(1, 5): cockpit,
(1, 6): Sustainment(),
(1, 5): item_01,
(1, 6): None,
}
zone = OuterAmor(area)
event = CriticalStrikeEvent(zone, (1, 2)).process_event()
event = CriticalStrikeEvent(zone, (1, 1)).process_event()
self.assertEqual(AreaStatus.DAMAGED, zone.state)
self.assertEqual(AreaStatus.DAMAGED, area.state)
self.assertIsInstance(event, CriticalStrikeEvent)
self.assertFalse(event.is_empty())
self.assertEqual(area, event.area)
self.assertEqual(ItemStatus.DESTROYED, area.items[(1, 2)].state)
self.assertEqual(ItemStatus.DESTROYED, area.items[(1, 1)].state)
event = CriticalStrikeEvent(zone, (1, 5)).process_event()
self.assertEqual(AreaStatus.DAMAGED, zone.state)
self.assertEqual(AreaStatus.DAMAGED, area.state)
self.assertIsInstance(event, CriticalStrikeEvent)
self.assertFalse(event.is_empty())
self.assertEqual(area, event.area)
self.assertEqual(ItemStatus.DESTROYED, area.items[(1, 5)].state)
event = CriticalStrikeEvent(zone, (1, 2)).process_event()
self.assertIsInstance(event, CriticalStrikeEvent)
self.assertFalse(event.is_empty())
self.assertEqual(area, event.area)
self.assertEqual(ItemStatus.DAMAGED, area.items[(1, 2)].state)
self.assertEqual(ItemStatus.DAMAGED, area.items[(1, 3)].state)
event = CriticalStrikeEvent(zone, (1, 3)).process_event()
self.assertIsInstance(event, CriticalStrikeEvent)
self.assertFalse(event.is_empty())
self.assertEqual(area, event.area)
self.assertEqual(ItemStatus.DESTROYED, area.items[(1, 3)].state)
self.assertEqual(ItemStatus.DAMAGED, area.items[(1, 2)].state)
self.assertEqual(ItemStatus.DAMAGED, area.items[(1, 3)].state)
event = CriticalStrikeEvent(zone, (1, 2)).process_event()
self.assertIsInstance(event, CriticalStrikeEvent)
self.assertFalse(event.is_empty())
self.assertEqual(area, event.area)
self.assertEqual(ItemStatus.DESTROYED, area.items[(1, 2)].state)
self.assertEqual(ItemStatus.DESTROYED, area.items[(1, 5)].state)
event = CriticalStrikeEvent(zone, (1, 4)).process_event()