diff --git a/Globals/Translations/Translations.csv b/Globals/Translations/Translations.csv index 0ba75dc6..47d68594 100644 --- a/Globals/Translations/Translations.csv +++ b/Globals/Translations/Translations.csv @@ -194,4 +194,16 @@ CUSTOM_ENEMY_HP,Enemy HP Remaining: ,敌人剩余HP: CUSTOM_NOTES_PLACED,Notes Placed: ,已放置音符: CUSTOM_PERFECTS,Perfect Hits: ,Perfect 命中: CUSTOM_MISSES,Missed Notes: ,失误音符: -CUSTOM_LOOPS_TAKEN,Loops Taken: ,循环次数: \ No newline at end of file +CUSTOM_LOOPS_TAKEN,Loops Taken: ,循环次数: +CREDITS,Credits,制作人员 +CREDITS_LEAD,Producer and Lead Programmer,制作人与主程序员 +CREDITS_DESIGN,Scenario Designer and Assistant Programmer,剧情设计师与助理程序员 +CREDITS_TOOLS,Tools Lead,工具主管 +CREDITS_ART,Lead Artist,主美术 +CREDITS_PROGRAMMING,Assistant Programmer,助理程序员 +CREDITS_MUSIC,Music,音乐 +CREDITS_ADDITIONAL_ART,Art,额外美术 +CREDITS_ADDITIONAL_HELP,Additional Help,额外协助 +CREDITS_OTHER_PLAYTESTERS,All our other playtesters,以及所有其他测试玩家 +CREDITS_SPECIAL_THANKS,Special Thanks,特别鸣谢 +CREDITS_THANKS_PLAYERS,And to you the player!,以及屏幕前的你! \ No newline at end of file diff --git a/README.md b/README.md index b7f77ed8..7f252ba1 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,10 @@ **Midnight Riff** is a rhythm-rougelike game currently in development as a senior capstone project at the University of California, Santa Cruz. -We now have a Steam page! -[**Check us out here**](https://store.steampowered.com/app/3647600/Midnight_Riff/) +[**Steam Page**](https://store.steampowered.com/app/3647600/Midnight_Riff/) +[**Discord**](https://discord.gg/JS3vRU89JZ) +[**Youtube**](https://www.youtube.com/@ProjectFunkEngine) +[**Bluesky**](https://bsky.app/profile/projectfunkengine.bsky.social) --- @@ -14,43 +16,46 @@ We now have a Steam page! - Connor Lowe - Combat Designer - Thomas Wessel - Tools / Engine Lead - Raul Mojarro - Programming Support -- Michael Quinn - Design Support ### Artists - **Evelyn Fu** - Art Lead - Ares Atlas - Emily Wen -## Composer -- Sam Meyer - --- ## Attributions ### Music - **Title Screen**: [Crystal Cave – Cynicmusic](https://opengameart.org/content/crystal-cave-song18) -- **Tutorial Song**: [Mute bass 002 – josefpres](https://freesound.org/people/josefpres/sounds/792389/) +- **Chest Background**: [Spooky Forest - Sam Meyer](https://soundcloud.com/lionsatemysanity) +- **Event Background**: [Paint the Town Neon Red - Sam Meyer](https://soundcloud.com/lionsatemysanity) +- **Boss Blood Song**: [gameMusic – Magntron](https://freesound.org/people/Magntron/sounds/335571/) - **Parasifly Song**: [Piano loops 181 – josefpres](https://freesound.org/people/josefpres/sounds/789998/) -- **Squirkel Song:** [Bass Stories](https://pixabay.com/music/happy-childrens-tunes-bass-stories-15656/) -- **Weaver Song:** [Jungle-ish beat for video games](https://pixabay.com/music/video-games-jungle-ish-beat-for-video-games-314073/) - **GWS Song**: [Dark loops 220 – josefpres](https://freesound.org/people/josefpres/sounds/620230/) -- **Elite Mushroom Song:** [Mysterious Ambience](https://opengameart.org/content/mysterious-ambience-song21) -- **Boss Blood Song**: [gameMusic – Magntron](https://freesound.org/people/Magntron/sounds/335571/) -- **Shape Dudes Song:** [Data - Karl Casey](https://karlcasey.bandcamp.com/track/data) -- **Gobbler Song:** [Punk - Mere Notilde](https://notilde.bandcamp.com/track/punk) -- **BoomFox Song:** [We're Finally Landing - HOME](https://soundcloud.com/home-2001/home-before-the-night-01-were) +- **Tutorial Song**: [Mute bass 002 – josefpres](https://freesound.org/people/josefpres/sounds/792389/) +- **Effigy Song**: [District Four - Kevin MacLeod](https://incompetech.com/) +  Licensed under Creative Commons: By Attribution 4.0 License +  [http://creativecommons.org/licenses/by/4.0/](http://creativecommons.org/licenses/by/4.0/) - **Mafioso Turtle Song**: [Echolane](https://echoln.bandcamp.com/) +- **BoomFox Song:** [We're Finally Landing - HOME](https://soundcloud.com/home-2001/home-before-the-night-01-were) +- **Gobbler Song:** [Punk - Mere Notilde](https://notilde.bandcamp.com/track/punk) +- **Holograeme Song**: [There It Is - Kevin MacLeod](https://incompetech.com/) +  Licensed under Creative Commons: By Attribution 4.0 License +  [http://creativecommons.org/licenses/by/4.0/](http://creativecommons.org/licenses/by/4.0/) +- **Shape Dudes Song:** [Data - Karl Casey](https://karlcasey.bandcamp.com/track/data) +- **Weaver Song:** [Jungle-ish beat for video games - IHateTuesdays](https://pixabay.com/music/video-games-jungle-ish-beat-for-video-games-314073/) +- **Squirkel Song:** [Bass Stories - Pixabay](https://pixabay.com/music/happy-childrens-tunes-bass-stories-15656/) +- **Elite Mushroom Song:** [Mysterious Ambience - Cynicmusic](https://opengameart.org/content/mysterious-ambience-song21) - **Keythulu Song:** [Resonance - HOME](https://open.spotify.com/track/1TuopWDIuDi1553081zvuU) -- **LWS Song**: "Frost Waltz" Kevin MacLeod ([incompetech.com](https://incompetech.com/)) - Licensed under Creative Commons: By Attribution 4.0 License - [http://creativecommons.org/licenses/by/4.0/](http://creativecommons.org/licenses/by/4.0/) -- **Holograeme Song**: "There It Is" Kevin MacLeod ([incompetech.com](https://incompetech.com/)) -Licensed under Creative Commons: By Attribution 4.0 License -[http://creativecommons.org/licenses/by/4.0/](http://creativecommons.org/licenses/by/4.0/) -- **Effigy Song**: "District Four" Kevin MacLeod ([incompetech.com](https://incompetech.com/)) - Licensed under Creative Commons: By Attribution 4.0 License - [http://creativecommons.org/licenses/by/4.0/](http://creativecommons.org/licenses/by/4.0/) +- **LWS Song**: [Frost Waltz - Kevin Macleod](https://incompetech.com/) +  Licensed under Creative Commons: By Attribution 4.0 License +  [http://creativecommons.org/licenses/by/4.0/](http://creativecommons.org/licenses/by/4.0/) +- **Astrorat Song** [Ether Disco - Kevin MacLeod](https://incompetech.com/) +  Licensed under Creative Commons: By Attribution 4.0 License +  [http://creativecommons.org/licenses/by/4.0/](http://creativecommons.org/licenses/by/4.0/) +- **Catgirl Song** [Jammin' Forest - Sam Meyer](https://soundcloud.com/lionsatemysanity) + ### Images - **Input Buttons**: [inputKeys – Nicolae (Xelu) Berbece](https://thoseawesomeguys.com/prompts/) diff --git a/Scenes/BattleDirector/BattleScene.tscn b/Scenes/BattleDirector/BattleScene.tscn index 2795371f..be04be97 100644 --- a/Scenes/BattleDirector/BattleScene.tscn +++ b/Scenes/BattleDirector/BattleScene.tscn @@ -7,7 +7,6 @@ [ext_resource type="PackedScene" uid="uid://dyd2nc2sgt0qw" path="res://Scenes/3DWizard/3DWizard.tscn" id="5_e25q1"] [ext_resource type="PackedScene" uid="uid://dfevfib11kou1" path="res://Scenes/ChartViewport/ChartViewport.tscn" id="5_gbbxr"] [ext_resource type="Texture2D" uid="uid://qhwve7fik4do" path="res://SharedAssets/BackGround_Full.png" id="6_0jtpx"] -[ext_resource type="PackedScene" uid="uid://dfevfib11kou1" path="res://Scenes/ChartViewport/ChartViewport.tscn" id="6_e25q1"] [ext_resource type="Script" uid="uid://cp6t6haqyef7o" path="res://Scenes/AreaBasedBackground.cs" id="7_6k2qj"] [ext_resource type="Texture2D" uid="uid://dbjotl0v1ymia" path="res://SharedAssets/BattleFrame1.png" id="7_klvil"] [ext_resource type="Theme" uid="uid://d37e3tpsbxwak" path="res://Scenes/UI/Assets/GeneralTheme.tres" id="8_62qim"] @@ -27,7 +26,7 @@ script = ExtResource("1_jmdo1") PuppetMarkers = [NodePath("PlayerMarker"), NodePath("Enemy1Marker"), NodePath("Enemy2Marker"), NodePath("Enemy3Marker")] _countdownLabel = NodePath("CountInControl/Countdown") CD = NodePath("Conductor") -CM = NodePath("VPContainer") +CM = NodePath("VPContainer2") DW = NodePath("3D/SubViewport/3DWizard") NPB = NodePath("NotePlacementBar") Audio = NodePath("AudioStreamPlayer") diff --git a/Scenes/Maps/Scripts/Cartographer.cs b/Scenes/Maps/Scripts/Cartographer.cs index bf4aa6a8..66e421d4 100644 --- a/Scenes/Maps/Scripts/Cartographer.cs +++ b/Scenes/Maps/Scripts/Cartographer.cs @@ -208,6 +208,7 @@ private void WinArea() } EndScreen es = GD.Load(EndScreen.LoadPath).Instantiate(); + es.HasWon = true; AddChild(es); es.TopLabel.Text = Tr("BATTLE_ROOM_WIN"); ProcessMode = ProcessModeEnum.Disabled; diff --git a/Scenes/UI/EndScreen.tscn b/Scenes/UI/EndScreen.tscn index 040778e1..946b85b1 100644 --- a/Scenes/UI/EndScreen.tscn +++ b/Scenes/UI/EndScreen.tscn @@ -5,10 +5,11 @@ [ext_resource type="Texture2D" uid="uid://djd6iw2g84bba" path="res://Scenes/UI/Assets/UI_CenterFrame.png" id="3_aiuvw"] [ext_resource type="Theme" uid="uid://d37e3tpsbxwak" path="res://Scenes/UI/Assets/GeneralTheme.tres" id="4_1vt77"] -[node name="CanvasLayer" type="CanvasLayer" node_paths=PackedStringArray("_buttons", "TopLabel")] +[node name="CanvasLayer" type="CanvasLayer" node_paths=PackedStringArray("_buttons", "_creditsCont", "TopLabel")] process_mode = 3 script = ExtResource("1_37m3y") -_buttons = [NodePath("MarginContainer2/MarginContainer/VBoxContainer/MarginContainer/Restart"), NodePath("MarginContainer2/MarginContainer/VBoxContainer/MarginContainer2/Title"), NodePath("MarginContainer2/MarginContainer/VBoxContainer/MarginContainer3/Quit")] +_buttons = [NodePath("MarginContainer2/MarginContainer/VBoxContainer/MarginContainer/Restart"), NodePath("MarginContainer2/MarginContainer/VBoxContainer/MarginContainer2/Title"), NodePath("MarginContainer2/MarginContainer/VBoxContainer/MarginContainer3/Quit"), NodePath("MarginContainer2/MarginContainer/VBoxContainer/MarginContainer5/Credits")] +_creditsCont = NodePath("MarginContainer2/MarginContainer/VBoxContainer/MarginContainer5") TopLabel = NodePath("MarginContainer2/MarginContainer/VBoxContainer/TopLabel") [node name="Background" type="NinePatchRect" parent="."] @@ -49,7 +50,6 @@ theme_override_constants/margin_bottom = 10 [node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer2/MarginContainer"] layout_mode = 2 -theme_override_constants/separation = 4 [node name="TopLabel" type="Label" parent="MarginContainer2/MarginContainer/VBoxContainer"] unique_name_in_owner = true @@ -71,29 +71,39 @@ size_flags_vertical = 3 layout_mode = 2 size_flags_vertical = 3 theme_override_constants/margin_left = 20 -theme_override_constants/margin_top = 20 +theme_override_constants/margin_top = 10 theme_override_constants/margin_right = 20 -theme_override_constants/margin_bottom = 20 +theme_override_constants/margin_bottom = 10 [node name="Restart" type="Button" parent="MarginContainer2/MarginContainer/VBoxContainer/MarginContainer"] layout_mode = 2 focus_neighbor_top = NodePath("../../MarginContainer3/Quit") -focus_neighbor_bottom = NodePath("../../MarginContainer2/Title") theme = ExtResource("4_1vt77") text = "END_SCREEN_RESTART" +[node name="MarginContainer5" type="MarginContainer" parent="MarginContainer2/MarginContainer/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +theme_override_constants/margin_left = 20 +theme_override_constants/margin_top = 10 +theme_override_constants/margin_right = 20 +theme_override_constants/margin_bottom = 10 + +[node name="Credits" type="Button" parent="MarginContainer2/MarginContainer/VBoxContainer/MarginContainer5"] +layout_mode = 2 +theme = ExtResource("4_1vt77") +text = "CREDITS" + [node name="MarginContainer2" type="MarginContainer" parent="MarginContainer2/MarginContainer/VBoxContainer"] layout_mode = 2 size_flags_vertical = 3 theme_override_constants/margin_left = 20 -theme_override_constants/margin_top = 20 +theme_override_constants/margin_top = 10 theme_override_constants/margin_right = 20 -theme_override_constants/margin_bottom = 20 +theme_override_constants/margin_bottom = 10 [node name="Title" type="Button" parent="MarginContainer2/MarginContainer/VBoxContainer/MarginContainer2"] layout_mode = 2 -focus_neighbor_top = NodePath("../../MarginContainer/Restart") -focus_neighbor_bottom = NodePath("../../MarginContainer3/Quit") theme = ExtResource("4_1vt77") text = "ESCAPE_MENU_TITLE" @@ -101,13 +111,12 @@ text = "ESCAPE_MENU_TITLE" layout_mode = 2 size_flags_vertical = 3 theme_override_constants/margin_left = 20 -theme_override_constants/margin_top = 20 +theme_override_constants/margin_top = 10 theme_override_constants/margin_right = 20 -theme_override_constants/margin_bottom = 20 +theme_override_constants/margin_bottom = 10 [node name="Quit" type="Button" parent="MarginContainer2/MarginContainer/VBoxContainer/MarginContainer3"] layout_mode = 2 -focus_neighbor_top = NodePath("../../MarginContainer2/Title") focus_neighbor_bottom = NodePath("../../MarginContainer/Restart") theme = ExtResource("4_1vt77") text = "TITLE_QUIT" diff --git a/Scenes/UI/Options/Credits.tscn b/Scenes/UI/Options/Credits.tscn index 53deb38c..1e92ca02 100644 --- a/Scenes/UI/Options/Credits.tscn +++ b/Scenes/UI/Options/Credits.tscn @@ -6,6 +6,7 @@ [node name="Credits" type="Control" node_paths=PackedStringArray("CreditsText", "_returnButton")] process_mode = 3 +z_index = 20 layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -13,8 +14,8 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_n36fd") -CreditsText = NodePath("Node2D/Label") -ScrollSpeed = 24.0 +CreditsText = NodePath("Node2D") +ScrollSpeed = 30.0 RestartPositionY = 400.0 _returnButton = NodePath("Return Button") @@ -28,29 +29,196 @@ offset_top = 5.0 offset_right = 422.851 offset_bottom = 185.0 -[node name="Node2D" type="Node2D" parent="."] +[node name="Node2D" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -160.5 +offset_right = 160.5 +offset_bottom = 939.0 +grow_horizontal = 2 +theme_override_constants/separation = 6 -[node name="Label" type="Label" parent="Node2D"] -offset_left = 217.0 -offset_top = -3.0 -offset_right = 467.0 -offset_bottom = 410.0 -text = "Credits - -Programmers - Jarod Spanger: Project Lead +[node name="Label2" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS" +horizontal_alignment = 1 + +[node name="Label9" type="Label" parent="Node2D"] +layout_mode = 2 +horizontal_alignment = 1 + +[node name="Label3" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS_LEAD" +horizontal_alignment = 1 + +[node name="Label4" type="Label" parent="Node2D"] +layout_mode = 2 +text = "Jarod Spangler +" +horizontal_alignment = 1 + +[node name="Label5" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS_DESIGN" +horizontal_alignment = 1 + +[node name="Label6" type="Label" parent="Node2D"] +layout_mode = 2 +text = "Connor Lowe +" +horizontal_alignment = 1 + +[node name="Label7" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS_TOOLS" +horizontal_alignment = 1 + +[node name="Label8" type="Label" parent="Node2D"] +layout_mode = 2 +text = "Thomas Wessel +" +horizontal_alignment = 1 + +[node name="Label10" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS_PROGRAMMING" +horizontal_alignment = 1 + +[node name="Label11" type="Label" parent="Node2D"] +layout_mode = 2 +text = "Raul Mojarro +" +horizontal_alignment = 1 + +[node name="Label12" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS_ART" +horizontal_alignment = 1 + +[node name="Label13" type="Label" parent="Node2D"] +layout_mode = 2 +text = "Evelyn Fu +" +horizontal_alignment = 1 + +[node name="Label16" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS_MUSIC" +horizontal_alignment = 1 + +[node name="Label17" type="Label" parent="Node2D"] +layout_mode = 2 +text = "Sam Meyer +Echolane +" +horizontal_alignment = 1 + +[node name="Label14" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS_ADDITIONAL_ART" +horizontal_alignment = 1 + +[node name="Label15" type="Label" parent="Node2D"] +layout_mode = 2 +text = "Ares Atlas +Emily Wen +Norman Zhu +Patrick Galang +Zeke Davidson +Lyssa Li +Ashley Knapp +Nolan Jensen +Mimi Fournier +Kevin Paw +Brendan Trieu +Jarod Spangler Connor Lowe -Raul Mojarro -Thomas Wessel +" +horizontal_alignment = 1 + +[node name="Label18" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS_ADDITIONAL_HELP" +horizontal_alignment = 1 + +[node name="Label19" type="Label" parent="Node2D"] +layout_mode = 2 +text = "Jaxon Ruiz +Marco Ogaz-Vega +Patrick Hu Michael Quinn +Reese Garcia" +horizontal_alignment = 1 -Artists -Ares Atlas -Evelyn Fu -Emily Wen +[node name="Label20" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS_OTHER_PLAYTESTERS" +horizontal_alignment = 1 + +[node name="Label22" type="Label" parent="Node2D"] +layout_mode = 2 +horizontal_alignment = 1 + +[node name="Label21" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS_SPECIAL_THANKS" +horizontal_alignment = 1 + +[node name="Label23" type="Label" parent="Node2D"] +layout_mode = 2 +text = "Tyler Coleman +Graeme Devine" +horizontal_alignment = 1 + +[node name="Label24" type="Label" parent="Node2D"] +layout_mode = 2 +text = "CREDITS_THANKS_PLAYERS" +horizontal_alignment = 1 -Sound -Sam Meyer: Composer" +[node name="Label" type="Label" parent="Node2D"] +layout_mode = 2 +text = " +Crystal Cave - Cynicmusic +Spooky Forest - Sam Meyer +Paint the Town Neon Red - Sam Meyer +gameMusic - Magntron +Piano loops 181 - josefpres +Dark loops 220 - josefpres +Mute bass 002 - josefpres +District Four - Kevin MacLeod +Funk Engine - Echolane +We're Finally Landing - HOME +Punk - Mere Notilde +There It Is - Kevin Macleod +Data - Karl Casey +Jungle-ish beat for video games - IHateTuesdays +Bass Stories - Pixabay +Mysterious Ambience - Cynicmusic +Resonance - HOME +Frost Waltz - Kevin MacLeod +Ether Disco - Kevin MacLeod +Jammin' Forest - Sam Meyer +" +horizontal_alignment = 1 + +[node name="HSeparator" type="HSeparator" parent="Node2D"] +visible = false +layout_mode = 2 +theme_override_constants/separation = 18 + +[node name="Label25" type="Label" parent="Node2D"] +visible = false +layout_mode = 2 +text = "Emily Wen" +horizontal_alignment = 1 + +[node name="Label26" type="Label" parent="Node2D"] +visible = false +layout_mode = 2 +text = "Ares Atlas" horizontal_alignment = 1 [node name="Return Button" type="Button" parent="."] diff --git a/Scenes/UI/Options/Scripts/CreditsMenu.cs b/Scenes/UI/Options/Scripts/CreditsMenu.cs index a634515d..474625b9 100644 --- a/Scenes/UI/Options/Scripts/CreditsMenu.cs +++ b/Scenes/UI/Options/Scripts/CreditsMenu.cs @@ -7,13 +7,13 @@ public partial class CreditsMenu : Control, IFocusableMenu public static readonly string LoadPath = "res://Scenes/UI/Options/Credits.tscn"; [Export] - public Label CreditsText; + public Control CreditsText; [Export] - public float ScrollSpeed = 50f; + public float ScrollSpeed = 60f; - public float FadeStartY = 0; - public float FadeEndY = -400f; + public float FadeStartY = -500f; + public float FadeEndY = -1200f; [Export] public float RestartPositionY = 800f; @@ -32,6 +32,7 @@ public override void _Ready() } _returnButton.Pressed += ReturnToPrev; _returnButton.GrabFocus(); + BgAudioPlayer.LiveInstance.ResumeLevelMusic(); } public void ResumeFocus() diff --git a/Scenes/UI/Scripts/EndScreen.cs b/Scenes/UI/Scripts/EndScreen.cs index 2d483cf9..987da103 100644 --- a/Scenes/UI/Scripts/EndScreen.cs +++ b/Scenes/UI/Scripts/EndScreen.cs @@ -1,22 +1,30 @@ using FunkEngine; using Godot; -public partial class EndScreen : CanvasLayer +public partial class EndScreen : CanvasLayer, IFocusableMenu { public static readonly string LoadPath = "res://Scenes/UI/EndScreen.tscn"; [Export] private Button[] _buttons; + [Export] + private MarginContainer _creditsCont; + [Export] public Label TopLabel; + public bool HasWon = false; + public override void _Ready() { _buttons[0].Pressed += Restart; _buttons[1].Pressed += QuitToMainMenu; _buttons[2].Pressed += Quit; + _buttons[3].Pressed += OpenCredits; _buttons[0].GrabFocus(); + _creditsCont.Visible = HasWon; + BgAudioPlayer.LiveInstance.PlayLevelMusic(); } private void Restart() @@ -36,4 +44,36 @@ private void QuitToMainMenu() GetTree().Paused = false; StageProducer.LiveInstance.TransitionStage(Stages.Title); } + + private void OpenCredits() + { + CreditsMenu credits = GD.Load(CreditsMenu.LoadPath).Instantiate(); + AddChild(credits); + credits.OpenMenu(this); + } + + public IFocusableMenu Prev { get; set; } + + public void ResumeFocus() + { + ProcessMode = ProcessModeEnum.Always; + _buttons[3].GrabFocus(); //Should only get resumed from Credits + } + + public void PauseFocus() + { + ProcessMode = ProcessModeEnum.Disabled; + } + + public void OpenMenu(IFocusableMenu prev) + { + GD.PushWarning("EndScreen OpenMenu not implemented yet!"); + Prev = prev; + Prev.PauseFocus(); + } + + public void ReturnToPrev() + { + GD.PushError("EndScreen should not return to previous menu!"); + } }