feat(ui): add commentary helpers and constants
This commit is contained in:
@@ -1,6 +1,10 @@
|
|||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
const CARD_NODE_SCENE := preload("res://src/ui/components/card_node.tscn")
|
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 controller: TrainingController
|
||||||
var table_cards: Array[CardNode] = []
|
var table_cards: Array[CardNode] = []
|
||||||
@@ -12,6 +16,8 @@ var table_cards: Array[CardNode] = []
|
|||||||
@onready var status_label: Label = $StatusLabel
|
@onready var status_label: Label = $StatusLabel
|
||||||
@onready var guide_label: Label = $GuideLabel
|
@onready var guide_label: Label = $GuideLabel
|
||||||
@onready var table_label: Label = $TableLabel
|
@onready var table_label: Label = $TableLabel
|
||||||
|
@onready var commentary_label: Label = $CommentaryLabel
|
||||||
|
@onready var table_card_root: Control = $TableCardRoot
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
if play_button:
|
if play_button:
|
||||||
@@ -124,6 +130,24 @@ func _clear_table_cards() -> void:
|
|||||||
cn.queue_free()
|
cn.queue_free()
|
||||||
table_cards.clear()
|
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:
|
func _get_error_message(error_code: int) -> String:
|
||||||
match error_code:
|
match error_code:
|
||||||
1: return "无效的牌型组合"
|
1: return "无效的牌型组合"
|
||||||
|
|||||||
Reference in New Issue
Block a user