fix: stop viewing humans when they're sent away

This commit is contained in:
Ronja 2020-10-31 19:14:16 +01:00
parent a3e2210195
commit ed41828ecb
2 changed files with 9 additions and 9 deletions

View file

@ -36,6 +36,7 @@ class Adventures{
adventure.setup() adventure.setup()
adventure.adventurers.each{|human| adventure.adventurers.each{|human|
Human.set_active(human, false) Human.set_active(human, false)
if(_game.focus.value == human) _game.focus.value = null
} }
adventure.resources.list().each{|resource| adventure.resources.list().each{|resource|
_game.resources.remove(resource["base_name"], resource["amount"]) _game.resources.remove(resource["base_name"], resource["amount"])

View file

@ -33,11 +33,10 @@ class UiInfo{
_ui = ui _ui = ui
_page = Observable.new(UiInfo.human) _page = Observable.new(UiInfo.human)
_game = Globals["Game"]
_focus = Observable.new() _game.focus.on_change(true) {|val|
Globals["Game"].focus.on_change(true) {|val|
if(ui.ui_mode == Ui.Info){ if(ui.ui_mode == Ui.Info){
_focus.value = val
if(_page.value == UiInfo.resources){ if(_page.value == UiInfo.resources){
_page.value = UiInfo.human _page.value = UiInfo.human
} }
@ -79,7 +78,7 @@ class UiInfo{
//toolbar buttons //toolbar buttons
_ui.list_button(list, [6, 0], "Adventure!") { _ui.list_button(list, [6, 0], "Adventure!") {
Globals["Game"].adventures.new_or_current() _game.adventures.new_or_current()
_ui.ui_mode = Ui.Planning _ui.ui_mode = Ui.Planning
} }
_ui.list_button(list, [2, 0], "Stats") {_page.value = UiInfo.human} _ui.list_button(list, [2, 0], "Stats") {_page.value = UiInfo.human}
@ -111,7 +110,7 @@ class UiInfo{
Control.set_id(frame, "person info frame") Control.set_id(frame, "person info frame")
Control.child_add(portrait, frame) Control.child_add(portrait, frame)
_focus.on_change(true) {|val| _game.focus.on_change(true) {|val|
//todo: more sophisticated portrait generation //todo: more sophisticated portrait generation
UIImage.set_image(portrait, Assets.image("assets/wip/Portrait")) UIImage.set_image(portrait, Assets.image("assets/wip/Portrait"))
UIImage.set_color(portrait, Human.get_color(val) || [0, 0, 0, 1]) UIImage.set_color(portrait, Human.get_color(val) || [0, 0, 0, 1])
@ -126,7 +125,7 @@ class UiInfo{
var name = UISimpleText.create(_ent) var name = UISimpleText.create(_ent)
Control.child_add(statBlock, name) Control.child_add(statBlock, name)
Control.set_id(name, "human name info") Control.set_id(name, "human name info")
_focus.on_change(true) {|val| _game.focus.on_change(true) {|val|
var name_string = Human.get_name(val) || "-" var name_string = Human.get_name(val) || "-"
UISimpleText.set_text(name, name_string) UISimpleText.set_text(name, name_string)
} }
@ -134,7 +133,7 @@ class UiInfo{
var adventures = UISimpleText.create(_ent) var adventures = UISimpleText.create(_ent)
Control.child_add(statBlock, adventures) Control.child_add(statBlock, adventures)
Control.set_id(name, "human adventure count") Control.set_id(name, "human adventure count")
_focus.on_change(true) {|val| _game.focus.on_change(true) {|val|
var count = Human.get_adventure_count(val) var count = Human.get_adventure_count(val)
var text = count ? "Adventures: %(count)" : "" var text = count ? "Adventures: %(count)" : ""
UISimpleText.set_text(adventures, text) UISimpleText.set_text(adventures, text)
@ -156,7 +155,7 @@ class UiInfo{
Control.set_id(title, "human name info") Control.set_id(title, "human name info")
UILayout.set_behave(_ent, title, UILayoutBehave.left | UILayoutBehave.top) //| UILayout.set_behave(_ent, title, UILayoutBehave.left | UILayoutBehave.top) //|
UILayout.set_margin(_ent, title, 1, 1, 0, 0) UILayout.set_margin(_ent, title, 1, 1, 0, 0)
_focus.on_change(true) {|val| _game.focus.on_change(true) {|val|
var name = Human.get_name(val) var name = Human.get_name(val)
var diary_title = name ? "%(StringUtil.possesive(name)) Diary" : "Diary" var diary_title = name ? "%(StringUtil.possesive(name)) Diary" : "Diary"
UISimpleText.set_text(title, diary_title) UISimpleText.set_text(title, diary_title)
@ -177,7 +176,7 @@ class UiInfo{
Control.child_add(page, resList) Control.child_add(page, resList)
UILayout.set_behave(_ent, resList, UILayoutBehave.left | UILayoutBehave.top) //| UILayout.set_behave(_ent, resList, UILayoutBehave.left | UILayoutBehave.top) //|
UILayout.set_margin(_ent, resList, 7, 3, 0, 0) UILayout.set_margin(_ent, resList, 7, 3, 0, 0)
Globals["Game"].resources.on_change{|val| _game.resources.on_change{|val|
var resources = val.list() var resources = val.list()
var text = resources.map{|res| "%(res["name"]): %(res["amount"])"}.join("\n") var text = resources.map{|res| "%(res["name"]): %(res["amount"])"}.join("\n")
UISimpleText.set_text(resList, text) UISimpleText.set_text(resList, text)