Files
tekton/scripts/ui/mekton_bulls_hud.gd
T

58 lines
1.6 KiB
GDScript

extends Control
@onready var bull_tracker = $BullTracker
@onready var power_picker = $PowerPicker
@onready var placement_panel = $PlacementPanel
@onready var placement_list = $PlacementPanel/VBoxContainer/List
@onready var counters_lbl = $PowerCounters/Label
var local_pid: int = -1
var arena_manager: Node
func _ready():
power_picker.hide()
placement_panel.hide()
func set_local_player(pid: int):
local_pid = pid
func initialize(manager: Node):
arena_manager = manager
func _process(delta: float):
# Hide tracker if bull is close/visible, else point to it
if not arena_manager: return
var local_powers = arena_manager.player_powers.get(local_pid, {"FREEZE": 0, "KNOCK": 0})
counters_lbl.text = "Freeze: %d | Knock: %d" % [local_powers.get("FREEZE", 0), local_powers.get("KNOCK", 0)]
func show_power_picker():
power_picker.show()
func _on_freeze_btn_pressed():
if arena_manager:
arena_manager.rpc_id(1, "try_pick_power", "FREEZE")
power_picker.hide()
func _on_knock_btn_pressed():
if arena_manager:
arena_manager.rpc_id(1, "try_pick_power", "KNOCK")
power_picker.hide()
func show_placement(scores: Dictionary):
placement_panel.show()
for child in placement_list.get_children():
child.queue_free()
var items = []
for pid in scores.keys():
items.append({"pid": pid, "rank": scores[pid]})
items.sort_custom(func(a, b): return a.rank < b.rank)
for item in items:
var lbl = Label.new()
lbl.text = "Player %s - Rank %s" % [str(item.pid), str(item.rank)]
placement_list.add_child(lbl)