refactor: beachte, dass in Python Namen von Ordnern und Dateien immer klein geschieben werden
Auch vermeide Denglisch
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
@startuml
|
||||
'https://plantuml.com/object-diagram
|
||||
|
||||
object Mech <<Mech>>
|
||||
abstract Area <<Zone>> {
|
||||
next_area: Area
|
||||
item_lines: #
|
||||
armor: #
|
||||
}
|
||||
abstract AreaItem <<Item>> {
|
||||
item_lines: #
|
||||
}
|
||||
|
||||
object InnerStructure <<InnerStructure>> {
|
||||
heater: x
|
||||
}
|
||||
|
||||
object OuterAmor <<Zone>> {
|
||||
armor: #
|
||||
}
|
||||
|
||||
object Head <<Area>> {
|
||||
item_lines: 6
|
||||
}
|
||||
|
||||
object Torso <<Area>> {
|
||||
item_lines: 12
|
||||
}
|
||||
|
||||
object SideTorso <<Area>> {
|
||||
item_lines: 12
|
||||
}
|
||||
|
||||
object Arm <<Area>> {
|
||||
item_lines: 12
|
||||
}
|
||||
|
||||
object Leg <<Area>> {
|
||||
item_lines: 6
|
||||
}
|
||||
|
||||
Area *- "1,*" OuterAmor
|
||||
AreaItem "*" -* Area
|
||||
|
||||
Head <|-- Area
|
||||
Torso <|-- Area
|
||||
SideTorso <|-- Area
|
||||
Arm <|-- Area
|
||||
Leg <|-- Area
|
||||
|
||||
Mech *-- InnerStructure
|
||||
InnerStructure *-- Head
|
||||
InnerStructure *-- Torso
|
||||
Torso *-- SideTorso
|
||||
SideTorso *-- "0|2" Arm
|
||||
SideTorso *-- "2|4" Leg
|
||||
|
||||
@enduml
|
||||
@@ -0,0 +1,75 @@
|
||||
@startuml
|
||||
'https://plantuml.com/object-diagram
|
||||
|
||||
object Mech <<Mech>> {
|
||||
heater: x
|
||||
}
|
||||
|
||||
object Head <<Area>> {
|
||||
item_lines: 6
|
||||
}
|
||||
object Sustainment <<AreaItem>>
|
||||
object Sensors <<AreaItem>>
|
||||
object Cockpit <<Cockpit>> <<AreaItem>>
|
||||
|
||||
object InnerStructure <<InnerStructure>>
|
||||
object Gyroskope <<Gyroskope>> <<AreaItem>>
|
||||
object Reaktor <<Reaktor>> <<AreaItem>>
|
||||
object TorsoMiddle <<Area>> {
|
||||
item_lines: 12
|
||||
}
|
||||
object TorsoLeft <<Area>> {
|
||||
item_lines: 12
|
||||
}
|
||||
object ArmLeft <<Area>> {
|
||||
item_lines: 12
|
||||
}
|
||||
object LegLeft <<Area>> {
|
||||
item_lines: 6
|
||||
}
|
||||
object TorsoRight <<Area>> {
|
||||
item_lines: 12
|
||||
}
|
||||
object ArmRight <<Area>> {
|
||||
item_lines: 12
|
||||
}
|
||||
object LegRight <<Area>> {
|
||||
item_lines: 6
|
||||
}
|
||||
object JointAL as "Joint" <<AreaItem>>
|
||||
object ActivatorAL as "Activator" <<AreaItem>>
|
||||
object JointLL as "Joint" <<AreaItem>>
|
||||
object ActivatorLL as "Activator" <<AreaItem>>
|
||||
object JointAR as "Joint" <<AreaItem>>
|
||||
object ActivatorAR as "Activator" <<AreaItem>>
|
||||
object JointLR as "Joint" <<AreaItem>>
|
||||
object ActivatorLR as "Activator" <<AreaItem>>
|
||||
|
||||
|
||||
Mech *- Gyroskope
|
||||
Head *- Cockpit
|
||||
Head *-- Sustainment
|
||||
Head *-- Sensors
|
||||
|
||||
Mech *-- InnerStructure
|
||||
InnerStructure *-- Head
|
||||
InnerStructure *-- TorsoMiddle
|
||||
Mech *- Reaktor
|
||||
Gyroskope .. TorsoMiddle
|
||||
Reaktor .. TorsoMiddle
|
||||
TorsoMiddle *-- TorsoLeft
|
||||
TorsoMiddle *-- TorsoRight
|
||||
TorsoLeft *-- ArmLeft
|
||||
TorsoLeft *-- LegLeft
|
||||
TorsoRight *-- ArmRight
|
||||
TorsoRight *-- LegRight
|
||||
ArmLeft *-- JointAL
|
||||
ArmLeft *-- ActivatorAL
|
||||
ArmRight *-- JointAR
|
||||
ArmRight *-- ActivatorAR
|
||||
LegRight *-- JointLR
|
||||
LegRight *-- ActivatorLR
|
||||
LegLeft *-- JointLL
|
||||
LegLeft *-- ActivatorLL
|
||||
|
||||
@enduml
|
||||
@@ -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
|
||||
@@ -0,0 +1,31 @@
|
||||
@startuml
|
||||
'https://plantuml.com/sequence-diagram
|
||||
|
||||
autonumber
|
||||
|
||||
actor Gegner
|
||||
|
||||
actor Selbst
|
||||
database InnerStructure
|
||||
collections Zone
|
||||
entity ZoneEvent
|
||||
|
||||
Gegner -> Selbst: Treffer
|
||||
Selbst -> InnerStructure: verarbeite Treffer
|
||||
InnerStructure -> Zone: suche getroffene Außen-Zone
|
||||
return Zone
|
||||
InnerStructure -> ZoneEvent: erstelle **ZonenEvent**
|
||||
return **ZonenEvent**
|
||||
alt aktuelles **ZoneEvent** hat noch nicht alle Trefferpunkte verarbeitet
|
||||
alt **Zone** hat noch Panzerung
|
||||
InnerStructure -> ZonenEvent: trage Trefferpunkte ab
|
||||
return ZoneEvent
|
||||
else **Zone** hat keine Panzerung
|
||||
InnerStructure -> Zone: hole Weiterleitung-Zone
|
||||
return Zone
|
||||
InnerStructure -> ZoneEvent: erstelle **ZonenEvent** für weitergeleitete **Zone**
|
||||
return ZoneEvent
|
||||
end
|
||||
end
|
||||
|
||||
@enduml
|
||||
Executable
+161
@@ -0,0 +1,161 @@
|
||||
from hangar.mech import Mech
|
||||
from mech_factory.components import InnerStructure, Area, AreaNames, OuterAmor, ZoneNames
|
||||
from mech_factory.components.items import Activator, Cockpit, Gyroskope, Joint, Reaktor, Sensors, Sustainment
|
||||
from mech_factory.reader import ComponentReader
|
||||
|
||||
|
||||
class MechFabrik(object):
|
||||
|
||||
def __init__(self, name: str, tonnage: float, movement_rate: int):
|
||||
self.__components = ComponentReader()
|
||||
self.__tonnage = tonnage
|
||||
self.__reactor_value = int(movement_rate * tonnage)
|
||||
self.__areas = {
|
||||
AreaNames.HEAD: Area(),
|
||||
AreaNames.MIDDLE_TORSO: Area(),
|
||||
AreaNames.LEFT_TORSO: Area(),
|
||||
AreaNames.RIGHT_TORSO: Area(),
|
||||
AreaNames.LEFT_ARM: Area(),
|
||||
AreaNames.RIGHT_ARM: Area(),
|
||||
AreaNames.LEFT_LEG: Area(),
|
||||
AreaNames.RIGHT_LEG: Area(),
|
||||
}
|
||||
self.__zones = {
|
||||
ZoneNames.HEAD: OuterAmor(self.__areas[AreaNames.HEAD]),
|
||||
ZoneNames.MIDDLE_TORSO_FRONT: OuterAmor(self.__areas[AreaNames.MIDDLE_TORSO]),
|
||||
ZoneNames.MIDDLE_TORSO_REAR: OuterAmor(self.__areas[AreaNames.MIDDLE_TORSO]),
|
||||
ZoneNames.LEFT_TORSO_FRONT: OuterAmor(self.__areas[AreaNames.LEFT_TORSO]),
|
||||
ZoneNames.LEFT_TORSO_REAR: OuterAmor(self.__areas[AreaNames.LEFT_TORSO]),
|
||||
ZoneNames.RIGHT_TORSO_FRONT: OuterAmor(self.__areas[AreaNames.RIGHT_TORSO]),
|
||||
ZoneNames.RIGHT_TORSO_REAR: OuterAmor(self.__areas[AreaNames.RIGHT_TORSO]),
|
||||
ZoneNames.LEFT_ARM: OuterAmor(self.__areas[AreaNames.LEFT_ARM]),
|
||||
ZoneNames.RIGHT_ARM: OuterAmor(self.__areas[AreaNames.RIGHT_ARM]),
|
||||
ZoneNames.LEFT_LEG: OuterAmor(self.__areas[AreaNames.LEFT_LEG]),
|
||||
ZoneNames.RIGHT_LEG: OuterAmor(self.__areas[AreaNames.RIGHT_LEG]),
|
||||
}
|
||||
self.__build_inner_structure(tonnage, movement_rate)
|
||||
self._mech = Mech(name, tonnage, movement_rate, self._inner_structure)
|
||||
|
||||
def __build_inner_structure(self, tonnage: float, movement_rate: int) -> None:
|
||||
reactor_value = int(movement_rate * tonnage)
|
||||
gyroscope = Gyroskope(float(round(reactor_value / 100)))
|
||||
self._inner_structure = InnerStructure(self.__components.inner_structure_from(tonnage), gyroscope)
|
||||
self.__build_head_area()
|
||||
self.__build_middle_torso_area(gyroscope)
|
||||
|
||||
def __build_head_area(self) -> None:
|
||||
cockpit = Cockpit()
|
||||
self.__areas[AreaNames.HEAD].cockpit = cockpit
|
||||
self.__areas[AreaNames.HEAD].items = {
|
||||
(1, 1): Sustainment(),
|
||||
(1, 2): Sensors(),
|
||||
(1, 3): cockpit,
|
||||
(1, 4): None,
|
||||
(1, 5): Sensors(),
|
||||
(1, 6): Sustainment(),
|
||||
}
|
||||
self.__areas[AreaNames.HEAD].armor = 3
|
||||
self.__areas[AreaNames.HEAD].parent = self.__areas[AreaNames.MIDDLE_TORSO]
|
||||
|
||||
def __build_middle_torso_area(self, gyroscope: Gyroskope) -> None:
|
||||
self.__areas[AreaNames.LEFT_TORSO].parent = self.__areas[AreaNames.MIDDLE_TORSO]
|
||||
self.__areas[AreaNames.RIGHT_TORSO].parent = self.__areas[AreaNames.MIDDLE_TORSO]
|
||||
reactor = Reaktor(self.__reactor_value, self.__components.reactor_tonnage_from(self.__reactor_value))
|
||||
self.__areas[AreaNames.MIDDLE_TORSO].reactor = reactor
|
||||
self.__areas[AreaNames.MIDDLE_TORSO].children = [
|
||||
self.__areas[AreaNames.RIGHT_TORSO],
|
||||
self.__areas[AreaNames.LEFT_TORSO]
|
||||
]
|
||||
self.__areas[AreaNames.MIDDLE_TORSO].items = {
|
||||
(1, 1): reactor,
|
||||
(1, 2): reactor,
|
||||
(1, 3): reactor,
|
||||
(1, 4): gyroscope,
|
||||
(1, 5): gyroscope,
|
||||
(1, 6): gyroscope,
|
||||
(2, 1): gyroscope,
|
||||
(2, 2): reactor,
|
||||
(2, 3): reactor,
|
||||
(2, 4): reactor,
|
||||
(2, 5): None,
|
||||
(2, 6): None,
|
||||
}
|
||||
self.__areas[AreaNames.MIDDLE_TORSO].armor = self.__components.inner_amor_for_tonnage_and_area(
|
||||
self.__tonnage,
|
||||
AreaNames.MIDDLE_TORSO
|
||||
)
|
||||
self.__areas[AreaNames.LEFT_TORSO].armor = self.__components.inner_amor_for_tonnage_and_area(
|
||||
self.__tonnage, AreaNames.LEFT_TORSO)
|
||||
self.__areas[AreaNames.RIGHT_TORSO].armor = self.__components.inner_amor_for_tonnage_and_area(
|
||||
self.__tonnage,
|
||||
AreaNames.RIGHT_TORSO
|
||||
)
|
||||
self.__build_arm(self.__areas[AreaNames.RIGHT_TORSO], AreaNames.RIGHT_ARM)
|
||||
self.__build_leg(self.__areas[AreaNames.RIGHT_TORSO], AreaNames.RIGHT_LEG)
|
||||
self.__build_arm(self.__areas[AreaNames.LEFT_TORSO], AreaNames.LEFT_ARM)
|
||||
self.__build_leg(self.__areas[AreaNames.LEFT_TORSO], AreaNames.LEFT_LEG)
|
||||
|
||||
def __build_arm(self, parent: Area, index: AreaNames):
|
||||
self.__areas[index].parent = parent
|
||||
self.__areas[index].items = {
|
||||
(1, 1): Joint(),
|
||||
(1, 2): Activator(),
|
||||
(1, 3): Activator(),
|
||||
(1, 4): Activator(),
|
||||
(1, 5): None,
|
||||
(1, 6): None,
|
||||
(2, 1): None,
|
||||
(2, 2): None,
|
||||
(2, 3): None,
|
||||
(2, 4): None,
|
||||
(2, 5): None,
|
||||
(2, 6): None,
|
||||
}
|
||||
self.__areas[index].armor = self.__components.inner_amor_for_tonnage_and_area(self.__tonnage, index)
|
||||
parent.children.append(self.__areas[index])
|
||||
|
||||
def __build_leg(self, parent: Area, index: AreaNames):
|
||||
self.__areas[index].parent = parent
|
||||
self.__areas[index].items = {
|
||||
(1, 1): Joint(),
|
||||
(1, 2): Activator(),
|
||||
(1, 3): Activator(),
|
||||
(1, 4): Activator(),
|
||||
(1, 5): None,
|
||||
(1, 6): None,
|
||||
}
|
||||
self.__areas[index].armor = self.__components.inner_amor_for_tonnage_and_area(self.__tonnage, index)
|
||||
parent.children.append(self.__areas[index])
|
||||
|
||||
def auslieferung(self) -> Mech:
|
||||
for (index, area) in self.__areas.items():
|
||||
self._inner_structure.add_area(index, area)
|
||||
for (index, outer_amor) in self.__zones.items():
|
||||
self._inner_structure.add_zone(index, outer_amor)
|
||||
return self._mech
|
||||
|
||||
def set_head_armor(self, armor: int) -> None:
|
||||
self.__set_outer_armor(armor, ZoneNames.HEAD, AreaNames.HEAD)
|
||||
|
||||
def set_middle_torso_armor(self, armor_front: int, amor_rear: int) -> None:
|
||||
self.__set_outer_armor(armor_front, ZoneNames.MIDDLE_TORSO_FRONT, AreaNames.MIDDLE_TORSO)
|
||||
self.__set_outer_armor(amor_rear, ZoneNames.MIDDLE_TORSO_REAR, AreaNames.MIDDLE_TORSO)
|
||||
|
||||
def set_side_torso_armor(self, armor_front: int, amor_rear: int) -> None:
|
||||
self.__set_outer_armor(armor_front, ZoneNames.LEFT_TORSO_FRONT, AreaNames.LEFT_TORSO)
|
||||
self.__set_outer_armor(amor_rear, ZoneNames.LEFT_TORSO_REAR, AreaNames.LEFT_TORSO)
|
||||
self.__set_outer_armor(armor_front, ZoneNames.RIGHT_TORSO_FRONT, AreaNames.RIGHT_TORSO)
|
||||
self.__set_outer_armor(amor_rear, ZoneNames.RIGHT_TORSO_REAR, AreaNames.RIGHT_TORSO)
|
||||
|
||||
def set_arm_armor(self, armor: int) -> None:
|
||||
self.__set_outer_armor(armor, ZoneNames.LEFT_ARM, AreaNames.LEFT_ARM)
|
||||
self.__set_outer_armor(armor, ZoneNames.RIGHT_ARM, AreaNames.RIGHT_ARM)
|
||||
|
||||
def set_leg_armor(self, armor: int) -> None:
|
||||
self.__set_outer_armor(armor, ZoneNames.LEFT_LEG, AreaNames.LEFT_LEG)
|
||||
self.__set_outer_armor(armor, ZoneNames.RIGHT_LEG, AreaNames.RIGHT_LEG)
|
||||
|
||||
def __set_outer_armor(self, armor: int, zone_name: ZoneNames, parent_name: AreaNames) -> None:
|
||||
self.__zones[zone_name].armor = armor
|
||||
self.__zones[zone_name].parent = self.__areas[parent_name]
|
||||
self.__areas[parent_name].outer_amor.append(self.__zones[zone_name])
|
||||
@@ -1,6 +1,6 @@
|
||||
import enum
|
||||
|
||||
from MechFabrik.bauteile.items import Gyroskope, Item, ItemStatus
|
||||
from mech_factory.components.items import Gyroskope, Item, ItemStatus
|
||||
|
||||
|
||||
class ZoneNames(enum.Enum):
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
import enum
|
||||
|
||||
|
||||
class ItemTypes(enum.Enum):
|
||||
COCKPIT = 1
|
||||
REAKTOR = 2
|
||||
GYROSKOPE = 3
|
||||
ACTIVATOR = 4
|
||||
JOINT = 5
|
||||
SENSORS = 6
|
||||
SUSTAINMENT = 7
|
||||
|
||||
|
||||
class ItemStatus(enum.Flag):
|
||||
FINE = 0
|
||||
DAMAGED = 1
|
||||
DESTROYED = 2
|
||||
|
||||
|
||||
class Item(object):
|
||||
def __init__(self, item_type: ItemTypes, **another: dict):
|
||||
self._type = item_type
|
||||
self._state = ItemStatus.FINE
|
||||
|
||||
@property
|
||||
def type(self):
|
||||
return self._type
|
||||
|
||||
@property
|
||||
def state(self):
|
||||
return self._state
|
||||
|
||||
@state.setter
|
||||
def state(self, new_state: ItemStatus):
|
||||
self._state = new_state
|
||||
|
||||
def process_strike(self):
|
||||
self._state = ItemStatus.DESTROYED
|
||||
|
||||
|
||||
class BigItem(Item):
|
||||
|
||||
def __init__(self, item_type: ItemTypes, tonnage: float, **another: dict):
|
||||
super().__init__(item_type, **another)
|
||||
self._tonnage = tonnage
|
||||
|
||||
@property
|
||||
def tonnage(self) -> float:
|
||||
return self._tonnage
|
||||
|
||||
|
||||
class DurableItem(Item):
|
||||
|
||||
def __init__(self, item_type: ItemTypes, max_strike: int, **another):
|
||||
super().__init__(item_type)
|
||||
self._max_strike = max_strike
|
||||
|
||||
@property
|
||||
def max_strike(self):
|
||||
return self._max_strike
|
||||
|
||||
def process_strike(self):
|
||||
self._max_strike -= 1
|
||||
self._state = ItemStatus.DAMAGED if self._max_strike > 0 else ItemStatus.DESTROYED
|
||||
|
||||
|
||||
class Gyroskope(BigItem, DurableItem):
|
||||
def __init__(self, tonnage: float):
|
||||
super().__init__(item_type = ItemTypes.GYROSKOPE, tonnage=tonnage, max_strike=2)
|
||||
|
||||
|
||||
class Cockpit(BigItem):
|
||||
def __init__(self):
|
||||
super().__init__(ItemTypes.COCKPIT, 3.0)
|
||||
|
||||
|
||||
class Reaktor(BigItem, DurableItem):
|
||||
|
||||
def __init__(self, value: int, tonnage: float):
|
||||
super().__init__(item_type = ItemTypes.REAKTOR, tonnage=tonnage, max_strike=3)
|
||||
self._value = value
|
||||
|
||||
@property
|
||||
def value(self):
|
||||
return self._value
|
||||
|
||||
|
||||
class Activator(Item):
|
||||
def __init__(self):
|
||||
super().__init__(ItemTypes.ACTIVATOR)
|
||||
|
||||
|
||||
class Joint(Item):
|
||||
def __init__(self):
|
||||
super().__init__(ItemTypes.JOINT)
|
||||
|
||||
|
||||
class Sensors(DurableItem):
|
||||
def __init__(self):
|
||||
super().__init__(ItemTypes.SENSORS, 2)
|
||||
|
||||
|
||||
class Sustainment(Item):
|
||||
def __init__(self):
|
||||
super().__init__(ItemTypes.SUSTAINMENT)
|
||||
Executable
+52
@@ -0,0 +1,52 @@
|
||||
import csv
|
||||
import os.path
|
||||
|
||||
from mech_factory import AreaNames
|
||||
|
||||
|
||||
# noinspection SpellCheckingInspection
|
||||
class CsvDialect (csv.Dialect):
|
||||
lineterminator='\r\n'
|
||||
delimiter = ','
|
||||
quotechar = '"'
|
||||
quoting=csv.QUOTE_NONNUMERIC
|
||||
|
||||
|
||||
class ComponentReader:
|
||||
|
||||
def __init__(self):
|
||||
my_dirname = str(os.path.dirname(__file__))
|
||||
self._inner_structure_data = {}
|
||||
self._reactor_data = {}
|
||||
self._weapon_data = {}
|
||||
with open(os.path.join(my_dirname, 'tabellen', 'bauteile.csv')) as csvfile:
|
||||
component_reader = csv.DictReader(csvfile, dialect=CsvDialect)
|
||||
for row in component_reader:
|
||||
self._inner_structure_data[float(row['GTonnage'])] = row
|
||||
with open(os.path.join(my_dirname, 'tabellen', 'reaktoren.csv')) as csvfile:
|
||||
component_reader = csv.DictReader(csvfile, dialect=CsvDialect)
|
||||
for row in component_reader:
|
||||
self._reactor_data[float(row['RW'])] = row
|
||||
with open(os.path.join(my_dirname, 'tabellen', 'waffen.csv')) as csvfile:
|
||||
component_reader = csv.DictReader(csvfile, dialect=CsvDialect)
|
||||
for row in component_reader:
|
||||
self._weapon_data[row['Waffentyp']] = row
|
||||
|
||||
def inner_structure_from(self, tonnage: float) -> float:
|
||||
return float(self._inner_structure_data.get(tonnage, {}).get('Tonnage IS', 0.0))
|
||||
|
||||
def reactor_tonnage_from(self, reactor_value: int) -> float:
|
||||
return float(self._reactor_data.get(reactor_value, {}).get('Tonnage', 0.0))
|
||||
|
||||
def inner_amor_for_tonnage_and_area(self, tonnage: float, area: AreaNames) -> int:
|
||||
match area:
|
||||
case AreaNames.HEAD:
|
||||
return 3
|
||||
case AreaNames.MIDDLE_TORSO:
|
||||
return int(self._inner_structure_data.get(tonnage, {}).get('TorsoMitte', 0))
|
||||
case AreaNames.RIGHT_TORSO | AreaNames.LEFT_TORSO:
|
||||
return int(self._inner_structure_data.get(tonnage, {}).get('TorsoSeite', 0))
|
||||
case AreaNames.RIGHT_ARM | AreaNames.LEFT_ARM:
|
||||
return int(self._inner_structure_data.get(tonnage, {}).get('Arm', 0))
|
||||
case AreaNames.RIGHT_LEG | AreaNames.LEFT_LEG:
|
||||
return int(self._inner_structure_data.get(tonnage, {}).get('Bein', 0))
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
"GTonnage","Tonnage IS","Tonnage Endo","TorsoMitte","TorsoSeite","Arm","Bein","Tonnage SD"
|
||||
10,1.0,0.5,4,3,1,2,0.5
|
||||
15,1.5,1.0,5,4,2,3,0.5
|
||||
20,2.0,1.0,6,5,3,4,0.5
|
||||
25,2.5,1.5,8,6,4,6,0.5
|
||||
30,3.0,1.5,10,7,5,7,0.5
|
||||
35,3.5,2.0,11,8,6,8,0.5
|
||||
40,4.0,2.0,12,10,6,10,0.5
|
||||
45,4.5,2.5,14,11,7,11,0.5
|
||||
50,5.0,2.5,16,12,8,12,0.5
|
||||
55,5.5,3.0,18,13,9,13,0.5
|
||||
60,6.0,3.0,20,14,10,14,1
|
||||
65,6.5,3.5,21,15,10,15,1
|
||||
70,7.0,3.5,22,15,11,15,1
|
||||
75,7.5,4.0,23,16,12,16,1
|
||||
80,8.0,4.0,25,17,13,17,1
|
||||
85,8.5,4.25,27,18,14,18,1
|
||||
90,9.0,4.5,29,19,15,19,2
|
||||
95,9.5,4.75,30,20,16,20,2
|
||||
100,10.0,5.0,31,21,17,21,2
|
||||
|
Executable
+80
@@ -0,0 +1,80 @@
|
||||
"RW","Tonnage","TonnageXL","Hersteller"
|
||||
10,0.50,0.50,"unbekannt"
|
||||
15,0.50,0.50,"unbekannt"
|
||||
20,0.50,0.50,"unbekannt"
|
||||
25,0.50,0.50,"unbekannt"
|
||||
30,1.00,0.50,"unbekannt"
|
||||
35,1.00,0.50,"unbekannt"
|
||||
40,1.00,0.50,"unbekannt"
|
||||
45,1.00,0.50,"unbekannt"
|
||||
50,1.50,1.00,"unbekannt"
|
||||
55,1.50,1.00,"unbekannt"
|
||||
60,1.50,1.00,"unbekannt"
|
||||
65,2.00,1.00,"unbekannt"
|
||||
70,2.00,1.00,"unbekannt"
|
||||
75,2.00,1.00,"unbekannt"
|
||||
80,2.50,1.50,"unbekannt"
|
||||
85,2.50,1.50,"unbekannt"
|
||||
90,3.00,1.50,"unbekannt"
|
||||
95,3.00,1.50,"unbekannt"
|
||||
100,3.00,1.50,"unbekannt"
|
||||
105,3.50,2.00,"unbekannt"
|
||||
110,3.50,2.00,"unbekannt"
|
||||
115,4.00,2.00,"unbekannt"
|
||||
120,4.00,2.00,"unbekannt"
|
||||
125,4.00,2.00,"unbekannt"
|
||||
130,4.50,2.50,"unbekannt"
|
||||
135,4.50,2.50,"unbekannt"
|
||||
140,5.00,2.50,"unbekannt"
|
||||
145,5.00,2.50,"unbekannt"
|
||||
150,5.50,3.00,"unbekannt"
|
||||
155,5.50,3.00,"unbekannt"
|
||||
160,6.00,3.00,"unbekannt"
|
||||
165,6.00,3.00,"unbekannt"
|
||||
170,6.00,3.00,"unbekannt"
|
||||
175,7.00,3.50,"unbekannt"
|
||||
180,7.00,3.50,"unbekannt"
|
||||
185,7.50,4.00,"unbekannt"
|
||||
190,7.50,4.00,"unbekannt"
|
||||
195,8.00,4.00,"unbekannt"
|
||||
200,8.50,4.50,"unbekannt"
|
||||
205,8.50,4.50,"unbekannt"
|
||||
210,9.00,4.50,"unbekannt"
|
||||
215,9.50,5.00,"unbekannt"
|
||||
220,10.00,5.00,"unbekannt"
|
||||
225,10.00,5.00,"unbekannt"
|
||||
230,10.50,5.50,"unbekannt"
|
||||
235,11.00,5.50,"unbekannt"
|
||||
240,11.50,6.00,"unbekannt"
|
||||
245,12.00,6.00,"unbekannt"
|
||||
250,12.50,6.50,"unbekannt"
|
||||
255,13.00,6.50,"unbekannt"
|
||||
260,13.50,7.00,"unbekannt"
|
||||
265,14.00,7.00,"unbekannt"
|
||||
270,14.50,7.50,"unbekannt"
|
||||
275,15.50,8.00,"unbekannt"
|
||||
280,16.00,8.00,"unbekannt"
|
||||
285,16.50,8.50,"unbekannt"
|
||||
290,17.50,9.00,"unbekannt"
|
||||
295,18.00,9.00,"unbekannt"
|
||||
300,19.00,9.50,"unbekannt"
|
||||
305,19.50,10.00,"unbekannt"
|
||||
310,20.50,10.50,"unbekannt"
|
||||
315,21.50,11.00,"unbekannt"
|
||||
320,22.50,11.50,"unbekannt"
|
||||
325,23.50,12.00,"unbekannt"
|
||||
330,24.50,12.50,"VOX"
|
||||
335,25.50,13.00,"unbekannt"
|
||||
340,27.00,13.50,"unbekannt"
|
||||
345,28.50,14.50,"unbekannt"
|
||||
350,29.50,15.00,"unbekannt"
|
||||
355,31.50,16.00,"unbekannt"
|
||||
360,33.00,16.50,"unbekannt"
|
||||
365,34.50,17.50,"unbekannt"
|
||||
370,36.50,18.50,"unbekannt"
|
||||
375,38.50,19.50,"unbekannt"
|
||||
380,41.00,20.50,"unbekannt"
|
||||
385,43.50,22.00,"unbekannt"
|
||||
390,46.00,23.00,"unbekannt"
|
||||
395,49.00,24.50,"unbekannt"
|
||||
400,52.50,26.50,"unbekannt"
|
||||
|
Executable
+23
@@ -0,0 +1,23 @@
|
||||
"Waffentyp","Wärme","Schaden","Minimal","Nah","Mittel","Weit","Tonnage","Zeilen","Schuss/Tonne"
|
||||
"L-Laser",1,3,0,1,2,3,0.5,1
|
||||
"L-I-Laser",2,3,0,1,2,3,1,1
|
||||
"M-Laser",3,5,0,"1 - 3","4 - 6","7 - 9",1,1
|
||||
"M-I-Laser",4,6,0,"1 - 2","3 - 4","5 - 6",2,1
|
||||
"S-Laser",8,8,0,"1 - 5","6 - 10","11 - 15",5,2
|
||||
"ER-S-Laser",12,8,0,"1 - 7","8 - 14","15 - 19",5,2
|
||||
"S-I-Laser",10,9,0,"1 - 3","4 - 7","8 - 10",7,2
|
||||
"PPK",10,10,3,"1 - 6","7 - 12","13 - 18",7,3
|
||||
"ER-PPK",15,10,0,"1 - 7","8 - 14","15 - 23",7,3
|
||||
"LSR-5",2,"LSR",6,"1 - 7","8 - 14","15 - 21",2,1,24
|
||||
"LSR-10",4,"LSR",6,"1 - 7","8 - 14","15 - 21",5,2,12
|
||||
"LSR-15",5,"LSR",6,"1 - 7","8 - 14","15 - 21",6,3,8
|
||||
"LSR-20",6,"LSR",6,"1 - 7","8 - 14","15 - 21",10,5,6
|
||||
"KSR-2",2,"KSR",0,"1 - 3","4 - 6","7 - 9",1,1,50
|
||||
"KSR-4",3,"KSR",0,"1 - 3","4 - 6","7 - 9",2,1,25
|
||||
"KSR-6",4,"KSR",0,"1 - 3","4 - 6","7 - 9",3,2,15
|
||||
"AK-2",1,2,6,"1 - 8","9 - 16","17 - 24",6,1,45
|
||||
"AK-5",1,3,5,"1 - 6","7 - 12","13 - 18",8,4,20
|
||||
"AK-10",3,10,0,"1 - 5","6 - 10","11 - 15",12,7,10
|
||||
"AK-20",7,20,0,"1 - 3","4 - 6","7 - 9",14,10,5
|
||||
"MG",0,2,0,1,2,3,0.5,1,200
|
||||
"Flammer",3,2,0,1,2,3,1,1
|
||||
|
Reference in New Issue
Block a user