# Path: combat/enums.py
# class DamageType(Enum):
#     Blunt = 0
#     Slash = 1
#     Pierce = 2
# 
# Path: util/dice.py
# class DiceStack(object):
#     __slots__ = ['amount', 'dice']
# 
#     def __init__(self, amount, dice):
#         self.amount = amount
#         self.dice = dice
# 
# class Dice(object):
#     __slots__ = ['sides']
# 
#     def __init__(self, sides):
#         self.sides = sides


from components.component import Component
from combat.enums import DamageType
from util.dice import DiceStack, Dice


class Weapon(Component):
    NAME = "weapon"

    def __init__(self, weapon_category, weapon_type, size, ammunition_uid=None, finesse=False,
                 loading=False, normal_range=0, long_range=0, reach=False, thrown=False, two_handed=False,
                 melee_damage_type=DamageType.Blunt, ranged_damage_type=None, damage_dice=DiceStack(1, Dice(1))):
        super().__init__()

# Path: combat/enums.py
# class DamageType(Enum):
#     Blunt = 0
#     Slash = 1
#     Pierce = 2
# 
# Path: util/dice.py
# class DiceStack(object):
#     __slots__ = ['amount', 'dice']
# 
#     def __init__(self, amount, dice):
#         self.amount = amount
#         self.dice = dice
# 
# class Dice(object):
#     __slots__ = ['sides']
# 
#     def __init__(self, sides):
#         self.sides = sides


# Path: components/weapon.py
from components.component import Component
from combat.enums import DamageType
from util.dice import DiceStack, Dice



class Weapon(Component):
    NAME = "weapon"

    def __init__(self, weapon_category, weapon_type, size, ammunition_uid=None, finesse=False,
                 loading=False, normal_range=0, long_range=0, reach=False, thrown=False, two_handed=False,
                 melee_damage_type=DamageType.Blunt, ranged_damage_type=None, damage_dice=DiceStack(1, Dice(1))):
        super().__init__()

        self.weapon_category = weapon_category