diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 629157ededb..32080af6aeb 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -51,6 +51,7 @@ var/load_jobs_from_txt = 0 var/ToRban = 0 var/automute_on = 0 //enables automuting/spam prevention + var/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access. var/server var/banappeals @@ -147,6 +148,9 @@ if ("ban_legacy_system") config.ban_legacy_system = 1 + if ("jobs_have_minimal_access") + config.jobs_have_minimal_access = 1 + if ("log_ooc") config.log_ooc = 1 diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 91a48884fb7..1b0827c7286 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -176,91 +176,6 @@ return 0 return 1 - -/proc/get_access(job) - switch(job) - if("Geneticist") - return list(access_medical, access_morgue, access_genetics, access_research) - if("Station Engineer") - return list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction) - if("Assistant") - if(config.assistant_maint) - return list(access_maint_tunnels) - else - return list() - if("Chaplain") - return list(access_morgue, access_chapel_office, access_crematorium) - if("Detective") - return list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court) - if("Medical Doctor") - return list(access_medical, access_morgue, access_surgery) - if("Botanist") // -- TLE - return list(access_hydroponics, access_morgue) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // //Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT //Given Morgue access because they have a viable means of cloning. - if("Librarian") // -- TLE - return list(access_library) - if("Lawyer") //Muskets 160910 - return list(access_lawyer, access_court, access_sec_doors) - if("Captain") - return get_all_accesses() - if("Security Officer") - return list(access_security, access_sec_doors, access_brig, access_court) - if("Warden") - return list(access_security, access_sec_doors, access_brig, access_armory, access_court) - if("Scientist") - return list(access_tox, access_tox_storage, access_research, access_xenobiology) - if("Head of Security") - return list(access_security, access_sec_doors, access_brig, access_armory, access_court, - access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, - access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting, - access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway) - if("Head of Personnel") - return list(access_security, access_sec_doors, access_brig, access_court, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, - access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, - access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, - access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_clown, access_mime, access_hop, access_RC_announce, access_keycard_auth, access_gateway) - if("Atmospheric Technician") - return list(access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction) - if("Bartender") - return list(access_bar) - if("Chemist") - return list(access_medical, access_chemistry) - if("Janitor") - return list(access_janitor, access_maint_tunnels) - if("Clown") - return list(access_clown, access_theatre) - if("Mime") - return list(access_mime, access_theatre) - if("Chef") - return list(access_kitchen, access_morgue) - if("Roboticist") - return list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. - if("Cargo Technician") - return list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) - if("Shaft Miner") - return list(access_mining, access_mint, access_mining_station, access_mailsorting) - if("Quartermaster") - return list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station) - if("Chief Engineer") - return list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, - access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, - access_heads, access_construction, access_sec_doors, - access_ce, access_RC_announce, access_keycard_auth, access_tcomsat) - if("Research Director") - return list(access_rd, access_heads, access_tox, access_genetics, access_morgue, - access_tox_storage, access_teleporter, access_sec_doors, - access_research, access_robotics, access_xenobiology, access_ai_upload, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway) - if("Virologist") - return list(access_medical, access_virology) - if("Chief Medical Officer") - return list(access_medical, access_morgue, access_genetics, access_heads, - access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, - access_keycard_auth, access_sec_doors) - else - return list() - /proc/get_centcom_access(job) switch(job) if("VIP Guest") diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm index 5a68cf9e182..30285024205 100644 --- a/code/game/jobs/job/assistant.dm +++ b/code/game/jobs/job/assistant.dm @@ -7,9 +7,17 @@ spawn_positions = -1 supervisors = "absolutely everyone" selection_color = "#dddddd" + access = list() //See /datum/job/assistant/get_access() + minimal_access = list() //See /datum/job/assistant/get_access() - equip(var/mob/living/carbon/human/H) - if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) - return 1 +/datum/job/assistant/equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) + return 1 + +/datum/job/assistant/get_access() + if(config.assistant_maint) + return list(access_maint_tunnels) + else + return list() \ No newline at end of file diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 0e72955eb8d..c05cf6ccc24 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -9,6 +9,8 @@ selection_color = "#ccccff" idtype = /obj/item/weapon/card/id/gold req_admin_notify = 1 + access = list() //See get_access() + minimal_access = list() //See get_access() equip(var/mob/living/carbon/human/H) @@ -35,6 +37,9 @@ world << "[H.real_name] is the captain!" return 1 + get_access() + return get_all_accesses() + /datum/job/hop @@ -48,6 +53,18 @@ selection_color = "#ddddff" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 + access = list(access_security, access_sec_doors, access_brig, access_court, access_forensics_lockers, + access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, + access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, + access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, + access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, + access_clown, access_mime, access_hop, access_RC_announce, access_keycard_auth, access_gateway) + minimal_access = list(access_security, access_sec_doors, access_brig, access_court, access_forensics_lockers, + access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, + access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, + access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, + access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, + access_clown, access_mime, access_hop, access_RC_announce, access_keycard_auth, access_gateway) equip(var/mob/living/carbon/human/H) @@ -65,4 +82,4 @@ H.equip_to_slot_or_del(new /obj/item/weapon/storage/id_kit(H), slot_r_hand) else H.equip_to_slot_or_del(new /obj/item/weapon/storage/id_kit(H.back), slot_in_backpack) - return 1 + return 1 \ No newline at end of file diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index d4eb3c32429..013b4edc276 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -8,6 +8,8 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" + access = list(access_bar) + minimal_access = list(access_bar) equip(var/mob/living/carbon/human/H) @@ -46,6 +48,8 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" + access = list(access_kitchen, access_morgue) + minimal_access = list(access_kitchen, access_morgue) equip(var/mob/living/carbon/human/H) @@ -68,6 +72,8 @@ spawn_positions = 2 supervisors = "the head of personnel" selection_color = "#dddddd" + access = list(access_hydroponics, access_morgue) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // //Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT //Given Morgue access because they have a viable means of cloning. + minimal_access = list(access_hydroponics, access_morgue) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // //Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT //Given Morgue access because they have a viable means of cloning. equip(var/mob/living/carbon/human/H) @@ -92,6 +98,8 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station) + minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station) equip(var/mob/living/carbon/human/H) @@ -116,6 +124,8 @@ spawn_positions = 2 supervisors = "the quartermaster and the head of personnel" selection_color = "#dddddd" + access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) + minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) equip(var/mob/living/carbon/human/H) @@ -138,6 +148,8 @@ spawn_positions = 3 supervisors = "the quartermaster and the head of personnel" selection_color = "#dddddd" + access = list(access_mining, access_mint, access_mining_station, access_mailsorting) + minimal_access = list(access_mining, access_mint, access_mining_station, access_mailsorting) equip(var/mob/living/carbon/human/H) @@ -171,6 +183,8 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" + access = list(access_clown, access_theatre) + minimal_access = list(access_clown, access_theatre) equip(var/mob/living/carbon/human/H) @@ -201,6 +215,8 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" + access = list(access_mime, access_theatre) + minimal_access = list(access_mime, access_theatre) equip(var/mob/living/carbon/human/H) @@ -240,6 +256,8 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" + access = list(access_janitor, access_maint_tunnels) + minimal_access = list(access_janitor, access_maint_tunnels) equip(var/mob/living/carbon/human/H) @@ -262,6 +280,8 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" + access = list(access_library) + minimal_access = list(access_library) equip(var/mob/living/carbon/human/H) @@ -284,6 +304,8 @@ var/global/lawyer = 0//Checks for another lawyer spawn_positions = 2 supervisors = "the head of personnel" selection_color = "#dddddd" + access = list(access_lawyer, access_court, access_sec_doors) + minimal_access = list(access_lawyer, access_court, access_sec_doors) equip(var/mob/living/carbon/human/H) diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm index e5b8732c26a..fc58c47f3e8 100644 --- a/code/game/jobs/job/civilian_chaplain.dm +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -8,6 +8,8 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#dddddd" + access = list(access_morgue, access_chapel_office, access_crematorium) + minimal_access = list(access_morgue, access_chapel_office, access_crematorium) equip(var/mob/living/carbon/human/H) diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index 2859f7a12b5..50fbf626dab 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -9,6 +9,14 @@ selection_color = "#ffeeaa" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 + access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, + access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, + access_heads, access_construction, access_sec_doors, + access_ce, access_RC_announce, access_keycard_auth, access_tcomsat) + minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, + access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, + access_heads, access_construction, access_sec_doors, + access_ce, access_RC_announce, access_keycard_auth, access_tcomsat) equip(var/mob/living/carbon/human/H) @@ -39,6 +47,9 @@ spawn_positions = 5 supervisors = "the chief engineer" selection_color = "#fff5cc" + access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction) + minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction) + equip(var/mob/living/carbon/human/H) @@ -69,6 +80,8 @@ spawn_positions = 2 supervisors = "the chief engineer" selection_color = "#fff5cc" + access = list(access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction) + minimal_access = list(access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction) equip(var/mob/living/carbon/human/H) diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 680ea4440c3..7914690d500 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -3,6 +3,10 @@ //The name of the job var/title = "NOPE" + //Job access. The use of minimal_access or access is determined by a config setting: config.jobs_have_minimal_access + var/minimal_access = list() //Useful for servers which prefer to only have access given to the places a job absolutely needs (Larger server population) + var/access = list() //Useful for servers which either have fewer players, so each person needs to fill more than one role, or servers which like to give more access, so players can't hide forever in their super secure departments (I'm looking at you, chemistry!) + //Bitflags for the job var/flag = 0 var/department_flag = 0 @@ -33,3 +37,12 @@ /datum/job/proc/equip(var/mob/living/carbon/human/H) return 1 + +/datum/job/proc/get_access() + if(!config) //Needed for robots. + return src.minimal_access + + if(config.jobs_have_minimal_access) + return src.minimal_access + else + return src.access \ No newline at end of file diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 69a0aa51eea..73a7ea1198f 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -9,6 +9,12 @@ selection_color = "#ffddf0" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 + access = list(access_medical, access_morgue, access_genetics, access_heads, + access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, + access_keycard_auth, access_sec_doors) + minimal_access = list(access_medical, access_morgue, access_genetics, access_heads, + access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, + access_keycard_auth, access_sec_doors) equip(var/mob/living/carbon/human/H) @@ -39,6 +45,8 @@ spawn_positions = 3 supervisors = "the chief medical officer" selection_color = "#ffeef0" + access = list(access_medical, access_morgue, access_surgery) + minimal_access = list(access_medical, access_morgue, access_surgery) equip(var/mob/living/carbon/human/H) @@ -60,7 +68,7 @@ -//Chemist is a medical job damnit //YEAH FUCK YOU SCIENCE -Pete +//Chemist is a medical job damnit //YEAH FUCK YOU SCIENCE -Pete //Guys, behave -Erro /datum/job/chemist title = "Chemist" flag = CHEMIST @@ -70,6 +78,8 @@ spawn_positions = 2 supervisors = "the chief medical officer" selection_color = "#ffeef0" + access = list(access_medical, access_chemistry) + minimal_access = list(access_medical, access_chemistry) equip(var/mob/living/carbon/human/H) @@ -92,6 +102,8 @@ spawn_positions = 2 supervisors = "the chief medical officer and research director" selection_color = "#ffeef0" + access = list(access_medical, access_morgue, access_genetics, access_research) + minimal_access = list(access_medical, access_morgue, access_genetics, access_research) equip(var/mob/living/carbon/human/H) @@ -115,6 +127,8 @@ spawn_positions = 1 supervisors = "the chief medical officer" selection_color = "#ffeef0" + access = list(access_medical, access_virology) + minimal_access = list(access_medical, access_virology) equip(var/mob/living/carbon/human/H) diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index d5ae0c15653..19ddab7834b 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -9,6 +9,14 @@ selection_color = "#ffddff" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 + access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, + access_tox_storage, access_teleporter, access_sec_doors, + access_research, access_robotics, access_xenobiology, access_ai_upload, + access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway) + minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, + access_tox_storage, access_teleporter, access_sec_doors, + access_research, access_robotics, access_xenobiology, access_ai_upload, + access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway) equip(var/mob/living/carbon/human/H) @@ -32,6 +40,8 @@ spawn_positions = 3 supervisors = "the research director" selection_color = "#ffeeff" + access = list(access_tox, access_tox_storage, access_research, access_xenobiology) + minimal_access = list(access_tox, access_tox_storage, access_research, access_xenobiology) equip(var/mob/living/carbon/human/H) @@ -56,6 +66,8 @@ spawn_positions = 1 supervisors = "research director" selection_color = "#ffeeff" + access = list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. + minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. equip(var/mob/living/carbon/human/H) if(!H) return 0 diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 7f19b8e2020..1e2b90ef991 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -9,6 +9,14 @@ selection_color = "#ffdddd" idtype = /obj/item/weapon/card/id/silver req_admin_notify = 1 + access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, + access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, + access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting, + access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway) + minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, + access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, + access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting, + access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway) equip(var/mob/living/carbon/human/H) @@ -47,6 +55,8 @@ spawn_positions = 1 supervisors = "the head of security" selection_color = "#ffeeee" + access = list(access_security, access_sec_doors, access_brig, access_armory, access_court) + minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court) equip(var/mob/living/carbon/human/H) @@ -85,6 +95,8 @@ spawn_positions = 1 supervisors = "the head of security" selection_color = "#ffeeee" + access = list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court) + minimal_access = list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court) equip(var/mob/living/carbon/human/H) @@ -128,6 +140,8 @@ spawn_positions = 5 supervisors = "the head of security" selection_color = "#ffeeee" + access = list(access_security, access_sec_doors, access_brig, access_court) + minimal_access = list(access_security, access_sec_doors, access_brig, access_court) equip(var/mob/living/carbon/human/H) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index fc4d9334344..465ef7f6496 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -352,13 +352,13 @@ var/global/datum/controller/occupations/job_master return else C = new job.idtype(H) + C.access = job.get_access() else C = new /obj/item/weapon/card/id(H) if(C) C.registered_name = H.real_name C.assignment = rank C.name = "[C.registered_name]'s ID Card ([C.assignment])" - C.access = get_access(C.assignment) H.equip_to_slot_or_del(C, slot_wear_id) /* if(prob(50)) H.equip_to_slot_or_del(new /obj/item/weapon/pen(H), slot_r_store) diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index 751611effb3..b9921b6736e 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -52,7 +52,8 @@ should_patrol = 1 src.botcard = new /obj/item/weapon/card/id(src) - src.botcard.access = get_access("Janitor") + var/datum/job/janitor/J = new/datum/job/janitor + src.botcard.access = J.get_access() if(radio_controller) radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index 15cabadcdcf..65bf88d4f17 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -78,7 +78,8 @@ src.icon_state = "[lasercolor]ed209[src.on]" spawn(3) src.botcard = new /obj/item/weapon/card/id(src) - src.botcard.access = get_access("Detective") + var/datum/job/detective/J = new/datum/job/detective + src.botcard.access = J.get_access() if(radio_controller) radio_controller.add_object(src, control_freq, filter = RADIO_SECBOT) diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 49ba7ffd3a2..df7b8b0ff81 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -74,7 +74,8 @@ src.botcard = new /obj/item/weapon/card/id(src) if(isnull(src.botcard_access) || (src.botcard_access.len < 1)) - src.botcard.access = get_access("Medical Doctor") + var/datum/job/doctor/J = new/datum/job/doctor + src.botcard.access = J.get_access() else src.botcard.access = src.botcard_access diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index aeb855c46f6..c21e2554899 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -73,7 +73,8 @@ /obj/machinery/bot/mulebot/New() ..() botcard = new(src) - botcard.access = get_access("Cargo Technician") + var/datum/job/cargo_tech/J = new/datum/job/cargo_tech + botcard.access = J.get_access() // botcard.access += access_robotics //Why --Ikki cell = new(src) cell.charge = 2000 diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 55d2caddc22..93ba22dec67 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -74,7 +74,8 @@ src.icon_state = "secbot[src.on]" spawn(3) src.botcard = new /obj/item/weapon/card/id(src) - src.botcard.access = get_access("Detective") + var/datum/job/detective/J = new/datum/job/detective + src.botcard.access = J.get_access() if(radio_controller) radio_controller.add_object(src, control_freq, filter = RADIO_SECBOT) radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS) diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 740493e40ca..fe0323b78c9 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -235,7 +235,17 @@ if(temp_t) t1 = temp_t else - modify.access = ( istype(src,/obj/machinery/computer/card/centcom) ? get_centcom_access(t1) : get_access(t1) ) + var/datum/job/jobdatum + for(var/jobtype in typesof(/datum/job)) + var/datum/job/J = new jobtype + if(ckey(J.title) == ckey(t1)) + jobdatum = J + break + if(!jobdatum) + usr << "\red No log exists for this job." + return + + modify.access = ( istype(src,/obj/machinery/computer/card/centcom) ? get_centcom_access(t1) : jobdatum.get_access() ) if (modify) modify.assignment = t1 if ("reg") diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index fd11c202420..e55e7a164b3 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -155,7 +155,8 @@ registered_name = "Captain" assignment = "Captain" New() - access = get_access("Captain") + var/datum/job/captain/J = new/datum/job/captain + access = J.get_access() ..() /obj/item/weapon/card/id/centcom diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm index 2cab1989bf0..1eb61cd4a92 100644 --- a/code/modules/admin/banjob.dm +++ b/code/modules/admin/banjob.dm @@ -16,13 +16,14 @@ var/jobban_keylist[0] //to store the keys & ranks //returns a reason if M is banned from rank, returns 0 otherwise /proc/jobban_isbanned(mob/M, rank) if(M && rank) + /* if(_jobban_isbanned(M, rank)) return "Reason Unspecified" //for old jobban if (guest_jobbans(rank)) if(config.guest_jobban && IsGuestKey(M.key)) return "Guest Job-ban" if(config.usewhitelist && !check_whitelist(M)) return "Whitelisted Job" - + */ for (var/s in jobban_keylist) if( findtext(s,"[M.ckey] - [rank]") == 1 ) var/startpos = findtext(s, "## ")+3 diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 6f09c1843f6..fbbc240adef 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -58,10 +58,19 @@ if(src.corpseid == 1) var/obj/item/weapon/card/id/W = new(M) W.name = "[M.real_name]'s ID Card" + var/datum/job/jobdatum + for(var/jobtype in typesof(/datum/job)) + var/datum/job/J = new jobtype + if(J.title == corpseidaccess) + jobdatum = J + break if(src.corpseidicon) W.icon_state = corpseidicon if(src.corpseidaccess) - W.access = get_access(corpseidaccess) + if(jobdatum) + W.access = jobdatum.get_access() + else + W.access = list() if(corpseidjob) W.assignment = corpseidjob W.registered_name = M.real_name diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index 38765358be5..e3f7f3ceac2 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -61,10 +61,19 @@ if(src.corpseid == 1) var/obj/item/weapon/card/id/W = new(M) W.name = "[M.real_name]'s ID Card" + var/datum/job/jobdatum + for(var/jobtype in typesof(/datum/job)) + var/datum/job/J = new jobtype + if(J.title == corpseidaccess) + jobdatum = J + break if(src.corpseidicon) W.icon_state = corpseidicon if(src.corpseidaccess) - W.access = get_access(corpseidaccess) + if(jobdatum) + W.access = jobdatum.get_access() + else + W.access = list() if(corpseidjob) W.assignment = corpseidjob W.registered_name = M.real_name diff --git a/config/config.txt b/config/config.txt index e97220ae463..b05806f4024 100644 --- a/config/config.txt +++ b/config/config.txt @@ -15,6 +15,9 @@ ADMIN_LEGACY_SYSTEM ## Add a # infront of this if you want to use the SQL based banning system. The legacy systems use the files in the data folder. You need to set up your database to use the SQL based system. BAN_LEGACY_SYSTEM +## Add a # here if you wish to use the setup where jobs have more access. This is intended for servers with low populations - where there are not enough players to fill all roles, so players need to do more than just one job. Also for servers where they don't want people to hide in their own departments. +JOBS_HAVE_MINIMAL_ACCESS + ## log OOC channel LOG_OOC