protected virtual void readTCPMsg(ReceivedLocalMessage inMsg) { APIMsgConclusion outMsg = apiRouter.handleIncomingMsg(inMsg.message); if (outMsg.target == MsgTarget.Server) { onOutgoingLocalMsg(outMsg.msg, ClientPlayersHandler.sendFromCurrentPlayer()); isListeningForTCP = false; } else if (outMsg.target == MsgTarget.Player) { ClientPlayersHandler.getCurrentPlayer().takeInput(outMsg.msg); } }
public void protocolSimulateBothPlayerMove(string playerDir, string enemyDir, int pX, int pY, int eX, int eY, string rawBoard, string rawExpected) { SnakeAPIRouter router = new SnakeAPIRouter(); Board startBoard = SnakeTestUtils.generateBoard(rawBoard, playerDir, enemyDir); Board expected = SnakeTestUtils.generateBoard(rawExpected, playerDir, enemyDir, new int[] { pX, pY }, new int[] { eX, eY }); JSONObject jObj = SnakeProtocolEncoder.generateSimulateJMsg(startBoard, playerDir, enemyDir); //Debug.Log("Generated simulate move request: \n" + jObj.Print(true) + "\n"); APIMsgConclusion response = router.handleIncomingMsg(jObj.Print()); Assert.True(response.target == MsgTarget.Player); Assert.True(response.status == ResponseStatus.Success); JSONObject newJBoard = new JSONObject(response.msg); //Debug.Log("Generated simulate move response: \n" + newJBoard.Print(true) + "\n"); //JSONObject newJBoard = jResponse.GetField(Constants.JProtocol.board); Board newBoard = new Board(newJBoard); // startBoard.printBoard(); // newBoard.printBoard(); Assert.True(SnakeTestUtils.compareBoards(expected, newBoard)); }
public void getPossibleMovesTest(string playerDir, string enemyDir, string[] playerExpected, string[] enemyExpected) { List <string> playerExpectedList = playerExpected.ToList(); List <string> enemyExpectedList = enemyExpected.ToList(); SnakeAPIRouter router = new SnakeAPIRouter(); //Board startBoard = SnakeTestUtils.generateBoard(rawBoard, playerDir, enemyDir); JSONObject jMsg = SnakeProtocolEncoder.generateGetPossMovesJMsg(playerDir, enemyDir); APIMsgConclusion response = router.handleIncomingMsg(jMsg.Print()); Assert.True(response.target == MsgTarget.Player); Assert.True(response.status == ResponseStatus.Success); Debug.Log(response.msg); PossibleMoves moves = extractPossibleMoves(new JSONObject(response.msg)); Assert.True(SnakeTestUtils.comparePossibleMoves(playerExpectedList, moves.playerMoves)); Assert.True(SnakeTestUtils.comparePossibleMoves(enemyExpectedList, moves.enemyMoves)); Debug.Log("True...."); }
protected override void readTCPMsg(ReceivedLocalMessage msg) { if (msg.message.Length == 0) { RealtimeTCPController.requestBoard(convertColorToTeam(localPlayerColor), true); return; } APIMsgConclusion conclusion = APIRouter.handleIncomingMsg(msg.message); if (conclusion.target == MsgTarget.Server) { int dir = -1; if (parseCommandMsg(msg.message, out dir)) { sendServerMsg(new GameCommand(localPlayerColor, dir), (short)SnakeProtocol.MsgType.playerCommands); } RealtimeTCPController.requestBoard(convertColorToTeam(localPlayerColor), true); } else if (conclusion.status == ResponseStatus.Success && conclusion.target == MsgTarget.Player) { ClientPlayersHandler.getPlayerFromColor(localPlayerColor).takeInput(conclusion.msg); } }