/// <summary> /// Use the given item. /// </summary> /// <param name="argument"></param> /// <returns></returns> public CommandOutput playerInteract(string argument) { bool success = false; string outputMessage = " "; // String to update display with. string systemMessage = "Unexpected Error Encountered"; // String to update the system with. DataAccess dataAccess = new DataAccess(); FindSceneItemResult searchResult = dataAccess.findScene(gameID, currentSceneIdentifier).findItem(argument); if (searchResult.Found) { if (searchResult.SceneItem.Type == SceneComponent.ComponentType.Door) { SceneDoor item = (SceneDoor)searchResult.SceneItem; if (item.haveRequiredItem(dataAccess.findPlayerInventory(playerID))) { Scene sceneToChange = dataAccess.findScene(gameID, currentSceneIdentifier); dataAccess.removeSceneComponent(gameID, sceneToChange, item); dataAccess.addSceneComponent(gameID, sceneToChange, item.exit); dataAccess.removePlayerInventoryItem(playerID, new SceneKey(item.requiredItemIdentifier, "Removed Item")); dataAccess.incrementPlayerScore(playerID); success = true; outputMessage = item.successMessage + " Your score is now " + new DataAccess().getPlayerScore(playerID).ToString(); systemMessage = "display update"; } else { outputMessage = item.failMessage; systemMessage = "Did not have correct key item for door."; } } else { outputMessage = string.Format("{0} is an item you can pick up.", searchResult.SceneItem.fullName); systemMessage = "Wrong type of item."; } } else { outputMessage = searchResult.Message; systemMessage = searchResult.Message; } return(new CommandOutput(success, outputMessage, systemMessage)); }
/// <summary> /// Get the given item. /// </summary> /// <param name="argument"></param> /// <returns></returns> public CommandOutput playerGet(string argument) { bool success = false; string outputMessage = ""; string systemMessage = "Unexpected Error Encountered"; DataAccess dataAccess = new DataAccess(); Scene sceneToChange = dataAccess.findScene(gameID, currentSceneIdentifier); FindSceneItemResult searchResult = sceneToChange.findItem(argument); if (searchResult.Found) { if (searchResult.SceneItem.Type == SceneComponent.ComponentType.Key) { SceneKey item = (SceneKey)searchResult.SceneItem; dataAccess.removeSceneComponent(gameID, sceneToChange, item); dataAccess.addPlayerInventoryItem(playerID, item); success = true; outputMessage = string.Format("Got {0}.", item.fullName); systemMessage = "display update"; } else { outputMessage = string.Format("{0} is an item that you use.", searchResult.SceneItem.fullName); systemMessage = "Tried to pick up item of wrong type."; } } else { outputMessage = searchResult.Message; systemMessage = searchResult.Message; } return(new CommandOutput(success, outputMessage, systemMessage)); }