Assign different paycheck amounts to each job (#29682)

This commit is contained in:
warriorstar-orion
2025-07-23 17:28:07 +00:00
committed by GitHub
parent e198177ec0
commit 9f5bf6f747
12 changed files with 60 additions and 6 deletions
+4 -3
View File
@@ -22,9 +22,10 @@
#define DEPARTMENT_BALANCE_HIGH 1500
/////BASE PAY AMOUNTS///
#define CREW_BASE_PAY_LOW 100
#define CREW_PAY_MEDIUM 250
#define CREW_PAY_HIGH 300
#define CREW_PAY_ASSISTANT 100
#define CREW_PAY_LOW 150
#define CREW_PAY_MEDIUM 200
#define CREW_PAY_HIGH 250
#define DEPARTMENT_BASE_PAY_NONE 0
#define DEPARTMENT_BASE_PAY_LOW 250
+2
View File
@@ -306,6 +306,8 @@ SUBSYSTEM_DEF(economy)
amount_to_pay -= deduction
amount_to_pay = max(amount_to_pay, 0)
account.pay_check_deductions = null
if(!amount_to_pay)
continue
station_db.credit_account(account, amount_to_pay, "Payday", "NAS Trurl Payroll", FALSE)
if(account.account_type == ACCOUNT_TYPE_PERSONAL)
if(LAZYLEN(account.associated_nanobank_programs))
+1
View File
@@ -10,6 +10,7 @@
access = list() //See /datum/job/assistant/get_access()
alt_titles = list("Off-Duty", "Retired", "Intern")
outfit = /datum/outfit/job/assistant
standard_paycheck = CREW_PAY_ASSISTANT
/datum/job/assistant/get_access()
if(GLOB.configuration.jobs.assistant_maint_access)
+5
View File
@@ -72,10 +72,15 @@
/// Boolean detailing if this job has been banned because of a gamemode restriction i.e. The revolution has won, no more command
var/job_banned_gamemode = FALSE
/// Standard paycheck amount for this job
var/standard_paycheck = CREW_PAY_ASSISTANT
//Only override this proc
/datum/job/proc/after_spawn(mob/living/carbon/human/H)
SHOULD_CALL_PARENT(TRUE)
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_JOB_AFTER_SPAWN, src, H)
H.mind.initial_account.payday_amount = standard_paycheck
/datum/job/proc/announce(mob/living/carbon/human/H)
return
+8
View File
@@ -34,6 +34,7 @@
blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY)
outfit = /datum/outfit/job/cmo
important_information = "This role requires you to coordinate a department. You are required to be familiar with Standard Operating Procedure (Medical), basic job duties, and act professionally (roleplay)."
standard_paycheck = CREW_PAY_HIGH
/datum/outfit/job/cmo
name = "Chief Medical Officer"
@@ -81,6 +82,7 @@
minimal_player_age = 3
exp_map = list(EXP_TYPE_CREW = 180)
outfit = /datum/outfit/job/doctor
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/doctor
name = "Medical Doctor"
@@ -121,6 +123,7 @@
minimal_player_age = 3
exp_map = list(EXP_TYPE_CREW = 180)
outfit = /datum/outfit/job/coroner
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/coroner
name = "Coroner"
@@ -190,6 +193,7 @@
minimal_player_age = 7
exp_map = list(EXP_TYPE_CREW = 300)
outfit = /datum/outfit/job/chemist
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/chemist
name = "Chemist"
@@ -231,6 +235,7 @@
minimal_player_age = 3
exp_map = list(EXP_TYPE_CREW = 180)
outfit = /datum/outfit/job/geneticist
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/geneticist
name = "Geneticist"
@@ -275,6 +280,7 @@
/datum/job_objective/virus_samples
)
outfit = /datum/outfit/job/virologist
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/virologist
@@ -315,6 +321,7 @@
)
alt_titles = list("Psychologist","Therapist")
outfit = /datum/outfit/job/psychiatrist
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/psychiatrist
name = "Psychiatrist"
@@ -366,6 +373,7 @@
exp_map = list(EXP_TYPE_CREW = 180)
outfit = /datum/outfit/job/paramedic
important_information = "You are the first responder to medical emergencies outside the sanctity of the Medbay. You can also respond to Lavaland emergencies via the mining shuttle located in Cargo."
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/paramedic
name = "Paramedic"
+4
View File
@@ -44,6 +44,7 @@
outfit = /datum/outfit/job/rd
important_information = "This role requires you to coordinate a department. You are required to be familiar with Standard Operating Procedure (Science), basic job duties, and act professionally (roleplay)."
standard_paycheck = CREW_PAY_HIGH
/datum/outfit/job/rd
name = "Research Director"
@@ -95,6 +96,7 @@
)
outfit = /datum/outfit/job/scientist
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/scientist
name = "Scientist"
@@ -145,6 +147,7 @@
)
outfit = /datum/outfit/job/xenobiologist
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/xenobiologist
name = "Xenobiologist"
@@ -197,6 +200,7 @@
)
outfit = /datum/outfit/job/roboticist
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/roboticist
name = "Roboticist"
+4
View File
@@ -44,6 +44,7 @@
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/hos
important_information = "This role requires you to coordinate a department. You are required to be familiar with Standard Operating Procedure (Security), Space Law, basic job duties, and act professionally (roleplay)."
standard_paycheck = CREW_PAY_HIGH
/datum/outfit/job/hos
name = "Head of Security"
@@ -100,6 +101,7 @@
blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP, DISABILITY_FLAG_PARAPLEGIC)
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/warden
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/warden
name = "Warden"
@@ -159,6 +161,7 @@
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/detective
important_information = "Track, investigate, and look cool while doing it."
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/detective
name = "Detective"
@@ -230,6 +233,7 @@
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/officer
important_information = "Space Law is the law, not a suggestion."
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/officer
name = "Security Officer"
+7
View File
@@ -16,6 +16,7 @@
blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
outfit = /datum/outfit/job/captain
important_information = "This role requires you to coordinate a department. You are required to be familiar with Standard Operating Procedure (Command), basic job duties, and act professionally (roleplay)."
standard_paycheck = CREW_PAY_HIGH
/datum/job/captain/get_access()
return get_all_accesses()
@@ -110,6 +111,7 @@
blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY , DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
outfit = /datum/outfit/job/hop
important_information = "This role requires you to coordinate a department. You are required to be familiar with Standard Operating Procedure (Service), basic job duties, and act professionally (roleplay)."
standard_paycheck = CREW_PAY_HIGH
/datum/outfit/job/hop
name = "Head of Personnel"
@@ -185,6 +187,7 @@
blacklisted_disabilities = list(DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
outfit = /datum/outfit/job/nanotrasenrep
important_information = "This role requires you to advise the Command team about Standard Operating Procedure, Chain of Command, and report to Central Command about various matters. You are required to act in a manner befitting someone representing Nanotrasen."
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/nanotrasenrep
name = "Nanotrasen Representative"
@@ -246,6 +249,7 @@
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/blueshield
important_information = "This role requires you to ensure the safety of the Heads of Staff, not the general crew. You may perform arrests only if the combatant is directly threatening a member of Command, the Nanotrasen Representative, or the Magistrate."
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/blueshield
name = "Blueshield"
@@ -298,6 +302,7 @@
blacklisted_disabilities = list(DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
outfit = /datum/outfit/job/judge
important_information = "This role requires you to oversee legal matters and make important decisions about sentencing. You are required to have an extensive knowledge of Space Law and Security SOP and only operate within, not outside, the boundaries of the law."
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/judge
name = "Magistrate"
@@ -352,6 +357,7 @@
blacklisted_disabilities = list(DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
outfit = /datum/outfit/job/iaa
important_information = "Your job is to deal with affairs regarding Standard Operating Procedure. You are NOT in charge of Space Law affairs, nor can you override it. You are NOT a prisoner defence lawyer."
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/iaa
name = "Internal Affairs Agent"
@@ -413,6 +419,7 @@
blacklisted_disabilities = list(DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
outfit = /datum/outfit/job/nct
important_information = "Your job is to try to assist as many crew members as possible regardless of department. You are NOT permitted to give command staff advice on any command SOP questions or aid in legal advice."
standard_paycheck = CREW_PAY_MEDIUM
/datum/outfit/job/nct
name = "Nanotrasen Career Trainer"
+12
View File
@@ -35,6 +35,7 @@
outfit = /datum/outfit/job/qm
important_information = "This role requires you to coordinate a department. You are required to be familiar with Standard Operating Procedure (Supply), basic job duties, and act professionally (roleplay)."
exp_map = list(EXP_TYPE_SUPPLY = 1200)
standard_paycheck = CREW_PAY_HIGH
/datum/outfit/job/qm
name = "Quartermaster"
@@ -78,6 +79,7 @@
)
alt_titles = list("Mail Carrier", "Courier")
outfit = /datum/outfit/job/cargo_tech
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/cargo_tech
name = "Cargo Technician"
@@ -116,6 +118,7 @@
)
alt_titles = list("Metalworker", "Tinkerer")
outfit = /datum/outfit/job/smith
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/smith
name = "Smith"
@@ -150,6 +153,7 @@
)
alt_titles = list("Spelunker")
outfit = /datum/outfit/job/mining
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/mining
name = "Shaft Miner"
@@ -232,6 +236,7 @@
)
alt_titles = list("Salvage Technician", "Scavenger")
outfit = /datum/outfit/job/explorer
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/explorer
name = "Explorer"
@@ -265,6 +270,7 @@
selection_color = "#dddddd"
access = list(ACCESS_BAR, ACCESS_MAINT_TUNNELS, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
outfit = /datum/outfit/job/bartender
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/bartender
name = "Bartender"
@@ -313,6 +319,7 @@
)
alt_titles = list("Cook","Culinary Artist","Butcher")
outfit = /datum/outfit/job/chef
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/chef
name = "Chef"
@@ -353,6 +360,7 @@
)
alt_titles = list("Hydroponicist", "Botanical Researcher")
outfit = /datum/outfit/job/hydro
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/hydro
name = "Botanist"
@@ -393,6 +401,7 @@
ACCESS_THEATRE
)
outfit = /datum/outfit/job/clown
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/clown
name = "Clown"
@@ -488,6 +497,7 @@
ACCESS_THEATRE
)
outfit = /datum/outfit/job/mime
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/mime
name = "Mime"
@@ -547,6 +557,7 @@
)
alt_titles = list("Custodial Technician")
outfit = /datum/outfit/job/janitor
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/janitor
name = "Janitor"
@@ -586,6 +597,7 @@
)
alt_titles = list("Journalist")
outfit = /datum/outfit/job/librarian
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/librarian
name = "Librarian"
+1
View File
@@ -16,6 +16,7 @@
ACCESS_MORGUE
)
outfit = /datum/outfit/job/chaplain
standard_paycheck = CREW_PAY_LOW
/datum/outfit/job/chaplain
name = "Chaplain"
+10 -1
View File
@@ -509,10 +509,10 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
SSjobs.notify_dept_head(modify.rank, "[scan.registered_name] has transferred \"[modify.registered_name]\" the \"[oldrank]\" to \"[temp_t]\".")
else
var/list/access = list()
var/datum/job/jobdatum
if(is_centcom() && islist(get_centcom_access(t1)))
access = get_centcom_access(t1)
else
var/datum/job/jobdatum
for(var/jobtype in typesof(/datum/job))
var/datum/job/J = new jobtype
if(ckey(J.title) == ckey(t1))
@@ -534,6 +534,9 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
SSjobs.notify_dept_head(t1, "[scan.registered_name] has transferred \"[modify.registered_name]\" the \"[jobnamedata]\" to \"[t1]\".")
if(modify.owner_uid)
SSjobs.slot_job_transfer(modify.rank, t1)
var/datum/money_account/account = modify.get_card_account()
if(account && jobdatum)
account.payday_amount = jobdatum.standard_paycheck
var/mob/living/carbon/human/H = modify.getPlayer()
if(istype(H))
@@ -573,6 +576,9 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
modify.lastlog = "[station_time_timestamp()]: DEMOTED by \"[scan.registered_name]\" ([scan.assignment]) from \"[jobnamedata]\" for: \"[reason]\"."
SSjobs.notify_dept_head(modify.rank, "[scan.registered_name] ([scan.assignment]) has demoted \"[modify.registered_name]\" ([jobnamedata]) for \"[reason]\".")
SSjobs.slot_job_transfer(modify.rank, "Assistant")
var/datum/money_account/account = modify.get_card_account()
if(account)
account.payday_amount = jobdatum.standard_paycheck
modify.access = access
modify.assignment = "Demoted"
modify.icon_state = "id"
@@ -600,6 +606,9 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
var/datum/job/job = SSjobs.GetJob(modify.rank)
if(modify.assignment != "Demoted" && !(job.title in GLOB.command_positions))
job.current_positions--
var/datum/money_account/account = modify.get_card_account()
if(account)
account.payday_amount = 0
modify.assignment = "Terminated"
modify.access = list()
modify.rank = "Terminated"
+2 -2
View File
@@ -28,7 +28,7 @@
///Type of account this is
var/account_type = ACCOUNT_TYPE_PERSONAL
///the amount this account receives every payday
var/payday_amount = CREW_BASE_PAY_LOW
var/payday_amount = CREW_PAY_ASSISTANT
///The nanobank programs associated with this account, used for notifying crew members through PDA, this is a lazy list
var/list/associated_nanobank_programs
@@ -40,7 +40,7 @@
///pay deductions for the next pay period for this account, this is a lazy list
var/list/pay_check_deductions
/datum/money_account/New(_account_name, starting_balance = 0, _security_level = ACCOUNT_SECURITY_ID, _account_type = ACCOUNT_TYPE_PERSONAL, _payday_amount = CREW_BASE_PAY_LOW)
/datum/money_account/New(_account_name, starting_balance = 0, _security_level = ACCOUNT_SECURITY_ID, _account_type = ACCOUNT_TYPE_PERSONAL, _payday_amount = CREW_PAY_ASSISTANT)
account_name = _account_name
credit_balance = starting_balance
payday_amount = _payday_amount