tests: verarbeite kritische Treffer auch bei großen Bauteilen
This commit is contained in:
@@ -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
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user