protected override void initHandlers() { apiRouter = new Connect4APIRouter(); connectionToServer.RegisterHandler((short)CommProtocol.MsgType.boardUpdate, requestMove); connectionToServer.RegisterHandler((short)CommProtocol.MsgType.playerInit, initSettings); connectionToServer.RegisterHandler((short)CommProtocol.MsgType.RPCMove, handleRPCMove); connectionToServer.RegisterHandler((short)CommProtocol.MsgType.gameInfo, handleGameStatus); connectionToServer.RegisterHandler((short)ServerCommProtocl.PlayerJoinedGameRoom, handlePlayerJoinedRoom); connectionToServer.RegisterHandler((short)ServerCommProtocl.PlayerLeftGameRoom, handlePlayerLeftRoom); connectionToServer.RegisterHandler((short)ServerCommProtocl.PlayerTimerInit, handlePlayerTimerInit); connectionToServer.RegisterHandler((short)ServerCommProtocl.PlayerTimerCommand, handlePlayerTimerCommand); StartCoroutine(findAndInitRenderer <Renderer>((x) => localRenderer = x)); StartCoroutine(handleNetworkMsgQueue()); //Quick hack humanControlls = localRenderer.gameObject.GetComponent <Connect4HumanControlls>(); humanControlls.init((move) => { onOutgoingLocalMsg(move.ToString(), ClientPlayersHandler.sendFromCurrentPlayer()); humanControlls.endPlayerTurn(); }); if (ClientPlayersHandler.hasLocalHumanPlayer()) { ClientPlayersHandler.getLocalHumanPlayer().onHumanTakeInput = () => { humanControlls.startPlayerTurn(); } } ; TCPMessageQueue.readMsgInstant = ((msg) => { TCPMessageQueue.popMessage(); readTCPMsg(msg); }); }
public void handleInitSettings(NetworkMessage initMsg) { byte[] bytes = initMsg.reader.ReadBytesAndSize(); GameInfo msg = ClientController.Deserialize <GameInfo> (bytes); ClientPlayersHandler.initPlayerColor(msg.username, msg.myColor); isListeningForTCP = true; }
public void startButtonClicked() { Msf.Connection.SendMessage((short)ServerCommProtocl.StartSinglePlayerGame); ClientPlayersHandler.resetLocalPLayers(); gameObject.SetActive(false); ClientUIStateManager.requestGotoState(ClientUIStates.PlayingGame, scene.SceneName); //SceneManager.LoadScene (scene.SceneName); }
public void requestMove(NetworkMessage boardMsg) { byte[] bytes = boardMsg.reader.ReadBytesAndSize(); CommProtocol.StringMessage msg = Deserialize <Game.CommProtocol.StringMessage> (bytes); lastRawBoard = msg.msg; string formattedBoard = Connect4JsonParser.formatBoardMsgFromServer(msg.msg, msg.color); ClientPlayersHandler.onReceiveServerMsg(formattedBoard, msg.color); }
public void handleInitSettings(NetworkMessage initMsg) { GameInfo msg = Deserialize <GameInfo> (initMsg.reader.ReadBytesAndSize()); ClientPlayersHandler.initPlayerColor(msg.username, msg.myColor); LocalPlayer p = ClientPlayersHandler.getPlayerFromColor(msg.myColor); RealtimeTCPController.registerLocalPlayer(colorToTeam(msg.myColor), p.takeInput, p.isMainPlayer()); if (p.isMainPlayer()) { isListeningForTCP = true; } }
private static void setupLocalPlayers(PreGameSlotInfo[] slots) { ClientPlayersHandler.resetLocalPLayers(); string localUsername = ClientUIOverlord.getCurrentAcountInfo().Username; foreach (PreGameSlotInfo slot in slots) { if (slot.belongsToPlayer == localUsername) { addLocalPlayer(slot.type); } } }
public void requestMove(BoardMsg msg) { PlayerColor requestColor = msg.updateNumber % 2 == 0 ? PlayerColor.White : PlayerColor.Black; if (ClientPlayersHandler.hasLocalPlayerOfColor(requestColor)) { waitingForInput = true; ClientPlayersHandler.onReceiveServerMsg(formatBoard(msg.requestMoveColor, msg.board), msg.requestMoveColor); } else { waitingForInput = false; } }
public void handleInitSettings(NetworkMessage initMsg) { byte[] bytes = initMsg.reader.ReadBytesAndSize(); GameInfo msg = ClientController.Deserialize <GameInfo> (bytes); ClientPlayersHandler.initPlayerColor(msg.username, msg.myColor); LocalPlayer p = ClientPlayersHandler.getPlayerFromColor(msg.myColor); RealtimeTCPController.registerLocalPlayer(convertColorToTeam(p.info.color), p.getTakeInputFunc(), !p.isNPC()); if (p.isNPC() == false) { localPlayerColor = p.info.color; } isListeningForTCP = true; }
private static void addLocalPlayer(PreGameSlotType type) { if (type == PreGameSlotType.Player) { ClientPlayersHandler.addSelf(); } else if (type == PreGameSlotType.TrainingBot) { LocalTrainingBots.addBot(gameSpecs.type); } else if (type == PreGameSlotType.SelfClone) { ClientPlayersHandler.addClone(); } else if (type == PreGameSlotType.Human) { ClientPlayersHandler.addHuman(); } }
public void handleInitSettings(NetworkMessage initMsg) { GameInfo msg = Deserialize <GameInfo> (initMsg.reader.ReadBytesAndSize()); ClientPlayersHandler.initPlayerColor(msg.username, msg.myColor); LocalPlayer p = ClientPlayersHandler.getPlayerFromColor(msg.myColor); int playerIndex = convertColorToTeam(msg.myColor); TCPFormater [playerIndex] = new SnakeTCPFormater(playerIndex); Action <string> sendBoardFunc = p.getTakeInputFunc(); RealtimeTCPController.registerLocalPlayer(playerIndex, (string s) => { sendBoardFunc(s); } , !p.isNPC() && !p.Human); if (p.isMainPlayer()) { localPlayerColor = p.info.color; } if (p.Human) { localHumanColor = p.info.color; } if (p.info.color == PlayerColor.Blue) { hasLocalBluePlayer = true; } else { hasLocalRedPlayer = true; } isListeningForTCP = true; }
public override void setLocalPreGamePlayers() { base.setLocalPreGamePlayers(); ClientPlayersHandler.addSelf(); if (hasStoredSettings == false) { savedSettings = p2Settings.value; hasStoredSettings = true; } //Hardcoded check if the Bot Setting is actually Human print("Name: " + LocalTrainingBots.getBotSettingsName(type, savedSettings)); if (LocalTrainingBots.getBotSettingsName(type, savedSettings) == "Human") { ClientPlayersHandler.addHuman(); } else { LocalTrainingBots.addBot(type, savedSettings); } }
public void handleInitSettings(NetworkMessage initMsg) { GameInfo msg = Deserialize <GameInfo> (initMsg.reader.ReadBytesAndSize()); ClientPlayersHandler.initPlayerColor(msg.username, msg.myColor); LocalPlayer p = ClientPlayersHandler.getPlayerFromColor(msg.myColor); RealtimeTCPController.registerLocalPlayer(BombermanOverlord.convertColorToTeam(p.info.color), p.getTakeInputFunc(), !p.isNPC()); if (p.isMainPlayer()) { localPlayerColor = p.info.color; } if (p.Human) { localHumanColor = p.info.color; } print(localPlayerColor); isListeningForTCP = 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); } }
//Called from "onJoinStartedGame" in GameConnectorUI public virtual void setLocalPreGamePlayers() { ClientPlayersHandler.resetLocalPLayers(); }