Files
Decked-Out-Defense/scenes/mixer/scr_mixer.gd

38 lines
1.2 KiB
GDScript

class_name RemixTable
extends StaticBody3D
@export var remix_menu_scene: PackedScene
@export var button: InteractButton
var reply_player: Hero
func _ready() -> void:
button.hover_text = tr("PROMPT_REMIX_INTERACT")
func _on_static_body_3d_button_interacted(_value: int, callback: Hero) -> void:
if callback.hand.size >= 1:
reply_player = callback
var menu: TrackEditor = remix_menu_scene.instantiate() as TrackEditor
var cassette_array: Array[Cassette] = []
for cassette: Cassette in callback.hand.contents:
cassette_array.append(cassette)
menu.hero = reply_player
menu.set_money(reply_player.currency)
menu.populate_feature_slots()
menu.add_option(cassette_array)
menu.cassettes_remixed.connect(output)
menu.press_check_button(false)
reply_player.pause()
reply_player.hud.add_child(menu)
func output(cassettes_to_remove: Array[Cassette], cassettes_to_add: Array[Cassette], amount_spent: int) -> void:
for cassette: Cassette in cassettes_to_remove:
reply_player.hand.contents.erase(cassette)
reply_player.hud.hot_wheel.update_cassettes(reply_player.get_wheel_cassettes())
for cassette: Cassette in cassettes_to_add:
reply_player.add_cassette(cassette)
reply_player.currency -= amount_spent
reply_player.unpause()