protected override void UpdateMenu(bool active) { if (Background != null) { Background.update(); } if (GameUpdated != null) { GameUpdated.update(); GameUpdated.UpdateInput(); } int index = ChoiceNodes.ActiveNodeIndex; ChoiceNodes.Update(active); if (index != ChoiceNodes.ActiveNodeIndex) { ChangeSelection(ChoiceNodes.ActiveNodeIndex); } if (active) { if (GameUpdated == null) { initialize_game_update_banner(false); } var selected = ChoiceNodes.consume_triggered( Inputs.A, MouseButtons.Left, TouchGestures.Tap); if (selected.IsSomething || Global.Input.KeyPressed(Keys.Enter) || Global.Input.triggered(Inputs.Start)) { if (selected.IsSomething) { ChangeSelection(selected); } OnSelected(new EventArgs()); } else if (Global.Input.triggered(Inputs.B)) { Global.game_system.play_se(System_Sounds.Cancel); OnCanceled(new EventArgs()); } } }
protected override void UpdateMenu(bool active) { update_map_sprite(); update_direction(); // Black Screen update_black_screen(); // Inputs bool input = active && Delay == 0 && !Closing && Black_Screen_Timer <= 0; #if DEBUG if (Help_Window != null && input && Global.Input.pressed(Inputs.X)) { DirectionFlags dir = Global.Input.dir_triggered(); if (dir != DirectionFlags.None) { StatusNodes[page].ActiveNode.cheat(this.unit, dir); move_to(Help_Index); Help_Window.add_remaining_text(); foreach (var status_page in Pages) { status_page.refresh(this.unit); } foreach (StatusUINode node in TopPanelNodes) { node.refresh(unit); } } input = false; } #endif // Cancel button CancelButton.Update(input); StatusNodes[page].Update(!input ? ControlSet.None : (Help_Window != null ? ControlSet.Movement : (ControlSet.Mouse | ControlSet.Touch))); if (input) { if (Help_Window == null) { update_input(); var help_index = StatusNodes[page].consume_triggered( MouseButtons.Left, TouchGestures.Tap); if (help_index.IsNothing) { help_index = StatusNodes[page].consume_triggered( TouchGestures.LongPress); } if (help_index.IsSomething) { Help_Index = StatusNodes[page][help_index].HelpLabel; open_help(); } } else { if (StatusNodes[page].ActiveNode.HelpLabel != Help_Index) { move_to(StatusNodes[page].ActiveNode.HelpLabel); } var help_index = StatusNodes[page].consume_triggered( MouseButtons.Left, TouchGestures.Tap); var help_cancel_index = StatusNodes[page].consume_triggered( TouchGestures.LongPress); if (Global.Input.triggered(Inputs.B) || Global.Input.triggered(Inputs.R) || Global.Input.mouse_click(MouseButtons.Right) || help_cancel_index.IsSomething || CancelButton.consume_trigger(MouseButtons.Left) || CancelButton.consume_trigger(TouchGestures.Tap)) { close_help(); } /* //Debug * if (Global.Input.repeated(Inputs.Down)) * { * if (move(2)) * { * * } * } * if (Global.Input.repeated(Inputs.Up)) * { * if (move(8)) * { * * } * } * if (Global.Input.repeated(Inputs.Right)) * { * if (move(6)) * { * * } * } * if (Global.Input.repeated(Inputs.Left)) * { * if (move(4)) * { * * } * } * else if (Global.Input.triggered(Inputs.R) || Global.Input.triggered(Inputs.B)) * { * close_help(); * }*/ } StatusCursors[page].update(); } if (Help_Window != null) { Help_Window.update(); } Background.update(); // Top Panel Top_Panel.update(); foreach (TextSprite label in Battle_Stat_Labels) { label.update(); } // Pages foreach (Status_Page status_page in Pages) { status_page.update(); } Left_Page_Arrow.update(); Right_Page_Arrow.update(); }