54 lines
1.3 KiB
GDScript
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
|
|
|