2 Commits

Author SHA1 Message Date
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
16 changed files with 141 additions and 19 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

@@ -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])