From a37aeb620d57ea12eee8e25fa990470c8ba3ef36 Mon Sep 17 00:00:00 2001 From: Minimata Date: Mon, 2 Feb 2026 16:58:09 +0100 Subject: [PATCH] few UX improvements --- .../menus_translations.en.translation | Bin 3324 -> 1980 bytes .../menus_translations.fr.translation | Bin 2827 -> 1615 bytes project.godot | 4 + scenes/arrow/arrow.tscn | 63 +++++++++++++ scenes/camera/camera_controller.gd | 59 +++++------- scenes/list/list.gd | 2 +- scenes/main/main.tscn | 84 +++--------------- scenes/managers/game_manager.gd | 8 +- scenes/table/table.gd | 2 + utils/clickable.gd | 19 ++++ utils/clickable.gd.uid | 1 + 11 files changed, 128 insertions(+), 114 deletions(-) create mode 100644 scenes/arrow/arrow.tscn create mode 100644 utils/clickable.gd create mode 100644 utils/clickable.gd.uid diff --git a/addons/maaacks_game_template/base/translations/menus_translations.en.translation b/addons/maaacks_game_template/base/translations/menus_translations.en.translation index c17686e9c49a369db2872609d72a83f1a59c05a1..9b4d57bc519eb1f670c312e8c0dad5f34fa6a150 100644 GIT binary patch literal 1980 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 diff --git a/addons/maaacks_game_template/base/translations/menus_translations.fr.translation b/addons/maaacks_game_template/base/translations/menus_translations.fr.translation index 9721f95b5f275f8e85df2a657aca9951b48c1a40..db78794b18d419152ef49061f2b472880880d3a1 100644 GIT binary patch literal 1615 zcmV-V2C(^3Q$s@n000005C8x>3jhE&1^@skwJ-f(I|^+v018q35kpYsZN~VNa8;xX zYpALs1ZQuH;(T`mVWHh|?|v)~oTY(5+ulSfw##yRew?G6{dqS%W-lES)UJw{xUP!z z_koS<6z2dX0UQBNOFvow1^%c}qW^bx|M&c_lk;Ehf0_SZviz^|d?xun1c+M>w*P7W z;WiBH|M9xNNzuYf~7zFO#_ng+t_jR5oMbWjyAxupIyI$-8Vhhy6$TZo^htsUlug{QrG3 zSs31EuQJ~43@h6eo?Em3O5gtjJldzO`9wRFd#V#q=W>{ z1+li2_5qTNqe|TsaeC09I84BBAm!=jrR^X(6TpD2p+mngAuIq$`Y(nD3?Ef~|D7CW z%s}`rV1gSBKtxhy7c5?;7Nl)ZfNWoMTmoT067?U#j|M?XR{0U4?h&4rIsteMX57_z zb!c0$CgeZVk9t{pqC`gq)Q;2cKq2W3?M+R31{BKf=s{5iV9wmY`WY1>xY*$Tf*L(^k!ULC9!tYEBP2UD{8M`nJ>RG59yRtQX$ zUBcV=2C9>G$JQ~m#YS7zcz(ZvOH68W?~>$K{n~Y1ULr%lu&erY6=9G>{a9w1P8z;? zy`_z~RUh8-oAo-Sv&I}HyXtRPX1#u1gkY05O=qc_DgzhR9lClTNV#`(Z-qt-}-~DmI)DHSh>m$F3thzw$o*vbKn4 zbDC*$$mG|LOq+Msw>vNA;+u1mby?%L%+Aaj$wX>I{h_+TPP(~XsXLD6ce%SBCA+(2 zVfCoZWX)Dsjpvptg6gEvSb4d|PTIrR+HTiL!%J3ni!UqB?HfDkNuy6kSb z{yJ$U`}Lv9V&3f1-7VYop&H9uObqKobdW+ zeN3N6T0JABWbzGgOaVmi(#qjG5-E_ZJZP-}*dv6{b71bOXw!A8M7k?+b^u-VP% zUb1~`=E8jlgQV&q-bzkwsZEHFq8k%073Vybw%Zq9mUtuaXnRw?Vz`g)KZ5cgaYmmrWRbx87VY*?~4>%md)Xc4p_n1TLR1ab(hUp*$CvL;o|tsFz*f z?iO2A*4=ctV0@}dncQ%l7WgyX0B?tH!vM%<%;CP>iZV{BXa*C$uVL+RtXm6*^rE@n^Umb; zzF+_KWEs3l50s&(B~C1?^^(2NMl6mI^TGM71G2~QhJHcfL%pcTuAsWk)cJG14V?9f N(dSqEdI3^XLqjCnF5v(G literal 2827 zcma)84NO&K82-4ZUEunYznCbOAy*+3oU@_bbVxLX5Ca12Zqea#zys%=3+D%&LYq;m z;V6GLs?AL?%WjxUW@fR}cAd+A)0!k!qRjp@u@wz-m!9`>K0P|!I=j!l_kF(ieZTkp zzV|!#6ciR@G4mOQafFEp81rj&$tSH5D~eP>(PTlF{EBJHSR|y5%BbWEsSdLJ-%k`Q zV*ypv{D$fk%VfV-kjr#`ndTK0k&Uv>DS}UAdt5N!!H7N;NDxK?wjowA~J1(0s;PWX{oUkvz>ZHyv^c zkPbXy;oTOQe4erB&q6K$N-bQuDa#g){P?4SZvdLj`3)AkR*OvbTTFdB#t(sx`{v1J zKez)X|24)_Ko{_%$@OCV4d^p<^07Ys;BP-Meg?Q?3%_&z&98dQ{jkO8|sdSO$xx{eww&$#amD)E`j^^y#2!}1q$Uv znBD2wat%7&A$o^#|E48M`%dt@F3wN9S+{dO?1&#{u|IJBTwXJDIuELu+bcU_W^Fck z>%Du*{mFV-lj^Yc>1QMNEp7uxv1y*?z2e={?^2;qY{JE&d6)M=Cp&8%uYA$a&iY!#@lwiP_!16@ZD>*A>2=#tR zbyoY0FdGhaGA2}Qb0J9HTvwyoYj>AIE;zsW_8SgbB|az0H6?@qih*@(uD+7)wy0FQ zLv{=;U0@sEx;}T9Yc2O?gAt2{k{pU0)-x3a|Mn`&&t+MDMOTA+@!yY9=YIP_U)o?q zFtD&oABXgjoV~GY={A z5U5@gyt-76PMNt}Mn|baExyx|S;lIUz!G{gD-^xxH%)YA3BF)J72q3Mmhy2)h*qdD zBwb{Ak|OyGA5!-k_*%>n4R*Jrh7v{%h(h65>?!G{-J# void: - pass # Replace with function body. - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: - arrow_001.visible = position.x <= 440.0 - arrow_002.visible = position.x >= 2076.0 +func move_to_reception() -> void: + var camera_tween = get_tree().create_tween() + camera_tween.set_ease(Tween.EASE_IN_OUT) + camera_tween.set_trans(Tween.TRANS_CUBIC) + camera_tween.tween_property(self, "position", Vector2.ZERO, 0.5) + camera_tween.tween_callback(on_move_to_reception_finished) - var limit_left_at_center = limit_left + get_viewport_rect().size.x/2 - var limit_right_at_center = limit_right - get_viewport_rect().size.x/2 - if position.x < limit_left_at_center: - position.x = limit_left_at_center - if position.x > limit_right_at_center: - position.x = limit_right_at_center - - if should_move_right and position.x < limit_right_at_center: - position.x += pan_speed - if should_move_left and position.x > limit_left_at_center: - position.x -= pan_speed +func on_move_to_reception_finished() -> void: + move_to_reception_finished.emit() +func move_to_dining_room() -> void: + var camera_tween = get_tree().create_tween() + camera_tween.set_ease(Tween.EASE_IN_OUT) + camera_tween.set_trans(Tween.TRANS_CUBIC) + camera_tween.tween_property(self, "position", Vector2(2720.0, 0), 0.5) + camera_tween.tween_callback(on_move_to_dining_room_finished) + +func on_move_to_dining_room_finished() -> void: + move_to_dining_room_finished.emit() -func _on_pan_right_mouse_entered() -> void: - should_move_right = true +func _on_arrow_right_on_clicked() -> void: + move_to_dining_room() - -func _on_pan_right_mouse_exited() -> void: - should_move_right = false - - -func _on_pan_left_mouse_entered() -> void: - should_move_left = true - - -func _on_pan_left_mouse_exited() -> void: - should_move_left = false +func _on_arrow_left_on_clicked() -> void: + move_to_reception() diff --git a/scenes/list/list.gd b/scenes/list/list.gd index 96ef471..172b525 100644 --- a/scenes/list/list.gd +++ b/scenes/list/list.gd @@ -15,7 +15,7 @@ var pref_score_name: Dictionary[CharacterResource.Preference, String] = { } @onready var chara: Sprite2D = $"../GuestList/Chara" -@onready var mask: Sprite2D = $Mask +@onready var mask: Sprite2D = $"../MaskList/Mask" @onready var label: Label = $Label diff --git a/scenes/main/main.tscn b/scenes/main/main.tscn index 95254a8..dc37645 100644 --- a/scenes/main/main.tscn +++ b/scenes/main/main.tscn @@ -51,7 +51,7 @@ [ext_resource type="Texture2D" uid="uid://dj267xgqniy2i" path="res://assets/decor/table_item_a_2.png" id="43_jucdw"] [ext_resource type="Texture2D" uid="uid://b4u3o7fyryxxq" path="res://assets/decor/table_item_a.png" id="44_6miv3"] [ext_resource type="Texture2D" uid="uid://c3jx3y0mbueoo" path="res://assets/ui/arrow_004.png" id="47_6miv3"] -[ext_resource type="Texture2D" uid="uid://cgrudt5ev651p" path="res://assets/ui/arrow_001.png" id="52_yisfj"] +[ext_resource type="PackedScene" uid="uid://xwccasmeo5cy" path="res://scenes/arrow/arrow.tscn" id="52_ftp6y"] [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_gkmcc"] random_pitch = 1.122462 @@ -97,9 +97,6 @@ Vector2i(-1, -1): { } } -[sub_resource type="RectangleShape2D" id="RectangleShape2D_ya4ey"] -size = Vector2(512, 1080) - [sub_resource type="Animation" id="Animation_7smn1"] length = 0.001 tracks/0/type = "value" @@ -393,44 +390,6 @@ _data = { &"idle": SubResource("Animation_62f45") } -[sub_resource type="Animation" id="Animation_ftp6y"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:scale") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(0.5, 0.5)] -} - -[sub_resource type="Animation" id="Animation_pd34m"] -resource_name = "idle" -length = 2.0 -loop_mode = 1 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:scale") -tracks/0/interp = 2 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 1), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Vector2(0.5, 0.5), Vector2(0.4, 0.4)] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_qjyke"] -_data = { -&"RESET": SubResource("Animation_ftp6y"), -&"idle": SubResource("Animation_pd34m") -} - [node name="Main" type="Node2D" unique_id=875553242] script = ExtResource("1_7smn1") @@ -467,6 +426,7 @@ lvl2_guest_2 = ExtResource("37_yisfj") lvl3_guest_1 = ExtResource("33_f4j1x") lvl3_guest_2 = ExtResource("29_62f45") lvl3_guest_3 = ExtResource("27_6w6mm") +dual_mask_probability = 0.1 [node name="Camera2D" type="Camera2D" parent="." unique_id=1166192115] limit_left = -960 @@ -478,18 +438,6 @@ position_smoothing_speed = 10.0 script = ExtResource("14_0bhws") pan_speed = 16.04 -[node name="PanRight" type="Area2D" parent="Camera2D" unique_id=1684320772] -position = Vector2(960, 0) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Camera2D/PanRight" unique_id=1733069282] -shape = SubResource("RectangleShape2D_ya4ey") - -[node name="PanLeft" type="Area2D" parent="Camera2D" unique_id=1942262155] -position = Vector2(-960, 0) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Camera2D/PanLeft" unique_id=77276628] -shape = SubResource("RectangleShape2D_ya4ey") - [node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1813843404] libraries/ = SubResource("AnimationLibrary_hxu8e") @@ -497,7 +445,7 @@ libraries/ = SubResource("AnimationLibrary_hxu8e") position = Vector2(2711, 22) [node name="Table2" parent="." unique_id=141765359 instance=ExtResource("35_r1bmu")] -position = Vector2(2029, 236) +position = Vector2(2017, 236) [node name="Table3" parent="." unique_id=569701756 instance=ExtResource("35_r1bmu")] position = Vector2(3430, 217) @@ -518,6 +466,7 @@ scale = Vector2(0.3, 0.3) texture = ExtResource("44_6miv3") [node name="MaskList" parent="." unique_id=437192154 instance=ExtResource("25_6llfj")] +visible = false position = Vector2(409, 523) rotation = 0.1675516 scale = Vector2(0.99999994, 0.99999994) @@ -539,6 +488,7 @@ scale = Vector2(0.5, 0.5) texture = ExtResource("47_6miv3") [node name="GuestList" parent="." unique_id=2089675317 instance=ExtResource("25_6llfj")] +visible = false position = Vector2(-409, 523) rotation = -0.16732943 @@ -578,32 +528,16 @@ texture = ExtResource("39_62f45") libraries/ = SubResource("AnimationLibrary_6g32y") autoplay = &"idle" -[node name="Arrow001" type="Sprite2D" parent="." unique_id=2051768141] +[node name="ArrowRight" parent="." unique_id=774581185 instance=ExtResource("52_ftp6y")] position = Vector2(828, 7) -scale = Vector2(0.5, 0.5) -texture = ExtResource("52_yisfj") -[node name="AnimationPlayer" type="AnimationPlayer" parent="Arrow001" unique_id=23670381] -libraries/ = SubResource("AnimationLibrary_qjyke") -autoplay = &"idle" - -[node name="Arrow002" type="Sprite2D" parent="." unique_id=557480206] -position = Vector2(1631.9999, 4.9999995) +[node name="ArrowLeft" parent="." unique_id=1884209541 instance=ExtResource("52_ftp6y")] +position = Vector2(1810, -241) rotation = 3.1415927 -scale = Vector2(0.5, 0.5) -texture = ExtResource("52_yisfj") - -[node name="AnimationPlayer" type="AnimationPlayer" parent="Arrow002" unique_id=1862466503] -libraries/ = SubResource("AnimationLibrary_qjyke") -autoplay = &"idle" [connection signal="defeat_noise" from="GameManager" to="." method="_on_game_manager_defeat_noise"] [connection signal="ring_bell_noise" from="GameManager" to="." method="_on_game_manager_ring_bell_noise"] [connection signal="victory_noise" from="GameManager" to="." method="_on_game_manager_victory_noise"] -[connection signal="mouse_entered" from="Camera2D/PanRight" to="Camera2D" method="_on_pan_right_mouse_entered"] -[connection signal="mouse_exited" from="Camera2D/PanRight" to="Camera2D" method="_on_pan_right_mouse_exited"] -[connection signal="mouse_entered" from="Camera2D/PanLeft" to="Camera2D" method="_on_pan_left_mouse_entered"] -[connection signal="mouse_exited" from="Camera2D/PanLeft" to="Camera2D" method="_on_pan_left_mouse_exited"] [connection signal="seat_clicked" from="Table" to="GameManager" method="on_seat_clicked"] [connection signal="seat_clicked" from="Table2" to="GameManager" method="on_seat_clicked"] [connection signal="seat_clicked" from="Table3" to="GameManager" method="on_seat_clicked"] @@ -616,3 +550,5 @@ autoplay = &"idle" [connection signal="input_event" from="ReadyBell" to="GameManager" method="_on_ready_bell_input_event"] [connection signal="mouse_entered" from="ReadyBell" to="ReadyBell" method="_on_mouse_entered"] [connection signal="mouse_exited" from="ReadyBell" to="ReadyBell" method="_on_mouse_exited"] +[connection signal="on_clicked" from="ArrowRight" to="Camera2D" method="_on_arrow_right_on_clicked"] +[connection signal="on_clicked" from="ArrowLeft" to="Camera2D" method="_on_arrow_left_on_clicked"] diff --git a/scenes/managers/game_manager.gd b/scenes/managers/game_manager.gd index f5a6bb3..18c5194 100644 --- a/scenes/managers/game_manager.gd +++ b/scenes/managers/game_manager.gd @@ -138,12 +138,13 @@ func ending_tween_cb(): else: victory_noise.emit() - await get_tree().create_timer(5).timeout + await get_tree().create_timer(4).timeout var camera_tween = get_tree().create_tween() camera_tween.set_ease(Tween.EASE_IN_OUT) camera_tween.set_trans(Tween.TRANS_CUBIC) - camera_tween.tween_property(camera_2d, "position", Vector2.ZERO, 1.0) + camera_tween.tween_property(camera_2d, "position", Vector2.ZERO, 0.5) + await get_tree().create_timer(0.5).timeout # Progress levels current_game_state = GameState.READY @@ -166,7 +167,6 @@ func _ready() -> void: character.visible = false - func _on_ready_bell_input_event(viewport: Node, event: InputEvent, shape_idx: int) -> void: if event is InputEventMouseButton and event.is_pressed(): ring_bell_noise.emit() @@ -180,10 +180,12 @@ func on_ready_bell_pressed() -> void: for table in tables: table.initialize() + guest_list.visible = true if current_level == Levels.LVL1: current_chara_roster = [lvl1_guest_1, lvl1_guest_2] elif current_level == Levels.LVL2: current_chara_roster = [lvl2_guest_1, lvl2_guest_2] + mask_list.visible = true elif current_level == Levels.LVL3: current_chara_roster = [lvl3_guest_1, lvl3_guest_2, lvl3_guest_3] else: diff --git a/scenes/table/table.gd b/scenes/table/table.gd index f4506b0..4c61d2c 100644 --- a/scenes/table/table.gd +++ b/scenes/table/table.gd @@ -32,6 +32,7 @@ func initialize() -> void: func compute_score() -> float: if seat_1.guest == null and seat_2.guest == null and seat_2.guest == null: + print("No guests at table %s" % name) return 0.0 var score_guest1 = seat_1.guest.compute_score([seat_2.guest, seat_3.guest]) if seat_1.guest != null else 0.0 @@ -40,6 +41,7 @@ func compute_score() -> float: var table_score = score_guest1 + score_guest2 + score_guest3 + print(table_score) table.visible = false table_defeat.visible = table_score < 0 table_victory.visible = table_score >= 0 diff --git a/utils/clickable.gd b/utils/clickable.gd new file mode 100644 index 0000000..ed9c538 --- /dev/null +++ b/utils/clickable.gd @@ -0,0 +1,19 @@ +extends Area2D +class_name Clickable + + +signal on_clicked + + +func _on_mouse_entered() -> void: + Input.set_default_cursor_shape(Input.CursorShape.CURSOR_POINTING_HAND) + + +func _on_mouse_exited() -> void: + Input.set_default_cursor_shape(Input.CursorShape.CURSOR_ARROW) + + +func _on_input_event(viewport: Node, event: InputEvent, shape_idx: int) -> void: + if event is InputEventMouseButton and event.is_pressed(): + Input.set_default_cursor_shape(Input.CursorShape.CURSOR_ARROW) + on_clicked.emit() diff --git a/utils/clickable.gd.uid b/utils/clickable.gd.uid new file mode 100644 index 0000000..9e132d8 --- /dev/null +++ b/utils/clickable.gd.uid @@ -0,0 +1 @@ +uid://d3f721y4183yy