Ejemplo n.º 1
0
    public static void PlayCard(Card card, int playedBy, RemoteNetworkPlayer networkPlayer)
    {
        destinationPosition = Cards[playedCardCount].position;
        destinationRotation = Cards[playedCardCount].rotation;

        GameObject newCardObject = Instantiate(cardPrefab, playerPositions[playedBy].position, cardPrefab.transform.rotation) as GameObject;

        newCardObject.transform.parent = playedCardsTransform;
        UICard cardScript = newCardObject.transform.GetComponent <UICard>();

        newCardObject.transform.GetComponent <SpriteRenderer>().sortingOrder = 8;

        cardScript.BindCard(card);
        Cards[playedCardCount] = newCardObject.transform;
        playedCardCount++;
        cardToPlay  = card;
        cardPlayer2 = networkPlayer;
        moveCard2   = true;

        UIDeck deck = GameObject.FindGameObjectWithTag("DECK").GetComponent <UIDeck>();

        deck.playedCard = cardScript;

        SoundManagerInstance.PlayCardPlaySound();
    }
Ejemplo n.º 2
0
    public void SeatPlayer(NetworkPlayerBase networkPlayer, int seat)
    {
        if (networkPlayer.GetPlayersSeat() != -1)
        {
            networkPlayers[networkPlayer.GetPlayersSeat()] = null;
            GameTable.gameTable.LeaveTable(networkPlayer);
        }
        if (networkPlayers[seat] != null)
        {
            GameTable.gameTable.LeaveTable(seat);
        }

        networkPlayers[seat] = networkPlayer;
        GameTable.AddPlayer(networkPlayers[seat] as Player, seat);
    }
Ejemplo n.º 3
0
    void OnGUI()
    {
        GUI.depth = 100;

        GUI.skin = buttonSkin;
        if (GUI.Button(new Rect(Screen.width / 80, Screen.height / 40, Screen.width / 9, Screen.width / 9), Properties.MenuButton))
        {
            InGameMenu.Show();
        }

        NetworkPlayerBase mainPlayer = player.GetInternalPlayer() as NetworkPlayerBase;

        Player[] multiplayerPlayers = new Player[4];

        int mainPlayersSeat = mainPlayer.GetPlayersSeat();

        if (mainPlayersSeat != -1)
        {
            //  PLAYER IS SEATED
            multiplayerPlayers[0] = (NetworkPlayerBase)mainPlayer;
            int nextSeat = NextSeat(mainPlayersSeat);
            multiplayerPlayers[1] = MultiplayerGamers.GetPlayerBySeat(nextSeat);
            nextSeat = NextSeat(nextSeat);
            multiplayerPlayers[2] = MultiplayerGamers.GetPlayerBySeat(nextSeat);
            nextSeat = NextSeat(nextSeat);
            multiplayerPlayers[3] = MultiplayerGamers.GetPlayerBySeat(nextSeat);
        }
        else
        {
            //  PLAYER HAS NOT SIT DOWN
            for (int i = 0; i < 4; i++)
            {
                multiplayerPlayers[i] = MultiplayerGamers.GetPlayerBySeat(i);
            }
        }

        GUI.skin = playerStatsGUISkin;
        //  PLAYER 1
        GUI.BeginGroup(playerStatPositions[0]);
        if (multiplayerPlayers[0] != null)
        {
            GUI.Box(new Rect(0, 0, playerStatPositions[0].width, playerStatPositions[0].height), multiplayerPlayers[0].PlayerName);
        }
        else if (GUI.Button(new Rect(0, 0, playerStatPositions[0].width, playerStatPositions[0].height), LanguageManager.getString("SIT")))
        {
            //  SIT TO FIRST POSITION
            ((LocalNetworkPlayer)mainPlayer).SitToTable(0, MultiplayerGamers);
        }
        GUI.EndGroup();
        GUI.matrix = Matrix4x4.identity;

        //  PLAYER 2
        Matrix4x4 m = Matrix4x4.identity;

        m.SetTRS(new Vector3(playerStatPositions[1].x, playerStatPositions[1].y + playerStatPositions[1].height, 1), Quaternion.Euler(0, 0, -90), Vector3.one);
        GUI.matrix = m;
        if (multiplayerPlayers[1] != null)
        {
            GUI.Box(new Rect(0, 0, playerStatPositions[0].width, playerStatPositions[0].height), multiplayerPlayers[1].PlayerName);
        }
        else if (GUI.Button(new Rect(0, 0, playerStatPositions[0].width, playerStatPositions[0].height), LanguageManager.getString("SIT")))
        {
            //  SIT TO SECOND POSITION
            ((LocalNetworkPlayer)mainPlayer).SitToTable(1, MultiplayerGamers);
        }
        GUI.matrix = Matrix4x4.identity;

        //  PLAYER 3
        m = Matrix4x4.identity;
        m.SetTRS(new Vector3(playerStatPositions[2].x + playerStatPositions[2].width, playerStatPositions[2].y + playerStatPositions[2].height, 1), Quaternion.Euler(0, 0, -180), Vector3.one);
        GUI.matrix = m;
        if (multiplayerPlayers[2] != null)
        {
            GUI.Box(new Rect(0, 0, playerStatPositions[0].width, playerStatPositions[0].height), multiplayerPlayers[2].PlayerName);
        }
        else if (GUI.Button(new Rect(0, 0, playerStatPositions[0].width, playerStatPositions[0].height), LanguageManager.getString("SIT")))
        {
            //  SIT TO THIRD POSITION
            ((LocalNetworkPlayer)mainPlayer).SitToTable(2, MultiplayerGamers);
        }
        GUI.matrix = Matrix4x4.identity;

        //  PLAYER 4
        m = Matrix4x4.identity;
        m.SetTRS(new Vector3(playerStatPositions[3].x + playerStatPositions[3].width, playerStatPositions[3].y, 1), Quaternion.Euler(0, 0, 90), Vector3.one);
        GUI.matrix = m;
        if (multiplayerPlayers[3] != null)
        {
            GUI.Box(new Rect(0, 0, playerStatPositions[0].width, playerStatPositions[0].height), multiplayerPlayers[3].PlayerName);
        }
        else if (GUI.Button(new Rect(0, 0, playerStatPositions[0].width, playerStatPositions[0].height), LanguageManager.getString("SIT")))
        {
            //  SIT TO FOURTH POSITION
            ((LocalNetworkPlayer)mainPlayer).SitToTable(3, MultiplayerGamers);
        }
        GUI.matrix = Matrix4x4.identity;
    }
Ejemplo n.º 4
0
    public void onBytes(byte[] msg)
    {
        string networkMessage = ByteHelper.GetString(msg);

        LogManager.Log("Received Update: " + networkMessage);

        string[] messageArgs = networkMessage.Split('-');

        string messageCommand;

        if (messageArgs.Length == 0)
        {
            messageCommand = networkMessage;
        }
        else
        {
            messageCommand = messageArgs[0];
        }

        switch (messageCommand)
        {
        case "SIT":
            if (LobbyPlayerStats.RoomData.getRoomOwner() == NonStaticPlayer.GetInternalPlayer().PlayerName)
            {
                int seat = -1;
                if (int.TryParse(messageArgs[1], out seat))
                {
                    string playerName = messageArgs[2];

                    //  SET ROOM PROPERTY
                    Dictionary <string, object> tableProperties = new Dictionary <string, object>();
                    tableProperties.Add("SEAT" + seat.ToString(), playerName);
                    List <string> removeProperties = new List <string>();

                    object seat0, seat1, seat2, seat3;
                    if (LobbyPlayerStats.RoomProperties.TryGetValue("SEAT0", out seat0) && seat0.ToString() == playerName)
                    {
                        removeProperties.Add("SEAT0");
                        NonStaticPlayer.gameTable.gameTable.LeaveTable(0);
                    }

                    if (LobbyPlayerStats.RoomProperties.TryGetValue("SEAT1", out seat1) && seat1.ToString() == playerName)
                    {
                        removeProperties.Add("SEAT1");
                        NonStaticPlayer.gameTable.gameTable.LeaveTable(1);
                    }

                    if (LobbyPlayerStats.RoomProperties.TryGetValue("SEAT2", out seat2) && seat2.ToString() == playerName)
                    {
                        removeProperties.Add("SEAT2");
                        NonStaticPlayer.gameTable.gameTable.LeaveTable(2);
                    }

                    if (LobbyPlayerStats.RoomProperties.TryGetValue("SEAT3", out seat3) && seat3.ToString() == playerName)
                    {
                        removeProperties.Add("SEAT3");
                        NonStaticPlayer.gameTable.gameTable.LeaveTable(3);
                    }

                    if (removeProperties.Count == 0)
                    {
                        removeProperties = null;
                    }

                    WarpClient.GetInstance().UpdateRoomProperties(LobbyPlayerStats.RoomData.getId(), tableProperties, removeProperties);
                }
            }

            break;

        case "ROOMDLT":

            WarpClient.GetInstance().LeaveRoom(LobbyPlayerStats.RoomData.getId());
            LobbyPlayerStats.Hide();
            RoomSelectionMenu.Show("ROOMDLT");
            break;

        case "PLAY":
            int playerSeat, cardType, cardValue;
            if (int.TryParse(messageArgs[1], out playerSeat))
            {
                if (playerSeat != NonStaticPlayer.GetInternalPlayer().GetPlayersSeat())
                {
                    if (int.TryParse(messageArgs[2], out cardType))
                    {
                        if (int.TryParse(messageArgs[3], out cardValue))
                        {
                            RemoteNetworkPlayer networkPlayer = MultiplayerGamers.GetPlayerBySeat(playerSeat) as RemoteNetworkPlayer;
                            Card cardToPlay = new Card(cardValue, cardType);
                            networkPlayer.PlayCard(cardToPlay);
                        }
                    }
                }
            }

            break;

        case "BID":
            int bidPlayerSeat, bid;
            if (int.TryParse(messageArgs[1], out bidPlayerSeat))
            {
                if (bidPlayerSeat != NonStaticPlayer.GetInternalPlayer().GetPlayersSeat())
                {
                    if (int.TryParse(messageArgs[2], out bid))
                    {
                        NetworkPlayerBase networkPlayer = MultiplayerGamers.GetPlayerBySeat(bidPlayerSeat);
                        if (bid == 999)
                        {
                            networkPlayer.Bid(-1);
                        }
                        else
                        {
                            networkPlayer.Bid(bid);
                        }
                    }
                }
            }
            break;

        case "SETTRMP":
            int trumpPlayerSeat, trumpType;
            if (int.TryParse(messageArgs[1], out trumpPlayerSeat))
            {
                if (trumpPlayerSeat != NonStaticPlayer.GetInternalPlayer().GetPlayersSeat())
                {
                    if (int.TryParse(messageArgs[2], out trumpType))
                    {
                        NetworkPlayerBase networkPlayer = MultiplayerGamers.GetPlayerBySeat(trumpPlayerSeat);
                        networkPlayer.SetTrumpType(CardHelper.GetCardTypeFromValue(trumpType));
                    }
                }
            }
            break;

        case "DEALCALLBACK":
            IncreaseDealCallback();
            break;

        case "START":
            if (LobbyPlayerStats.RoomData.getRoomOwner() != NonStaticPlayer.GetInternalPlayer().PlayerName)
            {
                MultiplayerGamers.GameTable.gameTable.PlayersReadyCallback();
            }
            break;
        }

        LogManager.Log(networkMessage);
    }