4 Commits

Author SHA1 Message Date
3eca322fdd Updated menu
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 10:07:14 +01:00
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
18 changed files with 208 additions and 42 deletions

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

View File

@@ -4,6 +4,10 @@
[ext_resource type="Script" uid="uid://cgj703gjwdvs1" path="res://menus/scenes/menus/main_menu/main_menu_with_animations.gd" id="2_ytpwg"]
[ext_resource type="PackedScene" uid="uid://xkqu58vkydps" path="res://menus/scenes/windows/main_menu_options_window.tscn" id="3_8i6b8"]
[ext_resource type="PackedScene" uid="uid://cvweffl7bo7bj" path="res://menus/scenes/windows/main_menu_credits_window.tscn" id="4_t55r5"]
[ext_resource type="Texture2D" uid="uid://c60m6ulhqcbga" path="res://assets/decor/BG.png" id="5_t55r5"]
[ext_resource type="Texture2D" uid="uid://dbpdehppn5h8v" path="res://assets/decor/entrance_bg_objects.png" id="6_cgy0s"]
[ext_resource type="Texture2D" uid="uid://ce7wdct4e27e1" path="res://assets/decor/reception.png" id="7_l4hix"]
[ext_resource type="Texture2D" uid="uid://crjrcjpfo53t0" path="res://assets/decor/menu.png" id="8_cgy0s"]
[sub_resource type="Animation" id="1"]
resource_name = "Intro"
@@ -327,25 +331,84 @@ tree_root = SubResource("AnimationNodeStateMachine_vikuh")
anim_player = NodePath("../MenuAnimationPlayer")
parameters/conditions/intro_done = false
[node name="Bg" type="Sprite2D" parent="." index="3" unique_id=1561676140]
position = Vector2(2417.25, 540)
scale = Vector2(0.5, 0.5)
texture = ExtResource("5_t55r5")
[node name="EntranceBgObjects" type="Sprite2D" parent="." index="4" unique_id=545575527]
position = Vector2(967.25, 410)
scale = Vector2(0.5, 0.5)
texture = ExtResource("6_cgy0s")
[node name="Reception" type="Sprite2D" parent="." index="5" unique_id=513064627]
position = Vector2(1063.85, 700)
scale = Vector2(0.5, 0.5)
texture = ExtResource("7_l4hix")
[node name="Menu" type="Sprite2D" parent="." index="6" unique_id=639397146]
position = Vector2(955, 552.25)
scale = Vector2(0.6, 0.6)
texture = ExtResource("8_cgy0s")
[node name="TitleMargin" parent="MenuContainer" index="0"]
theme_override_constants/margin_left = 232
theme_override_constants/margin_top = 141
[node name="TitleContainer" parent="MenuContainer/TitleMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="TitleLabel" parent="MenuContainer/TitleMargin/TitleContainer" index="0"]
text = "GGJ26"
custom_minimum_size = Vector2(200, 0)
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -268.5
offset_right = 67.359985
offset_bottom = 137.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
text = "A majordomo in Venice"
autowrap_mode = 3
script = null
[node name="SubTitleMargin" parent="MenuContainer" index="1"]
theme_override_constants/margin_top = 256
theme_override_constants/margin_right = 84
[node name="SubTitleContainer" parent="MenuContainer/SubTitleMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="SubTitleLabel" parent="MenuContainer/SubTitleMargin/SubTitleContainer" index="0"]
custom_minimum_size = Vector2(200, 0)
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -100.0
offset_right = 200.0
offset_bottom = 145.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
text = "Make tables plans for the best night possible"
autowrap_mode = 3
[node name="MenuButtonsMargin" parent="MenuContainer" index="2"]
theme_override_constants/margin_top = -177
[node name="MenuButtonsContainer" parent="MenuContainer/MenuButtonsMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="MenuButtonsBoxContainer" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer" index="0"]
lock = true
[node name="OptionsButton" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer" index="1"]
visible = false
[node name="CreditsButton" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer" index="2"]
visible = false
[node name="VersionContainer" parent="VersionMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="MouseFilter" type="Control" parent="." index="6" unique_id=420264660]
[node name="MouseFilter" type="Control" parent="." index="10" unique_id=420264660]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0

View File

@@ -15,8 +15,8 @@ name = "Duchex"
chara_sprite = ExtResource("1_tppor")
mask_eyes_position = Vector2(92.37, 201.415)
mask_eyes_rotation = -0.017453292519943295
mask_mouth_position = Vector2(111.16, 442.425)
mask_mouth_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

View File

@@ -11,8 +11,7 @@ script = ExtResource("2_ce0p8")
name = "Duke"
chara_sprite = ExtResource("1_d1fpd")
mask_eyes_rotation = -0.03490658503988659
mask_mouth_position = Vector2(15, 230)
mask_mouth_rotation = -0.017453292519943295
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

View File

@@ -16,7 +16,8 @@ name = "Queen"
chara_sprite = ExtResource("1_d1164")
mask_eyes_position = Vector2(48, 130)
mask_eyes_rotation = 0.05235987755982989
mask_mouth_position = Vector2(51.77, 409.63)
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,

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="MaskResource" format=3 uid="uid://kau80jesm22w"]
[ext_resource type="Texture2D" uid="uid://cftllq6l7xclt" path="res://icon.svg" id="1_r5drl"]
[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]

View File

@@ -1,7 +1,7 @@
[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")

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="MaskResource" format=3 uid="uid://divy6byhpwgs2"]
[ext_resource type="Texture2D" uid="uid://cftllq6l7xclt" path="res://icon.svg" id="1_dunu4"]
[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]

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

@@ -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://wq3g1j3l4gl6" path="res://resources/characters/queen.tres" id="2_fgi2k"]
[ext_resource type="Texture2D" uid="uid://c726frtpkk1a8" path="res://assets/characters/Perso 2.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"]
@@ -164,11 +164,12 @@ chara_resource = ExtResource("2_fgi2k")
texture = ExtResource("3_f8hpl")
[node name="MaskMouth" parent="." unique_id=1087336064 instance=ExtResource("3_mutn8")]
position = Vector2(51.77, 409.63)
position = Vector2(60.92, 208.96)
rotation = -0.05235988
[node name="MaskEyes" parent="." unique_id=428968220 instance=ExtResource("3_mutn8")]
position = Vector2(48, 130)
rotation = 0.05235988
position = Vector2(92.37, 201.415)
rotation = -0.017453292
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=713965213]
libraries/ = SubResource("AnimationLibrary_7ex5l")

View File

@@ -28,6 +28,7 @@ class_name GameManager
@export var lvl3_guest_2: MaskedChara
@export_category("Random levels")
@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]
@@ -44,7 +45,6 @@ enum Levels {
RANDOM
}
var current_game_state = GameState.READY
var current_level = Levels.LVL2
var first_guest = true
var current_guest: MaskedChara
var selected_seat: Seat

View File

@@ -5,7 +5,7 @@ class_name MaskedChara
@export var face_mask: MaskResource
@export var mouth_mask: MaskResource
@export var pref_score_map: Dictionary[CharacterResource.Preference, float] = {
var pref_score_map: Dictionary[CharacterResource.Preference, float] = {
CharacterResource.Preference.LOVE: 2.0,
CharacterResource.Preference.APPROVE: 1.0,
CharacterResource.Preference.DONT_CARE: 0.0,
@@ -44,10 +44,12 @@ func compute_score(other_guests: Array[MaskedChara]) -> float:
strength *= face_mask.stimuli_multiplier
trait_strength += strength
var preference = character.preferences.get(guest_trait) if guest_trait in character.preferences else CharacterResource.Preference.APPROVE
var score_multiplier = pref_score_map.get(preference) if preference in pref_score_map else 1.0
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])

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