Added decent remix system
This commit is contained in:
91
remix_menu.gd
Normal file
91
remix_menu.gd
Normal file
@@ -0,0 +1,91 @@
|
||||
class_name RemixMenu
|
||||
extends Control
|
||||
|
||||
signal cards_remixed(cards_consumed: Array[Card], cards_created: Array[Card])
|
||||
|
||||
@export var card_ui_one: CardDescriptionUI
|
||||
@export var card_ui_two: CardDescriptionUI
|
||||
@export var option_button_one: OptionButton
|
||||
@export var option_button_two: OptionButton
|
||||
|
||||
var cards: Array[Card]
|
||||
|
||||
var card_one: Card
|
||||
var card_two: Card
|
||||
|
||||
var temp_card_one: Card
|
||||
var temp_card_two: Card
|
||||
|
||||
|
||||
func add_option(card_options: Array[Card]) -> void:
|
||||
cards = card_options
|
||||
for card: Card in cards:
|
||||
option_button_one.add_item(tr(card.display_name))
|
||||
option_button_two.add_item(tr(card.display_name))
|
||||
option_button_one.select(0)
|
||||
set_card_one(0)
|
||||
option_button_two.select(1)
|
||||
set_card_two(1)
|
||||
|
||||
|
||||
func set_cards(first_card: Card, second_card: Card) -> void:
|
||||
card_one = first_card
|
||||
card_two = second_card
|
||||
|
||||
|
||||
func set_card_one(option: int) -> void:
|
||||
card_one = cards[option]
|
||||
card_ui_one.set_card(card_one, true)
|
||||
|
||||
|
||||
func set_card_two(option: int) -> void:
|
||||
card_two = cards[option]
|
||||
card_ui_two.set_card(card_two, true)
|
||||
|
||||
|
||||
func remix() -> void:
|
||||
temp_card_one = Card.new()
|
||||
temp_card_one.cost = card_one.cost
|
||||
temp_card_one.faction = card_one.faction
|
||||
temp_card_one.rarity = card_one.rarity
|
||||
temp_card_one.tags = card_one.tags
|
||||
temp_card_one.icon = card_one.icon
|
||||
temp_card_one.display_name = card_one.display_name
|
||||
temp_card_one.turret_scene = card_one.turret_scene
|
||||
temp_card_one.weapon_scene = card_one.weapon_scene
|
||||
temp_card_one.tower_stats = card_one.tower_stats.duplicate()
|
||||
temp_card_one.weapon_stats = card_one.weapon_stats.duplicate()
|
||||
for feature: Feature in card_two.tower_stats.features:
|
||||
temp_card_one.tower_stats.features.append(feature)
|
||||
for feature: Feature in card_two.weapon_stats.features:
|
||||
temp_card_one.weapon_stats.features.append(feature)
|
||||
|
||||
temp_card_two = Card.new()
|
||||
temp_card_two.cost = card_two.cost
|
||||
temp_card_two.faction = card_two.faction
|
||||
temp_card_two.rarity = card_two.rarity
|
||||
temp_card_two.tags = card_two.tags
|
||||
temp_card_two.icon = card_two.icon
|
||||
temp_card_two.display_name = card_two.display_name
|
||||
temp_card_two.turret_scene = card_two.turret_scene
|
||||
temp_card_two.weapon_scene = card_two.weapon_scene
|
||||
temp_card_two.tower_stats = card_two.tower_stats.duplicate()
|
||||
temp_card_two.weapon_stats = card_two.weapon_stats.duplicate()
|
||||
for feature: Feature in card_one.tower_stats.features:
|
||||
temp_card_two.tower_stats.features.append(feature)
|
||||
for feature: Feature in card_one.weapon_stats.features:
|
||||
temp_card_two.weapon_stats.features.append(feature)
|
||||
|
||||
card_ui_one.set_card(temp_card_one, true)
|
||||
card_ui_two.set_card(temp_card_two, true)
|
||||
|
||||
|
||||
func _on_button_2_pressed() -> void:
|
||||
var card_array_one: Array[Card]
|
||||
var card_array_two: Array[Card]
|
||||
card_array_one.append(card_one)
|
||||
card_array_one.append(card_two)
|
||||
card_array_two.append(temp_card_one)
|
||||
card_array_two.append(temp_card_two)
|
||||
cards_remixed.emit(card_array_one, card_array_two)
|
||||
queue_free()
|
||||
Reference in New Issue
Block a user