public ClientField(Client client, int nr) { // need to check if in multiplayer you can change the type of a different player SpriteFont textFieldFont = GameEnvironment.AssetManager.GetFont("Arial26"); SelectField <SelectPlayer> SelectPlayer = new SelectField <SelectPlayer>(true, textFieldFont, Color.Red); SelectPlayer.Options = new List <SelectPlayer>() { new SelectPlayer(PlayerType.Warrior, client), new SelectPlayer(PlayerType.Archer, client), new SelectPlayer(PlayerType.Mage, client), new SelectPlayer(PlayerType.Random, client) }; Add(SelectPlayer); Button setTypeButton = new Button("button", "Select Hero", textFieldFont, Color.Black); setTypeButton.Position = SelectPlayer.Position + new Vector2(SelectPlayer.Width, 0); setTypeButton.Action = () => { ClientPlayerType CPT = new ClientPlayerType(client.ClientName, client.playerType); Server.Send(CPT); }; Add(setTypeButton); TextGameObject name = new TrackingTextGameObject <Client>(client, c => nr + ". " + c.ClientName, "Arial26"); name.Color = Color.White; name.Position = setTypeButton.Position + new Vector2(setTypeButton.Width, 0); Add(name); }
private void AddStartGame() { Point screen = GameEnvironment.Screen; SpriteFont arial26 = GameEnvironment.AssetManager.GetFont("Arial26"); startButton = new Button("button", "Start Game", arial26, Color.Black); startButton.Action = () => { foreach (Client c in clients) { //send player type to the server - extra check to make sure correct type is known ClientPlayerType CPT = new ClientPlayerType(c.ClientName, c.playerType); Server.Send(CPT); } LocalServer ls = (LocalServer)server; ls.SetupLevel(1); GameEnvironment.GameStateManager.SwitchTo("playingState"); GameEnvironment.AssetManager.StopMusic(); }; startButton.Position = new Vector2(screen.X - startButton.Width - 50, screen.Y - startButton.Height - 50); Add(startButton); }