diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index e98b83f2bf7a..906e807b673c 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -12,6 +12,15 @@ #define JOB_DISPLAY_ORDER_DEFAULT 0 +#define DEPARTMENT_SECURITY (1<<0) +#define DEPARTMENT_COMMAND (1<<1) +#define DEPARTMENT_SERVICE (1<<2) +#define DEPARTMENT_CARGO (1<<3) +#define DEPARTMENT_ENGINEERING (1<<4) +#define DEPARTMENT_SCIENCE (1<<5) +#define DEPARTMENT_MEDICAL (1<<6) +#define DEPARTMENT_SILICON (1<<7) + //Command #define JOB_DISPLAY_ORDER_MANAGER 1 #define JOB_DISPLAY_ORDER_SEPHIRAH 2 diff --git a/code/__DEFINES/~lobotomy_defines/jobs.dm b/code/__DEFINES/~lobotomy_defines/jobs.dm new file mode 100644 index 000000000000..b8910d828daa --- /dev/null +++ b/code/__DEFINES/~lobotomy_defines/jobs.dm @@ -0,0 +1,106 @@ +#define DEPARTMENT_W_CORP (1<<10) +#define DEPARTMENT_R_CORP (1<<11) +#define DEPARTMENT_HANA (1<<12) +#define DEPARTMENT_ASSOCIATION (1<<13) +#define DEPARTMENT_CITY_ANTAGONIST (1<<13) +#define DEPARTMENT_FIXERS (1<<14) + +GLOBAL_LIST_INIT(w_corp_positions, list( + "W-Corp Representative", + "W-Corp L3 Squad Captain", + "W-Corp L2 Type A Lieutenant", + "W-Corp L2 Type B Support Agent", + "W-Corp L2 Type C Weapon Specialist", + "W-Corp L2 Type D Spear Agent", + "W-Corp L1 Cleanup Agent", +)) + +GLOBAL_LIST_INIT(r_corp_positions, list( + // 4th Pack Command + "Ground Commander", + "Lieutenant Commander", + "Operations Officer", + "Rabbit Squad Captain", + "Reindeer Squad Captain", + "Rhino Squad Captain", + "Raven Squad Captain", + + // 5th Pack Command + "Assault Commander", + "Base Commander", + "Support Officer", + "Rat Squad Leader", + "Rooster Squad Leader", + "Raccoon Squad Leader", + "Roadrunner Squad Leader", + + // 4th Pack troops + "R-Corp Suppressive Rabbit", + "R-Corp Assault Rabbit", + "R-Corp Medical Reindeer", + "R-Corp Berserker Reindeer", + "R-Corp Gunner Rhino", + "R-Corp Hammer Rhino", + "R-Corp Scout Raven", + "R-Corp Support Raven", + + // 5th Pack troops + "R-Corp Rat", + "R-Corp Rooster", + "R-Corp Raccoon Spy", + "R-Corp Raccoon Sniper", + "R-Corp Roadrunner", +)) + +GLOBAL_LIST_INIT(hana_positions, list( + "Hana Administrator", + "Hana Representative", + "Hana Intern", +)) + +GLOBAL_LIST_INIT(fixer_positions, list( + "East Office Director", + "East Office Fixer", + "North Office Director", + "North Office Fixer", + + "Association Section Director", + "Association Veteran", + "Association Fixer", + "Roaming Association Fixer", + + "Medical Fixer Assistant", + "Fixer", + "Rat", // most fitting, somehow +)) + +GLOBAL_LIST_INIT(association_positions, list( + "Association Section Director", + "Association Veteran", + "Association Fixer", + "Roaming Association Fixer", +)) + +GLOBAL_LIST_INIT(city_antagonist_positions, list( + "Index Messenger", + "Index Proxy", + "Index Proselyte", + + "Blade Lineage Cutthroat", + "Blade Lineage Salsu", + "Blade Lineage Ronin", + "Blade Lineage Roaming Salsu", + + "Grand Inquisitor", + "N Corp Grosshammer", + "N Corp Mittlehammer", + "N Corp Kleinhammer", + + "Thumb Sottocapo", + "Thumb Capo", + "Thumb Soldato", + + "Kurokumo Kashira", + "Kurokumo Hosa", + "Kurokumo Wakashu", +)) diff --git a/code/_globalvars/tgui.dm b/code/_globalvars/tgui.dm new file mode 100644 index 000000000000..6903af6d9133 --- /dev/null +++ b/code/_globalvars/tgui.dm @@ -0,0 +1 @@ +GLOBAL_DATUM(crew_manifest_tgui, /datum/crew_manifest) diff --git a/code/controllers/subsystem/maptype.dm b/code/controllers/subsystem/maptype.dm index bcdf86aabd82..ac8044af5626 100644 --- a/code/controllers/subsystem/maptype.dm +++ b/code/controllers/subsystem/maptype.dm @@ -36,7 +36,7 @@ SUBSYSTEM_DEF(maptype) var/list/nofear = list("limbus_labs") //What departments are we looking at - var/list/departments = list("Command","Security","Service") + var/list/departments = list("Command", "Security", "Service") /datum/controller/subsystem/maptype/Initialize() @@ -44,12 +44,18 @@ SUBSYSTEM_DEF(maptype) //Badda Bing Badda Da. This makes the latejoin menu cleaner switch(SSmaptype.maptype) - if("wonderlabs", "city", "fixers") - departments = list("Command", "Security", "Service", "Science") + if("wonderlabs") + departments = list("Command", "Fixers", "Security", "Service") + if("city") + departments = list("Command", "Hana", "Association", "Syndicate", "Fixers", "Medical", "Security", "Service") + if("fixers") + departments = list("Command", "Hana", "Association", "Fixers", "Medical", "Service") if("limbus_labs") - departments = list("Command", "Security","Medical", "Science", "Service" ) - if("rcorp", "wcorp") - departments = list("Command", "Security") + departments = list("Command", "Security", "Medical", "Science", "Engineering", "Service" ) + if("rcorp") + departments = list("Command", "R Corp", "Medical") + if("wcorp") + departments = list("Command", "W Corp") var/list/all_jobs = subtypesof(/datum/job) if(!all_jobs.len) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 2795b182bab3..a5bec57e0841 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -148,7 +148,15 @@ "Science", "Supply", "Service", - "Silicon" + "Silicon", + // LOBOTOMYCORPORATION ADDITION START + "W Corp", + "R Corp", + "Hana", + "Association", + "Syndicate", + "Fixers", + // LOBOTOMYCORPORATION ADDITION END ) var/list/departments = list( "Command" = GLOB.command_positions, @@ -158,8 +166,18 @@ "Science" = GLOB.science_positions, "Supply" = GLOB.supply_positions, "Service" = GLOB.service_positions, - "Silicon" = GLOB.nonhuman_positions + "Silicon" = GLOB.nonhuman_positions, + // LOBOTOMYCORPORATION ADDITION START + "W Corp" = GLOB.w_corp_positions, + "R Corp" = GLOB.r_corp_positions, + "Hana" = GLOB.hana_positions, + "Association" = GLOB.association_positions, + "Syndicate" = GLOB.city_antagonist_positions, + "Fixers" = GLOB.fixer_positions, + // LOBOTOMYCORPORATION ADDITION END ) + var/list/heads = GLOB.command_positions + list("Quartermaster") + for(var/datum/data/record/t in GLOB.data_core.general) var/name = t.fields["name"] var/rank = t.fields["rank"] @@ -170,12 +188,33 @@ if((rank in jobs) || (true_rank in jobs)) //Tegu edit - alt job titles if(!manifest_out[department]) manifest_out[department] = list() - manifest_out[department] += list(list( - "name" = name, - "rank" = rank - )) + // LOBOTOMYCORPORATION ADDITION START + var/duplicate_found = FALSE + for(var/list/data as anything in manifest_out[department]) + if(findtext(data["name"], name) && rank == data["rank"]) + duplicate_found = TRUE + if(length(data) == 2) + data["count"] = 1 + data["count"]++ + data["name"] = "x[data["count"]] [name]" + continue + + if(duplicate_found) + has_department = TRUE + continue + // LOBOTOMYCORPORATION ADDITION END + // Append to beginning of list if captain or department head + if (rank == "Captain" || (department != "Command" && (rank in heads))) + manifest_out[department] = list(list( + "name" = name, + "rank" = rank + )) + manifest_out[department] + else + manifest_out[department] += list(list( + "name" = name, + "rank" = rank + )) has_department = TRUE - break if(!has_department) if(!manifest_out["Misc"]) manifest_out["Misc"] = list() diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 3023103a5daa..bfb9171ccbe9 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -79,6 +79,9 @@ var/bounty_types = CIV_JOB_BASIC + ///Bitfield of departments this job belongs wit + var/departments = NONE + /// Should this job be allowed to be picked for the bureaucratic error event? var/allow_bureaucratic_error = TRUE diff --git a/code/modules/jobs/job_types/agent.dm b/code/modules/jobs/job_types/agent.dm index 9fff451173c5..6f3528d72010 100644 --- a/code/modules/jobs/job_types/agent.dm +++ b/code/modules/jobs/job_types/agent.dm @@ -18,6 +18,7 @@ minimal_access = list() allow_bureaucratic_error = FALSE + departments = DEPARTMENT_SECURITY job_important = "You are a L-Corp Agent. Your job is to work on and suppress Abnormalities. Use :h to talk on your departmental radio." diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index 1d4d4edea64b..1160d2ac6d79 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -10,13 +10,15 @@ GLOBAL_LIST_EMPTY(spawned_clerks) spawn_positions = 0 supervisors = "absolutely everyone" selection_color = "#dddddd" - access = list(ACCESS_ROBOTICS) //See /datum/job/assistant/get_access() - minimal_access = list(ACCESS_ROBOTICS) //See /datum/job/assistant/get_access() - // Let their be bot maintenance! + outfit = /datum/outfit/job/assistant - antag_rep = 7 //persistant currency but currently unusable + antag_rep = 7 // Persistant currency but currently unusable display_order = JOB_DISPLAY_ORDER_CLERK + access = list(ACCESS_ROBOTICS) // Let their be bot maintenance! + minimal_access = list(ACCESS_ROBOTICS) + departments = DEPARTMENT_SERVICE + liver_traits = list(TRAIT_GREYTIDE_METABOLISM) allow_bureaucratic_error = FALSE diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index a0b2cf991a54..02b692664024 100644 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -9,6 +9,7 @@ display_order = JOB_DISPLAY_ORDER_CAPTAIN access = list(ACCESS_COMMAND) // LC13:To-Do + departments = DEPARTMENT_COMMAND | DEPARTMENT_SECURITY exp_requirements = 6000 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_SECURITY diff --git a/code/modules/jobs/job_types/city/HHPP.dm b/code/modules/jobs/job_types/city/HHPP.dm index fdfead9b9aa9..8114efd265ed 100644 --- a/code/modules/jobs/job_types/city/HHPP.dm +++ b/code/modules/jobs/job_types/city/HHPP.dm @@ -10,6 +10,7 @@ HHPP Employee selection_color = "#dddddd" access = list(ACCESS_KITCHEN) minimal_access = list(ACCESS_KITCHEN) + departments = DEPARTMENT_SERVICE outfit = /datum/outfit/job/chef antag_rep = 7 display_order = JOB_DISPLAY_ORDER_HHPP diff --git a/code/modules/jobs/job_types/city/backstreets_butcher.dm b/code/modules/jobs/job_types/city/backstreets_butcher.dm index 126b72b52209..8a9d28edf681 100644 --- a/code/modules/jobs/job_types/city/backstreets_butcher.dm +++ b/code/modules/jobs/job_types/city/backstreets_butcher.dm @@ -10,6 +10,7 @@ Backstreets Butcher selection_color = "#555555" access = list(ACCESS_GENETICS) minimal_access = list(ACCESS_GENETICS) + departments = DEPARTMENT_SERVICE // They can provide you a service, before you're eaten outfit = /datum/outfit/job/butcher display_order = JOB_DISPLAY_ORDER_ANTAG exp_requirements = 300 diff --git a/code/modules/jobs/job_types/city/carnival.dm b/code/modules/jobs/job_types/city/carnival.dm index 55a09ab271cd..3e25d30326c4 100644 --- a/code/modules/jobs/job_types/city/carnival.dm +++ b/code/modules/jobs/job_types/city/carnival.dm @@ -7,6 +7,7 @@ selection_color = "#555555" access = list(ACCESS_CARGO) minimal_access = list(ACCESS_CARGO) + departments = DEPARTMENT_SERVICE outfit = /datum/outfit/job/carnival display_order = JOB_DISPLAY_ORDER_ANTAG exp_requirements = 300 diff --git a/code/modules/jobs/job_types/city/civilian.dm b/code/modules/jobs/job_types/city/civilian.dm index 801f52791902..6e426f68a662 100644 --- a/code/modules/jobs/job_types/city/civilian.dm +++ b/code/modules/jobs/job_types/city/civilian.dm @@ -10,10 +10,10 @@ Civilian selection_color = "#dddddd" access = list(ACCESS_LAWYER) minimal_access = list(ACCESS_LAWYER) + departments = DEPARTMENT_SERVICE outfit = /datum/outfit/job/civilian antag_rep = 7 display_order = JOB_DISPLAY_ORDER_CIVILIAN - allow_bureaucratic_error = FALSE maptype = list("city", "fixers") paycheck = 170 diff --git a/code/modules/jobs/job_types/city/doctor.dm b/code/modules/jobs/job_types/city/doctor.dm index 9f47de055408..24a1d2732f38 100644 --- a/code/modules/jobs/job_types/city/doctor.dm +++ b/code/modules/jobs/job_types/city/doctor.dm @@ -9,6 +9,7 @@ access = list(ACCESS_MEDICAL) minimal_access = list(ACCESS_MEDICAL) + departments = DEPARTMENT_COMMAND | DEPARTMENT_MEDICAL paycheck = PAYCHECK_MEDIUM paycheck_department = ACCOUNT_MED @@ -126,6 +127,7 @@ exp_requirements = 180 display_order = JOB_DISPLAY_ORDER_MEDICALASSIST + departments = DEPARTMENT_MEDICAL | DEPARTMENT_FIXERS maptype = list("wonderlabs", "city", "fixers") job_important = "You are an a medical fixer. Your job is to explore the backstreets to grab dead fixers to bring back to the clinic." diff --git a/code/modules/jobs/job_types/city/fixer/east.dm b/code/modules/jobs/job_types/city/fixer/east.dm index aa0eb47f6df1..19f13436fdae 100644 --- a/code/modules/jobs/job_types/city/fixer/east.dm +++ b/code/modules/jobs/job_types/city/fixer/east.dm @@ -15,6 +15,7 @@ trusted_only = TRUE access = list(ACCESS_MINING_STATION, ACCESS_RC_ANNOUNCE) // East office is 54 minimal_access = list(ACCESS_MINING_STATION, ACCESS_RC_ANNOUNCE) + departments = DEPARTMENT_COMMAND | DEPARTMENT_FIXERS maptype = list("city-small", "wonderlabs") job_attribute_limit = 80 @@ -66,6 +67,7 @@ display_order = JOB_DISPLAY_ORDER_FIXER access = list(ACCESS_MINING_STATION) minimal_access = list(ACCESS_MINING_STATION) + departments = DEPARTMENT_FIXERS maptype = "wonderlabs" job_attribute_limit = 60 diff --git a/code/modules/jobs/job_types/city/fixer/north.dm b/code/modules/jobs/job_types/city/fixer/north.dm index 92b0ab620c65..f7dbca896e3e 100644 --- a/code/modules/jobs/job_types/city/fixer/north.dm +++ b/code/modules/jobs/job_types/city/fixer/north.dm @@ -13,8 +13,9 @@ display_order = JOB_DISPLAY_ORDER_FIXERLEAD paycheck = 100 trusted_only = TRUE - access = list(ACCESS_XENOBIOLOGY, ACCESS_RC_ANNOUNCE) // Numero 55 + access = list(ACCESS_XENOBIOLOGY, ACCESS_RC_ANNOUNCE) minimal_access = list(ACCESS_XENOBIOLOGY, ACCESS_RC_ANNOUNCE) + departments = DEPARTMENT_COMMAND | DEPARTMENT_FIXERS maptype = list("city-small", "wonderlabs") job_attribute_limit = 80 @@ -66,6 +67,7 @@ display_order = JOB_DISPLAY_ORDER_FIXER access = list(ACCESS_XENOBIOLOGY) minimal_access = list(ACCESS_XENOBIOLOGY) + departments = DEPARTMENT_FIXERS maptype = "wonderlabs" job_attribute_limit = 60 diff --git a/code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm b/code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm index e19cdd8a9bf4..2bd60bb506ba 100644 --- a/code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm +++ b/code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 150 maptype = list("city") job_important = "You belong to the Blade Lineage, a band of wandering swordsmen. \ diff --git a/code/modules/jobs/job_types/city/prosthetic.dm b/code/modules/jobs/job_types/city/prosthetic.dm index e0a6cf809ad0..d3d6d90f72ba 100644 --- a/code/modules/jobs/job_types/city/prosthetic.dm +++ b/code/modules/jobs/job_types/city/prosthetic.dm @@ -9,6 +9,7 @@ access = list(ACCESS_GENETICS) minimal_access = list(ACCESS_GENETICS) + departments = DEPARTMENT_MEDICAL | DEPARTMENT_SERVICE paycheck = 700 //You need a lot of money paycheck_department = ACCOUNT_MED diff --git a/code/modules/jobs/job_types/city/rat.dm b/code/modules/jobs/job_types/city/rat.dm index 040fe7f98cce..84ef1ecd1f97 100644 --- a/code/modules/jobs/job_types/city/rat.dm +++ b/code/modules/jobs/job_types/city/rat.dm @@ -10,6 +10,7 @@ Scavenger selection_color = "#555555" access = list(ACCESS_LAWYER) minimal_access = list(ACCESS_LAWYER) + departments = DEPARTMENT_FIXERS // Close enough outfit = /datum/outfit/job/scavenger antag_rep = 7 display_order = JOB_DISPLAY_ORDER_ANTAG diff --git a/code/modules/jobs/job_types/city/syndicate/blade_lineage/cutthroat.dm b/code/modules/jobs/job_types/city/syndicate/blade_lineage/cutthroat.dm index 1b342796ec8b..5d5aff71e8bb 100644 --- a/code/modules/jobs/job_types/city/syndicate/blade_lineage/cutthroat.dm +++ b/code/modules/jobs/job_types/city/syndicate/blade_lineage/cutthroat.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "This is a roleplay role. You are the leader of this band of wandering swordsmen. \ diff --git a/code/modules/jobs/job_types/city/syndicate/blade_lineage/salsu.dm b/code/modules/jobs/job_types/city/syndicate/blade_lineage/salsu.dm index 92f078cb6501..ee5942596a06 100644 --- a/code/modules/jobs/job_types/city/syndicate/blade_lineage/salsu.dm +++ b/code/modules/jobs/job_types/city/syndicate/blade_lineage/salsu.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 150 maptype = list("city") job_important = "You belong to the Blade Lineage, a band of wandering swordsmen. \ diff --git a/code/modules/jobs/job_types/city/syndicate/index/messenger.dm b/code/modules/jobs/job_types/city/syndicate/index/messenger.dm index 4ff29876e109..bd302629c6a5 100644 --- a/code/modules/jobs/job_types/city/syndicate/index/messenger.dm +++ b/code/modules/jobs/job_types/city/syndicate/index/messenger.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "This is a roleplay role. You are the leader of this index branch. You are not inherently hostile. \ diff --git a/code/modules/jobs/job_types/city/syndicate/index/proselyte.dm b/code/modules/jobs/job_types/city/syndicate/index/proselyte.dm index fe189c97ec98..f0d2c35ba245 100644 --- a/code/modules/jobs/job_types/city/syndicate/index/proselyte.dm +++ b/code/modules/jobs/job_types/city/syndicate/index/proselyte.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 100 maptype = list("city") job_important = "You are an initiate in the Index syndicate. You are not inherently hostile. \ diff --git a/code/modules/jobs/job_types/city/syndicate/index/proxy.dm b/code/modules/jobs/job_types/city/syndicate/index/proxy.dm index b63c670fc13e..fbadddeaf960 100644 --- a/code/modules/jobs/job_types/city/syndicate/index/proxy.dm +++ b/code/modules/jobs/job_types/city/syndicate/index/proxy.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 200 maptype = list("city") job_important = "You are a veteran in the Index syndicate. You are not inherently hostile. \ diff --git a/code/modules/jobs/job_types/city/syndicate/kurokumo/blade_ronin.dm b/code/modules/jobs/job_types/city/syndicate/kurokumo/blade_ronin.dm index 1a90cd3f07d8..ee1db3d46e62 100644 --- a/code/modules/jobs/job_types/city/syndicate/kurokumo/blade_ronin.dm +++ b/code/modules/jobs/job_types/city/syndicate/kurokumo/blade_ronin.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "You are not apart of Kurokumo Clan. \ diff --git a/code/modules/jobs/job_types/city/syndicate/kurokumo/captain.dm b/code/modules/jobs/job_types/city/syndicate/kurokumo/captain.dm index 57415b917312..7ede34354eaf 100644 --- a/code/modules/jobs/job_types/city/syndicate/kurokumo/captain.dm +++ b/code/modules/jobs/job_types/city/syndicate/kurokumo/captain.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "This is a roleplay role. You are the leader of this kurokumo branch. \ diff --git a/code/modules/jobs/job_types/city/syndicate/kurokumo/enforcer.dm b/code/modules/jobs/job_types/city/syndicate/kurokumo/enforcer.dm index 23c89f4fb6ca..02b8c40a57ba 100644 --- a/code/modules/jobs/job_types/city/syndicate/kurokumo/enforcer.dm +++ b/code/modules/jobs/job_types/city/syndicate/kurokumo/enforcer.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEVET access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 200 maptype = list("city") job_important = "You are an enforcer in the Kurokumo clan. You are to be respectful and follow orders from the Kashira. Not doing either will result in death. \ diff --git a/code/modules/jobs/job_types/city/syndicate/kurokumo/wakashu.dm b/code/modules/jobs/job_types/city/syndicate/kurokumo/wakashu.dm index fd8f49011a8a..3ab366a83a00 100644 --- a/code/modules/jobs/job_types/city/syndicate/kurokumo/wakashu.dm +++ b/code/modules/jobs/job_types/city/syndicate/kurokumo/wakashu.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 100 maptype = list("city") job_important = "You are a soldier in the Kurokumo Clan. You are to follow orders from your Kashira. Not doing either will result in death." diff --git a/code/modules/jobs/job_types/city/syndicate/ncorp/grandinquis.dm b/code/modules/jobs/job_types/city/syndicate/ncorp/grandinquis.dm index 974f4e1e5299..6abafd320fc5 100644 --- a/code/modules/jobs/job_types/city/syndicate/ncorp/grandinquis.dm +++ b/code/modules/jobs/job_types/city/syndicate/ncorp/grandinquis.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "This is a roleplay role. You are the leader of this NCorp inquisition. \ diff --git a/code/modules/jobs/job_types/city/syndicate/ncorp/grosshammer.dm b/code/modules/jobs/job_types/city/syndicate/ncorp/grosshammer.dm index 34143327478f..a4de4038a14e 100644 --- a/code/modules/jobs/job_types/city/syndicate/ncorp/grosshammer.dm +++ b/code/modules/jobs/job_types/city/syndicate/ncorp/grosshammer.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEVET access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 70 maptype = list("city") job_important = "You are an NCorp grosshammer. Your main goal is to kill and maim all prosthetic users. \ diff --git a/code/modules/jobs/job_types/city/syndicate/ncorp/kleinhammer.dm b/code/modules/jobs/job_types/city/syndicate/ncorp/kleinhammer.dm index 707be83dfd6c..4348e6e7c739 100644 --- a/code/modules/jobs/job_types/city/syndicate/ncorp/kleinhammer.dm +++ b/code/modules/jobs/job_types/city/syndicate/ncorp/kleinhammer.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 10 maptype = list("city") job_important = "You are an NCorp kleinhammer. Your main goal is to kill and maim all prosthetic users. \ diff --git a/code/modules/jobs/job_types/city/syndicate/ncorp/mittlehammer.dm b/code/modules/jobs/job_types/city/syndicate/ncorp/mittlehammer.dm index 0d973183df67..435898792f84 100644 --- a/code/modules/jobs/job_types/city/syndicate/ncorp/mittlehammer.dm +++ b/code/modules/jobs/job_types/city/syndicate/ncorp/mittlehammer.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 70 maptype = list("city") job_important = "You are an NCorp Mittlehammer. Your main goal is to kill and maim all prosthetic users. \ diff --git a/code/modules/jobs/job_types/city/syndicate/thumb/capo.dm b/code/modules/jobs/job_types/city/syndicate/thumb/capo.dm index 7ecb9e7d6445..7d256dbf4138 100644 --- a/code/modules/jobs/job_types/city/syndicate/thumb/capo.dm +++ b/code/modules/jobs/job_types/city/syndicate/thumb/capo.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEVET access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 200 maptype = list("city") job_important = "You are a lieutenant in the Thumb Syndicate. You are to be respectful and follow orders from the sottocapo. Not doing either will result in death. \ diff --git a/code/modules/jobs/job_types/city/syndicate/thumb/soldato.dm b/code/modules/jobs/job_types/city/syndicate/thumb/soldato.dm index 297bc53409d3..1ad5e00bf8b3 100644 --- a/code/modules/jobs/job_types/city/syndicate/thumb/soldato.dm +++ b/code/modules/jobs/job_types/city/syndicate/thumb/soldato.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 100 maptype = list("city") job_important = "You are a soldier in the Thumb Syndicate. You are to stay quiet and follow orders from your capo and sottocapo. Not doing either will result in death." diff --git a/code/modules/jobs/job_types/city/syndicate/thumb/sottocapo.dm b/code/modules/jobs/job_types/city/syndicate/thumb/sottocapo.dm index f20f3d81abbd..502613c044c7 100644 --- a/code/modules/jobs/job_types/city/syndicate/thumb/sottocapo.dm +++ b/code/modules/jobs/job_types/city/syndicate/thumb/sottocapo.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "This is a roleplay role. You are the leader of this thumb branch. Your goal is to make money and riches, and exert the thumb's will. \ diff --git a/code/modules/jobs/job_types/city/workshop.dm b/code/modules/jobs/job_types/city/workshop.dm index b6b22ec62fc3..8a897bfd4f88 100644 --- a/code/modules/jobs/job_types/city/workshop.dm +++ b/code/modules/jobs/job_types/city/workshop.dm @@ -8,8 +8,9 @@ Workshop employee spawn_positions = 2 supervisors = "no one but god." selection_color = "#dddddd" - access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP) //10 + access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP) minimal_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP) + departments = DEPARTMENT_SERVICE outfit = /datum/outfit/job/workshop antag_rep = 7 display_order = JOB_DISPLAY_ORDER_CIVILIAN diff --git a/code/modules/jobs/job_types/command.dm b/code/modules/jobs/job_types/command.dm index 42d744cb3d4a..8214316d82a3 100644 --- a/code/modules/jobs/job_types/command.dm +++ b/code/modules/jobs/job_types/command.dm @@ -32,6 +32,8 @@ access = list(ACCESS_COMMAND) // LC13:To-Do minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND + mapexclude = list("mini") job_important = "You are the Extraction Officer. Your job is to manage the EGO console, Extraction purchase console, and power generation system. Your main goal is to ensure Agents are well-equipped with EGO." diff --git a/code/modules/jobs/job_types/gimmick/fishing.dm b/code/modules/jobs/job_types/gimmick/fishing.dm index 83760f8e54b9..7653a161e5ac 100644 --- a/code/modules/jobs/job_types/gimmick/fishing.dm +++ b/code/modules/jobs/job_types/gimmick/fishing.dm @@ -11,6 +11,7 @@ outfit = /datum/outfit/job/fishing display_order = JOB_DISPLAY_ORDER_FIXER + departments = DEPARTMENT_SERVICE job_important = "You are a fishing office fixer, hired by L-Corp. You're on this facility to get everyone fresh fish! To start fishing use the fishing rod on a body of water." job_notice = "To start fishing, use your fishing rod on a body of water." diff --git a/code/modules/jobs/job_types/gimmick/wonderlabs/departmentcaptain.dm b/code/modules/jobs/job_types/gimmick/wonderlabs/departmentcaptain.dm index 8563a29823e1..bda61976afab 100644 --- a/code/modules/jobs/job_types/gimmick/wonderlabs/departmentcaptain.dm +++ b/code/modules/jobs/job_types/gimmick/wonderlabs/departmentcaptain.dm @@ -25,6 +25,7 @@ GLOBAL_LIST_INIT(captain_departments, list( access = list() minimal_access = list() + departments = DEPARTMENT_SECURITY allow_bureaucratic_error = FALSE diff --git a/code/modules/jobs/job_types/gimmick/wonderlabs/departmenthead.dm b/code/modules/jobs/job_types/gimmick/wonderlabs/departmenthead.dm index 5b37c52475c4..8887280fddb1 100644 --- a/code/modules/jobs/job_types/gimmick/wonderlabs/departmenthead.dm +++ b/code/modules/jobs/job_types/gimmick/wonderlabs/departmenthead.dm @@ -25,6 +25,7 @@ GLOBAL_LIST_INIT(head_departments, list( access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_SECURITY allow_bureaucratic_error = FALSE diff --git a/code/modules/jobs/job_types/labs/command/assetprot.dm b/code/modules/jobs/job_types/labs/command/assetprot.dm index b7905b4bd8c1..396abad4969d 100644 --- a/code/modules/jobs/job_types/labs/command/assetprot.dm +++ b/code/modules/jobs/job_types/labs/command/assetprot.dm @@ -10,6 +10,7 @@ access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_MANAGER) minimal_access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/command/command.dm b/code/modules/jobs/job_types/labs/command/command.dm index c732ddf3ddd8..a14a26c7be41 100644 --- a/code/modules/jobs/job_types/labs/command/command.dm +++ b/code/modules/jobs/job_types/labs/command/command.dm @@ -10,6 +10,7 @@ access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_MANAGER) minimal_access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/command/commandsec.dm b/code/modules/jobs/job_types/labs/command/commandsec.dm index ec2f178a5e38..78e3aed20411 100644 --- a/code/modules/jobs/job_types/labs/command/commandsec.dm +++ b/code/modules/jobs/job_types/labs/command/commandsec.dm @@ -9,6 +9,7 @@ selection_color = "#555555" access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_SECURITY outfit = /datum/outfit/job/damage_mitigation_officer display_order = 4 @@ -62,6 +63,7 @@ selection_color = "#555555" access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_SECURITY outfit = /datum/outfit/job/damage_exasperation_officer display_order = 4.1 @@ -115,6 +117,7 @@ selection_color = "#555555" access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) minimal_access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) + departments = DEPARTMENT_SECURITY outfit = /datum/outfit/job/internal_police display_order = 3 diff --git a/code/modules/jobs/job_types/labs/command/infotech.dm b/code/modules/jobs/job_types/labs/command/infotech.dm index 70c500a7774c..eddfca60b225 100644 --- a/code/modules/jobs/job_types/labs/command/infotech.dm +++ b/code/modules/jobs/job_types/labs/command/infotech.dm @@ -10,6 +10,7 @@ access = list(ACCESS_RND, ACCESS_NETWORK) minimal_access = list(ACCESS_RND, ACCESS_NETWORK) + departments = DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/medical/chemist.dm b/code/modules/jobs/job_types/labs/medical/chemist.dm index 0ef3d9d81a46..7e122abf3d03 100644 --- a/code/modules/jobs/job_types/labs/medical/chemist.dm +++ b/code/modules/jobs/job_types/labs/medical/chemist.dm @@ -13,6 +13,7 @@ access = list(ACCESS_MEDICAL, ACCESS_PHARMACY) minimal_access = list(ACCESS_MEDICAL, ACCESS_PHARMACY) + departments = DEPARTMENT_MEDICAL job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/medical/cmo.dm b/code/modules/jobs/job_types/labs/medical/cmo.dm index 92ee317a591f..15dfc995122e 100644 --- a/code/modules/jobs/job_types/labs/medical/cmo.dm +++ b/code/modules/jobs/job_types/labs/medical/cmo.dm @@ -11,6 +11,7 @@ access = list(ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_ARMORY, ACCESS_SECURITY) minimal_access = list(ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_ARMORY, ACCESS_SECURITY) + departments = DEPARTMENT_COMMAND | DEPARTMENT_MEDICAL job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/medical/nurse.dm b/code/modules/jobs/job_types/labs/medical/nurse.dm index 4cad3a48d5f2..e3d5eef07235 100644 --- a/code/modules/jobs/job_types/labs/medical/nurse.dm +++ b/code/modules/jobs/job_types/labs/medical/nurse.dm @@ -14,6 +14,7 @@ access = list(ACCESS_MEDICAL) minimal_access = list(ACCESS_MEDICAL) + departments = DEPARTMENT_MEDICAL job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/medical/paramedic.dm b/code/modules/jobs/job_types/labs/medical/paramedic.dm index 9b2f00b3bf26..9003b654c16f 100644 --- a/code/modules/jobs/job_types/labs/medical/paramedic.dm +++ b/code/modules/jobs/job_types/labs/medical/paramedic.dm @@ -13,6 +13,7 @@ access = list(ACCESS_MEDICAL, ACCESS_ARMORY, ACCESS_SECURITY) minimal_access = list(ACCESS_MEDICAL, ACCESS_ARMORY, ACCESS_SECURITY) + departments = DEPARTMENT_MEDICAL job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/medical/surgeon.dm b/code/modules/jobs/job_types/labs/medical/surgeon.dm index e5573d6f2e7a..45fec4cb1b0e 100644 --- a/code/modules/jobs/job_types/labs/medical/surgeon.dm +++ b/code/modules/jobs/job_types/labs/medical/surgeon.dm @@ -13,6 +13,7 @@ access = list(ACCESS_MEDICAL) minimal_access = list(ACCESS_MEDICAL) + departments = DEPARTMENT_MEDICAL job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/research/clerk.dm b/code/modules/jobs/job_types/labs/research/clerk.dm index fa38897eb97f..a2ad3c65beb3 100644 --- a/code/modules/jobs/job_types/labs/research/clerk.dm +++ b/code/modules/jobs/job_types/labs/research/clerk.dm @@ -11,6 +11,7 @@ access = list() //No Acess minimal_access = list() + departments = DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/research/lead.dm b/code/modules/jobs/job_types/labs/research/lead.dm index 1b7c6895d461..c97945b9ed6d 100644 --- a/code/modules/jobs/job_types/labs/research/lead.dm +++ b/code/modules/jobs/job_types/labs/research/lead.dm @@ -10,6 +10,7 @@ access = list(ACCESS_RND, ACCESS_COMMAND, ACCESS_ARMORY, ACCESS_SECURITY) minimal_access = list(ACCESS_RND, ACCESS_COMMAND, ACCESS_ARMORY, ACCESS_SECURITY) + departments = DEPARTMENT_COMMAND | DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/research/paperwork.dm b/code/modules/jobs/job_types/labs/research/paperwork.dm index 528bcd6446e0..e0257f99a98c 100644 --- a/code/modules/jobs/job_types/labs/research/paperwork.dm +++ b/code/modules/jobs/job_types/labs/research/paperwork.dm @@ -10,6 +10,7 @@ access = list(ACCESS_RND, ACCESS_COMMAND) minimal_access = list(ACCESS_RND, ACCESS_COMMAND) + departments = DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/research/researcher.dm b/code/modules/jobs/job_types/labs/research/researcher.dm index 17c595115598..c549230d9abc 100644 --- a/code/modules/jobs/job_types/labs/research/researcher.dm +++ b/code/modules/jobs/job_types/labs/research/researcher.dm @@ -10,6 +10,7 @@ access = list(ACCESS_RND) minimal_access = list(ACCESS_RND) + departments = DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/research/senior.dm b/code/modules/jobs/job_types/labs/research/senior.dm index 3117c41edd5a..97e52b8c558f 100644 --- a/code/modules/jobs/job_types/labs/research/senior.dm +++ b/code/modules/jobs/job_types/labs/research/senior.dm @@ -10,6 +10,7 @@ access = list(ACCESS_RND) minimal_access = list(ACCESS_RND) + departments = DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/security/highsec.dm b/code/modules/jobs/job_types/labs/security/highsec.dm index d969b1867d78..08ebf8026a1f 100644 --- a/code/modules/jobs/job_types/labs/security/highsec.dm +++ b/code/modules/jobs/job_types/labs/security/highsec.dm @@ -9,6 +9,7 @@ selection_color = "#cf5979" access = list(ACCESS_ARMORY) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_ARMORY) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_SECURITY outfit = /datum/outfit/job/high_sec_officer display_order = 9.5 @@ -59,6 +60,7 @@ selection_color = "#99314d" access = list(ACCESS_ARMORY, ACCESS_COMMAND) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_ARMORY, ACCESS_COMMAND) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_COMMAND | DEPARTMENT_SECURITY outfit = /datum/outfit/job/high_sec_commander display_order = 9 diff --git a/code/modules/jobs/job_types/labs/security/lowsec.dm b/code/modules/jobs/job_types/labs/security/lowsec.dm index 01cdd21640fb..b90028faff6d 100644 --- a/code/modules/jobs/job_types/labs/security/lowsec.dm +++ b/code/modules/jobs/job_types/labs/security/lowsec.dm @@ -9,6 +9,7 @@ selection_color = "#6571a6" access = list(ACCESS_SECURITY) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_SECURITY) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_SECURITY outfit = /datum/outfit/job/low_sec_officer display_order = 8.5 @@ -60,6 +61,7 @@ selection_color = "#444d75" access = list(ACCESS_SECURITY, ACCESS_COMMAND) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_SECURITY, ACCESS_COMMAND) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_COMMAND | DEPARTMENT_SECURITY outfit = /datum/outfit/job/low_sec_commander display_order = 8 diff --git a/code/modules/jobs/job_types/labs/support/chef.dm b/code/modules/jobs/job_types/labs/support/chef.dm index 6f03309e6905..8d1f49d0b415 100644 --- a/code/modules/jobs/job_types/labs/support/chef.dm +++ b/code/modules/jobs/job_types/labs/support/chef.dm @@ -10,6 +10,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_SERVICE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/support/engineer.dm b/code/modules/jobs/job_types/labs/support/engineer.dm index 194994e449a9..37c231610d1c 100644 --- a/code/modules/jobs/job_types/labs/support/engineer.dm +++ b/code/modules/jobs/job_types/labs/support/engineer.dm @@ -10,6 +10,7 @@ access = list(ACCESS_SECURITY, ACCESS_ARMORY, ACCESS_CONSTRUCTION) minimal_access = list(ACCESS_SECURITY, ACCESS_ARMORY, ACCESS_CONSTRUCTION) + departments = DEPARTMENT_ENGINEERING job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/support/janitor.dm b/code/modules/jobs/job_types/labs/support/janitor.dm index f8f6a9cb2328..441b6c129ba9 100644 --- a/code/modules/jobs/job_types/labs/support/janitor.dm +++ b/code/modules/jobs/job_types/labs/support/janitor.dm @@ -10,6 +10,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_SERVICE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/manager.dm b/code/modules/jobs/job_types/manager.dm index e322467ba172..5a67f4cf3f3b 100644 --- a/code/modules/jobs/job_types/manager.dm +++ b/code/modules/jobs/job_types/manager.dm @@ -16,6 +16,7 @@ access = list(ACCESS_COMMAND, ACCESS_MANAGER) // LC13:To-Do minimal_access = list(ACCESS_COMMAND, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND job_attribute_limit = 60 roundstart_attributes = list(FORTITUDE_ATTRIBUTE, PRUDENCE_ATTRIBUTE = 60, TEMPERANCE_ATTRIBUTE, JUSTICE_ATTRIBUTE) diff --git a/code/modules/jobs/job_types/mentor/trainingofficer.dm b/code/modules/jobs/job_types/mentor/trainingofficer.dm index febab963a9f2..613eee293d51 100644 --- a/code/modules/jobs/job_types/mentor/trainingofficer.dm +++ b/code/modules/jobs/job_types/mentor/trainingofficer.dm @@ -8,6 +8,7 @@ display_order = JOB_DISPLAY_ORDER_COMMAND access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND exp_requirements = 0 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_SECURITY diff --git a/code/modules/jobs/job_types/rcorp/command.dm b/code/modules/jobs/job_types/rcorp/command.dm index 8d179632cfbc..ab8670ee1260 100644 --- a/code/modules/jobs/job_types/rcorp/command.dm +++ b/code/modules/jobs/job_types/rcorp/command.dm @@ -17,6 +17,7 @@ access = list(ACCESS_ARMORY, ACCESS_RND, ACCESS_COMMAND, ACCESS_MEDICAL, ACCESS_MANAGER) minimal_access = list(ACCESS_ARMORY, ACCESS_RND, ACCESS_COMMAND, ACCESS_MEDICAL, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 100, diff --git a/code/modules/jobs/job_types/rcorp/fifthpack/officer.dm b/code/modules/jobs/job_types/rcorp/fifthpack/officer.dm index 749a07001da4..8be0fbb6dafe 100644 --- a/code/modules/jobs/job_types/rcorp/fifthpack/officer.dm +++ b/code/modules/jobs/job_types/rcorp/fifthpack/officer.dm @@ -21,6 +21,7 @@ ) access = list(ACCESS_COMMAND) minimal_access = (ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP rank_title = "LT" job_important = "You are a support and command role in Rcorp. Advise the Commander, Run requisitions and then deploy." job_notice = "Run the Requisitions, assist Rcorp personnel on the base. After deployment, use your beacon to select which class you'd like." diff --git a/code/modules/jobs/job_types/rcorp/fifthpack/raccoon.dm b/code/modules/jobs/job_types/rcorp/fifthpack/raccoon.dm index e9709246e779..7040aab749bd 100644 --- a/code/modules/jobs/job_types/rcorp/fifthpack/raccoon.dm +++ b/code/modules/jobs/job_types/rcorp/fifthpack/raccoon.dm @@ -14,6 +14,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 40, @@ -60,6 +61,7 @@ access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 60, diff --git a/code/modules/jobs/job_types/rcorp/fifthpack/rat.dm b/code/modules/jobs/job_types/rcorp/fifthpack/rat.dm index 5697e81d58a1..377d3b3c3761 100644 --- a/code/modules/jobs/job_types/rcorp/fifthpack/rat.dm +++ b/code/modules/jobs/job_types/rcorp/fifthpack/rat.dm @@ -13,6 +13,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_R_CORP | DEPARTMENT_MEDICAL roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 60, @@ -52,6 +53,7 @@ access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP | DEPARTMENT_MEDICAL roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/rcorp/fifthpack/roadrunner.dm b/code/modules/jobs/job_types/rcorp/fifthpack/roadrunner.dm index 48a6a3a3b207..387a3cc2627f 100644 --- a/code/modules/jobs/job_types/rcorp/fifthpack/roadrunner.dm +++ b/code/modules/jobs/job_types/rcorp/fifthpack/roadrunner.dm @@ -14,6 +14,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 50, @@ -48,6 +49,7 @@ access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 70, diff --git a/code/modules/jobs/job_types/rcorp/fifthpack/rooster.dm b/code/modules/jobs/job_types/rcorp/fifthpack/rooster.dm index e7e5e01efd3c..c827993c2b2d 100644 --- a/code/modules/jobs/job_types/rcorp/fifthpack/rooster.dm +++ b/code/modules/jobs/job_types/rcorp/fifthpack/rooster.dm @@ -14,6 +14,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 100, @@ -48,6 +49,7 @@ access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 130, diff --git a/code/modules/jobs/job_types/rcorp/officer.dm b/code/modules/jobs/job_types/rcorp/officer.dm index 4491cdf32cf6..4ed5b30a9f2c 100644 --- a/code/modules/jobs/job_types/rcorp/officer.dm +++ b/code/modules/jobs/job_types/rcorp/officer.dm @@ -21,6 +21,7 @@ ) access = list(ACCESS_COMMAND) minimal_access = (ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP rank_title = "LT" job_important = "You are a support and command role in Rcorp. Advise the Commander, Run requisitions and then deploy." job_notice = "Run the Requisitions, assist Rcorp personnel on the base. After deployment, use your beacon to select which class you'd like." diff --git a/code/modules/jobs/job_types/rcorp/rabbit.dm b/code/modules/jobs/job_types/rcorp/rabbit.dm index 52b59730f1e1..e7c539091b90 100644 --- a/code/modules/jobs/job_types/rcorp/rabbit.dm +++ b/code/modules/jobs/job_types/rcorp/rabbit.dm @@ -15,6 +15,7 @@ //Eat shit rabbits lol access = list() minimal_access = list() + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 60, @@ -58,6 +59,7 @@ access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/rcorp/raven.dm b/code/modules/jobs/job_types/rcorp/raven.dm index a25688e175db..96614ae1a73c 100644 --- a/code/modules/jobs/job_types/rcorp/raven.dm +++ b/code/modules/jobs/job_types/rcorp/raven.dm @@ -15,6 +15,7 @@ access = list(ACCESS_RND) minimal_access = list(ACCESS_RND) + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 40, @@ -66,6 +67,7 @@ access = list(ACCESS_RND, ACCESS_COMMAND) minimal_access = list(ACCESS_RND, ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 40, diff --git a/code/modules/jobs/job_types/rcorp/reindeer.dm b/code/modules/jobs/job_types/rcorp/reindeer.dm index a411ab2d048e..f6d626283c6f 100644 --- a/code/modules/jobs/job_types/rcorp/reindeer.dm +++ b/code/modules/jobs/job_types/rcorp/reindeer.dm @@ -15,6 +15,7 @@ access = list(ACCESS_MEDICAL) minimal_access = list(ACCESS_MEDICAL) + departments = DEPARTMENT_R_CORP | DEPARTMENT_MEDICAL roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 60, @@ -66,6 +67,7 @@ access = list(ACCESS_MEDICAL, ACCESS_COMMAND) minimal_access = list(ACCESS_MEDICAL, ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP | DEPARTMENT_MEDICAL roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/rcorp/rhino.dm b/code/modules/jobs/job_types/rcorp/rhino.dm index 6c325fa09fc2..0de5d1139255 100644 --- a/code/modules/jobs/job_types/rcorp/rhino.dm +++ b/code/modules/jobs/job_types/rcorp/rhino.dm @@ -15,6 +15,7 @@ access = list(ACCESS_ARMORY, ACCESS_CENT_GENERAL) minimal_access = list(ACCESS_ARMORY, ACCESS_CENT_GENERAL) + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 40, @@ -61,6 +62,7 @@ access = list(ACCESS_ARMORY, ACCESS_COMMAND, ACCESS_CENT_GENERAL) minimal_access = list(ACCESS_ARMORY, ACCESS_COMMAND, ACCESS_CENT_GENERAL) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/suppression.dm b/code/modules/jobs/job_types/suppression.dm index 0ad10876c8ff..bdd95359e133 100644 --- a/code/modules/jobs/job_types/suppression.dm +++ b/code/modules/jobs/job_types/suppression.dm @@ -16,6 +16,7 @@ minimal_access = list() allow_bureaucratic_error = FALSE + departments = DEPARTMENT_SECURITY job_important = "You are an L-Corp Emergency Response Agent. Your job is to suppress Abnormalities. You cannot work. Use :h to talk on your departmental radio." job_abbreviation = "ERA" @@ -90,6 +91,7 @@ normal_attribute_level = 20 access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_SECURITY exp_requirements = 6000 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_SECURITY diff --git a/code/modules/jobs/job_types/trusted_players/association/associate.dm b/code/modules/jobs/job_types/trusted_players/association/associate.dm index 64367a7989ba..18459244ccc7 100644 --- a/code/modules/jobs/job_types/trusted_players/association/associate.dm +++ b/code/modules/jobs/job_types/trusted_players/association/associate.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_ASSOCIATION access = list(ACCESS_NETWORK) minimal_access = list(ACCESS_NETWORK) + departments = DEPARTMENT_ASSOCIATION | DEPARTMENT_FIXERS paycheck = 700 maptype = list("wonderlabs", "city") diff --git a/code/modules/jobs/job_types/trusted_players/association/director.dm b/code/modules/jobs/job_types/trusted_players/association/director.dm index 002cc29428b7..305c73b9e493 100644 --- a/code/modules/jobs/job_types/trusted_players/association/director.dm +++ b/code/modules/jobs/job_types/trusted_players/association/director.dm @@ -19,6 +19,7 @@ GLOBAL_LIST_INIT(association_jobs, list( trusted_only = TRUE access = list(ACCESS_PHARMACY, ACCESS_NETWORK, ACCESS_RC_ANNOUNCE) // I want to use the number 69. minimal_access = list(ACCESS_PHARMACY, ACCESS_NETWORK, ACCESS_RC_ANNOUNCE) + departments = DEPARTMENT_COMMAND | DEPARTMENT_ASSOCIATION paycheck = 700 maptype = list("wonderlabs", "city") diff --git a/code/modules/jobs/job_types/trusted_players/association/roaming.dm b/code/modules/jobs/job_types/trusted_players/association/roaming.dm index 6a720418bf5c..787c198b1ac2 100644 --- a/code/modules/jobs/job_types/trusted_players/association/roaming.dm +++ b/code/modules/jobs/job_types/trusted_players/association/roaming.dm @@ -12,10 +12,10 @@ trusted_only = TRUE access = list(ACCESS_NETWORK) minimal_access = list(ACCESS_NETWORK) + departments = DEPARTMENT_HANA | DEPARTMENT_FIXERS paycheck = 700 maptype = list("fixers", "city") - //They actually need this for their weapons roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 100, diff --git a/code/modules/jobs/job_types/trusted_players/association/veteran.dm b/code/modules/jobs/job_types/trusted_players/association/veteran.dm index cbf31dd4c9e5..5b20095101e5 100644 --- a/code/modules/jobs/job_types/trusted_players/association/veteran.dm +++ b/code/modules/jobs/job_types/trusted_players/association/veteran.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_NETWORK) minimal_access = list(ACCESS_NETWORK) + departments = DEPARTMENT_ASSOCIATION | DEPARTMENT_FIXERS paycheck = 400 maptype = list("wonderlabs", "city") diff --git a/code/modules/jobs/job_types/trusted_players/hana.dm b/code/modules/jobs/job_types/trusted_players/hana.dm index 0027ab7c447a..4c49fbda8ac8 100644 --- a/code/modules/jobs/job_types/trusted_players/hana.dm +++ b/code/modules/jobs/job_types/trusted_players/hana.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_NETWORK, ACCESS_COMMAND, ACCESS_MANAGER, ACCESS_CHANGE_IDS) minimal_access = list(ACCESS_NETWORK, ACCESS_COMMAND, ACCESS_MANAGER, ACCESS_CHANGE_IDS) + departments = DEPARTMENT_HANA paycheck = 0 maptype = list("city", "fixers") job_important = "You are the city's administrator, and have a small sort of power over the local association. \ @@ -69,6 +70,7 @@ total_positions = 1 spawn_positions = 1 display_order = JOB_DISPLAY_ORDER_MANAGER + departments = DEPARTMENT_COMMAND | DEPARTMENT_HANA paycheck = 0 diff --git a/code/modules/jobs/job_types/trusted_players/representative.dm b/code/modules/jobs/job_types/trusted_players/representative.dm index ddc40b925080..16e8895bfadf 100644 --- a/code/modules/jobs/job_types/trusted_players/representative.dm +++ b/code/modules/jobs/job_types/trusted_players/representative.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_PHARMACY, ACCESS_COMMAND) // I want to use the number 69. minimal_access = list(ACCESS_PHARMACY, ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND mapexclude = list("wonderlabs", "mini") job_abbreviation = "REP" diff --git a/code/modules/jobs/job_types/trusted_players/sephirah.dm b/code/modules/jobs/job_types/trusted_players/sephirah.dm index 786d9770a1db..6361f45c9f49 100644 --- a/code/modules/jobs/job_types/trusted_players/sephirah.dm +++ b/code/modules/jobs/job_types/trusted_players/sephirah.dm @@ -8,6 +8,7 @@ trusted_only = TRUE access = list(ACCESS_NETWORK, ACCESS_COMMAND, ACCESS_MANAGER) // Network is the trusted chat gamer access minimal_access = list(ACCESS_NETWORK, ACCESS_COMMAND, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND mapexclude = list("wonderlabs", "mini") job_important = "You are a roleplay role, and may not partake in combat. Assist the manager and roleplay with the agents and clerks" job_notice = "\ diff --git a/code/modules/jobs/job_types/wcorp/wcorpl1.dm b/code/modules/jobs/job_types/wcorp/wcorpl1.dm index 9048d1a398f3..94274c3df2d1 100644 --- a/code/modules/jobs/job_types/wcorp/wcorpl1.dm +++ b/code/modules/jobs/job_types/wcorp/wcorpl1.dm @@ -15,6 +15,7 @@ //yes i have been so distant consistently indifferent access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 60, diff --git a/code/modules/jobs/job_types/wcorp/wcorpl2.dm b/code/modules/jobs/job_types/wcorp/wcorpl2.dm index 8618f476f361..fd6f72e1dfe2 100644 --- a/code/modules/jobs/job_types/wcorp/wcorpl2.dm +++ b/code/modules/jobs/job_types/wcorp/wcorpl2.dm @@ -16,9 +16,9 @@ GLOBAL_LIST_INIT(l2csquads, list("Axe", "Buckler", "Cleaver", "Axe", "Buckler", outfit = /datum/outfit/job/wcorpl2 display_order = 4.5 - access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/wcorp/wcorpl3.dm b/code/modules/jobs/job_types/wcorp/wcorpl3.dm index 0115ddd2cb2a..41c8993cf504 100644 --- a/code/modules/jobs/job_types/wcorp/wcorpl3.dm +++ b/code/modules/jobs/job_types/wcorp/wcorpl3.dm @@ -17,9 +17,9 @@ GLOBAL_LIST_INIT(l3squads, list("Axe", "Buckler", "Cleaver")) outfit = /datum/outfit/job/wcorpl3 display_order = 2 - access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_COMMAND | DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 100, diff --git a/code/modules/jobs/job_types/wcorp/wcorprecon.dm b/code/modules/jobs/job_types/wcorp/wcorprecon.dm index 9a20d830bc99..16eca5307a7f 100644 --- a/code/modules/jobs/job_types/wcorp/wcorprecon.dm +++ b/code/modules/jobs/job_types/wcorp/wcorprecon.dm @@ -15,9 +15,9 @@ GLOBAL_LIST_INIT(l2asquads, list("Axe", "Buckler", "Cleaver")) outfit = /datum/outfit/job/wcorpl2recon display_order = 3 - access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/wcorp/wcorprep.dm b/code/modules/jobs/job_types/wcorp/wcorprep.dm index 208600e78f37..e641bc8efbe8 100644 --- a/code/modules/jobs/job_types/wcorp/wcorprep.dm +++ b/code/modules/jobs/job_types/wcorp/wcorprep.dm @@ -25,6 +25,7 @@ ) access = list(ACCESS_ARMORY, ACCESS_RND, ACCESS_COMMAND, ACCESS_MEDICAL, ACCESS_MANAGER) minimal_access = list(ACCESS_ARMORY, ACCESS_RND, ACCESS_COMMAND, ACCESS_MEDICAL, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_W_CORP rank_title = "W-Corp Representative" job_important = "You are W-Corp's main representative, overseeing the cleanup operation. Assure that all things go smoothy for the company." job_notice = "Manage the agents at your disposal." diff --git a/code/modules/jobs/job_types/wcorp/wcorpshield.dm b/code/modules/jobs/job_types/wcorp/wcorpshield.dm index ebbf552181ea..2b6b0217b262 100644 --- a/code/modules/jobs/job_types/wcorp/wcorpshield.dm +++ b/code/modules/jobs/job_types/wcorp/wcorpshield.dm @@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(l2bsquads, list("Axe", "Buckler", "Cleaver")) access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/wcorp/wcorpspear.dm b/code/modules/jobs/job_types/wcorp/wcorpspear.dm index df30d188a6be..eae373ae5f9a 100644 --- a/code/modules/jobs/job_types/wcorp/wcorpspear.dm +++ b/code/modules/jobs/job_types/wcorp/wcorpspear.dm @@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(l2dsquads, list("Axe", "Buckler", "Cleaver")) access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index e325f43840df..ab91d6389ab0 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -1,3 +1,4 @@ +// LOBOTOMYCORPORATION EDIT -- This whole un-modular monstrosity GLOBAL_LIST_INIT(command_positions, list( "Manager", "Extraction Officer", @@ -9,7 +10,7 @@ GLOBAL_LIST_INIT(command_positions, list( "Department Head", "Agent Captain", - //City heads + // City heads "Doctor", "Hana Administrator", "Association Section Director", @@ -19,8 +20,7 @@ GLOBAL_LIST_INIT(command_positions, list( "Thumb Sottocapo", "Kurokumo Kashira", - - //Rcorp Fourth Pack + // R-corp Fourth Pack "Ground Commander", "Lieutenant Commander", "Operations Officer", @@ -29,7 +29,7 @@ GLOBAL_LIST_INIT(command_positions, list( "Rhino Squad Captain", "Raven Squad Captain", - //Rcorp Fifth Pack + // R-corp Fifth Pack "Assault Commander", "Base Commander", "Support Officer", @@ -38,12 +38,11 @@ GLOBAL_LIST_INIT(command_positions, list( "Raccoon Squad Leader", "Roadrunner Squad Leader", - - //Wcorp stuff + // W-corp stuff "W-Corp Representative", "W-Corp L3 Squad Captain", - //LCB Labs + // LCB Labs "District Manager", "LC Asset Protection", "Chief Medical Officer", @@ -54,40 +53,35 @@ GLOBAL_LIST_INIT(command_positions, list( GLOBAL_LIST_INIT(engineering_positions, list( + "Containment Engineer", // LCB Labs )) GLOBAL_LIST_INIT(medical_positions, list( - //LC Labs + // LCB Labs "Chief Medical Officer", "Surgeon", "Nurse Practitioner", "Pharmacist", "Emergency Medical Technician", + + // City + "Doctor", + "Nurse", + "Paramedic", + "Medical Fixer Assistant", + "Proshetics Surgeon", )) GLOBAL_LIST_INIT(science_positions, list( - "Hana Administrator", - "Hana Representative", - "Hana Intern", - "Association Section Director", - "Association Veteran", - "Association Fixer", - "Roaming Association Fixer", - "East Office Director", - "East Office Fixer", - "North Office Director", - "North Office Fixer", - - //LCB Labs + // LCB Labs "Lead Researcher", "Senior Researcher", "Information Systems Tech", "Research Archivist", "Researcher", "LC Staff", - )) @@ -100,11 +94,6 @@ GLOBAL_LIST_INIT(service_positions, list( "Agent Support Clerk", "Facility Support Clerk", - - "Doctor", - "Nurse", - "Paramedic", - "Medical Fixer Assistant", "Proshetics Surgeon", "HHPP Chef", "Civilian", @@ -113,10 +102,8 @@ GLOBAL_LIST_INIT(service_positions, list( "Workshop Attendant", "Main Office Representative", "Fishhook Office Fixer", - "Rat", - //LCB Labs - "Containment Engineer", + // LCB Labs "LC Chef", "LC Janitor", )) @@ -136,55 +123,7 @@ GLOBAL_LIST_INIT(security_positions, list( "Agent", "Agent Intern", - //R-Corp Fourth Pack - "R-Corp Suppressive Rabbit", - "R-Corp Assault Rabbit", - "R-Corp Medical Reindeer", - "R-Corp Berserker Reindeer", - "R-Corp Gunner Rhino", - "R-Corp Hammer Rhino", - "R-Corp Scout Raven", - "R-Corp Support Raven", - - //Fifth Pack - "R-Corp Rat", - "R-Corp Rooster", - "R-Corp Raccoon Spy", - "R-Corp Raccoon Sniper", - "R-Corp Roadrunner", - - //W-Corp agents - "W-Corp L2 Type A Lieutenant", - "W-Corp L2 Type B Support Agent", - "W-Corp L2 Type C Weapon Specialist", - "W-Corp L2 Type D Spear Agent", - "W-Corp L1 Cleanup Agent", - - - //Syndicates - "Index Messenger", - "Index Proxy", - "Index Proselyte", - - "Blade Lineage Cutthroat", - "Blade Lineage Salsu", - "Blade Lineage Ronin", - "Blade Lineage Roaming Salsu", - - "Grand Inquisitor", - "N Corp Grosshammer", - "N Corp Mittlehammer", - "N Corp Kleinhammer", - - "Thumb Sottocapo", - "Thumb Capo", - "Thumb Soldato", - - "Kurokumo Kashira", - "Kurokumo Hosa", - "Kurokumo Wakashu", - - //LCB Labs + // LCB Labs "High Security Commander", "Low Security Commander", "High Security Officer", @@ -192,9 +131,6 @@ GLOBAL_LIST_INIT(security_positions, list( "Damage Mitigation Officer", "Damage Exasperation Officer", "Internal Police", - - //Fixers - "Fixer", )) @@ -203,6 +139,14 @@ GLOBAL_LIST_INIT(nonhuman_positions, list( // job categories for rendering the late join menu GLOBAL_LIST_INIT(position_categories, list( + // LOBOTOMYCORPORATION ADDITION START + "W Corp" = list("jobs" = w_corp_positions, "color" = "#00b5ad"), + "R Corp" = list("jobs" = r_corp_positions, "color" = "#f2711c"), + "Hana" = list("jobs" = hana_positions, "color" = "#ffffff"), + "Association" = list("jobs" = association_positions, "color" = "#5baa27"), + "Syndicate" = list("jobs" = city_antagonist_positions, "color" = "#db2828"), + "Fixers" = list("jobs" = fixer_positions, "color" = "#767676"), + // LOBOTOMYCORPORATION ADDITION END EXP_TYPE_COMMAND = list("jobs" = command_positions, "color" = "#ccccff"), EXP_TYPE_ENGINEERING = list("jobs" = engineering_positions, "color" = "#ffeeaa"), EXP_TYPE_SUPPLY = list("jobs" = supply_positions, "color" = "#ddddff"), @@ -210,17 +154,22 @@ GLOBAL_LIST_INIT(position_categories, list( EXP_TYPE_SERVICE = list("jobs" = service_positions, "color" = "#bbe291"), EXP_TYPE_MEDICAL = list("jobs" = medical_positions, "color" = "#ffddf0"), EXP_TYPE_SCIENCE = list("jobs" = science_positions, "color" = "#ffddff"), - EXP_TYPE_SECURITY = list("jobs" = security_positions, "color" = "#ffdddd") + EXP_TYPE_SECURITY = list("jobs" = security_positions, "color" = "#ffdddd"), )) GLOBAL_LIST_INIT(exp_jobsmap, list( - EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | service_positions | list("AI","Cyborg")), // crew positions - EXP_TYPE_COMMAND = list("titles" = command_positions), +// LOBOTOMYCORPORATION EDIT START +// EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | service_positions | list("AI","Cyborg")), // crew positions +// EXP_TYPE_COMMAND = list("titles" = command_positions), + EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | service_positions | w_corp_positions | r_corp_positions | hana_positions | association_positions | city_antagonist_positions | list("AI","Cyborg")), // crew positions + EXP_TYPE_COMMAND = list("titles" = command_positions | hana_positions), +// LOBOTOMYCORPORATION EDIT END EXP_TYPE_ENGINEERING = list("titles" = engineering_positions), EXP_TYPE_MEDICAL = list("titles" = medical_positions), EXP_TYPE_SCIENCE = list("titles" = science_positions), EXP_TYPE_SUPPLY = list("titles" = supply_positions), - EXP_TYPE_SECURITY = list("titles" = security_positions), +// EXP_TYPE_SECURITY = list("titles" = security_positions), // LOBOTOMYCORPORATION EDIT OLD + EXP_TYPE_SECURITY = list("titles" = security_positions | city_antagonist_positions | association_positions | w_corp_positions | r_corp_positions | fixer_positions), // LOBOTOMYCORPORATION EDIT NEW EXP_TYPE_SILICON = list("titles" = list("AI","Cyborg")), EXP_TYPE_SERVICE = list("titles" = service_positions) )) diff --git a/code/modules/mob/dead/crew_manifest.dm b/code/modules/mob/dead/crew_manifest.dm new file mode 100644 index 000000000000..918f6e022914 --- /dev/null +++ b/code/modules/mob/dead/crew_manifest.dm @@ -0,0 +1,94 @@ +/datum/crew_manifest + +/datum/crew_manifest/ui_state(mob/user) + return GLOB.always_state + +/datum/crew_manifest/ui_status(mob/user, datum/ui_state/state) + return (isnewplayer(user) || isobserver(user) || isAI(user) || ispAI(user)) ? UI_INTERACTIVE : UI_CLOSE + +/datum/crew_manifest/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if (!ui) + ui = new(user, src, "CrewManifest") + ui.open() + +/datum/crew_manifest/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + +/datum/crew_manifest/ui_data(mob/user) + var/list/positions = list( + // LOBOTOMYCORPORATION ADDITION START + "W Corp" = list("exceptions" = list(), "open" = 0), + "R Corp" = list("exceptions" = list(), "open" = 0), + "Hana" = list("exceptions" = list(), "open" = 0), + "Association" = list("exceptions" = list(), "open" = 0), + "Syndicate" = list("exceptions" = list(), "open" = 0), + "Fixers" = list("exceptions" = list(), "open" = 0), + // LOBOTOMYCORPORATION ADDITION END + "Command" = list("exceptions" = list(), "open" = 0), + "Security" = list("exceptions" = list(), "open" = 0), + "Engineering" = list("exceptions" = list(), "open" = 0), + "Medical" = list("exceptions" = list(), "open" = 0), + "Misc" = list("exceptions" = list(), "open" = 0), + "Science" = list("exceptions" = list(), "open" = 0), + "Supply" = list("exceptions" = list(), "open" = 0), + "Service" = list("exceptions" = list(), "open" = 0), + "Silicon" = list("exceptions" = list(), "open" = 0) + ) + var/list/departments = list( + // LOBOTOMYCORPORATION ADDITION START + list("flag" = DEPARTMENT_W_CORP, "name" = "W Corp"), + list("flag" = DEPARTMENT_R_CORP, "name" = "R Corp"), + list("flag" = DEPARTMENT_HANA, "name" = "Hana"), + list("flag" = DEPARTMENT_ASSOCIATION, "name" = "Association"), + list("flag" = DEPARTMENT_CITY_ANTAGONIST, "name" = "Syndicate"), + list("flag" = DEPARTMENT_FIXERS, "name" = "Fixers"), + // LOBOTOMYCORPORATION ADDITION END + list("flag" = DEPARTMENT_COMMAND, "name" = "Command"), + list("flag" = DEPARTMENT_SECURITY, "name" = "Security"), + list("flag" = DEPARTMENT_ENGINEERING, "name" = "Engineering"), + list("flag" = DEPARTMENT_MEDICAL, "name" = "Medical"), + list("flag" = DEPARTMENT_SCIENCE, "name" = "Science"), + list("flag" = DEPARTMENT_CARGO, "name" = "Supply"), + list("flag" = DEPARTMENT_SERVICE, "name" = "Service"), + list("flag" = DEPARTMENT_SILICON, "name" = "Silicon"), + ) + +// LOBOTOMYCORPORATION EDIT OLD START +/* + for(var/job in SSjob.occupations) + // Check if there are additional open positions or if there is no limit + if ((job["total_positions"] > 0 && job["total_positions"] > job["current_positions"]) || (job["total_positions"] == -1)) + for(var/department in departments) + // Check if the job is part of a department using its flag + // Will return true for Research Director if the department is Science or Command, for example + if(job["departments"] & department["flag"]) + if(job["total_positions"] == -1) + // Add job to list of exceptions, meaning it does not have a position limit + positions[department["name"]]["exceptions"] += list(job["title"]) + else + // Add open positions to current department + positions[department["name"]]["open"] += (job["total_positions"] - job["current_positions"]) +*/ +// LOBOTOMYCORPORATION EDIT OLD END +// LOBOTOMYCORPORATION EDIT NEW START + for(var/datum/job/job in SSjob.occupations) + if((job.total_positions > 0 && job.total_positions > job.current_positions) || (job.total_positions == -1)) + for(var/department in departments) + // Check if the job is part of a department using its flag + // Will return true for Research Director if the department is Science or Command, for example + if(job.departments & department["flag"]) + if(job.total_positions == -1) + // Add job to list of exceptions, meaning it does not have a position limit + positions[department["name"]]["exceptions"] += list(job.title) + else + // Add open positions to current department + positions[department["name"]]["open"] += (job.total_positions - job.current_positions) +// LOBOTOMYCORPORATION EDIT NEW END + + return list( + "manifest" = GLOB.data_core.get_manifest(), + "positions" = positions + ) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 0591a1c2e1b8..fa7f1d7c8afa 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -35,6 +35,7 @@ /mob/dead/new_player/Destroy() GLOB.new_player_list -= src + return ..() /mob/dead/new_player/prepare_huds() @@ -523,11 +524,10 @@ return client.crew_manifest_delay = world.time + (1 SECONDS) - var/dat = "" - dat += "

Crew Manifest

" - dat += GLOB.data_core.get_manifest_html() + if(!GLOB.crew_manifest_tgui) + GLOB.crew_manifest_tgui = new /datum/crew_manifest(src) - src << browse(dat, "window=manifest;size=387x420;can_close=1") + GLOB.crew_manifest_tgui.ui_interact(src) /mob/dead/new_player/Move() return 0 diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 78134dd79575..0b1cd300229e 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -698,11 +698,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return client.crew_manifest_delay = world.time + (1 SECONDS) - var/dat - dat += "

Crew Manifest

" - dat += GLOB.data_core.get_manifest_html() + if(!GLOB.crew_manifest_tgui) + GLOB.crew_manifest_tgui = new /datum/crew_manifest(src) - src << browse(dat, "window=manifest;size=387x420;can_close=1") + GLOB.crew_manifest_tgui.ui_interact(src) //this is called when a ghost is drag clicked to something. /mob/dead/observer/MouseDrop(atom/over) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 512a4dc09e89..3380cd9c847d 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -331,9 +331,10 @@ return client.crew_manifest_delay = world.time + (1 SECONDS) - var/datum/browser/popup = new(src, "airoster", "Crew Manifest", 387, 420) - popup.set_content(GLOB.data_core.get_manifest_html()) - popup.open() + if(!GLOB.crew_manifest_tgui) + GLOB.crew_manifest_tgui = new /datum/crew_manifest(src) + + GLOB.crew_manifest_tgui.ui_interact(src) /mob/living/silicon/proc/set_autosay() //For allowing the AI and borgs to set the radio behavior of auto announcements (state laws, arrivals). if(!radio) diff --git a/lobotomy-corp13.dme b/lobotomy-corp13.dme index 16ba50f799ce..45a7cd400e1a 100644 --- a/lobotomy-corp13.dme +++ b/lobotomy-corp13.dme @@ -160,6 +160,7 @@ #include "code\__DEFINES\~lobotomy_defines\_patreon.dm" #include "code\__DEFINES\~lobotomy_defines\adventure.dm" #include "code\__DEFINES\~lobotomy_defines\is_helpers.dm" +#include "code\__DEFINES\~lobotomy_defines\jobs.dm" #include "code\__DEFINES\~lobotomy_defines\weapon.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_logging.dm" @@ -224,6 +225,7 @@ #include "code\_globalvars\misc.dm" #include "code\_globalvars\regexes.dm" #include "code\_globalvars\religion.dm" +#include "code\_globalvars\tgui.dm" #include "code\_globalvars\traits.dm" #include "code\_globalvars\lists\achievements.dm" #include "code\_globalvars\lists\admin.dm" @@ -2558,6 +2560,7 @@ #include "code\modules\mob\status_procs.dm" #include "code\modules\mob\transform_procs.dm" #include "code\modules\mob\camera\camera.dm" +#include "code\modules\mob\dead\crew_manifest.dm" #include "code\modules\mob\dead\dead.dm" #include "code\modules\mob\dead\new_player\login.dm" #include "code\modules\mob\dead\new_player\logout.dm" diff --git a/tgui/packages/tgui/interfaces/CrewManifest.js b/tgui/packages/tgui/interfaces/CrewManifest.js new file mode 100644 index 000000000000..c91be56197b4 --- /dev/null +++ b/tgui/packages/tgui/interfaces/CrewManifest.js @@ -0,0 +1,152 @@ +import { classes } from 'common/react'; +import { useBackend } from "../backend"; +import { Icon, Section, Table, Tooltip } from "../components"; +import { Window } from "../layouts"; + +// LOBOTOMYCORPORATION ADDITION START +const highcommandjobs = [ + "W-Corp L3 Squad Captain", + "Ground Commander", + "Assault Commander", + "Hana Administrator", + "Association Section Director", + "Index Messenger", + "Blade Lineage Cutthroat", + "Grand Inquisitor", + "Thumb Sottocapo", + "Kurokumo Kashira", +]; +// LOBOTOMYCORPORATION ADDITION END + +const commandJobs = [ +// LOBOTOMYCORPORATION ADDITION START + "Hana Representative", + "Index Proxy", + "Blade Lineage Salsu", + "N Corp Grosshammer", + "Thumb Capo", + "Kurokumo Hosa", + + "W-Corp L2 Type A Lieutenant", + + "Lieutenant Commander", + "Operations Officer", + "Rabbit Squad Captain", + "Reindeer Squad Captain", + "Rhino Squad Captain", + "Raven Squad Captain", + + "Base Commander", + "Support Officer", + "Rat Squad Leader", + "Rooster Squad Leader", + "Raccoon Squad Leader", + "Roadrunner Squad Leader", + // LOBOTOMYCORPORATION ADDITION END + "Head of Personnel", + "Head of Security", + "Chief Engineer", + "Research Director", + "Chief Medical Officer", +]; + +export const CrewManifest = (props, context) => { + const { data: { manifest, positions } } = useBackend(context); + + return ( + + + {Object.entries(manifest).map(([dept, crew]) => ( +
+ + {Object.entries(crew).map(([crewIndex, crewMember]) => ( + + + {crewMember.name} + + + {positions[dept].exceptions.includes(crewMember.rank) && ( + + + + )} + {crewMember.rank === "Captain" && ( + + + + )} + {/* LOBOTOMYCORPORATION ADDITION START */} + {highcommandjobs.includes(crewMember.rank) && ( + + + + )} + {/* LOBOTOMYCORPORATION ADDITION END */} + {commandJobs.includes(crewMember.rank) && ( + + + + )} + + + {crewMember.rank} + + + ))} +
+
+ ))} +
+
+ ); +}; diff --git a/tgui/packages/tgui/styles/components/Tooltip.scss b/tgui/packages/tgui/styles/components/Tooltip.scss index 0ef766b694d0..5c041bb12632 100644 --- a/tgui/packages/tgui/styles/components/Tooltip.scss +++ b/tgui/packages/tgui/styles/components/Tooltip.scss @@ -16,6 +16,7 @@ $border-radius: base.$border-radius !default; left: 0; right: 0; bottom: 0; + font-family: Verdana, sans-serif; font-style: normal; font-weight: normal; diff --git a/tgui/packages/tgui/styles/interfaces/CrewManifest.scss b/tgui/packages/tgui/styles/interfaces/CrewManifest.scss new file mode 100644 index 000000000000..1bd608a94cf5 --- /dev/null +++ b/tgui/packages/tgui/styles/interfaces/CrewManifest.scss @@ -0,0 +1,66 @@ +@use '../colors.scss'; + +$department_map: ( + 'Command': colors.$yellow, + 'Security': colors.$red, + 'Engineering': colors.$orange, + 'Medical': colors.$teal, + 'Misc': colors.$white, + 'Science': colors.$purple, + 'Supply': colors.$brown, + 'Service': colors.$green, + 'Silicon': colors.$pink, + // LOBOTOMYCORPORATION ADDITION START + 'W Corp': colors.$teal, + 'R Corp': colors.$orange, + 'Hana': colors.$white, + 'Association': colors.$good, + 'Syndicate': colors.$bad, + 'Fixers': colors.$grey, + // LOBOTOMYCORPORATION ADDITION END +); + +.CrewManifest { + @each $department-name, $color-value in $department_map { + &--#{$department-name} { + .Section { + &__title { + border-color: $color-value; + } + &__titleText { + color: $color-value; + } + } + } + } + + &__Cell { + padding: 3px 0; + + &--Rank { + color: colors.$label; + } + } + + &__Icons { + padding: 3px 9px; + text-align: right; + } + + &__Icon { + color: colors.$label; + position: relative; + + &:not(:last-child) { + margin-right: 7px; + } + + &--Chevron { + padding-right: 2px; + } + + &--Command { + color: colors.$yellow; + } + } +} diff --git a/tgui/packages/tgui/styles/main.scss b/tgui/packages/tgui/styles/main.scss index 03fd832d574a..d6aa3fe82ef9 100644 --- a/tgui/packages/tgui/styles/main.scss +++ b/tgui/packages/tgui/styles/main.scss @@ -45,6 +45,7 @@ @include meta.load-css('./interfaces/ListInput.scss'); @include meta.load-css('./interfaces/AlertModal.scss'); @include meta.load-css('./interfaces/CameraConsole.scss'); +@include meta.load-css('./interfaces/CrewManifest.scss'); @include meta.load-css('./interfaces/NuclearBomb.scss'); @include meta.load-css('./interfaces/Paper.scss'); @include meta.load-css('./interfaces/Roulette.scss');