feat(ui): add commentary helpers and constants
This commit is contained in:
@@ -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 "无效的牌型组合"
|
||||
|
||||
Reference in New Issue
Block a user