5 Commits

Author SHA1 Message Date
effb8769d8 mask snippet
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 13s
Create tag and build when new code gets to main / Export (push) Successful in 1m32s
2026-02-01 18:09:59 +01:00
15f95e5ed0 chara snippet
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 12s
Create tag and build when new code gets to main / Export (push) Successful in 1m30s
2026-02-01 17:43:47 +01:00
a9f2e3c035 change duchess alone pref
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 12s
Create tag and build when new code gets to main / Export (push) Successful in 1m30s
2026-02-01 17:27:39 +01:00
c8a391c72f mask details
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 13s
Create tag and build when new code gets to main / Export (push) Successful in 1m34s
2026-02-01 17:16:57 +01:00
661510d7f6 last minute tuto changes
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 13s
Create tag and build when new code gets to main / Export (push) Successful in 1m30s
2026-02-01 17:10:24 +01:00
16 changed files with 92 additions and 29 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

After

Width:  |  Height:  |  Size: 414 KiB

View File

@@ -15,7 +15,7 @@
script = ExtResource("2_cyb15") script = ExtResource("2_cyb15")
name = "Duchex" name = "Duchex"
chara_sprite = ExtResource("1_tppor") chara_sprite = ExtResource("1_tppor")
mask_eyes_position = Vector2(78.08, 181.815) mask_eyes_position = Vector2(78.08, 232.575)
mask_eyes_rotation = -0.06981317007977318 mask_eyes_rotation = -0.06981317007977318
mask_mouth_position = Vector2(76.505, 203.355) mask_mouth_position = Vector2(76.505, 203.355)
mask_mouth_rotation = -0.05235987755982989 mask_mouth_rotation = -0.05235987755982989

View File

@@ -13,7 +13,8 @@
script = ExtResource("2_vlbot") script = ExtResource("2_vlbot")
name = "Farmer" name = "Farmer"
chara_sprite = ExtResource("1_qptnb") chara_sprite = ExtResource("1_qptnb")
mask_eyes_position = Vector2(122.665, 137.92) mask_eyes_position = Vector2(128.185, 164.43)
mask_eyes_rotation = 0.11170107212763669
mask_mouth_position = Vector2(106.575, 137.815) mask_mouth_position = Vector2(106.575, 137.815)
mask_mouth_rotation = 0.07504915783575637 mask_mouth_rotation = 0.07504915783575637
traits = Array[ExtResource("1_jl8hl")]([ExtResource("5_6sspe"), ExtResource("11_tclm6"), ExtResource("10_nvopw")]) traits = Array[ExtResource("1_jl8hl")]([ExtResource("5_6sspe"), ExtResource("11_tclm6"), ExtResource("10_nvopw")])

View File

@@ -15,7 +15,7 @@
script = ExtResource("2_8e28v") script = ExtResource("2_8e28v")
name = "Nun" name = "Nun"
chara_sprite = ExtResource("1_8e28v") chara_sprite = ExtResource("1_8e28v")
mask_eyes_position = Vector2(159.75, 230.135) mask_eyes_position = Vector2(159.75, 247.26)
mask_eyes_rotation = 0.07504915783575637 mask_eyes_rotation = 0.07504915783575637
mask_mouth_position = Vector2(152.9, 203.93) mask_mouth_position = Vector2(152.9, 203.93)
mask_mouth_rotation = 0.029670597283903404 mask_mouth_rotation = 0.029670597283903404

View File

@@ -15,7 +15,7 @@
script = ExtResource("2_g8bvo") script = ExtResource("2_g8bvo")
name = "Queen" name = "Queen"
chara_sprite = ExtResource("1_d1164") chara_sprite = ExtResource("1_d1164")
mask_eyes_position = Vector2(47.78, 157.815) mask_eyes_position = Vector2(47.78, 170.79)
mask_eyes_rotation = 0.03316125578789186 mask_eyes_rotation = 0.03316125578789186
mask_mouth_position = Vector2(31.595, 176.245) mask_mouth_position = Vector2(31.595, 176.245)
mask_mouth_rotation = 0.01745329251994329 mask_mouth_rotation = 0.01745329251994329

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="MaskedChara" format=3 uid="uid://bbnabwyoewgym"]
[ext_resource type="Resource" uid="uid://gy4ygqrjj5ys" path="res://resources/characters/duke.tres" id="1_iaxr1"]
[ext_resource type="Script" uid="uid://b8peyg02l0mrn" path="res://scenes/managers/masked_chara.gd" id="2_7bwff"]
[ext_resource type="Resource" uid="uid://kau80jesm22w" path="res://resources/masks/falsy.tres" id="2_mhs2o"]
[resource]
script = ExtResource("2_7bwff")
character = ExtResource("1_iaxr1")
mouth_mask = ExtResource("2_mhs2o")
metadata/_custom_type_script = "uid://b8peyg02l0mrn"

View File

@@ -6,7 +6,7 @@
[resource] [resource]
script = ExtResource("2_ncal4") script = ExtResource("2_ncal4")
name = "Mask of the Liar" name = "Mask of the Liar"
description = "Invert all preferences" description = "Invert all traits"
mask_sprite = ExtResource("1_r5drl") mask_sprite = ExtResource("1_r5drl")
region = 1 region = 1
stimuli = 1 stimuli = 1

View File

@@ -1,8 +1,8 @@
[gd_scene format=3 uid="uid://bvpyqyftqhy45"] [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="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="Resource" uid="uid://c2v05fqr7cwll" path="res://resources/characters/bishop.tres" id="2_fgi2k"]
[ext_resource type="Texture2D" uid="uid://c726frtpkk1a8" path="res://assets/characters/Perso 2.png" id="3_f8hpl"] [ext_resource type="Texture2D" uid="uid://dmmhwqsi3im3w" path="res://assets/characters/Perso 4.png" id="3_f8hpl"]
[ext_resource type="PackedScene" uid="uid://3jlukpb5hefb" path="res://scenes/mask/mask.tscn" id="3_mutn8"] [ext_resource type="PackedScene" uid="uid://3jlukpb5hefb" path="res://scenes/mask/mask.tscn" id="3_mutn8"]
[sub_resource type="Animation" id="Animation_fgi2k"] [sub_resource type="Animation" id="Animation_fgi2k"]
@@ -164,13 +164,11 @@ chara_resource = ExtResource("2_fgi2k")
texture = ExtResource("3_f8hpl") texture = ExtResource("3_f8hpl")
[node name="MaskMouth" parent="." unique_id=1087336064 instance=ExtResource("3_mutn8")] [node name="MaskMouth" parent="." unique_id=1087336064 instance=ExtResource("3_mutn8")]
position = Vector2(31.595, 176.245) position = Vector2(47.37, 103.725)
rotation = 0.017453292
[node name="MaskEyes" parent="." unique_id=428968220 instance=ExtResource("3_mutn8")] [node name="MaskEyes" parent="." unique_id=428968220 instance=ExtResource("3_mutn8")]
visible = false position = Vector2(63.135, 91.365)
position = Vector2(47.78, 157.815) rotation = 0.015707964
rotation = 0.033161256
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=713965213] [node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=713965213]
libraries/ = SubResource("AnimationLibrary_7ex5l") libraries/ = SubResource("AnimationLibrary_7ex5l")

View File

@@ -14,11 +14,14 @@ var pref_score_name: Dictionary[CharacterResource.Preference, String] = {
CharacterResource.Preference.HATE: "Hates ", CharacterResource.Preference.HATE: "Hates ",
} }
@onready var chara: Sprite2D = $"../GuestList/Chara"
@onready var mask: Sprite2D = $Mask
@onready var label: Label = $Label @onready var label: Label = $Label
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
pass # Replace with function body. pass
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
@@ -30,7 +33,7 @@ func set_list(_items):
for i in _items: for i in _items:
print(i.name) print(i.name)
current_item = 0 current_item = 1
if _items.size() == 0: if _items.size() == 0:
items = [] items = []
label.text = "...\n...\n..." label.text = "...\n...\n..."
@@ -48,8 +51,13 @@ func cycle_through_items() -> void:
var index = current_item % items.size() var index = current_item % items.size()
var item = items.get(index) var item = items.get(index)
if item is MaskResource: if item is MaskResource:
mask.visible = true
mask.texture = item.mask_sprite
label.text = "\n\n\n\n" + item.name + "\n\n" + item.description label.text = "\n\n\n\n" + item.name + "\n\n" + item.description
elif item is CharacterResource: elif item is CharacterResource:
chara.visible = true
chara.texture = item.chara_sprite
label.text = item.name + "\n\nTraits\n" label.text = item.name + "\n\nTraits\n"
for guest_trait: Trait in item.traits: for guest_trait: Trait in item.traits:
label.text += guest_trait.name + "\n" label.text += guest_trait.name + "\n"

View File

@@ -34,19 +34,19 @@
[ext_resource type="Resource" uid="uid://dvmr6qryknr2j" path="res://resources/characters/nun.tres" id="26_6miv3"] [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://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://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://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://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://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://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="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="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://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="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="PackedScene" uid="uid://cayrxqnypoytu" path="res://scenes/table/table.tscn" id="35_r1bmu"]
[ext_resource type="Resource" uid="uid://k561jqkq8jpa" path="res://resources/guests/bishop_unmasked.tres" id="35_yisfj"]
[ext_resource type="Texture2D" uid="uid://cl1a50j64nnlh" path="res://assets/decor/guest_page_held.png" id="36_62f45"] [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://coahojeky8ul7" path="res://assets/decor/bell.png" id="37_6g32y"]
[ext_resource type="Resource" uid="uid://dw8ckdqphstum" path="res://resources/guests/bishop_blind.tres" id="37_yisfj"]
[ext_resource type="Texture2D" uid="uid://cgl8g5eqy8xm0" path="res://assets/decor/hand_bell.png" id="39_62f45"] [ext_resource type="Texture2D" uid="uid://cgl8g5eqy8xm0" path="res://assets/decor/hand_bell.png" id="39_62f45"]
[ext_resource type="Texture2D" uid="uid://dj267xgqniy2i" path="res://assets/decor/table_item_a_2.png" id="43_jucdw"] [ext_resource type="Texture2D" uid="uid://dj267xgqniy2i" path="res://assets/decor/table_item_a_2.png" id="43_jucdw"]
[ext_resource type="Texture2D" uid="uid://b4u3o7fyryxxq" path="res://assets/decor/table_item_a.png" id="44_6miv3"] [ext_resource type="Texture2D" uid="uid://b4u3o7fyryxxq" path="res://assets/decor/table_item_a.png" id="44_6miv3"]
@@ -460,10 +460,10 @@ character = NodePath("../Character")
guest_list = NodePath("../GuestList") guest_list = NodePath("../GuestList")
mask_list = NodePath("../MaskList") mask_list = NodePath("../MaskList")
tables = [NodePath("../Table"), NodePath("../Table2"), NodePath("../Table3")] tables = [NodePath("../Table"), NodePath("../Table2"), NodePath("../Table3")]
lvl1_guest_1 = ExtResource("27_62f45") lvl1_guest_1 = ExtResource("35_yisfj")
lvl1_guest_2 = ExtResource("27_6w6mm") lvl1_guest_2 = ExtResource("27_6w6mm")
lvl2_guest_1 = ExtResource("27_62f45") lvl2_guest_1 = ExtResource("27_6w6mm")
lvl2_guest_2 = ExtResource("30_6g32y") lvl2_guest_2 = ExtResource("37_yisfj")
lvl3_guest_1 = ExtResource("33_f4j1x") lvl3_guest_1 = ExtResource("33_f4j1x")
lvl3_guest_2 = ExtResource("29_62f45") lvl3_guest_2 = ExtResource("29_62f45")
lvl3_guest_3 = ExtResource("27_6w6mm") lvl3_guest_3 = ExtResource("27_6w6mm")
@@ -528,6 +528,10 @@ scale = Vector2(0.5, 0.5)
texture = ExtResource("35_1k3ck") texture = ExtResource("35_1k3ck")
flip_h = true flip_h = true
[node name="Mask" type="Sprite2D" parent="MaskList" unique_id=383750220]
position = Vector2(128.84132, -293.59827)
scale = Vector2(0.15, 0.15)
[node name="Arrow005" type="Sprite2D" parent="MaskList" unique_id=993186332] [node name="Arrow005" type="Sprite2D" parent="MaskList" unique_id=993186332]
position = Vector2(105.81715, 181.90033) position = Vector2(105.81715, 181.90033)
rotation = 0.03710282 rotation = 0.03710282
@@ -543,6 +547,10 @@ position = Vector2(-224.08743, 155.85515)
scale = Vector2(0.6, 0.6) scale = Vector2(0.6, 0.6)
texture = ExtResource("36_62f45") texture = ExtResource("36_62f45")
[node name="Chara" type="Sprite2D" parent="GuestList" unique_id=275662105]
position = Vector2(179.2679, -334.8194)
scale = Vector2(0.08, 0.08)
[node name="Arrow004" type="Sprite2D" parent="GuestList" unique_id=1454132163] [node name="Arrow004" type="Sprite2D" parent="GuestList" unique_id=1454132163]
position = Vector2(154.4564, 262.38947) position = Vector2(154.4564, 262.38947)
rotation = -0.011010677 rotation = -0.011010677

View File

@@ -126,12 +126,14 @@ func compute_ending():
func ending_tween_cb(): func ending_tween_cb():
var final_score = 0.0 var final_score = 0.0
for table in tables: var table1_score = tables[0].compute_score()
final_score += table.compute_score() var table2_score = tables[1].compute_score()
var table3_score = tables[2].compute_score()
final_score = table1_score + table2_score + table3_score
print("Final score: %s" % final_score) print("Final score: %s" % final_score)
var is_defeat = table1_score < 0 or table2_score < 0 or table3_score < 0
if final_score < 0: if is_defeat:
defeat_noise.emit() defeat_noise.emit()
else: else:
victory_noise.emit() victory_noise.emit()
@@ -148,11 +150,14 @@ func ending_tween_cb():
ring_bell.visible = true ring_bell.visible = true
bell_anim_player.play("idle") bell_anim_player.play("idle")
if current_level == Levels.LVL1 and final_score >= 0: if is_defeat:
return
if current_level == Levels.LVL1:
current_level = Levels.LVL2 current_level = Levels.LVL2
elif current_level == Levels.LVL2: elif current_level == Levels.LVL2:
current_level = Levels.LVL3 current_level = Levels.LVL3
elif final_score >= 0: else:
roster_size += 1 roster_size += 1
current_level = Levels.RANDOM current_level = Levels.RANDOM

View File

@@ -41,7 +41,7 @@ func compute_score(other_guests: Array[MaskedChara]) -> float:
for guest_trait in guest_traits: for guest_trait in guest_traits:
var trait_strength = 0.0 var trait_strength = 0.0
for stimuli in guest_trait.stimulis: for stimuli in guest_trait.stimulis:
var strength = stimuli var strength = 1.0
if guest_mouth_mask != null and stimuli == guest_mouth_mask.stimuli: if guest_mouth_mask != null and stimuli == guest_mouth_mask.stimuli:
strength *= guest_mouth_mask.stimuli_multiplier strength *= guest_mouth_mask.stimuli_multiplier
if face_mask != null and stimuli == face_mask.stimuli: if face_mask != null and stimuli == face_mask.stimuli:
@@ -51,6 +51,7 @@ func compute_score(other_guests: Array[MaskedChara]) -> float:
var preference = character.preferences.get(guest_trait) if guest_trait in character.preferences else CharacterResource.Preference.DONT_CARE 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 var score_multiplier = pref_score_map.get(preference) if preference in pref_score_map else 0.0
guest_appreciation += trait_strength*score_multiplier guest_appreciation += trait_strength*score_multiplier
print(guest_appreciation)
overall_score += guest_appreciation overall_score += guest_appreciation

View File

@@ -1,8 +1,8 @@
[gd_scene format=3 uid="uid://3jlukpb5hefb"] [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="Script" uid="uid://cfo3mk5f2q3ej" path="res://scenes/mask/mask.gd" id="1_61b51"]
[ext_resource type="Resource" uid="uid://divy6byhpwgs2" path="res://resources/masks/truthy.tres" id="2_0pm64"] [ext_resource type="Resource" uid="uid://t2n1q71ce4x6" path="res://resources/masks/deaf.tres" id="2_0pm64"]
[ext_resource type="Texture2D" uid="uid://02al0mfbvjc1" path="res://assets/masks/Bouche 2.png" id="3_htpgb"] [ext_resource type="Texture2D" uid="uid://bi2qq11fbn2yd" path="res://assets/masks/Masque 2.png" id="3_htpgb"]
[node name="Mask" type="Node2D" unique_id=428968220] [node name="Mask" type="Node2D" unique_id=428968220]
script = ExtResource("1_61b51") script = ExtResource("1_61b51")