from ..interfaces import Entity, FightingEntity

class Item(Entity):
    held:bool

    def __init__(self, *args, **kwargs):
        super().__init__(self, *args, **kwargs)
        self.held = False
    
    def drop(self, x:int, y:int):
        self.held = False
        self.move(x, y)
    
    def hold(self):
        self.held = True

class Bomb(Item):
    damage:int = 5
    exploding:bool

    def __init__(self, *args, **kwargs):
        super().__init__(self, *args, **kwargs)
        self.exploding = False

    def drop(self, x:int, y:int):
        super.drop(self, x, y)
        self.exploding = True
    
    def act(self, map):
        if self.exploding:
            for e in map.entities:
                if abs (e.x - self.x) + abs (e.y - self.y) <= 1 and isinstance(e,FightingEntity):
                    e.take_damage(self, self.damage)