diff --git a/src/ui/components/card_node.gd b/src/ui/components/card_node.gd index 0fa23c5..ed7a1a0 100644 --- a/src/ui/components/card_node.gd +++ b/src/ui/components/card_node.gd @@ -6,10 +6,13 @@ signal card_double_clicked(card_node: CardNode) var card_data: Card = null var is_selected: bool = false +var _lift_tween: Tween = null @onready var panel: Panel = $Panel @onready var card_texture: TextureRect = $Panel/CardTexture +const LIFT_OFFSET := -25.0 +const LIFT_DURATION := 0.12 const RANK_PREFIX := ["", "", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "SJ", "BJ"] const SUIT_LETTER := ["S", "H", "C", "D", "SJ", "BJ"] const CARD_TEXTURE_PATH := "res://assets/cards/" @@ -68,6 +71,13 @@ func set_selected(sel: bool) -> void: is_selected = sel _update_panel() + if _lift_tween and _lift_tween.is_valid(): + _lift_tween.kill() + _lift_tween = create_tween() + _lift_tween.set_trans(Tween.TRANS_QUAD) + _lift_tween.set_ease(Tween.EASE_OUT) + _lift_tween.tween_property(self, "position:y", LIFT_OFFSET if sel else 0.0, LIFT_DURATION) + func _on_gui_input(event: InputEvent) -> void: if event is InputEventMouseButton: if event.button_index == MOUSE_BUTTON_LEFT and event.pressed: