private UserMessage Play(string subject, int currentRoomIndex, Point location, FindItemInInventoryCb findItemInInventoryCb) { return new UserMessage(playMessage); }
private UserMessage Wave(string subject, int currentRoomIndex, Point location, FindItemInInventoryCb findItemInInventoryCb) { UserMessage userMessage = null; foreach(var specialRoomAction in specialRoomActions) { if(specialRoomAction.RoomId == currentRoomIndex) { userMessage = specialRoomAction.RunAction(updateMapCb); } } if (userMessage == null) { userMessage = new UserMessage(); userMessage.AddLine("As you wave"); userMessage.AddLine("the WAND...."); userMessage.AddLine(" "); userMessage.AddLine(" Nothing"); userMessage.AddLine(" Happens!"); } return userMessage; }
private UserMessage Read(string subject, int currentRoomIndex, Point location, FindItemInInventoryCb findItemInInventoryCb) { UserMessage userMessage = new UserMessage(); CastleItem glasses = findItemInInventoryCb("Glasses"); if(glasses == null) { userMessage.AddLine(" You can't see"); userMessage.AddLine(" well enough"); userMessage.AddLine(" It's all"); userMessage.AddLine(" Blurry."); } else { userMessage.AddLine("The book reads"); userMessage.AddLine(" Wave Scepter"); } return userMessage; }
private UserMessage Drink(string subject, int currentRoomIndex, Point location, FindItemInInventoryCb findItemInInventoryCb) { if(subject.StartsWith("water", StringComparison.CurrentCultureIgnoreCase) == false) { return null; } UserMessage returnMessage = new UserMessage(); if (Full) { returnMessage.AddLine("That was Good!"); if (Thirsty) { returnMessage.AddLine("I feel much"); returnMessage.AddLine("better now!"); Thirsty = false; Empty(); } } else { returnMessage.AddLine("You don't have"); returnMessage.AddLine("any WATER"); } return returnMessage; }
private UserMessage GetWater(string subject, int currentRoomIndex, Point location, FindItemInInventoryCb findItemInInventoryCb) { if (subject.StartsWith("water", StringComparison.CurrentCultureIgnoreCase) == false) { return null; } UserMessage returnMessage = new UserMessage(); if (this.CanTakeItem(location)) { CastleItem castleItem = findItemInInventoryCb("flask"); if(castleItem.IsSpecialCommandSupported(CommandVerb.Drink)) { DrinkableItem drinkableItem = castleItem as DrinkableItem; if (drinkableItem.Full == false) { drinkableItem.Fill(); returnMessage.AddLine("Done"); } else { returnMessage.AddLine(" The flask is full!"); } } else { returnMessage.AddLine("You don't have a Container!"); } } else { returnMessage.AddLine(" I can't reach it!"); } return returnMessage; }
public UserMessage RunCommand(CommandVerb verb, String subject, int currentRoomIndex, Point location, FindItemInInventoryCb findItemInInventoryCb) { return SpecialCommandList[verb](subject, currentRoomIndex, location, findItemInInventoryCb); }