From cf90fe76fce58741b4ab119be268173b2f03a100 Mon Sep 17 00:00:00 2001 From: BiancaPierina Date: Tue, 8 Sep 2026 12:58:44 -0500 Subject: [PATCH 1/6] cat aseprite and animation - Cat walk animation - Cat wink animation - Aseprite of cat walk and cat wink --- .../characters/npcs/cat/cat.tscn | 2 +- .../cat/components/{cat.png => cat-idle.png} | 0 .../{cat.png.import => cat-idle.png.import} | 6 +- .../npcs/cat/components/cat-walk.png | 3 + .../npcs/cat/components/cat-walk.png.import | 40 +++++++ .../npcs/cat/components/cat-wink.png | 3 + .../npcs/cat/components/cat-wink.png.import | 40 +++++++ .../characters/npcs/cat/components/cat.tres | 112 +++++++++++++++++- scenes/world_map/components/cat.aseprite | 4 +- 9 files changed, 203 insertions(+), 7 deletions(-) rename scenes/game_elements/characters/npcs/cat/components/{cat.png => cat-idle.png} (100%) rename scenes/game_elements/characters/npcs/cat/components/{cat.png.import => cat-idle.png.import} (80%) create mode 100644 scenes/game_elements/characters/npcs/cat/components/cat-walk.png create mode 100644 scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import create mode 100644 scenes/game_elements/characters/npcs/cat/components/cat-wink.png create mode 100644 scenes/game_elements/characters/npcs/cat/components/cat-wink.png.import diff --git a/scenes/game_elements/characters/npcs/cat/cat.tscn b/scenes/game_elements/characters/npcs/cat/cat.tscn index 0d0bb3beda..142d7c2fa6 100644 --- a/scenes/game_elements/characters/npcs/cat/cat.tscn +++ b/scenes/game_elements/characters/npcs/cat/cat.tscn @@ -26,7 +26,7 @@ motion_mode = 1 unique_name_in_owner = true position = Vector2(0, -30) sprite_frames = ExtResource("3_qosq0") -animation = &"idle" +animation = &"wink" autoplay = "idle" [node name="RandomFrameSpriteBehavior" type="Node2D" parent="AnimatedSprite2D" unique_id=1044391226 node_paths=PackedStringArray("sprite")] diff --git a/scenes/game_elements/characters/npcs/cat/components/cat.png b/scenes/game_elements/characters/npcs/cat/components/cat-idle.png similarity index 100% rename from scenes/game_elements/characters/npcs/cat/components/cat.png rename to scenes/game_elements/characters/npcs/cat/components/cat-idle.png diff --git a/scenes/game_elements/characters/npcs/cat/components/cat.png.import b/scenes/game_elements/characters/npcs/cat/components/cat-idle.png.import similarity index 80% rename from scenes/game_elements/characters/npcs/cat/components/cat.png.import rename to scenes/game_elements/characters/npcs/cat/components/cat-idle.png.import index e43b0e2170..9560391a5a 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat.png.import +++ b/scenes/game_elements/characters/npcs/cat/components/cat-idle.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://1h7luv2b3rwl" -path="res://.godot/imported/cat.png-d91a2ea0fea88ffadcee4c4a4dc5f224.ctex" +path="res://.godot/imported/cat-idle.png-00bba386d154e3f9a187d21691b3c8d4.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://scenes/game_elements/characters/npcs/cat/components/cat.png" -dest_files=["res://.godot/imported/cat.png-d91a2ea0fea88ffadcee4c4a4dc5f224.ctex"] +source_file="res://scenes/game_elements/characters/npcs/cat/components/cat-idle.png" +dest_files=["res://.godot/imported/cat-idle.png-00bba386d154e3f9a187d21691b3c8d4.ctex"] [params] diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-walk.png b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png new file mode 100644 index 0000000000..95551665cc --- /dev/null +++ b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1510d0a0ec19e533fd71fe400f47fd7c0f3c1e2bcb1330f6d165b2c976ed8bae +size 8822 diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import new file mode 100644 index 0000000000..69b21f01dc --- /dev/null +++ b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://comu2au0igv4w" +path="res://.godot/imported/cat-walk.png-101ff145a5d2986651fa1755fc537f8e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/game_elements/characters/npcs/cat/components/cat-walk.png" +dest_files=["res://.godot/imported/cat-walk.png-101ff145a5d2986651fa1755fc537f8e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/scenes/game_elements/characters/npcs/cat/components/cat-wink.png b/scenes/game_elements/characters/npcs/cat/components/cat-wink.png new file mode 100644 index 0000000000..8d6642e8dd --- /dev/null +++ b/scenes/game_elements/characters/npcs/cat/components/cat-wink.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56429d44581999209aa44901811b7c0406c3cd84cf77ebef9721bbbf694715a1 +size 3280 diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-wink.png.import b/scenes/game_elements/characters/npcs/cat/components/cat-wink.png.import new file mode 100644 index 0000000000..30f421f286 --- /dev/null +++ b/scenes/game_elements/characters/npcs/cat/components/cat-wink.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bd0egsd5r8ley" +path="res://.godot/imported/cat-wink.png-b4fce9373a3cf7768418ea19283c298a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/game_elements/characters/npcs/cat/components/cat-wink.png" +dest_files=["res://.godot/imported/cat-wink.png-b4fce9373a3cf7768418ea19283c298a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/scenes/game_elements/characters/npcs/cat/components/cat.tres b/scenes/game_elements/characters/npcs/cat/components/cat.tres index 63a80723b4..0509454e1c 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat.tres +++ b/scenes/game_elements/characters/npcs/cat/components/cat.tres @@ -1,6 +1,8 @@ [gd_resource type="SpriteFrames" format=3 uid="uid://caou2u7vffhei"] -[ext_resource type="Texture2D" uid="uid://1h7luv2b3rwl" path="res://scenes/game_elements/characters/npcs/cat/components/cat.png" id="1_qomc8"] +[ext_resource type="Texture2D" uid="uid://1h7luv2b3rwl" path="res://scenes/game_elements/characters/npcs/cat/components/cat-idle.png" id="1_qomc8"] +[ext_resource type="Texture2D" uid="uid://comu2au0igv4w" path="res://scenes/game_elements/characters/npcs/cat/components/cat-walk.png" id="2_jyuim"] +[ext_resource type="Texture2D" uid="uid://bd0egsd5r8ley" path="res://scenes/game_elements/characters/npcs/cat/components/cat-wink.png" id="3_166jg"] [sub_resource type="AtlasTexture" id="AtlasTexture_qomc8"] atlas = ExtResource("1_qomc8") @@ -22,6 +24,62 @@ region = Rect2(0, 192, 192, 192) atlas = ExtResource("1_qomc8") region = Rect2(192, 192, 192, 192) +[sub_resource type="AtlasTexture" id="AtlasTexture_msvi7"] +atlas = ExtResource("2_jyuim") +region = Rect2(0, 0, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xw0ji"] +atlas = ExtResource("2_jyuim") +region = Rect2(150, 0, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_t5mip"] +atlas = ExtResource("2_jyuim") +region = Rect2(300, 0, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_x13vw"] +atlas = ExtResource("2_jyuim") +region = Rect2(450, 0, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_136u0"] +atlas = ExtResource("2_jyuim") +region = Rect2(600, 0, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_832k4"] +atlas = ExtResource("2_jyuim") +region = Rect2(0, 95, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_eccmn"] +atlas = ExtResource("2_jyuim") +region = Rect2(150, 95, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_digwo"] +atlas = ExtResource("2_jyuim") +region = Rect2(300, 95, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_80j4i"] +atlas = ExtResource("2_jyuim") +region = Rect2(450, 95, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_40lpo"] +atlas = ExtResource("2_jyuim") +region = Rect2(600, 95, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_k5rrb"] +atlas = ExtResource("3_166jg") +region = Rect2(0, 0, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6a238"] +atlas = ExtResource("3_166jg") +region = Rect2(150, 0, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0em1p"] +atlas = ExtResource("3_166jg") +region = Rect2(300, 0, 150, 95) + +[sub_resource type="AtlasTexture" id="AtlasTexture_njb4j"] +atlas = ExtResource("3_166jg") +region = Rect2(450, 0, 150, 95) + [resource] animations = [{ "frames": [{ @@ -43,4 +101,56 @@ animations = [{ "loop": 1, "name": &"idle", "speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_msvi7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xw0ji") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_t5mip") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_x13vw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_136u0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_832k4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_eccmn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_digwo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_80j4i") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_40lpo") +}], +"loop": 1, +"name": &"walk", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.5, +"texture": SubResource("AtlasTexture_k5rrb") +}, { +"duration": 1.5, +"texture": SubResource("AtlasTexture_6a238") +}, { +"duration": 2.0, +"texture": SubResource("AtlasTexture_0em1p") +}, { +"duration": 1.5, +"texture": SubResource("AtlasTexture_njb4j") +}], +"loop": 1, +"name": &"wink", +"speed": 5.0 }] diff --git a/scenes/world_map/components/cat.aseprite b/scenes/world_map/components/cat.aseprite index 1cdb28f66c..6c60920c74 100644 --- a/scenes/world_map/components/cat.aseprite +++ b/scenes/world_map/components/cat.aseprite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:be35934c5ca06ef32d94cb6c07048ffa4c453876e39a8ef0c86fdcdd103596d6 -size 3233 +oid sha256:0ae760a3fbdcea04def6ad4a845ac15446ea0ad53b623268d6a0ecf73e69d461 +size 16913 From a54a138f3eea2350f2be6d52fe1f3ada36f3321c Mon Sep 17 00:00:00 2001 From: BiancaPierina Date: Wed, 9 Sep 2026 12:25:47 -0500 Subject: [PATCH 2/6] Correction -Correction of the walking cat image size -Correction of the winking cat image size --- .../npcs/cat/components/cat-walk.png | 4 +- .../npcs/cat/components/cat-walk.png.import | 2 +- .../npcs/cat/components/cat-wink.png | 4 +- .../npcs/cat/components/cat-wink.png.import | 2 +- .../characters/npcs/cat/components/cat.tres | 40 +++++++++---------- scenes/world_map/components/cat.aseprite | 2 +- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-walk.png b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png index 95551665cc..34d8898f59 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat-walk.png +++ b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1510d0a0ec19e533fd71fe400f47fd7c0f3c1e2bcb1330f6d165b2c976ed8bae -size 8822 +oid sha256:044c5c9af3a20e0069d052348b5bf0011540e9b087dd580e2ee5f94325200563 +size 9890 diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import index 69b21f01dc..1103615afb 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import +++ b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://comu2au0igv4w" +uid="uid://dii5xjc0uejpr" path="res://.godot/imported/cat-walk.png-101ff145a5d2986651fa1755fc537f8e.ctex" metadata={ "vram_texture": false diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-wink.png b/scenes/game_elements/characters/npcs/cat/components/cat-wink.png index 8d6642e8dd..e008482efb 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat-wink.png +++ b/scenes/game_elements/characters/npcs/cat/components/cat-wink.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:56429d44581999209aa44901811b7c0406c3cd84cf77ebef9721bbbf694715a1 -size 3280 +oid sha256:02e58f4514120fa419f737e7d3e211e042f42a460b0a2bb7f197cb1dd8910ce5 +size 3667 diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-wink.png.import b/scenes/game_elements/characters/npcs/cat/components/cat-wink.png.import index 30f421f286..4c905ccab3 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat-wink.png.import +++ b/scenes/game_elements/characters/npcs/cat/components/cat-wink.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bd0egsd5r8ley" +uid="uid://k63c6uhd43tf" path="res://.godot/imported/cat-wink.png-b4fce9373a3cf7768418ea19283c298a.ctex" metadata={ "vram_texture": false diff --git a/scenes/game_elements/characters/npcs/cat/components/cat.tres b/scenes/game_elements/characters/npcs/cat/components/cat.tres index 0509454e1c..68e3315391 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat.tres +++ b/scenes/game_elements/characters/npcs/cat/components/cat.tres @@ -1,8 +1,8 @@ [gd_resource type="SpriteFrames" format=3 uid="uid://caou2u7vffhei"] [ext_resource type="Texture2D" uid="uid://1h7luv2b3rwl" path="res://scenes/game_elements/characters/npcs/cat/components/cat-idle.png" id="1_qomc8"] -[ext_resource type="Texture2D" uid="uid://comu2au0igv4w" path="res://scenes/game_elements/characters/npcs/cat/components/cat-walk.png" id="2_jyuim"] -[ext_resource type="Texture2D" uid="uid://bd0egsd5r8ley" path="res://scenes/game_elements/characters/npcs/cat/components/cat-wink.png" id="3_166jg"] +[ext_resource type="Texture2D" uid="uid://dii5xjc0uejpr" path="res://scenes/game_elements/characters/npcs/cat/components/cat-walk.png" id="2_jyuim"] +[ext_resource type="Texture2D" uid="uid://k63c6uhd43tf" path="res://scenes/game_elements/characters/npcs/cat/components/cat-wink.png" id="3_166jg"] [sub_resource type="AtlasTexture" id="AtlasTexture_qomc8"] atlas = ExtResource("1_qomc8") @@ -26,59 +26,59 @@ region = Rect2(192, 192, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_msvi7"] atlas = ExtResource("2_jyuim") -region = Rect2(0, 0, 150, 95) +region = Rect2(0, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_xw0ji"] atlas = ExtResource("2_jyuim") -region = Rect2(150, 0, 150, 95) +region = Rect2(192, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_t5mip"] atlas = ExtResource("2_jyuim") -region = Rect2(300, 0, 150, 95) +region = Rect2(384, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_x13vw"] atlas = ExtResource("2_jyuim") -region = Rect2(450, 0, 150, 95) +region = Rect2(576, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_136u0"] atlas = ExtResource("2_jyuim") -region = Rect2(600, 0, 150, 95) +region = Rect2(768, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_832k4"] atlas = ExtResource("2_jyuim") -region = Rect2(0, 95, 150, 95) +region = Rect2(0, 192, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_eccmn"] atlas = ExtResource("2_jyuim") -region = Rect2(150, 95, 150, 95) +region = Rect2(192, 192, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_digwo"] atlas = ExtResource("2_jyuim") -region = Rect2(300, 95, 150, 95) +region = Rect2(384, 192, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_80j4i"] atlas = ExtResource("2_jyuim") -region = Rect2(450, 95, 150, 95) +region = Rect2(576, 192, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_40lpo"] atlas = ExtResource("2_jyuim") -region = Rect2(600, 95, 150, 95) +region = Rect2(768, 192, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_k5rrb"] atlas = ExtResource("3_166jg") -region = Rect2(0, 0, 150, 95) +region = Rect2(0, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_6a238"] atlas = ExtResource("3_166jg") -region = Rect2(150, 0, 150, 95) +region = Rect2(192, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_0em1p"] atlas = ExtResource("3_166jg") -region = Rect2(300, 0, 150, 95) +region = Rect2(384, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_njb4j"] atlas = ExtResource("3_166jg") -region = Rect2(450, 0, 150, 95) +region = Rect2(576, 0, 192, 192) [resource] animations = [{ @@ -138,16 +138,16 @@ animations = [{ "speed": 5.0 }, { "frames": [{ -"duration": 1.5, +"duration": 1.0, "texture": SubResource("AtlasTexture_k5rrb") }, { -"duration": 1.5, +"duration": 1.0, "texture": SubResource("AtlasTexture_6a238") }, { -"duration": 2.0, +"duration": 1.0, "texture": SubResource("AtlasTexture_0em1p") }, { -"duration": 1.5, +"duration": 1.0, "texture": SubResource("AtlasTexture_njb4j") }], "loop": 1, diff --git a/scenes/world_map/components/cat.aseprite b/scenes/world_map/components/cat.aseprite index 6c60920c74..f5a63f98e5 100644 --- a/scenes/world_map/components/cat.aseprite +++ b/scenes/world_map/components/cat.aseprite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0ae760a3fbdcea04def6ad4a845ac15446ea0ad53b623268d6a0ecf73e69d461 +oid sha256:f74dbda764d2eea7bf980131569357fbf90556c87009a527c2d7990a5ee29bad size 16913 From f28d22c1a63e0dfea9a58d964910bc1dec844766 Mon Sep 17 00:00:00 2001 From: BiancaPierina Date: Fri, 11 Sep 2026 08:31:36 -0500 Subject: [PATCH 3/6] Cat walk correction and idle animation - Added shadow ellipse to the cat walk frames - Flipped the cat walk assets to face right - Added blinking and head movement to the cat idle animation --- .../characters/npcs/cat/cat.tscn | 2 +- .../npcs/cat/components/cat-idle.png | 4 +- .../npcs/cat/components/cat-idle.png.import | 2 +- .../npcs/cat/components/cat-walk.png | 4 +- .../npcs/cat/components/cat-walk.png.import | 2 +- .../npcs/cat/components/cat-wink.png | 3 - .../characters/npcs/cat/components/cat.tres | 135 +++++++++--------- scenes/world_map/components/cat-idle.png | 3 + .../components/cat-idle.png.import} | 8 +- scenes/world_map/components/cat-walk.png | 3 + .../world_map/components/cat-walk.png.import | 40 ++++++ scenes/world_map/components/cat.aseprite | 4 +- 12 files changed, 127 insertions(+), 83 deletions(-) delete mode 100644 scenes/game_elements/characters/npcs/cat/components/cat-wink.png create mode 100644 scenes/world_map/components/cat-idle.png rename scenes/{game_elements/characters/npcs/cat/components/cat-wink.png.import => world_map/components/cat-idle.png.import} (71%) create mode 100644 scenes/world_map/components/cat-walk.png create mode 100644 scenes/world_map/components/cat-walk.png.import diff --git a/scenes/game_elements/characters/npcs/cat/cat.tscn b/scenes/game_elements/characters/npcs/cat/cat.tscn index 142d7c2fa6..0d0bb3beda 100644 --- a/scenes/game_elements/characters/npcs/cat/cat.tscn +++ b/scenes/game_elements/characters/npcs/cat/cat.tscn @@ -26,7 +26,7 @@ motion_mode = 1 unique_name_in_owner = true position = Vector2(0, -30) sprite_frames = ExtResource("3_qosq0") -animation = &"wink" +animation = &"idle" autoplay = "idle" [node name="RandomFrameSpriteBehavior" type="Node2D" parent="AnimatedSprite2D" unique_id=1044391226 node_paths=PackedStringArray("sprite")] diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-idle.png b/scenes/game_elements/characters/npcs/cat/components/cat-idle.png index 30c660787e..6d03e1fd0e 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat-idle.png +++ b/scenes/game_elements/characters/npcs/cat/components/cat-idle.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9d7a75c5479b3582ed8a3518955c605431719cff649e46be39e01a9d8689d390 -size 11472 +oid sha256:5fc42c1877d49b5a801dfce933d4705118cfd6e076f03e63cef8a817e3abd903 +size 7332 diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-idle.png.import b/scenes/game_elements/characters/npcs/cat/components/cat-idle.png.import index 9560391a5a..f1df99a409 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat-idle.png.import +++ b/scenes/game_elements/characters/npcs/cat/components/cat-idle.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://1h7luv2b3rwl" +uid="uid://cr5n8c0fgllsp" path="res://.godot/imported/cat-idle.png-00bba386d154e3f9a187d21691b3c8d4.ctex" metadata={ "vram_texture": false diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-walk.png b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png index 34d8898f59..db583a3b5c 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat-walk.png +++ b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:044c5c9af3a20e0069d052348b5bf0011540e9b087dd580e2ee5f94325200563 -size 9890 +oid sha256:3f15a9626afabdd99c6345405dc40441a07aafb13b51cdad8840068e244d19f0 +size 10589 diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import index 1103615afb..a135f07f4d 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import +++ b/scenes/game_elements/characters/npcs/cat/components/cat-walk.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dii5xjc0uejpr" +uid="uid://b5tal2jyf0sob" path="res://.godot/imported/cat-walk.png-101ff145a5d2986651fa1755fc537f8e.ctex" metadata={ "vram_texture": false diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-wink.png b/scenes/game_elements/characters/npcs/cat/components/cat-wink.png deleted file mode 100644 index e008482efb..0000000000 --- a/scenes/game_elements/characters/npcs/cat/components/cat-wink.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:02e58f4514120fa419f737e7d3e211e042f42a460b0a2bb7f197cb1dd8910ce5 -size 3667 diff --git a/scenes/game_elements/characters/npcs/cat/components/cat.tres b/scenes/game_elements/characters/npcs/cat/components/cat.tres index 68e3315391..db37b01235 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat.tres +++ b/scenes/game_elements/characters/npcs/cat/components/cat.tres @@ -1,108 +1,97 @@ [gd_resource type="SpriteFrames" format=3 uid="uid://caou2u7vffhei"] -[ext_resource type="Texture2D" uid="uid://1h7luv2b3rwl" path="res://scenes/game_elements/characters/npcs/cat/components/cat-idle.png" id="1_qomc8"] -[ext_resource type="Texture2D" uid="uid://dii5xjc0uejpr" path="res://scenes/game_elements/characters/npcs/cat/components/cat-walk.png" id="2_jyuim"] -[ext_resource type="Texture2D" uid="uid://k63c6uhd43tf" path="res://scenes/game_elements/characters/npcs/cat/components/cat-wink.png" id="3_166jg"] - -[sub_resource type="AtlasTexture" id="AtlasTexture_qomc8"] -atlas = ExtResource("1_qomc8") -region = Rect2(0, 0, 192, 192) - -[sub_resource type="AtlasTexture" id="AtlasTexture_jyuim"] -atlas = ExtResource("1_qomc8") -region = Rect2(192, 0, 192, 192) - -[sub_resource type="AtlasTexture" id="AtlasTexture_166jg"] -atlas = ExtResource("1_qomc8") -region = Rect2(384, 0, 192, 192) +[ext_resource type="Texture2D" uid="uid://dywvbod2hs33q" path="res://scenes/world_map/components/cat-idle.png" id="1_jyuim"] +[ext_resource type="Texture2D" uid="uid://di4qwtf4ioswt" path="res://scenes/world_map/components/cat-walk.png" id="2_166jg"] [sub_resource type="AtlasTexture" id="AtlasTexture_tenf8"] -atlas = ExtResource("1_qomc8") -region = Rect2(0, 192, 192, 192) +atlas = ExtResource("1_jyuim") +region = Rect2(0, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_lo76y"] -atlas = ExtResource("1_qomc8") -region = Rect2(192, 192, 192, 192) +atlas = ExtResource("1_jyuim") +region = Rect2(192, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_msvi7"] -atlas = ExtResource("2_jyuim") -region = Rect2(0, 0, 192, 192) +atlas = ExtResource("1_jyuim") +region = Rect2(384, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_xw0ji"] -atlas = ExtResource("2_jyuim") -region = Rect2(192, 0, 192, 192) +atlas = ExtResource("1_jyuim") +region = Rect2(576, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_t5mip"] -atlas = ExtResource("2_jyuim") -region = Rect2(384, 0, 192, 192) +atlas = ExtResource("1_jyuim") +region = Rect2(768, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_x13vw"] -atlas = ExtResource("2_jyuim") -region = Rect2(576, 0, 192, 192) +atlas = ExtResource("1_jyuim") +region = Rect2(0, 192, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_136u0"] -atlas = ExtResource("2_jyuim") -region = Rect2(768, 0, 192, 192) +atlas = ExtResource("1_jyuim") +region = Rect2(192, 192, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_832k4"] -atlas = ExtResource("2_jyuim") -region = Rect2(0, 192, 192, 192) +atlas = ExtResource("1_jyuim") +region = Rect2(384, 192, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_eccmn"] -atlas = ExtResource("2_jyuim") -region = Rect2(192, 192, 192, 192) +atlas = ExtResource("1_jyuim") +region = Rect2(576, 192, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_digwo"] -atlas = ExtResource("2_jyuim") -region = Rect2(384, 192, 192, 192) +atlas = ExtResource("1_jyuim") +region = Rect2(768, 192, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_80j4i"] -atlas = ExtResource("2_jyuim") -region = Rect2(576, 192, 192, 192) +atlas = ExtResource("2_166jg") +region = Rect2(0, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_40lpo"] -atlas = ExtResource("2_jyuim") -region = Rect2(768, 192, 192, 192) +atlas = ExtResource("2_166jg") +region = Rect2(192, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_k5rrb"] -atlas = ExtResource("3_166jg") -region = Rect2(0, 0, 192, 192) +atlas = ExtResource("2_166jg") +region = Rect2(384, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_6a238"] -atlas = ExtResource("3_166jg") -region = Rect2(192, 0, 192, 192) +atlas = ExtResource("2_166jg") +region = Rect2(576, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_0em1p"] -atlas = ExtResource("3_166jg") -region = Rect2(384, 0, 192, 192) +atlas = ExtResource("2_166jg") +region = Rect2(768, 0, 192, 192) [sub_resource type="AtlasTexture" id="AtlasTexture_njb4j"] -atlas = ExtResource("3_166jg") -region = Rect2(576, 0, 192, 192) +atlas = ExtResource("2_166jg") +region = Rect2(0, 192, 192, 192) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4g5ks"] +atlas = ExtResource("2_166jg") +region = Rect2(192, 192, 192, 192) + +[sub_resource type="AtlasTexture" id="AtlasTexture_oky0l"] +atlas = ExtResource("2_166jg") +region = Rect2(384, 192, 192, 192) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vji4d"] +atlas = ExtResource("2_166jg") +region = Rect2(576, 192, 192, 192) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tt2pf"] +atlas = ExtResource("2_166jg") +region = Rect2(768, 192, 192, 192) [resource] animations = [{ "frames": [{ "duration": 8.0, -"texture": SubResource("AtlasTexture_qomc8") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_jyuim") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_166jg") -}, { -"duration": 1.0, "texture": SubResource("AtlasTexture_tenf8") }, { "duration": 1.0, "texture": SubResource("AtlasTexture_lo76y") -}], -"loop": 1, -"name": &"idle", -"speed": 10.0 }, { -"frames": [{ "duration": 1.0, "texture": SubResource("AtlasTexture_msvi7") }, { @@ -126,18 +115,18 @@ animations = [{ }, { "duration": 1.0, "texture": SubResource("AtlasTexture_digwo") +}], +"loop": 1, +"name": &"idle", +"speed": 10.0 }, { +"frames": [{ "duration": 1.0, "texture": SubResource("AtlasTexture_80j4i") }, { "duration": 1.0, "texture": SubResource("AtlasTexture_40lpo") -}], -"loop": 1, -"name": &"walk", -"speed": 5.0 }, { -"frames": [{ "duration": 1.0, "texture": SubResource("AtlasTexture_k5rrb") }, { @@ -149,8 +138,20 @@ animations = [{ }, { "duration": 1.0, "texture": SubResource("AtlasTexture_njb4j") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4g5ks") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_oky0l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vji4d") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tt2pf") }], "loop": 1, -"name": &"wink", +"name": &"walk", "speed": 5.0 }] diff --git a/scenes/world_map/components/cat-idle.png b/scenes/world_map/components/cat-idle.png new file mode 100644 index 0000000000..6d03e1fd0e --- /dev/null +++ b/scenes/world_map/components/cat-idle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fc42c1877d49b5a801dfce933d4705118cfd6e076f03e63cef8a817e3abd903 +size 7332 diff --git a/scenes/game_elements/characters/npcs/cat/components/cat-wink.png.import b/scenes/world_map/components/cat-idle.png.import similarity index 71% rename from scenes/game_elements/characters/npcs/cat/components/cat-wink.png.import rename to scenes/world_map/components/cat-idle.png.import index 4c905ccab3..5808bd5a48 100644 --- a/scenes/game_elements/characters/npcs/cat/components/cat-wink.png.import +++ b/scenes/world_map/components/cat-idle.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://k63c6uhd43tf" -path="res://.godot/imported/cat-wink.png-b4fce9373a3cf7768418ea19283c298a.ctex" +uid="uid://dywvbod2hs33q" +path="res://.godot/imported/cat-idle.png-a525773d1b293488bb10ca8884ae10b7.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://scenes/game_elements/characters/npcs/cat/components/cat-wink.png" -dest_files=["res://.godot/imported/cat-wink.png-b4fce9373a3cf7768418ea19283c298a.ctex"] +source_file="res://scenes/world_map/components/cat-idle.png" +dest_files=["res://.godot/imported/cat-idle.png-a525773d1b293488bb10ca8884ae10b7.ctex"] [params] diff --git a/scenes/world_map/components/cat-walk.png b/scenes/world_map/components/cat-walk.png new file mode 100644 index 0000000000..db583a3b5c --- /dev/null +++ b/scenes/world_map/components/cat-walk.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f15a9626afabdd99c6345405dc40441a07aafb13b51cdad8840068e244d19f0 +size 10589 diff --git a/scenes/world_map/components/cat-walk.png.import b/scenes/world_map/components/cat-walk.png.import new file mode 100644 index 0000000000..63be014302 --- /dev/null +++ b/scenes/world_map/components/cat-walk.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://di4qwtf4ioswt" +path="res://.godot/imported/cat-walk.png-afe9a5edcff257564359da56bbd141c3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/world_map/components/cat-walk.png" +dest_files=["res://.godot/imported/cat-walk.png-afe9a5edcff257564359da56bbd141c3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/scenes/world_map/components/cat.aseprite b/scenes/world_map/components/cat.aseprite index f5a63f98e5..a00f428ee7 100644 --- a/scenes/world_map/components/cat.aseprite +++ b/scenes/world_map/components/cat.aseprite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f74dbda764d2eea7bf980131569357fbf90556c87009a527c2d7990a5ee29bad -size 16913 +oid sha256:bd9529f225b1bb01fd4bf9c457e6019dd8e062c69e4f521ce7869ed0e9f8762a +size 14336 From a8594706cbdefc1fffa204de00577771bdf6bf57 Mon Sep 17 00:00:00 2001 From: BiancaPierina Date: Wed, 16 Sep 2026 12:15:36 -0500 Subject: [PATCH 4/6] Make hint signs optional in sequence puzzles - Remove the mandatory hint_sign check from _get_configuration_warnings in sequence_puzzle_step.gd. - Add is_solved state property (@export var is_solved: bool = false) directly to the sequence puzzle step to track solved states independently of hint signs. - Fixes the limitation where scenes with environmental clues required dummy hint signs. --- scenes/game_logic/sequence_puzzle.gd | 19 +++++++++++++------ scenes/game_logic/sequence_puzzle_step.gd | 5 ++--- .../2_tallerjuego/minijuego2.tscn | 13 +++++++------ .../NO_EDIT_sequence_puzzle.tscn | 3 +-- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/scenes/game_logic/sequence_puzzle.gd b/scenes/game_logic/sequence_puzzle.gd index bd4e62b157..6c0eda9981 100644 --- a/scenes/game_logic/sequence_puzzle.gd +++ b/scenes/game_logic/sequence_puzzle.gd @@ -57,7 +57,9 @@ func _ready() -> void: _find_steps(self) for step: SequencePuzzleStep in steps: - step.hint_sign.demonstrate_sequence.connect(_on_demonstrate_sequence.bind(step)) + var hint_sign := step.get("hint_sign") as SequencePuzzleHintSign + if hint_sign: + hint_sign.demonstrate_sequence.connect(_on_demonstrate_sequence.bind(step)) _update_current_step() @@ -80,7 +82,7 @@ func _update_current_step() -> void: var previous_step := _current_step for i in range(_current_step, steps.size()): # We find the next fire that is not solved, and that's the _current_step - if steps[i].hint_sign.is_solved: + if steps[i].is_solved: _current_step = i + 1 _position = 0 else: @@ -90,7 +92,8 @@ func _update_current_step() -> void: progress_changed.emit() if interactive_hints and _current_step < steps.size(): - steps[_current_step].hint_sign.interactive_hint = true + if steps[_current_step].hint_sign: + steps[_current_step].hint_sign.interactive_hint = true func _debug(fmt: String, args: Array = []) -> void: @@ -123,7 +126,9 @@ func _on_kicked(object: SequencePuzzleObject) -> void: return _debug("Finished sequence") - step.hint_sign.set_solved() + step.is_solved = true + if step.hint_sign: + step.hint_sign.set_solved() # Emit step_solved signal to allow level designers to react to individual step completion step_solved.emit(_current_step) @@ -145,7 +150,7 @@ func get_progress() -> int: func set_progress(step: int) -> void: for i in range(steps.size()): if i <= step: - steps[i].hint_sign.is_solved = true + steps[i].is_solved = true _update_current_step() @@ -157,4 +162,6 @@ func is_solved() -> bool: func _on_demonstrate_sequence(step: SequencePuzzleStep) -> void: for object in step.sequence: await object.play() - step.hint_sign.demonstration_finished() + + if step.hint_sign: + step.hint_sign.demonstration_finished() diff --git a/scenes/game_logic/sequence_puzzle_step.gd b/scenes/game_logic/sequence_puzzle_step.gd index f7b4c9ce61..97aa67fa7e 100644 --- a/scenes/game_logic/sequence_puzzle_step.gd +++ b/scenes/game_logic/sequence_puzzle_step.gd @@ -16,6 +16,8 @@ extends Node2D hint_sign = new_value update_configuration_warnings() +## Wheter this puzzle step has been solved. +@export var is_solved: bool = false func _get_configuration_warnings() -> PackedStringArray: var warnings: PackedStringArray @@ -25,7 +27,4 @@ func _get_configuration_warnings() -> PackedStringArray: if sequence.find(null) != -1: warnings.append("Sequence contains unset elements") - if not hint_sign: - warnings.append("Hint Sign not set") - return warnings diff --git a/scenes/quests/story_quests/after_the_tremor/2_sequence_puzzle/2_tallerjuego/minijuego2.tscn b/scenes/quests/story_quests/after_the_tremor/2_sequence_puzzle/2_tallerjuego/minijuego2.tscn index b3640a7045..03a4532a76 100644 --- a/scenes/quests/story_quests/after_the_tremor/2_sequence_puzzle/2_tallerjuego/minijuego2.tscn +++ b/scenes/quests/story_quests/after_the_tremor/2_sequence_puzzle/2_tallerjuego/minijuego2.tscn @@ -73,10 +73,10 @@ tile_set = ExtResource("1_8drhf") [node name="TextureRect" type="ColorRect" parent="." unique_id=893972823] z_index = 4 material = SubResource("ShaderMaterial_famss") -offset_left = -2158.0 -offset_top = -1612.0 -offset_right = 3024.0 -offset_bottom = 1729.0 +offset_left = -2244.0 +offset_top = -1596.0 +offset_right = 2938.0 +offset_bottom = 1745.0 [node name="Cinematic" type="Node2D" parent="." unique_id=1491722087] script = ExtResource("3_a1j0i") @@ -125,6 +125,7 @@ shape = SubResource("CapsuleShape2D_p26tb") [node name="ScreenOverlay" type="CanvasLayer" parent="." unique_id=1029527750] [node name="HUD" parent="." unique_id=1954513484 instance=ExtResource("10_8cyi3")] +visible = false [node name="CollectibleItem" parent="." unique_id=1474014550 instance=ExtResource("11_gek8f")] modulate = Color(1, 1, 1, 0) @@ -136,6 +137,7 @@ next_scene = "uid://iywmch2pilxk" [node name="SequencePuzzle" type="Node2D" parent="." unique_id=489150957] script = ExtResource("14_0n12u") +debug = true metadata/_custom_type_script = "uid://c68oh8dtr21ti" [node name="Objects" type="Node2D" parent="SequencePuzzle" unique_id=1640987615] @@ -164,10 +166,9 @@ audio_stream = ExtResource("17_2yj5h") [node name="Steps" type="Node2D" parent="SequencePuzzle" unique_id=1475626406] -[node name="SequencePuzzleStep1" type="Node2D" parent="SequencePuzzle/Steps" unique_id=334204405 node_paths=PackedStringArray("sequence", "hint_sign")] +[node name="SequencePuzzleStep1" type="Node2D" parent="SequencePuzzle/Steps" unique_id=334204405 node_paths=PackedStringArray("sequence")] script = ExtResource("21_up7bl") sequence = [NodePath("../../Objects/Yellow"), NodePath("../../Objects/Blue"), NodePath("../../Objects/Pink"), NodePath("../../Objects/Green")] -hint_sign = NodePath("../../Signs/HintSign1") [node name="Signs" type="Node2D" parent="SequencePuzzle" unique_id=1977189161] y_sort_enabled = true diff --git a/scenes/quests/template_quests/NO_EDIT/3_NO_EDIT_sequence_puzzle/NO_EDIT_sequence_puzzle.tscn b/scenes/quests/template_quests/NO_EDIT/3_NO_EDIT_sequence_puzzle/NO_EDIT_sequence_puzzle.tscn index 8265d39ba1..7071dd138d 100644 --- a/scenes/quests/template_quests/NO_EDIT/3_NO_EDIT_sequence_puzzle/NO_EDIT_sequence_puzzle.tscn +++ b/scenes/quests/template_quests/NO_EDIT/3_NO_EDIT_sequence_puzzle/NO_EDIT_sequence_puzzle.tscn @@ -115,10 +115,9 @@ sprite_frames = ExtResource("12_8jbpq") [node name="Steps" type="Node2D" parent="OnTheGround/SequencePuzzle" unique_id=666035394] -[node name="SequencePuzzleStep1" type="Node2D" parent="OnTheGround/SequencePuzzle/Steps" unique_id=202668807 node_paths=PackedStringArray("sequence", "hint_sign")] +[node name="SequencePuzzleStep1" type="Node2D" parent="OnTheGround/SequencePuzzle/Steps" unique_id=202668807 node_paths=PackedStringArray("sequence")] script = ExtResource("13_ewc4v") sequence = [NodePath("../../Objects/Yellow"), NodePath("../../Objects/Green"), NodePath("../../Objects/Blue")] -hint_sign = NodePath("../../Signs/HintSign1") [node name="SequencePuzzleStep2" type="Node2D" parent="OnTheGround/SequencePuzzle/Steps" unique_id=17422018 node_paths=PackedStringArray("sequence", "hint_sign")] script = ExtResource("13_ewc4v") From b5867e6271e05238bfb40575894f3eddf8d20ad1 Mon Sep 17 00:00:00 2001 From: BiancaPierina Date: Wed, 16 Sep 2026 18:01:52 -0500 Subject: [PATCH 5/6] Revert "Make hint signs optional in sequence puzzles" This reverts commit a8594706cbdefc1fffa204de00577771bdf6bf57. --- scenes/game_logic/sequence_puzzle.gd | 19 ++++++------------- scenes/game_logic/sequence_puzzle_step.gd | 5 +++-- .../2_tallerjuego/minijuego2.tscn | 13 ++++++------- .../NO_EDIT_sequence_puzzle.tscn | 3 ++- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/scenes/game_logic/sequence_puzzle.gd b/scenes/game_logic/sequence_puzzle.gd index 6c0eda9981..bd4e62b157 100644 --- a/scenes/game_logic/sequence_puzzle.gd +++ b/scenes/game_logic/sequence_puzzle.gd @@ -57,9 +57,7 @@ func _ready() -> void: _find_steps(self) for step: SequencePuzzleStep in steps: - var hint_sign := step.get("hint_sign") as SequencePuzzleHintSign - if hint_sign: - hint_sign.demonstrate_sequence.connect(_on_demonstrate_sequence.bind(step)) + step.hint_sign.demonstrate_sequence.connect(_on_demonstrate_sequence.bind(step)) _update_current_step() @@ -82,7 +80,7 @@ func _update_current_step() -> void: var previous_step := _current_step for i in range(_current_step, steps.size()): # We find the next fire that is not solved, and that's the _current_step - if steps[i].is_solved: + if steps[i].hint_sign.is_solved: _current_step = i + 1 _position = 0 else: @@ -92,8 +90,7 @@ func _update_current_step() -> void: progress_changed.emit() if interactive_hints and _current_step < steps.size(): - if steps[_current_step].hint_sign: - steps[_current_step].hint_sign.interactive_hint = true + steps[_current_step].hint_sign.interactive_hint = true func _debug(fmt: String, args: Array = []) -> void: @@ -126,9 +123,7 @@ func _on_kicked(object: SequencePuzzleObject) -> void: return _debug("Finished sequence") - step.is_solved = true - if step.hint_sign: - step.hint_sign.set_solved() + step.hint_sign.set_solved() # Emit step_solved signal to allow level designers to react to individual step completion step_solved.emit(_current_step) @@ -150,7 +145,7 @@ func get_progress() -> int: func set_progress(step: int) -> void: for i in range(steps.size()): if i <= step: - steps[i].is_solved = true + steps[i].hint_sign.is_solved = true _update_current_step() @@ -162,6 +157,4 @@ func is_solved() -> bool: func _on_demonstrate_sequence(step: SequencePuzzleStep) -> void: for object in step.sequence: await object.play() - - if step.hint_sign: - step.hint_sign.demonstration_finished() + step.hint_sign.demonstration_finished() diff --git a/scenes/game_logic/sequence_puzzle_step.gd b/scenes/game_logic/sequence_puzzle_step.gd index 97aa67fa7e..f7b4c9ce61 100644 --- a/scenes/game_logic/sequence_puzzle_step.gd +++ b/scenes/game_logic/sequence_puzzle_step.gd @@ -16,8 +16,6 @@ extends Node2D hint_sign = new_value update_configuration_warnings() -## Wheter this puzzle step has been solved. -@export var is_solved: bool = false func _get_configuration_warnings() -> PackedStringArray: var warnings: PackedStringArray @@ -27,4 +25,7 @@ func _get_configuration_warnings() -> PackedStringArray: if sequence.find(null) != -1: warnings.append("Sequence contains unset elements") + if not hint_sign: + warnings.append("Hint Sign not set") + return warnings diff --git a/scenes/quests/story_quests/after_the_tremor/2_sequence_puzzle/2_tallerjuego/minijuego2.tscn b/scenes/quests/story_quests/after_the_tremor/2_sequence_puzzle/2_tallerjuego/minijuego2.tscn index 03a4532a76..b3640a7045 100644 --- a/scenes/quests/story_quests/after_the_tremor/2_sequence_puzzle/2_tallerjuego/minijuego2.tscn +++ b/scenes/quests/story_quests/after_the_tremor/2_sequence_puzzle/2_tallerjuego/minijuego2.tscn @@ -73,10 +73,10 @@ tile_set = ExtResource("1_8drhf") [node name="TextureRect" type="ColorRect" parent="." unique_id=893972823] z_index = 4 material = SubResource("ShaderMaterial_famss") -offset_left = -2244.0 -offset_top = -1596.0 -offset_right = 2938.0 -offset_bottom = 1745.0 +offset_left = -2158.0 +offset_top = -1612.0 +offset_right = 3024.0 +offset_bottom = 1729.0 [node name="Cinematic" type="Node2D" parent="." unique_id=1491722087] script = ExtResource("3_a1j0i") @@ -125,7 +125,6 @@ shape = SubResource("CapsuleShape2D_p26tb") [node name="ScreenOverlay" type="CanvasLayer" parent="." unique_id=1029527750] [node name="HUD" parent="." unique_id=1954513484 instance=ExtResource("10_8cyi3")] -visible = false [node name="CollectibleItem" parent="." unique_id=1474014550 instance=ExtResource("11_gek8f")] modulate = Color(1, 1, 1, 0) @@ -137,7 +136,6 @@ next_scene = "uid://iywmch2pilxk" [node name="SequencePuzzle" type="Node2D" parent="." unique_id=489150957] script = ExtResource("14_0n12u") -debug = true metadata/_custom_type_script = "uid://c68oh8dtr21ti" [node name="Objects" type="Node2D" parent="SequencePuzzle" unique_id=1640987615] @@ -166,9 +164,10 @@ audio_stream = ExtResource("17_2yj5h") [node name="Steps" type="Node2D" parent="SequencePuzzle" unique_id=1475626406] -[node name="SequencePuzzleStep1" type="Node2D" parent="SequencePuzzle/Steps" unique_id=334204405 node_paths=PackedStringArray("sequence")] +[node name="SequencePuzzleStep1" type="Node2D" parent="SequencePuzzle/Steps" unique_id=334204405 node_paths=PackedStringArray("sequence", "hint_sign")] script = ExtResource("21_up7bl") sequence = [NodePath("../../Objects/Yellow"), NodePath("../../Objects/Blue"), NodePath("../../Objects/Pink"), NodePath("../../Objects/Green")] +hint_sign = NodePath("../../Signs/HintSign1") [node name="Signs" type="Node2D" parent="SequencePuzzle" unique_id=1977189161] y_sort_enabled = true diff --git a/scenes/quests/template_quests/NO_EDIT/3_NO_EDIT_sequence_puzzle/NO_EDIT_sequence_puzzle.tscn b/scenes/quests/template_quests/NO_EDIT/3_NO_EDIT_sequence_puzzle/NO_EDIT_sequence_puzzle.tscn index 7071dd138d..8265d39ba1 100644 --- a/scenes/quests/template_quests/NO_EDIT/3_NO_EDIT_sequence_puzzle/NO_EDIT_sequence_puzzle.tscn +++ b/scenes/quests/template_quests/NO_EDIT/3_NO_EDIT_sequence_puzzle/NO_EDIT_sequence_puzzle.tscn @@ -115,9 +115,10 @@ sprite_frames = ExtResource("12_8jbpq") [node name="Steps" type="Node2D" parent="OnTheGround/SequencePuzzle" unique_id=666035394] -[node name="SequencePuzzleStep1" type="Node2D" parent="OnTheGround/SequencePuzzle/Steps" unique_id=202668807 node_paths=PackedStringArray("sequence")] +[node name="SequencePuzzleStep1" type="Node2D" parent="OnTheGround/SequencePuzzle/Steps" unique_id=202668807 node_paths=PackedStringArray("sequence", "hint_sign")] script = ExtResource("13_ewc4v") sequence = [NodePath("../../Objects/Yellow"), NodePath("../../Objects/Green"), NodePath("../../Objects/Blue")] +hint_sign = NodePath("../../Signs/HintSign1") [node name="SequencePuzzleStep2" type="Node2D" parent="OnTheGround/SequencePuzzle/Steps" unique_id=17422018 node_paths=PackedStringArray("sequence", "hint_sign")] script = ExtResource("13_ewc4v") From 62a11e3d3ced16f77f6ec27098c2eb1118309053 Mon Sep 17 00:00:00 2001 From: BiancaPierina Date: Thu, 17 Sep 2026 00:51:27 -0500 Subject: [PATCH 6/6] Make sequence puzzle hint signs optional - Removed the editor warning that required a hint sign. - Added is_solved to SequencePuzzleStep. - Updated SequencePuzzle to use step-level solved state. - Added null guards around all hint_sign access. --- scenes/game_logic/sequence_puzzle.gd | 22 ++++++++++++++++------ scenes/game_logic/sequence_puzzle_step.gd | 5 ++--- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/scenes/game_logic/sequence_puzzle.gd b/scenes/game_logic/sequence_puzzle.gd index bd4e62b157..b44e805b95 100644 --- a/scenes/game_logic/sequence_puzzle.gd +++ b/scenes/game_logic/sequence_puzzle.gd @@ -57,7 +57,9 @@ func _ready() -> void: _find_steps(self) for step: SequencePuzzleStep in steps: - step.hint_sign.demonstrate_sequence.connect(_on_demonstrate_sequence.bind(step)) + if step.hint_sign: + step.is_solved = step.hint_sign.is_solved + step.hint_sign.demonstrate_sequence.connect(_on_demonstrate_sequence.bind(step)) _update_current_step() @@ -80,7 +82,7 @@ func _update_current_step() -> void: var previous_step := _current_step for i in range(_current_step, steps.size()): # We find the next fire that is not solved, and that's the _current_step - if steps[i].hint_sign.is_solved: + if steps[i].is_solved: _current_step = i + 1 _position = 0 else: @@ -90,7 +92,8 @@ func _update_current_step() -> void: progress_changed.emit() if interactive_hints and _current_step < steps.size(): - steps[_current_step].hint_sign.interactive_hint = true + if steps[_current_step].hint_sign: + steps[_current_step].hint_sign.interactive_hint = true func _debug(fmt: String, args: Array = []) -> void: @@ -123,7 +126,10 @@ func _on_kicked(object: SequencePuzzleObject) -> void: return _debug("Finished sequence") - step.hint_sign.set_solved() + step.is_solved = true + + if step.hint_sign: + step.hint_sign.set_solved() # Emit step_solved signal to allow level designers to react to individual step completion step_solved.emit(_current_step) @@ -145,7 +151,9 @@ func get_progress() -> int: func set_progress(step: int) -> void: for i in range(steps.size()): if i <= step: - steps[i].hint_sign.is_solved = true + steps[i].is_solved = true + if steps[i].hint_sign: + steps[i].hint_sign.is_solved = true _update_current_step() @@ -157,4 +165,6 @@ func is_solved() -> bool: func _on_demonstrate_sequence(step: SequencePuzzleStep) -> void: for object in step.sequence: await object.play() - step.hint_sign.demonstration_finished() + + if step.hint_sign: + step.hint_sign.demonstration_finished() diff --git a/scenes/game_logic/sequence_puzzle_step.gd b/scenes/game_logic/sequence_puzzle_step.gd index f7b4c9ce61..656c4b9b42 100644 --- a/scenes/game_logic/sequence_puzzle_step.gd +++ b/scenes/game_logic/sequence_puzzle_step.gd @@ -16,6 +16,8 @@ extends Node2D hint_sign = new_value update_configuration_warnings() +## Whether this step has been solved. +var is_solved: bool = false func _get_configuration_warnings() -> PackedStringArray: var warnings: PackedStringArray @@ -25,7 +27,4 @@ func _get_configuration_warnings() -> PackedStringArray: if sequence.find(null) != -1: warnings.append("Sequence contains unset elements") - if not hint_sign: - warnings.append("Hint Sign not set") - return warnings