fixed roster generation
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user