Better frog

This commit is contained in:
Laurent Tourte
2024-01-17 12:13:46 +01:00
parent 1461955c8b
commit ac68eb60cd
91 changed files with 857 additions and 2028 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 518 KiB

@@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://5y8s5jtfough" uid="uid://begtyjietpcyo"
path="res://.godot/imported/frog_side_jump_00.png-0827fe4dd455a2d7be3e0f2873d2c07b.ctex" path="res://.godot/imported/frog.png-233dcccc92c3b1c611039cc4f27e35aa.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_00.png" source_file="res://assets/minigames/frog/graphics/frog.png"
dest_files=["res://.godot/imported/frog_side_jump_00.png-0827fe4dd455a2d7be3e0f2873d2c07b.ctex"] dest_files=["res://.godot/imported/frog.png-233dcccc92c3b1c611039cc4f27e35aa.ctex"]
[params] [params]
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://3i2kdog0hcd7"
path="res://.godot/imported/frog_front_idle_01_00.png-00fe00d1f52ddf4bce24e1ab526ed526.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_00.png"
dest_files=["res://.godot/imported/frog_front_idle_01_00.png-00fe00d1f52ddf4bce24e1ab526ed526.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cnxaaavna1iut"
path="res://.godot/imported/frog_front_idle_01_01.png-e95717bf4f3b609a91688d5f7cbef05b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_01.png"
dest_files=["res://.godot/imported/frog_front_idle_01_01.png-e95717bf4f3b609a91688d5f7cbef05b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dl4ny8xqds5wd"
path="res://.godot/imported/frog_front_idle_01_02.png-fbe5b5405737b00a19b5fa0c76bf5341.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_02.png"
dest_files=["res://.godot/imported/frog_front_idle_01_02.png-fbe5b5405737b00a19b5fa0c76bf5341.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cgxxr6yt214se"
path="res://.godot/imported/frog_front_idle_01_03.png-52db0e5e89d9c86965f7f9cc6ca44e8b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_03.png"
dest_files=["res://.godot/imported/frog_front_idle_01_03.png-52db0e5e89d9c86965f7f9cc6ca44e8b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bdf0wkxihsdr5"
path="res://.godot/imported/frog_front_idle_01_04.png-7e505e15a2b4843100a0cef8678bfe01.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_04.png"
dest_files=["res://.godot/imported/frog_front_idle_01_04.png-7e505e15a2b4843100a0cef8678bfe01.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cxto67h464020"
path="res://.godot/imported/frog_front_idle_01_05.png-5912b8ded6c99424c471e7bf29ccac2d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_05.png"
dest_files=["res://.godot/imported/frog_front_idle_01_05.png-5912b8ded6c99424c471e7bf29ccac2d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b347142s3nerw"
path="res://.godot/imported/frog_front_idle_02_00.png-115304ba2abbc952a1472c43b9a81116.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_00.png"
dest_files=["res://.godot/imported/frog_front_idle_02_00.png-115304ba2abbc952a1472c43b9a81116.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://crjy7fv8tmbl2"
path="res://.godot/imported/frog_front_idle_02_01.png-79d6fa47b62fe45a5a95faf6d7cf5827.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_01.png"
dest_files=["res://.godot/imported/frog_front_idle_02_01.png-79d6fa47b62fe45a5a95faf6d7cf5827.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d0t2lbtlkvlq2"
path="res://.godot/imported/frog_front_idle_02_02.png-f12132c71a284ff2edea938a5e2d1d4f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_02.png"
dest_files=["res://.godot/imported/frog_front_idle_02_02.png-f12132c71a284ff2edea938a5e2d1d4f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c24h7imi6h3eg"
path="res://.godot/imported/frog_front_idle_02_03.png-e81d7cb04b0da6a62e75fab497f03a9b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_03.png"
dest_files=["res://.godot/imported/frog_front_idle_02_03.png-e81d7cb04b0da6a62e75fab497f03a9b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b45e74pq5os4b"
path="res://.godot/imported/frog_front_idle_02_04.png-c17df40d8d1b44337d800b7984493ce0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_04.png"
dest_files=["res://.godot/imported/frog_front_idle_02_04.png-c17df40d8d1b44337d800b7984493ce0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c8lacn7niv7um"
path="res://.godot/imported/frog_front_idle_02_05.png-9cf2dee4ff4271ee4e8d1ac7a0b0d4c4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_05.png"
dest_files=["res://.godot/imported/frog_front_idle_02_05.png-9cf2dee4ff4271ee4e8d1ac7a0b0d4c4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dw5sb4dk4nojh"
path="res://.godot/imported/frog_side_idle02_01.png-bf9b379b5e8f78348a12c1f1c1e8fa63.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle02_01.png"
dest_files=["res://.godot/imported/frog_side_idle02_01.png-bf9b379b5e8f78348a12c1f1c1e8fa63.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cam2utbgn117b"
path="res://.godot/imported/frog_side_idle02_02.png-2432e436ffc529e59a3e351140c1d189.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle02_02.png"
dest_files=["res://.godot/imported/frog_side_idle02_02.png-2432e436ffc529e59a3e351140c1d189.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bvquobk7ejruu"
path="res://.godot/imported/frog_side_idle02_03.png-88151a16617dab52b0729833b5a2d76e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle02_03.png"
dest_files=["res://.godot/imported/frog_side_idle02_03.png-88151a16617dab52b0729833b5a2d76e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://1mkfs4q3mcx4"
path="res://.godot/imported/frog_side_idle02_04.png-8b904df1df950869242a1ea99542b813.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle02_04.png"
dest_files=["res://.godot/imported/frog_side_idle02_04.png-8b904df1df950869242a1ea99542b813.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cwumb5swp18sl"
path="res://.godot/imported/frog_side_idle02_05.png-6302f362afe8727405a5767551107aa8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle02_05.png"
dest_files=["res://.godot/imported/frog_side_idle02_05.png-6302f362afe8727405a5767551107aa8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://djkxvpwwkw4yy"
path="res://.godot/imported/frog_side_idle_01_00.png-faec259ad1f5866dc862b3a942be5fc7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_00.png"
dest_files=["res://.godot/imported/frog_side_idle_01_00.png-faec259ad1f5866dc862b3a942be5fc7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dv8ymga36atdh"
path="res://.godot/imported/frog_side_idle_01_01.png-9b2da9d3532e80277c863b76b1e5c363.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_01.png"
dest_files=["res://.godot/imported/frog_side_idle_01_01.png-9b2da9d3532e80277c863b76b1e5c363.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://brgjq3ta4dvg0"
path="res://.godot/imported/frog_side_idle_01_02.png-24f756609eece8fff224a39202fe59eb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_02.png"
dest_files=["res://.godot/imported/frog_side_idle_01_02.png-24f756609eece8fff224a39202fe59eb.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bftjipg8mutqi"
path="res://.godot/imported/frog_side_idle_01_03.png-63a32e35533e3d20b17036389e053908.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_03.png"
dest_files=["res://.godot/imported/frog_side_idle_01_03.png-63a32e35533e3d20b17036389e053908.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dgctla7ilh5ar"
path="res://.godot/imported/frog_side_idle_01_04.png-048868eb0af47c0434e48c20b553142d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_04.png"
dest_files=["res://.godot/imported/frog_side_idle_01_04.png-048868eb0af47c0434e48c20b553142d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b4bbjeqpy1f5p"
path="res://.godot/imported/frog_side_idle_01_05.png-3da069508bcfdf4e760eae9b799584f7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_05.png"
dest_files=["res://.godot/imported/frog_side_idle_01_05.png-3da069508bcfdf4e760eae9b799584f7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://shsb7y1qaolu"
path="res://.godot/imported/frog_side_idle_02_00.png-c5721c1604dc2c97a099baa588dfd737.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_02_00.png"
dest_files=["res://.godot/imported/frog_side_idle_02_00.png-c5721c1604dc2c97a099baa588dfd737.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://02cx2u6mj0wc"
path="res://.godot/imported/frog_side_jump_01.png-b9d75209e8e95adfb421d2a8393c6ef9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_01.png"
dest_files=["res://.godot/imported/frog_side_jump_01.png-b9d75209e8e95adfb421d2a8393c6ef9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://oclmkmjyc03q"
path="res://.godot/imported/frog_side_jump_02.png-fa919af56e547b9e8c005fa7b8cbc2f9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_02.png"
dest_files=["res://.godot/imported/frog_side_jump_02.png-fa919af56e547b9e8c005fa7b8cbc2f9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dycytl4eumnfq"
path="res://.godot/imported/frog_side_jump_03.png-642c704f73700286b98290b6052182a6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_03.png"
dest_files=["res://.godot/imported/frog_side_jump_03.png-642c704f73700286b98290b6052182a6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0egt6wqodpnx"
path="res://.godot/imported/frog_side_jump_04.png-ad03846316ec31e2b2de685cd6b9f610.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_04.png"
dest_files=["res://.godot/imported/frog_side_jump_04.png-ad03846316ec31e2b2de685cd6b9f610.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bg622tvggx87w"
path="res://.godot/imported/frog_side_jump_05.png-efc4cb7ea9282f2fb024a5a94fba1da5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_05.png"
dest_files=["res://.godot/imported/frog_side_jump_05.png-efc4cb7ea9282f2fb024a5a94fba1da5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b36e360ka1xum"
path="res://.godot/imported/frog_side_jump_06.png-4cbcebee1eed6b703c1b40e30e4d827d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_06.png"
dest_files=["res://.godot/imported/frog_side_jump_06.png-4cbcebee1eed6b703c1b40e30e4d827d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bn4i0hr8eygu2"
path="res://.godot/imported/frog_side_jump_07.png-4286680df4706f02167b18750fd3eea3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_07.png"
dest_files=["res://.godot/imported/frog_side_jump_07.png-4286680df4706f02167b18750fd3eea3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c38s3q7j4ofns"
path="res://.godot/imported/frog_side_jump_08.png-8a484aa1a5bcd39a60c11c2d71dd601b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_08.png"
dest_files=["res://.godot/imported/frog_side_jump_08.png-8a484aa1a5bcd39a60c11c2d71dd601b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cvosw5qtv262k"
path="res://.godot/imported/frog_side_jump_09.png-99ca25c2495d1417c48d87f5577ef09f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_09.png"
dest_files=["res://.godot/imported/frog_side_jump_09.png-99ca25c2495d1417c48d87f5577ef09f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://4j6sxetbqkhh"
path="res://.godot/imported/frog_side_jump_10.png-7bcc753011a103d3874ff1c60bd8ccee.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_10.png"
dest_files=["res://.godot/imported/frog_side_jump_10.png-7bcc753011a103d3874ff1c60bd8ccee.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://fb6mfwl8pu33"
path="res://.godot/imported/frog_side_jump_11.png-de305672dd469f9073d2eb270a8c7992.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_11.png"
dest_files=["res://.godot/imported/frog_side_jump_11.png-de305672dd469f9073d2eb270a8c7992.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+1 -1
View File
@@ -372,7 +372,7 @@ unique_name_in_owner = true
custom_minimum_size = Vector2(64, 64) custom_minimum_size = Vector2(64, 64)
layout_mode = 2 layout_mode = 2
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("27_eee4l") texture = ExtResource("26_0bgo4")
expand_mode = 4 expand_mode = 4
stretch_mode = 5 stretch_mode = 5
+47
View File
@@ -0,0 +1,47 @@
extends Control
signal drowned()
signal jumped()
@onready var animation_player: = $AnimationPlayer
@onready var sprite: = $Sprite
func jump_to(destination: Vector2) -> void:
animation_player.play("jump")
var tween: = create_tween()
tween.tween_property(self, "global_position", destination, animation_player.get_animation("jump").length)
func drown() -> void:
animation_player.play("drown")
func _on_animation_player_animation_finished(animation_name: StringName) -> void:
if animation_name == "drown":
drowned.emit()
if animation_name == "jump":
animation_player.play("idle_side_1")
jumped.emit()
if animation_name == "idle_front_1":
var r: = randf()
if r <= 0.5:
animation_player.play("idle_front_1")
else:
animation_player.play("idle_front_2")
if animation_name == "idle_front_2":
animation_player.play("idle_front_1")
if animation_name == "idle_side_1":
var r: = randf()
if r <= 0.5:
animation_player.play("idle_side_1")
else:
animation_player.play("idle_side_2")
if animation_name == "idle_side_2":
animation_player.play("idle_side_1")
+221
View File
@@ -0,0 +1,221 @@
[gd_scene load_steps=12 format=3 uid="uid://bloyucpsbvpx8"]
[ext_resource type="Script" path="res://sources/minigames/frog/frog.gd" id="1_68f6f"]
[ext_resource type="Texture2D" uid="uid://begtyjietpcyo" path="res://assets/minigames/frog/graphics/frog.png" id="1_c6opx"]
[ext_resource type="Material" uid="uid://bcoalg24yap4x" path="res://sources/minigames/frog/frog_material.tres" id="2_i6km5"]
[sub_resource type="Animation" id="Animation_42msv"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:material:shader_parameter/dissolve_amount")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0]
}
[sub_resource type="Animation" id="Animation_5od11"]
resource_name = "drown"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:material:shader_parameter/dissolve_amount")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
[sub_resource type="Animation" id="Animation_mtfxt"]
resource_name = "idle_front_1"
length = 0.6
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4, 5]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite:material:shader_parameter/dissolve_amount")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_yri2x"]
resource_name = "idle_front_2"
length = 0.6
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 1,
"values": [12, 13, 14, 15, 16, 17]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite:material:shader_parameter/dissolve_amount")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_0dpgo"]
resource_name = "idle_side_1"
length = 0.6
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 1,
"values": [24, 25, 26, 27, 28, 29]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite:material:shader_parameter/dissolve_amount")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_pmell"]
resource_name = "idle_side_2"
length = 0.6
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 1,
"values": [36, 37, 38, 39, 40, 41]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite:material:shader_parameter/dissolve_amount")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_ir23o"]
resource_name = "jump"
length = 0.6
step = 0.05
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite:material:shader_parameter/dissolve_amount")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_at27w"]
_data = {
"RESET": SubResource("Animation_42msv"),
"drown": SubResource("Animation_5od11"),
"idle_front_1": SubResource("Animation_mtfxt"),
"idle_front_2": SubResource("Animation_yri2x"),
"idle_side_1": SubResource("Animation_0dpgo"),
"idle_side_2": SubResource("Animation_pmell"),
"jump": SubResource("Animation_ir23o")
}
[node name="Frog" type="Control"]
layout_mode = 3
anchors_preset = 0
script = ExtResource("1_68f6f")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_at27w")
}
autoplay = "idle_front_1"
[node name="Sprite" type="Sprite2D" parent="."]
material = ExtResource("2_i6km5")
scale = Vector2(1.5, 1.5)
texture = ExtResource("1_c6opx")
offset = Vector2(-18, -47)
hframes = 12
vframes = 5
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"]
-108
View File
@@ -1,108 +0,0 @@
extends Node2D
signal flooded
@export var jump_distance: = 240.0:
set(value):
jump_distance = value
if jump_area_collision:
jump_area_collision.position = Vector2(jump_distance / 2.0, 0.0)
jump_area_collision.shape.height = jump_distance * 1.5
@onready var sprite: = $AnimatedSprite2D
@onready var jump_area: = $JumpArea
@onready var jump_area_collision: = $JumpArea/CollisionShape2D
@onready var frog_area: = $FrogArea
var can_jump: = true
var follow_mouse: = false
var is_jumping: = false
var land_area: Area2D
func _ready():
jump_distance = jump_distance
func _physics_process(_delta: float) -> void:
if follow_mouse:
var direction: = _get_mouse_direction()
jump_area.rotation = direction.angle()
if not is_jumping:
if land_area != null:
global_position = land_area.global_position
func _unhandled_input(event: InputEvent) -> void:
if not is_jumping:
if event is InputEventMouseButton:
if event.button_index == MOUSE_BUTTON_LEFT:
follow_mouse = event.pressed
if not event.pressed:
var direction: = _get_mouse_direction()
_jump(direction)
func _jump(direction: Vector2) -> void:
if not can_jump:
return
_search_for_land_area()
# Checking if there is somewhere to land
var area: Area2D
var dist: = jump_distance * 2.0
for other_area in jump_area.get_overlapping_areas():
if other_area != frog_area and other_area != land_area:
var other_dist: float = (other_area.global_position - global_position).length()
if area == null or other_dist < dist:
area = other_area
dist = other_dist
land_area = null
var destination: = global_position + jump_distance * direction
if area != null:
destination = area.global_position
# actual jump
is_jumping = true
sprite.play("jump_side")
var tween: = create_tween()
tween.tween_property(self, "global_position", destination, 0.1)
await tween.finished
# Landing
land_area = area
sprite.play("idle_side")
if area:
if area.owner is Lilypad:
var lilypad: = area.owner
if not lilypad.frog_landed():
flooded.emit()
else:
flooded.emit()
is_jumping = false
func _search_for_land_area() -> void:
var overlapping_areas: Array = frog_area.get_overlapping_areas()
if overlapping_areas.size() != 0:
land_area = overlapping_areas[0]
else:
land_area = null
func _reset() -> void:
land_area = null
func _on_animated_sprite_2d_animation_finished() -> void:
sprite.play("idle_side")
func _get_mouse_direction() -> Vector2:
return (get_global_mouse_position() - global_position).normalized()
-198
View File
@@ -1,198 +0,0 @@
[gd_scene load_steps=41 format=3 uid="uid://ca0ul885cbe41"]
[ext_resource type="Script" path="res://sources/minigames/frog/frog/frog.gd" id="1_3i23t"]
[ext_resource type="Texture2D" uid="uid://3i2kdog0hcd7" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_00.png" id="1_syiy8"]
[ext_resource type="Texture2D" uid="uid://cnxaaavna1iut" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_01.png" id="2_4q8yu"]
[ext_resource type="Texture2D" uid="uid://dl4ny8xqds5wd" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_02.png" id="3_bkha4"]
[ext_resource type="Texture2D" uid="uid://cgxxr6yt214se" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_03.png" id="4_d22w8"]
[ext_resource type="Texture2D" uid="uid://bdf0wkxihsdr5" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_04.png" id="5_kn1ir"]
[ext_resource type="Texture2D" uid="uid://cxto67h464020" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_01_05.png" id="6_mgjb2"]
[ext_resource type="Texture2D" uid="uid://b347142s3nerw" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_00.png" id="7_q3xnb"]
[ext_resource type="Texture2D" uid="uid://crjy7fv8tmbl2" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_01.png" id="8_7euu5"]
[ext_resource type="Texture2D" uid="uid://d0t2lbtlkvlq2" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_02.png" id="9_maitf"]
[ext_resource type="Texture2D" uid="uid://c24h7imi6h3eg" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_03.png" id="10_nw786"]
[ext_resource type="Texture2D" uid="uid://b45e74pq5os4b" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_04.png" id="11_4iyty"]
[ext_resource type="Texture2D" uid="uid://c8lacn7niv7um" path="res://assets/minigames/frog/graphics/frog_animations/frog_front_idle_02_05.png" id="12_twnvy"]
[ext_resource type="Texture2D" uid="uid://dw5sb4dk4nojh" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle02_01.png" id="13_jwiru"]
[ext_resource type="Texture2D" uid="uid://cam2utbgn117b" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle02_02.png" id="14_huq2e"]
[ext_resource type="Texture2D" uid="uid://bvquobk7ejruu" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle02_03.png" id="15_3glbm"]
[ext_resource type="Texture2D" uid="uid://1mkfs4q3mcx4" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle02_04.png" id="16_vm1ly"]
[ext_resource type="Texture2D" uid="uid://cwumb5swp18sl" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle02_05.png" id="17_rl57n"]
[ext_resource type="Texture2D" uid="uid://djkxvpwwkw4yy" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_00.png" id="18_wqok6"]
[ext_resource type="Texture2D" uid="uid://dv8ymga36atdh" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_01.png" id="19_43wjj"]
[ext_resource type="Texture2D" uid="uid://brgjq3ta4dvg0" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_02.png" id="20_iympc"]
[ext_resource type="Texture2D" uid="uid://bftjipg8mutqi" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_03.png" id="21_g2wtr"]
[ext_resource type="Texture2D" uid="uid://dgctla7ilh5ar" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_04.png" id="22_wluk2"]
[ext_resource type="Texture2D" uid="uid://b4bbjeqpy1f5p" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_01_05.png" id="23_tkkm6"]
[ext_resource type="Texture2D" uid="uid://shsb7y1qaolu" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_idle_02_00.png" id="24_h50iq"]
[ext_resource type="Texture2D" uid="uid://5y8s5jtfough" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_00.png" id="25_kiv4k"]
[ext_resource type="Texture2D" uid="uid://02cx2u6mj0wc" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_01.png" id="26_pdad0"]
[ext_resource type="Texture2D" uid="uid://oclmkmjyc03q" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_02.png" id="27_hmo0d"]
[ext_resource type="Texture2D" uid="uid://dycytl4eumnfq" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_03.png" id="28_u3a50"]
[ext_resource type="Texture2D" uid="uid://0egt6wqodpnx" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_04.png" id="29_11nc4"]
[ext_resource type="Texture2D" uid="uid://bg622tvggx87w" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_05.png" id="30_sjuhf"]
[ext_resource type="Texture2D" uid="uid://b36e360ka1xum" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_06.png" id="31_rmnnf"]
[ext_resource type="Texture2D" uid="uid://bn4i0hr8eygu2" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_07.png" id="32_cgpdx"]
[ext_resource type="Texture2D" uid="uid://c38s3q7j4ofns" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_08.png" id="33_xyt2u"]
[ext_resource type="Texture2D" uid="uid://cvosw5qtv262k" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_09.png" id="34_lnnwi"]
[ext_resource type="Texture2D" uid="uid://4j6sxetbqkhh" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_10.png" id="35_jfqpd"]
[ext_resource type="Texture2D" uid="uid://fb6mfwl8pu33" path="res://assets/minigames/frog/graphics/frog_animations/frog_side_jump_11.png" id="36_q67ce"]
[sub_resource type="SpriteFrames" id="SpriteFrames_7bxkc"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_syiy8")
}, {
"duration": 1.0,
"texture": ExtResource("2_4q8yu")
}, {
"duration": 1.0,
"texture": ExtResource("3_bkha4")
}, {
"duration": 1.0,
"texture": ExtResource("4_d22w8")
}, {
"duration": 1.0,
"texture": ExtResource("5_kn1ir")
}, {
"duration": 1.0,
"texture": ExtResource("6_mgjb2")
}, {
"duration": 1.0,
"texture": ExtResource("7_q3xnb")
}, {
"duration": 1.0,
"texture": ExtResource("8_7euu5")
}, {
"duration": 1.0,
"texture": ExtResource("9_maitf")
}, {
"duration": 1.0,
"texture": ExtResource("10_nw786")
}, {
"duration": 1.0,
"texture": ExtResource("11_4iyty")
}, {
"duration": 1.0,
"texture": ExtResource("12_twnvy")
}],
"loop": true,
"name": &"idle_front",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("13_jwiru")
}, {
"duration": 1.0,
"texture": ExtResource("14_huq2e")
}, {
"duration": 1.0,
"texture": ExtResource("15_3glbm")
}, {
"duration": 1.0,
"texture": ExtResource("16_vm1ly")
}, {
"duration": 1.0,
"texture": ExtResource("17_rl57n")
}, {
"duration": 1.0,
"texture": ExtResource("18_wqok6")
}, {
"duration": 1.0,
"texture": ExtResource("19_43wjj")
}, {
"duration": 1.0,
"texture": ExtResource("20_iympc")
}, {
"duration": 1.0,
"texture": ExtResource("21_g2wtr")
}, {
"duration": 1.0,
"texture": ExtResource("22_wluk2")
}, {
"duration": 1.0,
"texture": ExtResource("23_tkkm6")
}, {
"duration": 1.0,
"texture": ExtResource("24_h50iq")
}],
"loop": true,
"name": &"idle_side",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("25_kiv4k")
}, {
"duration": 1.0,
"texture": ExtResource("26_pdad0")
}, {
"duration": 1.0,
"texture": ExtResource("27_hmo0d")
}, {
"duration": 1.0,
"texture": ExtResource("28_u3a50")
}, {
"duration": 1.0,
"texture": ExtResource("29_11nc4")
}, {
"duration": 1.0,
"texture": ExtResource("30_sjuhf")
}, {
"duration": 1.0,
"texture": ExtResource("31_rmnnf")
}, {
"duration": 1.0,
"texture": ExtResource("32_cgpdx")
}, {
"duration": 1.0,
"texture": ExtResource("33_xyt2u")
}, {
"duration": 1.0,
"texture": ExtResource("34_lnnwi")
}, {
"duration": 1.0,
"texture": ExtResource("35_jfqpd")
}, {
"duration": 1.0,
"texture": ExtResource("36_q67ce")
}],
"loop": false,
"name": &"jump_side",
"speed": 110.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_lnxyi"]
radius = 30.0
height = 360.0
[sub_resource type="CircleShape2D" id="CircleShape2D_h7qyi"]
radius = 25.1794
[node name="Frog" type="Node2D"]
script = ExtResource("1_3i23t")
jump_distance = 420.0
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(-16, -47)
sprite_frames = SubResource("SpriteFrames_7bxkc")
animation = &"jump_side"
autoplay = "idle_front"
[node name="JumpArea" type="Area2D" parent="."]
position = Vector2(0, -25)
collision_layer = 0
monitorable = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="JumpArea"]
position = Vector2(120, 0)
rotation = -1.5708
shape = SubResource("CapsuleShape2D_lnxyi")
[node name="FrogArea" type="Area2D" parent="."]
position = Vector2(0, -25)
[node name="CollisionShape2D" type="CollisionShape2D" parent="FrogArea"]
shape = SubResource("CircleShape2D_h7qyi")
+33
View File
@@ -0,0 +1,33 @@
[gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://bcoalg24yap4x"]
[ext_resource type="Shader" path="res://sources/minigames/frog/flood.gdshader" id="1_obtft"]
[sub_resource type="Gradient" id="Gradient_s16dt"]
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
[sub_resource type="FastNoiseLite" id="FastNoiseLite_c8rmy"]
frequency = 0.05
fractal_type = 3
fractal_gain = 0.1
fractal_weighted_strength = 1.0
fractal_ping_pong_strength = 4.0
domain_warp_enabled = true
domain_warp_amplitude = 20.0
domain_warp_fractal_type = 2
domain_warp_fractal_lacunarity = 2.0
domain_warp_fractal_gain = 0.1
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_5gfk0"]
width = 128
height = 128
seamless_blend_skirt = 0.0
color_ramp = SubResource("Gradient_s16dt")
noise = SubResource("FastNoiseLite_c8rmy")
[resource]
shader = ExtResource("1_obtft")
shader_parameter/burn_color = Color(0.156863, 0.192157, 1, 1)
shader_parameter/burn_size = 0.5
shader_parameter/dissolve_amount = 0.0
shader_parameter/emission_amount = 1.0
shader_parameter/dissolve_texture = SubResource("NoiseTexture2D_5gfk0")
+77 -66
View File
@@ -1,19 +1,21 @@
extends Minigame extends Minigame
const lilypad_track_class: = preload("res://sources/minigames/frog/lilypad_track/lilypad_track.tscn")
@export var difficulty: = 1 @export var difficulty: = 1
@export var lesson_nb: = 4 @export var lesson_nb: = 4
@onready var frog: = $GameRoot/Frog @onready var start: = %Start
@onready var start_area: = $GameRoot/Start/Area2D @onready var end: = %End
@onready var end_area: = $GameRoot/End/Area2D
@onready var river_container: = $GameRoot/RiverContainer @onready var frog_spawn_point: = %FrogSpawnPoint
@onready var frog_despawn_point: = %FrogDespawnPoint
@onready var lilypad_tracks_container: = %LilypadTracksContainer
@onready var frog: = %Frog
const lilypad_track_class: = preload("res://sources/minigames/frog/lilypad_track.tscn")
var lilypad_tracks: Array
var current_word: Dictionary var current_word: Dictionary
var current_distractors: Array var current_distractors: Array
var end_areas: = []
func _find_stimuli_and_distractions() -> void: func _find_stimuli_and_distractions() -> void:
@@ -38,15 +40,6 @@ func _start() -> void:
_get_new_word() _get_new_word()
func _on_current_progression_changed() -> void:
if stimuli.size() != 0:
await _get_new_word()
_reset_frog()
end_areas = []
else:
_win()
func _get_new_word() -> void: func _get_new_word() -> void:
if audio_player.playing: if audio_player.playing:
await audio_player.finished await audio_player.finished
@@ -55,19 +48,15 @@ func _get_new_word() -> void:
_update_current_word() _update_current_word()
_create_tracks() _create_tracks()
await _play_current_word() await _play_current_word()
# Await a frame so the tracks can occupy all the river container
await get_tree().process_frame
_start_tracks() _start_tracks()
func _free_tracks() -> void: func _free_tracks() -> void:
if lilypad_tracks.size() != 0: for track in lilypad_tracks_container.get_children():
for track in lilypad_tracks: await track.delete()
track.disappear()
await lilypad_tracks[lilypad_tracks.size() - 1].disappeared for track in lilypad_tracks_container.get_children():
for track in lilypad_tracks: track.queue_free()
track.queue_free()
lilypad_tracks = []
func _update_current_word() -> void: func _update_current_word() -> void:
@@ -76,22 +65,32 @@ func _update_current_word() -> void:
func _create_tracks() -> void: func _create_tracks() -> void:
lilypad_tracks = []
for i in range(current_word.GPs.size()): for i in range(current_word.GPs.size()):
var track: = lilypad_track_class.instantiate() var track: = lilypad_track_class.instantiate()
river_container.add_child(track) lilypad_tracks_container.add_child(track)
lilypad_tracks.append(track)
var track_stimuli: = [current_word.GPs[i]]
track_stimuli.append_array(current_distractors[i])
var are_distractors: = [false]
for _j in range(track_stimuli.size() - 1):
are_distractors.append(true)
track.stimuli = track_stimuli
track.are_they_distractors = are_distractors
track.top_to_bottom = i % 2 track.top_to_bottom = i % 2
var track_stimuli: = []
track_stimuli.append(current_word.GPs[i])
track_stimuli.append_array(current_distractors[i])
track.stimuli = track_stimuli
var are_distractors: = []
are_distractors.append(false)
for j in range(current_distractors[i].size()):
are_distractors.append(true)
track.are_distractors = are_distractors
track.lilypad_in_center.connect(_on_track_lilypad_in_center.bind(track))
func _start_tracks() -> void:
for track in lilypad_tracks_container.get_children():
await track.reset()
track.start()
lilypad_tracks[current_word.GPs.size() - 1].cleared.connect(_on_last_lilypad_cleared) lilypad_tracks_container.get_child(0).is_enabled = true
func _play_current_word() -> void: func _play_current_word() -> void:
@@ -101,40 +100,52 @@ func _play_current_word() -> void:
await audio_player.finished await audio_player.finished
func _start_tracks() -> void:
for track in lilypad_tracks:
track.ready_to_spawn = true
func _reset_frog() -> void: func _reset_frog() -> void:
frog._reset() frog.global_position = frog_spawn_point.global_position
frog.global_position = start_area.global_position frog.jump_to(start.global_position)
await frog.jumped
func _on_frog_flooded() -> void: func _on_track_lilypad_in_center(lilypad: Control, track: Control) -> void:
_reset_frog() frog.jump_to(lilypad.global_position)
await frog.jumped
current_lives -= 1 if lilypad.is_distractor:
lilypad.disappear()
for track in lilypad_tracks: frog.drown()
track.restart() await frog.drowned
current_lives -= 1
func _on_last_lilypad_cleared() -> void:
frog.can_jump = false _start_tracks()
await _reset_frog()
await get_tree().create_timer(1.0).timeout else:
track.stop()
frog.can_jump = true track.is_cleared = true
frog._jump(Vector2.RIGHT)
func _on_end_area_area_entered(area: Area2D) -> void:
if not area in end_areas:
end_areas.append(area)
var all_cleared: = true var all_cleared: = true
for track in lilypad_tracks: for other_track in lilypad_tracks_container.get_children():
all_cleared = all_cleared and track.is_cleared if not other_track.is_cleared:
all_cleared = false
other_track.is_enabled = true
break
if all_cleared: if all_cleared:
frog.jump_to(end.global_position)
await frog.jumped
frog.jump_to(frog_despawn_point.global_position)
await frog.jumped
await _free_tracks()
current_progression += 1 current_progression += 1
func _on_current_progression_changed() -> void:
if stimuli.size() != 0:
await _reset_frog()
await _get_new_word()
else:
_win()
+132 -101
View File
@@ -1,43 +1,33 @@
[gd_scene load_steps=18 format=3 uid="uid://cd5yhq6f6l88c"] [gd_scene load_steps=16 format=3 uid="uid://dl5wx8l0awoi0"]
[ext_resource type="PackedScene" uid="uid://8awe4usnucyv" path="res://sources/minigames/base/base_minigame.tscn" id="1_avl88"] [ext_resource type="PackedScene" uid="uid://8awe4usnucyv" path="res://sources/minigames/base/base_minigame.tscn" id="1_ng5er"]
[ext_resource type="Script" path="res://sources/minigames/frog/frog_minigame.gd" id="2_5vus4"] [ext_resource type="Script" path="res://sources/minigames/frog/frog_minigame.gd" id="2_0xg3r"]
[ext_resource type="Texture2D" uid="uid://g1pr0xqbmwcb" path="res://assets/minigames/frog/graphics/background_river.png" id="2_xejtx"] [ext_resource type="Texture2D" uid="uid://jvpu77isfi5b" path="res://assets/minigames/frog/graphics/gauge_icon_frog_empty.png" id="2_e38i1"]
[ext_resource type="AudioStream" uid="uid://brvigkassgx1b" path="res://language_resources/french/minigames/frog/audio/kalulu/kalulu_end_frog_all.mp3" id="3_8qoit"] [ext_resource type="Texture2D" uid="uid://g1pr0xqbmwcb" path="res://assets/minigames/frog/graphics/background_river.png" id="2_wg03r"]
[ext_resource type="AudioStream" uid="uid://ve3na0ebxwsr" path="res://language_resources/french/minigames/frog/audio/kalulu/kalulu_help_frog_language.mp3" id="3_cqjmm"] [ext_resource type="Texture2D" uid="uid://cusulkkvcyxak" path="res://assets/minigames/frog/graphics/sand_left.png" id="3_eaixk"]
[ext_resource type="Texture2D" uid="uid://cusulkkvcyxak" path="res://assets/minigames/frog/graphics/sand_left.png" id="3_si4ka"] [ext_resource type="AudioStream" uid="uid://ve3na0ebxwsr" path="res://language_resources/french/minigames/frog/audio/kalulu/kalulu_help_frog_language.mp3" id="3_qavay"]
[ext_resource type="Texture2D" uid="uid://c7im0b3uxb6ha" path="res://assets/minigames/frog/graphics/grass_left.png" id="4_wsj75"] [ext_resource type="Texture2D" uid="uid://re7qgivb3n5w" path="res://assets/minigames/frog/graphics/gauge_icon_frog_full.png" id="3_vjlmb"]
[ext_resource type="Texture2D" uid="uid://tl6bs08l37ar" path="res://assets/minigames/frog/graphics/sand_right.png" id="5_2g3rn"] [ext_resource type="AudioStream" uid="uid://brvigkassgx1b" path="res://language_resources/french/minigames/frog/audio/kalulu/kalulu_end_frog_all.mp3" id="4_agvjd"]
[ext_resource type="Texture2D" uid="uid://jvpu77isfi5b" path="res://assets/minigames/frog/graphics/gauge_icon_frog_empty.png" id="5_o5eq5"] [ext_resource type="Texture2D" uid="uid://c7im0b3uxb6ha" path="res://assets/minigames/frog/graphics/grass_left.png" id="4_mvhry"]
[ext_resource type="Texture2D" uid="uid://dg4n6nv84tl3u" path="res://assets/minigames/frog/graphics/grass_right.png" id="6_2y56j"] [ext_resource type="Texture2D" uid="uid://tl6bs08l37ar" path="res://assets/minigames/frog/graphics/sand_right.png" id="5_6ofrr"]
[ext_resource type="Texture2D" uid="uid://re7qgivb3n5w" path="res://assets/minigames/frog/graphics/gauge_icon_frog_full.png" id="6_bm4cp"] [ext_resource type="Texture2D" uid="uid://dg4n6nv84tl3u" path="res://assets/minigames/frog/graphics/grass_right.png" id="6_bvdcd"]
[ext_resource type="Texture2D" uid="uid://ct24yoo1efipg" path="res://assets/minigames/frog/graphics/reed_01.png" id="7_acpkk"] [ext_resource type="Texture2D" uid="uid://ct24yoo1efipg" path="res://assets/minigames/frog/graphics/reed_01.png" id="7_161vn"]
[ext_resource type="Texture2D" uid="uid://b51kxs3qm3wiw" path="res://assets/minigames/frog/graphics/rock.png" id="7_e20fa"] [ext_resource type="Texture2D" uid="uid://djg2gkxxjgqwx" path="res://assets/minigames/frog/graphics/reed_02.png" id="8_ps7uv"]
[ext_resource type="Texture2D" uid="uid://djg2gkxxjgqwx" path="res://assets/minigames/frog/graphics/reed_02.png" id="8_2571k"] [ext_resource type="Texture2D" uid="uid://b51kxs3qm3wiw" path="res://assets/minigames/frog/graphics/rock.png" id="13_lifwj"]
[ext_resource type="PackedScene" uid="uid://ca0ul885cbe41" path="res://sources/minigames/frog/frog/frog.tscn" id="13_phlg8"] [ext_resource type="PackedScene" uid="uid://bloyucpsbvpx8" path="res://sources/minigames/frog/frog.tscn" id="13_o6mls"]
[sub_resource type="CircleShape2D" id="CircleShape2D_a0wpy"] [node name="FrogMinigame" instance=ExtResource("1_ng5er")]
radius = 100.0 script = ExtResource("2_0xg3r")
[sub_resource type="RectangleShape2D" id="RectangleShape2D_by6y7"]
size = Vector2(437, 1800)
[node name="FrogMinigame" instance=ExtResource("1_avl88")]
mouse_filter = 2
script = ExtResource("2_5vus4")
difficulty = 1 difficulty = 1
lesson_nb = 4 lesson_nb = 4
max_number_of_lives = 5 max_number_of_lives = 5
max_progression = 3 max_progression = 3
help_kalulu_speech = ExtResource("3_cqjmm") help_kalulu_speech = ExtResource("3_qavay")
win_kalulu_speech = ExtResource("3_8qoit") win_kalulu_speech = ExtResource("4_agvjd")
[node name="MinigameUI" parent="." index="1"] [node name="MinigameUI" parent="." index="1"]
empty_progression_icon = ExtResource("5_o5eq5") empty_progression_icon = ExtResource("2_e38i1")
full_progression_icon = ExtResource("6_bm4cp") full_progression_icon = ExtResource("3_vjlmb")
[node name="GameRoot" parent="." index="3"]
mouse_filter = 2
[node name="Background" type="Control" parent="GameRoot" index="0"] [node name="Background" type="Control" parent="GameRoot" index="0"]
layout_mode = 1 layout_mode = 1
@@ -56,7 +46,7 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("2_xejtx") texture = ExtResource("2_wg03r")
[node name="LeftSand" type="TextureRect" parent="GameRoot/Background" index="1"] [node name="LeftSand" type="TextureRect" parent="GameRoot/Background" index="1"]
layout_mode = 1 layout_mode = 1
@@ -65,7 +55,7 @@ anchor_bottom = 1.0
offset_right = 676.0 offset_right = 676.0
grow_vertical = 2 grow_vertical = 2
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("3_si4ka") texture = ExtResource("3_eaixk")
[node name="LeftGrass" type="TextureRect" parent="GameRoot/Background" index="2"] [node name="LeftGrass" type="TextureRect" parent="GameRoot/Background" index="2"]
layout_mode = 1 layout_mode = 1
@@ -74,7 +64,7 @@ anchor_bottom = 1.0
offset_right = 478.0 offset_right = 478.0
grow_vertical = 2 grow_vertical = 2
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("4_wsj75") texture = ExtResource("4_mvhry")
[node name="RightSand" type="TextureRect" parent="GameRoot/Background" index="3"] [node name="RightSand" type="TextureRect" parent="GameRoot/Background" index="3"]
layout_mode = 1 layout_mode = 1
@@ -86,7 +76,7 @@ offset_left = -492.0
grow_horizontal = 0 grow_horizontal = 0
grow_vertical = 2 grow_vertical = 2
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("5_2g3rn") texture = ExtResource("5_6ofrr")
[node name="RightGrass" type="TextureRect" parent="GameRoot/Background" index="4"] [node name="RightGrass" type="TextureRect" parent="GameRoot/Background" index="4"]
layout_mode = 1 layout_mode = 1
@@ -98,96 +88,123 @@ offset_left = -365.0
grow_horizontal = 0 grow_horizontal = 0
grow_vertical = 2 grow_vertical = 2
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("6_2y56j") texture = ExtResource("6_bvdcd")
[node name="Scenery" type="Control" parent="GameRoot" index="1"] [node name="Rocks" type="Control" parent="GameRoot/Background" index="5"]
anchors_preset = 0 layout_mode = 1
offset_right = 40.0 anchors_preset = 15
offset_bottom = 40.0 anchor_right = 1.0
mouse_filter = 2 anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Rock" type="TextureRect" parent="GameRoot/Scenery" index="0"] [node name="Rock" type="TextureRect" parent="GameRoot/Background/Rocks" index="0"]
layout_mode = 0 layout_mode = 0
offset_left = 461.0 offset_left = 461.0
offset_top = 127.0 offset_top = 129.0
offset_right = 556.0 offset_right = 556.0
offset_bottom = 345.0 offset_bottom = 347.0
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("7_acpkk") texture = ExtResource("7_161vn")
[node name="Rock2" type="TextureRect" parent="GameRoot/Scenery" index="1"] [node name="Rock2" type="TextureRect" parent="GameRoot/Background/Rocks" index="1"]
layout_mode = 0 layout_mode = 0
offset_left = 260.0 offset_left = 260.0
offset_top = 1134.0 offset_top = 1134.0
offset_right = 355.0 offset_right = 355.0
offset_bottom = 1352.0 offset_bottom = 1352.0
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("7_acpkk") texture = ExtResource("7_161vn")
[node name="Rock3" type="TextureRect" parent="GameRoot/Scenery" index="2"] [node name="Rock3" type="TextureRect" parent="GameRoot/Background/Rocks" index="2"]
layout_mode = 0 layout_mode = 0
offset_left = 2172.0 offset_left = 2172.0
offset_top = 184.0 offset_top = 184.0
offset_right = 2337.0 offset_right = 2337.0
offset_bottom = 432.0 offset_bottom = 432.0
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("8_2571k") texture = ExtResource("8_ps7uv")
[node name="Rock4" type="TextureRect" parent="GameRoot/Scenery" index="3"] [node name="Rock4" type="TextureRect" parent="GameRoot/Background/Rocks" index="3"]
layout_mode = 0 layout_mode = 0
offset_left = 2268.0 offset_left = 2268.0
offset_top = 1098.0 offset_top = 1098.0
offset_right = 2467.0 offset_right = 2467.0
offset_bottom = 1388.0 offset_bottom = 1388.0
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("8_2571k") texture = ExtResource("8_ps7uv")
[node name="Rock5" type="TextureRect" parent="GameRoot/Scenery" index="4"] [node name="Rock5" type="TextureRect" parent="GameRoot/Background/Rocks" index="4"]
layout_mode = 0 layout_mode = 0
offset_left = 263.0 offset_left = 263.0
offset_top = 1383.0 offset_top = 1383.0
offset_right = 470.0 offset_right = 470.0
offset_bottom = 1679.0 offset_bottom = 1679.0
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("8_2571k") texture = ExtResource("8_ps7uv")
[node name="Rock6" type="TextureRect" parent="GameRoot/Scenery" index="5"] [node name="Rock6" type="TextureRect" parent="GameRoot/Background/Rocks" index="5"]
layout_mode = 0 layout_mode = 0
offset_left = 221.0 offset_left = 221.0
offset_top = 467.0 offset_top = 467.0
offset_right = 428.0 offset_right = 428.0
offset_bottom = 763.0 offset_bottom = 763.0
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("8_2571k") texture = ExtResource("8_ps7uv")
[node name="Rock7" type="TextureRect" parent="GameRoot/Scenery" index="6"] [node name="Rock7" type="TextureRect" parent="GameRoot/Background/Rocks" index="6"]
layout_mode = 0 layout_mode = 0
offset_left = 2342.0 offset_left = 2342.0
offset_top = 467.0 offset_top = 467.0
offset_right = 2457.0 offset_right = 2457.0
offset_bottom = 736.0 offset_bottom = 736.0
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("7_acpkk") texture = ExtResource("7_161vn")
[node name="Rock8" type="TextureRect" parent="GameRoot/Scenery" index="7"] [node name="Rock8" type="TextureRect" parent="GameRoot/Background/Rocks" index="7"]
layout_mode = 0 layout_mode = 0
offset_left = 2362.0 offset_left = 2200.0
offset_top = 810.0 offset_top = 1465.0
offset_right = 2477.0 offset_right = 2315.0
offset_bottom = 1079.0 offset_bottom = 1734.0
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("7_acpkk") texture = ExtResource("7_161vn")
[node name="Rock9" type="TextureRect" parent="GameRoot/Scenery" index="8"] [node name="Rock9" type="TextureRect" parent="GameRoot/Background/Rocks" index="8"]
layout_mode = 0 layout_mode = 0
offset_left = 2347.0 offset_left = 2347.0
offset_top = 1413.0 offset_top = 1413.0
offset_right = 2462.0 offset_right = 2462.0
offset_bottom = 1682.0 offset_bottom = 1682.0
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("7_acpkk") texture = ExtResource("7_161vn")
[node name="Start" type="Control" parent="GameRoot" index="2"] [node name="Rock10" type="TextureRect" parent="GameRoot/Background/Rocks" index="9"]
layout_mode = 0
offset_left = 191.0
offset_top = 242.0
offset_right = 286.0
offset_bottom = 460.0
mouse_filter = 2
texture = ExtResource("7_161vn")
[node name="Rock11" type="TextureRect" parent="GameRoot/Background/Rocks" index="10"]
layout_mode = 0
offset_left = 458.0
offset_top = 1137.0
offset_right = 553.0
offset_bottom = 1355.0
mouse_filter = 2
texture = ExtResource("7_161vn")
[node name="GameElements" type="Control" parent="GameRoot" index="1"]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="Start" type="Control" parent="GameRoot/GameElements" index="0"]
unique_name_in_owner = true
layout_mode = 3
anchors_preset = 0 anchors_preset = 0
offset_left = 478.0 offset_left = 478.0
offset_top = 900.0 offset_top = 900.0
@@ -195,28 +212,25 @@ offset_right = 518.0
offset_bottom = 940.0 offset_bottom = 940.0
mouse_filter = 2 mouse_filter = 2
[node name="Rock" type="TextureRect" parent="GameRoot/Start" index="0"] [node name="Rock" type="TextureRect" parent="GameRoot/GameElements/Start" index="0"]
layout_mode = 1 layout_mode = 1
anchors_preset = 8 anchors_preset = 8
anchor_left = 0.5 anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
anchor_right = 0.5 anchor_right = 0.5
anchor_bottom = 0.5 anchor_bottom = 0.5
offset_left = -143.0 offset_left = -291.0
offset_top = -170.0 offset_top = -313.0
offset_right = 68.0 offset_right = -80.0
offset_bottom = 79.0 offset_bottom = -64.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
scale = Vector2(2, 2)
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("7_e20fa") texture = ExtResource("13_lifwj")
[node name="Area2D" type="Area2D" parent="GameRoot/Start" index="1"] [node name="End" type="Control" parent="GameRoot/GameElements" index="1"]
unique_name_in_owner = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="GameRoot/Start/Area2D" index="0"]
shape = SubResource("CircleShape2D_a0wpy")
[node name="End" type="Control" parent="GameRoot" index="3"]
layout_mode = 3 layout_mode = 3
anchors_preset = 0 anchors_preset = 0
offset_left = 2341.5 offset_left = 2341.5
@@ -225,39 +239,56 @@ offset_right = 2381.5
offset_bottom = 940.0 offset_bottom = 940.0
mouse_filter = 2 mouse_filter = 2
[node name="Rock" type="TextureRect" parent="GameRoot/End" index="0"] [node name="Rock" type="TextureRect" parent="GameRoot/GameElements/End" index="0"]
layout_mode = 1 layout_mode = 1
anchors_preset = 8 anchors_preset = 8
anchor_left = 0.5 anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
anchor_right = 0.5 anchor_right = 0.5
anchor_bottom = 0.5 anchor_bottom = 0.5
offset_left = -140.5 offset_left = -268.5
offset_top = -175.0 offset_top = -300.0
offset_right = 70.5 offset_right = -57.5
offset_bottom = 74.0 offset_bottom = -51.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
scale = Vector2(2, 2)
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("7_e20fa") texture = ExtResource("13_lifwj")
[node name="Area2D" type="Area2D" parent="GameRoot/End" index="1"] [node name="FrogSpawnPoint" type="Control" parent="GameRoot/GameElements" index="2"]
unique_name_in_owner = true
anchors_preset = 0
offset_left = -228.0
offset_top = 900.0
offset_right = -228.0
offset_bottom = 900.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="GameRoot/End/Area2D" index="0"] [node name="FrogDespawnPoint" type="Control" parent="GameRoot/GameElements" index="3"]
shape = SubResource("RectangleShape2D_by6y7") unique_name_in_owner = true
anchors_preset = 0
offset_left = 2788.0
offset_top = 900.0
offset_right = 2788.0
offset_bottom = 900.0
[node name="RiverContainer" type="HBoxContainer" parent="GameRoot" index="4"] [node name="LilypadTracksContainer" type="HBoxContainer" parent="GameRoot" index="2"]
layout_mode = 0 unique_name_in_owner = true
offset_left = 710.0 layout_mode = 1
offset_top = -500.0 anchors_preset = 15
offset_right = 2030.0 anchor_right = 1.0
offset_bottom = 2300.0 anchor_bottom = 1.0
mouse_filter = 2 offset_left = 654.0
theme_override_constants/separation = 50 offset_top = -250.0
offset_right = -479.0
offset_bottom = 250.0
grow_horizontal = 2
grow_vertical = 2
alignment = 1 alignment = 1
[node name="Frog" parent="GameRoot" index="5" instance=ExtResource("13_phlg8")] [node name="Frog" parent="GameRoot" index="3" instance=ExtResource("13_o6mls")]
position = Vector2(478, 900) unique_name_in_owner = true
offset_left = 478.0
[connection signal="area_entered" from="GameRoot/End/Area2D" to="." method="_on_end_area_area_entered"] offset_top = 900.0
[connection signal="flooded" from="GameRoot/Frog" to="." method="_on_frog_flooded"] offset_right = 478.0
offset_bottom = 900.0
+42
View File
@@ -0,0 +1,42 @@
extends Control
signal pressed()
signal disappeared()
@onready var animation_player: = $AnimationPlayer
@onready var button: = $TextureButton
@onready var label: = %Label
var stimulus: Dictionary:
set = _set_stimulus
var disabled: = false:
set = _set_disabled
var is_distractor: = true
func disappear() -> void:
animation_player.play("disappear")
func get_real_size() -> Vector2:
return button.size
func _set_stimulus(value: Dictionary) -> void:
stimulus = value
label.text = stimulus["Grapheme"]
func _set_disabled(value: bool) -> void:
disabled = value
button.disabled = disabled
func _on_animation_player_animation_finished(anim_name: StringName) -> void:
if anim_name == "disappear":
disappeared.emit()
func _on_texture_button_pressed() -> void:
pressed.emit()
+89
View File
@@ -0,0 +1,89 @@
[gd_scene load_steps=8 format=3 uid="uid://bkswcqcmf7a0r"]
[ext_resource type="Material" uid="uid://cbs2x6nv6jl63" path="res://sources/minigames/frog/lilypad_material.tres" id="1_pbo2v"]
[ext_resource type="Script" path="res://sources/minigames/frog/lilypad.gd" id="2_pdqed"]
[ext_resource type="Texture2D" uid="uid://bl4csvpvhsgqh" path="res://assets/minigames/frog/graphics/lilypad_enabled.png" id="3_1ueu4"]
[ext_resource type="Texture2D" uid="uid://bafwfqkof2og7" path="res://assets/minigames/frog/graphics/lilypad_disabled.png" id="4_0e8ya"]
[sub_resource type="Animation" id="Animation_qb6cr"]
resource_name = "disappear"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("TextureButton:material:shader_parameter/dissolve_amount")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
[sub_resource type="Animation" id="Animation_852sr"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("TextureButton:material:shader_parameter/dissolve_amount")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3tohd"]
_data = {
"RESET": SubResource("Animation_852sr"),
"disappear": SubResource("Animation_qb6cr")
}
[node name="Lilypad" type="Control"]
material = ExtResource("1_pbo2v")
layout_mode = 3
anchors_preset = 0
script = ExtResource("2_pdqed")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_3tohd")
}
[node name="TextureButton" type="TextureButton" parent="."]
material = ExtResource("1_pbo2v")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -150.0
offset_top = -150.0
offset_right = 150.0
offset_bottom = 150.0
grow_horizontal = 2
grow_vertical = 2
pivot_offset = Vector2(150, 150)
texture_normal = ExtResource("3_1ueu4")
texture_disabled = ExtResource("4_0e8ya")
stretch_mode = 0
[node name="Label" type="Label" parent="TextureButton"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = -39.0
offset_bottom = -57.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 128
text = "A"
horizontal_alignment = 1
vertical_alignment = 1
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"]
[connection signal="pressed" from="TextureButton" to="." method="_on_texture_button_pressed"]
-41
View File
@@ -1,41 +0,0 @@
extends Node2D
class_name Lilypad
signal frog_land()
signal frog_fall()
@onready var animation_player: = $AnimationPlayer
@onready var sprite: = $Sprite2D
@onready var label: = $Label
var stimulus: Dictionary:
set(value):
stimulus = value
label.text = stimulus["Grapheme"]
var is_distractor: = true:
set(value):
is_distractor = value
label.set("theme_override_colors/font_color", Color.BLACK)
func _ready() -> void:
sprite.material.set_shader_parameter("dissolve_amount", 1.0)
func frog_landed() -> bool:
if is_distractor:
frog_fall.emit()
return false
else:
frog_land.emit()
return true
func appear() -> void:
sprite.material.set_shader_parameter("dissolve_amount", 0.0)
label.visible = true
func disappear() -> void:
animation_player.play("flood")
await animation_player.animation_finished
-127
View File
@@ -1,127 +0,0 @@
[gd_scene load_steps=12 format=3 uid="uid://dvf5bgmolayed"]
[ext_resource type="Texture2D" uid="uid://bl4csvpvhsgqh" path="res://assets/minigames/frog/graphics/lilypad_enabled.png" id="1_8x2di"]
[ext_resource type="Script" path="res://sources/minigames/frog/lilypad/lilypad.gd" id="1_opnqg"]
[ext_resource type="Shader" path="res://sources/minigames/frog/lilypad/lilypad.gdshader" id="2_2dv6s"]
[sub_resource type="Animation" id="Animation_erfnk"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:material:shader_parameter/dissolve_amount")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Label:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_mxa6m"]
resource_name = "flood"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:material:shader_parameter/dissolve_amount")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Label:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_m3l6k"]
_data = {
"RESET": SubResource("Animation_erfnk"),
"flood": SubResource("Animation_mxa6m")
}
[sub_resource type="Gradient" id="Gradient_vlqm1"]
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ni3sy"]
frequency = 0.015
fractal_type = 3
fractal_gain = 0.1
fractal_weighted_strength = 1.0
fractal_ping_pong_strength = 4.0
domain_warp_enabled = true
domain_warp_amplitude = 20.0
domain_warp_fractal_type = 2
domain_warp_fractal_lacunarity = 2.0
domain_warp_fractal_gain = 0.1
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_q1q7t"]
width = 256
height = 256
seamless_blend_skirt = 0.0
color_ramp = SubResource("Gradient_vlqm1")
noise = SubResource("FastNoiseLite_ni3sy")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_gigvy"]
resource_local_to_scene = true
shader = ExtResource("2_2dv6s")
shader_parameter/burn_color = Color(0.156863, 0.192157, 1, 1)
shader_parameter/burn_size = 0.3
shader_parameter/dissolve_amount = 0.0
shader_parameter/emission_amount = 1.0
shader_parameter/dissolve_texture = SubResource("NoiseTexture2D_q1q7t")
[sub_resource type="CircleShape2D" id="CircleShape2D_m3jds"]
radius = 51.0098
[node name="Lilypad" type="Node2D"]
script = ExtResource("1_opnqg")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_m3l6k")
}
[node name="Sprite2D" type="Sprite2D" parent="."]
material = SubResource("ShaderMaterial_gigvy")
texture = ExtResource("1_8x2di")
[node name="Area2D" type="Area2D" parent="."]
collision_mask = 0
monitoring = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_m3jds")
[node name="Label" type="Label" parent="."]
offset_left = -48.0
offset_top = -48.0
offset_right = 49.0
offset_bottom = 47.0
horizontal_alignment = 1
vertical_alignment = 1
@@ -0,0 +1,34 @@
[gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://cbs2x6nv6jl63"]
[ext_resource type="Shader" path="res://sources/minigames/frog/flood.gdshader" id="1_yfhcb"]
[sub_resource type="Gradient" id="Gradient_q5on4"]
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
[sub_resource type="FastNoiseLite" id="FastNoiseLite_6xjnx"]
frequency = 0.05
fractal_type = 3
fractal_gain = 0.1
fractal_weighted_strength = 1.0
fractal_ping_pong_strength = 4.0
domain_warp_enabled = true
domain_warp_amplitude = 20.0
domain_warp_fractal_type = 2
domain_warp_fractal_lacunarity = 2.0
domain_warp_fractal_gain = 0.1
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_noqed"]
width = 128
height = 128
seamless_blend_skirt = 0.0
color_ramp = SubResource("Gradient_q5on4")
noise = SubResource("FastNoiseLite_6xjnx")
[resource]
resource_local_to_scene = true
shader = ExtResource("1_yfhcb")
shader_parameter/burn_color = Color(0.156863, 0.192157, 1, 1)
shader_parameter/burn_size = 0.5
shader_parameter/dissolve_amount = 0.0
shader_parameter/emission_amount = 1.0
shader_parameter/dissolve_texture = SubResource("NoiseTexture2D_noqed")
+157
View File
@@ -0,0 +1,157 @@
extends Control
signal lilypad_in_center(lilypad: Control)
@onready var spawn_timer: = $SpawnTimer
const lilypad_class: = preload("res://sources/minigames/frog/lilypad.tscn")
const number_of_lilypads: = 25
const lilypad_crossing_time: = 5.0
var is_cleared: = false
var is_enabled: = false:
set = _set_enabled
var ready_to_spawn: = false
var top_to_bottom: = true
var lilypads: = []
var tweens: = []
var stimuli: = []:
set = _set_stimuli
var are_distractors: = []
var stimuli_queue: = []
var stimuli_queue_size: = 0
func delete() -> void:
await reset()
func reset() -> void:
is_cleared = false
ready_to_spawn = false
is_enabled = false
for tween in tweens:
tween.stop()
for lilypad in lilypads:
lilypad.disappear()
await get_tree().create_timer(0.5).timeout
func start() -> void:
ready_to_spawn = true
func stop() -> void:
ready_to_spawn = false
func _spawn_lilypad() -> void:
var lilypad: = lilypad_class.instantiate()
lilypads.append(lilypad)
lilypad.pressed.connect(_on_lilypad_pressed.bind(lilypad))
lilypad.disappeared.connect(_on_lilypad_disappeared.bind(lilypad))
add_child(lilypad)
lilypad.disabled = not is_enabled
var start_point: = global_position + Vector2(size.x / 2.0, size.y)
var end_point: = global_position + Vector2(size.x / 2.0, 0.0)
if top_to_bottom:
start_point = global_position + Vector2(size.x / 2.0, 0.0)
end_point = global_position + Vector2(size.x / 2.0, size.y)
lilypad.global_position = start_point
var lilypad_size: Vector2 = lilypad.get_real_size()
if size.x < lilypad_size.x:
var s: float = size.x / lilypad_size.x
lilypad.scale = Vector2(s, s)
var potential_stimuli: = stimuli.duplicate()
var are_potential_distractors: = are_distractors.duplicate()
for stimulus in stimuli_queue:
var ind: = potential_stimuli.find(stimulus)
potential_stimuli.remove_at(ind)
are_potential_distractors.remove_at(ind)
var i: = randi() % potential_stimuli.size()
lilypad.stimulus = potential_stimuli[i]
lilypad.is_distractor = are_potential_distractors[i]
stimuli_queue.append(potential_stimuli[i])
if stimuli_queue.size() > stimuli_queue_size:
stimuli_queue.pop_front()
var tween: = create_tween()
tween.finished.connect(_on_tween_finished.bind(lilypad, tween))
tween.tween_property(lilypad, "global_position", end_point, lilypad_crossing_time)
tweens.append(tween)
func _despawn_lilypad(lilypad: Control) -> void:
lilypads.erase(lilypad)
lilypad.queue_free()
func _set_enabled(value: bool) -> void:
is_enabled = value
for lilypad in lilypads:
lilypad.disabled = not is_enabled
func _set_stimuli(value: Array) -> void:
stimuli = value
stimuli_queue_size = max(0, stimuli.size() - 3)
func _on_lilypad_pressed(lilypad: Control) -> void:
ready_to_spawn = false
for tween in tweens:
tween.kill()
tweens = []
for other_lilypad in lilypads:
if other_lilypad != lilypad:
other_lilypad.disappear()
var center_tween: = create_tween()
center_tween.finished.connect(_on_center_tween_finished.bind(lilypad, center_tween))
center_tween.tween_property(lilypad, "global_position", global_position + size / 2.0, 0.5)
tweens.append(center_tween)
func _on_lilypad_disappeared(lilypad: Control) -> void:
_despawn_lilypad(lilypad)
func _on_tween_finished(lilypad: Control, tween: Tween) -> void:
lilypad.disappear()
tweens.erase(tween)
tween.kill()
func _on_center_tween_finished(lilypad: Control, center_tween: Tween) -> void:
lilypad_in_center.emit(lilypad)
center_tween.kill()
tweens.erase(center_tween)
func _on_spawn_timer_timeout() -> void:
if ready_to_spawn:
_spawn_lilypad()
spawn_timer.start(randf_range(0.75, 1.5))
+20
View File
@@ -0,0 +1,20 @@
[gd_scene load_steps=2 format=3 uid="uid://byqqa5hk1hmv5"]
[ext_resource type="Script" path="res://sources/minigames/frog/lilypad_track.gd" id="1_0nn04"]
[node name="LilypadTrack" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_0nn04")
[node name="SpawnTimer" type="Timer" parent="."]
one_shot = true
autostart = true
[connection signal="timeout" from="SpawnTimer" to="." method="_on_spawn_timer_timeout"]
@@ -1,170 +0,0 @@
extends Control
signal cleared
signal disappeared
@export var lilypad_crossing_time: = 5.0
@export var number_of_lilypad: = 25.0
const lilypad_class: = preload("res://sources/minigames/frog/lilypad/lilypad.tscn")
@onready var spawn_timer: = $SpawnTimer
var is_cleared: = false
var stimuli: = []:
set = _set_stimuli
var are_they_distractors: = []
var ready_to_spawn: = false
var despawned_lilypads: = []
var spawned_lilypads: = []
var tweens: Array[Tween] = []
var top_point: = Vector2.ZERO
var bottom_point: = Vector2.ZERO
var center_point: = Vector2.ZERO
var lilypad_scale: = 1.0
var top_to_bottom: = true
var last_stimuli: = []
var potential_size: = 0
func _ready() -> void:
for i in range(number_of_lilypad):
var lilypad: = lilypad_class.instantiate()
add_child(lilypad)
despawned_lilypads.append(lilypad)
lilypad.position = top_point
lilypad.frog_land.connect(_on_lilypad_frog_land.bind(lilypad))
lilypad.frog_fall.connect(_on_lilypad_frog_fall.bind(lilypad))
func _process(_delta: float) -> void:
if ready_to_spawn and stimuli.size() != 0:
var potential_stimuli: = stimuli.duplicate()
for stimulus in last_stimuli:
potential_stimuli.erase(stimulus)
var index: = randi() % potential_stimuli.size()
_spawn_lilypad(potential_stimuli[index], are_they_distractors[index])
last_stimuli.append(potential_stimuli[index])
if last_stimuli.size() > potential_size:
last_stimuli.pop_front()
func disappear() -> void:
if spawned_lilypads.size() != 0:
for i in range(1, spawned_lilypads.size()):
_despawn_lilypad(spawned_lilypads[i])
await _despawn_lilypad(spawned_lilypads[0])
disappeared.emit()
func restart() -> void:
_reset_tweens()
for lilypad in spawned_lilypads:
_despawn_lilypad(lilypad)
ready_to_spawn = true
is_cleared = false
func _spawn_lilypad(stimulus: Dictionary, is_distractor: bool) -> void:
if despawned_lilypads.size() != 0:
var lilypad: Node2D = despawned_lilypads.pop_front()
spawned_lilypads.append(lilypad)
var start: = Vector2.ZERO
var end: = Vector2.ZERO
if top_to_bottom:
start = top_point
end = bottom_point
else:
start = bottom_point
end = top_point
lilypad.scale = Vector2(lilypad_scale, lilypad_scale)
lilypad.stimulus = stimulus
lilypad.is_distractor = is_distractor
lilypad.position = start
lilypad.appear()
var tween: = create_tween()
tween.tween_property(lilypad, "position", end, lilypad_crossing_time)
tween.finished.connect(_on_lilypad_traveling_ended.bind(lilypad, tween))
tweens.append(tween)
ready_to_spawn = false
spawn_timer.start(randf_range(0.5, 1.5))
func _despawn_lilypad(lilypad: Node2D) -> void:
if lilypad in spawned_lilypads:
await lilypad.disappear()
despawned_lilypads.append(lilypad)
spawned_lilypads.erase(lilypad)
lilypad.position = top_point
func _reset_tweens() -> void:
for tween in tweens:
tween.pause()
tween.kill()
tweens = []
func _on_lilypad_frog_land(lilypad: Node2D) -> void:
_reset_tweens()
for other_lilypad in spawned_lilypads:
if other_lilypad != lilypad:
_despawn_lilypad(other_lilypad)
var tween: = create_tween()
tween.tween_property(lilypad, "position", center_point, 0.5)
tweens.append(tween)
spawn_timer.stop()
ready_to_spawn = false
is_cleared = true
cleared.emit()
func _on_lilypad_frog_fall(lilypad: Node2D) -> void:
_despawn_lilypad(lilypad)
func _on_lilypad_traveling_ended(lilypad: Node2D, tween) -> void:
_despawn_lilypad(lilypad)
tweens.erase(tween)
func _on_spawn_timer_timeout() -> void:
ready_to_spawn = true
func _on_resized() -> void:
var rect: = get_rect()
top_point.x = size.x / 2.0
top_point.y = 0
bottom_point.x = size.x / 2.0
bottom_point.y = rect.size.y
center_point = rect.size / 2.0
lilypad_scale = rect.size.x / 100.0
func _set_stimuli(value: Array) -> void:
stimuli = value
potential_size = max(0, min(stimuli.size() - 2, 4))
@@ -1,22 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://co3l70wcwpyrj"]
[ext_resource type="Script" path="res://sources/minigames/frog/lilypad_track/lilypad_track.gd" id="1_lybcb"]
[node name="LiLypadTrack" type="Control"]
custom_minimum_size = Vector2(0, 2800)
layout_mode = 3
anchors_preset = 14
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
mouse_filter = 2
script = ExtResource("1_lybcb")
[node name="SpawnTimer" type="Timer" parent="."]
[connection signal="resized" from="." to="." method="_on_resized"]
[connection signal="timeout" from="SpawnTimer" to="." method="_on_spawn_timer_timeout"]