58 lines
1.8 KiB
GDScript
58 lines
1.8 KiB
GDScript
extends Control
|
|
|
|
|
|
@onready var perk_effects = get_node("/root/Game/PerkEffects")
|
|
var level_sound = preload("res://assets/music&sfx/sfx/lesiakower-level-up-enhancement-8-bit-retro-sound-effect-153002.mp3")
|
|
var select_sound = preload("res://assets/music&sfx/sfx/47313572-experimental-8-bit-sound-270302.mp3")
|
|
var card_shuffle_sound = preload("res://assets/music&sfx/sfx/card_shuffle.wav")
|
|
var perks
|
|
var player = AudioStreamPlayer.new()
|
|
var select_player = AudioStreamPlayer.new()
|
|
var shuffle_player = AudioStreamPlayer.new()
|
|
@onready var perkCard = preload("res://scenes/PerkCard.tscn")
|
|
|
|
func _ready() -> void:
|
|
perks = perk_effects.available_perks
|
|
get_node("/root/Game/DropManager").leveled_up.connect(show_perks)
|
|
add_child(player)
|
|
add_child(select_player)
|
|
add_child(shuffle_player)
|
|
player.volume_db = -10
|
|
select_player.volume_db = -10
|
|
shuffle_player.volume_db = -10
|
|
select_player.stream = select_sound
|
|
shuffle_player.stream = card_shuffle_sound
|
|
|
|
|
|
func _process(delta: float) -> void:
|
|
pass
|
|
|
|
func show_perks():
|
|
player.stream = level_sound
|
|
player.play()
|
|
if perks.is_empty():
|
|
return
|
|
var tween = create_tween()
|
|
tween.tween_property($ColorRect, "color:a", 0.6, 0.3)
|
|
get_tree().paused = true
|
|
var shuffled = perks.duplicate()
|
|
shuffled.shuffle()
|
|
var chosen = shuffled.slice(0, 3)
|
|
await get_tree().create_timer(0.4).timeout
|
|
for x in chosen:
|
|
var card = perkCard.instantiate()
|
|
$HBoxContainer.add_child(card)
|
|
card.setup(x, func(): select_perk(x), func(): select_player.play())
|
|
shuffle_player.play()
|
|
await get_tree().create_timer(0.25).timeout
|
|
|
|
|
|
func select_perk(perk):
|
|
perk.effect.call()
|
|
get_tree().paused = false
|
|
perks.erase(perk)
|
|
for child in $HBoxContainer.get_children(): child.queue_free()
|
|
var tween = create_tween()
|
|
tween.tween_property($ColorRect, "color:a", 0.0, 0.3)
|
|
await tween.finished
|