private void InspectFromCurrentLocation(Noun target) { if (_parserService.HasItemInCurrentLocation(target)) { var targetItem = _parserService.GetItemFromCurrentLocation(target); this.Command.InspectItemInCurrentLocation(targetItem); return; } ItemStrings.ITEM_DOES_NOT_EXIST.OutputResponse(target); }
private void LookInsideContainer(Noun container) { var targetContainer = _parserService.GetItemFromCurrentLocation(container); if (targetContainer == null) { ItemStrings.ITEM_DOES_NOT_EXIST.OutputResponse(container); return; } this.Command.LookInsideContainer(targetContainer); }
private void TakeFromCurrentLocation(Noun target) { var targetItem = _parserService.GetItemFromCurrentLocation(target); if (target.Word == "all" || target.Word == "everything") { var takeableItems = this.Command.GameState.Player.GetItemsInCurrentLocation() .Where(i => i.IsTakeable) .ToList(); if (takeableItems.Count == 0) { ItemStrings.LOCATION_HAS_NO_TAKEABLE_ITEMS.OutputResponse(); return; } this.Command.TakeItemsFromCurrentLocation(takeableItems); takeableItems.ForEach(i => i.ItemStrings.ITEM_TAKEN_VERBOSE.OutputResponse(i)); return; } if (targetItem == null) { ItemStrings.ITEM_DOES_NOT_EXIST.OutputResponse(target); return; } if (!targetItem.IsTakeable) { ItemStrings.ITEM_CANNOT_BE_TAKEN.OutputResponse(targetItem.Name); return; } this.Command.TakeItemFromCurrentLocation(targetItem); targetItem.ItemStrings.ITEM_TAKEN.OutputResponse(); return; }