diff --git a/code/__DEFINES/economy.dm b/code/__DEFINES/economy.dm index 1c74acddd..e08a6b7a4 100644 --- a/code/__DEFINES/economy.dm +++ b/code/__DEFINES/economy.dm @@ -1,13 +1,10 @@ -#define BASEPAY_ASSISTANT 1 -#define BASEPAY_ROOKIE 1.05 //rookies, chaplain, clown, curator, lawyer, etc that dont take much effort to be good in -#define BASEPAY_DEFAULT 1.1 -#define BASEPAY_COMMAND 1.3 -#define BASEPAY_CAPTAIN 1.65 +#define ECONOMY_TYPE_ROOKIE "Rookie" +#define ECONOMY_TYPE_DANGEROUS "Dangerous" +#define ECONOMY_TYPE_COMMAND "Command" - -#define PRICE_BASE (BASEPAY_ASSISTANT * 32) -#define PRICE_DEFAULT (PRICE_BASE * 0.5) -#define PRICE_LOW (PRICE_DEFAULT * 0.75) -#define PRICE_HIGH (PRICE_DEFAULT * 2) -#define PRICE_EROTICA (PRICE_DEFAULT * 1.75) -#define PRICE_EXPENSIVE (PRICE_HIGH * 2) +#define ECONOY_PRICE_DEFAULT 0 +#define ECONOMY_PRICE_LOW 1 +#define ECONOMY_PRICE_HIGH 2 +#define ECONOMY_PRICE_EROTIC 3 +#define ECONOMY_PRICE_EXPENSIVE 4 +#define ECONOMY_PRICE_EXPENSIVE_AF 5 diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 1965d4d89..0dad98b29 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -384,3 +384,51 @@ min_val = 0 /datum/config_entry/flag/dynamic_mode + +/datum/config_entry/number/economy_base_payment + config_entry_value = 80 + min_val = 0 + +/datum/config_entry/number/economy_base_pay_ratio + config_entry_value = 3 + min_val = 1 + +/datum/config_entry/number/economy_price_low + config_entry_value = 8 + min_val = 0 + +/datum/config_entry/number/economy_price_default + config_entry_value = 15 + min_val = 0 + +/datum/config_entry/number/economy_price_high + config_entry_value = 30 + min_val = 0 + +/datum/config_entry/number/economy_price_erotic + config_entry_value = 25 + min_val = 0 + +/datum/config_entry/number/economy_price_expensive + config_entry_value = 60 + min_val = 0 + +/datum/config_entry/number/economy_price_expensive_af + config_entry_value = 90 + min_val = 0 + +/datum/config_entry/number/economy_job_rate_default + config_entry_value = 1.2 + min_val = 0 + +/datum/config_entry/keyed_list/economy_job_rate + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + lowercase = FALSE + splitter = "," + +/datum/config_entry/keyed_list/economy_job_rate_area + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + lowercase = FALSE + splitter = "," diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index ed4347265..590adee04 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -62,13 +62,16 @@ var/list/alt_titles = list() /// A multiplier for how much a person gets each paycheck - var/base_paycheck_multiplier = BASEPAY_DEFAULT + var/base_paycheck_multiplier = 1.2 var/override_roundstart_spawn = null //Where the player spawns at roundstart if defined //whitelisting var/whitelist_type = "" +/datum/job/New() + base_paycheck_multiplier = CONFIG_GET(number/economy_job_rate_default) + //Only override this proc //H is usually a human unless an /equip override transformed it /datum/job/proc/after_spawn(mob/living/H, mob/M, latejoin = FALSE) diff --git a/config/game_options.txt b/config/game_options.txt index 495040381..0f73f1f08 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -583,3 +583,45 @@ BOX_RANDOM_ENGINE Box TEG,2 BOX_RANDOM_ENGINE Box Empty,0 BOX_RANDOM_ENGINE Box Antimatter,0 BOX_RANDOM_ENGINE Box P.A.C.M.A.N,0 + +# +## HYPERSTATION +# + +## ECONOMY +# Paychecks get sent to each bank account, which is only initialized if the account holder spawned on the station. +# Bank Accounts are tied to the ID cards that players spawn with. If you have an unset pin, then that means anyone that gets the ID card has access to your money + +# The base amount of credits, before any math whatsoever gets involved, that paychecks give +ECONOMY_BASE_PAYMENT 40 + +# The base pay for paychecks get divided by this amount. Useful for slowing down the rate of payment. +ECONOMY_BASE_PAY_RATIO 3 + +# The default multiplier for a paycheck if nothing is assigned to a specific job. +# You're allowed to set specific jobs a specific type of pay multiplier with ECONOMY_JOB_RATE +ECONOMY_JOB_RATE_DEFAULT 1.2 +# The multiplier that Rookies get. This should be slightly more than assistant but less than default. +ECONOMY_JOB_RATE_AREA Rookie, 1.1 +# The multiplier that Dangerous jobs get, such as Shaft Miner and Security. Should be somewhere between default and command pay rate +ECONOMY_JOB_RATE_AREA Dangerous, 1.3 +# The multiplier that Command roles get, including QM because they're a head :) +ECONOMY_JOB_RATE_AREA Command, 1.4 +# The multiplier for payment that the Captain gets. He controls the station, logically it's harder to do than all of the other jobs. +ECONOMY_JOB_RATE captain, 1.65 + +# Example for adding a single job datum. This basically adds /job/datum/ to what you put here. The value will be included if it falls in a category from ECONOMY_JOB_RATE +# This is a multiplier that Assistants get for their paycheck. +ECONOMY_JOB_RATE assistant, 1 + + +# Default price for items that use these values +ECONOMY_PRICE_LOW 8 +ECONOMY_PRICE_DEFAULT 15 +ECONOMY_PRICE_HIGH 30 +ECONOMY_PRICE_EROTIC 25 +ECONOMY_PRICE_EXPENSIVE 60 +ECONOMY_PRICE_EXPENSIVE_AF 90 + +# A multiplier to the prices of items inside vendors. Avoid setting this lower than the Assistant's paycheck multiplier if possible +ECONOMY_PRICE_MULTIPLIER 1