Files
BattleTech/mech_factory/store.py
T

92 lines
2.5 KiB
Python

from mech_factory import InnerStructure, Joint, Sustainment
from mech_factory.component_storage.items import Activator, Cockpit, Gyroskope, Reaktor, Sensors
from mech_factory.reader import ComponentReader
class ComponentStore(object):
def __init__(self, tonnage: float, movement_rate: int):
self.__components_reader = ComponentReader()
self.__tonnage = tonnage
self.__reactor_value = int(movement_rate * tonnage)
'''
Erstellt den erforderlichen Reaktor
'''
def get_reaktor(self) -> Reaktor:
return Reaktor(self.__reactor_value, self.__components_reader.reactor_tonnage_from(self.__reactor_value))
'''
Erstellt den Bewegungs-Aparat
'''
def get_gyroskope(self) -> Gyroskope:
return Gyroskope(float(round(self.__reactor_value / 100)))
'''
Erstellt die innere Struktur
'''
def get_inner_structure(self) -> InnerStructure:
gyroscope = self.get_gyroskope()
return InnerStructure(self.__components_reader.inner_structure_from(self.__tonnage), gyroscope)
# noinspection PyMethodMayBeStatic
class ItemStore(object):
def __init__(self):
pass
'''
Erstellt das Cockpit
'''
def get_cockpit(self) -> Cockpit:
return Cockpit()
'''
Erstellt die Lebenserhaltung
'''
def get_sustainment(self) -> Sustainment:
return Sustainment()
'''
Erstellt die Sensoren
'''
def get_sensors(self) -> Sensors:
return Sensors()
'''
Erstellt die Gelenke
* Hüftgelenk
* Schultergelenk
'''
def get_joint(self) -> Joint:
return Joint()
'''
Erstellt die Aktivatoren
* Oberschenkel-Aktivator
* Unterschenkel-Aktivator
* Fuß-Aktivator
* Oberarm-Aktivator
* Unterarm-Aktivator
* Hand-Aktivator
'''
def get_activator(self) -> Activator:
return Activator()
class InnerAmorStore:
def __init__(self, tonnage: float):
self.__inner_structure_data = ComponentReader().inner_amor_for_tonnage(tonnage)
def get_head_amor(self) -> int:
return self.__inner_structure_data['head']
def get_middle_torso_amor(self) -> int:
return self.__inner_structure_data['middle_torso']
def get_side_torso_amor(self) -> int:
return self.__inner_structure_data['side_torso']
def get_arm_amore(self) -> int:
return self.__inner_structure_data['arm']
def get_leg_amore(self) -> int:
return self.__inner_structure_data['leg']