From 159beb98b25925f5ccc1d2feb20c2a7810dc9695 Mon Sep 17 00:00:00 2001 From: Timothy Warren Date: Tue, 8 Feb 2022 09:42:53 -0500 Subject: [PATCH] Add Equipment classes --- components/equippable.py | 44 ++++++++++++++++++++++++++++++++++++++++ equipment_types.py | 6 ++++++ 2 files changed, 50 insertions(+) create mode 100644 components/equippable.py create mode 100644 equipment_types.py diff --git a/components/equippable.py b/components/equippable.py new file mode 100644 index 0000000..382514a --- /dev/null +++ b/components/equippable.py @@ -0,0 +1,44 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +from components.base_component import BaseComponent +from equipment_types import EquipmentType + +if TYPE_CHECKING: + from entity import Item + + +class Equippable(BaseComponent): + parent: Item + + def __init__( + self, + equipment_type: EquipmentType, + power_bonus: int = 0, + defense_bonus: int = 0, + ): + self.equipment_type = equipment_type + + self.power_bonus = power_bonus + self.defense_bonus = defense_bonus + + +class Dagger(Equippable): + def __init__(self) -> None: + super().__init__(EquipmentType.WEAPON, power_bonus=2) + + +class Sword(Equippable): + def __init__(self) -> None: + super().__init__(EquipmentType.WEAPON, power_bonus=4) + + +class LeatherArmor(Equippable): + def __init__(self) -> None: + super().__init__(EquipmentType.ARMOR, defense_bonus=1) + + +class ChainMail(Equippable): + def __init__(self) -> None: + super().__init__(EquipmentType.ARMOR, defense_bonus=3) \ No newline at end of file diff --git a/equipment_types.py b/equipment_types.py new file mode 100644 index 0000000..9a0b5b3 --- /dev/null +++ b/equipment_types.py @@ -0,0 +1,6 @@ +from enum import auto, Enum + + +class EquipmentType(Enum): + WEAPON = auto() + ARMOR = auto()