filter perk offers by mode and enforce archetype exclusivity
parent
6d1fcfce07
commit
83c8a61f14
|
|
@ -28,15 +28,22 @@ func _ready() -> void:
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
func _is_eligible(perk: Perk) -> bool:
|
||||||
|
if perk.requires_mode == "":
|
||||||
|
return true
|
||||||
|
var parts = perk.requires_mode.split(":")
|
||||||
|
return perk_effects.get_mode(parts[0]) == parts[1]
|
||||||
|
|
||||||
func show_perks():
|
func show_perks():
|
||||||
player.stream = level_sound
|
player.stream = level_sound
|
||||||
player.play()
|
player.play()
|
||||||
if perks.is_empty():
|
var eligible = perks.filter(_is_eligible)
|
||||||
|
if eligible.is_empty():
|
||||||
return
|
return
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
tween.tween_property($ColorRect, "color:a", 0.6, 0.3)
|
tween.tween_property($ColorRect, "color:a", 0.6, 0.3)
|
||||||
get_tree().paused = true
|
get_tree().paused = true
|
||||||
var shuffled = perks.duplicate()
|
var shuffled = eligible.duplicate()
|
||||||
shuffled.shuffle()
|
shuffled.shuffle()
|
||||||
var chosen = shuffled.slice(0, 3)
|
var chosen = shuffled.slice(0, 3)
|
||||||
await get_tree().create_timer(0.4).timeout
|
await get_tree().create_timer(0.4).timeout
|
||||||
|
|
@ -54,6 +61,8 @@ func select_perk(perk):
|
||||||
_spawn_level_up_particles(get_node("/root/Game/World/Witch").global_position)
|
_spawn_level_up_particles(get_node("/root/Game/World/Witch").global_position)
|
||||||
_spawn_level_up_particles(get_node("/root/Game/World/Player").global_position)
|
_spawn_level_up_particles(get_node("/root/Game/World/Player").global_position)
|
||||||
perks.erase(perk)
|
perks.erase(perk)
|
||||||
|
if perk.archetype_slot != "":
|
||||||
|
perks = perks.filter(func(p): return p.archetype_slot != perk.archetype_slot)
|
||||||
for child in $HBoxContainer.get_children():
|
for child in $HBoxContainer.get_children():
|
||||||
child.animate_out()
|
child.animate_out()
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue