diff --git a/Assets/Prefabs/Game/PlayerHUD.prefab b/Assets/Prefabs/Game/PlayerHUD.prefab index eb20875..75b0deb 100644 --- a/Assets/Prefabs/Game/PlayerHUD.prefab +++ b/Assets/Prefabs/Game/PlayerHUD.prefab @@ -197,7 +197,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 540bda985e7e4b549a804ff06b069af1, type: 3} m_Name: m_EditorClassIdentifier: - raceTimer: 30 + raceTimer: 10 countdown_text: {fileID: 8450380190165699611} spectating_text: {fileID: 9093490155705374174} --- !u!114 &4670258835641355805 diff --git a/Assets/Scripts/Network/Game/SpawnManager.cs b/Assets/Scripts/Network/Game/SpawnManager.cs index 04c6908..f35367b 100644 --- a/Assets/Scripts/Network/Game/SpawnManager.cs +++ b/Assets/Scripts/Network/Game/SpawnManager.cs @@ -35,7 +35,7 @@ public class SpawnManager : NetworkBehaviour { _runner = Instantiate(runnerPrefab, runnersSpawnPoints[runnersSpawned], Quaternion.identity).gameObject; //Recreate Inventory _runner.GetComponentInChildren().UpdateEquips(playerData.pInv.NetworkItemList, this.gameObject.GetComponent().ItemDict); - _runner.GetComponent().SpawnAsPlayerObject(NetworkManager.Singleton.LocalClientId); + _runner.GetComponent().SpawnAsPlayerObject(NetworkManager.Singleton.LocalClientId, null, true); // Increment runners runnersSpawned++; diff --git a/Assets/Scripts/UI/Lobby/LobbyUI.cs b/Assets/Scripts/UI/Lobby/LobbyUI.cs index 44182ed..5eaaaf0 100644 --- a/Assets/Scripts/UI/Lobby/LobbyUI.cs +++ b/Assets/Scripts/UI/Lobby/LobbyUI.cs @@ -21,6 +21,8 @@ public class LobbyUI : NetworkBehaviour { private NetworkList lobbyPlayers = new NetworkList(); private NetworkVariable hostIpAddress = new NetworkVariable(); + private string LobbyStatusText = ""; + public override void NetworkStart() { // Unlock the player cursor if they get sent back here after a match @@ -45,6 +47,8 @@ public class LobbyUI : NetworkBehaviour { // Get/Set the ip of the host StartCoroutine(GetIPAddress()); + + UpdateLobbyStateText(); } // Reset the variables for IsReady and IsKing @@ -70,6 +74,11 @@ public class LobbyUI : NetworkBehaviour { } } + void Start() { + ToggleReadyServerRpc(); + ToggleReadyServerRpc(); + } + private void OnDestroy() { lobbyPlayers.OnListChanged -= HandleLobbyPlayersStateChanged; @@ -261,13 +270,18 @@ public class LobbyUI : NetworkBehaviour { } } - UpdateLobbyStateText(); + if (IsServer) { + UpdateLobbyStateText(); + } } private void UpdateLobbyStateText() { if (lobbyPlayers.Count != 3) { - lobbyStateText.text = "Need 3 Players to Begin!"; + LobbyStatusText = "Need 3 Players to Begin!"; + if (IsServer) { + UpdateLobbyStateTextServerRPC(LobbyStatusText); + } return; } @@ -286,15 +300,33 @@ public class LobbyUI : NetworkBehaviour { // Verify counts if (runnerCount != 2 || kingCount != 1) { - lobbyStateText.text = "Need 2 Runners and 1 King!"; + LobbyStatusText = "Need 2 Runners and 1 King!"; + if (IsServer) { + UpdateLobbyStateTextServerRPC(LobbyStatusText); + } return; } - lobbyStateText.text = "All Players Ready!"; + LobbyStatusText = "All Players Ready!"; } else { - lobbyStateText.text = "All Players Need to Ready Up!"; + LobbyStatusText = "All Players Need to Ready Up!"; } + + if (IsServer) { + UpdateLobbyStateTextServerRPC(LobbyStatusText); + } + } + + [ServerRpc(RequireOwnership = false)] + private void UpdateLobbyStateTextServerRPC(string stateText) { + LobbyStatusText = stateText; + UpdateLobbyStateTextClientRPC(stateText); + } + + [ClientRpc] + private void UpdateLobbyStateTextClientRPC(string stateText) { + LobbyStatusText = stateText; } //Taken from Goodgulf @@ -322,5 +354,6 @@ public class LobbyUI : NetworkBehaviour { void Update() { hostIpAddressText.text = hostIpAddress.Value; + lobbyStateText.text = LobbyStatusText; } } diff --git a/Assets/Scripts/UI/PostGame/PostGameUI.cs b/Assets/Scripts/UI/PostGame/PostGameUI.cs index 8bd28d2..a7ace1d 100644 --- a/Assets/Scripts/UI/PostGame/PostGameUI.cs +++ b/Assets/Scripts/UI/PostGame/PostGameUI.cs @@ -11,21 +11,15 @@ public class PostGameUI : NetworkBehaviour { [SerializeField] private int ReturnToLobbyTimer; [SerializeField] private TMP_Text HeaderText; - private string TEXT; void Start() { ReturnToLobbyText.text = "Returning to the lobby in " + ReturnToLobbyTimer + " seconds..."; StartCoroutine(BeginCountdown()); - //todo: do logic to determine and update who won the round UpdateWinnerTextServerRPC(); } - void Update() { - HeaderText.text = TEXT; - } - - [ServerRpc] + [ServerRpc(RequireOwnership = false)] private void UpdateWinnerTextServerRPC() { List playerFinishedNames = new List(); string kingName = ""; @@ -65,7 +59,7 @@ public class PostGameUI : NetworkBehaviour { [ClientRpc] private void UpdateWinnerTextClientRPC(string winnerText) { - TEXT = winnerText; + HeaderText.text = winnerText; } IEnumerator BeginCountdown() { diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 17ccef5..991b6af 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -6,34 +6,34 @@ EditorUserSettings: serializedVersion: 4 m_ConfigSettings: RecentlyUsedScenePath-0: - value: 22424703114646680e0b0227036c6f02131b172b282d347e38271427fb + value: 22424703114646680e0b0227036c7b151b180b6501273035202c1327d1e33136e7a923e7ee2e26 flags: 0 RecentlyUsedScenePath-1: - value: 22424703114646680e0b0227036c7b151b180b650d262f3d192c0e27d1e33136e7a923e7ee2e26 - flags: 0 - RecentlyUsedScenePath-2: value: 22424703114646680e0b0227036c7b151b180b6519016b0515163936efef2776f7e93ffdfe flags: 0 - RecentlyUsedScenePath-3: + RecentlyUsedScenePath-2: value: 22424703114646680e0b0227036c731f1415016439262f2434 flags: 0 + RecentlyUsedScenePath-3: + value: 22424703114646680e0b0227036c7b151b180b652b3a27292f260573f1e33136e7a923e7ee2e26 + flags: 0 RecentlyUsedScenePath-4: - value: 22424703114646680e0b0227036c731f1415016439262f2434 + value: 22424703114646680e0b0227036c7b151b180b652b3a27292f260573f1e33136e7a923e7ee2e26 flags: 0 RecentlyUsedScenePath-5: - value: 22424703114646680e0b0227036c78111b125507233d28242c20137df7ee3d2cfb - flags: 0 - RecentlyUsedScenePath-6: - value: 22424703114646680e0b0227036c7b151b180b652b3a27292f260573f1e33136e7a923e7ee2e26 - flags: 0 - RecentlyUsedScenePath-7: - value: 22424703114646680e0b0227036c7b151b180b652b3a27292f260573f1e33136e7a923e7ee2e26 - flags: 0 - RecentlyUsedScenePath-8: value: 22424703114646680e0b0227036c7b151b180b650e3a233126281f3fe7c23837e1ec25a7f234362820 flags: 0 + RecentlyUsedScenePath-6: + value: 22424703114646680e0b0227036c7b151b180b650e3a233126281f3fe7c23837e1ec25a7f234362820 + flags: 0 + RecentlyUsedScenePath-7: + value: 22424703114646680e0b0227036c78111b125507233d28242c20137df7ee3d2cfb + flags: 0 + RecentlyUsedScenePath-8: + value: 22424703114646680e0b0227036c6f1f05033f2b212d68252320092a + flags: 0 RecentlyUsedScenePath-9: - value: 22424703114646680e0b0227036c7b151b180b6501273035202c1327d1e33136e7a923e7ee2e26 + value: 22424703114646680e0b0227036c6f02131b172b282d347e38271427fb flags: 0 UnityRemoteCompression: value: 337f73