Example #1
0
    /// <summary>Sends the client into the game and informs other clients of the new player.</summary>
    /// <param name="playerName">The username of the new player.</param>
    public void EnterPlayer(string playerName)
    {
        playerManager = new Player.PlayerManager()
        {
            username = playerName,
            client   = this,
            state    = PlayerState.loadingScreen
        };

        GameManager.instance.players.Add(playerManager);
        ServerDatabase.UpdateServer();

        // Send all players to the new player
        foreach (Client client in Server.clients.Values)
        {
            if (client.playerManager != null)
            {
                if (client.id != id)
                {
                    ServerSend.PlayerEnter(client.playerManager);
                }
            }
        }

        // Send the new player to all players (including himself)
        foreach (Client client in Server.clients.Values)
        {
            if (client.playerManager != null)
            {
                ServerSend.PlayerEnter(playerManager);
            }
        }

        GameManager.instance.currentGameMode.OnPlayerEnter(playerManager);
    }
Example #2
0
    public static void PlayerLeave(Player.PlayerManager playerManager)
    {
        using (Packet packet = new Packet((int)ServerPackets.playerLeave))
        {
            packet.Write(playerManager.client.id);

            SendTcpDataToAll(playerManager.client.id, packet);
        }
    }
Example #3
0
 private void Awake()
 {
     GameController   = m_GameController;
     UserInput        = m_UserInput;
     PlayerManager    = m_PlayerManager;
     PoolManager      = m_PoolManager;
     BulletsManager   = m_BulletsManager;
     AsteroidsManager = m_AsteroidsManager;
     ControllerUI     = m_ControllerUI;
 }
Example #4
0
    /// <summary>Tells a client to spawn a player.</summary>
    /// <param name="toClient">The client that should spawn the player.</param>
    /// <param name="playerManager">The player to spawn.</param>
    public static void PlayerEnter(Player.PlayerManager playerManager)
    {
        using (Packet packet = new Packet((int)ServerPackets.playerEnter))
        {
            packet.Write(playerManager.client.id);
            packet.Write(playerManager.username);

            SendTcpData(playerManager.client.id, packet);
        }
    }
Example #5
0
 /// <summary>
 /// Get player manager component
 /// </summary>
 /// <returns></returns>
 public static PlayerManager GetInstance()
 {
     // If h_Instance has never been called, find it, and assign it
     if (h_Instance == null)
     {
         GameObject playerManagerObject = GameObject.Find("Players");
         PlayerManager instance = playerManagerObject.GetComponent<PlayerManager>();
         h_Instance = instance;
     }
     return h_Instance;
 }
Example #6
0
        // Use this for initialization
        void Start()
        {

            if (PlayerObjectPrefab == null)
                Debug.LogError("PlayerObjectPrefab has not been assignned through the unity Editor!");

            h_Instance = this;
            m_PlayerInfoList = new List<PlayerInfo>(4) { new PlayerInfo(), new PlayerInfo(), new PlayerInfo(), new PlayerInfo() };

            // set default player colors
            m_SlotColorList = new List<Color>(4)
            {
                new Color( 255f / 255f , 69f/255f , 0f ), // orange/red
                new Color( 0f / 255f , 86f/255f , 255f/255f ), // blueish
                new Color( 104f / 255f , 255f/255f , 0f/255f ), // greenish
                new Color( 255f / 255f , 248f/255f , 0f/255f ), // yellowish
            };

        }
Example #7
0
    /// <summary>Disconnects the client and stops all network traffic.</summary>
    public void Disconnect()
    {
        Debug.Log($"{tcp.socket.Client.RemoteEndPoint} has disconnected.");

        tcp.Disconnect();
        udp.Disconnect();

        if (playerManager == null)
        {
            return;
        }

        GameManager.instance.currentGameMode.OnPlayerLeave(playerManager);

        GameManager.instance.players.Remove(playerManager);

        playerManager.Disconnect();

        ServerDatabase.UpdateServer();

        playerManager = null;
    }