diff --git a/Hiro/hiro_ai.tscn b/Hiro/hiro_ai.tscn index 73cec79..ada51eb 100644 --- a/Hiro/hiro_ai.tscn +++ b/Hiro/hiro_ai.tscn @@ -484,6 +484,12 @@ script = ExtResource("8_pqyhf") [node name="Victory" type="Node" parent="StateMachine/Root"] script = ExtResource("8_pqyhf") +[node name="ToThink" type="Node" parent="StateMachine/Root/Victory"] +script = ExtResource("9_la16b") +to = NodePath("../../Think") +event = &"will_reset" +delay_in_seconds = "0.0" + [connection signal="animation_finished" from="AnimationTree" to="." method="_on_animation_tree_animation_finished"] [connection signal="area_entered" from="Attackbox" to="." method="_on_attackbox_area_entered"] [connection signal="body_entered" from="Meleebox" to="." method="_on_meleebox_body_entered"] diff --git a/Hiro/hiro_game_over_screen_1.png b/Hiro/hiro_game_over_screen_1.png new file mode 100644 index 0000000..f683693 --- /dev/null +++ b/Hiro/hiro_game_over_screen_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88fd572dad25481739fb6a601124c824e3a37342a40c9eefd1fd0bc7187ef842 +size 675323 diff --git a/Hiro/hiro_game_over_screen_1.png.import b/Hiro/hiro_game_over_screen_1.png.import new file mode 100644 index 0000000..e18af1b --- /dev/null +++ b/Hiro/hiro_game_over_screen_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b46ekrvgw3amj" +path="res://.godot/imported/hiro_game_over_screen_1.png-a50954187c5b2e16875476dfc995782e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Hiro/hiro_game_over_screen_1.png" +dest_files=["res://.godot/imported/hiro_game_over_screen_1.png-a50954187c5b2e16875476dfc995782e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Hiro/hiro_game_over_screen_nsfw.png b/Hiro/hiro_game_over_screen_nsfw.png index c21dcac..4fde1b0 100644 --- a/Hiro/hiro_game_over_screen_nsfw.png +++ b/Hiro/hiro_game_over_screen_nsfw.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:08b5cfc46000ca87b661b76691c2eda7301998ad65d42f7c6d96bb384393d35a -size 644812 +oid sha256:6b64cbef378f5a925535767e6618d024074cdf7c1267c92ddd976a73c4c00302 +size 608290 diff --git a/Hiro/hiro_game_over_screen_sfw.png b/Hiro/hiro_game_over_screen_sfw.png index d03c88d..260929b 100644 --- a/Hiro/hiro_game_over_screen_sfw.png +++ b/Hiro/hiro_game_over_screen_sfw.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:04b4411260fad865860c19db306bbeb6144021cb5fb7dbb5ea69b6c3129cb133 -size 179685 +oid sha256:7699bc8f5a204ef8301b689737049781924e2ca502bf51e79cb98fe8ae6b3efd +size 177240 diff --git a/Reed/reed_ai.tscn b/Reed/reed_ai.tscn index 64a3533..ef341b1 100644 --- a/Reed/reed_ai.tscn +++ b/Reed/reed_ai.tscn @@ -606,6 +606,12 @@ script = ExtResource("7_jc1pg") [node name="Victory" type="Node" parent="StateMachine/Root"] script = ExtResource("7_jc1pg") +[node name="ToThink" type="Node" parent="StateMachine/Root/Victory"] +script = ExtResource("8_713tw") +to = NodePath("../../Think") +event = &"will_reset" +delay_in_seconds = "0.0" + [node name="RangeSpawners" type="Node2D" parent="."] [node name="East" type="Marker2D" parent="RangeSpawners"] diff --git a/Scripts/Audio/sound_manager.gd b/Scripts/Audio/sound_manager.gd index 4f6c077..f4313aa 100644 --- a/Scripts/Audio/sound_manager.gd +++ b/Scripts/Audio/sound_manager.gd @@ -40,3 +40,6 @@ func _on_humanoid_character_attacked(): func _on_reed_ai_range_attack_initiated(by): play_sound("energy_blast") + +func _on_game_requested_retry(): + play_sound("unpause") diff --git a/Scripts/Levels/arena_level.gd b/Scripts/Levels/arena_level.gd index a8d2fb8..96ade8b 100644 --- a/Scripts/Levels/arena_level.gd +++ b/Scripts/Levels/arena_level.gd @@ -8,14 +8,17 @@ extends Node2D @onready var reed_ai : AICharacter = $ReedAI @onready var nem_npc = $NemNPC @onready var cutscene_manager = $CutsceneManager +@onready var bgm_manager = $MusicManager @onready var sound_manager = $SoundManager @onready var fader_animation = $Fades/Control/FaderRect/AnimationPlayer @onready var barrier = $BattleBarriers @onready var credits = $Fades/Control/Credits @onready var reward_nsfw = $Fades/Control/NSFWReward @onready var reward_sfw = $Fades/Control/SFWReward +@onready var gameover_screen = $Fades/Control/GameOverScreen @onready var gameover_screen_player = $Fades/Control/GameOverScreen/AnimationPlayer @onready var gameover_image = $Fades/Control/GameOverScreen/GameOverImage +@onready var gameover_button = $Fades/Control/GameOverScreen/Button @export var stage = 1 @export var losing_cutscenes: Array[StringName] = [ @@ -73,9 +76,14 @@ func _on_cutscene_finished(cutscene_name: String): if losing_cutscenes.find(cutscene_name) >= 0: if cutscene_name.begins_with("reed") and Globals.nsfw: gameover_image.texture = load("res://Hiro/hiro_game_over_screen_nsfw.png") + gameover_screen.visible = true gameover_screen_player.play("fade_in") player.in_cutscene = true game_state.can_pause = false + await get_tree().create_timer(1.0).timeout + gameover_button.disabled = false + gameover_button.grab_focus() + gameover_button.grab_click_focus() elif cutscene_name == "talking_to_nem": nem_npc.interaction_cutscene = null hiro_ai.set_ai_enabled(true) @@ -95,6 +103,78 @@ func _on_credits_requested_reward(): reward_nsfw.visible = Globals.nsfw reward_sfw.visible = not Globals.nsfw fader_animation.play("fade_in_black") + +func _on_retry(): + gameover_button.disabled = true + print("Going to retry stage " + str(stage)) + fader_animation.play("fade_out_black") + # TODO: Handle this when the animation ends instead. + await get_tree().create_timer(2.0).timeout + if stage == 1: + # Set everything back to Hiro clone's fight. + player.health = player.max_health + hiro_ai.health = hiro_ai.max_health + battle_ui.initialize(player, hiro_ai) + battle_ui.set_enemy_health_visible(true) + # Disable AI (will be reset later) + hiro_ai.set_ai_enabled(false) + # Teleport characters + hiro_ai.global_position = $PositionMarkers/Marker3.global_position + player.global_position = $PositionMarkers/Marker2.global_position + # Reset animation state + player.has_nsfw_animations = false + player.set_animation_direction(Vector2.RIGHT) + player.anim_playback.travel("idle") + hiro_ai.set_animation_direction(Vector2.LEFT) + hiro_ai.anim_playback.travel("idle") + # Ensure collider is enabled + hiro_ai.get_node("MovementCollider").disabled = false + + # All set, fade back in! + gameover_screen.modulate.a = 0.0 + fader_animation.play("fade_in_black") + bgm_manager.play_music(load("res://Audio/BGM/olympus_combat.mp3"), false) + await get_tree().create_timer(1.5).timeout + gameover_screen.visible = false + player.can_move = true + player.in_cutscene = false + hiro_ai.set_melee_box_enabled(true) + hiro_ai.reset_state() + barrier.process_mode = Node.PROCESS_MODE_INHERIT + + return + if stage == 2: + # Reheal characters + player.health = player.max_health + reed_ai.health = reed_ai.max_health + battle_ui.initialize(player, reed_ai) + battle_ui.set_enemy_health_visible(true) + # Disable AI (will be reset later) + reed_ai.set_ai_enabled(false) + # Teleport characters + reed_ai.global_position = $PositionMarkers/Marker3.global_position + player.global_position = $PositionMarkers/Marker2.global_position + # Reset animation state + player.has_nsfw_animations = Globals.nsfw + player.set_animation_direction(Vector2.RIGHT) + player.anim_playback.travel("idle") + reed_ai.set_animation_direction(Vector2.LEFT) + reed_ai.anim_playback.travel("idle") + # Ensure collider is enabled + reed_ai.get_node("MovementCollider").disabled = false + + # All set, fade back in! + gameover_screen.modulate.a = 0.0 + fader_animation.play("fade_in_black") + + bgm_manager.play_music(load("res://Audio/BGM/flying_in_the_sky.mp3"), false) + await get_tree().create_timer(1.5).timeout + player.can_move = true + player.in_cutscene = false + reed_ai.set_melee_box_enabled(true) + reed_ai.reset_state() + barrier.process_mode = Node.PROCESS_MODE_INHERIT + return func _on_cutscene_manager_issued_command(command: CutsceneCommand, manager: CutsceneManager): if command is TurnCharacterCommand or command is LookAtTargetCommand: @@ -152,6 +232,7 @@ func _on_cutscene_manager_issued_command(command: CutsceneCommand, manager: Cuts player.has_nsfw_animations = Globals.nsfw reed_ai.set_animation_direction(Vector2.LEFT) $NPCs.visible = true + reed_ai.state_machine.send_event("will_reset") reed_ai.set_melee_box_enabled(true) reed_ai.get_node("MovementCollider").disabled = false manager.step() diff --git a/Scripts/hiro_ai.gd b/Scripts/hiro_ai.gd index c0c58fa..48ef09c 100644 --- a/Scripts/hiro_ai.gd +++ b/Scripts/hiro_ai.gd @@ -116,6 +116,10 @@ func set_ai_process_mode(mode: ProcessMode): func set_ai_enabled(enabled: bool): set_ai_process_mode(Node.PROCESS_MODE_INHERIT if enabled else Node.PROCESS_MODE_DISABLED) +func reset_state(): + set_ai_enabled(true) + state_machine.send_event("will_reset") + func set_melee_box_enabled(enabled: bool): melee_hitbox_collider.set_deferred("disabled", !enabled) diff --git a/UI/prototype_credits.tscn b/UI/prototype_credits.tscn index 100dfe6..9f2f682 100644 --- a/UI/prototype_credits.tscn +++ b/UI/prototype_credits.tscn @@ -52,6 +52,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 alignment = 1 [node name="Label" type="Label" parent="VBoxContainer"] @@ -62,6 +63,7 @@ horizontal_alignment = 1 [node name="MarginContainer" type="MarginContainer" parent="VBoxContainer"] layout_mode = 2 +mouse_filter = 2 theme_override_constants/margin_bottom = 16 [node name="Label" type="Label" parent="VBoxContainer/MarginContainer"] @@ -72,21 +74,25 @@ horizontal_alignment = 1 [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] layout_mode = 2 +mouse_filter = 2 alignment = 1 [node name="Raxki" type="VBoxContainer" parent="VBoxContainer/HBoxContainer"] layout_mode = 2 size_flags_horizontal = 6 +mouse_filter = 2 alignment = 2 [node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer/Raxki"] layout_mode = 2 +mouse_filter = 2 theme_override_constants/margin_bottom = 8 [node name="Sprite" type="TextureRect" parent="VBoxContainer/HBoxContainer/Raxki/MarginContainer"] texture_filter = 1 custom_minimum_size = Vector2(0, 56) layout_mode = 2 +mouse_filter = 2 texture = ExtResource("3_dpsa0") expand_mode = 1 stretch_mode = 5 @@ -106,16 +112,19 @@ horizontal_alignment = 1 [node name="Yonic" type="VBoxContainer" parent="VBoxContainer/HBoxContainer"] layout_mode = 2 size_flags_horizontal = 6 +mouse_filter = 2 alignment = 2 [node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer/Yonic"] layout_mode = 2 +mouse_filter = 2 theme_override_constants/margin_bottom = 8 [node name="Sprite" type="TextureRect" parent="VBoxContainer/HBoxContainer/Yonic/MarginContainer"] texture_filter = 1 custom_minimum_size = Vector2(0, 58) layout_mode = 2 +mouse_filter = 2 texture = ExtResource("4_yqlxt") stretch_mode = 5 @@ -134,9 +143,11 @@ horizontal_alignment = 1 [node name="Credits3" type="VBoxContainer" parent="VBoxContainer/HBoxContainer"] layout_mode = 2 size_flags_horizontal = 6 +mouse_filter = 2 [node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer/Credits3"] layout_mode = 2 +mouse_filter = 2 theme_override_constants/margin_bottom = 16 [node name="Title" type="Label" parent="VBoxContainer/HBoxContainer/Credits3"] @@ -158,14 +169,17 @@ horizontal_alignment = 1 [node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer"] layout_mode = 2 +mouse_filter = 2 alignment = 1 [node name="Credits1" type="VBoxContainer" parent="VBoxContainer/HBoxContainer2"] layout_mode = 2 size_flags_horizontal = 6 +mouse_filter = 2 [node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer2/Credits1"] layout_mode = 2 +mouse_filter = 2 theme_override_constants/margin_bottom = 16 [node name="Title" type="Label" parent="VBoxContainer/HBoxContainer2/Credits1"] @@ -183,9 +197,11 @@ horizontal_alignment = 1 [node name="Credits2" type="VBoxContainer" parent="VBoxContainer/HBoxContainer2"] layout_mode = 2 size_flags_horizontal = 6 +mouse_filter = 2 [node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer2/Credits2"] layout_mode = 2 +mouse_filter = 2 theme_override_constants/margin_bottom = 16 [node name="Title" type="Label" parent="VBoxContainer/HBoxContainer2/Credits2"] @@ -205,9 +221,11 @@ horizontal_alignment = 1 [node name="Credits3" type="VBoxContainer" parent="VBoxContainer/HBoxContainer2"] layout_mode = 2 size_flags_horizontal = 6 +mouse_filter = 2 [node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer2/Credits3"] layout_mode = 2 +mouse_filter = 2 theme_override_constants/margin_bottom = 16 [node name="Title" type="Label" parent="VBoxContainer/HBoxContainer2/Credits3"] @@ -226,6 +244,7 @@ horizontal_alignment = 1 [node name="MarginContainer2" type="MarginContainer" parent="VBoxContainer"] layout_mode = 2 +mouse_filter = 2 theme_override_constants/margin_top = 8 theme_override_constants/margin_bottom = 8 @@ -238,6 +257,7 @@ horizontal_alignment = 1 [node name="RewardHint" type="MarginContainer" parent="VBoxContainer"] layout_mode = 2 +mouse_filter = 2 theme_override_constants/margin_left = 8 theme_override_constants/margin_top = 8 theme_override_constants/margin_right = 8 diff --git a/UI/textbox_ui.tscn b/UI/textbox_ui.tscn index 5033579..8d0f150 100644 --- a/UI/textbox_ui.tscn +++ b/UI/textbox_ui.tscn @@ -121,6 +121,7 @@ layout_mode = 3 anchors_preset = 0 offset_left = -720.0 offset_bottom = 480.0 +mouse_filter = 2 [node name="ChatboxContainer" type="Control" parent="LeftTextbox"] layout_mode = 1 @@ -205,6 +206,7 @@ offset_left = 720.0 offset_right = 1440.0 offset_bottom = 480.0 grow_horizontal = 0 +mouse_filter = 2 [node name="ChatboxContainer" type="Control" parent="RightTextbox"] layout_mode = 1 diff --git a/world/world.tscn b/world/world.tscn index 63e6ef8..74031cf 100644 --- a/world/world.tscn +++ b/world/world.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=83 format=3 uid="uid://bxuxjqxxqy7ce"] +[gd_scene load_steps=86 format=3 uid="uid://bxuxjqxxqy7ce"] [ext_resource type="PackedScene" uid="uid://di21xheryhp0k" path="res://Hiro/hiro_player.tscn" id="1_c1gpq"] [ext_resource type="PackedScene" uid="uid://b8sfype1vx5ad" path="res://Nem/nem_npc.tscn" id="1_sqt7d"] @@ -66,6 +66,71 @@ shader_parameter/line_opacity = 0.1 shader_parameter/spacing = 3 shader_parameter/scale = 1.0 +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0bu2i"] +bg_color = Color(1, 1, 1, 1) + +[sub_resource type="Animation" id="Animation_i1rco"] +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, 0)] +} + +[sub_resource type="Animation" id="Animation_nt1vk"] +resource_name = "fade_in" +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, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_xe0ly"] +_data = { +"RESET": SubResource("Animation_i1rco"), +"fade_in": SubResource("Animation_nt1vk") +} + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vk0sh"] +bg_color = Color(0, 0, 0.133333, 0.662745) +corner_radius_top_left = 999 +corner_radius_top_right = 999 +corner_radius_bottom_right = 999 +corner_radius_bottom_left = 999 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dubbv"] +bg_color = Color(0.129412, 0, 0, 0.662745) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.8, 0, 0, 1) +corner_radius_top_left = 999 +corner_radius_top_right = 999 +corner_radius_bottom_right = 999 +corner_radius_bottom_left = 999 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_m6ugn"] +bg_color = Color(0, 0, 0, 0.478431) +corner_radius_top_left = 999 +corner_radius_top_right = 999 +corner_radius_bottom_right = 999 +corner_radius_bottom_left = 999 + [sub_resource type="Animation" id="Animation_lyxis"] length = 0.001 tracks/0/type = "value" @@ -135,45 +200,6 @@ _data = { "fade_out_black": SubResource("Animation_b6gpx") } -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0bu2i"] -bg_color = Color(1, 1, 1, 1) - -[sub_resource type="Animation" id="Animation_i1rco"] -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, 0)] -} - -[sub_resource type="Animation" id="Animation_nt1vk"] -resource_name = "fade_in" -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, 1), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_xe0ly"] -_data = { -"RESET": SubResource("Animation_i1rco"), -"fade_in": SubResource("Animation_nt1vk") -} - [sub_resource type="ShaderMaterial" id="ShaderMaterial_b1hkp"] shader = ExtResource("19_5m168") shader_parameter/darken_screen = 0.0 @@ -855,6 +881,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 1 [node name="Label" type="Label" parent="PauseMenu/Control"] layout_mode = 1 @@ -892,7 +919,6 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -mouse_filter = 2 [node name="ScanLines" type="ColorRect" parent="Fades/Control"] visible = false @@ -904,6 +930,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 color = Color(0.247059, 0.247059, 0.247059, 1) [node name="LCDDisplay" type="ColorRect" parent="Fades/Control"] @@ -915,6 +942,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 color = Color(0.180392, 0.180392, 0.180392, 1) [node name="NSFWReward" type="TextureRect" parent="Fades/Control"] @@ -925,6 +953,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 texture = ExtResource("10_qggmb") expand_mode = 3 @@ -936,9 +965,65 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 texture = ExtResource("11_ni26m") expand_mode = 3 +[node name="GameOverScreen" type="Panel" parent="Fades/Control"] +visible = false +modulate = Color(1, 1, 1, 0) +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_0bu2i") + +[node name="GameOverImage" type="TextureRect" parent="Fades/Control/GameOverScreen"] +texture_filter = 2 +texture_repeat = 1 +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 150.0 +offset_top = 156.0 +offset_right = -165.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("24_etubl") +expand_mode = 1 +stretch_mode = 5 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Fades/Control/GameOverScreen"] +libraries = { +"": SubResource("AnimationLibrary_xe0ly") +} + +[node name="Button" type="Button" parent="Fades/Control/GameOverScreen"] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -92.0 +offset_top = 115.0 +offset_right = 95.0 +offset_bottom = 146.0 +grow_horizontal = 2 +mouse_default_cursor_shape = 2 +theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_colors/font_disabled_color = Color(0.917647, 0.917647, 0.917647, 1) +theme_override_fonts/font = ExtResource("2_64thh") +theme_override_styles/normal = SubResource("StyleBoxFlat_vk0sh") +theme_override_styles/hover = SubResource("StyleBoxFlat_dubbv") +theme_override_styles/pressed = SubResource("StyleBoxFlat_dubbv") +theme_override_styles/disabled = SubResource("StyleBoxFlat_m6ugn") +theme_override_styles/focus = SubResource("StyleBoxFlat_vk0sh") +disabled = true +text = "Try again" + [node name="FaderRect" type="ColorRect" parent="Fades/Control"] layout_mode = 1 anchors_preset = 15 @@ -955,50 +1040,24 @@ libraries = { } [node name="Credits" parent="Fades/Control" instance=ExtResource("11_2tmmx")] +visible = false layout_mode = 1 -[node name="GameOverScreen" type="Panel" parent="Fades/Control"] -modulate = Color(1, 1, 1, 0) -top_level = true -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -mouse_filter = 2 -theme_override_styles/panel = SubResource("StyleBoxFlat_0bu2i") - -[node name="GameOverImage" type="TextureRect" parent="Fades/Control/GameOverScreen"] -texture_filter = 2 -texture_repeat = 1 -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -mouse_filter = 2 -texture = ExtResource("24_etubl") -expand_mode = 1 -stretch_mode = 5 - -[node name="AnimationPlayer" type="AnimationPlayer" parent="Fades/Control/GameOverScreen"] -libraries = { -"": SubResource("AnimationLibrary_xe0ly") -} - [node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="BattleUI" parent="CanvasLayer" instance=ExtResource("10_hxn8m")] +mouse_filter = 2 +metadata/_edit_lock_ = true [node name="Debug" type="Control" parent="CanvasLayer"] +visible = false layout_mode = 3 anchor_left = 0.667 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 0 grow_vertical = 2 +mouse_filter = 2 [node name="StateChartDebugger" parent="CanvasLayer/Debug" instance=ExtResource("2_o5str")] layout_mode = 1 @@ -1021,6 +1080,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 [node name="MapElements" type="Node2D" parent="."] y_sort_enabled = true @@ -1268,13 +1328,15 @@ shape = SubResource("RectangleShape2D_hkvwf") [connection signal="dialogue_completed" from="TextboxUI" to="CutsceneManager" method="_on_ui_dialogue_completed"] [connection signal="dialogue_continued" from="TextboxUI" to="SoundManager" method="_on_ui_dialogue_continued"] [connection signal="dialogue_opened" from="TextboxUI" to="SoundManager" method="_on_ui_dialogue_opened"] +[connection signal="pressed" from="Fades/Control/GameOverScreen/Button" to="." method="_on_retry"] +[connection signal="pressed" from="Fades/Control/GameOverScreen/Button" to="SoundManager" method="_on_game_requested_retry"] [connection signal="given_way" from="Fades/Control/Credits" to="Fades/Control/Credits" method="_on_given_way" flags=6] [connection signal="given_way" from="Fades/Control/Credits" to="SoundManager" method="_on_game_pause_toggled" flags=6 binds= [false]] [connection signal="reward_requested" from="Fades/Control/Credits" to="." method="_on_credits_requested_reward" flags=6] [connection signal="attack_did_hit" from="HiroPlayer" to="ShadowClone" method="_on_enemy_attack_did_hit"] [connection signal="attack_did_hit" from="HiroPlayer" to="ReedAI" method="_on_enemy_attack_did_hit"] [connection signal="attacked" from="HiroPlayer" to="SoundManager" method="_on_humanoid_character_attacked"] -[connection signal="defeated" from="HiroPlayer" to="." method="_on_player_defeated" flags=6] +[connection signal="defeated" from="HiroPlayer" to="." method="_on_player_defeated"] [connection signal="defeated" from="HiroPlayer" to="ShadowClone" method="_on_player_been_defeated"] [connection signal="defeated" from="HiroPlayer" to="ReedAI" method="_on_player_been_defeated"] [connection signal="got_hurt" from="HiroPlayer" to="SoundManager" method="_on_character_got_hurt"] @@ -1287,7 +1349,7 @@ shape = SubResource("RectangleShape2D_hkvwf") [connection signal="got_hurt" from="ShadowClone" to="CanvasLayer/BattleUI" method="_on_enemy_got_hurt"] [connection signal="attack_did_hit" from="ReedAI" to="HiroPlayer" method="_on_enemy_attack_did_hit"] [connection signal="attacked" from="ReedAI" to="SoundManager" method="_on_humanoid_character_attacked"] -[connection signal="defeated" from="ReedAI" to="." method="_on_reed_ai_defeated" flags=7] +[connection signal="defeated" from="ReedAI" to="." method="_on_reed_ai_defeated" flags=3] [connection signal="got_hurt" from="ReedAI" to="SoundManager" method="_on_character_got_hurt"] [connection signal="got_hurt" from="ReedAI" to="CanvasLayer/BattleUI" method="_on_enemy_got_hurt"] [connection signal="range_attack_initiated" from="ReedAI" to="SoundManager" method="_on_reed_ai_range_attack_initiated"]