We can equip items

This commit is contained in:
Yohann D'ANELLO
2020-12-18 17:30:03 +01:00
parent 330d78702a
commit fe769c4488
5 changed files with 47 additions and 15 deletions

View File

@ -4,7 +4,6 @@
from random import choice, randint
from typing import Optional
from .player import Player
from ..interfaces import Entity, FightingEntity, Map, InventoryHolder
from ..translations import gettext as _
@ -45,15 +44,26 @@ class Item(Entity):
"""
Indicates what should be done when the item is equipped.
"""
if self.held_by.equipped_item:
self.held_by.equipped_item.unequip()
self.held_by.equipped_item = self
self.held_by.remove_from_inventory(self)
def hold(self, player: InventoryHolder) -> None:
def unequip(self) -> None:
"""
Indicates what should be done when the item is unequipped.
"""
self.held_by.add_to_inventory(self)
self.held_by.equipped_item = None
def hold(self, holder: InventoryHolder) -> None:
"""
The item is taken from the floor and put into the inventory
"""
self.held = True
self.held_by = player
self.held_by = holder
self.held_by.map.remove_entity(self)
player.add_to_inventory(self)
holder.add_to_inventory(self)
def save_state(self) -> dict:
"""
@ -116,7 +126,7 @@ class Bomb(Item):
"""
damage: int = 5
exploding: bool
owner: Optional["Player"]
owner: Optional["InventoryHolder"]
tick: int
def __init__(self, name: str = "bomb", damage: int = 5,