コード例 #1
0
        public void HandleKnowledgeExchangeRequestFromMyLeader()
        {
            InitGameMaster();
            var Player = GetPlayer("testGUID-0004", 10, TeamColour.blue, ActionType.PickUpPiece);

            Player.SetLocation(2, 2);

            Player.myTeam.Add(new GameArea.GameObjects.Player(5, TeamColour.blue, PlayerRole.leader));

            RegisterPlayer(Player, Player.GUID);
            Player.GetBoard.GetTaskField(2, 7).Player = new GameArea.GameObjects.Player(50, TeamColour.red, PlayerRole.member);
            Player.GetBoard.GetGoalField(2, 0).Player = new GameArea.GameObjects.Player(60, TeamColour.red, PlayerRole.leader);
            Player.GetBoard.GetTaskField(3, 5).Piece  = new GameArea.GameObjects.Piece(150, DateTime.Now, PieceType.unknown);

            KnowledgeExchangeRequestAgent request = new KnowledgeExchangeRequestAgent(10, 5);

            var responseArray = request.Process(Player.Controller);
            var responseData  = PlayerReader.GetObjectFromXML(responseArray[0]) as DataAgent;

            Assert.AreEqual(5ul, responseData.PlayerId);

            Assert.AreEqual(10ul, responseData.Goals.Where(f => f.X == 2 && f.Y == 2).FirstOrDefault().Player.ID);
            Assert.AreEqual(10, responseData.Goals.Where(f => f.X == 2 && f.Y == 2).FirstOrDefault().PlayerId);

            Assert.AreEqual(50ul, responseData.Tasks.Where(f => f.X == 2 && f.Y == 7).FirstOrDefault().Player.ID);
            Assert.AreEqual(50, responseData.Tasks.Where(f => f.X == 2 && f.Y == 7).FirstOrDefault().PlayerId);
            Assert.AreEqual(PlayerRole.member, responseData.Tasks.Where(f => f.X == 2 && f.Y == 7).FirstOrDefault().Player.Role);

            Assert.AreEqual(60ul, responseData.Goals.Where(f => f.X == 2 && f.Y == 0).FirstOrDefault().Player.ID);
            Assert.AreEqual(60, responseData.Goals.Where(f => f.X == 2 && f.Y == 0).FirstOrDefault().PlayerId);

            Assert.AreEqual(150ul, responseData.Tasks.Where(f => f.X == 3 && f.Y == 5).FirstOrDefault().Piece.ID);
        }
コード例 #2
0
        public void HandleKnowledgeExchangeRequestFromOtherPlayer()
        {
            InitGameMaster();
            var Player = GetPlayer("testGUID-0004", 10, TeamColour.blue, ActionType.PickUpPiece);

            Player.SetLocation(2, 2);

            Player.otherTeam.Add(new GameArea.GameObjects.Player(5, TeamColour.red, PlayerRole.member));

            RegisterPlayer(Player, Player.GUID);
            Player.GetBoard.GetTaskField(2, 7).Player = new GameArea.GameObjects.Player(50, TeamColour.red, PlayerRole.member);
            Player.GetBoard.GetGoalField(2, 0).Player = new GameArea.GameObjects.Player(60, TeamColour.red, PlayerRole.leader);
            Player.GetBoard.GetTaskField(3, 5).Piece  = new GameArea.GameObjects.Piece(150, DateTime.Now, PieceType.unknown);

            KnowledgeExchangeRequestAgent request = new KnowledgeExchangeRequestAgent(10, 5);

            var responseArray = request.Process(Player.Controller);
            var responseData  = PlayerReader.GetObjectFromXML(responseArray[0]) as DataAgent;

            Assert.IsNull(responseData);
            Assert.AreEqual(1, Player.OtherPlayerKnowledgeExchangeQueue.Count);
            Assert.AreEqual(5ul, Player.OtherPlayerKnowledgeExchangeQueue[0].SenderPlayerId);
        }
コード例 #3
0
ファイル: Agent.cs プロジェクト: wis-niowy/TheProjectGame
 public void AddMyPlayerExhangeKnowledgeRequest(KnowledgeExchangeRequestAgent msg)
 {
     MyPlayerKnowledgeExchangeQueue.RemoveAll(r => r.SenderPlayerId == msg.SenderPlayerId); // usun stare rzadanie
     MyPlayerKnowledgeExchangeQueue.Add(msg);                                               // zapisz najnowsze rzadanie
 }