Example #1
0
        public LoadGameScene(Game game) : base(game)
        {
            // list of games
            var saveGameList = Data.SaveGame.FetchAll((SRPGGame)game);

            for (var i = 0; i < saveGameList.Count; i++)
            {
                var saveGame = saveGameList[i];
                var dlg      = new SavedGameDialog(saveGame);
                dlg.Bounds = new UniRectangle(
                    new UniScalar(0), new UniScalar(110 * i),
                    new UniScalar(1.0f, -160), new UniScalar(100)
                    );
                var fileNumber = i;
                dlg.OnSelect += () => ((SRPGGame)Game).LoadGame(fileNumber);
                Gui.Screen.Desktop.Children.Add(dlg);
            }

            // cancel button
            var button = new ButtonControl();

            button.Bounds = new UniRectangle(
                new UniScalar(1.0f, -150), new UniScalar(0),
                new UniScalar(150), new UniScalar(45)
                );
            button.Text     = "Cancel";
            button.Pressed += (s, a) => Game.PopScene();
            Gui.Screen.Desktop.Children.Add(button);

            Gui.Visualizer = FlatGuiVisualizer.FromFile(Game.Services, "Content/Gui/main_gui.xml");
        }
Example #2
0
        public PartyMenuScene(Game game) : base(game)
        {
            var keyboard = new KeyboardInputLayer(this, null);

            keyboard.AddKeyDownBinding(Keys.Escape, () => Game.PopScene());
            Components.Add(keyboard);

            _menu              = new MenuDialog();
            _menu.MenuChanged += ChangeMenu;
            Gui.Screen.Desktop.Children.Add(_menu);

            _partyMenuDialog = new PartyMenuDialog(((SRPGGame)Game).Party);
            _partyMenuDialog.OnCharacterChange += SetCharacter;
            Gui.Screen.Desktop.Children.Add(_partyMenuDialog);

            _characterInfoDialog             = new CharacterInfoDialog();
            _characterInfoDialog.ChangeItem += ChangeItem;
            Gui.Screen.Desktop.Children.Add(_characterInfoDialog);

            _inventoryDialog = new InventoryDialog();
            Gui.Screen.Desktop.Children.Add(_inventoryDialog);

            Gui.DrawOrder  = 1000;
            Gui.Visualizer = FlatGuiVisualizer.FromFile(Game.Services, "Content/Gui/main_gui.xml");
            ((FlatGuiVisualizer)Gui.Visualizer).RendererRepository.AddAssembly(typeof(FlatPictureControlRenderer).Assembly);
        }
Example #3
0
        public SaveGameScene(Game game, string zone, string door) : base(game)
        {
            // GUI elements:
            // cancel button
            var cancelButton = new ButtonControl();

            cancelButton.Text     = "Cancel";
            cancelButton.Pressed += (s, a) => Game.PopScene();
            cancelButton.Bounds   = new UniRectangle(
                new UniScalar(1.0f, -150), new UniScalar(0),
                new UniScalar(150), new UniScalar(45)
                );
            Gui.Screen.Desktop.Children.Add(cancelButton);

            // new save
            var newSaveButton = new ButtonControl();

            newSaveButton.Text     = "New Save";
            newSaveButton.Pressed += (s, a) =>
            {
                ((SRPGGame)Game).NewSaveGame(zone, door);
                Game.PopScene();
            };
            newSaveButton.Bounds = new UniRectangle(
                new UniScalar(1.0f, -150), new UniScalar(55),
                new UniScalar(150), new UniScalar(45)
                );
            Gui.Screen.Desktop.Children.Add(newSaveButton);

            // list of saves
            // list of games
            var saveGameList = Data.SaveGame.FetchAll((SRPGGame)game);

            for (var i = 0; i < saveGameList.Count; i++)
            {
                var saveGame = saveGameList[i];
                var dlg      = new SavedGameDialog(saveGame);
                dlg.Bounds = new UniRectangle(
                    new UniScalar(0), new UniScalar(110 * i),
                    new UniScalar(1.0f, -160), new UniScalar(100)
                    );
                var fileNumber = i;
                dlg.OnSelect += () =>
                {
                    ((SRPGGame)Game).SaveGame(fileNumber, zone, door);
                    Game.PopScene();
                };
                Gui.Screen.Desktop.Children.Add(dlg);
            }

            Gui.Visualizer = FlatGuiVisualizer.FromFile(Game.Services, "Content/Gui/main_gui.xml");
        }
Example #4
0
        private void Initialize()
        {
            _gui.Visualizer = FlatGuiVisualizer.FromFile(_game.Services, "Content/Skins/Alttp/Alttp.skin.xml");

            // Add image control renderer to renderer repository
            var flatGuiVisualizer = _gui.Visualizer as FlatGuiVisualizer;

            flatGuiVisualizer.RendererRepository.AddAssembly(typeof(FlatImageControlRenderer).Assembly);
            flatGuiVisualizer.RendererRepository.AddAssembly(typeof(FlatContextMenuControlRenderer).Assembly);

            _gui.Screen    = new Screen(_game.GraphicsDevice.Viewport.Width, _game.GraphicsDevice.Viewport.Height);
            _gui.DrawOrder = 1100;
        }
Example #5
0
        public BattleBoardLayer(Torch.Scene scene, Torch.Object parent) : base(scene, parent)
        {
            _gui = new GuiManager(
                (GraphicsDeviceManager)Game.Services.GetService(typeof(IGraphicsDeviceManager)),
                (IInputService)Game.Services.GetService(typeof(IInputService))
                );
            _gui.DrawOrder = 0;
            _gui.Initialize();

            _gui.Visualizer = FlatGuiVisualizer.FromFile(Game.Services, "Content/Gui/main_gui.xml");
            ((FlatGuiVisualizer)_gui.Visualizer).RendererRepository.AddAssembly(typeof(FlatGridCellControlRenderer).Assembly);

            Components.Add(_gui);

            ((IInputService)Game.Services.GetService(typeof(IInputService))).GetMouse().MouseButtonPressed += OnMouseButtonPressed;
        }
Example #6
0
        public OptionsScene(Game game) : base(game)
        {
            var keyboard = new KeyboardInputLayer(this, null);

            keyboard.AddKeyDownBinding(Keys.Escape, () => Game.PopScene());

            Components.Add(keyboard);

            var menuDialog = new MenuDialog();

            menuDialog.OnReturnPressed   += () => Game.PopScene();
            menuDialog.OnExitPressed     += () => Game.Exit();
            menuDialog.OnMainMenuPressed += () => ((SRPGGame)Game).ReturnToMainMenu();

            Gui.Screen.Desktop.Children.Add(menuDialog);
            Gui.Visualizer = FlatGuiVisualizer.FromFile(Game.Services, "Content/Gui/main_gui.xml");
        }
        /// <summary>Handles second-stage initialization of the GUI manager</summary>
        public void Initialize()
        {
            // Set up a default input capturer if none was assigned by the user.
            // We only require an IInputService if the user doesn't use a custom input
            // capturer (which could be based on any other input library)
            if (_inputCapturer == null)
            {
                if (_inputService == null)
                {
                    _inputService = GetInputService(_gameServices);
                }

                //_inputCapturer = new Input.DefaultInputCapturer(_inputService);
                _inputCapturer = new DefaultInputCapturer(_inputService);

                // If a screen was assigned to the GUI before the input capturer was
                // created, then the input capturer hasn't been given the screen as its
                // input sink yet.
                if (_screen != null)
                {
                    _inputCapturer.InputReceiver = _screen;
                }
            }

            // Set up a default GUI visualizer if none was assigned by the user.
            // We only require an IGraphicsDeviceService if the user doesn't use a
            // custom visualizer (which could be using any kind of rendering)
            if (_guiVisualizer == null)
            {
                if (_graphicsDeviceService == null)
                {
                    _graphicsDeviceService = GetGraphicsDeviceService(_gameServices);
                }

                // Use a private service container. We know exactly what will be loaded from
                // the content manager our default GUI visualizer creates and if the user is
                // being funny, the graphics device service passed to the constructor might
                // be different from the one registered in the game service container.
                var services = new GameServiceContainer();
                services.AddService(typeof(IGraphicsDeviceService), _graphicsDeviceService);

                Visualizer = FlatGuiVisualizer.FromResource(services,
                                                            "MonoGame.Extended.NuclexGui.Resources.Skins.SuaveSkin.json");
            }
        }
Example #8
0
        /// <summary>
        /// Pre-battle initialization sequence to load characters, the battleboard and the image layers.
        /// </summary>
        protected override void OnEntered()
        {
            base.OnEntered();

            QueuedCommands = new List <Command>();

            _characterStats = new CharacterStatsDialog();
            Gui.Screen.Desktop.Children.Add(_characterStats);

            _hud = new HUDDialog();
            _hud.EndTurnPressed += EndPlayerTurn;
            Gui.Screen.Desktop.Children.Add(_hud);

            _queuedCommands = new QueuedCommandsDialog(QueuedCommands);
            _queuedCommands.ExecuteClicked += ExecuteQueuedCommands;

            _abilityStatLayer = new AbilityStatDialog();

            Game.IsMouseVisible = true;

            Gui.Visualizer = FlatGuiVisualizer.FromFile(Game.Services, "Content/Gui/main_gui.xml");

            ((FlatGuiVisualizer)Gui.Visualizer).RendererRepository.AddAssembly(typeof(FlatImageButtonControlRenderer).Assembly);
            ((FlatGuiVisualizer)Gui.Visualizer).RendererRepository.AddAssembly(typeof(FlatTiledIconControlRenderer).Assembly);
            ((FlatGuiVisualizer)Gui.Visualizer).RendererRepository.AddAssembly(typeof(FlatRadialButtonControlRenderer).Assembly);
            ((FlatGuiVisualizer)Gui.Visualizer).RendererRepository.AddAssembly(typeof(FlatQueuedCommandControlRenderer).Assembly);

            var keyboard = new KeyboardInputLayer(this, null);

            keyboard.AddKeyDownBinding(Keys.Escape, Cancel);
            Components.Add(keyboard);

            if (_startingDialog != null)
            {
                StartDialog(_startingDialog);
                _startingDialog = null;
            }
        }
Example #9
0
        public OverworldScene(Game game) : base(game)
        {
            _environment = new Environment(this, null)
            {
                DrawOrder = 1
            };

            var keyboardInput = new KeyboardInput(this, null);

            Components.Add(keyboardInput);

            _hud = new HUD(this, null)
            {
                DrawOrder = 5
            };
            Components.Add(_hud);
            Components.Add(_environment);

            Avatar = Avatar.GenerateAvatar(Game, _environment, "fighter");

            Gui.DrawOrder  = 1000;
            Gui.Visualizer = FlatGuiVisualizer.FromFile(Game.Services, "Content/Gui/main_gui.xml");
        }
Example #10
0
        public MainMenu(Game game) : base(game)
        {
            Components.Add(new BackgroundLayer(this, null, "MainMenu/bg")
            {
                DrawOrder = -10000
            });
            _menuOptionsDialog        = new MenuOptionsDialog();
            _menuOptionsDialog.Bounds = new UniRectangle(10, 10, 180, 275);

            _optionsControl        = new OptionsControl();
            _optionsControl.Bounds = new UniRectangle(
                new UniScalar(0, 200), new UniScalar(10),
                new UniScalar(310), new UniScalar(500)
                );
            _optionsControl.OptionsCanceled += () => HideGui(_optionsControl);
            _optionsControl.OptionsSaved    += (fullscreen, width, height) =>
            {
                Game.ChangeResolution(fullscreen, width, height);
                HideGui(_optionsControl);
            };
            HideGui(_optionsControl);

            _menuOptionsDialog.OnExitPressed    += () => Game.Exit();
            _menuOptionsDialog.OnNewGamePressed += () => ((SRPGGame)Game).StartGame();

            _menuOptionsDialog.OnOptionsPressed += () =>
            {
                ShowGui(_optionsControl);
                _optionsControl.UpdateSettings(game);
            };

            _menuOptionsDialog.OnLoadGamePressed += () => ((SRPGGame)Game).ShowLoadScreen();
            _menuOptionsDialog.OnContinuePressed += () => ((SRPGGame)Game).ContinueLastGame();

            Gui.Screen.Desktop.Children.Add(_menuOptionsDialog);
            Gui.Visualizer = FlatGuiVisualizer.FromFile(Game.Services, "Content/Gui/main_gui.xml");
        }
Example #11
0
 public override void LoadContent(DeviceContext context)
 {
     _guiVisualizer = ToDispose(FlatGuiVisualizer.FromFile(_d3DEngine, _skinPath, _plugInComponentAssemblies));
 }
Example #12
0
 /// <summary>
 /// Gives the game component a chance to initialize itself
 /// </summary>
 public override void Initialize()
 {
     base.Initialize();
     _visualizer = (FlatGuiVisualizer)_box.GuiManager.Visualizer;
     _visualizer.RendererRepository.AddAssembly(typeof(IGame).Assembly);
 }
Example #13
0
        public ShopScene(Game game, List <Item> shopInventory) : base(game)
        {
            _shopInventory = shopInventory;

            var keyboard = new KeyboardInputLayer(this, null);

            keyboard.AddKeyDownBinding(Keys.Escape, () => Game.PopScene());
            Components.Add(keyboard);

            Game.IsMouseVisible = true;

            Gui.DrawOrder  = 1000;
            Gui.Visualizer = FlatGuiVisualizer.FromFile(Game.Services, "Content/Gui/main_gui.xml");

            // GUI elements:
            _shopInventoryDialog = new InventoryDialog();

            _shopInventoryDialog.Bounds = new UniRectangle(
                new UniScalar(0), new UniScalar(0),
                new UniScalar(225), new UniScalar(0.6F, -45)
                );
            _shopInventoryDialog.SetInventory(_shopInventory);
            _shopInventoryDialog.HoverChanged += UpdateItemFocus;
            _shopInventoryDialog.HoverCleared += ClearItemFocus;
            Gui.Screen.Desktop.Children.Add(_shopInventoryDialog);

            _playerInventoryDialog        = new InventoryDialog();
            _playerInventoryDialog.Bounds = new UniRectangle(
                new UniScalar(235), new UniScalar(0),
                new UniScalar(225), new UniScalar(0.6F, -45)
                );
            _playerInventoryDialog.HoverChanged += UpdateItemFocus;
            _playerInventoryDialog.HoverCleared += ClearItemFocus;
            Gui.Screen.Desktop.Children.Add(_playerInventoryDialog);

            _itemPreviewDialog        = new ItemPreviewDialog();
            _itemPreviewDialog.Bounds = new UniRectangle(
                new UniScalar(470), new UniScalar(0),
                new UniScalar(1.0f, -630), new UniScalar(0.6F, 0)
                );
            Gui.Screen.Desktop.Children.Add(_itemPreviewDialog);

            // money / information
            _infoDialog        = new InfoDialog();
            _infoDialog.Bounds = new UniRectangle(
                new UniScalar(1.0F, -150), new UniScalar(0.0F, 45),
                new UniScalar(150), new UniScalar(0.6F, -45)
                );
            Gui.Screen.Desktop.Children.Add(_infoDialog);

            // party
            _partyDialog        = new PartyDialog(((SRPGGame)Game).Party);
            _partyDialog.Bounds = new UniRectangle(
                new UniScalar(0), new UniScalar(0.6F, 10),
                new UniScalar(1.0F, 0), new UniScalar(0.4F, -10)
                );
            Gui.Screen.Desktop.Children.Add(_partyDialog);

            // exit button
            _exitButton        = new ButtonControl();
            _exitButton.Text   = "Exit";
            _exitButton.Bounds = new UniRectangle(
                new UniScalar(1.0F, -150), new UniScalar(0),
                new UniScalar(150), new UniScalar(35)
                );
            _exitButton.Pressed += (s, a) => Game.PopScene();
            Gui.Screen.Desktop.Children.Add(_exitButton);

            // buy selected
            _buyButton        = new ButtonControl();
            _buyButton.Text   = "Buy";
            _buyButton.Bounds = new UniRectangle(
                new UniScalar(0), new UniScalar(0.6F, -35),
                new UniScalar(225), new UniScalar(35)
                );
            _buyButton.Pressed += BuySelectedItems;
            Gui.Screen.Desktop.Children.Add(_buyButton);

            // sell selected
            _sellButton        = new ButtonControl();
            _sellButton.Text   = "Sell";
            _sellButton.Bounds = new UniRectangle(
                new UniScalar(235), new UniScalar(0.6F, -35),
                new UniScalar(225), new UniScalar(35)
                );
            _sellButton.Pressed += SellSelectedItems;
            Gui.Screen.Desktop.Children.Add(_sellButton);

            ClearItemFocus();
            RefreshShop();
        }