public void InitializeGameMode(GameMode gameMode) { PlayingState ps = GameEnvironment.GameStateManager.GetGameState("playingState") as PlayingState; Reset(); ps.Reset(); ps.CurrentGameMode = gameMode; switch (gameMode) { case GameMode.MultiplayerClient: //Initialize RemoteServer and LocalClient LocalClient lc = new LocalClient(server); AddClient(lc); server = new RemoteServer(lc); ps.SetClientAndServer(lc, server); break; case GameMode.MultiplayerHost: //Initialize LocalServer(public) and LocalClient server = new LocalServer(); AddClient(new LocalClient(server)); ps.SetClientAndServer(clients[0], server); tcpListener = new TcpListener(IPAddress.Any, 29793); tcpListener.Start(); AddStartGame(); break; case GameMode.Singleplayer: //Initialize LocalServer(private) and LocalClient server = new LocalServer(); AddClient(new LocalClient(server)); ps.SetClientAndServer(clients[0], server); AddStartGame(); break; case GameMode.MultiplayerServer: //Initialize LocalServer(public) //server = new LocalServer(true); break; } }
public PlayingMenu() : base(350, 500, true, false) { SpriteFont sf = GameEnvironment.AssetManager.GetFont("Arial26"); backButton = new Button("button", "Main Menu", sf, Color.Black); backButton.Position = new Vector2(25, 25); backButton.Action = () => { GameEnvironment.GameStateManager.SwitchTo("mainMenuState"); GameEnvironment.AssetManager.PlayMusic("Sounds/Welcome Screen"); }; Add(backButton); Vector2 buttonDistance = new Vector2(0, backButton.Sprite.Height + 15); restartButton = new Button("button", "Restart", sf, Color.Black); restartButton.Position = backButton.Position + buttonDistance; restartButton.Action = () => { GameSetupState gss = GameEnvironment.GameStateManager.GetGameState("gameSetupState") as GameSetupState; PlayingState ps = GameEnvironment.GameStateManager.GetGameState("playingState") as PlayingState; ps.Reset(); gss.InitializeGameMode(ps.CurrentGameMode); GameEnvironment.GameStateManager.SwitchTo("gameSetupState"); }; Add(restartButton); optionsButton = new Button("button", "Options", sf, Color.Black); optionsButton.Action = () => { }; optionsButton.Position = restartButton.Position + buttonDistance; Add(optionsButton); quitButton = new Button("button", "Quit", sf, Color.Black); quitButton.Position = optionsButton.Position + buttonDistance; quitButton.Action = () => { Treehugger.ExitGame(); }; Add(quitButton); }