everything_has_a_price_jam/member_inspector_panel.gd
2026-09-26 19:58:03 -06:00

54 lines
1.3 KiB
GDScript

extends "res://gui/currency_inspector_panel.gd"
@export var member: CurrencyMemberSprite
func _ready() -> void:
UserContext.currency_inspect.connect(currency_inspect)
UserContext.member_inspect.connect(member_inspect)
update()
func member_inspect(m: CurrencyMemberSprite):
if member != null:
member.tree_exiting.disconnect(member_left)
member = m
currency = m.currency
m.tree_exiting.connect(member_left)
update()
func member_left():
member = null
visible = false
func clear_bribes():
for child in %BribesList.get_children():
child.queue_free()
func bribe_success():
member.allegiance = preload("res://allegiance/good.tres")
member.sync()
update()
func load_bribes():
for p in member.currency.wants:
var btn := preload("res://gui/bribe_button.tscn").instantiate()
btn.bribe = p
btn.bribe_succees.connect(bribe_success)
%BribesList.add_child(btn)
func currency_inspect(_c: Currency):
visible = false
func update():
super()
if member != null:
%Allegiance.text = member.allegiance.kingdom_name
%CurrencyMemberSprite.currency = member.currency
%CurrencyMemberSprite.allegiance = member.allegiance
%CurrencyMemberSprite.sync()
clear_bribes()
%Bribes.visible = false
if member.allegiance != preload("res://allegiance/good.tres"):
load_bribes()
%Bribes.visible = true