public void setMenuStage(MenuStage stageToSet)
        {
            disableElements();
            outputText.color = new Color(0.2f, 0.2f, 0.2f);
            switch (stageToSet)
            {
            case MenuStage.menu:
                outputText.text = "What would you like to do?";
                menuButtonCanvas.gameObject.SetActive(true);
                break;

            case MenuStage.login:
                outputText.text = "Enter your account details.";
                textEntryCanvas.gameObject.SetActive(true);
                loginSubmitCanvas.gameObject.SetActive(true);
                textBoxUsername.text = "";
                textBoxPassword.text = "";
                break;

            case MenuStage.create:
                outputText.text = "Enter your desired account details.";
                textEntryCanvas.gameObject.SetActive(true);
                createSubmitCanvas.gameObject.SetActive(true);
                textBoxUsername.text = "";
                textBoxPassword.text = "";
                break;
            }
            currentStage = stageToSet;
        }
Exemplo n.º 2
0
        private void UpdateButtons(SSButton[] sButtons, GameTime gameTime, MouseState mouse)
        {
            for (int i = 0; i < sButtons.Length; i++)
            {
                if (mouse.LeftButton == ButtonState.Pressed && sButtons[i].CollisionRectangle.Contains(mouse.X, mouse.Y))
                {
                    sButtons[i].IsClicked = true;
                    sButtons[i].IsCovered = true;
                    elapsedTime           = gameTime.TotalGameTime.TotalMilliseconds;
                    selectedStage         = sButtons[i].Stage;
                    break;
                }
                else
                {
                    sButtons[i].IsCovered = false;
                }
            }

            if (elapsedTime != 0 && gameTime.TotalGameTime.TotalMilliseconds - elapsedTime >= 100f)
            {
                menuStage = selectedStage;
                foreach (SSButton btn in sButtons)
                {
                    btn.IsClicked = false;
                }
                elapsedTime = 0f;
            }
        }
Exemplo n.º 3
0
        public static void Init(MenuStage menuStage)
        {
            switch (menuStage)
            {
            case MenuStage.VeryEasy:
                Opponent = new computerOpponents(computerVersion1); break;

            case MenuStage.Easy:
                Opponent = new computerOpponents(computerVersion2); break;

            case MenuStage.Medium:
                Opponent = new computerOpponents(computerVersion3); break;

            case MenuStage.Hard:
            case MenuStage.VeryHard:
                Opponent = new computerOpponents(computerVersion4); break;
            }
        }
Exemplo n.º 4
0
 private Texture2D GetRockPaperScissorsImage(int player)
 {
     if (player == 0)
     {
         return(rocPapSciBtns[0].Texture);
     }
     else if (player == 1)
     {
         return(rocPapSciBtns[1].Texture);
     }
     else if (player == 2)
     {
         return(rocPapSciBtns[2].Texture);
     }
     else
     {
         menuStage = MenuStage.RockPaperScissors;
         return(null);
     }
 }
Exemplo n.º 5
0
        public Menu()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory              = "Content";
            graphics.PreferredBackBufferWidth  = 1200;
            graphics.PreferredBackBufferHeight = 675;
            Window.Title        = "Strange Suits";
            this.IsMouseVisible = true;

            quarterScreenW              = graphics.PreferredBackBufferWidth / 4.0f;
            quarterScreenH              = graphics.PreferredBackBufferHeight / 4.0f;
            SSEngine.QuarterSceenWidth  = quarterScreenW;
            SSEngine.QuarterSceenHeight = quarterScreenH;
            menuStage     = MenuStage.SplashScreen;
            mainButtons   = new SSButton[3];
            playButtons   = new SSButton[7];
            rocPapSciBtns = new SSButton[4];
            gameRulesBtns = new SSButton[1];
            settingsBtns  = new SSButton[1];
            twoPlayerBtns = new SSButton[3];
        }
Exemplo n.º 6
0
        private void UpdateRockPaperScissors()
        {
            int  player1Shot = -1;
            int  player2Shot = -1;
            bool clicked     = false;

            for (int i = 0; i < rocPapSciBtns.Length - 1; i++)
            {
                if (rocPapSciBtns[i].IsClicked)
                {
                    if (SSEngine.Player1.Value)
                    {
                        player1Shot = i;
                    }
                    else
                    {
                        player2Shot = i;
                    }

                    if (playerOne == -1 && playerTwo == -1)
                    {
                        clicked = true;
                    }
                    break;
                }
            }
            if (SSEngine.VersionStage != MenuStage.LAN && SSEngine.VersionStage != MenuStage.Online && clicked)
            {
                Random random = new Random();
                int    prob   = random.Next(99);
                if (prob < 33)
                {
                    player2Shot = 0;
                }
                else if (prob < 66)
                {
                    player2Shot = 1;
                }
                else
                {
                    player2Shot = 2;
                }
                RockPaperScissorsGame(player1Shot, player2Shot);
                playerOne = player1Shot;
                playerTwo = player2Shot;
            }
            else if (SSEngine.VersionStage == MenuStage.LAN && clicked)
            {
                if (SSEngine.Player1.Value)
                {
                    playerOne = player1Shot;
                    SSEngine.LANClient.Send((byte)playerOne);
                }
                else
                {
                    playerTwo = player2Shot;
                    SSEngine.LANClient.Send((byte)playerTwo);
                }
            }
            else if (SSEngine.VersionStage == MenuStage.Online && clicked)
            {
                if (SSEngine.Player1.Value)
                {
                    playerOne = player1Shot;
                    NetOutgoingMessage msg = SSEngine.Peer.CreateMessage();
                    msg.Write((byte)playerOne);
                    SSEngine.Peer.SendMessage(msg, SSEngine.Peer.Connections[0], NetDeliveryMethod.ReliableOrdered);
                }
                else
                {
                    playerTwo = player2Shot;
                    NetOutgoingMessage msg = SSEngine.Peer.CreateMessage();
                    msg.Write((byte)playerTwo);
                    SSEngine.Peer.SendMessage(msg, SSEngine.Peer.Connections[0], NetDeliveryMethod.ReliableOrdered);
                }
            }
            if (SSEngine.VersionStage == MenuStage.LAN || SSEngine.VersionStage == MenuStage.Online)
            {
                selectedStage = MenuStage.RockPaperScissorsWait;
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            // Allows the game to exit
            if (Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                this.Exit();
            }

            MouseState mouse = Mouse.GetState();

            switch (menuStage)
            {
            case MenuStage.SplashScreen:
                if (gameTime.TotalGameTime.Seconds > 2)
                {
                    menuStage = MenuStage.MainMenu;
                }
                break;

            case MenuStage.MainMenu:
                UpdateButtons(mainButtons, gameTime, mouse); break;

            case MenuStage.Play:
                UpdateButtons(playButtons, gameTime, mouse);
                for (int i = 0; i < playButtons.Length - 1; i++)
                {
                    if (playButtons[i].IsClicked && playButtons[i].Stage != MenuStage.TwoPlayer)
                    {
                        SSEngine.VersionStage = playButtons[i].Stage;
                        selectedStage         = MenuStage.RockPaperScissors;
                        SSEngine.Player1      = true;
                    }
                }
                break;

            case MenuStage.TwoPlayer:
                UpdateButtons(twoPlayerBtns, gameTime, mouse);
                if (twoPlayerBtns[0].IsClicked)     // Online Button.
                {
                    SSEngine.Player1      = true;
                    SSEngine.VersionStage = twoPlayerBtns[0].Stage;
                    selectedStage         = MenuStage.Connect;
                    if (SSEngine.Peer == null)
                    {
                        Client.MainClient();
                    }
                }
                else if (twoPlayerBtns[1].IsClicked)     // LAN Button.
                {
                    SSEngine.Player1      = true;
                    SSEngine.VersionStage = twoPlayerBtns[1].Stage;
                    selectedStage         = MenuStage.Connect;
                    if (SSEngine.LANClient == null)
                    {
                        SSEngine.LANClient = new BroadcastClient();
                        if (SSEngine.LANClient.IsListening)
                        {
                            SSEngine.LANClient.Send((byte)MenuStage.Connect);
                        }
                    }
                }
                break;

            case MenuStage.Connect:
                if (SSEngine.VersionStage == MenuStage.LAN && SSEngine.LANClient.HasMessage())
                {
                    Message msg = SSEngine.LANClient.ReceiveMessage();
                    if (msg.Bytes[0] == (byte)MenuStage.Connect)
                    {
                        SSEngine.Player1 = true;
                        SSEngine.LANClient.Send((byte)MenuStage.Connected);
                        menuStage = MenuStage.Connected;
                    }
                    else if (msg.Bytes[0] == (byte)MenuStage.Connected)
                    {
                        SSEngine.LANClient.Send((byte)MenuStage.Connected);
                        SSEngine.Player1 = false;
                        menuStage        = MenuStage.RockPaperScissors;
                    }
                }
                else if (SSEngine.VersionStage == MenuStage.Online && SSEngine.IsHost.HasValue)
                {
                    if (Server.ConForm.cbClient.Checked && Server.ConForm.cbHost.Checked)     // Is a host or client.
                    {
                        SSEngine.Player1 = SSEngine.IsHost.Value;
                        menuStage        = MenuStage.RockPaperScissors;
                        System.Threading.Thread.Sleep(1000);
                        Server.ConForm.Close();
                    }
                }
                if (SSEngine.VersionStage == MenuStage.LAN && backButton.UpdateButton(mouse, gameTime))
                {
                    menuStage = MenuStage.Play;
                }
                break;

            case MenuStage.Connected:
                if (SSEngine.LANClient.HasMessage())
                {
                    Message msg = SSEngine.LANClient.ReceiveMessage();
                    if (msg.Bytes[0] == (byte)MenuStage.Connected)
                    {
                        menuStage = MenuStage.RockPaperScissors;
                    }
                }
                break;

            case MenuStage.RockPaperScissors:
                UpdateButtons(rocPapSciBtns, gameTime, mouse);
                UpdateRockPaperScissors();
                break;

            case MenuStage.RockPaperScissorsWait:
                if (SSEngine.VersionStage == MenuStage.LAN && SSEngine.LANClient.HasMessage())
                {
                    Message msg = SSEngine.LANClient.ReceiveMessage();
                    if (SSEngine.Player1.Value)
                    {
                        playerTwo = msg.Bytes[0];
                    }
                    else
                    {
                        playerOne = msg.Bytes[0];
                    }
                    RockPaperScissorsGame(playerOne, playerTwo);
                    menuStage = MenuStage.RockPaperScissorsPlaced;
                }
                else if (SSEngine.VersionStage == MenuStage.Online && SSEngine.Peer.PeekMessage() != null)
                {
                    NetIncomingMessage msg = SSEngine.Peer.ReadMessage();
                    if (SSEngine.Player1.Value)
                    {
                        playerTwo = msg.ReadByte();
                    }
                    else
                    {
                        playerOne = msg.ReadByte();
                    }
                    RockPaperScissorsGame(playerOne, playerTwo);
                    menuStage = MenuStage.RockPaperScissorsPlaced;
                }
                if (backButton.UpdateButton(mouse, gameTime))
                {
                    menuStage = MenuStage.Play;
                }
                break;

            case MenuStage.RockPaperScissorsPlaced:
                if (Keyboard.GetState().IsKeyDown(Keys.Enter))
                {
                    if (playerOne != playerTwo)
                    {
                        if (SSEngine.VersionStage == MenuStage.LAN && !SSEngine.LANClient.HasMessage())
                        {
                            menuStage = MenuStage.WaitToPlay;
                            SSEngine.LANClient.Send((byte)menuStage);
                        }
                        else if (SSEngine.VersionStage == MenuStage.LAN && SSEngine.LANClient.HasMessage())
                        {
                            Message msg = SSEngine.LANClient.ReceiveMessage();
                            if ((MenuStage)msg.Bytes[0] == MenuStage.WaitToPlay)
                            {
                                SSEngine.LANClient.Send((byte)MenuStage.WaitToPlay);
                                menuStage = MenuStage.InGame;
                                game      = new SSGame(this);
                                Components.Add(game);
                                game.Enabled = true;
                                game.Visible = true;
                            }
                        }
                        else if (SSEngine.VersionStage == MenuStage.Online && SSEngine.Peer.PeekMessage() == null)
                        {
                            menuStage = MenuStage.WaitToPlay;
                            NetOutgoingMessage msg = SSEngine.Peer.CreateMessage();
                            msg.Write((byte)MenuStage.WaitToPlay);
                            SSEngine.Peer.SendMessage(msg, SSEngine.Peer.Connections[0], NetDeliveryMethod.ReliableOrdered);
                        }
                        else if (SSEngine.VersionStage == MenuStage.Online && SSEngine.Peer.PeekMessage() != null)
                        {
                            NetIncomingMessage inc = SSEngine.Peer.ReadMessage();
                            if ((MenuStage)inc.ReadByte() == MenuStage.WaitToPlay)
                            {
                                NetOutgoingMessage msg = SSEngine.Peer.CreateMessage();
                                msg.Write((byte)MenuStage.WaitToPlay);
                                SSEngine.Peer.SendMessage(msg, SSEngine.Peer.Connections[0], NetDeliveryMethod.ReliableOrdered);
                                menuStage = MenuStage.InGame;
                                game      = new SSGame(this);
                                Components.Add(game);
                                game.Enabled = true;
                                game.Visible = true;
                            }
                        }

                        if (SSEngine.VersionStage != MenuStage.LAN && SSEngine.VersionStage != MenuStage.Online)
                        {
                            menuStage = MenuStage.InGame;
                            game      = new SSGame(this);
                            Components.Add(game);
                            game.Enabled = true;
                            game.Visible = true;
                        }
                    }
                    else
                    {
                        menuStage = MenuStage.RockPaperScissors;
                    }
                    playerOne = -1;
                    playerTwo = -1;
                }
                break;

            case MenuStage.WaitToPlay:
                if (SSEngine.VersionStage == MenuStage.LAN && SSEngine.LANClient.HasMessage())
                {
                    Message msg = SSEngine.LANClient.ReceiveMessage();
                    if ((MenuStage)msg.Bytes[0] == MenuStage.WaitToPlay)
                    {
                        menuStage = MenuStage.InGame;
                        game      = new SSGame(this);
                        Components.Add(game);
                        game.Enabled = true;
                        game.Visible = true;
                    }
                }
                else if (SSEngine.VersionStage == MenuStage.Online && SSEngine.Peer.PeekMessage() != null)
                {
                    NetIncomingMessage inc = SSEngine.Peer.ReadMessage();
                    if ((MenuStage)inc.ReadByte() == MenuStage.WaitToPlay)
                    {
                        NetOutgoingMessage msg = SSEngine.Peer.CreateMessage();
                        msg.Write((byte)MenuStage.WaitToPlay);
                        SSEngine.Peer.SendMessage(msg, SSEngine.Peer.Connections[0], NetDeliveryMethod.ReliableOrdered);
                        menuStage = MenuStage.InGame;
                        game      = new SSGame(this);
                        Components.Add(game);
                        game.Enabled = true;
                        game.Visible = true;
                    }
                }
                break;

            case MenuStage.InGame:
                if (SSEngine.VersionStage == MenuStage.Play)
                {
                    Components.Remove(game);
                    menuStage = MenuStage.Play;
                }
                break;

            case MenuStage.GameRules:
                UpdateButtons(gameRulesBtns, gameTime, mouse); break;

            case MenuStage.Settings:
                UpdateButtons(settingsBtns, gameTime, mouse); break;
            }

            base.Update(gameTime);
        }
Exemplo n.º 8
0
 public SSButton(Texture2D sprite, Vector2 position, Texture2D overlay, MenuStage stage)
     : base(sprite, position, overlay)
 {
     this.stage = stage;
 }