feat: card zoom

This commit is contained in:
Kenshia 2025-01-26 11:49:25 +07:00
parent cd9f7c7679
commit 83df3047f7
3 changed files with 33 additions and 18 deletions

View file

@ -22,6 +22,7 @@ var match_manager: MatchManager
var show_buttons: bool
var signal_connected: bool
var selected_card: Control
var focused_card: Control
var hovering_cards_this_frame: Array[Control] = []
var hovering_cards_duration: Dictionary = {}
@ -128,6 +129,8 @@ func _on_update(transition):
_pop_this_card(monster_card)
play_card.emit(card))
monster_card.hovering.connect(func (delta): _do_hover(monster_card, delta))
monster_card.right_clicked.connect(func(): _do_zoom(monster_card))
monster_card.un_right_clicked.connect(_do_unzoom)
deck.add_child(monster_card)
elif card is SupportCard and card.type == "red":
@ -144,13 +147,29 @@ func _on_update(transition):
_pop_this_card(btn)
play_card.emit(card))
btn.hovering.connect(func (delta): _do_hover(btn, delta))
btn.right_clicked.connect(func(): _do_zoom(btn))
btn.un_right_clicked.connect(_do_unzoom)
if rps_button_container:
rps_button_container.visible = match_manager.phase == Match.Phase.RPS
for button: TextureButton in rps_button_container.get_children():
button.modulate = rps_grayed_color
func _do_zoom(card: Control):
if focused_card:
_do_unzoom()
var new_card: Control = card.duplicate()
get_parent().add_child(new_card)
new_card.set_anchors_and_offsets_preset(Control.PRESET_CENTER)
new_card.scale = Vector2(2,2)
focused_card = new_card
func _do_unzoom():
if focused_card:
focused_card.queue_free()
focused_card = null
func _pop_this_card(control: Control):
if selected_card:
selected_card.position = Vector2(selected_card.position.x, original_hover_position)