# Path: abilities/physical_abilities.py
# class PhysicalAbilities(Enum):
#     GRASP = 0
#     STAND = 1
#     SEE = 2
#     HEAR = 3
#     BITE = 4
#     PUNCH = 5
#     KICK = 6
#     EAT = 7
#     THINK = 8
#     MOVE = 9
#     LIVE = 10
#     BREATHE = 11
# 
# Path: bodies/body_part.py
# class BodyPart(object):
#     def __init__(self, uid, physical_abilities=None, relative_size=1, threat_level=ThreatLevel.Minor):
#         """
#         :param uid: ID Name of the bodies part
#         :param physical_abilities: Dictionary with abilities granted if any with its relative power as value
#         :param relative_size: Percentage of bodies size, does not have to add up to 100
#         """
#         self.uid = uid
#         self.relative_size = relative_size
#         self.threat_level = threat_level
#         if physical_abilities:
#             self.physical_abilities = physical_abilities
#         else:
#             self.physical_abilities = {}
# 
# Path: combat/enums.py
# class ThreatLevel(Enum):
#     Minor = 0
#     Major = 1
#     Critical = 2
#     Fatal = 3


from abilities.physical_abilities import PhysicalAbilities
from bodies.body_part import BodyPart
from combat.enums import ThreatLevel


humanoid_head = BodyPart('humanoid_head', relative_size=25, threat_level=ThreatLevel.Major)
humanoid_eye = BodyPart('humanoid_eye', {PhysicalAbilities.SEE: 1}, relative_size=5, threat_level=ThreatLevel.Critical)
humanoid_ear = BodyPart('humanoid_ear', {PhysicalAbilities.HEAR: 1}, relative_size=5)
humanoid_mouth = BodyPart('humanoid_mouth', {PhysicalAbilities.EAT: 1}, relative_size=5)
humanoid_brain = BodyPart('humanoid_brain', {PhysicalAbilities.THINK: 1}, relative_size=15, threat_level=ThreatLevel.Fatal)
humanoid_torso = BodyPart('humanoid_torso', relative_size=50, threat_level=ThreatLevel.Major)
humanoid_heart = BodyPart('humanoid_heart', {PhysicalAbilities.LIVE: 1}, relative_size=25, threat_level=ThreatLevel.Fatal)
humanoid_lungs = BodyPart('humanoid_lungs', {PhysicalAbilities.BREATHE: 1}, relative_size=25, threat_level=ThreatLevel.Fatal)
humanoid_arm = BodyPart('humanoid_arm', relative_size=25, threat_level=ThreatLevel.Major)
humanoid_hand = BodyPart('humanoid_hand', {PhysicalAbilities.GRASP: 1, PhysicalAbilities.PUNCH: 1}, relative_size=10)
humanoid_leg = BodyPart('humanoid_leg', {PhysicalAbilities.STAND: 1, PhysicalAbilities.MOVE: 1}, relative_size=25, threat_level=ThreatLevel.Major)

# Path: abilities/physical_abilities.py
# class PhysicalAbilities(Enum):
#     GRASP = 0
#     STAND = 1
#     SEE = 2
#     HEAR = 3
#     BITE = 4
#     PUNCH = 5
#     KICK = 6
#     EAT = 7
#     THINK = 8
#     MOVE = 9
#     LIVE = 10
#     BREATHE = 11
# 
# Path: bodies/body_part.py
# class BodyPart(object):
#     def __init__(self, uid, physical_abilities=None, relative_size=1, threat_level=ThreatLevel.Minor):
#         """
#         :param uid: ID Name of the bodies part
#         :param physical_abilities: Dictionary with abilities granted if any with its relative power as value
#         :param relative_size: Percentage of bodies size, does not have to add up to 100
#         """
#         self.uid = uid
#         self.relative_size = relative_size
#         self.threat_level = threat_level
#         if physical_abilities:
#             self.physical_abilities = physical_abilities
#         else:
#             self.physical_abilities = {}
# 
# Path: combat/enums.py
# class ThreatLevel(Enum):
#     Minor = 0
#     Major = 1
#     Critical = 2
#     Fatal = 3


# Path: data/python_templates/body_parts.py
from abilities.physical_abilities import PhysicalAbilities
from bodies.body_part import BodyPart
from combat.enums import ThreatLevel



humanoid_head = BodyPart('humanoid_head', relative_size=25, threat_level=ThreatLevel.Major)
humanoid_eye = BodyPart('humanoid_eye', {PhysicalAbilities.SEE: 1}, relative_size=5, threat_level=ThreatLevel.Critical)
humanoid_ear = BodyPart('humanoid_ear', {PhysicalAbilities.HEAR: 1}, relative_size=5)
humanoid_mouth = BodyPart('humanoid_mouth', {PhysicalAbilities.EAT: 1}, relative_size=5)
humanoid_brain = BodyPart('humanoid_brain', {PhysicalAbilities.THINK: 1}, relative_size=15, threat_level=ThreatLevel.Fatal)
humanoid_torso = BodyPart('humanoid_torso', relative_size=50, threat_level=ThreatLevel.Major)
humanoid_heart = BodyPart('humanoid_heart', {PhysicalAbilities.LIVE: 1}, relative_size=25, threat_level=ThreatLevel.Fatal)
humanoid_lungs = BodyPart('humanoid_lungs', {PhysicalAbilities.BREATHE: 1}, relative_size=25, threat_level=ThreatLevel.Fatal)
humanoid_arm = BodyPart('humanoid_arm', relative_size=25, threat_level=ThreatLevel.Major)
humanoid_hand = BodyPart('humanoid_hand', {PhysicalAbilities.GRASP: 1, PhysicalAbilities.PUNCH: 1}, relative_size=10)
humanoid_leg = BodyPart('humanoid_leg', {PhysicalAbilities.STAND: 1, PhysicalAbilities.MOVE: 1}, relative_size=25, threat_level=ThreatLevel.Major)

humanoid_foot = BodyPart('humanoid_foot', {PhysicalAbilities.STAND: 1, PhysicalAbilities.MOVE: 1}, relative_size=10)