extends Node @warning_ignore("unused_signal") signal currency_inspect(c: Currency) @warning_ignore("unused_signal") signal member_inspect(c: CurrencyMemberSprite) @warning_ignore("unused_signal") signal open_inbox var selected_member: CurrencyMemberSprite = null var focused_members: Array[CurrencyMemberSprite] = [] signal selected_member_change(current: CurrencyMemberSprite) func select_focused_member(): var candidate := focused_member() if candidate == null: return selected_member = candidate selected_member_change.emit(selected_member) UserContext.member_inspect.emit(selected_member) func focused_member() -> CurrencyMemberSprite: if focused_members.size() == 0: return null return focused_members[focused_members.size()-1] func focus_member(member: CurrencyMemberSprite): focused_members.append(member) func unfocus_member(member: CurrencyMemberSprite): var i := focused_members.find(member) if i == -1: return focused_members.remove_at(i)