Feature: check for *Area*-Status

This commit is contained in:
2025-12-05 16:01:08 +01:00
parent b579549307
commit abcde9e8e4
2 changed files with 48 additions and 3 deletions
+39
View File
@@ -0,0 +1,39 @@
@startuml
'https://plantuml.com/activity-diagram-beta
start
:eine //Zone// wird getroffen;
:Trefferpunkte; <<object>>
if (die //Zone// hat noch äußere Panzerung?) then (Ja)
:äußere Panzerung abtragen; <<objectSignal>>
:Trefferpunkte verringern; <<object>>
:äußere Treffer triggern; <<acceptEvent>>
endif
if (sind noch Trefferpunkte übrig?) then (Ja)
if (die //Zone// hat noch innere Panzerung?) then (Ja)
:restliche Treffer nach innen leiten; <<objectSignal>>
:innere Panzerung abtragen; <<objectSignal>>
:inneren Treffer triggern; <<acceptEvent>>
:Trefferpunkte verringern; <<object>>
if (sind noch Trefferpunkte übrig?) then (Ja)
:die //Zone// ist zerstört; <<acceptEvent>>
:restliche Trefferpunkte zur //Eltern-Zone// leiten; <<objectSignal>>
end
else (Nein)
end
endif
else (Nein)
:die //Zone// ist zerstört; <<acceptEvent>>
:restliche Trefferpunkte zur //Eltern-Zone// leiten; <<objectSignal>>
end
endif
endif
end
@enduml
+6
View File
@@ -93,6 +93,8 @@ class Area:
'children': [],
'items': {},
'armor': 0,
'inner_armor': 0,
'state': AreaStatus.FINE,
}
def __setattr__(self, key, value):
@@ -170,3 +172,7 @@ class Mech(object):
if area.inner_armor > hits_rest:
area.inner_armor -= hits_rest
area.armor = 0
area.state = AreaStatus.CRITICAL_STRIKE
else:
area.state = AreaStatus.DESTROYED
area.inner_armor = 0