diff --git a/project.godot b/project.godot index 93af450f..116b36f6 100644 --- a/project.godot +++ b/project.godot @@ -182,7 +182,7 @@ Interact={ [internationalization] -locale/translations_pot_files=PackedStringArray("res://src/dialog/Dialogue.dialogue", "res://src/ui/dialogue/FloorExit.dialogue", "res://src/npc/rat/ratdialogue.dialogue") +locale/translations_pot_files=PackedStringArray("res://src/dialog/Dialogue.dialogue", "res://src/npc/rat/ratdialogue.dialogue") [layer_names] diff --git a/src/game/Game.cs b/src/game/Game.cs index ee469f02..8b7e5328 100644 --- a/src/game/Game.cs +++ b/src/game/Game.cs @@ -86,6 +86,8 @@ public partial class Game : Node3D, IGame .Handle((in GameLogic.Output.HideInventory _) => { InGameUI.HideInventoryScreen(); InGameUI.InventoryMenu.SetProcessInput(false); }) .Handle((in GameLogic.Output.ShowMiniMap _) => { InGameUI.ShowMiniMap(); }) .Handle((in GameLogic.Output.HideMiniMap _) => { InGameUI.HideMiniMap(); }) + .Handle((in GameLogic.Output.ShowAskForTeleport _) => { GameRepo.Pause(); InGameUI.UseTeleportPrompt.FadeIn(); InGameUI.SetProcessInput(true); }) + .Handle((in GameLogic.Output.HideAskForTeleport _) => { GameRepo.Resume(); InGameUI.UseTeleportPrompt.FadeOut(); InGameUI.SetProcessInput(false); }) .Handle((in GameLogic.Output.ShowLostScreen _) => { DeathMenu.Show(); DeathMenu.FadeIn(); }) .Handle((in GameLogic.Output.ExitLostScreen _) => { DeathMenu.FadeOut(); }); GameLogic.Start(); @@ -100,6 +102,10 @@ public partial class Game : Node3D, IGame Map.DungeonFinishedGenerating += Map_DungeonFinishedGenerating; InGameUI.InventoryMenu.ClosedMenu += InventoryMenu_CloseInventory; InGameUI.MinimapButtonReleased += Player_MinimapButtonReleased; + + InGameUI.UseTeleportPrompt.TeleportToNextFloor += UseTeleportPrompt_TeleportToNextFloor; + InGameUI.UseTeleportPrompt.CloseTeleportPrompt += UseTeleportPrompt_CloseTeleportPrompt; + GameRepo.PlayerData.Inventory.InventoryAtCapacity += PlayerInventory_InventoryAtCapacity; GameRepo.PlayerData.Inventory.RaiseStatRequest += Inventory_RaiseStatRequest; FloorClearMenu.GoToNextFloor += FloorClearMenu_GoToNextFloor; @@ -111,6 +117,16 @@ public partial class Game : Node3D, IGame Player.PauseButtonPressed += Player_PauseButtonPressed; } + private void UseTeleportPrompt_CloseTeleportPrompt() + { + GameLogic.Input(new GameLogic.Input.HideAskForTeleport()); + } + + private void UseTeleportPrompt_TeleportToNextFloor() + { + GameLogic.Input(new GameLogic.Input.FloorExitReached()); + } + private void PauseMenu_UnpauseButtonPressed() { GameLogic.Input(new GameLogic.Input.UnpauseGame()); @@ -227,10 +243,7 @@ public partial class Game : Node3D, IGame private void Map_TeleportReached() { - GameRepo.Pause(); - DialogueManager.GetCurrentScene = (() => this); - var dialogueResource = GD.Load("res://src/ui/dialogue/FloorExit.dialogue"); - DialogueController.ShowDialogue(dialogueResource, "floor_exit"); + GameLogic.Input(new GameLogic.Input.AskForTeleport()); } private void OnPauseMenuTransitioned() diff --git a/src/game/GameLogic.Input.cs b/src/game/GameLogic.Input.cs index eb5fe991..159097bd 100644 --- a/src/game/GameLogic.Input.cs +++ b/src/game/GameLogic.Input.cs @@ -28,6 +28,9 @@ public readonly record struct UnpauseGame; public readonly record struct PauseMenuTransitioned; + + public readonly record struct AskForTeleport; + public readonly record struct HideAskForTeleport; } } } diff --git a/src/game/GameLogic.Output.cs b/src/game/GameLogic.Output.cs index 39fe5889..5adeafd4 100644 --- a/src/game/GameLogic.Output.cs +++ b/src/game/GameLogic.Output.cs @@ -33,6 +33,10 @@ namespace GameJamDungeon public readonly record struct ShowFloorClearMenu; public readonly record struct ExitFloorClearMenu; + + public readonly record struct ShowAskForTeleport; + + public readonly record struct HideAskForTeleport; } } } diff --git a/src/game/GameLogic.g.puml b/src/game/GameLogic.g.puml index 53b92587..fb9c713b 100644 --- a/src/game/GameLogic.g.puml +++ b/src/game/GameLogic.g.puml @@ -2,6 +2,7 @@ state "GameLogic State" as GameJamDungeon_GameLogic_State { state "GameStarted" as GameJamDungeon_GameLogic_State_GameStarted state "Playing" as GameJamDungeon_GameLogic_State_Playing { + state "AskForTeleport" as GameJamDungeon_GameLogic_State_AskForTeleport state "FloorClearedDecisionState" as GameJamDungeon_GameLogic_State_FloorClearedDecisionState state "InventoryOpened" as GameJamDungeon_GameLogic_State_InventoryOpened state "MinimapOpen" as GameJamDungeon_GameLogic_State_MinimapOpen @@ -11,13 +12,15 @@ state "GameLogic State" as GameJamDungeon_GameLogic_State { state "Quit" as GameJamDungeon_GameLogic_State_Quit } +GameJamDungeon_GameLogic_State_AskForTeleport --> GameJamDungeon_GameLogic_State_FloorClearedDecisionState : FloorExitReached +GameJamDungeon_GameLogic_State_AskForTeleport --> GameJamDungeon_GameLogic_State_Playing : HideAskForTeleport GameJamDungeon_GameLogic_State_FloorClearedDecisionState --> GameJamDungeon_GameLogic_State_FloorClearedDecisionState : GoToNextFloor GameJamDungeon_GameLogic_State_FloorClearedDecisionState --> GameJamDungeon_GameLogic_State_Playing : HideFloorClearMenu GameJamDungeon_GameLogic_State_GameStarted --> GameJamDungeon_GameLogic_State_Playing : Initialize GameJamDungeon_GameLogic_State_InventoryOpened --> GameJamDungeon_GameLogic_State_Playing : CloseInventory GameJamDungeon_GameLogic_State_MinimapOpen --> GameJamDungeon_GameLogic_State_Playing : MiniMapButtonReleased GameJamDungeon_GameLogic_State_Paused --> GameJamDungeon_GameLogic_State_Resuming : UnpauseGame -GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_FloorClearedDecisionState : FloorExitReached +GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_AskForTeleport : AskForTeleport GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_InventoryOpened : OpenInventory GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_MinimapOpen : MiniMapButtonPressed GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_Paused : PauseGame diff --git a/src/game/state/states/GameLogic.State.AskForTeleport.cs b/src/game/state/states/GameLogic.State.AskForTeleport.cs new file mode 100644 index 00000000..713782f4 --- /dev/null +++ b/src/game/state/states/GameLogic.State.AskForTeleport.cs @@ -0,0 +1,28 @@ +using Chickensoft.Introspection; +using Chickensoft.LogicBlocks; + +namespace GameJamDungeon +{ + public partial class GameLogic + { + public partial record State + { + [Meta] + public partial record AskForTeleport : Playing, IGet, IGet + { + public AskForTeleport() + { + this.OnAttach(() => { Get().Pause(); Output(new Output.ShowAskForTeleport()); }); + this.OnDetach(() => { Output(new Output.HideAskForTeleport()); }); + } + + public Transition On(in Input.FloorExitReached input) => To(); + + public Transition On(in Input.HideAskForTeleport input) + { + return To(); + } + } + } + } +} diff --git a/src/game/state/states/GameLogic.State.Playing.cs b/src/game/state/states/GameLogic.State.Playing.cs index fd34d40b..17c5ba96 100644 --- a/src/game/state/states/GameLogic.State.Playing.cs +++ b/src/game/state/states/GameLogic.State.Playing.cs @@ -12,7 +12,7 @@ namespace GameJamDungeon IGet, IGet, IGet, - IGet, + IGet, IGet { public Playing() @@ -29,7 +29,7 @@ namespace GameJamDungeon public Transition On(in Input.GameOver input) => To(); - public Transition On(in Input.FloorExitReached input) => To(); + public Transition On(in Input.AskForTeleport input) => To(); public Transition On(in Input.PauseGame input) => To(); } diff --git a/src/ui/dialogue/FloorExit.dialogue b/src/ui/dialogue/FloorExit.dialogue deleted file mode 100644 index 1bc580f8..00000000 --- a/src/ui/dialogue/FloorExit.dialogue +++ /dev/null @@ -1,6 +0,0 @@ -~ floor_exit -Proceed to the next floor? -- Yes - do GoToNextFloor() -- No -=> END \ No newline at end of file diff --git a/src/ui/dialogue/FloorExit.dialogue.import b/src/ui/dialogue/FloorExit.dialogue.import deleted file mode 100644 index a59b6afb..00000000 --- a/src/ui/dialogue/FloorExit.dialogue.import +++ /dev/null @@ -1,15 +0,0 @@ -[remap] - -importer="dialogue_manager_compiler_12" -type="Resource" -uid="uid://6bhfbvi6jbms" -path="res://.godot/imported/FloorExit.dialogue-d2fbe7fb8dbc88a2f9b0dc79a5124041.tres" - -[deps] - -source_file="res://src/ui/dialogue/FloorExit.dialogue" -dest_files=["res://.godot/imported/FloorExit.dialogue-d2fbe7fb8dbc88a2f9b0dc79a5124041.tres"] - -[params] - -defaults=true diff --git a/src/ui/in_game_ui/InGameUI.tscn b/src/ui/in_game_ui/InGameUI.tscn index 7c43bc5d..c592335f 100644 --- a/src/ui/in_game_ui/InGameUI.tscn +++ b/src/ui/in_game_ui/InGameUI.tscn @@ -1,77 +1,12 @@ -[gd_scene load_steps=17 format=3 uid="uid://b1muxus5qdbeu"] +[gd_scene load_steps=7 format=3 uid="uid://b1muxus5qdbeu"] [ext_resource type="Script" path="res://src/ui/in_game_ui/InGameUI.cs" id="1_sc13i"] [ext_resource type="PackedScene" uid="uid://bwbofurcvf3yh" path="res://src/minimap/Minimap.tscn" id="2_6sfje"] [ext_resource type="PackedScene" uid="uid://dlj8qdg1c5048" path="res://src/inventory_menu/InventoryMenu.tscn" id="3_4vcdl"] [ext_resource type="PackedScene" uid="uid://dxl8il8f13c2x" path="res://src/ui/player_ui/PlayerInfoUI.tscn" id="4_46s5l"] -[ext_resource type="FontFile" uid="uid://cm8j5vcdop5x0" path="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf" id="5_pmvvi"] -[ext_resource type="Script" path="res://src/ui/in_game_ui/UseTeleportPrompt.cs" id="5_uhl2q"] +[ext_resource type="PackedScene" uid="uid://bea2waybmgd6u" path="res://src/ui/teleport_prompt/UseTeleportPrompt.tscn" id="5_h1hgq"] [ext_resource type="Script" path="res://src/utils/FpsCounter.cs" id="7_c6o8j"] -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ahhj2"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1tca4"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_crnka"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_yoep7"] - -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cmr8o"] - -[sub_resource type="Animation" id="Animation_efhb5"] -resource_name = "fade_in" -length = 0.5 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:modulate") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.5), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} - -[sub_resource type="Animation" id="Animation_ibgld"] -resource_name = "fade_out" -length = 0.5 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:modulate") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.5), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] -} - -[sub_resource type="Animation" id="Animation_xrfau"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:modulate") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_7x216"] -_data = { -"RESET": SubResource("Animation_xrfau"), -"fade_in": SubResource("Animation_efhb5"), -"fade_out": SubResource("Animation_ibgld") -} - [node name="InGameUI" type="Control"] process_mode = 3 custom_minimum_size = Vector2(1920, 1080) @@ -100,73 +35,10 @@ process_mode = 3 visible = false layout_mode = 1 -[node name="UseTeleportPrompt" type="Control" parent="."] +[node name="UseTeleportPrompt" parent="." instance=ExtResource("5_h1hgq")] unique_name_in_owner = true -visible = false +modulate = Color(1, 1, 1, 1) layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -script = ExtResource("5_uhl2q") - -[node name="CenterContainer" type="CenterContainer" parent="UseTeleportPrompt"] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="VBoxContainer" type="VBoxContainer" parent="UseTeleportPrompt/CenterContainer"] -layout_mode = 2 - -[node name="MovePrompt" type="Label" parent="UseTeleportPrompt/CenterContainer/VBoxContainer"] -layout_mode = 2 -theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1) -theme_override_fonts/font = ExtResource("5_pmvvi") -theme_override_font_sizes/font_size = 50 -theme_override_styles/normal = SubResource("StyleBoxEmpty_ahhj2") -text = "Move to the next floor?" - -[node name="YesButton" type="Button" parent="UseTeleportPrompt/CenterContainer/VBoxContainer"] -unique_name_in_owner = true -custom_minimum_size = Vector2(100, 0) -layout_mode = 2 -focus_neighbor_left = NodePath(".") -focus_neighbor_top = NodePath(".") -focus_neighbor_right = NodePath(".") -focus_neighbor_bottom = NodePath("../NoButton") -theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1) -theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1) -theme_override_fonts/font = ExtResource("5_pmvvi") -theme_override_font_sizes/font_size = 50 -theme_override_styles/focus = SubResource("StyleBoxEmpty_1tca4") -theme_override_styles/normal = SubResource("StyleBoxEmpty_crnka") -button_mask = 0 -text = "Yes" - -[node name="NoButton" type="Button" parent="UseTeleportPrompt/CenterContainer/VBoxContainer"] -unique_name_in_owner = true -layout_mode = 2 -focus_neighbor_left = NodePath(".") -focus_neighbor_top = NodePath("../YesButton") -focus_neighbor_right = NodePath(".") -focus_neighbor_bottom = NodePath(".") -theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1) -theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1) -theme_override_fonts/font = ExtResource("5_pmvvi") -theme_override_font_sizes/font_size = 50 -theme_override_styles/focus = SubResource("StyleBoxEmpty_yoep7") -theme_override_styles/normal = SubResource("StyleBoxEmpty_cmr8o") -button_mask = 0 -text = "No" - -[node name="AnimationPlayer" type="AnimationPlayer" parent="UseTeleportPrompt"] -libraries = { -"": SubResource("AnimationLibrary_7x216") -} [node name="Label" type="Label" parent="."] layout_mode = 1 diff --git a/src/ui/in_game_ui/UseTeleportPrompt.cs b/src/ui/in_game_ui/UseTeleportPrompt.cs index 8d2bb5bd..b52cba88 100644 --- a/src/ui/in_game_ui/UseTeleportPrompt.cs +++ b/src/ui/in_game_ui/UseTeleportPrompt.cs @@ -3,11 +3,26 @@ using Chickensoft.GodotNodeInterfaces; using Chickensoft.Introspection; using Godot; -public interface IUseTeleportPrompt : IControl; +public interface IUseTeleportPrompt : IControl +{ + event UseTeleportPrompt.TeleportToNextFloorEventHandler TeleportToNextFloor; + event UseTeleportPrompt.CloseTeleportPromptEventHandler CloseTeleportPrompt; + + public void FadeIn(); + + public void FadeOut(); +} [Meta(typeof(IAutoNode))] -public partial class UseTeleportPrompt : Control +public partial class UseTeleportPrompt : Control, IUseTeleportPrompt { + public override void _Notification(int what) => this.Notify(what); + + [Signal] + public delegate void TeleportToNextFloorEventHandler(); + [Signal] + public delegate void CloseTeleportPromptEventHandler(); + [Node] public Button YesButton { get; set; } = default!; [Node] public Button NoButton { get; set; } = default!; @@ -17,6 +32,21 @@ public partial class UseTeleportPrompt : Control public void OnResolved() { AnimationPlayer.AnimationFinished += AnimationPlayer_AnimationFinished; + YesButton.Pressed += YesButton_Pressed; + NoButton.Pressed += NoButton_Pressed; + } + + public void FadeIn() => AnimationPlayer.Play("fade_in"); + public void FadeOut() => AnimationPlayer.Play("fade_out"); + + private void NoButton_Pressed() + { + EmitSignal(SignalName.CloseTeleportPrompt); + } + + private void YesButton_Pressed() + { + EmitSignal(SignalName.TeleportToNextFloor); } private void AnimationPlayer_AnimationFinished(StringName animName) diff --git a/src/ui/teleport_prompt/UseTeleportPrompt.tscn b/src/ui/teleport_prompt/UseTeleportPrompt.tscn new file mode 100644 index 00000000..dc3f4c0d --- /dev/null +++ b/src/ui/teleport_prompt/UseTeleportPrompt.tscn @@ -0,0 +1,179 @@ +[gd_scene load_steps=14 format=3 uid="uid://bea2waybmgd6u"] + +[ext_resource type="Script" path="res://src/ui/in_game_ui/UseTeleportPrompt.cs" id="1_x3wkp"] +[ext_resource type="FontFile" uid="uid://cm8j5vcdop5x0" path="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf" id="2_i6kb2"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ahhj2"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1tca4"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1pd8j"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_crnka"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_yoep7"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_svmjr"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cmr8o"] + +[sub_resource type="Animation" id="Animation_xrfau"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_efhb5"] +resource_name = "fade_in" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_ibgld"] +resource_name = "fade_out" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.5), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_7x216"] +_data = { +"RESET": SubResource("Animation_xrfau"), +"fade_in": SubResource("Animation_efhb5"), +"fade_out": SubResource("Animation_ibgld") +} + +[node name="UseTeleportPrompt" type="Control"] +process_mode = 3 +visible = false +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_x3wkp") + +[node name="CenterContainer" type="CenterContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"] +layout_mode = 2 + +[node name="MovePrompt" type="Label" parent="CenterContainer/VBoxContainer"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1) +theme_override_fonts/font = ExtResource("2_i6kb2") +theme_override_font_sizes/font_size = 50 +theme_override_styles/normal = SubResource("StyleBoxEmpty_ahhj2") +text = "Move to the next floor?" + +[node name="YesButton" type="Button" parent="CenterContainer/VBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(100, 0) +layout_mode = 2 +focus_neighbor_left = NodePath(".") +focus_neighbor_top = NodePath(".") +focus_neighbor_right = NodePath(".") +focus_neighbor_bottom = NodePath("../NoButton") +theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1) +theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1) +theme_override_fonts/font = ExtResource("2_i6kb2") +theme_override_font_sizes/font_size = 50 +theme_override_styles/focus = SubResource("StyleBoxEmpty_1tca4") +theme_override_styles/pressed = SubResource("StyleBoxEmpty_1pd8j") +theme_override_styles/normal = SubResource("StyleBoxEmpty_crnka") +button_mask = 0 +text = "Yes" + +[node name="NoButton" type="Button" parent="CenterContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +focus_neighbor_left = NodePath(".") +focus_neighbor_top = NodePath("../YesButton") +focus_neighbor_right = NodePath(".") +focus_neighbor_bottom = NodePath(".") +theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1) +theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1) +theme_override_fonts/font = ExtResource("2_i6kb2") +theme_override_font_sizes/font_size = 50 +theme_override_styles/focus = SubResource("StyleBoxEmpty_yoep7") +theme_override_styles/pressed = SubResource("StyleBoxEmpty_svmjr") +theme_override_styles/normal = SubResource("StyleBoxEmpty_cmr8o") +button_mask = 0 +text = "No" + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +unique_name_in_owner = true +libraries = { +"": SubResource("AnimationLibrary_7x216") +}