Example #1
0
 private void CleanLocalData()
 {
     myTeam    = null;
     otherTeam = null;
     SetBoard(null);
     Location = null;
     piece    = null;
 }
Example #2
0
        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);
        }
Example #3
0
 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;
 }
Example #4
0
 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)
     }
 }
Example #5
0
 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>();
 }
Example #6
0
        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());
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #12
0
 public void SetLocation(int x, int y)
 {
     Location = new GameArea.GameObjects.Location(x, y);
 }
Example #13
0
 public void SetLocation(GameArea.GameObjects.Location point)
 {
     Location = new GameArea.GameObjects.Location(point.X, point.Y);
 }