feat(ui): add commentary helpers and constants

This commit is contained in:
xiaji
2026-06-02 20:04:31 +08:00
parent 9ef3d61139
commit 8f21f4dbab

View File

@@ -1,6 +1,10 @@
extends Control
const CARD_NODE_SCENE := preload("res://src/ui/components/card_node.tscn")
const FLIGHT_DURATION := 0.30
const COMMENTARY_FADE_IN := 0.20
const COMMENTARY_HOLD := 0.60
const COMMENTARY_FADE_OUT := 0.30
var controller: TrainingController
var table_cards: Array[CardNode] = []
@@ -12,6 +16,8 @@ var table_cards: Array[CardNode] = []
@onready var status_label: Label = $StatusLabel
@onready var guide_label: Label = $GuideLabel
@onready var table_label: Label = $TableLabel
@onready var commentary_label: Label = $CommentaryLabel
@onready var table_card_root: Control = $TableCardRoot
func _ready() -> void:
if play_button:
@@ -124,6 +130,24 @@ func _clear_table_cards() -> void:
cn.queue_free()
table_cards.clear()
func _show_commentary(player_idx: int, play: HandEvaluator.EvaluatedPlay) -> void:
if not commentary_label:
return
var pname := controller.game_state.player_names[player_idx]
var type_name := _get_type_name(play.type)
commentary_label.text = "%s 出了 %s%d张,主阶=%d" \
% [pname, type_name, play.cards.size(), play.primary_rank]
commentary_label.modulate.a = 0.0
var t := create_tween()
t.tween_property(commentary_label, "modulate:a", 1.0, COMMENTARY_FADE_IN)
func _find_hand_node(card: Card) -> CardNode:
for cn in hand_area.card_nodes:
if cn.card_data != null and cn.card_data.card_id == card.card_id:
return cn
return null
func _get_error_message(error_code: int) -> String:
match error_code:
1: return "无效的牌型组合"