fixed roster generation
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 1m29s

This commit is contained in:
2026-02-01 14:09:46 +01:00
parent 81b632d3aa
commit 09a92bd148
11 changed files with 76 additions and 64 deletions

View File

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