Use directly equipped items outside the inventory
This commit is contained in:
		@@ -29,7 +29,7 @@ class Item(Entity):
 | 
			
		||||
        The item is dropped from the inventory onto the floor
 | 
			
		||||
        """
 | 
			
		||||
        if self.held:
 | 
			
		||||
            self.held_by.inventory.remove(self)
 | 
			
		||||
            self.held_by.remove_from_inventory(self)
 | 
			
		||||
            self.held_by.map.add_entity(self)
 | 
			
		||||
            self.move(self.held_by.y, self.held_by.x)
 | 
			
		||||
            self.held = False
 | 
			
		||||
@@ -46,8 +46,8 @@ class Item(Entity):
 | 
			
		||||
        """
 | 
			
		||||
        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)
 | 
			
		||||
        self.held_by.equipped_item = self
 | 
			
		||||
 | 
			
		||||
    def unequip(self) -> None:
 | 
			
		||||
        """
 | 
			
		||||
 
 | 
			
		||||
@@ -75,6 +75,17 @@ class Player(InventoryHolder, FightingEntity):
 | 
			
		||||
        self.current_xp += xp
 | 
			
		||||
        self.level_up()
 | 
			
		||||
 | 
			
		||||
    def remove_from_inventory(self, obj: Item) -> None:
 | 
			
		||||
        """
 | 
			
		||||
        Remove the given item from the inventory, even if the item is equipped.
 | 
			
		||||
        """
 | 
			
		||||
        if obj == self.equipped_item:
 | 
			
		||||
            self.equipped_item = None
 | 
			
		||||
        elif obj == self.equipped_armor:
 | 
			
		||||
            self.equipped_armor = None
 | 
			
		||||
        else:
 | 
			
		||||
            return super().remove_from_inventory(obj)
 | 
			
		||||
 | 
			
		||||
    # noinspection PyTypeChecker,PyUnresolvedReferences
 | 
			
		||||
    def check_move(self, y: int, x: int, move_if_possible: bool = False) \
 | 
			
		||||
            -> bool:
 | 
			
		||||
 
 | 
			
		||||
@@ -127,6 +127,8 @@ class Game:
 | 
			
		||||
        elif key == KeyValues.INVENTORY:
 | 
			
		||||
            self.state = GameMode.INVENTORY
 | 
			
		||||
            self.display_actions(DisplayActions.UPDATE)
 | 
			
		||||
        elif key == KeyValues.USE and self.player.equipped_item:
 | 
			
		||||
            self.player.equipped_item.use()
 | 
			
		||||
        elif key == KeyValues.SPACE:
 | 
			
		||||
            self.state = GameMode.MAINMENU
 | 
			
		||||
        elif key == KeyValues.CHAT:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user