public void AddPlayerToList(NetWerewolfPlayer player, bool localPlayer) { InvokerObj.Invoke(() => { LobbyPlayerPanelHelper newPlayer = Instantiate(LobbyPlayerPrefab, PlayerListContent); newPlayer.SetupText(player, localPlayer); playerPanels.Add(newPlayer); }); }
private void UpdateHostBox(bool isHost) { InvokerObj.Invoke(() => { HostRoleListPanel.gameObject.SetActive(isHost); ClientRoleListPanel.gameObject.SetActive(!isHost); }); }
private void BackToLobby() { ClientNetEvents.ChatMessageReceived.RemoveListener(WriteChatMessage); ClientNetEvents.UpdatePlayerList.RemoveListener(PlayerListUpdated); ClientNetEvents.UpdateTimer.RemoveListener(UpdateTimer); ClientNetEvents.FlipGameScene.RemoveListener(BackToLobby); InvokerObj.Invoke(() => { SceneManager.LoadScene("LobbyScene"); }); }
private void Switching() { InvokerObj.Invoke(() => { ClientNetEvents.UpdatePlayerList.RemoveListener(PlayerListUpdated); ClientNetEvents.ChatMessageReceived.RemoveListener(WriteChatMessage); ClientNetEvents.UpdateHostBox.RemoveListener(UpdateHostBox); ClientNetEvents.UpdateActiveRoleList.RemoveListener(UpdateActiveRoleList); ClientNetEvents.FlipGameScene.RemoveListener(Switching); SceneManager.LoadScene("GameScene"); }); }
private void PlayerListUpdated(uint pid, bool dead) { if (dead) { GamePlayerButton pan = playerPanels.Find(p => p.PlayerID == pid); InvokerObj.Invoke(() => { pan.SetAlive(false); pan.SetSelectable(false); }); } else { InvokerObj.Invoke(() => { GamePlayerButton newPlayer = Instantiate(GamePlayerPrefab, PlayerListContentTransform); newPlayer.SetupText(NetworkingGlobal.ConnectedPlayers.Find(p => p.PlayerID == pid), NetworkingGlobal.LocalPlayer.PlayerID == pid); playerPanels.Add(newPlayer); }); } }
private void PlayerListUpdated(uint pid, bool remove) { if (remove) { LobbyPlayerPanelHelper pan = playerPanels.Find(p => p.PlayerID == pid); playerPanels.Remove(pan); InvokerObj.Invoke(() => { Destroy(pan.gameObject); }); } else { InvokerObj.Invoke(() => { LobbyPlayerPanelHelper newPlayer = Instantiate(LobbyPlayerPrefab, PlayerListContent); newPlayer.SetupText(NetworkingGlobal.ConnectedPlayers.Find(p => p.PlayerID == pid), NetworkingGlobal.LocalPlayer.PlayerID == pid); playerPanels.Add(newPlayer); }); } }
private void Start() { if (FindObjectsOfType(typeof(InvokerObj)).Length > 1) { Destroy(this); } else { DontDestroyOnLoad(this); instance = this; #if !UNITY_EDITOR Destroy(DebugCanvasRef); #else NetBase.DebugInfoReceived += NetBase_DebugInfoReceived; #endif Application.wantsToQuit += Application_quitting; } ErrorReasonText.autoSizeTextContainer = true; ErrorCanvasRef.SetActive(false); }
public void WriteChatMessage(NetWerewolfPlayer player, string message) { InvokerObj.Invoke(() => { float oldPos = ChatScrollView.normalizedPosition.y; if (player != null) { ChatTextField.text += $"[{player.PlayerID}] {player.Name}: {message}{Environment.NewLine}"; } else { ChatTextField.text += $"SYSTEM: {message}{Environment.NewLine}"; } LayoutRebuilder.ForceRebuildLayoutImmediate((RectTransform)ChatScrollView.transform); if (oldPos <= 0.0001f) { ChatScrollView.normalizedPosition = Vector2.zero; } }); }
private void UpdateActiveRoleList(string roleHash, bool remove) { // TODO: non-host role list if (remove) { int activeIndex = hostRolePanels.FindIndex(x => x.RoleHash == roleHash); if (activeIndex == -1) { return; } InvokerObj.Invoke(() => { Destroy(hostRolePanels[activeIndex].gameObject); hostRolePanels.RemoveAt(activeIndex); Destroy(clientRolePanels[activeIndex].gameObject); clientRolePanels.RemoveAt(activeIndex); }); } else { InvokerObj.Invoke(() => { LobbyHostRoleHelper rp = Instantiate(HostRoleItemPrefab, HostRolesListContent); rp.SetupTextAndEvent(roleHash, true); hostRolePanels.Add(rp); LobbyHostRoleHelper rpc = Instantiate(ClientRoleItemPrefab, ClientRolesListContent); rpc.SetupTextAndEvent(roleHash, false); clientRolePanels.Add(rpc); }); } }
public void UpdateTimer(int timeSeconds) { InvokerObj.Invoke(() => { TimerText.SetText(TimeSpan.FromSeconds(timeSeconds).ToString(@"m\:ss")); }); }