From f142ea1b5dd9e036d11b0d9e4c002ce32b69e9db Mon Sep 17 00:00:00 2001 From: oier Date: Sat, 2 Nov 2024 00:59:37 +0100 Subject: [PATCH] adds game over credits (#74) ## Changes - Adds game over credits Reviewed-on: https://git.fosil.eu/gymkhana/gymkhana/pulls/74 Reviewed-by: Eneko Nieto Co-authored-by: oier Co-committed-by: oier --- .../chooser/simple.gd | 2 +- .../menus/main_menu/main_menu.tscn | 23 +- gymkhana/characters/eneko/eneko_smoking.esc | 2 + gymkhana/characters/eneko/eneko_smoking.tscn | 8 +- .../assets/eneko-avatar-talking.png | Bin 0 -> 1122 bytes .../assets/oier-avatar-talking.png | Bin 0 -> 1392 bytes gymkhana/characters/talking-heads/eneko.tscn | 73 +++++ gymkhana/characters/talking-heads/oier.tscn | 74 +++++ .../items/inventory/turno_cocina_cuerno.esc | 5 +- .../creditos/RestartGameButton.gd | 11 + .../turno_cocina/creditos/SceneHandler.gd | 27 ++ .../creditos/assets/background.png | Bin 0 -> 23126 bytes .../rooms/turno_cocina/creditos/creditos.gd | 16 ++ .../rooms/turno_cocina/creditos/creditos.tscn | 56 ++++ .../turno_cocina/creditos/esc/creditos.esc | 23 ++ .../turno_cocina/creditos/scrollingText.gd | 14 + .../turno_cocina/creditos/scrollingText.tscn | 59 ++++ gymkhana/start_game.esc | 2 +- project.godot | 2 +- saves/save_004.tres | 262 ++++++++++++++++++ 20 files changed, 632 insertions(+), 27 deletions(-) create mode 100644 gymkhana/characters/talking-heads/assets/eneko-avatar-talking.png create mode 100644 gymkhana/characters/talking-heads/assets/oier-avatar-talking.png create mode 100644 gymkhana/characters/talking-heads/eneko.tscn create mode 100644 gymkhana/characters/talking-heads/oier.tscn create mode 100644 gymkhana/rooms/turno_cocina/creditos/RestartGameButton.gd create mode 100644 gymkhana/rooms/turno_cocina/creditos/SceneHandler.gd create mode 100644 gymkhana/rooms/turno_cocina/creditos/assets/background.png create mode 100644 gymkhana/rooms/turno_cocina/creditos/creditos.gd create mode 100644 gymkhana/rooms/turno_cocina/creditos/creditos.tscn create mode 100644 gymkhana/rooms/turno_cocina/creditos/esc/creditos.esc create mode 100644 gymkhana/rooms/turno_cocina/creditos/scrollingText.gd create mode 100644 gymkhana/rooms/turno_cocina/creditos/scrollingText.tscn create mode 100644 saves/save_004.tres diff --git a/addons/escoria-ui-return-monkey-island-dialog-simple/chooser/simple.gd b/addons/escoria-ui-return-monkey-island-dialog-simple/chooser/simple.gd index bd262b03..0fed7603 100644 --- a/addons/escoria-ui-return-monkey-island-dialog-simple/chooser/simple.gd +++ b/addons/escoria-ui-return-monkey-island-dialog-simple/chooser/simple.gd @@ -108,4 +108,4 @@ func _on_paused(): # Handler managing resume notification from Escoria func _on_resumed(): - show_chooser() \ No newline at end of file + show_chooser() diff --git a/addons/escoria-ui-return-monkey-island/menus/main_menu/main_menu.tscn b/addons/escoria-ui-return-monkey-island/menus/main_menu/main_menu.tscn index 5c145305..8666e802 100644 --- a/addons/escoria-ui-return-monkey-island/menus/main_menu/main_menu.tscn +++ b/addons/escoria-ui-return-monkey-island/menus/main_menu/main_menu.tscn @@ -41,18 +41,18 @@ __meta__ = { } [node name="TextureRect" type="TextureRect" parent="main/main"] -margin_top = 55.0 +margin_top = 40.0 margin_right = 616.0 -margin_bottom = 355.0 +margin_bottom = 340.0 texture = ExtResource( 3 ) __meta__ = { "_edit_use_anchors_": false } [node name="buttons" type="VBoxContainer" parent="main/main"] -margin_top = 455.0 +margin_top = 440.0 margin_right = 616.0 -margin_bottom = 695.0 +margin_bottom = 710.0 custom_constants/separation = 10 __meta__ = { "_edit_use_anchors_": false @@ -67,14 +67,6 @@ text = "NEW_GAME" __meta__ = { "_edit_use_anchors_": false } -; [node name="new_game_without_intro" type="Button" parent="main/main/buttons"] -; margin_right = 616.0 -; margin_bottom = 270.0 -; size_flags_vertical = 3 -; text = "NEW_GAME (without intro)" -; __meta__ = { -; "_edit_use_anchors_": false -; } [node name="load_game" type="Button" parent="main/main/buttons"] margin_top = 160.0 @@ -92,20 +84,17 @@ margin_bottom = 210.0 text = "OPTIONS" [node name="quit" type="Button" parent="main/main/buttons"] -margin_top = 220.0 +margin_top = 250.0 margin_right = 616.0 -margin_bottom = 240.0 +margin_bottom = 270.0 text = "QUIT" __meta__ = { "_edit_use_anchors_": false } - - [connection signal="back_button_pressed" from="load_game" to="." method="_on_load_game_back_button_pressed"] [connection signal="back_button_pressed" from="options" to="." method="_on_options_back_button_pressed"] [connection signal="pressed" from="main/main/buttons/new_game" to="." method="_on_new_game_pressed"] [connection signal="pressed" from="main/main/buttons/load_game" to="." method="_on_load_game_pressed"] [connection signal="pressed" from="main/main/buttons/options" to="." method="_on_options_pressed"] [connection signal="pressed" from="main/main/buttons/quit" to="." method="_on_quit_pressed"] -[connection signal="pressed" from="main/main/buttons/new_game_without_intro" to="." method="_on_new_without_intro_pressed"] diff --git a/gymkhana/characters/eneko/eneko_smoking.esc b/gymkhana/characters/eneko/eneko_smoking.esc index e9b4b2b0..62c4deb0 100644 --- a/gymkhana/characters/eneko/eneko_smoking.esc +++ b/gymkhana/characters/eneko/eneko_smoking.esc @@ -78,12 +78,14 @@ set_active cocina_delante_puerta_detras true set_global cocina_delante_catando false > [turno_cocina_ingrediente_patatas,turno_cocina_ingrediente_ajo_en_lentejas,turno_cocina_ingrediente_romero] play_video res://gymkhana/videos/turno_cocina/eneko_sale_le_gusta_muchisimo.ogv + set_global turno_cocina_eneko_cata_ok true set_active eneko_smoking true set_active turno_cocina_ajo false play_snd res://gymkhana/sounds/music_loop.ogg _music stop > [turno_cocina_ingrediente_patatas,turno_cocina_ingrediente_ajo_en_lentejas] play_video res://gymkhana/videos/turno_cocina/eneko_sale_le_gusta.ogv + set_global turno_cocina_eneko_cata_ok true set_active eneko_smoking true set_active turno_cocina_ajo false play_snd res://gymkhana/sounds/music_loop.ogg _music diff --git a/gymkhana/characters/eneko/eneko_smoking.tscn b/gymkhana/characters/eneko/eneko_smoking.tscn index 377a691a..2de7d099 100644 --- a/gymkhana/characters/eneko/eneko_smoking.tscn +++ b/gymkhana/characters/eneko/eneko_smoking.tscn @@ -46,10 +46,10 @@ is_movable = true combine_when_selected_action_is_in = [ ] dialog_color = Color( 0.584314, 0.490196, 0.270588, 1 ) custom_data = { - "tooltips": { - "action1": "cocina_delante_eneko_smoking_action1", - "action2": "cocina_delante_eneko_smoking_action2" - } +"tooltips": { +"action1": "cocina_delante_eneko_smoking_action1", +"action2": "cocina_delante_eneko_smoking_action2" +} } action3_target_texts = { "turno_cocina_frontal": "Ofrecer", diff --git a/gymkhana/characters/talking-heads/assets/eneko-avatar-talking.png b/gymkhana/characters/talking-heads/assets/eneko-avatar-talking.png new file mode 100644 index 0000000000000000000000000000000000000000..d6b5178a87756311bba1596a40e3ac24029f909b GIT binary patch literal 1122 zcmeAS@N?(olHy`uVBq!ia0vp^6M)!*gAGVZYS;V%QjEnx?oJHr&dI!FU|^B)ba4!+ znDchd-fR&^iDUOWlsM+CRiE){&t#X`Ar8p((Vj1%X%oEkf^hzYgnd0EAc=QI1~#wr1=1cRrB z!Pi=??!L>L_PD*-G3#!M<+8`K+=9Q}e7?Crz^?V~Tr>94D%<5nZGY?5y}oYS>2#Hy zlO^QMb+H5IHd$({FP`Q1;+H~W16L{2%?amY}nZ9jR+dUF5IE3!R%VA@=ljjx(nn6!-4 zClu~qygBA}U9SAXRV+sD_(SAX1OgK0c9zvnQ~vl=Cw#}feUmlHY9}~2xIR38XvyZX zZQDCD))&Xf{&@AvQ%T9H^ml1s=$a`PzJQ!^?VJAVsMxY8PmX_`{#B*Iyyf%tWzw=P=kgi# z#=ZI#VrK%e{dMDw#G;Ug(l3v!64EdOiM4+A*|K``r=o;!5lO$#zo=gJdFR^ouXI}@ zz~S;LJ<%*(cF&iFjt()g^Gn~w@853l_0Q4Y(kuVxuURiBc=5e?x$yu0=KljvU9ON` z_!<-*bA&tIhupk&`r?sq%L^4nPoFw9Gev&k8ttlTy`7TMB7T3p zW$(84s`)%G+$prq{dY-r*3Nw$z95BxH@aN*E&j>(e5QY1c5ctTI#1p6&m8uhd$o0Q z=jT^$E5I@N^+e0{EGCm-Il?qR8}`?bZdDi`eeCDNJ?_S^UO%wOa0_~d+Fw`Rq< z$5C-tPbwE)ZU1djDI8^I{CO=XopS+)LzijyTeF0!IyAFk^7^$Vp&YNwK^?Ap; zs?Yb;_V3?zNml*#zg5DTCE&<@7bs!9`s)|JNB=*bECb_I=bPX`f7AQuIjoI zukqOW=ksd`uRbo@7SU&vGs8{tPPsv0$~tcsm&Z#}m9*aPzPRxPC`OCEH|Cs6TEcvz z&?f3c*V#a!b?G;qH%5Sy>&*Qj`>VabtEq0^xsLDZJoTBCZ=UyFg`}SU44(`iNO0Y< Q{shXtp00i_>zopr0E4s|{Qv*} literal 0 HcmV?d00001 diff --git a/gymkhana/characters/talking-heads/assets/oier-avatar-talking.png b/gymkhana/characters/talking-heads/assets/oier-avatar-talking.png new file mode 100644 index 0000000000000000000000000000000000000000..c55df558c24344fae4d238c0f8e93060674f6d62 GIT binary patch literal 1392 zcmXApeLNF*9LIm;ylRo?rRF^BP`a3uJe-GEj%+ULCJbQ;c?vadvkWQaq0;8$p)+ez zDQ&4?X}3*><2;sUjizOqn1|Dd4#)iQ`+ooU{a)YS_xt{SzTfO$(eCPy?;!vHbrjOo zYu!`U4|1#Oy45iwFRweL1TS|N!0ObS0N^`Qlw{vvp$D+8&%~SsJURULaU46 z#;^C98N)1JbZ5?SF6Aanw-<}rX?34coh_0h#!HT{anp;*oh3^NN-kRsGj^_q@5+Ka`an;=Ief%ej#KoW~`;spP$&71%PQ4Jt;a zc;e%q+6eg}4ra^*^5bZ&YY#PcWmU9v(8TcMQgQ3a!kZEeUkg=`=(zL}`|XrqRS7`r zmWpt^oV}Qe5iFUt8 z>8tiJJ;l&xJjgwJRIjPx<}cRYY1aDk3E{v105E;JO)a-ySk8i(m))Nyfu;`nnA?wv zPi8J6yhKhjEry_e(po@LGZ#w*HnB>h1i!bT_k4RYx4C*(G$R&lNsk)*Ei{~%Bidl} z!H17vx?>O`md1I}+IdN7NaZ|z!b?%MF68-Klh7=w8TsgO(PY_qM35EfvcCG>SS9fSNqP&7a!VgaCs43Gr5+nyv=7L7z2H;dVbFuePt)OfUoZIvq0m| z6c!TlDq2?%n<((QTY_kRYI1`+wF1$2np+qX>*La=VEQSY51X*0ee zkrdE-BhJ+JsMM)iJxVFY@Z%T59{1aVr2P)_ zDXRj`e>yXbWl`EGMF>~7aofHd>{SO6KaPaO4bM*;f3{-qo&YECZt4fN2kenA1vM`y zMGnu0FgF$MsOo_)2ysB@?T^^b-)q-uBD*;5S*h3!UW>$T4!wACz*dN)Pk!s@3g|i~ j>xg_xS@f&$QD~Y7@K|?iiiG69zCr=Y4eiQu3Ayq=$jYZQ literal 0 HcmV?d00001 diff --git a/gymkhana/characters/talking-heads/eneko.tscn b/gymkhana/characters/talking-heads/eneko.tscn new file mode 100644 index 00000000..fe98732c --- /dev/null +++ b/gymkhana/characters/talking-heads/eneko.tscn @@ -0,0 +1,73 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://gymkhana/characters/eneko/eneko_smoking_animatios.tres" type="Resource" id=1] +[ext_resource path="res://addons/escoria-ui-return-monkey-island/esc_player_with_tooltip.gd" type="Script" id=2] +[ext_resource path="res://gymkhana/characters/talking-heads/assets/eneko-avatar-talking.png" type="Texture" id=3] + +[sub_resource type="AtlasTexture" id=2] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 0, 0, 72, 72 ) + +[sub_resource type="AtlasTexture" id=3] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 0, 0, 72, 72 ) + +[sub_resource type="AtlasTexture" id=4] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 72, 0, 72, 72 ) + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ SubResource( 2 ) ], +"loop": true, +"name": "idle", +"speed": 5.0 +}, { +"frames": [ SubResource( 3 ), SubResource( 4 ) ], +"loop": true, +"name": "speak", +"speed": 5.0 +} ] + +[sub_resource type="CircleShape2D" id=5] +radius = 40.1123 + +[node name="ESCPlayerWithTooltip2" type="Area2D"] +pause_mode = 1 +script = ExtResource( 2 ) +global_id = "eneko_head" +is_interactive = false +is_movable = true +player_orients_on_arrival = false +combine_when_selected_action_is_in = [ ] +dialog_color = Color( 0, 0.560784, 0.0470588, 1 ) +custom_data = { +"tooltips": { +"action1": "cocina_delante_eneko_smoking_action1", +"action2": "cocina_delante_eneko_smoking_action2" +} +} +action3_target_texts = { +"turno_cocina_frontal": "Ofrecer", +"turno_cocina_madera": "Ofrecerle leña" +} +target_when_selected_action_is_in = [ "action3" ] +selectable = true +animations = ExtResource( 1 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +position = Vector2( -1, 0 ) +scale = Vector2( 1.67778, 1.67778 ) +frames = SubResource( 1 ) +animation = "speak" +flip_h = true + +[node name="dialog_position" type="Position2D" parent="."] +position = Vector2( -1, -153 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 0, 1 ) +shape = SubResource( 5 ) diff --git a/gymkhana/characters/talking-heads/oier.tscn b/gymkhana/characters/talking-heads/oier.tscn new file mode 100644 index 00000000..786e0359 --- /dev/null +++ b/gymkhana/characters/talking-heads/oier.tscn @@ -0,0 +1,74 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://gymkhana/characters/eneko/eneko_smoking_animatios.tres" type="Resource" id=1] +[ext_resource path="res://addons/escoria-ui-return-monkey-island/esc_player_with_tooltip.gd" type="Script" id=2] +[ext_resource path="res://gymkhana/characters/talking-heads/assets/oier-avatar-talking.png" type="Texture" id=3] + +[sub_resource type="AtlasTexture" id=2] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 0, 0, 72, 72 ) + +[sub_resource type="AtlasTexture" id=3] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 0, 0, 72, 72 ) + +[sub_resource type="AtlasTexture" id=4] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 72, 0, 72, 72 ) + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ SubResource( 2 ) ], +"loop": true, +"name": "idle", +"speed": 5.0 +}, { +"frames": [ SubResource( 3 ), SubResource( 4 ) ], +"loop": true, +"name": "speak", +"speed": 5.0 +} ] + +[sub_resource type="CircleShape2D" id=5] +radius = 40.1123 + +[node name="ESCPlayerWithTooltip2" type="Area2D"] +pause_mode = 1 +script = ExtResource( 2 ) +global_id = "oier_head" +is_interactive = false +is_movable = true +player_orients_on_arrival = false +combine_when_selected_action_is_in = [ ] +dialog_color = Color( 0.584314, 0.490196, 0.270588, 1 ) +custom_data = { +"tooltips": { +"action1": "cocina_delante_eneko_smoking_action1", +"action2": "cocina_delante_eneko_smoking_action2" +} +} +action3_target_texts = { +"turno_cocina_frontal": "Ofrecer", +"turno_cocina_madera": "Ofrecerle leña" +} +target_when_selected_action_is_in = [ "action3" ] +selectable = true +animations = ExtResource( 1 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +position = Vector2( -1, 0 ) +scale = Vector2( 1.67778, 1.67778 ) +frames = SubResource( 1 ) +animation = "speak" +flip_h = true + +[node name="dialog_position" type="Position2D" parent="."] +position = Vector2( -1, -153 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +visible = false +position = Vector2( 0, 1 ) +shape = SubResource( 5 ) diff --git a/gymkhana/items/inventory/turno_cocina_cuerno.esc b/gymkhana/items/inventory/turno_cocina_cuerno.esc index b54564e6..975dc3c8 100644 --- a/gymkhana/items/inventory/turno_cocina_cuerno.esc +++ b/gymkhana/items/inventory/turno_cocina_cuerno.esc @@ -15,10 +15,9 @@ say player "Parece un cuerno de algún animal. Lo usan para llamar a comer." walk_block player puerta_cocina_start set_angle player 180 stop_snd - > [turno_cocina_ingrediente_patatas,turno_cocina_ingrediente_ajo_en_lentejas] + > [turno_cocina_eneko_cata_ok] play_video res://gymkhana/videos/turno_cocina/cuerno_epico.ogv - # TODO Credits - show_menu main + change_scene res://gymkhana/rooms/turno_cocina/creditos/creditos.tscn stop play_video res://gymkhana/videos/turno_cocina/cuerno_antes_de_tiempo.ogv play_snd res://gymkhana/sounds/music_loop.ogg _music diff --git a/gymkhana/rooms/turno_cocina/creditos/RestartGameButton.gd b/gymkhana/rooms/turno_cocina/creditos/RestartGameButton.gd new file mode 100644 index 00000000..516827f0 --- /dev/null +++ b/gymkhana/rooms/turno_cocina/creditos/RestartGameButton.gd @@ -0,0 +1,11 @@ +extends Button + +# Called when the node enters the scene tree for the first time. +func _ready(): + self.visible = false + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + if(escoria.globals_manager.get_global("turno_cocina_creditos_return_to_menu_visible")): + self.visible = true diff --git a/gymkhana/rooms/turno_cocina/creditos/SceneHandler.gd b/gymkhana/rooms/turno_cocina/creditos/SceneHandler.gd new file mode 100644 index 00000000..0008d9a8 --- /dev/null +++ b/gymkhana/rooms/turno_cocina/creditos/SceneHandler.gd @@ -0,0 +1,27 @@ +extends Node2D + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + + +func _on_scrollingText_finished(): + escoria.globals_manager.set_global("turno_cocina_creditos_return_to_menu_visible", true) + pass # Replace with function body. + + +func _on_Button_button_up(): + escoria.game_scene.show_main_menu() + pass # Replace with function body. diff --git a/gymkhana/rooms/turno_cocina/creditos/assets/background.png b/gymkhana/rooms/turno_cocina/creditos/assets/background.png new file mode 100644 index 0000000000000000000000000000000000000000..3ac5ea43b5512f49a2aa8a9979cc34624ce4d7f9 GIT binary patch literal 23126 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 VI2E4TIQ+FiP*v1asF$;j{9hR