Add card_view_removed signal and fix a few bugs
This commit is contained in:
parent
40ccd28fb9
commit
5002893113
@ -1,6 +1,8 @@
|
|||||||
tool
|
tool
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
|
signal card_view_removed(card_view)
|
||||||
|
|
||||||
const TYPE_COLORS = [
|
const TYPE_COLORS = [
|
||||||
Color("#db4758"), # DAMAGE
|
Color("#db4758"), # DAMAGE
|
||||||
Color("#3cc361"), # UTILITY
|
Color("#3cc361"), # UTILITY
|
||||||
@ -15,15 +17,11 @@ var input_dice_views = []
|
|||||||
var card : Card = Card.new() setget update_cardview
|
var card : Card = Card.new() setget update_cardview
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
update_cardview()
|
|
||||||
connect_signals()
|
|
||||||
|
|
||||||
|
|
||||||
func update_cardview(new_card = null):
|
func update_cardview(new_card = null):
|
||||||
|
|
||||||
# allow the update card function to work with and without setget
|
# allow the update card function to work with and without setget
|
||||||
if new_card != null:
|
if new_card != null and new_card != card:
|
||||||
|
disconnect_signals()
|
||||||
card = new_card
|
card = new_card
|
||||||
connect_signals()
|
connect_signals()
|
||||||
|
|
||||||
@ -36,6 +34,11 @@ func update_cardview(new_card = null):
|
|||||||
$"%Name".text = card.card_info.name
|
$"%Name".text = card.card_info.name
|
||||||
$"%Description".text = card.card_info.description
|
$"%Description".text = card.card_info.description
|
||||||
|
|
||||||
|
# remove the old input dice views
|
||||||
|
for i in input_dice_views:
|
||||||
|
i.queue_free()
|
||||||
|
input_dice_views = []
|
||||||
|
|
||||||
# add the correct number of input dice views
|
# add the correct number of input dice views
|
||||||
for i in card.card_info.number_of_dice:
|
for i in card.card_info.number_of_dice:
|
||||||
add_input_dice_view()
|
add_input_dice_view()
|
||||||
@ -73,7 +76,9 @@ func add_input_dice_view():
|
|||||||
|
|
||||||
|
|
||||||
# this is run once the card emits card_removed
|
# this is run once the card emits card_removed
|
||||||
func card_view_run():
|
func card_view_run(do_emit_signal : bool = true):
|
||||||
|
# emit card_view_removed signal
|
||||||
|
if do_emit_signal: emit_signal("card_view_removed", self)
|
||||||
|
|
||||||
# play the disappearing input dice animation
|
# play the disappearing input dice animation
|
||||||
for i in input_dice_views:
|
for i in input_dice_views:
|
||||||
@ -87,7 +92,10 @@ func card_view_run():
|
|||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
|
|
||||||
func card_view_remove():
|
func card_view_remove(do_emit_signal : bool = true):
|
||||||
|
# emit card_view_removed signal
|
||||||
|
if do_emit_signal: emit_signal("card_view_removed", self)
|
||||||
|
|
||||||
# play the remove animation
|
# play the remove animation
|
||||||
$AnimationPlayer.play("Drop Off")
|
$AnimationPlayer.play("Drop Off")
|
||||||
yield($AnimationPlayer, "animation_finished")
|
yield($AnimationPlayer, "animation_finished")
|
||||||
@ -96,5 +104,12 @@ func card_view_remove():
|
|||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
func disconnect_signals():
|
||||||
|
if card.get_signal_connection_list("card_removed") == []:
|
||||||
|
return
|
||||||
|
|
||||||
|
card.disconnect("card_removed", self, "card_view_run")
|
||||||
|
|
||||||
|
|
||||||
func connect_signals():
|
func connect_signals():
|
||||||
card.connect("card_removed", self, "card_view_run")
|
card.connect("card_removed", self, "card_view_run")
|
||||||
|
Loading…
Reference in New Issue
Block a user