feat: bullrush branch - mekton bulls arena, HUD, NPC managers, godot_ai updates
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user