Tests: check for *Area*-Status

This commit is contained in:
2025-09-03 17:08:38 +02:00
parent 0dce4116ca
commit b579549307
2 changed files with 28 additions and 5 deletions
+6
View File
@@ -13,6 +13,12 @@ class AreaNames(enum.Enum):
LEFT_ARM = 'Linker Arm' LEFT_ARM = 'Linker Arm'
class AreaStatus(enum.Flag):
FINE = 0
CRITICAL_STRIKE = 1
DESTROYED = 2
class ItemTypes(enum.Enum): class ItemTypes(enum.Enum):
COCKPIT = 1 COCKPIT = 1
REAKTOR = 2 REAKTOR = 2
+22 -5
View File
@@ -1,15 +1,32 @@
import unittest import unittest
from test_mech import AbstractTestMechAmor, INNER_ARMOR, OUTER_ARMOR from test_mech import AbstractTestMechAmor, INNER_ARMOR, OUTER_ARMOR
from MechFabrik.bauteile import AreaNames from MechFabrik.bauteile import AreaNames, AreaStatus
class TestMechAmor(AbstractTestMechAmor): class TestMechAmor(AbstractTestMechAmor):
def test_process(self): def test_process(self):
for area_name in AreaNames: for area_name in AreaNames:
self.mech.strike(area_name, OUTER_ARMOR[area_name] - 3) area = self.mech.inner_structure.areas.get(area_name)
self.assertEqual(3, self.mech.inner_structure.areas.get(area_name).armor) start_armor = OUTER_ARMOR[area_name]
start_inner_armor = INNER_ARMOR[area_name]
self.assertEqual(start_armor, area.armor)
self.assertEqual(start_inner_armor, area.inner_armor)
self.assertEqual(AreaStatus.FINE, area.state)
self.mech.strike(area_name, start_armor - 3)
self.assertEqual(3, area.armor)
self.assertEqual(start_inner_armor, area.inner_armor)
self.assertEqual(AreaStatus.FINE, area.state)
self.mech.strike(area_name, 4) self.mech.strike(area_name, 4)
self.assertEqual(0, self.mech.inner_structure.areas.get(area_name).armor) self.assertEqual(0, area.armor)
self.assertEqual(INNER_ARMOR[area_name] - 1, self.mech.inner_structure.areas.get(area_name).inner_armor) self.assertEqual(start_inner_armor - 1, area.inner_armor)
self.assertEqual(AreaStatus.CRITICAL_STRIKE, area.state)
self.mech.strike(area_name, start_inner_armor - 1)
self.assertEqual(0, area.armor)
self.assertEqual(0, area.inner_armor)
self.assertEqual(AreaStatus.DESTROYED, area.state)