Example #1
0
        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;
        }
Example #2
0
 public void TiggerLobbyState(object sender, LobbyStateEventArgs args)
 {
     LobbyState.Invoke(sender, args);
 }