Accounting Glowup: Advances, Pay raises and cuts, and more (#92419)

## About The Pull Request

Fixes #92188

1. The Accounting console now has a new UI

<img width="757" height="486" alt="image"
src="https://github.com/user-attachments/assets/0c6ce73f-ae1c-4a54-b6ba-bcc3b3232d13"
/>

2. The Accounting console can now dish out advances on paychecks, giving
you for full paycheck early. You can give up to 3 advances. This of
course means your next paycheck is not paid out when relevant.

3. The Accounting console can now change paycheck sizes of crewmembers -
up to 1.5x and down to 0.5x.

## Why It's Good For The Game

- Gives the HoP some more duties, now being able to dish out money on
request, reward good behavior, or punish bad behavior.

## Changelog

🆑 Melbert
add: Accounting Console: New UI!
add: Accounting Console: Now can give advances to crewmembers
add: Accounting Console: Can now give pay raises or pay cuts
add: Accounting Console: Now only printable in the security lathe
add: Accounting Console: A spare board is now now found in secure tech
storage.
fix: Fix vending machines adding payments to audit log twice.
fix: Non-crewmembers are no longer shown in the accounting console
/🆑

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
This commit is contained in:
MrMelbert
2025-09-02 18:57:20 -07:00
committed by GitHub
co-authored by ArcaneMusic
parent 052844c8ec
commit 67d27ffe91
22 changed files with 720 additions and 165 deletions
+4 -3
View File
@@ -157,7 +157,7 @@ SUBSYSTEM_DEF(economy)
var/datum/bank_account/bank_account = cached_processing[cached_processing[i]]
if(bank_account?.account_job && !ispath(bank_account.account_job))
temporary_total += (bank_account.account_job.paycheck * STARTING_PAYCHECKS)
bank_account.payday(1)
bank_account.payday(1, skippable = TRUE)
station_total += bank_account.account_balance
if(MC_TICK_CHECK)
cached_processing.Cut(1, i + 1)
@@ -214,14 +214,15 @@ SUBSYSTEM_DEF(economy)
* * price_to_use: The cost of the purchase made for this transaction.
* * vendor: The object or structure medium that is charging the user. For Vending machines that's the machine, for payment component that's the parent, cargo that's the crate, etc.
*/
/datum/controller/subsystem/economy/proc/track_purchase(datum/bank_account/account, price_to_use, vendor)
if(!account || isnull(price_to_use) || !vendor)
/datum/controller/subsystem/economy/proc/add_audit_entry(datum/bank_account/account, price_to_use, vendor)
if(isnull(account) || isnull(price_to_use) || !vendor)
CRASH("Track purchases was missing an argument! (Account, Price, or Vendor.)")
audit_log += list(list(
"account" = "[account.account_holder]",
"cost" = price_to_use,
"vendor" = "[vendor]",
"stationtime" = station_time_timestamp("hh:mm"),
))
/**