mtd/Scenes/ShopStand/shop_stand.gd

77 lines
2.8 KiB
GDScript3
Raw Normal View History

2024-02-22 06:22:22 +11:00
class_name ShopStand extends Node3D
2023-11-20 21:20:29 +11:00
2024-02-22 06:22:22 +11:00
@export var cards: Array[CardInHand]
@export var choice_colliders: Array[CollisionShape3D]
@export var choice_buttons: Array[InteractButton]
@export var choice_sprites: Array[Sprite3D]
@export var item_card_scene: PackedScene
var price_dict: Dictionary = {
Data.Rarity.UNCOMMON : 25,
Data.Rarity.RARE : 40,
Data.Rarity.EPIC : 60,
Data.Rarity.LEGENDARY : 85,
2023-11-20 21:20:29 +11:00
}
var cards_generated: int = 0
2023-11-20 21:20:29 +11:00
2024-02-22 06:22:22 +11:00
func close() -> void:
for x: CollisionShape3D in choice_colliders:
2023-11-20 21:20:29 +11:00
x.disabled = true
2024-02-22 06:22:22 +11:00
for x: Sprite3D in choice_sprites:
x.set_visible(false)
2023-11-20 21:20:29 +11:00
2024-02-22 06:22:22 +11:00
func randomize_cards() -> void:
var cheap_cards: Array[Card] = []
var medium_cards: Array[Card] = []
var pricey_cards: Array[Card] = []
for card: Card in Data.cards:
2023-11-20 21:20:29 +11:00
if card.rarity == Data.Rarity.UNCOMMON or card.rarity == Data.Rarity.RARE:
cheap_cards.append(card)
if card.rarity == Data.Rarity.RARE or card.rarity == Data.Rarity.EPIC:
medium_cards.append(card)
if card.rarity == Data.Rarity.EPIC or card.rarity == Data.Rarity.LEGENDARY:
pricey_cards.append(card)
2024-02-22 06:22:22 +11:00
for x: int in 3:
var chosen_card: Card = cheap_cards[Game.randi_in_range(12 * cards_generated, 0, cheap_cards.size() - 1)]
cards_generated += 1
2023-11-20 21:20:29 +11:00
cards[x].set_card(chosen_card)
cards[x].view_tower()
choice_buttons[x].press_cost = price_dict[chosen_card.rarity]
choice_buttons[x].hover_text = "Spend $" + str(choice_buttons[x].press_cost) + " to acquire " + chosen_card.display_name + "?"
2024-02-22 06:22:22 +11:00
for x: int in 2:
var chosen_card: Card = medium_cards[Game.randi_in_range(9 * cards_generated, 0, medium_cards.size() - 1)]
cards_generated += 1
2023-11-20 21:20:29 +11:00
cards[x+3].set_card(chosen_card)
cards[x+3].view_tower()
choice_buttons[x+3].press_cost = price_dict[chosen_card.rarity]
choice_buttons[x+3].hover_text = "Spend $" + str(choice_buttons[x+3].press_cost) + " to acquire " + chosen_card.display_name + "?"
2024-02-22 06:22:22 +11:00
for x: int in 1:
var chosen_card: Card = pricey_cards[Game.randi_in_range(50 * cards_generated, 0, pricey_cards.size() - 1)]
cards_generated += 1
2023-11-20 21:20:29 +11:00
cards[x+5].set_card(chosen_card)
cards[x+5].view_tower()
choice_buttons[x+5].press_cost = price_dict[chosen_card.rarity]
choice_buttons[x+5].hover_text = "Spend $" + str(choice_buttons[x+5].press_cost) + " to acquire " + chosen_card.display_name + "?"
2024-02-22 06:22:22 +11:00
for x: CollisionShape3D in choice_colliders:
x.set_deferred("disabled", false)
2024-02-22 06:22:22 +11:00
for x: Sprite3D in choice_sprites:
x.set_visible(true)
2023-11-20 21:20:29 +11:00
func retrieve_card(i: int, callback: Hero) -> void:
#close()
choice_colliders[i].disabled = true
choice_sprites[i].set_visible(false)
2024-02-22 06:22:22 +11:00
var card: Card = cards[i].stats
callback.add_card(card)
#var item: ItemCard = item_card_scene.instantiate() as ItemCard
#item.card = card
#item.position = Vector3(2.128, 0, 0)
#add_child(item)
2023-11-20 21:20:29 +11:00
#button_collider.disabled = false
#button_box.position = Vector3(0,0,0)