47 lines
992 B
GDScript
47 lines
992 B
GDScript
extends Control
|
|
|
|
const NodesHelpers = preload("res://helpers/nodes.gd")
|
|
|
|
signal unit_created(unit)
|
|
signal turn_end
|
|
|
|
export var attack = false
|
|
var cards = []
|
|
|
|
func add_card(card):
|
|
""" Add a card to the hand
|
|
"""
|
|
cards.append(card)
|
|
NodesHelpers.set_parent(card, self)
|
|
card.connect("played", self, "on_card_played")
|
|
|
|
func get_card_count():
|
|
""" Get the number of cards in hand
|
|
"""
|
|
return len(cards)
|
|
|
|
func rearrange():
|
|
""" Rearrange visually the cards in hand
|
|
"""
|
|
var cardcount = len(cards)
|
|
if cardcount:
|
|
var i = 0
|
|
var cardwidth = cards[0].get_size().x
|
|
var spacing = (rect_size.x - cardwidth * cardcount) / (cardcount + 1)
|
|
for card in cards:
|
|
card.set_hand_location(Vector2((i + 1) * (cardwidth + spacing) - cardwidth, 0))
|
|
i += 1
|
|
|
|
func on_card_played(card, anchor, unit):
|
|
""" Called when a card is played
|
|
"""
|
|
card.queue_free()
|
|
cards.erase(card)
|
|
rearrange()
|
|
if unit:
|
|
emit_signal("unit_created", unit)
|
|
emit_turn_end()
|
|
|
|
func emit_turn_end():
|
|
emit_signal("turn_end")
|