private void CleanLocalData() { myTeam = null; otherTeam = null; SetBoard(null); Location = null; piece = null; }
public void SetLocation() { var Player = new Player(TeamColour.blue); var newLocation = new GameArea.GameObjects.Location(2, 3); Player.SetLocation(newLocation); Assert.AreEqual(newLocation.X, Player.Location.X); Assert.AreEqual(newLocation.Y, Player.Location.Y); }
public void GameStarted(GameArea.AppMessages.GameMessage messageObject) { CleanLocalData(); myTeam = messageObject.Players.ToList().Where(p => p.Team == Team).ToList(); otherTeam = messageObject.Players.ToList().Where(p => p.Team != Team).ToList(); SetBoard(messageObject.Board); Location = messageObject.PlayerLocation; gameFinished = false; State = AgentState.Playing; ActionToComplete = ActionType.none; }
public Player(Player original) { Team = original.Team; GUID = original.GUID; ID = original.ID; Location = new GameArea.GameObjects.Location(original.Location.X, original.Location.Y); if (original.piece != null) { this.piece = new GameArea.GameObjects.Piece(original.piece.ID, original.piece.TimeStamp, original.piece.Type, original.piece.PlayerId); // player can't see original piece (sham or goal info must be hidden) } }
public Player(TeamColour team, PlayerRole role = PlayerRole.member, PlayerSettingsConfiguration settings = null, IPlayerController gameController = null, string _guid = "TEST_GUID", IGameMaster gm = null, ulong id = 0) { Settings = settings; gameMaster = gm; Team = team; GUID = _guid; Role = role; Location = new GameArea.GameObjects.Location(0, 0); Controller = gameController; State = AgentState.SearchingForGame; LastMoveTaken = MoveType.up; ID = id; MyPlayerKnowledgeExchangeQueue = new List <KnowledgeExchangeRequestAgent>(); OtherPlayerKnowledgeExchangeQueue = new List <KnowledgeExchangeRequestAgent>(); }
public void ProcessPlayerDisconnectedRequest() { InitGameMaster(); var player = GetPlayer("testGUID-0001", 10, TeamColour.red, ActionType.TestPiece); gameMaster.RegisterPlayer(player); GameArea.GameObjects.Location location = gameMaster.Players[0].Location; PlayerDisconnectedGM data = new PlayerDisconnectedGM(10); data.Process(gameMaster); Assert.AreEqual(0, gameMaster.Players.Count); Assert.AreEqual(false, gameMaster.GetBoard.GetField(location.X, location.Y).HasPlayer()); }
public void GetClosestUnknownGoalForBlueTeamTestIfIsOnGoal() { GameArea.GameObjects.Location PlayerLocation = new GameArea.GameObjects.Location(1, 1); InitGameMaster(); var Player1 = GetPlayer("testGUID-0027", 10, TeamColour.blue, ActionType.Move, new PlayerControllerMock()); Player1.Controller.Player = Player1; Player1.SetLocation(PlayerLocation); RegisterPlayer(Player1, Player1.GUID); MoveType PlayerDirection = Player1.GetClosestUnknownGoalDirection(); Assert.AreEqual(PlayerDirection, MoveType.left); }
public void GoToGoalAreaForRedTeamTest() { GameArea.GameObjects.Location PlayerLocation = new GameArea.GameObjects.Location(1, 5); InitGameMaster(); var Player1 = GetPlayer("testGUID-0027", 10, TeamColour.red, ActionType.Move, new PlayerControllerMock()); Player1.Controller.Player = Player1; Player1.SetLocation(PlayerLocation); RegisterPlayer(Player1, Player1.GUID); //powinno byc Player1.GoToGoalArea() Player1.GoToGoalArea(Player1.Team); GameArea.GameObjects.Location expectedLocationPlayer = new GameArea.GameObjects.Location(PlayerLocation.X, PlayerLocation.Y + 1); Assert.AreEqual(expectedLocationPlayer, Player1.Location); }
public void GameMasterRestartGame() { InitGameMaster(); List <Player.Player> players = new List <Player.Player>(); players.Add(GetPlayer("testGUID-0001", 10, TeamColour.blue, ActionType.PlacePiece)); players.Add(GetPlayer("testGUID-0002", 11, TeamColour.blue, ActionType.PlacePiece)); players.Add(GetPlayer("testGUID-0003", 12, TeamColour.red, ActionType.PlacePiece)); players.Add(GetPlayer("testGUID-0004", 13, TeamColour.red, ActionType.PlacePiece)); foreach (var pl in players) { defaultGameMaster.RegisterPlayer(pl); } //save initial player locations List <GameArea.GameObjects.Location> locationsInit = new List <GameArea.GameObjects.Location>(); foreach (var pl in players) { locationsInit.Add(pl.Location); } //move players foreach (var pl in players) { GameArea.GameObjects.Location l = new GameArea.GameObjects.Location(pl.Location.X + 1 % defaultGameMaster.GetBoard.Width, pl.Location.Y); pl.SetLocation(l); defaultGameMaster.SetAbsolutePlayerLocation(l.X, l.Y, pl.GUID); } int playerscount = defaultGameMaster.Players.Count; //restart game string[] msg = defaultGameMaster.RestartGame(); string lastMsg = new RegisterGameMessage(defaultGameMaster.GetGameDefinition.GameName, (ulong)defaultGameMaster.GetGameDefinition.NumberOfPlayersPerTeam, (ulong)defaultGameMaster.GetGameDefinition.NumberOfPlayersPerTeam).Serialize(); Assert.AreEqual(0, defaultGameMaster.Players.Count); Assert.AreEqual(playerscount + 1, msg.Length); Assert.AreEqual(GameMasterState.RegisteringGame, defaultGameMaster.State); Assert.AreEqual(lastMsg, msg[msg.Length - 1]); }
public void GameMasterPerformsMoveActionToTaskField() { InitGameMaster(); var Player = GetPlayer("testGUID-0013", 10, TeamColour.blue, ActionType.Move); var currentLocation = new GameArea.GameObjects.Location(2, 4); var futureLocation = new GameArea.GameObjects.Location(2, 5); Player.SetLocation(2, 4); defaultGameMaster.RegisterPlayer(Player, Player.GUID, findFreeLocationAndPlacePlayer: false); // set an Player on a TaskField var setPositionResult = defaultGameMaster.SetAbsolutePlayerLocation(2, 4, "testGUID-0013"); // we change a location of GM's copy Assert.IsNotNull(defaultGameMaster.GetBoard.GetField(2, 4).Player); // action: Player moves up to (2,5) AppMessages.DataMessage response = new AppMessages.DataMessage(new Messages.Data() { playerId = Player.ID, TaskFields = new Messages.TaskField[] { }, GoalFields = null, PlayerLocation = currentLocation.ToBase() }); Messages.Piece piece; Messages.Field field; defaultGameMaster.PerformMoveAction(currentLocation, futureLocation, "testGUID-0013", response); var PlayerGameMasterCopy = defaultGameMaster.GetPlayerByGuid("testGUID-0013"); Assert.AreEqual(true, setPositionResult); Assert.AreEqual(GameArea.GameObjects.FieldType.Task, defaultGameMaster.GetBoard.GetField(2, 4).GetFieldType); Assert.AreEqual(GameArea.GameObjects.FieldType.Task, defaultGameMaster.GetBoard.GetField(2, 5).GetFieldType); Assert.AreEqual(futureLocation, PlayerGameMasterCopy.Location); Assert.IsNull(defaultGameMaster.GetBoard.GetField(2, 4).Player); Assert.IsNotNull(defaultGameMaster.GetBoard.GetField(2, 5).Player); Assert.AreEqual(Player.ID, defaultGameMaster.GetBoard.GetField(2, 5).Player.ID); Assert.AreEqual(futureLocation, response.PlayerLocation); }
public GameArea.GameObjects.Location CalculateFutureLocation(GameArea.GameObjects.Location oldLocation, MoveType direction) { GameArea.GameObjects.Location newLocation = null; switch (direction) { case MoveType.up: newLocation = new GameArea.GameObjects.Location(oldLocation.X, oldLocation.Y + 1); break; case MoveType.down: newLocation = new GameArea.GameObjects.Location(oldLocation.X, oldLocation.Y - 1); break; case MoveType.left: newLocation = new GameArea.GameObjects.Location(oldLocation.X - 1, oldLocation.Y); break; case MoveType.right: newLocation = new GameArea.GameObjects.Location(oldLocation.X + 1, oldLocation.Y); break; } return(newLocation); }
public void SetLocation(int x, int y) { Location = new GameArea.GameObjects.Location(x, y); }
public void SetLocation(GameArea.GameObjects.Location point) { Location = new GameArea.GameObjects.Location(point.X, point.Y); }