diff --git a/assets/first_party/collectibles/new_threads/world_imagination.png b/assets/first_party/collectibles/new_threads/world_imagination.png new file mode 100644 index 0000000000..43afc2a841 --- /dev/null +++ b/assets/first_party/collectibles/new_threads/world_imagination.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59f791e94605b628ce141bccc4c04a31da0f85df32d2e3460b9ec63994ab19f2 +size 1212 diff --git a/assets/first_party/collectibles/new_threads/world_imagination.png.import b/assets/first_party/collectibles/new_threads/world_imagination.png.import new file mode 100644 index 0000000000..fae3abcd60 --- /dev/null +++ b/assets/first_party/collectibles/new_threads/world_imagination.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnjaa4bhfjdvr" +path="res://.godot/imported/world_imagination.png-dfcd1230d3775ad51393eba91b10a665.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/first_party/collectibles/new_threads/world_imagination.png" +dest_files=["res://.godot/imported/world_imagination.png-dfcd1230d3775ad51393eba91b10a665.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/assets/first_party/collectibles/new_threads/world_memory.png b/assets/first_party/collectibles/new_threads/world_memory.png new file mode 100644 index 0000000000..95373ad95b --- /dev/null +++ b/assets/first_party/collectibles/new_threads/world_memory.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09b45b2926a66ee3100b410516535e05e9364788fa23934f3b32a0282b0db771 +size 1181 diff --git a/assets/first_party/collectibles/thread_highlight.png.import b/assets/first_party/collectibles/new_threads/world_memory.png.import similarity index 71% rename from assets/first_party/collectibles/thread_highlight.png.import rename to assets/first_party/collectibles/new_threads/world_memory.png.import index 75363ed62b..6bbf1159a0 100644 --- a/assets/first_party/collectibles/thread_highlight.png.import +++ b/assets/first_party/collectibles/new_threads/world_memory.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cg650xa1uk78h" -path="res://.godot/imported/thread_highlight.png-2d54196e72fad0693496201d675f1c34.ctex" +uid="uid://xm1p6x8oqteb" +path="res://.godot/imported/world_memory.png-f859bfac596743639173aafeacd50c8d.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/first_party/collectibles/thread_highlight.png" -dest_files=["res://.godot/imported/thread_highlight.png-2d54196e72fad0693496201d675f1c34.ctex"] +source_file="res://assets/first_party/collectibles/new_threads/world_memory.png" +dest_files=["res://.godot/imported/world_memory.png-f859bfac596743639173aafeacd50c8d.ctex"] [params] diff --git a/assets/first_party/collectibles/new_threads/world_spirit.png b/assets/first_party/collectibles/new_threads/world_spirit.png new file mode 100644 index 0000000000..80828cd46e --- /dev/null +++ b/assets/first_party/collectibles/new_threads/world_spirit.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:978fffa59cbd68492daadda9ef433f290827732a9d826073c7fc2e9fad4ba962 +size 1222 diff --git a/assets/first_party/collectibles/new_threads/world_spirit.png.import b/assets/first_party/collectibles/new_threads/world_spirit.png.import new file mode 100644 index 0000000000..df5dc292ba --- /dev/null +++ b/assets/first_party/collectibles/new_threads/world_spirit.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://chyvv5qjtwgga" +path="res://.godot/imported/world_spirit.png-82d4e9934be235d9794ddbe00a234e2e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/first_party/collectibles/new_threads/world_spirit.png" +dest_files=["res://.godot/imported/world_spirit.png-82d4e9934be235d9794ddbe00a234e2e.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/assets/first_party/collectibles/shadow.png b/assets/first_party/collectibles/shadow.png new file mode 100644 index 0000000000..1c15198806 --- /dev/null +++ b/assets/first_party/collectibles/shadow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a4b4b75a28d5bc5b92908a3ceb0e4b3d7abb4e73953bff55bbbb6bdba68804d +size 412 diff --git a/assets/first_party/collectibles/shadow.png.import b/assets/first_party/collectibles/shadow.png.import new file mode 100644 index 0000000000..5ff4fe016e --- /dev/null +++ b/assets/first_party/collectibles/shadow.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://citmjvrcgwqry" +path="res://.godot/imported/shadow.png-4d62fcb07299652455dbb4fb900860e2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/first_party/collectibles/shadow.png" +dest_files=["res://.godot/imported/shadow.png-4d62fcb07299652455dbb4fb900860e2.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/assets/first_party/collectibles/threads_animation/spritesheet_light_imagination.png b/assets/first_party/collectibles/threads_animation/spritesheet_light_imagination.png new file mode 100644 index 0000000000..2b1557881a --- /dev/null +++ b/assets/first_party/collectibles/threads_animation/spritesheet_light_imagination.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:460b26d796bf28e710936275efbb1831039ef95c5b25e71f4bde404769ec3fb3 +size 5637 diff --git a/assets/first_party/collectibles/threads_animation/spritesheet_light_imagination.png.import b/assets/first_party/collectibles/threads_animation/spritesheet_light_imagination.png.import new file mode 100644 index 0000000000..e037228c45 --- /dev/null +++ b/assets/first_party/collectibles/threads_animation/spritesheet_light_imagination.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ckhuh8pbrr0aa" +path="res://.godot/imported/spritesheet_light_imagination.png-3288c69aaa2e080178514d2e2d932278.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/first_party/collectibles/threads_animation/spritesheet_light_imagination.png" +dest_files=["res://.godot/imported/spritesheet_light_imagination.png-3288c69aaa2e080178514d2e2d932278.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/assets/first_party/collectibles/thread_highlight.png b/assets/first_party/collectibles/threads_animation/spritesheet_light_memory.png similarity index 100% rename from assets/first_party/collectibles/thread_highlight.png rename to assets/first_party/collectibles/threads_animation/spritesheet_light_memory.png diff --git a/assets/first_party/collectibles/threads_animation/spritesheet_light_memory.png.import b/assets/first_party/collectibles/threads_animation/spritesheet_light_memory.png.import new file mode 100644 index 0000000000..ea22c3176d --- /dev/null +++ b/assets/first_party/collectibles/threads_animation/spritesheet_light_memory.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://frvoy3l6lwa5" +path="res://.godot/imported/spritesheet_light_memory.png-993d5c4178caa047053445953a6fe254.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/first_party/collectibles/threads_animation/spritesheet_light_memory.png" +dest_files=["res://.godot/imported/spritesheet_light_memory.png-993d5c4178caa047053445953a6fe254.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/assets/first_party/collectibles/threads_animation/spritesheet_light_spirit.png b/assets/first_party/collectibles/threads_animation/spritesheet_light_spirit.png new file mode 100644 index 0000000000..e78d4f4830 --- /dev/null +++ b/assets/first_party/collectibles/threads_animation/spritesheet_light_spirit.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:229926e29488c139d00a4dd683b602a53589cd3fcb683bd3c1857a0cc554f45d +size 5637 diff --git a/assets/first_party/collectibles/threads_animation/spritesheet_light_spirit.png.import b/assets/first_party/collectibles/threads_animation/spritesheet_light_spirit.png.import new file mode 100644 index 0000000000..e8d80f7258 --- /dev/null +++ b/assets/first_party/collectibles/threads_animation/spritesheet_light_spirit.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://de7us1ep85av3" +path="res://.godot/imported/spritesheet_light_spirit.png-c81558608d4f157bd4baf30b36bc9141.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/first_party/collectibles/threads_animation/spritesheet_light_spirit.png" +dest_files=["res://.godot/imported/spritesheet_light_spirit.png-c81558608d4f157bd4baf30b36bc9141.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/assets/first_party/collectibles/thread_imagination_tail.png b/assets/first_party/collectibles/threads_animation/thread_imagination_tail.png similarity index 100% rename from assets/first_party/collectibles/thread_imagination_tail.png rename to assets/first_party/collectibles/threads_animation/thread_imagination_tail.png diff --git a/assets/first_party/collectibles/thread_imagination_tail.png.import b/assets/first_party/collectibles/threads_animation/thread_imagination_tail.png.import similarity index 71% rename from assets/first_party/collectibles/thread_imagination_tail.png.import rename to assets/first_party/collectibles/threads_animation/thread_imagination_tail.png.import index 72ef607aa9..2525d75e99 100644 --- a/assets/first_party/collectibles/thread_imagination_tail.png.import +++ b/assets/first_party/collectibles/threads_animation/thread_imagination_tail.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://cwxjno4tkqbff" -path="res://.godot/imported/thread_imagination_tail.png-8f3f619bf3c716a0b2c6e0d16128377c.ctex" +path="res://.godot/imported/thread_imagination_tail.png-90d127455a3cbad70ada447b0da7d3e2.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/first_party/collectibles/thread_imagination_tail.png" -dest_files=["res://.godot/imported/thread_imagination_tail.png-8f3f619bf3c716a0b2c6e0d16128377c.ctex"] +source_file="res://assets/first_party/collectibles/threads_animation/thread_imagination_tail.png" +dest_files=["res://.godot/imported/thread_imagination_tail.png-90d127455a3cbad70ada447b0da7d3e2.ctex"] [params] diff --git a/assets/first_party/collectibles/thread_memory_tail.png b/assets/first_party/collectibles/threads_animation/thread_memory_tail.png similarity index 100% rename from assets/first_party/collectibles/thread_memory_tail.png rename to assets/first_party/collectibles/threads_animation/thread_memory_tail.png diff --git a/assets/first_party/collectibles/thread_memory_tail.png.import b/assets/first_party/collectibles/threads_animation/thread_memory_tail.png.import similarity index 72% rename from assets/first_party/collectibles/thread_memory_tail.png.import rename to assets/first_party/collectibles/threads_animation/thread_memory_tail.png.import index 7cf0bc3a03..0cbd2c50d1 100644 --- a/assets/first_party/collectibles/thread_memory_tail.png.import +++ b/assets/first_party/collectibles/threads_animation/thread_memory_tail.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://cm74qqtogplbm" -path="res://.godot/imported/thread_memory_tail.png-7734f7b00a8fa8c869c713ce3b8d2ace.ctex" +path="res://.godot/imported/thread_memory_tail.png-4e7b5670c110db4c002a9a0f9e785056.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/first_party/collectibles/thread_memory_tail.png" -dest_files=["res://.godot/imported/thread_memory_tail.png-7734f7b00a8fa8c869c713ce3b8d2ace.ctex"] +source_file="res://assets/first_party/collectibles/threads_animation/thread_memory_tail.png" +dest_files=["res://.godot/imported/thread_memory_tail.png-4e7b5670c110db4c002a9a0f9e785056.ctex"] [params] diff --git a/assets/first_party/collectibles/thread_spirit_tail.png b/assets/first_party/collectibles/threads_animation/thread_spirit_tail.png similarity index 100% rename from assets/first_party/collectibles/thread_spirit_tail.png rename to assets/first_party/collectibles/threads_animation/thread_spirit_tail.png diff --git a/assets/first_party/collectibles/thread_spirit_tail.png.import b/assets/first_party/collectibles/threads_animation/thread_spirit_tail.png.import similarity index 72% rename from assets/first_party/collectibles/thread_spirit_tail.png.import rename to assets/first_party/collectibles/threads_animation/thread_spirit_tail.png.import index fb544322d7..521f496d12 100644 --- a/assets/first_party/collectibles/thread_spirit_tail.png.import +++ b/assets/first_party/collectibles/threads_animation/thread_spirit_tail.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://bebnwci47fajp" -path="res://.godot/imported/thread_spirit_tail.png-c7698fe6cd1e74e800e986efc9a7c010.ctex" +path="res://.godot/imported/thread_spirit_tail.png-a852f6c06ddb982f9d08a3328f541ac3.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/first_party/collectibles/thread_spirit_tail.png" -dest_files=["res://.godot/imported/thread_spirit_tail.png-c7698fe6cd1e74e800e986efc9a7c010.ctex"] +source_file="res://assets/first_party/collectibles/threads_animation/thread_spirit_tail.png" +dest_files=["res://.godot/imported/thread_spirit_tail.png-a852f6c06ddb982f9d08a3328f541ac3.ctex"] [params] diff --git a/assets/first_party/collectibles/threads_animation/world_imagination_without_animation.aseprite b/assets/first_party/collectibles/threads_animation/world_imagination_without_animation.aseprite new file mode 100644 index 0000000000..3e79ef65d5 --- /dev/null +++ b/assets/first_party/collectibles/threads_animation/world_imagination_without_animation.aseprite @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c94fd06748272de5bbce89582cda63708cd7bd498d33390587f2c32e1afcbeb8 +size 11161 diff --git a/assets/first_party/collectibles/threads_animation/world_memory_without_animation.aseprite b/assets/first_party/collectibles/threads_animation/world_memory_without_animation.aseprite new file mode 100644 index 0000000000..ed9006f10d --- /dev/null +++ b/assets/first_party/collectibles/threads_animation/world_memory_without_animation.aseprite @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1f49833d9eab0d9602a8d148486c3e91c798f7e26452b16e77c761598bf792a +size 10930 diff --git a/assets/first_party/collectibles/threads_animation/world_spirit_without_animation.aseprite b/assets/first_party/collectibles/threads_animation/world_spirit_without_animation.aseprite new file mode 100644 index 0000000000..a20fc049bb --- /dev/null +++ b/assets/first_party/collectibles/threads_animation/world_spirit_without_animation.aseprite @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf0de62a19f4ac2c9704d69fedc135142628756df3b685e7cf843fdfbe10ea29 +size 10793 diff --git a/highlight_sprite_frames.tres b/highlight_sprite_frames.tres new file mode 100644 index 0000000000..765aee43ee --- /dev/null +++ b/highlight_sprite_frames.tres @@ -0,0 +1,233 @@ +[gd_resource type="SpriteFrames" format=3 uid="uid://cy1nj4pl81x8c"] + +[ext_resource type="Texture2D" uid="uid://de7us1ep85av3" path="res://assets/first_party/collectibles/threads_animation/spritesheet_light_spirit.png" id="1_2guov"] +[ext_resource type="Texture2D" uid="uid://ckhuh8pbrr0aa" path="res://assets/first_party/collectibles/threads_animation/spritesheet_light_imagination.png" id="1_tjv0k"] +[ext_resource type="Texture2D" uid="uid://frvoy3l6lwa5" path="res://assets/first_party/collectibles/threads_animation/spritesheet_light_memory.png" id="2_dyxua"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_d7l42"] +atlas = ExtResource("1_tjv0k") +region = Rect2(0, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3iq7s"] +atlas = ExtResource("1_tjv0k") +region = Rect2(64, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pxmlh"] +atlas = ExtResource("1_tjv0k") +region = Rect2(128, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_os3oc"] +atlas = ExtResource("1_tjv0k") +region = Rect2(0, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_y205f"] +atlas = ExtResource("1_tjv0k") +region = Rect2(64, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_y8xlj"] +atlas = ExtResource("1_tjv0k") +region = Rect2(128, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jv526"] +atlas = ExtResource("1_tjv0k") +region = Rect2(0, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_co8jl"] +atlas = ExtResource("1_tjv0k") +region = Rect2(64, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_y1381"] +atlas = ExtResource("1_tjv0k") +region = Rect2(128, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_215sm"] +atlas = ExtResource("1_tjv0k") +region = Rect2(0, 192, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rdx60"] +atlas = ExtResource("2_dyxua") +region = Rect2(0, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1ss3b"] +atlas = ExtResource("2_dyxua") +region = Rect2(64, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6x7uf"] +atlas = ExtResource("2_dyxua") +region = Rect2(128, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mjfu0"] +atlas = ExtResource("2_dyxua") +region = Rect2(0, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_242e3"] +atlas = ExtResource("2_dyxua") +region = Rect2(64, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_g131f"] +atlas = ExtResource("2_dyxua") +region = Rect2(128, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_a4ths"] +atlas = ExtResource("2_dyxua") +region = Rect2(0, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_u7ykn"] +atlas = ExtResource("2_dyxua") +region = Rect2(64, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pko8s"] +atlas = ExtResource("2_dyxua") +region = Rect2(128, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jusfm"] +atlas = ExtResource("2_dyxua") +region = Rect2(0, 192, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hyeg4"] +atlas = ExtResource("1_2guov") +region = Rect2(0, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tjv0k"] +atlas = ExtResource("1_2guov") +region = Rect2(64, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dyxua"] +atlas = ExtResource("1_2guov") +region = Rect2(128, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_75r3o"] +atlas = ExtResource("1_2guov") +region = Rect2(0, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_k5hhv"] +atlas = ExtResource("1_2guov") +region = Rect2(64, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_otsrq"] +atlas = ExtResource("1_2guov") +region = Rect2(128, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_r2ypg"] +atlas = ExtResource("1_2guov") +region = Rect2(0, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_di10w"] +atlas = ExtResource("1_2guov") +region = Rect2(64, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0eg1m"] +atlas = ExtResource("1_2guov") +region = Rect2(128, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_f4nje"] +atlas = ExtResource("1_2guov") +region = Rect2(0, 192, 64, 64) + +[resource] +animations = [{ +"frames": [{ +"duration": 0.1, +"texture": SubResource("AtlasTexture_d7l42") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_3iq7s") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_pxmlh") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_os3oc") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_y205f") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_y8xlj") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_jv526") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_co8jl") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_y1381") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_215sm") +}], +"loop": 1, +"name": &"Imagination", +"speed": 1.0 +}, { +"frames": [{ +"duration": 0.1, +"texture": SubResource("AtlasTexture_rdx60") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_1ss3b") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_6x7uf") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_mjfu0") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_242e3") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_g131f") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_a4ths") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_u7ykn") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_pko8s") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_jusfm") +}], +"loop": 1, +"name": &"Memory", +"speed": 1.0 +}, { +"frames": [{ +"duration": 0.1, +"texture": SubResource("AtlasTexture_hyeg4") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_tjv0k") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_dyxua") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_75r3o") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_k5hhv") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_otsrq") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_r2ypg") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_di10w") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_0eg1m") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_f4nje") +}], +"loop": 1, +"name": &"Spirit", +"speed": 1.0 +}] diff --git a/scenes/game_elements/props/collectible_item/collectible_item.tscn b/scenes/game_elements/props/collectible_item/collectible_item.tscn index 4581dcd741..27d480a9b7 100644 --- a/scenes/game_elements/props/collectible_item/collectible_item.tscn +++ b/scenes/game_elements/props/collectible_item/collectible_item.tscn @@ -2,12 +2,80 @@ [ext_resource type="Script" uid="uid://be7lr8ty24cix" path="res://scenes/game_elements/props/collectible_item/components/collectible_item.gd" id="1_7ff3m"] [ext_resource type="Script" uid="uid://du8wfijr35r35" path="res://scenes/game_elements/props/interact_area/interact_area.gd" id="2_1kegn"] +[ext_resource type="SpriteFrames" uid="uid://cy1nj4pl81x8c" path="res://highlight_sprite_frames.tres" id="5_0m1fb"] [ext_resource type="AudioStream" uid="uid://bhgpds38q0j4r" path="res://assets/third_party/sounds/collectibles/MemoryCollectable.ogg" id="5_hhgm5"] [ext_resource type="AudioStream" uid="uid://38xwdjm46478" path="res://assets/third_party/sounds/collectibles/CollectibleAppear.ogg" id="5_oh62b"] +[ext_resource type="Texture2D" uid="uid://citmjvrcgwqry" path="res://assets/first_party/collectibles/shadow.png" id="5_owoci"] +[ext_resource type="SpriteFrames" uid="uid://bpfr6xaq4t8xv" path="res://tail_sprite_frames.tres" id="6_oh62b"] [sub_resource type="CircleShape2D" id="CircleShape2D_ghwae"] radius = 20.0 +[sub_resource type="Animation" id="Animation_owoci"] +resource_name = "Default" +length = 2.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1, 1.9), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(0, 0), Vector2(0, -10), Vector2(0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Highlight:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1, 2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(0, 0), Vector2(0, -10), Vector2(0, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Tail:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 1.0333333, 2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(0, 0), Vector2(0, -10), Vector2(0, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Shadow:scale") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 1.0071187, 2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(0.65625006, 1.0966355), Vector2(0.538, 0.9), Vector2(0.65625006, 1.0966355)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Shadow:modulate") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(0, 0, 0, 0.32156864), Color(0, 0, 0, 0.32156864)] +} + [sub_resource type="Animation" id="Animation_i0615"] length = 0.001 tracks/0/type = "value" @@ -106,6 +174,114 @@ tracks/7/keys = { "update": 1, "values": [false] } +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Shadow:visible") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Shadow:modulate") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(0, 0, 0, 0)] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Highlight:visible") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Highlight:modulate") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Highlight:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Tail:position") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Tail:visible") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("Tail:modulate") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("Shadow:scale") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0.65625006, 1.0966355)] +} [sub_resource type="Animation" id="Animation_7ff3m"] resource_name = "collected" @@ -221,6 +397,78 @@ tracks/8/keys = { "update": 1, "values": [true] } +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Shadow:visible") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.56666666, 0.59754825, 0.6), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 1, +"values": [true, true, false, false] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Shadow:modulate") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0, 0.4, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(0, 0, 0, 0.32156864), Color(0, 0, 0, 0.32156864), Color(0, 0, 0, 0)] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Tail:visible") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0, 0.56666666, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [true, true, false] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Tail:modulate") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0, 0.4, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Highlight:visible") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0, 0.56666666, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [true, true, false] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Highlight:modulate") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0, 0.4, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} [sub_resource type="Animation" id="Animation_qy0vu"] resource_name = "reveal" @@ -286,9 +534,82 @@ tracks/4/keys = { "update": 0, "values": [0.0, -0.122173, 0.122173, -0.0523599, 0.0] } +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Shadow:visible") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.10555493, 0.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [false, true, true] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Shadow:modulate") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(0, 0, 0, 0), Color(0, 0, 0, 0.32156864)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Highlight:visible") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 0.1, 0.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [false, true, true] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Highlight:modulate") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Tail:visible") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.1, 0.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [false, true, true] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Tail:modulate") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_8dm1m"] _data = { +&"Default": SubResource("Animation_owoci"), &"RESET": SubResource("Animation_i0615"), &"collected": SubResource("Animation_7ff3m"), &"reveal": SubResource("Animation_qy0vu") @@ -318,11 +639,36 @@ position = Vector2(0, -48) [node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1869284545] libraries/ = SubResource("AnimationLibrary_8dm1m") +autoplay = &"Default" +movie_quit_on_finish = true +next/reveal = &"Default" +blend_times = [&"reveal", &"Default", 0.2] + +[node name="Shadow" type="Sprite2D" parent="." unique_id=733059184] +visible = false +modulate = Color(0, 0, 0, 0) +position = Vector2(-2.3841858e-07, 24) +scale = Vector2(0.65625006, 1.0966355) +texture = ExtResource("5_owoci") +vframes = 3 +frame = 2 + +[node name="Highlight" type="AnimatedSprite2D" parent="." unique_id=1920697038] +visible = false +modulate = Color(1, 1, 1, 0) +sprite_frames = ExtResource("5_0m1fb") +animation = &"Spirit" [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1620327010] visible = false modulate = Color(1, 1, 1, 0) +[node name="Tail" type="AnimatedSprite2D" parent="." unique_id=2039386539] +visible = false +modulate = Color(1, 1, 1, 0) +sprite_frames = ExtResource("6_oh62b") +animation = &"Spirit" + [node name="CollectedSound" type="AudioStreamPlayer" parent="." unique_id=420528907] unique_name_in_owner = true bus = &"SFX" @@ -337,7 +683,7 @@ collision_layer = 16 collision_mask = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D" unique_id=1204681631] -position = Vector2(1, 14) +position = Vector2(0, 14) rotation = 1.5708 shape = SubResource("CapsuleShape2D_hhgm5") debug_color = Color(0.976711, 0, 0.409753, 0.42) diff --git a/scenes/game_elements/props/collectible_item/components/collectible_item.gd b/scenes/game_elements/props/collectible_item/components/collectible_item.gd index be753d4850..78b1ed64fb 100644 --- a/scenes/game_elements/props/collectible_item/components/collectible_item.gd +++ b/scenes/game_elements/props/collectible_item/components/collectible_item.gd @@ -33,6 +33,9 @@ extends SceneLink @onready var interact_area: InteractArea = $InteractArea @onready var animation_player: AnimationPlayer = $AnimationPlayer @onready var sprite_2d: Sprite2D = $Sprite2D +@onready var shadow: Sprite2D = $Shadow +@onready var highlight: AnimatedSprite2D = $Highlight +@onready var tail: AnimatedSprite2D = $Tail @onready var appear_sound: AudioStreamPlayer = %AppearSound @onready var physical_collider: CollisionShape2D = $StaticBody2D/CollisionShape2D @@ -57,6 +60,22 @@ func _set_item(new_value: InventoryItem) -> void: if sprite_2d: sprite_2d.texture = item.get_world_texture() if item else null + + # The tail and the highlight share one sprite SpriteFrames each; the animation + # named after the item type selects the matching frames. + for animated_sprite: AnimatedSprite2D in [tail, highlight]: + if not animated_sprite: + continue + if item: + animated_sprite.play(item.animation_name()) + else: + animated_sprite.stop() + + ## The highlight frames are white so that they can be tintend to match the + ## thread, self_modulate is used because modulate is animated by the reveal + ## and collected animations. + if highlight and item: + highlight.self_modulate = item.get_color() if interact_area: interact_area.action = "Collect " + item.type_name() if item else "Collect" @@ -122,8 +141,10 @@ func _on_interacted(player: Player, _from_right: bool) -> void: func _update_based_on_revealed() -> void: if interact_area: interact_area.disabled = not revealed - if sprite_2d: - sprite_2d.visible = revealed - sprite_2d.modulate = Color.WHITE if revealed else Color.TRANSPARENT + for node: CanvasItem in [sprite_2d, shadow, highlight, tail]: + if not node: + continue + node.visible = revealed + node.modulate = Color.WHITE if revealed else Color.TRANSPARENT if physical_collider: physical_collider.disabled = not revealed diff --git a/scenes/globals/game_state/inventory/inventory_item.gd b/scenes/globals/game_state/inventory/inventory_item.gd index f4ef6b78f6..ac7283d558 100644 --- a/scenes/globals/game_state/inventory/inventory_item.gd +++ b/scenes/globals/game_state/inventory/inventory_item.gd @@ -24,9 +24,9 @@ const HUD_TEXTURES: Dictionary[ItemType, Texture2D] = { } const WORLD_TEXTURES: Dictionary[ItemType, Texture2D] = { - ItemType.MEMORY: preload("uid://5wscjc8yqqts"), - ItemType.IMAGINATION: preload("uid://6bf8rum68wq3"), - ItemType.SPIRIT: preload("uid://cepg1o3ihp055") + ItemType.MEMORY: preload("uid://xm1p6x8oqteb"), + ItemType.IMAGINATION: preload("uid://dnjaa4bhfjdvr"), + ItemType.SPIRIT: preload("uid://chyvv5qjtwgga") } @export var type: ItemType @@ -40,6 +40,17 @@ func get_world_texture() -> Texture2D: return WORLD_TEXTURES[type] +## Name of the animation, in the tail and highlight [SpriteFrames], that matches +## this item type. +func animation_name() -> StringName: + return StringName(type_name()) + + +## Colour of this item's type, used to tint the white highlight sprite. +func get_color() -> Color: + return COLORS_PER_TYPE[type] + + static func with_type(a_type: ItemType) -> InventoryItem: var item := new() item.type = a_type diff --git a/scenes/quests/lore_quests/quest_000/6_grappling/thread_imagination_tail.png b/scenes/quests/lore_quests/quest_000/6_grappling/thread_imagination_tail.png new file mode 100644 index 0000000000..2772173681 --- /dev/null +++ b/scenes/quests/lore_quests/quest_000/6_grappling/thread_imagination_tail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f2a4b1c981080de4da0c880b2268663361b1e05bb5533b85dd1c8a3565f0505 +size 3447 diff --git a/scenes/quests/lore_quests/quest_000/6_grappling/thread_imagination_tail.png.import b/scenes/quests/lore_quests/quest_000/6_grappling/thread_imagination_tail.png.import new file mode 100644 index 0000000000..e1aea71890 --- /dev/null +++ b/scenes/quests/lore_quests/quest_000/6_grappling/thread_imagination_tail.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cltrl1x36vt8b" +path="res://.godot/imported/thread_imagination_tail.png-2157cb19da89c342e4b636d583af29b1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/quests/lore_quests/quest_000/6_grappling/thread_imagination_tail.png" +dest_files=["res://.godot/imported/thread_imagination_tail.png-2157cb19da89c342e4b636d583af29b1.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/quests/lore_quests/quest_000/6_grappling/thread_memory_tail.png b/scenes/quests/lore_quests/quest_000/6_grappling/thread_memory_tail.png new file mode 100644 index 0000000000..b9f3c926d5 --- /dev/null +++ b/scenes/quests/lore_quests/quest_000/6_grappling/thread_memory_tail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4bce4fcfd06572875335194452ea764170b76dffa2d1fa790cbfd95c135b7e3 +size 3306 diff --git a/scenes/quests/lore_quests/quest_000/6_grappling/thread_memory_tail.png.import b/scenes/quests/lore_quests/quest_000/6_grappling/thread_memory_tail.png.import new file mode 100644 index 0000000000..abdc7b9a82 --- /dev/null +++ b/scenes/quests/lore_quests/quest_000/6_grappling/thread_memory_tail.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cpx2yt3p1y06y" +path="res://.godot/imported/thread_memory_tail.png-7d9c98066ff3c55f7e4b0376c9b64ba5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/quests/lore_quests/quest_000/6_grappling/thread_memory_tail.png" +dest_files=["res://.godot/imported/thread_memory_tail.png-7d9c98066ff3c55f7e4b0376c9b64ba5.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/quests/lore_quests/quest_000/6_grappling/thread_spirit_tail.png b/scenes/quests/lore_quests/quest_000/6_grappling/thread_spirit_tail.png new file mode 100644 index 0000000000..fab79cbdfd --- /dev/null +++ b/scenes/quests/lore_quests/quest_000/6_grappling/thread_spirit_tail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7030a38ae640a022429b05f525bd60be42336edc08121821794155f8d53de50 +size 3390 diff --git a/scenes/quests/lore_quests/quest_000/6_grappling/thread_spirit_tail.png.import b/scenes/quests/lore_quests/quest_000/6_grappling/thread_spirit_tail.png.import new file mode 100644 index 0000000000..ca41d3abf6 --- /dev/null +++ b/scenes/quests/lore_quests/quest_000/6_grappling/thread_spirit_tail.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ceg0hohasr40n" +path="res://.godot/imported/thread_spirit_tail.png-a47969776290c0716964d82b13fe06e5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/quests/lore_quests/quest_000/6_grappling/thread_spirit_tail.png" +dest_files=["res://.godot/imported/thread_spirit_tail.png-a47969776290c0716964d82b13fe06e5.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/tail_sprite_frames.tres b/tail_sprite_frames.tres new file mode 100644 index 0000000000..e74d56e2a3 --- /dev/null +++ b/tail_sprite_frames.tres @@ -0,0 +1,238 @@ +[gd_resource type="SpriteFrames" format=3 uid="uid://bpfr6xaq4t8xv"] + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_218lm"] +load_path = "res://.godot/imported/thread_imagination_tail.png-8f3f619bf3c716a0b2c6e0d16128377c.ctex" + +[sub_resource type="AtlasTexture" id="AtlasTexture_lp8by"] +atlas = SubResource("CompressedTexture2D_218lm") +region = Rect2(0, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_218lm"] +atlas = SubResource("CompressedTexture2D_218lm") +region = Rect2(64, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tumec"] +atlas = SubResource("CompressedTexture2D_218lm") +region = Rect2(128, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1sjuc"] +atlas = SubResource("CompressedTexture2D_218lm") +region = Rect2(0, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4wto8"] +atlas = SubResource("CompressedTexture2D_218lm") +region = Rect2(64, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_d6ne3"] +atlas = SubResource("CompressedTexture2D_218lm") +region = Rect2(128, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ja11m"] +atlas = SubResource("CompressedTexture2D_218lm") +region = Rect2(0, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bjpwi"] +atlas = SubResource("CompressedTexture2D_218lm") +region = Rect2(64, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l6h4g"] +atlas = SubResource("CompressedTexture2D_218lm") +region = Rect2(128, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4j3jt"] +atlas = SubResource("CompressedTexture2D_218lm") +region = Rect2(0, 192, 64, 64) + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_4j3jt"] +load_path = "res://.godot/imported/thread_memory_tail.png-7734f7b00a8fa8c869c713ce3b8d2ace.ctex" + +[sub_resource type="AtlasTexture" id="AtlasTexture_mujug"] +atlas = SubResource("CompressedTexture2D_4j3jt") +region = Rect2(0, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0yxr2"] +atlas = SubResource("CompressedTexture2D_4j3jt") +region = Rect2(64, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cep73"] +atlas = SubResource("CompressedTexture2D_4j3jt") +region = Rect2(128, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_71m4h"] +atlas = SubResource("CompressedTexture2D_4j3jt") +region = Rect2(0, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ayro3"] +atlas = SubResource("CompressedTexture2D_4j3jt") +region = Rect2(64, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nf64e"] +atlas = SubResource("CompressedTexture2D_4j3jt") +region = Rect2(128, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xqgb8"] +atlas = SubResource("CompressedTexture2D_4j3jt") +region = Rect2(0, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_k265j"] +atlas = SubResource("CompressedTexture2D_4j3jt") +region = Rect2(64, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_op5ea"] +atlas = SubResource("CompressedTexture2D_4j3jt") +region = Rect2(128, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_upnun"] +atlas = SubResource("CompressedTexture2D_4j3jt") +region = Rect2(0, 192, 64, 64) + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_upnun"] +load_path = "res://.godot/imported/thread_spirit_tail.png-c7698fe6cd1e74e800e986efc9a7c010.ctex" + +[sub_resource type="AtlasTexture" id="AtlasTexture_1dctl"] +atlas = SubResource("CompressedTexture2D_upnun") +region = Rect2(0, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_eoo78"] +atlas = SubResource("CompressedTexture2D_upnun") +region = Rect2(64, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vtbrx"] +atlas = SubResource("CompressedTexture2D_upnun") +region = Rect2(128, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7h5of"] +atlas = SubResource("CompressedTexture2D_upnun") +region = Rect2(0, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pibra"] +atlas = SubResource("CompressedTexture2D_upnun") +region = Rect2(64, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fnf0f"] +atlas = SubResource("CompressedTexture2D_upnun") +region = Rect2(128, 64, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_etqnl"] +atlas = SubResource("CompressedTexture2D_upnun") +region = Rect2(0, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ennag"] +atlas = SubResource("CompressedTexture2D_upnun") +region = Rect2(64, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2k051"] +atlas = SubResource("CompressedTexture2D_upnun") +region = Rect2(128, 128, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_veu3q"] +atlas = SubResource("CompressedTexture2D_upnun") +region = Rect2(0, 192, 64, 64) + +[resource] +animations = [{ +"frames": [{ +"duration": 0.1, +"texture": SubResource("AtlasTexture_lp8by") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_218lm") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_tumec") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_1sjuc") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_4wto8") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_d6ne3") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_ja11m") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_bjpwi") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_l6h4g") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_4j3jt") +}], +"loop": 1, +"name": &"Imagination", +"speed": 1.0 +}, { +"frames": [{ +"duration": 0.1, +"texture": SubResource("AtlasTexture_mujug") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_0yxr2") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_cep73") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_71m4h") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_ayro3") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_nf64e") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_xqgb8") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_k265j") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_op5ea") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_upnun") +}], +"loop": 1, +"name": &"Memory", +"speed": 1.0 +}, { +"frames": [{ +"duration": 0.1, +"texture": SubResource("AtlasTexture_1dctl") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_eoo78") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_vtbrx") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_7h5of") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_pibra") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_fnf0f") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_etqnl") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_ennag") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_2k051") +}, { +"duration": 0.1, +"texture": SubResource("AtlasTexture_veu3q") +}], +"loop": 1, +"name": &"Spirit", +"speed": 1.0 +}]