示例#1
0
        private void SupportPartnerMenu_Selected(object sender, EventArgs e)
        {
            var supportPartnerMenu = (sender as SupportCommandMenu);
            var supportMenu        = (Menus.ElementAt(1) as Window_Base_Support);
            int targetId           = supportPartnerMenu.TargetId;

            if (supportMenu.TrySelectPartner(targetId))
            {
                Global.game_system.play_se(System_Sounds.Confirm);

                var supportConfirmWindow = new Preparations_Confirm_Window();
                supportConfirmWindow.set_text(string.Format("Speak to {0}?",
                                                            Global.game_actors[targetId].name));
                supportConfirmWindow.add_choice("Yes", new Vector2(16, 12));
                supportConfirmWindow.add_choice("No", new Vector2(64, 12));
                supportConfirmWindow.size  = new Vector2(112, 40);
                supportConfirmWindow.loc   = new Vector2(32, 24);
                supportConfirmWindow.index = 1;

                var supportConfirmMenu = new ConfirmationMenu(supportConfirmWindow);
                supportConfirmMenu.Confirmed += SupportConfirmMenu_Confirmed;
                supportConfirmMenu.Canceled  += menu_Closed;
                AddMenu(supportConfirmMenu);
            }
            else
            {
                Global.game_system.play_se(System_Sounds.Buzzer);
            }
        }
        private void UseMenu_Selected(object sender, EventArgs e)
        {
            Global.game_system.play_se(System_Sounds.Confirm);

            var useMenu = (sender as ItemUseMenu);

            var actor     = useMenu.Actor;
            int itemIndex = useMenu.SelectedItem;
            var itemData  = actor.items[itemIndex];

            if (itemData.to_item.targets_inventory())
            {
                var repairWindow = useMenu.GetRepairWindow();
                var repairMenu   = new ItemRepairMenu(
                    actor.id, itemIndex, repairWindow, useMenu);
                repairMenu.Selected += RepairMenu_Selected;
                repairMenu.Canceled += RepairMenu_Canceled;
                AddMenu(repairMenu);

                useMenu.HideWindow();
            }
            else
            {
                Vector2 cursorLoc        = useMenu.CurrentCursorLoc;
                var     useConfirmWindow = UseConfirmMenu(cursorLoc);

                var useConfirmMenu = new ConfirmationMenu(useConfirmWindow);
                useConfirmMenu.Confirmed += UseConfirmMenu_Confirmed;
                useConfirmMenu.Canceled  += UseConfirmMenu_Canceled;
                AddMenu(useConfirmMenu);
            }
        }
        private void AddMetricsSetMenu()
        {
            var metricsSetWindow = new Parchment_Info_Window();

            if (Global.gameSettings.General.Metrics == Metrics_Settings.On)
            {
                metricsSetWindow.set_text(
                    @"Thank you for participating. Metrics
collection can be turned on or off
at any time from the options menu.");
            }
            else
            {
                metricsSetWindow.set_text(
                    @"If you change your mind, metrics
collection can be turned on or off
at any time from the options menu.");
            }
            metricsSetWindow.size         = new Vector2(184, 64);
            metricsSetWindow.loc          = (new Vector2(Config.WINDOW_WIDTH, Config.WINDOW_HEIGHT) - metricsSetWindow.size) / 2;
            metricsSetWindow.stereoscopic = Config.TITLE_CHOICE_DEPTH - 1;

            var metricsSetMenu = new ConfirmationMenu(metricsSetWindow);

            metricsSetMenu.Confirmed += metricsSetMenu_Close;
            AddMenu(metricsSetMenu);
        }
        private void CheckMetrics()
        {
            if (Global.metrics_allowed &&
                Global.gameSettings.General.Metrics == Metrics_Settings.Not_Set)
            {
                // Show first run metrics setting confirmation window
                var metricsConfirmWindow = new Parchment_Confirm_Window();
                metricsConfirmWindow.set_text(
                    @"Would you like to provide
anonymous usage data to
the developers for use in
improving this game?");
                metricsConfirmWindow.add_choice("Yes", new Vector2(32, 64));
                metricsConfirmWindow.add_choice("No", new Vector2(80, 64));
                metricsConfirmWindow.size         = new Vector2(136, 96);
                metricsConfirmWindow.loc          = (new Vector2(Config.WINDOW_WIDTH, Config.WINDOW_HEIGHT) - metricsConfirmWindow.size) / 2;
                metricsConfirmWindow.index        = 0;
                metricsConfirmWindow.stereoscopic = Config.TITLE_CHOICE_DEPTH - 1;

                var metricsConfirmMenu = new ConfirmationMenu(metricsConfirmWindow);
                metricsConfirmMenu.Confirmed += metricsConfirmMenu_Confirmed;
                metricsConfirmMenu.Canceled  += metricsConfirmMenu_Canceled;
                AddMenu(metricsConfirmMenu);
            }
        }
示例#5
0
    private ModalWindowManager()
    {
        confirmationMenuPool = new List <ConfirmationMenu>();

        //es necesario hacerlo usando <GameObject> porque al ser un prefab el assetbundle no contempla ninguno de sus componentes
        //asique se debe pedir el gameobject primero y luego obtener su componente
        confirmationMenuPrefab = SJResources.Instance.LoadGameObjectAndGetComponent <ConfirmationMenu>("ConfirmationMenuPrefab");
    }
示例#6
0
        // Chapter selected
        void worldmapMenu_ChapterSelected(object sender, EventArgs e)
        {
            var worldmapMenu = sender as WorldmapMenu;

            // Select chapter
            if (Constants.WorldMap.HARD_MODE_BLOCKED.Contains(
                    MenuData.ChapterId) &&
                Global.game_system.hard_mode)
            {
                Global.game_system.Difficulty_Mode = Difficulty_Modes.Normal;
                worldmapMenu.RefreshDataPanel();

                if (Global.game_system.Style != Mode_Styles.Classic)
                {
                    Global.game_system.play_se(System_Sounds.Cancel);

                    var hardModeBlockWindow = new Parchment_Info_Window();
                    hardModeBlockWindow.set_text(@"This chapter does not yet have
hard mode data, and must be
loaded in normal mode. Sorry!");
                    hardModeBlockWindow.size = new Vector2(160, 64);
                    hardModeBlockWindow.loc  =
                        new Vector2(Config.WINDOW_WIDTH, Config.WINDOW_HEIGHT) / 2 -
                        hardModeBlockWindow.size / 2;

                    var hardModeBlockedMenu = new ConfirmationMenu(hardModeBlockWindow);
                    hardModeBlockedMenu.Confirmed += hardModeBlockedMenu_Close;
                    AddMenu(hardModeBlockedMenu);

                    return;
                }
            }

            if (MenuData.IsSkippingGaiden(MenuData.ChapterId))
            {
                Global.game_system.play_se(System_Sounds.Confirm);

                var gaidenSkippedWindow = new Parchment_Info_Window();
                gaidenSkippedWindow.set_text(@"Proceeding with this chapter
will skip available sidequests
or alternate routes.");
                gaidenSkippedWindow.size = new Vector2(152, 64);
                gaidenSkippedWindow.loc  =
                    new Vector2(Config.WINDOW_WIDTH, Config.WINDOW_HEIGHT) / 2 -
                    gaidenSkippedWindow.size / 2;

                var gaidenSkippedMenu = new ConfirmationMenu(gaidenSkippedWindow);
                gaidenSkippedMenu.Confirmed += gaidenSkippedMenu_Close;
                AddMenu(gaidenSkippedMenu);

                return;
            }

            Global.game_system.play_se(System_Sounds.Confirm);
            SelectChapter(worldmapMenu);
        }
示例#7
0
        void saveComparisonMenu_Opened(object sender, EventArgs e)
        {
            var window = create_save_overwrite_window();

            var saveOverwriteMenu = new ConfirmationMenu(window);

            saveOverwriteMenu.Confirmed += saveOverwriteMenu_Confirmed;
            saveOverwriteMenu.Canceled  += saveOverwriteMenu_Canceled;
            AddMenu(saveOverwriteMenu);
        }
示例#8
0
    public void DisplayConfirmationMenu(string message, UnityAction onSubmit, UnityAction onCancel, Canvas root)
    {
        ConfirmationMenu menu = GetFirstAvailable();

        if (menu == null)
        {
            menu = GameObject.Instantiate <ConfirmationMenu>(confirmationMenuPrefab);

            confirmationMenuPool.Add(menu);
        }

        menu.Display(message, onSubmit, onCancel, root);
    }
        private void RepairMenu_Selected(object sender, EventArgs e)
        {
            Global.game_system.play_se(System_Sounds.Confirm);

            var repairMenu = (sender as ItemRepairMenu);

            Vector2 cursorLoc        = repairMenu.CurrentCursorLoc;
            var     useConfirmWindow = UseConfirmMenu(cursorLoc);

            var useConfirmMenu = new ConfirmationMenu(useConfirmWindow);

            useConfirmMenu.Confirmed += TargetedUseConfirmMenu_Confirmed;
            useConfirmMenu.Canceled  += UseConfirmMenu_Canceled;
            AddMenu(useConfirmMenu);
        }
示例#10
0
        /// <summary>
        /// Handles player names and personality quiz stuff
        /// </summary>
        /// <param name="playerOne"></param>
        /// <param name="playerTwo"></param>
        /// <param name="printer"></param>
        private static void SetupPlayers(out HumanFighter playerOne, out HumanFighter playerTwo, EventHandlerPrinter printer)
        {
            string playerOneName = GetName(1);
            string playerTwoName = GetName(2, playerOneName);

            playerOne = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, playerOneName);
            playerTwo = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, playerTwoName);
            Globals.Output.ClearScreen();

            printer.Subscribe(playerOne, playerTwo);

            Globals.DecisionManager.AssignNameBonuses(playerOne, playerTwo);

            ConfirmationMenu takePersonalityQuizConfirmationMenu = new ConfirmationMenu(false, "To better get to know your characters, would you like to fill out a short personality questionaire?\n(if you decline, the answers will be asigned randomly)\n", Globals.Input, Globals.Output);
            MenuSelection    takePersonalityQuizSelection        = takePersonalityQuizConfirmationMenu.GetInput();

            Globals.DecisionManager.PersonalityQuiz(playerOne, playerTwo, takePersonalityQuizSelection.Description == "no", Globals.ChanceService);
        }
示例#11
0
        void homeBaseMenu_Start(object sender, EventArgs e)
        {
            var leaveConfirmWindow = new Parchment_Confirm_Window();

            leaveConfirmWindow.set_text("Leave base?", new Vector2(8, 0));
            leaveConfirmWindow.add_choice("Yes", new Vector2(16, 16));
            leaveConfirmWindow.add_choice("No", new Vector2(56, 16));
            leaveConfirmWindow.size = new Vector2(96, 48);
            leaveConfirmWindow.loc  =
                new Vector2(Config.WINDOW_WIDTH, Config.WINDOW_HEIGHT) / 2 -
                leaveConfirmWindow.size / 2;

            var leaveConfirmMenu = new ConfirmationMenu(leaveConfirmWindow);

            leaveConfirmMenu.Confirmed += leaveConfirmMenu_Confirmed;
            leaveConfirmMenu.Canceled  += menu_Closed;
            AddMenu(leaveConfirmMenu);
        }
示例#12
0
        void worldmapMenu_Canceled(object sender, EventArgs e)
        {
            var leaveConfirmWindow = new Parchment_Confirm_Window();

            leaveConfirmWindow.set_text("Return to title?");
            leaveConfirmWindow.add_choice("Yes", new Vector2(16, 16));
            leaveConfirmWindow.add_choice("No", new Vector2(56, 16));
            leaveConfirmWindow.index = 1;
            leaveConfirmWindow.size  = new Vector2(96, 48);
            leaveConfirmWindow.loc   =
                new Vector2(Config.WINDOW_WIDTH, Config.WINDOW_HEIGHT) / 2 -
                leaveConfirmWindow.size / 2;

            var leaveConfirmMenu = new ConfirmationMenu(leaveConfirmWindow);

            leaveConfirmMenu.Confirmed += leaveConfirmMenu_Confirmed;
            leaveConfirmMenu.Canceled  += menu_Closed;
            AddMenu(leaveConfirmMenu);
        }
示例#13
0
        private void UnitEditor_Canceled(object sender, EventArgs e)
        {
            Global.game_system.play_se(System_Sounds.Cancel);
            string caption = "Cancel editing?\nChanges will be lost.";

            var cancelWindow = new Window_Confirmation();

            cancelWindow.loc = new Vector2(56, 32);
            cancelWindow.set_text(caption);
            cancelWindow.add_choice("Yes", new Vector2(16, 32));
            cancelWindow.add_choice("No", new Vector2(56, 32));
            cancelWindow.size  = new Vector2(104, 64);
            cancelWindow.index = 1;

            var cancelMenu = new ConfirmationMenu(cancelWindow);

            cancelMenu.Confirmed += UnitEditorCancelMenu_Confirmed;
            cancelMenu.Canceled  += menu_Closed;
            AddMenu(cancelMenu);
        }
示例#14
0
        // Open save menu
        protected void AddSaveMenu()
        {
            Global.game_temp.map_save_call = false;
            bool overwrite = Global.current_save_info.map_save_exists;

            Parchment_Confirm_Window saveConfirmWindow;

            if (overwrite)
            {
                saveConfirmWindow = new Parchment_Confirm_Window();
                saveConfirmWindow.set_text("Overwrite checkpoint?");
                saveConfirmWindow.add_choice("Yes", new Vector2(16, 16));
                saveConfirmWindow.add_choice("No", new Vector2(56, 16));
                saveConfirmWindow.size = new Vector2(112, 48);
            }
            else
            {
                saveConfirmWindow = new Parchment_Info_Window();
                saveConfirmWindow.set_text("Checkpoint Saved.");
                saveConfirmWindow.size = new Vector2(112, 32);
            }
            saveConfirmWindow.loc =
                new Vector2(Config.WINDOW_WIDTH, Config.WINDOW_HEIGHT) / 2 -
                saveConfirmWindow.size / 2;

            var saveConfirmMenu = new ConfirmationMenu(saveConfirmWindow);

            if (overwrite)
            {
                saveConfirmMenu.Confirmed += saveConfirmMenu_OverwriteConfirmed;
                saveConfirmMenu.Canceled  += menu_Closed;
            }
            else
            {
                saveConfirmMenu.Confirmed += saveConfirmMenu_Close;

                MenuHandler.SetupSave();
            }
            AddMenu(saveConfirmMenu);
        }
示例#15
0
        void mainMenu_Selected(object sender, EventArgs e)
        {
            var mainMenu = sender as Window_Title_Main_Menu;

            switch (mainMenu.SelectedOption)
            {
            case Main_Menu_Selections.Resume:
                MenuHandler.TitleResume();
                break;

            case Main_Menu_Selections.Start_Game:
                Global.game_system.play_se(System_Sounds.Confirm);
                mainMenu.HideMenus();
                AddStartGameMenu();
                break;

            case Main_Menu_Selections.Options:
                Global.game_system.play_se(System_Sounds.Confirm);
                var settingsTopMenu = new SettingsTopMenu();
                settingsTopMenu.Selected += SettingsTopMenu_Selected;
                settingsTopMenu.Closed   += menu_Closed;
                settingsTopMenu.AddToManager(new MenuCallbackEventArgs(this.AddMenu, this.menu_Closed));
                break;

#if !MONOGAME && DEBUG
            case Main_Menu_Selections.Test_Battle:
                Global.game_system.play_se(System_Sounds.Confirm);
                Global.game_state.reset();
                Global.game_map        = new Game_Map();
                Global.game_temp       = new Game_Temp();
                Global.game_battalions = new Game_Battalions();
                Global.game_actors     = new Game_Actors();
                var testBattleMenu = new Windows.Map.Window_Test_Battle_Setup();
                testBattleMenu.Confirm += testBattleMenu_Confirm;
                testBattleMenu.Closed  += menu_Closed;
                AddMenu(testBattleMenu);
                break;
#endif
            case Main_Menu_Selections.Extras:
                Global.game_system.play_se(System_Sounds.Confirm);
                mainMenu.HideMenus();

                Global.game_state.reset();
                Global.game_map        = new Game_Map();
                Global.game_temp       = new Game_Temp();
                Global.game_battalions = new Game_Battalions();
                Global.game_actors     = new Game_Actors();
                var extrasMenu = new ExtrasMenu();
                extrasMenu.Selected += ExtrasMenu_Selected;
                extrasMenu.Closed   += menu_Closed;
                extrasMenu.AddToManager(new MenuCallbackEventArgs(this.AddMenu, this.menu_Closed));
                break;

            case Main_Menu_Selections.Quit:
                string caption = "Are you sure you\nwant to quit?";

                var quitWindow = new Window_Confirmation();
                quitWindow.set_text(caption);
                quitWindow.add_choice("Yes", new Vector2(16, 32));
                quitWindow.add_choice("No", new Vector2(56, 32));
                int text_width = Font_Data.text_width(caption, Config.CONVO_FONT);
                text_width              = text_width + 16 + (text_width % 8 == 0 ? 0 : (8 - text_width % 8));
                quitWindow.size         = new Vector2(Math.Max(88, text_width), 64);
                quitWindow.loc          = (new Vector2(Config.WINDOW_WIDTH, Config.WINDOW_HEIGHT) - quitWindow.size) / 2;
                quitWindow.stereoscopic = Config.TITLE_CHOICE_DEPTH;

                var quitMenu = new ConfirmationMenu(quitWindow);
                quitMenu.Confirmed += quitMenu_Confirmed;
                quitMenu.Canceled  += menu_Closed;
                AddMenu(quitMenu);
                break;
            }
        }
示例#16
0
    protected override void Awake()
    {
        base.Awake();

        Instance = this;
    }
示例#17
0
        void fileCommandMenu_Selected(object sender, EventArgs e)
        {
            Global.game_system.play_se(System_Sounds.Confirm);
            var fileCommandMenu = sender as FileSelectedCommandMenu;
            var startGameMenu   = (Menus.ElementAt(1) as Window_Title_Start_Game);

            switch (fileCommandMenu.SelectedOption)
            {
            case Start_Game_Options.World_Map:
                MenuHandler.TitleStartGame(startGameMenu.file_id);
                break;

            case Start_Game_Options.Load_Suspend:
                startGameMenu.preview_suspend();
                var suspendConfirmWindow = FileConfirmWindow(
                    fileCommandMenu,
                    startGameMenu,
                    "Load suspend?");

                var suspendConfirmMenu = new ConfirmationMenu(suspendConfirmWindow);
                suspendConfirmMenu.Confirmed += suspendConfirmMenu_Confirmed;
                suspendConfirmMenu.Canceled  += suspendConfirmMenu_Canceled;
                AddMenu(suspendConfirmMenu);
                break;

            case Start_Game_Options.Load_Map_Save:
                startGameMenu.preview_checkpoint();
                var checkpointConfirmWindow = FileConfirmWindow(
                    fileCommandMenu,
                    startGameMenu,
                    "Load checkpoint?");

                var checkpointConfirmMenu = new ConfirmationMenu(checkpointConfirmWindow);
                checkpointConfirmMenu.Confirmed += checkpointConfirmMenu_Confirmed;
                checkpointConfirmMenu.Canceled  += suspendConfirmMenu_Canceled;
                AddMenu(checkpointConfirmMenu);
                break;

            case Start_Game_Options.Move:
                menu_Closed(sender, e);
                startGameMenu.moving_file = true;
                break;

            case Start_Game_Options.Copy:
                menu_Closed(sender, e);
                startGameMenu.copying = true;
                break;

            case Start_Game_Options.Delete:
                var deleteConfirmWindow = FileConfirmWindow(
                    fileCommandMenu,
                    startGameMenu,
                    "Are you sure?");

                var deleteConfirmMenu = new ConfirmationMenu(deleteConfirmWindow);
                deleteConfirmMenu.Confirmed += deleteConfirmMenu_Confirmed;
                deleteConfirmMenu.Canceled  += menu_Closed;
                AddMenu(deleteConfirmMenu);
                break;
            }
        }
示例#18
0
        void reinforcementsOptionsMenu_Selected(object sender, EventArgs e)
        {
            var reinforcementsOptionsMenu = (sender as CommandMenu);

            Global.game_system.play_se(System_Sounds.Confirm);
            switch (reinforcementsOptionsMenu.SelectedIndex)
            {
            // Edit
            case 0:
                RemoveTopMenu();
                var reinforcementsMenu = (Menus.Peek() as ReinforcementsMenu);
                int index = reinforcementsMenu.Index - 1;

                Menus.Clear();

                MenuHandler.UnitEditorMapMenuEditReinforcement(index);
                break;

            // Add
            case 1:
            // Paste
            case 2:
                RemoveTopMenu();
                reinforcementsMenu = (Menus.Peek() as ReinforcementsMenu);

                index = reinforcementsMenu.Index;
                if (ReinforcementData.Count == 0)
                {
                    index = 0;
                }

                if (reinforcementsOptionsMenu.SelectedIndex == 1)
                {
                    // Add
                    MenuHandler.UnitEditorMapMenuAddReinforcement(index);
                }
                else
                {
                    // Paste
                    MenuHandler.UnitEditorMapMenuPasteReinforcement(index);
                }

                reinforcementsMenu.Refresh(index + 1);
                break;

            // Delete
            case 3:
                var deleteReinforcementWindow = new Window_Confirmation();
                deleteReinforcementWindow.loc = new Vector2(Config.WINDOW_WIDTH - 96, 32);
                deleteReinforcementWindow.set_text("Delete this\nreinforcement?");
                deleteReinforcementWindow.add_choice("Yes", new Vector2(8, 32));
                deleteReinforcementWindow.add_choice("No", new Vector2(48, 32));
                deleteReinforcementWindow.size  = new Vector2(88, 64);
                deleteReinforcementWindow.index = 1;

                var deleteReinforcementMenu = new ConfirmationMenu(deleteReinforcementWindow);
                deleteReinforcementMenu.Confirmed += deleteReinforcementMenu_Confirmed;
                deleteReinforcementMenu.Canceled  += confirmMenu_Canceled;
                AddMenu(deleteReinforcementMenu);
                break;
            }
        }
示例#19
0
        // Selected an item in the map menu
        private void mapMenu_Selected(object sender, EventArgs e)
        {
            var mapMenu = (sender as UnitEditorMapCommandMenu);

            switch (mapMenu.SelectedOption)
            {
            case Unit_Editor_Options.Unit:
                RemoveTopMenu();

                var unitMenu = new Window_Unit_Team();
                unitMenu.Status += unitMenu_Status;
                unitMenu.Closed += unitMenu_Closed;
                AddMenu(unitMenu);
                break;

            case Unit_Editor_Options.Add_Unit:
                MenuHandler.UnitEditorMapMenuAddUnit();
                break;

            case Unit_Editor_Options.Paste_Unit:
                MenuHandler.UnitEditorMapMenuPasteUnit();
                break;

            case Unit_Editor_Options.Reinforcements:
                RemoveTopMenu();

                var reinforcementsMenu = new ReinforcementsMenu(ReinforcementData);
                reinforcementsMenu.Selected += reinforcementsMenu_Selected;
                reinforcementsMenu.Canceled += menu_ClosedCanceled;
                AddMenu(reinforcementsMenu);
                break;

            case Unit_Editor_Options.Options:
                RemoveTopMenu();

                var settingsTopMenu = new GameplaySettingsTopMenu(false);
                settingsTopMenu.Selected += SettingsTopMenu_Selected;
                settingsTopMenu.Closed   += menu_ClosedCanceled;
                settingsTopMenu.AddToManager(new MenuCallbackEventArgs(this.AddMenu, this.menu_Closed));
                break;

            case Unit_Editor_Options.Clear_Units:     // Clear Units
                Vector2 optionLocation = mapMenu.SelectedOptionLocation;

                var clearUnitsWindow = new Window_Command(
                    optionLocation + new Vector2(8, 24),
                    80, new List <string> {
                    "Confirm", "Cancel"
                });
                clearUnitsWindow.immediate_index = 1;

                var clearUnitsCommandMenu = new CommandMenu(clearUnitsWindow);
                clearUnitsCommandMenu.Selected += clearUnitsCommandMenu_Selected;
                clearUnitsCommandMenu.Canceled += confirmMenu_Canceled;
                AddMenu(clearUnitsCommandMenu);
                break;

            case Unit_Editor_Options.Mirror_Units:     // Mirror Units
                optionLocation = mapMenu.SelectedOptionLocation;

                var mirrorUnitsWindow = new Window_Command(
                    optionLocation + new Vector2(8, 24),
                    80, new List <string> {
                    "Confirm", "Cancel"
                });
                mirrorUnitsWindow.immediate_index = 1;

                var mirrorUnitsCommandMenu = new CommandMenu(mirrorUnitsWindow);
                mirrorUnitsCommandMenu.Selected += mirrorUnitsCommandMenu_Selected;
                mirrorUnitsCommandMenu.Canceled += confirmMenu_Canceled;
                AddMenu(mirrorUnitsCommandMenu);
                break;

            case Unit_Editor_Options.Playtest:
                MenuHandler.UnitEditorMapMenuPlaytest();
                break;

            case Unit_Editor_Options.Revert:
                MenuHandler.UnitEditorMapMenuRevert();
                break;

            case Unit_Editor_Options.Save:
                MenuHandler.UnitEditorMapMenuSave();
                break;

            case Unit_Editor_Options.Quit:     // Quit
                optionLocation = mapMenu.SelectedOptionLocation;

                var quitConfirmWindow = new Window_Confirmation();
                int height            = 48;
                quitConfirmWindow.loc = optionLocation + new Vector2(0, 24);
                if (quitConfirmWindow.loc.Y + height > Config.WINDOW_HEIGHT)
                {
                    quitConfirmWindow.loc = optionLocation + new Vector2(0, -40);
                }
                quitConfirmWindow.set_text("Are you sure?");
                quitConfirmWindow.add_choice("Yes", new Vector2(16, 16));
                quitConfirmWindow.add_choice("No", new Vector2(56, 16));
                quitConfirmWindow.size  = new Vector2(88, height);
                quitConfirmWindow.index = 1;

                var quitConfirmMenu = new ConfirmationMenu(quitConfirmWindow);
                quitConfirmMenu.Confirmed += quitConfirmMenu_Confirmed;
                quitConfirmMenu.Canceled  += confirmMenu_Canceled;
                AddMenu(quitConfirmMenu);
                break;
            }
        }
示例#20
0
        // Chapter option selected
        void worldmapMenu_ChapterCommandSelected(object sender, EventArgs e)
        {
            var worldmapMenu = sender as WorldmapMenu;

            switch (worldmapMenu.SelectedChapterCommand())
            {
            case ChapterCommands.StartChapter:
                // Open suspend deletion confirm menu, or start chapter
                if (worldmapMenu.PreviousChapterSelectionIncomplete())
                {
                    Global.game_system.play_se(System_Sounds.Buzzer);
                }
                else
                {
                    // If a map save or suspend already exists
#if DEBUG
                    if (Global.save_files_info != null &&
                        (Global.current_save_info.map_save_exists ||
                         Global.current_save_info.suspend_exists))
#else
                    if (Global.current_save_info.map_save_exists ||
                        Global.current_save_info.suspend_exists)
#endif
                    {
                        var deleteSuspendWindow = new Parchment_Confirm_Window();
                        deleteSuspendWindow.loc = new Vector2(Config.WINDOW_WIDTH - 152, Config.WINDOW_HEIGHT - 64) / 2;
                        deleteSuspendWindow.set_text("Temporary saves for this file\nwill be deleted. Proceed?");
                        deleteSuspendWindow.add_choice("Yes", new Vector2(32, 32));
                        deleteSuspendWindow.add_choice("No", new Vector2(88, 32));
                        deleteSuspendWindow.size  = new Vector2(152, 64);
                        deleteSuspendWindow.index = 1;

                        var deleteSuspendMenu = new ConfirmationMenu(deleteSuspendWindow);
                        deleteSuspendMenu.Confirmed += deleteSuspendMenu_Confirmed;
                        deleteSuspendMenu.Canceled  += menu_Closed;
                        AddMenu(deleteSuspendMenu);
                    }
                    else
                    {
                        Global.game_system.play_se(System_Sounds.Confirm);
                        MenuHandler.WorldmapStartChapter();
                    }
                }
                break;

            case ChapterCommands.SelectPrevious:
                // Open select previous chapter menu
                Global.game_system.play_se(System_Sounds.Confirm);
                AddPreviousChapterSelectionMenu(worldmapMenu);
                break;

            case ChapterCommands.Options:
                // Open options menu
                Global.game_system.play_se(System_Sounds.Confirm);
                AddOptionsMenu(false);
                break;

            case ChapterCommands.Unit:
                Global.game_system.play_se(System_Sounds.Confirm);
                Global.game_map = new Game_Map();
                // Open unit menu
                var unitMenu = new Window_Unit();
                unitMenu.Status  += unitMenu_Status;
                unitMenu.Closing += unitMenu_Closing;
                unitMenu.Closed  += unitMenu_Closed;
                AddMenu(unitMenu);
                break;

            case ChapterCommands.Manage:
                Global.game_system.play_se(System_Sounds.Confirm);
                Global.game_state.reset();
                Global.game_map = new Game_Map();
                // Open item management menu
                AddItemManageMenu();
                break;

            case ChapterCommands.Ranking:
                // Open ranking menu
                Global.game_system.play_se(System_Sounds.Confirm);
                var rankingsMenu = new WindowRankingsOverview(
                    MenuData.ChapterId,
                    Global.game_system.Difficulty_Mode);
                rankingsMenu.Closed += menu_Closed;
                AddMenu(rankingsMenu);
                break;
            }
        }
示例#21
0
        // Selected an item in the map menu
        private void mapMenu_Selected(object sender, EventArgs e)
        {
            switch ((sender as MapCommandMenu).SelectedOption)
            {
            case Map_Menu_Options.Unit:
                RemoveTopMenu();

                var unitMenu = new Window_Unit();
                unitMenu.Status += unitMenu_Status;
                unitMenu.Closed += unitMenu_Closed;
                AddMenu(unitMenu);
                break;

            case Map_Menu_Options.Data:
                RemoveTopMenu();

                var dataMenu = new Window_Data();
                dataMenu.Closed += menu_ClosedCanceled;
                AddMenu(dataMenu);
                break;

            case Map_Menu_Options.Options:
                RemoveTopMenu();

                var settingsTopMenu = new GameplaySettingsTopMenu(true);
                settingsTopMenu.Selected += SettingsTopMenu_Selected;
                settingsTopMenu.Closed   += menu_ClosedCanceled;
                settingsTopMenu.AddToManager(new MenuCallbackEventArgs(this.AddMenu, this.menu_Closed));
                break;

            case Map_Menu_Options.Suspend:
                var suspendConfirmWindow = new Parchment_Confirm_Window();
                suspendConfirmWindow.set_text("Save and quit?", new Vector2(8, 0));
                suspendConfirmWindow.add_choice("Yes", new Vector2(16, 16));
                suspendConfirmWindow.add_choice("No", new Vector2(56, 16));
                suspendConfirmWindow.size = new Vector2(104, 48);
                suspendConfirmWindow.loc  =
                    new Vector2(Config.WINDOW_WIDTH, Config.WINDOW_HEIGHT) / 2 -
                    suspendConfirmWindow.size / 2;

                var suspendConfirmMenu = new ConfirmationMenu(suspendConfirmWindow);
                suspendConfirmMenu.Confirmed += suspendConfirmMenu_Confirmed;
                suspendConfirmMenu.Canceled  += menu_Closed;
                AddMenu(suspendConfirmMenu);
                break;

            case Map_Menu_Options.End:
                // If there are no units left to move, just end the turn
                if (!Global.game_map.ready_movable_units)
                {
                    MenuHandler.MapMenuEndTurn();
                }
                else
                {
                    var endTurnConfirmWindow = new Parchment_Confirm_Window();
                    endTurnConfirmWindow.set_text("End your turn?", new Vector2(8, 0));
                    endTurnConfirmWindow.add_choice("Yes", new Vector2(16, 16));
                    endTurnConfirmWindow.add_choice("No", new Vector2(56, 16));
                    endTurnConfirmWindow.size = new Vector2(104, 48);
                    endTurnConfirmWindow.loc  =
                        new Vector2(Config.WINDOW_WIDTH, Config.WINDOW_HEIGHT) / 2 -
                        endTurnConfirmWindow.size / 2;

                    var endTurnConfirmMenu = new ConfirmationMenu(endTurnConfirmWindow);
                    endTurnConfirmMenu.Confirmed += endTurnConfirmMenu_Confirmed;
                    endTurnConfirmMenu.Canceled  += menu_Closed;
                    AddMenu(endTurnConfirmMenu);
                }
                break;
            }
        }
示例#22
0
 public static ConfirmationMenuWrapper Wrap(ConfirmationMenu confirmationMenu) => new ConfirmationMenuWrapper
 {
     ConfirmationMenu = confirmationMenu
 };
示例#23
0
        private void UseItem(
            ConfirmationMenu useConfirmMenu,
            ItemUseMenu useMenu,
            ItemRepairMenu repairMenu)
        {
            Game_Actor actor = useMenu.Actor;
            Data_Item  item  = useMenu.SelectedItemData.to_item;

            // Use -1 if nothing
            int inventoryTarget = -1;

            if (repairMenu != null)
            {
                inventoryTarget = repairMenu.SelectedItem;
            }

            // If promoting
            if (actor.PromotedBy(item))
            {
                // If there are multiple promotion choices
                if (actor.PromotedBy(item) &&
                    actor.NeedsPromotionMenu)
                {
                    Global.game_map.add_actor_unit(Constants.Team.PLAYER_TEAM, Config.OFF_MAP, actor.id, "");
                    var unit = Global.game_map.last_added_unit;

                    var promotionChoiceMenu = new PromotionChoiceMenu(unit);
                    promotionChoiceMenu.Selected  += PromotionChoiceMenu_Selected;
                    promotionChoiceMenu.Canceled  += PromotionChoiceMenu_Canceled;
                    promotionChoiceMenu.Closed    += menu_Closed;
                    promotionChoiceMenu.Confirmed += PromotionChoiceMenu_Confirmed;
                    AddMenu(promotionChoiceMenu);

                    var promotionMenuFadeIn = promotionChoiceMenu.FadeInMenu(false);
                    promotionMenuFadeIn.Finished += menu_Closed;
                    AddMenu(promotionMenuFadeIn);
                }
                else
                {
                    Promote(useMenu);
                }
            }
            else
            {
                RemoveTopMenu(useConfirmMenu);
                if (repairMenu != null)
                {
                    RemoveTopMenu(repairMenu);
                }

                Global.game_system.play_se(System_Sounds.Gain);
                Dictionary <Boosts, int> boosts = actor.item_boosts(item);
                // Apply item effect
                actor.item_effect(item, inventoryTarget);
                actor.recover_hp();

                useMenu.UseItem();
                useMenu.ShowWindow();
                if (item.is_stat_booster() || item.is_growth_booster())
                {
                    useMenu.CreateStatsPopup(item, boosts);
                }
                else if (item.can_repair)
                {
                    useMenu.CreateRepairPopup(inventoryTarget);
                }
            }
        }