diff --git a/resources/characters/bishop.tres b/resources/characters/bishop.tres index 0a2ddbd..0a36b2c 100644 --- a/resources/characters/bishop.tres +++ b/resources/characters/bishop.tres @@ -13,12 +13,16 @@ [ext_resource type="Resource" uid="uid://b3lg32juui18i" path="res://resources/traits/noisy.tres" id="9_yew24"] [ext_resource type="Resource" uid="uid://3a6ivamvrnqj" path="res://resources/traits/clean.tres" id="12_0p75g"] [ext_resource type="Resource" uid="uid://bmx28vnfhcs8b" path="res://resources/traits/man.tres" id="13_lkxga"] +[ext_resource type="Resource" uid="uid://cqhrgihss2k46" path="res://resources/traits/smelly.tres" id="14_lkxga"] [resource] script = ExtResource("2_ilqpx") name = "Bishop" chara_sprite = ExtResource("1_ilqpx") -traits = Array[ExtResource("1_kq1ar")]([ExtResource("6_4wm6o"), ExtResource("7_d7rom"), ExtResource("8_l6cdd"), ExtResource("9_yew24"), ExtResource("12_0p75g"), ExtResource("13_lkxga")]) +mask_eyes_position = Vector2(58.7, 91.365) +mask_eyes_rotation = -0.05934119456780681 +mask_mouth_position = Vector2(46.125, 123.665) +traits = Array[ExtResource("1_kq1ar")]([ExtResource("6_4wm6o"), ExtResource("7_d7rom"), ExtResource("8_l6cdd"), ExtResource("9_yew24"), ExtResource("12_0p75g"), ExtResource("13_lkxga"), ExtResource("14_lkxga")]) preferences = Dictionary[ExtResource("1_kq1ar"), int]({ ExtResource("3_kbmal"): 4, ExtResource("4_yew24"): 1, diff --git a/resources/characters/farmer.tres b/resources/characters/farmer.tres index f114deb..8b3b39b 100644 --- a/resources/characters/farmer.tres +++ b/resources/characters/farmer.tres @@ -1,28 +1,38 @@ [gd_resource type="Resource" script_class="CharacterResource" format=3 uid="uid://jcski7vdhybh"] [ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="1_jl8hl"] -[ext_resource type="Texture2D" uid="uid://bpuuh3i22lkxq" path="res://assets/characters/Perso 7.png" id="1_q0xcs"] +[ext_resource type="Texture2D" uid="uid://bveq6mbi1yuku" path="res://assets/characters/Perso 8.png" id="1_qptnb"] [ext_resource type="Script" uid="uid://bwam50qxikpw4" path="res://scenes/character/chara_resource.gd" id="2_vlbot"] [ext_resource type="Resource" uid="uid://b118uebk1ldog" path="res://resources/traits/noble.tres" id="3_s7agw"] [ext_resource type="Resource" uid="uid://exoxxj84dvsf" path="res://resources/traits/peasant.tres" id="4_qptnb"] [ext_resource type="Resource" uid="uid://bsayj3pugsg54" path="res://resources/traits/animals.tres" id="5_6sspe"] [ext_resource type="Resource" uid="uid://dca6k1gmnp6os" path="res://resources/traits/single.tres" id="6_nvopw"] [ext_resource type="Resource" uid="uid://c4kpcm4tplsgg" path="res://resources/traits/alone.tres" id="7_4gs1w"] -[ext_resource type="Resource" uid="uid://bmx28vnfhcs8b" path="res://resources/traits/man.tres" id="9_kqqyx"] -[ext_resource type="Resource" uid="uid://bvophatys2o1o" path="res://resources/traits/old.tres" id="10_tk0st"] +[ext_resource type="Resource" uid="uid://cefwc4j3p7m3v" path="res://resources/traits/black.tres" id="7_kqqyx"] +[ext_resource type="Resource" uid="uid://bobrwfsc3tg04" path="res://resources/traits/brave.tres" id="9_6sspe"] +[ext_resource type="Resource" uid="uid://3a6ivamvrnqj" path="res://resources/traits/clean.tres" id="9_tk0st"] +[ext_resource type="Resource" uid="uid://b3lg32juui18i" path="res://resources/traits/noisy.tres" id="10_nvopw"] +[ext_resource type="Resource" uid="uid://lhskiwag15k" path="res://resources/traits/talkative.tres" id="11_4gs1w"] [ext_resource type="Resource" uid="uid://cqhrgihss2k46" path="res://resources/traits/smelly.tres" id="11_tclm6"] -[ext_resource type="Resource" uid="uid://b6614fqoymxur" path="res://resources/traits/silent.tres" id="12_l354n"] +[ext_resource type="Resource" uid="uid://cb8jguybr1tlj" path="res://resources/traits/white.tres" id="12_kqqyx"] +[ext_resource type="Resource" uid="uid://dmd7gilnmcefr" path="res://resources/traits/woman.tres" id="13_tk0st"] +[ext_resource type="Resource" uid="uid://blu5de2dhiu46" path="res://resources/traits/young.tres" id="14_tclm6"] [resource] script = ExtResource("2_vlbot") name = "farmer" -chara_sprite = ExtResource("1_q0xcs") -traits = Array[ExtResource("1_jl8hl")]([ExtResource("5_6sspe"), ExtResource("9_kqqyx"), ExtResource("10_tk0st"), ExtResource("4_qptnb"), ExtResource("11_tclm6"), ExtResource("12_l354n"), ExtResource("6_nvopw")]) +chara_sprite = ExtResource("1_qptnb") +mask_eyes_position = Vector2(112.37, 228.755) +mask_mouth_position = Vector2(78.295, 132.145) +traits = Array[ExtResource("1_jl8hl")]([ExtResource("5_6sspe"), ExtResource("9_6sspe"), ExtResource("10_nvopw"), ExtResource("4_qptnb"), ExtResource("6_nvopw"), ExtResource("11_4gs1w"), ExtResource("12_kqqyx"), ExtResource("13_tk0st"), ExtResource("14_tclm6")]) preferences = Dictionary[ExtResource("1_jl8hl"), int]({ ExtResource("3_s7agw"): 4, ExtResource("4_qptnb"): 0, ExtResource("5_6sspe"): 0, -ExtResource("6_nvopw"): 1, -ExtResource("7_4gs1w"): 3 +ExtResource("7_4gs1w"): 3, +ExtResource("7_kqqyx"): 0, +ExtResource("9_6sspe"): 1, +ExtResource("9_tk0st"): 3, +ExtResource("11_tclm6"): 1 }) metadata/_custom_type_script = "uid://bwam50qxikpw4" diff --git a/resources/characters/king.tres b/resources/characters/king.tres index 19b530a..567ab74 100644 --- a/resources/characters/king.tres +++ b/resources/characters/king.tres @@ -20,10 +20,10 @@ script = ExtResource("3_vvog1") name = "King" chara_sprite = ExtResource("1_u46dm") -mask_eyes_position = Vector2(-21.75, -274.015) +mask_eyes_position = Vector2(6.675, -38.825) mask_eyes_rotation = 0.06981317007977318 -mask_mouth_position = Vector2(-7.63, -186.87) -mask_mouth_rotation = -0.1884955592153878 +mask_mouth_position = Vector2(-12.43, -47.06) +mask_mouth_rotation = -0.12915436464757998 traits = Array[ExtResource("4_0s3fj")]([ExtResource("5_6ktt3"), ExtResource("6_vvog1"), ExtResource("7_k1rnw"), ExtResource("8_0mgot"), ExtResource("9_teajx")]) preferences = Dictionary[ExtResource("4_0s3fj"), int]({ ExtResource("3_j8s63"): 4, diff --git a/resources/characters/knight.tres b/resources/characters/knight.tres index 2795f24..d278047 100644 --- a/resources/characters/knight.tres +++ b/resources/characters/knight.tres @@ -21,6 +21,10 @@ script = ExtResource("2_tdxmb") name = "knight" chara_sprite = ExtResource("1_3vdcn") +mask_eyes_position = Vector2(-94.815, 12.665) +mask_eyes_rotation = 0.029670597283903404 +mask_mouth_position = Vector2(-84.16, -17.325) +mask_mouth_rotation = 0.029670597283903404 traits = Array[ExtResource("1_iqt1j")]([ExtResource("3_bsgk7"), ExtResource("4_aiy02"), ExtResource("5_0cnfx"), ExtResource("6_xxla0"), ExtResource("7_5qve6"), ExtResource("8_so1uv"), ExtResource("9_h0v0n")]) preferences = Dictionary[ExtResource("1_iqt1j"), int]({ ExtResource("2_h0v0n"): 0, diff --git a/resources/characters/nun.tres b/resources/characters/nun.tres index c2895b4..a2e6874 100644 --- a/resources/characters/nun.tres +++ b/resources/characters/nun.tres @@ -20,6 +20,9 @@ script = ExtResource("2_8e28v") name = "nun" chara_sprite = ExtResource("1_8e28v") +mask_eyes_position = Vector2(156.99, 241.13) +mask_mouth_position = Vector2(151.42, 203.93) +mask_mouth_rotation = 0.029670597283903404 traits = Array[ExtResource("1_83ubb")]([ExtResource("11_solp4"), ExtResource("12_xalqb"), ExtResource("3_jv2gf"), ExtResource("13_pnqe2"), ExtResource("14_1axfg"), ExtResource("15_ay8ov")]) preferences = Dictionary[ExtResource("1_83ubb"), int]({ ExtResource("3_jv2gf"): 0, diff --git a/resources/characters/prince.tres b/resources/characters/prince.tres index 9ebe4f2..c0c58c1 100644 --- a/resources/characters/prince.tres +++ b/resources/characters/prince.tres @@ -21,6 +21,9 @@ script = ExtResource("2_ef0f3") name = "prince" chara_sprite = ExtResource("1_ef0f3") +mask_eyes_position = Vector2(104.295, 9.395) +mask_eyes_rotation = -0.017453292519943295 +mask_mouth_position = Vector2(88.32, -14.73) traits = Array[ExtResource("1_3d6c6")]([ExtResource("12_5sqej"), ExtResource("6_0c7tx"), ExtResource("13_rcuko"), ExtResource("7_drjus"), ExtResource("14_6apw1"), ExtResource("4_eghjc"), ExtResource("15_hu8wx")]) preferences = Dictionary[ExtResource("1_3d6c6"), int]({ ExtResource("3_gfeqf"): 0, diff --git a/resources/characters/worker.tres b/resources/characters/worker.tres deleted file mode 100644 index bb79416..0000000 --- a/resources/characters/worker.tres +++ /dev/null @@ -1,36 +0,0 @@ -[gd_resource type="Resource" script_class="CharacterResource" format=3 uid="uid://gtk0ms164vl5"] - -[ext_resource type="Script" uid="uid://cya40uohlvgbr" path="res://scenes/character/trait.gd" id="1_tdeip"] -[ext_resource type="Texture2D" uid="uid://bveq6mbi1yuku" path="res://assets/characters/Perso 8.png" id="1_xns17"] -[ext_resource type="Script" uid="uid://bwam50qxikpw4" path="res://scenes/character/chara_resource.gd" id="2_xns17"] -[ext_resource type="Resource" uid="uid://c4kpcm4tplsgg" path="res://resources/traits/alone.tres" id="3_aii36"] -[ext_resource type="Resource" uid="uid://bsayj3pugsg54" path="res://resources/traits/animals.tres" id="4_hn22m"] -[ext_resource type="Resource" uid="uid://cefwc4j3p7m3v" path="res://resources/traits/black.tres" id="5_mla07"] -[ext_resource type="Resource" uid="uid://bobrwfsc3tg04" path="res://resources/traits/brave.tres" id="6_1ingy"] -[ext_resource type="Resource" uid="uid://3a6ivamvrnqj" path="res://resources/traits/clean.tres" id="7_3tqd0"] -[ext_resource type="Resource" uid="uid://b118uebk1ldog" path="res://resources/traits/noble.tres" id="8_fos3n"] -[ext_resource type="Resource" uid="uid://cqhrgihss2k46" path="res://resources/traits/smelly.tres" id="9_jy4g2"] -[ext_resource type="Resource" uid="uid://exoxxj84dvsf" path="res://resources/traits/peasant.tres" id="10_wi14u"] -[ext_resource type="Resource" uid="uid://b3lg32juui18i" path="res://resources/traits/noisy.tres" id="12_6kn8q"] -[ext_resource type="Resource" uid="uid://dca6k1gmnp6os" path="res://resources/traits/single.tres" id="13_2y8mw"] -[ext_resource type="Resource" uid="uid://lhskiwag15k" path="res://resources/traits/talkative.tres" id="14_dyw65"] -[ext_resource type="Resource" uid="uid://cb8jguybr1tlj" path="res://resources/traits/white.tres" id="15_3stdi"] -[ext_resource type="Resource" uid="uid://dmd7gilnmcefr" path="res://resources/traits/woman.tres" id="16_4g5w0"] -[ext_resource type="Resource" uid="uid://blu5de2dhiu46" path="res://resources/traits/young.tres" id="17_yitt5"] - -[resource] -script = ExtResource("2_xns17") -name = "worker" -chara_sprite = ExtResource("1_xns17") -traits = Array[ExtResource("1_tdeip")]([ExtResource("4_hn22m"), ExtResource("6_1ingy"), ExtResource("12_6kn8q"), ExtResource("10_wi14u"), ExtResource("13_2y8mw"), ExtResource("14_dyw65"), ExtResource("15_3stdi"), ExtResource("16_4g5w0"), ExtResource("17_yitt5")]) -preferences = Dictionary[ExtResource("1_tdeip"), int]({ -ExtResource("3_aii36"): 3, -ExtResource("4_hn22m"): 0, -ExtResource("5_mla07"): 0, -ExtResource("6_1ingy"): 1, -ExtResource("7_3tqd0"): 3, -ExtResource("8_fos3n"): 4, -ExtResource("9_jy4g2"): 1, -ExtResource("10_wi14u"): 0 -}) -metadata/_custom_type_script = "uid://bwam50qxikpw4" diff --git a/scenes/character/character.tscn b/scenes/character/character.tscn index 00e5be9..7c95c3c 100644 --- a/scenes/character/character.tscn +++ b/scenes/character/character.tscn @@ -1,8 +1,8 @@ [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://gtk0ms164vl5" path="res://resources/characters/worker.tres" id="2_fgi2k"] -[ext_resource type="Texture2D" uid="uid://bveq6mbi1yuku" path="res://assets/characters/Perso 8.png" id="3_f8hpl"] +[ext_resource type="Resource" uid="uid://i4yr7hqobna7" path="res://resources/characters/prince.tres" id="2_fgi2k"] +[ext_resource type="Texture2D" uid="uid://c61n5v2xrlwy2" path="res://assets/characters/Perso 5.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"] @@ -164,10 +164,11 @@ chara_resource = ExtResource("2_fgi2k") texture = ExtResource("3_f8hpl") [node name="MaskMouth" parent="." unique_id=1087336064 instance=ExtResource("3_mutn8")] -visible = false +position = Vector2(88.32, -14.73) [node name="MaskEyes" parent="." unique_id=428968220 instance=ExtResource("3_mutn8")] -visible = false +position = Vector2(104.295, 9.395) +rotation = -0.017453292 [node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=713965213] libraries/ = SubResource("AnimationLibrary_7ex5l") diff --git a/scenes/main/main.tscn b/scenes/main/main.tscn index 1c5345e..30f6dee 100644 --- a/scenes/main/main.tscn +++ b/scenes/main/main.tscn @@ -25,12 +25,17 @@ [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://c2v05fqr7cwll" path="res://resources/characters/bishop.tres" id="23_wcrab"] [ext_resource type="Resource" uid="uid://vsvgpvluq7sh" path="res://resources/masks/blind.tres" id="24_g2upo"] +[ext_resource type="Resource" uid="uid://jcski7vdhybh" path="res://resources/characters/farmer.tres" id="24_gohbf"] [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://dvmqrw5bylhv6" path="res://resources/characters/knight.tres" id="25_jucdw"] +[ext_resource type="Resource" uid="uid://dvmr6qryknr2j" path="res://resources/characters/nun.tres" id="26_6miv3"] [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://i4yr7hqobna7" path="res://resources/characters/prince.tres" id="27_yisfj"] [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"] @@ -400,8 +405,9 @@ texture = ExtResource("15_1k3ck") [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("24_g2upo"), ExtResource("25_38d3o"), ExtResource("26_i6fjx"), ExtResource("11_s17dp"), ExtResource("28_7dg2i"), ExtResource("29_08tbl")]) +character_roster = Array[ExtResource("4_nvumn")]([ExtResource("5_ou6is"), ExtResource("6_necax"), ExtResource("7_r4lks"), ExtResource("8_pg34l"), ExtResource("23_wcrab"), ExtResource("24_gohbf"), ExtResource("25_jucdw"), ExtResource("26_6miv3"), ExtResource("27_yisfj")]) +face_mask_roster = Array[ExtResource("9_m4h2d")]([ExtResource("24_g2upo"), ExtResource("25_38d3o"), ExtResource("28_7dg2i")]) +mouth_mask_roster = Array[ExtResource("9_m4h2d")]([ExtResource("26_i6fjx"), ExtResource("11_s17dp"), ExtResource("29_08tbl")]) character = NodePath("../Character") guest_list = NodePath("../GuestList") mask_list = NodePath("../MaskList") @@ -413,6 +419,7 @@ lvl2_guest_2 = ExtResource("30_6g32y") lvl3_guest_1 = ExtResource("33_f4j1x") lvl3_guest_2 = ExtResource("29_62f45") lvl3_guest_3 = ExtResource("27_6w6mm") +current_level = 3 [node name="Camera2D" type="Camera2D" parent="." unique_id=1166192115] limit_left = -960 diff --git a/scenes/managers/game_manager.gd b/scenes/managers/game_manager.gd index 2d24677..6624cdc 100644 --- a/scenes/managers/game_manager.gd +++ b/scenes/managers/game_manager.gd @@ -4,7 +4,8 @@ class_name GameManager @export_category("Complete rosters") @export var character_roster: Array[CharacterResource] -@export var mask_roster: Array[MaskResource] +@export var face_mask_roster: Array[MaskResource] +@export var mouth_mask_roster: Array[MaskResource] @export_category("References") @export var character: Character @@ -31,6 +32,7 @@ class_name GameManager @export_category("Random levels") @export var current_level: Levels = Levels.LVL1 @export var max_number_guests: int = 9 +@export var dual_mask_probability: float = 0.2 @export_tool_button("Create chara roster") var create_roster_action = create_new_roster var current_chara_roster: Array[MaskedChara] @@ -66,11 +68,24 @@ func create_new_roster() -> void: var random_index = randi_range(0, roster_for_this_round.size() - 1) var chara: CharacterResource = roster_for_this_round.pop_at(random_index) + var mouth_mask: MaskResource + var eyes_mask: MaskResource + var should_pick_eye_mask = randi_range(0, 1) == 1 + var dual_masked = randf() <= dual_mask_probability + if (should_pick_eye_mask): + eyes_mask = face_mask_roster.pick_random() + if dual_masked: + mouth_mask = mouth_mask_roster.pick_random() + else: + mouth_mask = mouth_mask_roster.pick_random() + if dual_masked: + eyes_mask = face_mask_roster.pick_random() + # Associate a single mask (for now) to the character - var mask: MaskResource = mask_roster.pick_random() - 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) + # var mask: MaskResource = mask_roster.pick_random() + # 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, eyes_mask, mouth_mask) current_chara_roster.append(masked_chara) @@ -119,7 +134,8 @@ func ending_tween_cb(): elif current_level == Levels.LVL2: current_level = Levels.LVL3 else: - roster_size += 1 + if final_score >= 0: + roster_size += 1 current_level = Levels.RANDOM @@ -158,9 +174,9 @@ func on_ready_bell_pressed() -> void: var all_masks_in_current_roster: Array[MaskResource] = [] for masked_chara in current_chara_roster: all_chara_in_current_roster.append(masked_chara.character) - if masked_chara.face_mask.resource_name: + if masked_chara.face_mask != null and masked_chara.face_mask.resource_name: all_masks_in_current_roster.append(masked_chara.face_mask) - if masked_chara.mouth_mask.resource_name: + if masked_chara.mouth_mask != null and masked_chara.mouth_mask.resource_name: all_masks_in_current_roster.append(masked_chara.mouth_mask) mask_list.set_mask_list(all_masks_in_current_roster) diff --git a/scenes/mask/mask.tscn b/scenes/mask/mask.tscn index 373570a..4e96f7f 100644 --- a/scenes/mask/mask.tscn +++ b/scenes/mask/mask.tscn @@ -1,8 +1,8 @@ [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="Resource" uid="uid://pdiaprcknftw" path="res://resources/masks/mute.tres" id="2_0pm64"] -[ext_resource type="Texture2D" uid="uid://bfnvs01ynm55q" path="res://assets/masks/Bouche 3.png" id="3_htpgb"] +[ext_resource type="Resource" uid="uid://vsvgpvluq7sh" path="res://resources/masks/blind.tres" id="2_0pm64"] +[ext_resource type="Texture2D" uid="uid://sf7sjug1spau" path="res://assets/masks/Masque 1.png" id="3_htpgb"] [node name="Mask" type="Node2D" unique_id=428968220] script = ExtResource("1_61b51")