private void Client_LobbyStateChanged(object sender, LobbyStateEventArgs e) { // update the lobby form's elements when the server sends a new lobby state if (e.LobbyState == null) { return; } if (frm_lobby == null) { SetUpLobbyForm(); } lobby_sbPlayers.Items = GetPlayers(); BasicPlayer myPlayer = e.LobbyState.Players.Find(p => p.InstanceID == manager.Client.Player.InstanceID); BasicPlayer hostPlayer = e.LobbyState.Players.Find(p => p.InstanceID == 0); frm_lobby.Text = $"{hostPlayer.Name}'s Lobby".ToRichText(); Empire myEmpire = manager.Client.DataManager.Empire.GetEmpire(myPlayer.EmpireID); lobby_btnEmpireSelect.Text = $"Empire: <[{myEmpire.PrimaryColor.ToRichFormat()}]{myEmpire.Name}>".ToRichText(); lobby_btnWorldSize.Text = $"World Size: {e.LobbyState.WorldSize}".ToRichText(); lobby_btnWorldType.Text = $"World Type: {e.LobbyState.WorldType}".ToRichText(); lobby_btnGameSpeed.Text = $"Game Speed: {e.LobbyState.GameSpeed}".ToRichText(); if (lobby_cbVictoryTypes != null) { for (int i = 0; i < lobby_cbVictoryTypes.Length; i++) { lobby_cbVictoryTypes[i].Value = manager.Client.LobbyState.VictoryTypes[i]; } } if (lobby_cbOtherOptions != null) { for (int i = 0; i < lobby_cbOtherOptions.Length; i++) { lobby_cbOtherOptions[i].Value = manager.Client.LobbyState.OtherOptions[i]; } } if (myPlayer.EmpireID != lastEmpireID) { PlayAnthem(manager.Client.DataManager.Empire.GetEmpire(myPlayer.EmpireID).Name); } lastEmpireID = myPlayer.EmpireID; }
public void TiggerLobbyState(object sender, LobbyStateEventArgs args) { LobbyState.Invoke(sender, args); }