everything_has_a_price_jam/member_inspector_panel.gd
2026-09-26 23:54:33 -06:00

73 lines
1.8 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)
UserContext.modal_command_change.connect(modal_command_change)
update()
func modal_command_change(_c: Command):
visible = false
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 clear_commands():
for child in %CommandsList.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 load_commands():
for p in member.currency.commands:
var btn := preload("res://commands/command_button.tscn").instantiate()
btn.command = p
btn.command_succcess.connect(UserContext.modal)
%CommandsList.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()
clear_commands()
%Bribes.visible = false
%Commands.visible = true
if member.allegiance != preload("res://allegiance/good.tres"):
load_bribes()
%Bribes.visible = true
%Commands.visible = false
else:
load_commands()