[Feedback, please] Econ screen

Responding to interest on reddit, I added some financial recording to vanilla FC. Sadly I built it after FCdev left, but I'd like to put it up here for feedback before I try adapting it to pregmod.

Goals for the commit:

For each slave:

  • Track slave income and routine expenses, both for the most recent week week and all time.
  • Present this data in some key places, such as slave interact and the sell screen.

Overall:

  • Track and display income and expenses from week to week.
  • Create new financial window to display this data and quickly link to relevant rooms and policy windows.

First, the upkeep screen as it is now

old_screen

I never liked the way this screen is designed. If we are here for a specific slave, it's hard to find her. If we want to know much much a policy costs, there's no total.

Step one, adding purchase price and income/expense tracking for individual slaves:

expanded_income_and_expense_tracking

There's a bug here where clicking on names doesn't work, but having this data is really handy. I also gated a bit of it behind an upgraded AI core, but we could do anything we want there.

Next, I widgetized each slave so her data can be shown in other places:

From slave interact, for example, where you can actually change her food: See_finances_from_slave_interact

Or even while putting her up for sale: See_her_at_sale

The second phase was making the old upkeep screen a subscreen of a new economy screen:

better_econ_screen

Unfortunately my big saves got exploded on my transfer to pmod, but you can see the idea.

I was told that pmod has diverged quite a bit from vanilla, even depreciating costs.tw. I'm willing to put in the work to get this compatible, but I didn't want to start before getting some feedback from the community.

For the most part, the records are kept by replacing direct changes to $cost with widget calls. The widget handles the record keeping, and I could even have it screen NaN problems.

Here is the thread where I was working on it in vanilla:

https://github.com/Free-Cities/Free-Cities/pull/1087

Edited by lowercasedonkey