Example #1
0
        public OptionsMenu() : base(Handlers, DialogPositioning.Center)
        {
            StringId S(SystemTextId id) => new StringId(AssetType.SystemText, 0, (int)id);

            var elements = new List <IUiElement>
            {
                new Padding(156, 2),
                new Label(S(SystemTextId.Options_MusicVolume)),
                new Slider(MusicVolumeKey, () => _musicVolume, x => _musicVolume = x, 0, 127),
                new Padding(0, 2),
                new Label(S(SystemTextId.Options_FXVolume)),
                new Slider(FxVolumeKey, () => _fxVolume, x => _fxVolume = x, 0, 127),
                new Padding(0, 2),
                new Label(S(SystemTextId.Options_3DWindowSize)),
                new Slider(WindowSizeKey, () => _windowSize3d, x => _windowSize3d = x, 0, 100),
                new Padding(0, 2),
                new Label(S(SystemTextId.Options_CombatDetailLevel)),
                new Slider(CombatDetailKey, () => _combatDetailLevel, x => _combatDetailLevel = x, 1, 5),
                new Padding(0, 2),
                new Label(S(SystemTextId.Options_CombatTextDelay)),
                new Slider(CombatDelayKey, () => _combatDelay, x => _combatDelay = x, 1, 50),
                new Padding(0, 2),
                new Button(DoneKey, S(SystemTextId.MsgBox_OK)),
                new Padding(0, 2),
            };
            var stack = new VerticalStack(elements);

            Children.Add(new DialogFrame(stack));
        }
Example #2
0
        public YesNoMessageBox(StringId stringId) : base(Handlers, DialogPositioning.Center)
        {
            var elements = new VerticalStack(
                new Padding(0, 5),
                new FixedSizePanel(231, 30, new Text(stringId)),
                new Padding(0, 5),
                new HorizontalStack(
                    new Padding(11, 0),
                    new Button(YesButtonKey, S(SystemTextId.MsgBox_Yes))
            {
                DoubleFrame = true
            },
                    new Padding(8, 0),
                    new Button(NoButtonKey, S(SystemTextId.MsgBox_No))
            {
                DoubleFrame = true
            },
                    new Padding(10, 0)
                    ),
                new Padding(0, 5)
                );

            var horizontalPad = new HorizontalStack(
                new Padding(6, 0),
                elements,
                new Padding(6, 0)
                );

            Children.Add(new DialogFrame(horizontalPad));
        }
Example #3
0
        public override void Subscribed()
        {
            foreach (var child in Children)
            {
                child.Detach();
            }
            Children.Clear();

            var state    = Resolve <IGameState>();
            var elements = new List <IUiElement>
            {
                new Padding(0, 2),
                new HorizontalStack(new Padding(5, 0), new Header(S(SystemTextId.MainMenu_MainMenu)), new Padding(5, 0)),
                new Divider(CommonColor.Yellow3),
                new Padding(0, 2),
            };

            if (state.Loaded)
            {
                elements.AddRange(new IUiElement[]
                {
                    new Button(ContinueKey, S(SystemTextId.MainMenu_ContinueGame)),
                    new Padding(0, 4),
                });
            }

            elements.AddRange(new IUiElement[]
            {
                new Button(NewGameKey, S(SystemTextId.MainMenu_NewGame)),
                new Button(LoadGameKey, S(SystemTextId.MainMenu_LoadGame)),
            });

            if (state.Loaded)
            {
                elements.Add(new Button(SaveGameKey, S(SystemTextId.MainMenu_SaveGame)));
            }

            elements.AddRange(new IUiElement[]
            {
                new Padding(0, 4),
                new Button(OptionsKey, S(SystemTextId.MainMenu_Options)),
                new Button(ViewIntroKey, S(SystemTextId.MainMenu_ViewIntro)),
                new Button(CreditsKey, S(SystemTextId.MainMenu_Credits)),
                new Padding(0, 3),
                new Button(QuitGameKey, S(SystemTextId.MainMenu_QuitGame)),
                new Padding(0, 2),
            });

            var stack = new VerticalStack(elements);

            Children.Add(new DialogFrame(stack));

            foreach (var child in Children)
            {
                child.Attach(Exchange);
            }

            base.Subscribed();
        }