public void StartGame() { networkJobHandle.Complete(); StartGameMessage startMessage = new StartGameMessage { StartHP = 10 }; SendMessageToAll(startMessage); //enviroment data is setup serverDataHolder.GameSetup(); //everyone gets a rooms info message. for (int i = 0; i < connections.Length; i++) { RoomInfoMessage startRoomMessage = serverDataHolder.GetRoomMessage(i); SendMessage(startRoomMessage, connections[i]); } //turn event is called PlayerTurnMessage turnMessage = new PlayerTurnMessage { PlayerID = serverDataHolder.turnID }; SendMessageToAll(turnMessage); }
private void PlayerTurn(ref DataStreamReader reader) { var message = new PlayerTurnMessage(); message.DeserializeObject(ref reader); dataHolder.game.PlayerTurn(message.PlayerID); }
public void CheckTurn(MessageHeader playerTurnMessage) { PlayerTurnMessage turnMessage = playerTurnMessage as PlayerTurnMessage; PlayerManager.Instance.PlayerIDWithTurn = turnMessage.playerID; //Means its the players Turn if (turnMessage.playerID == PlayerManager.Instance.CurrentPlayer.playerID) { sideMenu.SlideMenu(); } }
/// <summary> /// Send whose turn it is to all clients. /// </summary> private void SendPlayerTurn(Client activeTurnClient) { var playerTurnMessage = new PlayerTurnMessage { PlayerID = activeTurnClient.PlayerID, }; foreach (Client c in AllClientPlayerDictionary.Keys) // Finished players still get to see this stuff { server.SendMessage(playerTurnMessage, c.Connection); } }
private void NewTurnMessage() { PlayerManager.Instance.PlayerIDWithTurn++; if (PlayerManager.Instance.PlayerIDWithTurn == PlayerManager.Instance.Players.Count) { PlayerManager.Instance.PlayerIDWithTurn = 0; } turnMessage = new PlayerTurnMessage() { playerID = PlayerManager.Instance.PlayerIDWithTurn }; for (int j = 0; j < connections.Length; j++) { NetworkManager.SendMessage(networkDriver, turnMessage, connections[j]); } }
public IEnumerator Turning() { yield return(new WaitForFixedUpdate()); networkJobHandle.Complete(); //check if all player left dungeon Debug.Log("next player turn...amount of active players" + serverDataHolder.activePlayerIDs.Count); if (serverDataHolder.activePlayerIDs.Count == 0) { //endgame! EndGame(); } else { serverDataHolder.turnID += 1; if (serverDataHolder.turnID >= serverDataHolder.activePlayerIDs.Count) { Debug.Log("end of loop."); Debug.Log(serverDataHolder.activeMonsters.Count); //monsters now attack! foreach (Monster monster in serverDataHolder.activeMonsters) { yield return(StartCoroutine(MonsterAttacks(monster))); networkJobHandle.Complete(); } serverDataHolder.turnID = 0; } if (serverDataHolder.activePlayerIDs.Count > serverDataHolder.turnID) { PlayerTurnMessage turnMessage = new PlayerTurnMessage { PlayerID = serverDataHolder.activePlayerIDs[serverDataHolder.turnID] }; SendMessageToAll(turnMessage); } } }
public void StartGame() { networkJobHandle.Complete(); StartGameMessage startGameMessage = new StartGameMessage() { StartHP = 10 }; GameHasStarted = true; GameObject go = new GameObject(); Grid grid = go.AddComponent <Grid>(); grid.gameObject.name = "Grid"; grid.GenerateGrid(); GameManager.Instance.CurrentGrid = grid; for (int i = 0; i < connections.Length; i++) { NetworkManager.SendMessage(networkDriver, startGameMessage, connections[i]); } PlayerManager.Instance.SortingPlayerList(); PlayerTurnMessage playerTurnMessage = new PlayerTurnMessage() { playerID = 0 }; for (int i = 0; i < PlayerManager.Instance.Players.Count; i++) { PlayerManager.Instance.Players[i].Health = 10; } for (int i = 0; i < connections.Length; i++) { NetworkManager.SendMessage(networkDriver, playerTurnMessage, connections[i]); } UIManager.Instance.DeleteLabels(); }
public void Update() { networkJobHandle.Complete(); if (!connection.IsCreated) { return; } DataStreamReader reader; NetworkEvent.Type cmd; while ((cmd = connection.PopEvent(networkDriver, out reader)) != NetworkEvent.Type.Empty) { if (cmd == NetworkEvent.Type.Connect) { Debug.Log("Connected to server"); } else if (cmd == NetworkEvent.Type.Data) { var messageType = (Message.MessageType)reader.ReadUShort(); Debug.Log("Client Received: " + messageType + " from Host"); Message message = null; switch (messageType) { case Message.MessageType.None: break; case Message.MessageType.NewPlayer: message = new NewPlayerMessage(); break; case Message.MessageType.Welcome: message = new WelcomeMessage(); break; case Message.MessageType.RequestDenied: message = new RequestDeniedMessage(); break; case Message.MessageType.PlayerLeft: message = new PlayerLeftMessage(); break; case Message.MessageType.StartGame: message = new StartGameMessage(); break; case Message.MessageType.PlayerTurn: message = new PlayerTurnMessage(); break; case Message.MessageType.RoomInfo: message = new RoomInfoMessage(); break; case Message.MessageType.PlayerEnterRoom: message = new PlayerEnterRoomMessage(); break; case Message.MessageType.PlayerLeaveRoom: message = new PlayerLeaveRoomMessage(); break; case Message.MessageType.ObtainTreasure: message = new ObtainTreasureMessage(); break; case Message.MessageType.HitMonster: message = new HitMonserMessage(); break; case Message.MessageType.HitByMonster: message = new HitByMonserMessage(); break; case Message.MessageType.PlayerDefends: message = new PlayerDefendsMessage(); break; case Message.MessageType.PlayerLeftDungeon: message = new PlayerLeftDungeonMessage(); break; case Message.MessageType.PlayerDies: message = new PlayerDiesMessage(); break; case Message.MessageType.EndGame: break; default: break; } if (message != null) { message.DeserializeObject(ref reader); receivedMessagesQueue.Enqueue(message); } } else if (cmd == NetworkEvent.Type.Disconnect) { Debug.Log("Disconnected from server"); connection = default; } } ProcessMessagesQueue(); if (Time.time - lastSendTime > STAY_ALIVE_AFTER_SECONDS) { SendMessage(new NoneMessage()); } networkJobHandle = networkDriver.ScheduleUpdate(); }
public void HandlePlayerTurn(Message message) { PlayerTurnMessage playerTurnMessage = (PlayerTurnMessage)message; Menu.Singleton.gameWindow.OutputText("Current turn: " + lobby.players[playerTurnMessage.PlayerID].PlayerTextWithColorTag()); }