12 Commits

Author SHA1 Message Date
4d43e7067f trying to fix mask visibility in build
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 9s
Create tag and build when new code gets to main / Export (push) Successful in 1m23s
2026-02-01 09:49:59 +01:00
db4aa83224 debug build
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 8s
Create tag and build when new code gets to main / Export (push) Successful in 1m20s
2026-02-01 09:46:20 +01:00
3786893384 Fixed score computation and added mouth masks
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 10s
Create tag and build when new code gets to main / Export (push) Successful in 1m22s
2026-02-01 09:40:46 +01:00
1dbafe1940 set back up some masks and a third tuto level
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 9s
Create tag and build when new code gets to main / Export (push) Successful in 1m22s
2026-02-01 08:53:10 +01:00
4e3d70cd61 lvl1 done
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 9s
Create tag and build when new code gets to main / Export (push) Successful in 1m25s
2026-01-31 21:39:23 +01:00
69e5bea39c bro this starts looking good
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 10s
Create tag and build when new code gets to main / Export (push) Successful in 1m26s
2026-01-31 21:21:51 +01:00
c82c768ca8 basic score computing 2026-01-31 21:11:40 +01:00
76234147a2 art and stuff 2026-01-31 19:18:56 +01:00
45bf0f5e45 game loop improvement
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 8s
Create tag and build when new code gets to main / Export (push) Successful in 1m19s
2026-01-31 18:16:10 +01:00
f39dc0df86 changing viewport settings for itch
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 8s
Create tag and build when new code gets to main / Export (push) Successful in 1m16s
2026-01-31 15:29:56 +01:00
59b63b0945 guest review process
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 7s
Create tag and build when new code gets to main / Export (push) Successful in 1m19s
2026-01-31 15:10:06 +01:00
02dc155183 Animation and camera tweaking 2026-01-31 13:46:45 +01:00
94 changed files with 2035 additions and 171 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dwy3kklywl0ci"
path="res://.godot/imported/Perso 1.png-9a3fe614fc1ec0311763317776c3a444.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/characters/Perso 1.png"
dest_files=["res://.godot/imported/Perso 1.png-9a3fe614fc1ec0311763317776c3a444.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c726frtpkk1a8"
path="res://.godot/imported/Perso 2.png-153e431447e73fbc5fd3cb3d8e8b041f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/characters/Perso 2.png"
dest_files=["res://.godot/imported/Perso 2.png-153e431447e73fbc5fd3cb3d8e8b041f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://spbjfmmk8o0s"
path="res://.godot/imported/Perso 3.png-5528d0ec8f6847e61963c325dd7c36e3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/characters/Perso 3.png"
dest_files=["res://.godot/imported/Perso 3.png-5528d0ec8f6847e61963c325dd7c36e3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/decor/BG.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c60m6ulhqcbga"
path="res://.godot/imported/BG.png-0111778b752606efe2613948469138d1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/BG.png"
dest_files=["res://.godot/imported/BG.png-0111778b752606efe2613948469138d1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/decor/bell.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://coahojeky8ul7"
path="res://.godot/imported/bell.png-27cebb5662dfd9fc14812dd4b93da4a0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/bell.png"
dest_files=["res://.godot/imported/bell.png-27cebb5662dfd9fc14812dd4b93da4a0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dbpdehppn5h8v"
path="res://.godot/imported/entrance_bg_objects.png-2094ffe831825016b999c9f4f9f2efac.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/entrance_bg_objects.png"
dest_files=["res://.godot/imported/entrance_bg_objects.png-2094ffe831825016b999c9f4f9f2efac.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://by4hnqxl0rtwg"
path="res://.godot/imported/environment_wip_001.png-50c1c8212f1ccdf2a3442c25661504bb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/environment_wip_001.png"
dest_files=["res://.godot/imported/environment_wip_001.png-50c1c8212f1ccdf2a3442c25661504bb.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/decor/guest_page.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bl7tflox3huk5"
path="res://.godot/imported/guest_page.png-f5584d726a61db9a41d5e145f295e553.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/guest_page.png"
dest_files=["res://.godot/imported/guest_page.png-f5584d726a61db9a41d5e145f295e553.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cl1a50j64nnlh"
path="res://.godot/imported/guest_page_held.png-3e362d6e51c4f0cac350cea38f5294d5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/guest_page_held.png"
dest_files=["res://.godot/imported/guest_page_held.png-3e362d6e51c4f0cac350cea38f5294d5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/decor/hand_bell.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cgl8g5eqy8xm0"
path="res://.godot/imported/hand_bell.png-8625f0032520c2467e9c77147bfec033.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/hand_bell.png"
dest_files=["res://.godot/imported/hand_bell.png-8625f0032520c2467e9c77147bfec033.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/decor/joker_card.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dka1l6m05sgfu"
path="res://.godot/imported/joker_card.png-aac9110f62f7188adc98898207325911.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/joker_card.png"
dest_files=["res://.godot/imported/joker_card.png-aac9110f62f7188adc98898207325911.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ci0eiwg65tru4"
path="res://.godot/imported/joker_in_hand.png-c35f1e54b3abdf1e1ac972c9ebb6a6e6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/joker_in_hand.png"
dest_files=["res://.godot/imported/joker_in_hand.png-c35f1e54b3abdf1e1ac972c9ebb6a6e6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/decor/mask_page.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://f63n7r3s0fs4"
path="res://.godot/imported/mask_page.png-347190794695378e5e5237ac2e50f558.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/mask_page.png"
dest_files=["res://.godot/imported/mask_page.png-347190794695378e5e5237ac2e50f558.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c3bxwu75mcl87"
path="res://.godot/imported/mask_page_held.png-f67cc2dd03522876a591fd919f77c25e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/mask_page_held.png"
dest_files=["res://.godot/imported/mask_page_held.png-f67cc2dd03522876a591fd919f77c25e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/decor/menu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://crjrcjpfo53t0"
path="res://.godot/imported/menu.png-6121d253eff00203ec20391aa9b477d2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/menu.png"
dest_files=["res://.godot/imported/menu.png-6121d253eff00203ec20391aa9b477d2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/decor/reception.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ce7wdct4e27e1"
path="res://.godot/imported/reception.png-224e73e09dfcf1c403919d65bccce39f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/reception.png"
dest_files=["res://.godot/imported/reception.png-224e73e09dfcf1c403919d65bccce39f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/decor/table.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bd86sgiucdbx7"
path="res://.godot/imported/table.png-e344fde6860091f2d271dc609f093373.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/table.png"
dest_files=["res://.godot/imported/table.png-e344fde6860091f2d271dc609f093373.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dov4apmrl77jl"
path="res://.godot/imported/table_defeat.png-35fa51313c3e7b5bce8839715fedf6c4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/table_defeat.png"
dest_files=["res://.godot/imported/table_defeat.png-35fa51313c3e7b5bce8839715fedf6c4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bp3nbt23n348t"
path="res://.godot/imported/table_success.png-ebc0ddb23cb84d5c287ce693689df94c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/decor/table_success.png"
dest_files=["res://.godot/imported/table_success.png-ebc0ddb23cb84d5c287ce693689df94c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/masks/Bouche 1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dr265gon4k377"
path="res://.godot/imported/Bouche 1.png-829bdfefb380a5c2146fb79677a3e54e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/masks/Bouche 1.png"
dest_files=["res://.godot/imported/Bouche 1.png-829bdfefb380a5c2146fb79677a3e54e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/masks/Bouche 2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://02al0mfbvjc1"
path="res://.godot/imported/Bouche 2.png-cef33809e989213ecdcb5eaec450d079.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/masks/Bouche 2.png"
dest_files=["res://.godot/imported/Bouche 2.png-cef33809e989213ecdcb5eaec450d079.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/masks/Bouche 3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bfnvs01ynm55q"
path="res://.godot/imported/Bouche 3.png-51e19461e5a132b25fc8982a596c9ed1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/masks/Bouche 3.png"
dest_files=["res://.godot/imported/Bouche 3.png-51e19461e5a132b25fc8982a596c9ed1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/masks/Masque 1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://sf7sjug1spau"
path="res://.godot/imported/Masque 1.png-eb72e8eb7e9ea0118f13661678749e2c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/masks/Masque 1.png"
dest_files=["res://.godot/imported/Masque 1.png-eb72e8eb7e9ea0118f13661678749e2c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/masks/Masque 2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bi2qq11fbn2yd"
path="res://.godot/imported/Masque 2.png-13d6790879ff2a0556fe608010b08611.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/masks/Masque 2.png"
dest_files=["res://.godot/imported/Masque 2.png-13d6790879ff2a0556fe608010b08611.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/masks/Masque 3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b4d451508si3t"
path="res://.godot/imported/Masque 3.png-cb754273338553c9b43425a94be03eb8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/masks/Masque 3.png"
dest_files=["res://.godot/imported/Masque 3.png-cb754273338553c9b43425a94be03eb8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -40,6 +40,7 @@ BackgroundMusicPlayer="*uid://djyx7damwjgdg"
window/size/viewport_width=1920
window/size/viewport_height=1080
window/stretch/mode="canvas_items"
[editor_plugins]

View File

@@ -1,30 +1,24 @@
[gd_resource type="Resource" script_class="CharacterResource" format=3 uid="uid://c87odmn680x7"]
[ext_resource type="Texture2D" uid="uid://cudme4y8elyha" path="res://assets/sprites/sprites by judas la carotte/sprite2 happy.png" id="1_tppor"]
[ext_resource type="Texture2D" uid="uid://dwy3kklywl0ci" path="res://assets/characters/Perso 1.png" id="1_tppor"]
[ext_resource type="Script" uid="uid://bwam50qxikpw4" path="res://scenes/character/chara_resource.gd" id="2_cyb15"]
[ext_resource type="Resource" uid="uid://b6614fqoymxur" path="res://resources/traits/silent.tres" id="3_q0kni"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="3_s53hh"]
[ext_resource type="Resource" uid="uid://cefwc4j3p7m3v" path="res://resources/traits/black.tres" id="4_tppor"]
[ext_resource type="Resource" uid="uid://blu5de2dhiu46" path="res://resources/traits/young.tres" id="5_cyb15"]
[ext_resource type="Resource" uid="uid://ct4iy75ai7lmy" path="res://resources/traits/enby.tres" id="6_tppor"]
[ext_resource type="Resource" uid="uid://b118uebk1ldog" path="res://resources/traits/noble.tres" id="7_03y2d"]
[ext_resource type="Resource" uid="uid://lhskiwag15k" path="res://resources/traits/talkative.tres" id="4_w5qmk"]
[ext_resource type="Resource" uid="uid://ct4iy75ai7lmy" path="res://resources/traits/enby.tres" id="6_cyb15"]
[ext_resource type="Resource" uid="uid://cb8jguybr1tlj" path="res://resources/traits/white.tres" id="7_s53hh"]
[ext_resource type="Resource" uid="uid://blu5de2dhiu46" path="res://resources/traits/young.tres" id="8_p10lp"]
[resource]
script = ExtResource("2_cyb15")
name = "Duchex"
chara_sprite = ExtResource("1_tppor")
mask_eyes_position = Vector2(-65.16, -435.27)
mask_eyes_rotation = 0.029670597283903404
mask_mouth_position = Vector2(-20.035, -304.18)
mask_mouth_rotation = -0.17627825445142767
traits = Array[ExtResource("3_s53hh")]([ExtResource("4_tppor"), ExtResource("5_cyb15"), ExtResource("6_tppor"), ExtResource("7_03y2d")])
preferences = Dictionary[int, int]({
0: 0,
2: 0,
3: 0,
5: 0,
6: 2,
8: 2,
13: 0,
14: 3
mask_eyes_position = Vector2(92.37, 201.415)
mask_eyes_rotation = -0.017453292519943295
mask_mouth_position = Vector2(60.92, 208.96)
mask_mouth_rotation = -0.05235987755982989
traits = Array[ExtResource("3_s53hh")]([ExtResource("4_w5qmk"), ExtResource("6_cyb15"), ExtResource("7_s53hh"), ExtResource("8_p10lp")])
preferences = Dictionary[ExtResource("3_s53hh"), int]({
ExtResource("3_q0kni"): 0
})
metadata/_custom_type_script = "uid://bwam50qxikpw4"

View File

@@ -1,25 +1,19 @@
[gd_resource type="Resource" script_class="CharacterResource" format=3 uid="uid://gy4ygqrjj5ys"]
[ext_resource type="Texture2D" uid="uid://b8xlbx8iub20m" path="res://assets/sprites/sprites by judas la carotte/sprite4 happy.png" id="1_d1fpd"]
[ext_resource type="Texture2D" uid="uid://spbjfmmk8o0s" path="res://assets/characters/Perso 3.png" id="1_d1fpd"]
[ext_resource type="Script" uid="uid://bwam50qxikpw4" path="res://scenes/character/chara_resource.gd" id="2_ce0p8"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="3_n21sh"]
[ext_resource type="Resource" uid="uid://cefwc4j3p7m3v" path="res://resources/traits/black.tres" id="4_d1fpd"]
[ext_resource type="Resource" uid="uid://blu5de2dhiu46" path="res://resources/traits/young.tres" id="5_12asi"]
[ext_resource type="Resource" uid="uid://bmx28vnfhcs8b" path="res://resources/traits/man.tres" id="6_12asi"]
[ext_resource type="Resource" uid="uid://b118uebk1ldog" path="res://resources/traits/noble.tres" id="7_d1fpd"]
[ext_resource type="Resource" uid="uid://lhskiwag15k" path="res://resources/traits/talkative.tres" id="3_tvmgq"]
[ext_resource type="Resource" uid="uid://b6614fqoymxur" path="res://resources/traits/silent.tres" id="5_tl7uu"]
[resource]
script = ExtResource("2_ce0p8")
name = "Duke"
chara_sprite = ExtResource("1_d1fpd")
mask_eyes_position = Vector2(-87.17, -459.345)
mask_eyes_rotation = 0.11693705988361988
mask_mouth_position = Vector2(-60.07, -343.01)
traits = Array[ExtResource("3_n21sh")]([ExtResource("4_d1fpd"), ExtResource("5_12asi"), ExtResource("6_12asi"), ExtResource("7_d1fpd")])
preferences = Dictionary[int, int]({
5: 0,
6: 0,
8: 3,
11: 0
mask_eyes_rotation = -0.03490658503988659
mask_mouth_position = Vector2(-12.15, 2.27)
traits = Array[ExtResource("3_n21sh")]([ExtResource("5_tl7uu")])
preferences = Dictionary[ExtResource("3_n21sh"), int]({
ExtResource("3_tvmgq"): 0
})
metadata/_custom_type_script = "uid://bwam50qxikpw4"

View File

@@ -3,10 +3,6 @@
[ext_resource type="Texture2D" uid="uid://c57s3oksagauh" path="res://assets/sprites/sprites by judas la carotte/sprite3 happy small.png" id="1_k1rnw"]
[ext_resource type="Script" uid="uid://bwam50qxikpw4" path="res://scenes/character/chara_resource.gd" id="3_vvog1"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="4_0s3fj"]
[ext_resource type="Resource" uid="uid://bc376om20da8m" path="res://resources/traits/royal.tres" id="7_0s3fj"]
[ext_resource type="Resource" uid="uid://cb8jguybr1tlj" path="res://resources/traits/white.tres" id="8_u46dm"]
[ext_resource type="Resource" uid="uid://bvophatys2o1o" path="res://resources/traits/old.tres" id="9_fvshn"]
[ext_resource type="Resource" uid="uid://bmx28vnfhcs8b" path="res://resources/traits/man.tres" id="10_hcmf1"]
[resource]
script = ExtResource("3_vvog1")
@@ -16,13 +12,4 @@ mask_eyes_position = Vector2(-21.75, -274.015)
mask_eyes_rotation = 0.06981317007977318
mask_mouth_position = Vector2(-7.63, -186.87)
mask_mouth_rotation = -0.1884955592153878
traits = Array[ExtResource("4_0s3fj")]([ExtResource("8_u46dm"), ExtResource("9_fvshn"), ExtResource("10_hcmf1"), ExtResource("7_0s3fj")])
preferences = Dictionary[int, int]({
4: 0,
6: 0,
11: 1,
12: 3,
13: 0,
14: 1
})
metadata/_custom_type_script = "uid://bwam50qxikpw4"

View File

@@ -1,27 +1,27 @@
[gd_resource type="Resource" script_class="CharacterResource" format=3 uid="uid://wq3g1j3l4gl6"]
[ext_resource type="Texture2D" uid="uid://b60pu6ukbobb2" path="res://assets/sprites/sprites by judas la carotte/sprite1 happy small.png" id="1_g8bvo"]
[ext_resource type="Texture2D" uid="uid://c726frtpkk1a8" path="res://assets/characters/Perso 2.png" id="1_d1164"]
[ext_resource type="Script" uid="uid://bwam50qxikpw4" path="res://scenes/character/chara_resource.gd" id="2_g8bvo"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="3_dkw07"]
[ext_resource type="Resource" uid="uid://bc376om20da8m" path="res://resources/traits/royal.tres" id="8_d1164"]
[ext_resource type="Resource" uid="uid://lhskiwag15k" path="res://resources/traits/talkative.tres" id="3_y3hrs"]
[ext_resource type="Resource" uid="uid://b6614fqoymxur" path="res://resources/traits/silent.tres" id="4_hdamc"]
[ext_resource type="Resource" uid="uid://ct4iy75ai7lmy" path="res://resources/traits/enby.tres" id="5_wjlcp"]
[ext_resource type="Resource" uid="uid://bvophatys2o1o" path="res://resources/traits/old.tres" id="8_j0xhd"]
[ext_resource type="Resource" uid="uid://cb8jguybr1tlj" path="res://resources/traits/white.tres" id="9_aywjr"]
[ext_resource type="Resource" uid="uid://dmd7gilnmcefr" path="res://resources/traits/woman.tres" id="10_tw1u2"]
[ext_resource type="Resource" uid="uid://deygyo2n88228" path="res://resources/traits/speaks_of_cats.tres" id="11_utmh4"]
[resource]
script = ExtResource("2_g8bvo")
name = "Queen"
chara_sprite = ExtResource("1_g8bvo")
mask_eyes_position = Vector2(-58.06, -232.2)
mask_mouth_position = Vector2(-27.795, -167.255)
traits = Array[ExtResource("3_dkw07")]([ExtResource("9_aywjr"), ExtResource("8_j0xhd"), ExtResource("10_tw1u2"), ExtResource("8_d1164"), ExtResource("11_utmh4")])
preferences = Dictionary[int, int]({
5: 2,
6: 0,
9: 2,
11: 3,
12: 0,
14: 3
chara_sprite = ExtResource("1_d1164")
mask_eyes_position = Vector2(48, 130)
mask_eyes_rotation = 0.05235987755982989
mask_mouth_position = Vector2(31.595, 176.245)
mask_mouth_rotation = 0.017453292519943295
traits = Array[ExtResource("3_dkw07")]([ExtResource("3_y3hrs"), ExtResource("9_aywjr"), ExtResource("10_tw1u2"), ExtResource("8_j0xhd")])
preferences = Dictionary[ExtResource("3_dkw07"), int]({
ExtResource("3_y3hrs"): 4,
ExtResource("4_hdamc"): 0,
ExtResource("5_wjlcp"): 3
})
metadata/_custom_type_script = "uid://bwam50qxikpw4"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="MaskedChara" format=3 uid="uid://c25kg6um2k1dy"]
[ext_resource type="Resource" uid="uid://c87odmn680x7" path="res://resources/characters/duchex.tres" id="1_nsuhm"]
[ext_resource type="Script" uid="uid://b8peyg02l0mrn" path="res://scenes/managers/masked_chara.gd" id="2_lb6bi"]
[ext_resource type="Resource" uid="uid://pdiaprcknftw" path="res://resources/masks/mute.tres" id="2_xmkje"]
[resource]
script = ExtResource("2_lb6bi")
character = ExtResource("1_nsuhm")
mouth_mask = ExtResource("2_xmkje")
metadata/_custom_type_script = "uid://b8peyg02l0mrn"

View File

@@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="MaskedChara" format=3 uid="uid://cfargib0urafc"]
[ext_resource type="Script" uid="uid://b8peyg02l0mrn" path="res://scenes/managers/masked_chara.gd" id="1_cnap1"]
[ext_resource type="Resource" uid="uid://c87odmn680x7" path="res://resources/characters/duchex.tres" id="1_ts6dw"]
[resource]
script = ExtResource("1_cnap1")
character = ExtResource("1_ts6dw")
metadata/_custom_type_script = "uid://b8peyg02l0mrn"

View File

@@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="MaskedChara" format=3 uid="uid://bfvky2dpu6vv0"]
[ext_resource type="Resource" uid="uid://gy4ygqrjj5ys" path="res://resources/characters/duke.tres" id="1_b31ng"]
[ext_resource type="Script" uid="uid://b8peyg02l0mrn" path="res://scenes/managers/masked_chara.gd" id="1_yqugq"]
[resource]
script = ExtResource("1_yqugq")
character = ExtResource("1_b31ng")
metadata/_custom_type_script = "uid://b8peyg02l0mrn"

View File

@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="MaskedChara" format=3 uid="uid://bk7f67x08r8vm"]
[ext_resource type="Resource" uid="uid://da2ptl3f7h0ot" path="res://resources/characters/king.tres" id="1_aaqo2"]
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="1_evtq7"]
[ext_resource type="Script" uid="uid://b8peyg02l0mrn" path="res://scenes/managers/masked_chara.gd" id="2_aaqo2"]
[resource]
script = ExtResource("2_aaqo2")
character = ExtResource("1_aaqo2")
metadata/_custom_type_script = "uid://b8peyg02l0mrn"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="MaskedChara" format=3 uid="uid://im83307vumpx"]
[ext_resource type="Resource" uid="uid://wq3g1j3l4gl6" path="res://resources/characters/queen.tres" id="1_8rhpq"]
[ext_resource type="Resource" uid="uid://vsvgpvluq7sh" path="res://resources/masks/blind.tres" id="2_57tio"]
[ext_resource type="Script" uid="uid://b8peyg02l0mrn" path="res://scenes/managers/masked_chara.gd" id="2_84xil"]
[resource]
script = ExtResource("2_84xil")
character = ExtResource("1_8rhpq")
face_mask = ExtResource("2_57tio")
metadata/_custom_type_script = "uid://b8peyg02l0mrn"

View File

@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="MaskedChara" format=3 uid="uid://dfguca2526tk6"]
[ext_resource type="Resource" uid="uid://wq3g1j3l4gl6" path="res://resources/characters/queen.tres" id="1_3qy23"]
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="1_fompr"]
[ext_resource type="Script" uid="uid://b8peyg02l0mrn" path="res://scenes/managers/masked_chara.gd" id="2_3qy23"]
[resource]
script = ExtResource("2_3qy23")
character = ExtResource("1_3qy23")
metadata/_custom_type_script = "uid://b8peyg02l0mrn"

View File

@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="MaskResource" format=3 uid="uid://vsvgpvluq7sh"]
[ext_resource type="Texture2D" uid="uid://sf7sjug1spau" path="res://assets/masks/Masque 1.png" id="1_ls5lh"]
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="1_namv3"]
[resource]
script = ExtResource("1_namv3")
mask_sprite = ExtResource("1_ls5lh")
stimuli_multiplier = 0.0
metadata/_custom_type_script = "uid://d26mv2xtvmpqt"

View File

@@ -1,12 +0,0 @@
[gd_resource type="Resource" script_class="MaskResource" format=3 uid="uid://cuf1ocb4px4m3"]
[ext_resource type="Texture2D" uid="uid://buql3bcbqx4pp" path="res://menus/assets/git_logo/Git-Logo-2Color.png" id="1_1u1n5"]
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="2_ypt8w"]
[resource]
script = ExtResource("2_ypt8w")
mask_sprite = ExtResource("1_1u1n5")
tags_multipliers = Dictionary[int, int]({
12: 0
})
metadata/_custom_type_script = "uid://d26mv2xtvmpqt"

11
resources/masks/deaf.tres Normal file
View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="MaskResource" format=3 uid="uid://t2n1q71ce4x6"]
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="1_ef12a"]
[ext_resource type="Texture2D" uid="uid://bi2qq11fbn2yd" path="res://assets/masks/Masque 2.png" id="1_ubhtg"]
[resource]
script = ExtResource("1_ef12a")
mask_sprite = ExtResource("1_ubhtg")
stimuli = 1
stimuli_multiplier = 0.0
metadata/_custom_type_script = "uid://d26mv2xtvmpqt"

View File

@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="MaskResource" format=3 uid="uid://kau80jesm22w"]
[ext_resource type="Texture2D" uid="uid://dr265gon4k377" path="res://assets/masks/Bouche 1.png" id="1_r5drl"]
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="2_ncal4"]
[resource]
script = ExtResource("2_ncal4")
mask_sprite = ExtResource("1_r5drl")
region = 1
stimuli = 1
stimuli_multiplier = -2.0
metadata/_custom_type_script = "uid://d26mv2xtvmpqt"

View File

@@ -1,11 +1,12 @@
[gd_resource type="Resource" script_class="MaskResource" format=3 uid="uid://pdiaprcknftw"]
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="1_urvbb"]
[ext_resource type="Texture2D" uid="uid://cftllq6l7xclt" path="res://icon.svg" id="1_wp4x3"]
[ext_resource type="Texture2D" uid="uid://bfnvs01ynm55q" path="res://assets/masks/Bouche 3.png" id="1_wp4x3"]
[resource]
script = ExtResource("1_urvbb")
mask_sprite = ExtResource("1_wp4x3")
region = 1
stimuli = 1
stimuli_multiplier = 0.0
metadata/_custom_type_script = "uid://d26mv2xtvmpqt"

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="MaskResource" format=3 uid="uid://q3o5oxegjx2"]
[ext_resource type="Texture2D" uid="uid://b4d451508si3t" path="res://assets/masks/Masque 3.png" id="1_kk6ma"]
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="1_tqqjf"]
[resource]
script = ExtResource("1_tqqjf")
mask_sprite = ExtResource("1_kk6ma")
stimuli = 2
stimuli_multiplier = 0.0
metadata/_custom_type_script = "uid://d26mv2xtvmpqt"

View File

@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="MaskResource" format=3 uid="uid://divy6byhpwgs2"]
[ext_resource type="Texture2D" uid="uid://02al0mfbvjc1" path="res://assets/masks/Bouche 2.png" id="1_dunu4"]
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="2_cle5s"]
[resource]
script = ExtResource("2_cle5s")
mask_sprite = ExtResource("1_dunu4")
region = 1
stimuli = 1
stimuli_multiplier = 2.0
metadata/_custom_type_script = "uid://d26mv2xtvmpqt"

View File

@@ -1,12 +0,0 @@
[gd_resource type="Resource" script_class="MaskResource" format=3 uid="uid://cbcqtj8mxngfy"]
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="1_fs0fy"]
[ext_resource type="Texture2D" uid="uid://cftllq6l7xclt" path="res://icon.svg" id="1_fv3id"]
[resource]
script = ExtResource("1_fs0fy")
mask_sprite = ExtResource("1_fv3id")
mask_transform = null
category = 3
category_multiplier = 0.0
metadata/_custom_type_script = "uid://d26mv2xtvmpqt"

View File

@@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="Trait" format=3 uid="uid://b6614fqoymxur"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="1_750wv"]
[resource]
script = ExtResource("1_750wv")
name = "silent"
stimulis = Array[int]([1])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="Trait" format=3 uid="uid://lhskiwag15k"]
[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="1_rcjnw"]
[resource]
script = ExtResource("1_rcjnw")
name = "talkative"
stimulis = Array[int]([1])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -5,6 +5,5 @@
[resource]
script = ExtResource("1_msbkw")
name = "young"
stimulis = Array[int]([1, 2])
tags = Array[int]([0])
stimulis = Array[int]([1])
metadata/_custom_type_script = "uid://cya40uohlvgbr"

View File

@@ -3,7 +3,7 @@ extends Node
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
print("coucou")
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.

View File

@@ -21,9 +21,9 @@ func _process(delta: float) -> void:
if position.x > limit_right_at_center:
position.x = limit_right_at_center
if should_move_right:
if should_move_right and position.x < limit_right_at_center:
position.x += pan_speed
if should_move_left and position.x > 0:
if should_move_left and position.x > limit_left_at_center:
position.x -= pan_speed

View File

@@ -6,6 +6,7 @@ class_name CharacterResource
enum Preference {
LOVE,
APPROVE,
DONT_CARE,
DISAPPROVE,
HATE
}
@@ -41,4 +42,4 @@ var mask_mouth_rotation : float = 0.0:
@export_category("Traits and preferences")
@export var traits: Array[Trait]
@export var preferences: Dictionary[Trait.Tag, Preference]
@export var preferences: Dictionary[Trait, Preference]

View File

@@ -11,6 +11,8 @@ class_name Character
@onready var mask_eyes: Mask = $MaskEyes
@onready var mask_mouth: Mask = $MaskMouth
@onready var animation_player: AnimationPlayer = $AnimationPlayer
func _on_chara_resource_changed() -> void:
if chara_resource == null:
return
@@ -43,3 +45,12 @@ func _engine_process(delta: float) -> void:
mask_eyes.rotation = chara_resource.mask_eyes_rotation
mask_mouth.position = chara_resource.mask_mouth_position
mask_mouth.rotation = chara_resource.mask_mouth_rotation
func come_in() -> void:
animation_player.play("come_in")
func go_out() -> void:
animation_player.play("go_out")

View File

@@ -1,11 +1,162 @@
[gd_scene format=3 uid="uid://bvpyqyftqhy45"]
[ext_resource type="Script" uid="uid://dnt4l1eghm1gi" path="res://scenes/character/character.gd" id="1_cuyo6"]
[ext_resource type="Resource" uid="uid://wq3g1j3l4gl6" path="res://resources/characters/queen.tres" id="2_fgi2k"]
[ext_resource type="Texture2D" uid="uid://b60pu6ukbobb2" path="res://assets/sprites/sprites by judas la carotte/sprite1 happy small.png" id="3_f8hpl"]
[ext_resource type="Resource" uid="uid://c87odmn680x7" path="res://resources/characters/duchex.tres" id="2_fgi2k"]
[ext_resource type="Texture2D" uid="uid://dwy3kklywl0ci" path="res://assets/characters/Perso 1.png" id="3_f8hpl"]
[ext_resource type="PackedScene" uid="uid://3jlukpb5hefb" path="res://scenes/mask/mask.tscn" id="3_mutn8"]
[sub_resource type="Animation" id="Animation_fgi2k"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.2, 0.2)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath(".:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_f8hpl"]
resource_name = "come_in"
length = 1.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1.2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0.2, 0.2), Vector2(0.35, 0.35)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:position")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.20000002, 0.40000004, 0.6, 0.8000001, 1, 1.2),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Vector2(0, -50), Vector2(0, -75), Vector2(0, -60), Vector2(0, -180), Vector2(0, -160), Vector2(0, -280), Vector2(0, -260)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath(".:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 1.2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(0, 0, 0, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_7ex5l"]
resource_name = "go_out"
length = 1.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1.2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(0, 0, 0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:position")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.20000002, 0.40000004, 0.6, 0.8000001, 1, 1.2),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Vector2(0, -260), Vector2(109.185, -300), Vector2(338.474, -260), Vector2(651.017, -300), Vector2(999.045, -260), Vector2(1314.317, -300), Vector2(1474, -260)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 1.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_7ex5l"]
_data = {
&"RESET": SubResource("Animation_fgi2k"),
&"come_in": SubResource("Animation_f8hpl"),
&"go_out": SubResource("Animation_7ex5l")
}
[node name="Character" type="Node2D" unique_id=138741531]
scale = Vector2(0.2, 0.2)
script = ExtResource("1_cuyo6")
chara_resource = ExtResource("2_fgi2k")
@@ -13,7 +164,12 @@ chara_resource = ExtResource("2_fgi2k")
texture = ExtResource("3_f8hpl")
[node name="MaskMouth" parent="." unique_id=1087336064 instance=ExtResource("3_mutn8")]
position = Vector2(-27.795, -167.255)
position = Vector2(60.92, 208.96)
rotation = -0.05235988
[node name="MaskEyes" parent="." unique_id=428968220 instance=ExtResource("3_mutn8")]
position = Vector2(-58.06, -232.2)
position = Vector2(92.37, 201.415)
rotation = -0.017453292
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=713965213]
libraries/ = SubResource("AnimationLibrary_7ex5l")

16
scenes/list/list.gd Normal file
View File

@@ -0,0 +1,16 @@
extends Area2D
class_name List
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func set_list(items: Array[Resource]):
print(items)

1
scenes/list/list.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://cexbywhlc4ykd

13
scenes/list/list.tscn Normal file
View File

@@ -0,0 +1,13 @@
[gd_scene format=3 uid="uid://0rq12xgcteak"]
[ext_resource type="Script" uid="uid://cexbywhlc4ykd" path="res://scenes/list/list.gd" id="1_khygj"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_trceg"]
radius = 198.0
height = 1044.0
[node name="List" type="Area2D" unique_id=36531496]
script = ExtResource("1_khygj")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=579673425]
shape = SubResource("CapsuleShape2D_trceg")

View File

@@ -20,10 +20,21 @@ func play_list_up_sfx() -> void:
func play_list_down_sfx() -> void:
stream_player.switch_to_clip_by_name("list_down")
func play_list_side_sfx() -> void:
stream_player.switch_to_clip_by_name("list_side")
func _on_guest_list_mouse_entered() -> void:
animation_player.play("guest_list_up")
animation_player.queue("guest_list_up")
func _on_guest_list_mouse_exited() -> void:
animation_player.play("guest_list_down")
animation_player.play_backwards("guest_list_up")
func _on_mask_list_mouse_entered() -> void:
animation_player.queue("mask_list_up")
func _on_mask_list_mouse_exited() -> void:
animation_player.play_backwards("mask_list_up")

View File

@@ -18,14 +18,31 @@
[ext_resource type="AudioStream" uid="uid://x6erlvj03nlm" path="res://assets/audio/kenney_casino-audio/Audio/card-slide-8.ogg" id="9_i7in8"]
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="9_m4h2d"]
[ext_resource type="AudioStream" uid="uid://vrw6idscfnei" path="res://assets/audio/kenney_casino-audio/Audio/card-shove-1.ogg" id="10_6llfj"]
[ext_resource type="Resource" uid="uid://cuf1ocb4px4m3" path="res://resources/masks/cat.tres" id="10_p8abn"]
[ext_resource type="AudioStream" uid="uid://b5ea6pr6bv85d" path="res://assets/audio/kenney_casino-audio/Audio/card-shove-2.ogg" id="11_0bhws"]
[ext_resource type="Resource" uid="uid://pdiaprcknftw" path="res://resources/masks/mute.tres" id="11_s17dp"]
[ext_resource type="Resource" uid="uid://cbcqtj8mxngfy" path="res://resources/masks/unracist.tres" id="12_37hlw"]
[ext_resource type="AudioStream" uid="uid://dpv07j0ia0ayl" path="res://assets/audio/kenney_casino-audio/Audio/card-shove-3.ogg" id="12_62atk"]
[ext_resource type="Texture2D" uid="uid://cftllq6l7xclt" path="res://icon.svg" id="13_6llfj"]
[ext_resource type="AudioStream" uid="uid://b7pe3ogc8rbvx" path="res://assets/audio/kenney_casino-audio/Audio/card-shove-4.ogg" id="13_i7in8"]
[ext_resource type="Script" uid="uid://cgctwciolfqe5" path="res://scenes/camera/camera_controller.gd" id="14_0bhws"]
[ext_resource type="Texture2D" uid="uid://c60m6ulhqcbga" path="res://assets/decor/BG.png" id="14_os81g"]
[ext_resource type="Texture2D" uid="uid://dbpdehppn5h8v" path="res://assets/decor/entrance_bg_objects.png" id="15_1k3ck"]
[ext_resource type="Resource" uid="uid://vsvgpvluq7sh" path="res://resources/masks/blind.tres" id="24_g2upo"]
[ext_resource type="PackedScene" uid="uid://0rq12xgcteak" path="res://scenes/list/list.tscn" id="25_6llfj"]
[ext_resource type="Resource" uid="uid://t2n1q71ce4x6" path="res://resources/masks/deaf.tres" id="25_38d3o"]
[ext_resource type="Resource" uid="uid://kau80jesm22w" path="res://resources/masks/falsy.tres" id="26_i6fjx"]
[ext_resource type="Resource" uid="uid://bfvky2dpu6vv0" path="res://resources/guests/duke_unmasked.tres" id="27_6w6mm"]
[ext_resource type="Resource" uid="uid://cfargib0urafc" path="res://resources/guests/duchex_unmasked.tres" id="27_62f45"]
[ext_resource type="Resource" uid="uid://q3o5oxegjx2" path="res://resources/masks/no_smell.tres" id="28_7dg2i"]
[ext_resource type="Resource" uid="uid://divy6byhpwgs2" path="res://resources/masks/truthy.tres" id="29_08tbl"]
[ext_resource type="Resource" uid="uid://c25kg6um2k1dy" path="res://resources/guests/duchex_mute.tres" id="29_62f45"]
[ext_resource type="Resource" uid="uid://dfguca2526tk6" path="res://resources/guests/queen_unmasked.tres" id="30_6g32y"]
[ext_resource type="Resource" uid="uid://im83307vumpx" path="res://resources/guests/queen_blind.tres" id="33_f4j1x"]
[ext_resource type="Script" uid="uid://bb0od2qqdx3or" path="res://scenes/main/ready_bell.gd" id="33_tbnf8"]
[ext_resource type="Texture2D" uid="uid://c3bxwu75mcl87" path="res://assets/decor/mask_page_held.png" id="35_1k3ck"]
[ext_resource type="Texture2D" uid="uid://ce7wdct4e27e1" path="res://assets/decor/reception.png" id="35_62f45"]
[ext_resource type="PackedScene" uid="uid://cayrxqnypoytu" path="res://scenes/table/table.tscn" id="35_r1bmu"]
[ext_resource type="Texture2D" uid="uid://cl1a50j64nnlh" path="res://assets/decor/guest_page_held.png" id="36_62f45"]
[ext_resource type="Texture2D" uid="uid://coahojeky8ul7" path="res://assets/decor/bell.png" id="37_6g32y"]
[ext_resource type="Texture2D" uid="uid://cgl8g5eqy8xm0" path="res://assets/decor/hand_bell.png" id="39_62f45"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_gkmcc"]
random_pitch = 1.122462
@@ -49,10 +66,10 @@ stream_3/stream = ExtResource("13_i7in8")
[sub_resource type="AudioStreamInteractive" id="AudioStreamInteractive_7smn1"]
clip_count = 2
clip_0/name = &"list_up"
clip_0/name = &"list_side"
clip_0/stream = SubResource("AudioStreamRandomizer_gkmcc")
clip_0/auto_advance = 0
clip_1/name = &"list_down"
clip_1/name = &"list_up"
clip_1/stream = SubResource("AudioStreamRandomizer_7nlll")
clip_1/auto_advance = 0
initial_clip = 1
@@ -65,10 +82,6 @@ Vector2i(-1, -1): {
}
}
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_trceg"]
radius = 198.0
height = 1044.0
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ya4ey"]
size = Vector2(512, 1080)
@@ -98,10 +111,34 @@ tracks/1/keys = {
"update": 0,
"values": [-0.16732943]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("MaskList:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(409, 523)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("MaskList:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.1675516]
}
[sub_resource type="Animation" id="Animation_hxu8e"]
resource_name = "guest_list_down"
length = 0.5
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@@ -109,7 +146,7 @@ tracks/0/path = NodePath("GuestList:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"times": PackedFloat32Array(0, 0.19999999),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-388, 176), Vector2(-409, 523)]
@@ -121,7 +158,7 @@ tracks/1/path = NodePath("GuestList:rotation")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"times": PackedFloat32Array(0, 0.19999999),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, -0.16732943]
@@ -143,7 +180,7 @@ tracks/2/keys = {
[sub_resource type="Animation" id="Animation_raeie"]
resource_name = "guest_list_up"
length = 0.5
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@@ -151,7 +188,7 @@ tracks/0/path = NodePath("GuestList:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"times": PackedFloat32Array(0, 0.19999999),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-409, 523), Vector2(-388, 176)]
@@ -163,7 +200,7 @@ tracks/1/path = NodePath("GuestList:rotation")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"times": PackedFloat32Array(0, 0.19999999),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [-0.16732943, 0.0]
@@ -183,11 +220,138 @@ tracks/2/keys = {
}]
}
[sub_resource type="Animation" id="Animation_62atk"]
resource_name = "mask_list_down"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("MaskList:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.19999999),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(388, 176), Vector2(409, 523)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MaskList:rotation")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.19999999),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 0.1675516]
}
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"play_list_down_sfx"
}]
}
[sub_resource type="Animation" id="Animation_0bhws"]
resource_name = "mask_list_up"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("MaskList:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.19999999),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(409, 523), Vector2(388, 176)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MaskList:rotation")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.19999999),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.1675516, 0.0]
}
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"play_list_up_sfx"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_hxu8e"]
_data = {
&"RESET": SubResource("Animation_7smn1"),
&"guest_list_down": SubResource("Animation_hxu8e"),
&"guest_list_up": SubResource("Animation_raeie")
&"guest_list_up": SubResource("Animation_raeie"),
&"mask_list_down": SubResource("Animation_62atk"),
&"mask_list_up": SubResource("Animation_0bhws")
}
[sub_resource type="CircleShape2D" id="CircleShape2D_62atk"]
radius = 150.0
[sub_resource type="Animation" id="Animation_6g32y"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(131, 317.00003)]
}
[sub_resource type="Animation" id="Animation_62f45"]
resource_name = "idle"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.16666667),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(131, 317.00003), Vector2(131, 478)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6g32y"]
_data = {
&"RESET": SubResource("Animation_6g32y"),
&"idle": SubResource("Animation_62f45")
}
[node name="Main" type="Node2D" unique_id=875553242]
@@ -198,34 +362,42 @@ stream = SubResource("AudioStreamInteractive_7smn1")
autoplay = true
bus = &"SFX"
[node name="Character" parent="." unique_id=138741531 instance=ExtResource("2_raeie")]
scale = Vector2(0.5488516, 0.5501616)
[node name="Bg" type="Sprite2D" parent="." unique_id=1478548170]
position = Vector2(1480, 0)
scale = Vector2(0.5, 0.5)
texture = ExtResource("14_os81g")
[node name="GameManager" type="Node" parent="." unique_id=528989100]
[node name="EntranceBgObjects" type="Sprite2D" parent="." unique_id=1029618154]
position = Vector2(30, -129)
scale = Vector2(0.5, 0.5)
texture = ExtResource("15_1k3ck")
[node name="Character" parent="." unique_id=138741531 instance=ExtResource("2_raeie")]
[node name="GameManager" type="Node" parent="." unique_id=528989100 node_paths=PackedStringArray("character", "guest_list", "mask_list", "tables")]
script = ExtResource("3_hxu8e")
character_roster = Array[ExtResource("4_nvumn")]([ExtResource("5_ou6is"), ExtResource("6_necax"), ExtResource("7_r4lks"), ExtResource("8_pg34l")])
mask_roster = Array[ExtResource("9_m4h2d")]([ExtResource("10_p8abn"), ExtResource("11_s17dp"), ExtResource("12_37hlw")])
[node name="GuestList" type="Node2D" parent="." unique_id=1314693850]
position = Vector2(-409, 523)
rotation = -0.16732943
[node name="Sprite2D" type="Sprite2D" parent="GuestList" unique_id=508689157]
texture = ExtResource("13_6llfj")
[node name="Area2D" type="Area2D" parent="GuestList" unique_id=416235822]
[node name="CollisionShape2D" type="CollisionShape2D" parent="GuestList/Area2D" unique_id=845691842]
shape = SubResource("CapsuleShape2D_trceg")
mask_roster = Array[ExtResource("9_m4h2d")]([ExtResource("24_g2upo"), ExtResource("25_38d3o"), ExtResource("26_i6fjx"), ExtResource("11_s17dp"), ExtResource("28_7dg2i"), ExtResource("29_08tbl")])
character = NodePath("../Character")
guest_list = NodePath("../GuestList")
mask_list = NodePath("../MaskList")
tables = [NodePath("../Table"), NodePath("../Table2"), NodePath("../Table3")]
lvl1_guest_1 = ExtResource("27_62f45")
lvl1_guest_2 = ExtResource("27_6w6mm")
lvl2_guest_1 = ExtResource("27_62f45")
lvl2_guest_2 = ExtResource("30_6g32y")
lvl3_guest_1 = ExtResource("33_f4j1x")
lvl3_guest_2 = ExtResource("29_62f45")
[node name="Camera2D" type="Camera2D" parent="." unique_id=1166192115]
limit_left = -960
limit_top = -540
limit_right = 4096
limit_right = 3680
limit_bottom = 540
position_smoothing_enabled = true
position_smoothing_speed = 10.0
script = ExtResource("14_0bhws")
pan_speed = 10.0
pan_speed = 16.04
[node name="PanRight" type="Area2D" parent="Camera2D" unique_id=1684320772]
position = Vector2(960, 0)
@@ -242,9 +414,72 @@ shape = SubResource("RectangleShape2D_ya4ey")
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1813843404]
libraries/ = SubResource("AnimationLibrary_hxu8e")
[connection signal="mouse_entered" from="GuestList/Area2D" to="." method="_on_guest_list_mouse_entered"]
[connection signal="mouse_exited" from="GuestList/Area2D" to="." method="_on_guest_list_mouse_exited"]
[node name="Table" parent="." unique_id=1315188460 instance=ExtResource("35_r1bmu")]
position = Vector2(2711, 22)
[node name="Table2" parent="." unique_id=141765359 instance=ExtResource("35_r1bmu")]
position = Vector2(2029, 236)
[node name="Table3" parent="." unique_id=569701756 instance=ExtResource("35_r1bmu")]
position = Vector2(3430, 217)
[node name="Reception" type="Sprite2D" parent="." unique_id=96935292]
position = Vector2(95, 156)
scale = Vector2(0.5, 0.5)
texture = ExtResource("35_62f45")
[node name="MaskList" parent="." unique_id=437192154 instance=ExtResource("25_6llfj")]
visible = false
position = Vector2(409, 523)
rotation = 0.1675516
scale = Vector2(0.99999994, 0.99999994)
[node name="Sprite2D" type="Sprite2D" parent="MaskList" unique_id=1216540471]
position = Vector2(209.40524, 188.72063)
scale = Vector2(0.5, 0.5)
texture = ExtResource("35_1k3ck")
flip_h = true
[node name="GuestList" parent="." unique_id=2089675317 instance=ExtResource("25_6llfj")]
position = Vector2(-409, 523)
rotation = -0.16732943
[node name="Sprite2D" type="Sprite2D" parent="GuestList" unique_id=2026369586]
position = Vector2(-218.29799, 139.59222)
scale = Vector2(0.5, 0.5)
texture = ExtResource("36_62f45")
[node name="ReadyBell" type="Area2D" parent="." unique_id=1350504622]
position = Vector2(-5, 376)
script = ExtResource("33_tbnf8")
[node name="CollisionShape2D" type="CollisionShape2D" parent="ReadyBell" unique_id=403528288]
shape = SubResource("CircleShape2D_62atk")
[node name="Sprite2D" type="Sprite2D" parent="ReadyBell" unique_id=1323765091]
scale = Vector2(0.3, 0.3)
texture = ExtResource("37_6g32y")
[node name="RingBell" type="Sprite2D" parent="." unique_id=1001478580]
position = Vector2(131, 317.00003)
scale = Vector2(0.3, 0.3)
texture = ExtResource("39_62f45")
[node name="AnimationPlayer" type="AnimationPlayer" parent="RingBell" unique_id=1180701987]
libraries/ = SubResource("AnimationLibrary_6g32y")
autoplay = &"idle"
[connection signal="mouse_entered" from="Camera2D/PanRight" to="Camera2D" method="_on_pan_right_mouse_entered"]
[connection signal="mouse_exited" from="Camera2D/PanRight" to="Camera2D" method="_on_pan_right_mouse_exited"]
[connection signal="mouse_entered" from="Camera2D/PanLeft" to="Camera2D" method="_on_pan_left_mouse_entered"]
[connection signal="mouse_exited" from="Camera2D/PanLeft" to="Camera2D" method="_on_pan_left_mouse_exited"]
[connection signal="seat_clicked" from="Table" to="GameManager" method="on_seat_clicked"]
[connection signal="seat_clicked" from="Table2" to="GameManager" method="on_seat_clicked"]
[connection signal="seat_clicked" from="Table3" to="GameManager" method="on_seat_clicked"]
[connection signal="mouse_entered" from="MaskList" to="." method="_on_mask_list_mouse_entered"]
[connection signal="mouse_exited" from="MaskList" to="." method="_on_mask_list_mouse_exited"]
[connection signal="mouse_entered" from="GuestList" to="." method="_on_guest_list_mouse_entered"]
[connection signal="mouse_exited" from="GuestList" to="." method="_on_guest_list_mouse_exited"]
[connection signal="input_event" from="ReadyBell" to="GameManager" method="_on_ready_bell_input_event"]
[connection signal="mouse_entered" from="ReadyBell" to="ReadyBell" method="_on_mouse_entered"]
[connection signal="mouse_exited" from="ReadyBell" to="ReadyBell" method="_on_mouse_exited"]

19
scenes/main/ready_bell.gd Normal file
View File

@@ -0,0 +1,19 @@
extends Area2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_mouse_entered() -> void:
Input.set_default_cursor_shape(Input.CursorShape.CURSOR_POINTING_HAND)
func _on_mouse_exited() -> void:
Input.set_default_cursor_shape(Input.CursorShape.CURSOR_ARROW)

View File

@@ -0,0 +1 @@
uid://bb0od2qqdx3or

View File

@@ -6,6 +6,14 @@ class_name GameManager
@export var character_roster: Array[CharacterResource]
@export var mask_roster: Array[MaskResource]
@export_category("References")
@export var character: Character
@export var guest_list: List
@export var mask_list: List
@export_category("Tables")
@export var tables: Array[Table]
@export_category("Predetermined levels")
@export_group("Level 1")
@export var lvl1_guest_1: MaskedChara
@@ -15,8 +23,12 @@ class_name GameManager
@export var lvl2_guest_1: MaskedChara
@export var lvl2_guest_2: MaskedChara
@export_group("Level 3")
@export var lvl3_guest_1: MaskedChara
@export var lvl3_guest_2: MaskedChara
@export_category("Random levels")
@export var max_roster_size: int = 3;
@export var current_level: Levels = Levels.LVL1
@export_tool_button("Create chara roster") var create_roster_action = create_new_roster
var current_chara_roster: Array[MaskedChara]
@@ -29,27 +41,136 @@ enum GameState {
enum Levels {
LVL1,
LVL2,
LVL3,
RANDOM
}
var current_game_state = GameState.READY
var current_level = Levels.LVL1
var first_guest = true
var current_guest: MaskedChara
var selected_seat: Seat
var roster_size: int = 2
@onready var camera_2d: Camera2D = $"../Camera2D"
@onready var ring_bell: Sprite2D = $"../RingBell"
func create_new_roster() -> void:
print("Create new roster")
var already_picked_charas: Array[String] = []
for i in range(max_roster_size):
var chara: CharacterResource = character_roster.pick_random()
current_chara_roster = []
print(character_roster.size())
var roster_for_this_round = character_roster.duplicate()
var max_number_of_people = min(roster_size, character_roster.size())
for i in range(max_number_of_people):
# Pick unique characters for the roster
var random_index = randi_range(0, roster_for_this_round.size() - 1)
var chara: CharacterResource = roster_for_this_round.pop_at(random_index)
# Associate a single mask (for now) to the character
var mask: MaskResource = mask_roster.pick_random()
var all_masks: Array[MaskResource] = [mask]
var masked_chara = MaskedChara.new(chara, all_masks)
var face_mask = mask if mask.region == MaskResource.Region.EYES else null
var mouth_mask = mask if mask.region == MaskResource.Region.MOUTH else null
var masked_chara = MaskedChara.new(chara, face_mask, mouth_mask)
current_chara_roster.append(masked_chara)
print("Added %s to roster" % chara.name)
print(character_roster.size())
func review_next_guest():
# See previous guest out
if not first_guest:
character.go_out()
var timer = get_tree().create_timer(2)
await timer.timeout
# Check if we have more guests, if not we go to the ending
current_guest = current_chara_roster.pop_front()
if current_guest == null:
current_game_state = GameState.FINISHED
compute_ending()
return
# Process next guest
print("Guest is %s" % current_guest.character.name)
character.chara_resource = current_guest.character
character.mask_eyes.mask_resource = current_guest.face_mask
character.mask_mouth.mask_resource = current_guest.mouth_mask
first_guest = false
character.come_in()
func compute_ending():
var camera_tween = get_tree().create_tween()
camera_tween.set_ease(Tween.EASE_IN_OUT)
camera_tween.set_trans(Tween.TRANS_CUBIC)
camera_tween.tween_property(camera_2d, "position", Vector2(2720.0, 0), 1.0)
camera_tween.tween_callback(ending_tween_cb)
func ending_tween_cb():
var final_score = 0.0
for table in tables:
final_score += table.compute_score()
print("Final score: %s" % final_score)
# Progress levels
current_game_state = GameState.READY
ring_bell.visible = true
mask_list.visible = false
if current_level == Levels.LVL1:
current_level = Levels.LVL2
elif current_level == Levels.LVL2:
current_level = Levels.LVL3
else:
roster_size += 1
current_level = Levels.RANDOM
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
character.visible = false
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_ready_bell_input_event(viewport: Node, event: InputEvent, shape_idx: int) -> void:
if event is InputEventMouseButton and event.is_pressed():
if current_game_state == GameState.READY:
on_ready_bell_pressed()
func on_ready_bell_pressed() -> void:
if(current_game_state != GameState.READY):
return
if current_level == Levels.LVL1:
current_chara_roster = [lvl1_guest_1, lvl1_guest_2]
elif current_level == Levels.LVL2:
current_chara_roster = [lvl2_guest_1, lvl2_guest_2]
elif current_level == Levels.LVL3:
current_chara_roster = [lvl3_guest_1, lvl3_guest_2]
else:
create_new_roster()
current_game_state = GameState.GUEST_REVIEW
ring_bell.visible = false
mask_list.visible = true
first_guest = true
review_next_guest()
func on_seat_clicked(seat: Seat) -> void:
if current_guest == null and not current_game_state == GameState.GUEST_REVIEW:
return
selected_seat = seat
var camera_tween = get_tree().create_tween()
camera_tween.set_ease(Tween.EASE_IN_OUT)
camera_tween.set_trans(Tween.TRANS_CUBIC)
camera_tween.tween_property(camera_2d, "position", Vector2.ZERO, 1.0)
camera_tween.tween_callback(camera_tween_cb)
func camera_tween_cb() -> void:
selected_seat.set_guest(current_guest)
review_next_guest()

View File

@@ -2,12 +2,55 @@ extends Resource
class_name MaskedChara
@export var character: CharacterResource
@export var masks: Array[MaskResource]
@export var face_mask: MaskResource
@export var mouth_mask: MaskResource
var pref_score_map: Dictionary[CharacterResource.Preference, float] = {
CharacterResource.Preference.LOVE: 2.0,
CharacterResource.Preference.APPROVE: 1.0,
CharacterResource.Preference.DONT_CARE: 0.0,
CharacterResource.Preference.DISAPPROVE: -1.0,
CharacterResource.Preference.HATE: -2.0,
}
# Make sure that every parameter has a default value.
# Otherwise, there will be problems with creating and editing
# your resource via the inspector.
func _init(p_character: CharacterResource = CharacterResource.new(), p_mask: Array[MaskResource] = []):
func _init(
p_character: CharacterResource = CharacterResource.new(),
p_mask_face: MaskResource = MaskResource.new(),
p_mask_mouth: MaskResource = MaskResource.new()):
character = p_character
masks = p_mask
face_mask = p_mask_face
mouth_mask = p_mask_mouth
func compute_score(other_guests: Array[MaskedChara]) -> float:
var overall_score = 0.0
var preferences = character.preferences
for guest in other_guests:
if guest == null:
continue
var guest_mouth_mask = guest.mouth_mask
var guest_traits = guest.character.traits
var guest_appreciation = 0.0
for guest_trait in guest_traits:
var trait_strength = 0.0
for stimuli in guest_trait.stimulis:
var strength = stimuli
if guest_mouth_mask != null and stimuli == guest_mouth_mask.stimuli:
strength *= guest_mouth_mask.stimuli_multiplier
if face_mask != null and stimuli == face_mask.stimuli:
strength *= face_mask.stimuli_multiplier
trait_strength += strength
var preference = character.preferences.get(guest_trait) if guest_trait in character.preferences else CharacterResource.Preference.DONT_CARE
var score_multiplier = pref_score_map.get(preference) if preference in pref_score_map else 0.0
guest_appreciation += trait_strength*score_multiplier
print("%s guest appreciation %s" % [character.name, guest_appreciation])
overall_score += guest_appreciation
print("%s score: %s" % [character.name, overall_score])
return overall_score

View File

@@ -12,28 +12,9 @@ class_name Mask
func _on_mask_resource_changed() -> void:
if mask_resource == null:
mask_sprite.visible = false
return
if mask_sprite != null:
mask_sprite.visible = true
mask_sprite.texture = mask_resource.mask_sprite
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
if Engine.is_editor_hint():
_engine_process(delta)
else:
_game_process(delta)
func _game_process(delta: float) -> void:
pass
func _engine_process(delta: float) -> void:
if mask_resource == null:
return

View File

@@ -1,12 +1,12 @@
[gd_scene format=3 uid="uid://3jlukpb5hefb"]
[ext_resource type="Script" uid="uid://cfo3mk5f2q3ej" path="res://scenes/mask/mask.gd" id="1_61b51"]
[ext_resource type="Texture2D" uid="uid://cftllq6l7xclt" path="res://icon.svg" id="1_jlvus"]
[ext_resource type="Resource" uid="uid://pdiaprcknftw" path="res://resources/masks/mute.tres" id="2_0pm64"]
[ext_resource type="Resource" uid="uid://q3o5oxegjx2" path="res://resources/masks/no_smell.tres" id="2_0pm64"]
[ext_resource type="Texture2D" uid="uid://b4d451508si3t" path="res://assets/masks/Masque 3.png" id="3_htpgb"]
[node name="Mask" type="Node2D" unique_id=428968220]
script = ExtResource("1_61b51")
mask_resource = ExtResource("2_0pm64")
[node name="MaskSprite" type="Sprite2D" parent="." unique_id=1997645103]
texture = ExtResource("1_jlvus")
texture = ExtResource("3_htpgb")

67
scenes/seat/seat.gd Normal file
View File

@@ -0,0 +1,67 @@
@tool
extends Area2D
class_name Seat
signal seat_clicked(Seat)
@export var guest: MaskedChara:
set(new_resource):
guest = new_resource
_on_chara_resource_changed()
@onready var character: Character = $Character
@onready var empty: Sprite2D = $Empty
func _process(delta: float) -> void:
character.scale.x = 0.15
character.scale.y = 0.15
character.position.y = -135
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
guest = null
character.visible = false
empty.visible = true
func _on_chara_resource_changed() -> void:
if guest == null:
return
if character != null:
empty.visible = false
character.visible = true
character.chara_resource = guest.character
character.mask_eyes.mask_resource = guest.face_mask
character.mask_mouth.mask_resource = guest.mouth_mask
func set_guest(p_guest: MaskedChara) -> void:
if p_guest == null:
return
guest = p_guest
empty.visible = false
character.visible = true
character.chara_resource = guest.character
character.mask_eyes.mask_resource = guest.face_mask
character.mask_mouth.mask_resource = guest.mouth_mask
func _on_mouse_entered() -> void:
if guest != null:
return
Input.set_default_cursor_shape(Input.CursorShape.CURSOR_POINTING_HAND)
func _on_mouse_exited() -> void:
if guest != null:
return
Input.set_default_cursor_shape(Input.CursorShape.CURSOR_ARROW)
func _on_input_event(viewport: Node, event: InputEvent, shape_idx: int) -> void:
if event is InputEventMouseButton and event.is_pressed() and guest == null:
Input.set_default_cursor_shape(Input.CursorShape.CURSOR_ARROW)
seat_clicked.emit(self)

1
scenes/seat/seat.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://cuojjiwxidmwu

28
scenes/seat/seat.tscn Normal file
View File

@@ -0,0 +1,28 @@
[gd_scene format=3 uid="uid://l0hl170iqkgx"]
[ext_resource type="Script" uid="uid://cuojjiwxidmwu" path="res://scenes/seat/seat.gd" id="1_pceab"]
[ext_resource type="Resource" uid="uid://c25kg6um2k1dy" path="res://resources/guests/duchex_mute.tres" id="2_i14o5"]
[ext_resource type="PackedScene" uid="uid://bvpyqyftqhy45" path="res://scenes/character/character.tscn" id="3_dxmy0"]
[ext_resource type="Resource" uid="uid://c87odmn680x7" path="res://resources/characters/duchex.tres" id="4_ipxud"]
[ext_resource type="Texture2D" uid="uid://cftllq6l7xclt" path="res://icon.svg" id="4_wnjs1"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_rofvo"]
size = Vector2(128, 128)
[node name="Seat" type="Area2D" unique_id=1604639021]
script = ExtResource("1_pceab")
guest = ExtResource("2_i14o5")
[node name="Character" parent="." unique_id=138741531 instance=ExtResource("3_dxmy0")]
chara_resource = ExtResource("4_ipxud")
[node name="Empty" type="Sprite2D" parent="." unique_id=357649392]
visible = false
texture = ExtResource("4_wnjs1")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1054126207]
shape = SubResource("RectangleShape2D_rofvo")
[connection signal="input_event" from="." to="." method="_on_input_event"]
[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"]
[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"]

29
scenes/table/table.gd Normal file
View File

@@ -0,0 +1,29 @@
extends Node2D
class_name Table
signal seat_clicked(Seat)
@onready var seat_1: Seat = $Seat1
@onready var seat_2: Seat = $Seat2
@onready var seat_3: Seat = $Seat3
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
func on_seat_clicked(seat: Seat) -> void:
seat_clicked.emit(seat)
func compute_score() -> float:
var score_guest1 = seat_1.guest.compute_score([seat_2.guest, seat_3.guest]) if seat_1.guest != null else 0.0
var score_guest2 = seat_2.guest.compute_score([seat_1.guest, seat_3.guest]) if seat_2.guest != null else 0.0
var score_guest3 = seat_3.guest.compute_score([seat_1.guest, seat_2.guest]) if seat_3.guest != null else 0.0
var table_score = score_guest1 + score_guest2 + score_guest3
print("%s score: %s" % [name, table_score])
return table_score

View File

@@ -0,0 +1 @@
uid://r542aaur4vsc

43
scenes/table/table.tscn Normal file
View File

@@ -0,0 +1,43 @@
[gd_scene format=3 uid="uid://cayrxqnypoytu"]
[ext_resource type="Script" uid="uid://r542aaur4vsc" path="res://scenes/table/table.gd" id="1_ov72x"]
[ext_resource type="PackedScene" uid="uid://l0hl170iqkgx" path="res://scenes/seat/seat.tscn" id="1_qavd0"]
[ext_resource type="Texture2D" uid="uid://bd86sgiucdbx7" path="res://assets/decor/table.png" id="3_qxbf1"]
[ext_resource type="Texture2D" uid="uid://dov4apmrl77jl" path="res://assets/decor/table_defeat.png" id="4_wpgb8"]
[ext_resource type="Texture2D" uid="uid://bp3nbt23n348t" path="res://assets/decor/table_success.png" id="5_0y6hh"]
[node name="Table" type="Node2D" unique_id=1315188460]
script = ExtResource("1_ov72x")
[node name="Seat1" parent="." unique_id=1604639021 instance=ExtResource("1_qavd0")]
position = Vector2(-204, -87)
guest = null
[node name="Seat2" parent="." unique_id=848918585 instance=ExtResource("1_qavd0")]
position = Vector2(-14, -117)
guest = null
[node name="Seat3" parent="." unique_id=150555678 instance=ExtResource("1_qavd0")]
position = Vector2(173, -98)
guest = null
[node name="Table" type="Sprite2D" parent="." unique_id=466061690]
position = Vector2(0, 100)
scale = Vector2(0.5, 0.5)
texture = ExtResource("3_qxbf1")
[node name="TableDefeat" type="Sprite2D" parent="." unique_id=1228068963]
visible = false
position = Vector2(0, 100)
scale = Vector2(0.5, 0.5)
texture = ExtResource("4_wpgb8")
[node name="TableVictory" type="Sprite2D" parent="." unique_id=136666064]
visible = false
position = Vector2(0, 100)
scale = Vector2(0.5, 0.5)
texture = ExtResource("5_0y6hh")
[connection signal="seat_clicked" from="Seat1" to="." method="on_seat_clicked"]
[connection signal="seat_clicked" from="Seat2" to="." method="on_seat_clicked"]
[connection signal="seat_clicked" from="Seat3" to="." method="on_seat_clicked"]