public static void BackToGame()
        {
            Screen game = ScreenManager.getScreen(ScreenId.Game);

            game.setState(true);

            foreach (Screen s in ScreenManager.screenIterator())
            {
                if (s is PopUpScreen)
                {
                    s.setDraw(false);
                    s.setUpdate(true);
                }
            }

            PauseScreen pause = (PauseScreen)ScreenManager.getScreen(ScreenId.Pause);

            pause.setDraw(false);
            pause.setUpdate(true);
            pause.escPressed = false;
            if (pause.isPaused())
            {
                pause.togglePause();
            }

            InventoryScreen stats = (InventoryScreen)ScreenManager.getScreen(ScreenId.Inventory);

            stats.setUpdate(true);
            stats.buttonPressed = false;
        }
        public static void Save(bool print)
        {
            if (!Directory.Exists(@".\saves"))
            {
                Directory.CreateDirectory(@".\saves");
            }

            try {
                GameScreen game = (GameScreen)ScreenManager.getScreen(ScreenId.Game);
                if (game.Player != null)
                {
                    Stream stream = File.Open(@".\saves\save1.save", FileMode.Create);

                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(stream, game.Player);

                    stream.Close();
                    if (print)
                    {
                        MessageBox.Show("Saved successfully");
                    }
                }
                else if (print)
                {
                    MessageBox.Show("No player to save");
                }
            } catch (Exception ex) {
                MessageBox.Show("Error: " + ex.Message);
            }
        }
Example #3
0
 public override void setUpdate(bool val)
 {
     base.setUpdate(val);
     if (val)
     {
         player = ((GameScreen)ScreenManager.getScreen(ScreenId.Game)).Player;
     }
 }
        public static void MainMenuHelp()
        {
            MenuItemFunctions.ClosePopups();

            Screen help = ScreenManager.getScreen(ScreenId.MainMenuHelp);

            help.setState(true);
        }
        public static void ReturnInput()
        {
            InputScreen input = (InputScreen)ScreenManager.getScreen(ScreenId.Input);

            input.returnInput();

            BackToGame();
        }
        public static void MainMenu()
        {
            MenuItemFunctions.ClosePopups();

            MenuItemFunctions.Save(false);

            Screen mainMenu = ScreenManager.getScreen(ScreenId.MainMenu);

            mainMenu.setState(true);
        }
Example #7
0
        public static void MainMenuHelp()
        {
            // Close all
            foreach (Screen s in ScreenManager.screenIterator())
            {
                s.DoDraw = s.DoUpdate = false;
            }

            Screen help = ScreenManager.getScreen(ScreenId.MainMenuHelp);

            help.DoDraw = help.DoUpdate = true;
        }
Example #8
0
        public static void MainMenu()
        {
            // Close all
            foreach (Screen s in ScreenManager.screenIterator())
            {
                s.DoDraw = s.DoUpdate = false;
            }

            MenuItemFunctions.Save(false);

            Screen mainMenu = ScreenManager.getScreen(ScreenId.MainMenu);

            mainMenu.DoUpdate = mainMenu.DoDraw = true;
        }
        public static void Play()
        {
            Screen mainmenu = ScreenManager.getScreen(ScreenId.MainMenu);

            mainmenu.setState(false);

            GameScreen game = (GameScreen)ScreenManager.getScreen(ScreenId.Game);

            InputScreen input = (InputScreen)ScreenManager.getScreen(ScreenId.Input);

            // This function will be called to initialize the game screens and create the player with the inputed name
            input.setTitle("Input Name:");
            input.setAction(game.init);
            input.setState(true);
        }
Example #10
0
        public static void Load()
        {
            Screen mainmenu = ScreenManager.getScreen(ScreenId.MainMenu);

            mainmenu.setUpdate(false);

            if (!Directory.Exists(@".\saves"))
            {
                Directory.CreateDirectory(@".\saves");
            }

            try {
                Stream stream = File.Open(@".\saves\save1.save", FileMode.Open);
                if (stream != null)
                {
                    GameScreen      game      = (GameScreen)ScreenManager.getScreen(ScreenId.Game);
                    BinaryFormatter formatter = new BinaryFormatter();
                    game.Player = (Player)formatter.Deserialize(stream);
                    game.Player.newMainRoom();

                    stream.Close();

                    mainmenu.setDraw(false);
                    BackToGame();
                }
                else
                {
                    throw new FileNotFoundException();
                }
            } catch (FileNotFoundException) {
                MessageBox.Show("No save found");
            } catch (SerializationException) {
                MessageBox.Show("Failed to load, save file corrupted.");
            } catch (Exception ex) {
                MessageBox.Show("Error: " + ex.Message);
            }

            // Do draw is set to false if load was successful, otherwise it will still be true
            mainmenu.setUpdate(mainmenu.doDraw());
        }
Example #11
0
        public override void Update(GameTime gTime)
        {
            KeyboardState kb = Keyboard.GetState();

            if (kb.IsKeyDown(Keys.Escape))
            {
                escPressed = true;
            }
            else if (escPressed)
            {
                escPressed = false;
                togglePause();

                // If paused draw this and not game
                DoDraw = paused;
                ScreenManager.getScreen(ScreenId.Game).DoUpdate      = !paused;
                ScreenManager.getScreen(ScreenId.Inventory).DoUpdate = !paused;
            }

            if (isPaused())
            {
                base.Update(gTime);
            }
        }
Example #12
0
        public override void Update(GameTime gTime)
        {
            MouseState ms = Mouse.GetState();

            if (ScreenManager.kbState.IsKeyDown(Keys.I))
            {
                buttonPressed = true;
            }
            else if (buttonPressed)
            {
                buttonPressed = false;
                toggleDrawing();

                // If paused draw this and not game
                ScreenManager.getScreen(ScreenId.Game).DoUpdate  = !DoDraw;
                ScreenManager.getScreen(ScreenId.Pause).DoUpdate = !DoDraw;
            }

            hoverOver = null;
            foreach (ItemBlock ib in itemBlocks)
            {
                if (ib.Item != null && ib.IsOn(ms))
                {
                    if (player.Alive)
                    {
                        if (oldMouse.LeftButton == ButtonState.Pressed && ms.LeftButton == ButtonState.Released)
                        {
                            ib.Action(player);
                        }
                        else if (oldMouse.RightButton == ButtonState.Pressed && ms.RightButton == ButtonState.Released)
                        {
                            player.removeItem(ib.Item);
                            player.GScreen.TileMap.dropItem(ib.Item, player);
                        }
                    }
                    hoverOver = ib;
                    break;
                }
            }

            Point p = new Point(ms.X, ms.Y);

            if (helmRect.Contains(p))
            {
                if (player.Alive && oldMouse.RightButton == ButtonState.Pressed && ms.RightButton == ButtonState.Released)
                {
                    player.addItem(player.Equipment.Head.Item);
                    player.Equipment.setHead(null);
                }
                else if (player.Equipment.Head != null)
                {
                    hoverOver = new ItemBlock(player.Equipment.Head.Item);
                }
            }
            else if (bodyRect.Contains(p))
            {
                if (player.Alive && oldMouse.RightButton == ButtonState.Pressed && ms.RightButton == ButtonState.Released)
                {
                    player.addItem(player.Equipment.Body.Item);
                    player.Equipment.setBody(null);
                }
                else if (player.Equipment.Body != null)
                {
                    hoverOver = new ItemBlock(player.Equipment.Body.Item);
                }
            }
            else if (legsRect.Contains(p))
            {
                if (player.Alive && oldMouse.RightButton == ButtonState.Pressed && ms.RightButton == ButtonState.Released)
                {
                    player.addItem(player.Equipment.Legs.Item);
                    player.Equipment.setLegs(null);
                }
                else if (player.Equipment.Legs != null)
                {
                    hoverOver = new ItemBlock(player.Equipment.Legs.Item);
                }
            }

            oldMouse = ms;

            base.Update(gTime);
        }
Example #13
0
        public override void Update(GameTime gTime)
        {
            MouseState    ms = Mouse.GetState();
            KeyboardState kb = ScreenManager.kbState;

            if (kb.IsKeyDown(Keys.I))
            {
                buttonPressed = true;
            }
            else if (buttonPressed)
            {
                buttonPressed = false;
                toggleDrawing();

                // If paused draw this and not game
                ScreenManager.getScreen(ScreenId.Game).setUpdate(!this.doDraw());
                ScreenManager.getScreen(ScreenId.Pause).setUpdate(!this.doDraw());
            }

            // Stuff that only happens if open
            if (this.doDraw())
            {
                hoverOver = null;
                Item oldHeldItem = heldItem;
                for (int idx = 0; idx < itemBlocks.Length; idx++)
                {
                    ItemBlock ib = itemBlocks[idx];
                    if (ib.IsOn(ms))
                    {
                        if (player.Alive)
                        {
                            if (oldMouse.LeftButton == ButtonState.Pressed && ms.LeftButton == ButtonState.Released)
                            {
                                if (heldItem == null)
                                {
                                    heldItem = ib.Item;
                                    player.removeItem(ib.Item);
                                }
                                else
                                {
                                    // Pickup the old item
                                    heldItem = player.setItemAt(idx, heldItem);
                                }
                            }
                            else if (oldMouse.RightButton == ButtonState.Pressed && ms.RightButton == ButtonState.Released)
                            {
                                ib.Action(player);
                            }
                        }
                        hoverOver = ib;
                        break;
                    }
                }

                // Holding an item and clicked not on slot
                if (heldItem != null && heldItem == oldHeldItem &&
                    oldMouse.LeftButton == ButtonState.Pressed && ms.LeftButton == ButtonState.Released)
                {
                    player.Map.dropItem(heldItem, player);
                    heldItem = null;
                }

                Point p = new Point(ms.X, ms.Y);
                if (helmRect.Contains(p))
                {
                    if (player.Alive && oldMouse.RightButton == ButtonState.Pressed && ms.RightButton == ButtonState.Released)
                    {
                        player.addItem(player.Equipment.Head.Item);
                        player.Equipment.setHead(null);
                    }
                    else if (player.Equipment.Head != null)
                    {
                        hoverOver = new ItemBlock(player.Equipment.Head.Item);
                    }
                }
                else if (bodyRect.Contains(p))
                {
                    if (player.Alive && oldMouse.RightButton == ButtonState.Pressed && ms.RightButton == ButtonState.Released)
                    {
                        player.addItem(player.Equipment.Body.Item);
                        player.Equipment.setBody(null);
                    }
                    else if (player.Equipment.Body != null)
                    {
                        hoverOver = new ItemBlock(player.Equipment.Body.Item);
                    }
                }
                else if (legsRect.Contains(p))
                {
                    if (player.Alive && oldMouse.RightButton == ButtonState.Pressed && ms.RightButton == ButtonState.Released)
                    {
                        player.addItem(player.Equipment.Legs.Item);
                        player.Equipment.setLegs(null);
                    }
                    else if (player.Equipment.Legs != null)
                    {
                        hoverOver = new ItemBlock(player.Equipment.Legs.Item);
                    }
                }
            }

            oldMouse = ms;

            base.Update(gTime);
        }