diff --git a/MechFabrik/Uml/Mech.puml b/MechFabrik/Uml/Mech.puml
index d7bfb94..cafbfda 100644
--- a/MechFabrik/Uml/Mech.puml
+++ b/MechFabrik/Uml/Mech.puml
@@ -10,36 +10,44 @@ object Sustainment
object Sensors
object Head <> {
item_lines: 6
+ inner_armor: #
amor: #
}
object Cockpit <>
object Reaktor <>
object TorsoMiddle <> {
item_lines: 12
+ inner_armor: #
amor: #
}
object TorsoLeft <> {
item_lines: 12
+ inner_armor: #
amor: #
}
object ArmLeft <> {
item_lines: 12
+ inner_armor: #
amor: #
}
object LegLeft <> {
item_lines: 6
+ inner_armor: #
amor: #
}
object TorsoRight <> {
item_lines: 12
+ inner_armor: #
amor: #
}
object ArmRight <> {
item_lines: 12
+ inner_armor: #
amor: #
}
object LegRight <> {
item_lines: 6
+ inner_armor: #
amor: #
}
object JointAL as "Joint"
diff --git a/MechFabrik/__init__.py b/MechFabrik/__init__.py
index f40ae17..2efdc5d 100755
--- a/MechFabrik/__init__.py
+++ b/MechFabrik/__init__.py
@@ -101,3 +101,18 @@ class MechFabrik(object):
def auslieferung(self) -> Mech:
return self._mech
+
+ def setHeadAmore(self, param):
+ pass
+
+ def setMidleTorsoAmore(self, param):
+ pass
+
+ def setSideTorsoAmore(self, param):
+ pass
+
+ def setArmAmore(self, param):
+ pass
+
+ def setLegAmore(self, param):
+ pass
diff --git a/MechFabrik/bauteile/__init__.py b/MechFabrik/bauteile/__init__.py
index d1dcaaa..ccfcaec 100755
--- a/MechFabrik/bauteile/__init__.py
+++ b/MechFabrik/bauteile/__init__.py
@@ -153,3 +153,6 @@ class Mech(object):
def set_item(self, key: tuple, item: Item):
pass
+
+ def strike(self, area_name, param):
+ pass
diff --git a/tests/test_mech_bau.py b/tests/test_mech_bau.py
index 6dad8d3..fe53b89 100755
--- a/tests/test_mech_bau.py
+++ b/tests/test_mech_bau.py
@@ -1,9 +1,30 @@
import unittest
-from tokenize import group
from MechFabrik import MechFabrik
from MechFabrik.bauteile import InnerStructure, Gyroskope, AreaNames, Area, Cockpit, Item, ItemTypes, Reaktor, Mech
+INNER_AMOR = {
+ AreaNames.HEAD: 3,
+ AreaNames.MIDDLE_TORSO: 6,
+ AreaNames.LEFT_TORSO: 5,
+ AreaNames.RIGHT_TORSO: 5,
+ AreaNames.LEFT_ARM: 3,
+ AreaNames.RIGHT_ARM: 3,
+ AreaNames.LEFT_LEG: 4,
+ AreaNames.RIGHT_LEG: 4,
+ }
+
+OUTER_AMOR = {
+ AreaNames.HEAD: 6,
+ AreaNames.MIDDLE_TORSO: 9,
+ AreaNames.LEFT_TORSO: 8,
+ AreaNames.RIGHT_TORSO: 8,
+ AreaNames.LEFT_ARM: 5,
+ AreaNames.RIGHT_ARM: 5,
+ AreaNames.LEFT_LEG: 7,
+ AreaNames.RIGHT_LEG: 7,
+ }
+
class TestMechBau(unittest.TestCase):
@@ -18,6 +39,12 @@ class TestMechBau(unittest.TestCase):
self.assertIsInstance(mech.movement_rate, int)
self.assertEqual(8, mech.movement_rate)
+ for ara_name in AreaNames:
+ area = mech.inner_structure.areas.get(ara_name)
+ should_inner_amor = INNER_AMOR[ara_name]
+ self.assertEqual(should_inner_amor, area.inner_armor)
+ self.assertEqual(0, area.armor)
+
self.assertIsInstance(mech.inner_structure, InnerStructure)
self.assertIsInstance(mech.inner_structure.tonnage, float)
self.assertEqual(2.0, mech.inner_structure.tonnage)
@@ -106,7 +133,7 @@ class TestMechBau(unittest.TestCase):
def _test_for_side_torso_items(self, area: Area):
self.assertEqual(12, len(area.items))
- for (group, key) in ((group, key + 1) for group in [1,2] for key in range(6)):
+ for (group, key) in ((group, key + 1) for group in [1, 2] for key in range(6)):
self.assertIsNone(area.items[key])
def _test_for_arm_items(self, area: Area):
@@ -137,3 +164,32 @@ class TestMechBau(unittest.TestCase):
for (key, item_type) in should_list:
self.assertIsInstance(area.items[key], Item)
self.assertEqual(area.items[key].type, item_type)
+
+
+class TextMechAmor(unittest.TestCase):
+
+ def setUp(self):
+ fabrik = MechFabrik('Heuschrecke', 20.0, 8)
+
+ fabrik.setHeadAmore(OUTER_AMOR[AreaNames.HEAD])
+ fabrik.setMidleTorsoAmore(OUTER_AMOR[AreaNames.MIDDLE_TORSO])
+ fabrik.setSideTorsoAmore(OUTER_AMOR[AreaNames.LEFT_TORSO])
+ fabrik.setArmAmore(OUTER_AMOR[AreaNames.LEFT_ARM])
+ fabrik.setLegAmore(OUTER_AMOR[AreaNames.LEFT_LEG])
+
+ self.mech = fabrik.auslieferung()
+
+ def test_build(self):
+
+ for area_name in AreaNames:
+ area = self.mech.inner_structure.areas.get(area_name)
+ should_outer_amor = OUTER_AMOR[area_name]
+ self.assertEqual(should_outer_amor, area.armor)
+
+ def test_process(self):
+ for area_name in AreaNames:
+ self.mech.strike(area_name, 3)
+ self.assertEqual(OUTER_AMOR[area_name] - 3, self.mech.inner_structure.areas.get(area_name).armor)
+ self.mech.strike(area_name, OUTER_AMOR[area_name] - 2)
+ self.assertEqual(0, self.mech.inner_structure.areas.get(area_name).armor)
+ self.assertEqual(2, self.mech.inner_structure.areas.get(area_name).inner_armor)