private void Cache_AddPlayAdventure(PlayAdventure p) { var cacheEntryOptions = new MemoryCacheEntryOptions() // Keep in cache for this time, reset time if accessed. .SetSlidingExpiration(TimeSpan.FromMinutes(8 * 60)); // 8 hours _ = _gameCache.Set(p.InstanceID, p, cacheEntryOptions); }
private static bool Helper_IsPlayerDead(PlayAdventure p) { if (p.Player.HealthCurrent < 1) { return(true); } return(false); }
public Boolean GameInstance_Update(PlayAdventure p) { if (GameInstance_Exists(p.InstanceID)) { Cache_ReplacePlayAdventure(p); return(true); } return(false); }
public void PlayTestFirstRoom() { // Enter the Game a pick up the first item var newadv = _adventureFramework.ControllerEntry_NewGame(1); PlayAdventure adv = _adventureFramework.GameInstance_GetObject(newadv.InstanceID); var gameMoveResult = _adventureController.GameMove(new GameMove { InstanceID = adv.InstanceID, Move = "get bugle" }); Assert.IsTrue(!gameMoveResult.ItemsMessage.Contains("BUGLE")); }
public PlayAdventure GameInstance_GetObject(string InstanceId) { PlayAdventure playAdventure = Cache_GetPlayAdventure(InstanceId); if (playAdventure.InstanceID == null) { playAdventure.StartRoom = -1; playAdventure.WelcomeMessage = "Error: No Instance Found!"; } return(playAdventure); }
public void PlayTestFirstRoomPetKitten() { // Enter the Game, Pet the Kitten and then see if the Kitten follows the player var newadv = _adventureFramework.ControllerEntry_NewGame(1); PlayAdventure adv = _adventureFramework.GameInstance_GetObject(newadv.InstanceID); _ = _adventureController.GameMove(new GameMove { InstanceID = adv.InstanceID, Move = "pet kitten" }); var gameMoveResult = _adventureController.GameMove(new GameMove { InstanceID = adv.InstanceID, Move = "d" }); Assert.IsTrue(gameMoveResult.RoomMessage.Contains("KITTEN")); }
public void TestItemMovemementAndCache() { // Start Game var newadv = _adventureFramework.ControllerEntry_NewGame(1); PlayAdventure adv = _adventureFramework.GameInstance_GetObject(newadv.InstanceID); // Get Item var gameMoveResult = _adventureController.GameMove(new GameMove { InstanceID = adv.InstanceID, Move = "get bugle" }); // Save the Game State _adventureFramework.GameInstance_Update(adv); // Load Game from Cache adv = _adventureFramework.GameInstance_GetObject(adv.InstanceID); // Check to see if the item is in the player inventory var itemloc = adv.Items.Find(i => i.Name.ToLower() == "bugle").Location; Assert.IsTrue(itemloc == 9999); }
public PlayAdventure SetupAdventure(string gameid) { var _gamerTag = new GamerTags().RandomTag(); var _play = new PlayAdventure { GameID = 1, GameName = "Adventure House 3.0 (.Net 5.0)", GameHelp = GetAdventureHelpText(), InstanceID = gameid, StartRoom = 20, WelcomeMessage = "___________________________\r\n" + " Dear " + _gamerTag + ",\r\n\r\n" + " This is a simple 2 word\r\n" + " adventure game. Use simple\r\n" + " but HELPful commands to \r\n" + " find your way out.\r\n" + " Good Luck! \r\n" + " The Management.\r\n" + "___________________________\r\n\r\n", MaxHealth = 200, HealthStep = 2, Items = Items(), Messages = Messages(), Rooms = Rooms(), Player = new Player { Name = _gamerTag, PlayerID = gameid, HealthMax = 200, HealthCurrent = 200, Room = 20, Steps = 2, Verbose = true, Points = 1, PlayerDead = false }, GameActive = true, PointsCheckList = new List <string> { "NewGame" } }; return(_play); }
private void Cache_ReplacePlayAdventure(PlayAdventure p) { _gameCache.Remove(p.InstanceID); Cache_AddPlayAdventure(p); }
private static Tuple <bool, GameMoveResult, PlayAdventure, CommandState> Helper_DidPlayerMove(PlayAdventure p, GameMoveResult gmr, CommandState cs) { cs.Message = ""; if (p.Player.PlayerDead == false) { var movecommands = new List <string> { "go", "nor", "sou", "eas", "wes", "up", "down", "n", "s", "e", "w", "u", "d" }; if (movecommands.Contains(cs.Command)) { List <string> ml; if (cs.Command == "go") { ml = new List <string> { "north", "south", "east", "west", "up", "down" }; if (ml.Contains(cs.Modifier)) { cs.Valid = true; } else { cs.Valid = false; } } // if the command is a short move convert to word // shortcut for moves ml = new List <string> { "nor", "sou", "eas", "wes", "up", "down", "n", "s", "e", "w", "u", "d" }; if (ml.Contains(cs.Command)) { cs = Parse_ConvertShortMove(cs.Command); } if (cs.Valid == true) { (p, cs) = Action_MovePlayer(p, cs); // update the gmr with the new room details gmr.RoomName = Object_GetRoom(p.Rooms, p.Player.Room).Name; gmr.RoomMessage = Object_GetRoom(p.Rooms, p.Player.Room).Desc; gmr.PlayerName = p.Player.Name; gmr.ItemsMessage = GetRoomItemsList(p.Player.Room, p.Items, true); return(new Tuple <bool, GameMoveResult, PlayAdventure, CommandState>(true, gmr, p, cs)); } else if (cs.Valid == false) { cs.Message = "Wrong Way!"; } } } else { cs.Message = GetFunMessage(p.Messages, "DeadMove".Trim(), cs.Modifier); } return(new Tuple <bool, GameMoveResult, PlayAdventure, CommandState>(false, gmr, p, cs)); }
private static int Helper_SetPlayerNewHealth(PlayAdventure p) { return(p.Player.HealthCurrent - p.HealthStep); }
private static Player Helper_SetPlayerPoints(bool isgeneric, string ItemorRoomName, PlayAdventure p) { Room rm; Item item; string c; c = p.PointsCheckList.Find(t => t.ToString().ToLower() == ItemorRoomName.ToLower()); if ((c == null) && (isgeneric == true)) { p.Player.Points += 5; p.PointsCheckList.Add(ItemorRoomName); } else { if (c == null) { // If the item or room has not been scored then add the points rm = p.Rooms.Find(t => t.Name.ToLower() == ItemorRoomName.ToLower()); if (rm != null) { p.Player.Points += rm.RoomPoints; p.PointsCheckList.Add(rm.Name); } else { item = p.Items.Find(t => t.Name.ToLower() == ItemorRoomName.ToLower()); if (item != null) { p.Player.Points += item.ActionPoints; p.PointsCheckList.Add(item.Name); } } } } return(p.Player); }