33 lines
1.2 KiB
Python
Executable File
33 lines
1.2 KiB
Python
Executable File
import unittest
|
|
|
|
from test_mech import AbstractTestMechAmor, INNER_ARMOR, OUTER_ARMOR
|
|
from MechFabrik.bauteile import AreaNames, AreaStatus
|
|
|
|
|
|
class TestMechAmor(AbstractTestMechAmor):
|
|
|
|
def test_process(self):
|
|
for area_name in AreaNames:
|
|
area = self.mech.inner_structure.areas.get(area_name)
|
|
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.assertEqual(0, area.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)
|