from __future__ import annotations from typing import List, Tuple, TYPE_CHECKING from actions import BaseAction, MeleeAction, MovementAction, WaitAction if TYPE_CHECKING: from entity import Entity class BaseUseable: """Base type for useable items, with various utilities""" entity: Entity def __init__(self, entity): self.entity = entity def activate(self) -> BaseAction: """Activate this item's effect""" raise NotImplementedError() class Consumable(BaseUseable): """This disappears after use""" def activate(self) -> BaseAction: pass #TODO: finish useable items, with distinct effects