public void Execute() { IUsableItem usableItem = Item as IUsableItem; usableItem.Use(); if (Item.CurrentStacksAmount <= 0) { inventory.RemoveItem(Item); } }
protected override bool Perform(GameCore <Player> game, out Point newPosition) { game.Journal.Write(new UsedItemMessage(item)); var keepItem = item.Use(game); if (!keepItem) { game.Player.Inventory.RemoveItem(item); } newPosition = game.PlayerPosition; return(true); }