Files
Bubberstation/code/__DEFINES/economy.dm
T
dc5e87e545 Prevents Debug ID Card from Polluting Cargo Budget By Doing It Right (#82214)
## About The Pull Request

Fixes #81755

Alright instead of piggybacking off the departmental/non-departmental
distinction and prevent ourselves from constantly abusing the cargo
budget in order to achieve the very-specific effect of not wanting
players to abuse this card in certain contexts let's just leverage the
framework and expand it so that we can snowflake for admin/`holder` use
cases in stuff like debugging code on a local server while preventing
some player from stealing it off a newbie admin and immediately wrecking
the economy (although it is funny).
## Why It's Good For The Game

Probably a bad idea to continue to abuse the cargo budget like this
since the only reason why it's structured that way is just for specific
use-case exemptions in certain contexts - let's just do our own thing
now :3
## Changelog
🆑
admin: Advanced Debug Cards will still provide a whole lot of access,
but the way the money on those cards work is now a bit different.
Players shouldn't be able to use the money on those cards in any context
though, don't fret about that. Just know that the money printer goes
wrrrr
/🆑

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2024-03-27 19:11:41 +01:00

101 lines
3.2 KiB
Plaintext

/// Number of paychecks jobs start with at the creation of a new bank account for a player (So at shift-start or game join, but not a blank new account.)
#define STARTING_PAYCHECKS 5
/// How much mail the Economy SS will create per minute, regardless of firing time.
#define MAX_MAIL_PER_MINUTE 3
/// Probability of using letters of envelope sprites on all letters.
#define FULL_CRATE_LETTER_ODDS 70
//Current Paycheck values. Altering these changes both the cost of items meant for each paygrade, as well as the passive/starting income of each job.
///Default paygrade for the Unassigned Job/Unpaid job assignments.
#define PAYCHECK_ZERO 0
///Paygrade for Prisoners and Assistants.
#define PAYCHECK_LOWER 25
///Paygrade for all regular crew not belonging to PAYGRADE_LOWER or PAYGRADE_COMMAND.
#define PAYCHECK_CREW 50
///Paygrade for Heads of Staff.
#define PAYCHECK_COMMAND 100
#define STATION_TARGET_BUFFER 25
///The coefficient for the amount of dosh that's collected everytime some is earned or received.
#define DEBT_COLLECTION_COEFF 0.75
#define MAX_GRANT_DPT 500
//What should vending machines charge when you buy something in-department.
#define DEPARTMENT_DISCOUNT 0.2
#define ACCOUNT_CIV "CIV"
#define ACCOUNT_CIV_NAME "Civil Budget"
#define ACCOUNT_ENG "ENG"
#define ACCOUNT_ENG_NAME "Engineering Budget"
#define ACCOUNT_SCI "SCI"
#define ACCOUNT_SCI_NAME "Scientific Budget"
#define ACCOUNT_MED "MED"
#define ACCOUNT_MED_NAME "Medical Budget"
#define ACCOUNT_SRV "SRV"
#define ACCOUNT_SRV_NAME "Service Budget"
#define ACCOUNT_CAR "CAR"
#define ACCOUNT_CAR_NAME "Cargo Budget"
#define ACCOUNT_SEC "SEC"
#define ACCOUNT_SEC_NAME "Defense Budget"
#define IS_DEPARTMENTAL_CARD(card) (card in SSeconomy.dep_cards)
#define IS_DEPARTMENTAL_ACCOUNT(account) (account in SSeconomy.departmental_accounts)
#define NO_FREEBIES "commies go home"
/// The special account ID for admins using debug cards.
#define ADMIN_ACCOUNT_ID "ADMIN!"
//Defines that set what kind of civilian bounties should be applied mid-round.
#define CIV_JOB_BASIC 1
#define CIV_JOB_ROBO 2
#define CIV_JOB_CHEF 3
#define CIV_JOB_SEC 4
#define CIV_JOB_DRINK 5
#define CIV_JOB_CHEM 6
#define CIV_JOB_VIRO 7
#define CIV_JOB_SCI 8
#define CIV_JOB_ENG 9
#define CIV_JOB_MINE 10
#define CIV_JOB_MED 11
#define CIV_JOB_GROW 12
#define CIV_JOB_ATMOS 13
#define CIV_JOB_RANDOM 14
//These defines are to be used to with the payment component, determines which lines will be used during a transaction. If in doubt, go with clinical.
#define PAYMENT_CLINICAL "clinical"
#define PAYMENT_FRIENDLY "friendly"
#define PAYMENT_ANGRY "angry"
#define PAYMENT_VENDING "vending"
#define MARKET_TREND_UPWARD 1
#define MARKET_TREND_DOWNWARD -1
#define MARKET_TREND_STABLE 0
#define MARKET_EVENT_PROBABILITY 8 //Probability of a market event firing, in percent. Fires once per material, every stock market tick.
#define MARKET_PROFIT_MODIFIER 0.8 //We don't make every sale a 1-1 of the actual buy price value, like with real life taxes and to encourage more smart trades
/// Create quantity subtypes for stock market datums.
#define MARKET_QUANTITY_HELPERS(path) ##path/one {\
amount = 1; \
} \
##path/five {\
amount = 5; \
} \
##path/ten {\
amount = 10; \
} \
##path/twenty_five {\
amount = 25; \
} \
##path/fifty {\
amount = 50; \
}