Beispiel #1
0
        public void ParseAndExecute(string alias, Arguments args = null)
        {
            var grammar = new GrammarParser(args);

            if (!grammar.HasSubject())
            {
                ItemStrings.WHAT_ITEM.OutputResponse(alias);
                return;
            }

            var target = grammar.GetSubject();

            var playerInventory = this.Command.GameState.Player.Inventory;
            var targetItem      = _parserService.GetItemFromInventory(target, playerInventory);

            if (targetItem == null)
            {
                ItemStrings.ITEM_NOT_IN_PLAYER_INVENTORY.OutputResponse(target);
                return;
            }

            if (!targetItem.IsDroppable)
            {
                ItemStrings.ITEM_CANNOT_BE_DROPPED.OutputResponse(targetItem.Name);
                return;
            }

            this.Command.DropItem(targetItem);

            targetItem.ItemStrings.ITEM_DROPPED.OutputResponse();
        }