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(); }
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); }
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; }
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); }