diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 629157eded..32080af6ae 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 91a48884fb..1b0827c728 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 5a68cf9e18..3028502420 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 0e72955eb8..c05cf6ccc2 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 d4eb3c3242..013b4edc27 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 e5b8732c26..fc58c47f3e 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 2859f7a12b..50fbf626da 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 680ea4440c..7914690d50 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 69a0aa51ee..73a7ea1198 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 d5ae0c1565..19ddab7834 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 7f19b8e202..1e2b90ef99 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 fc4d933434..465ef7f649 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 751611effb..b9921b6736 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 15cabadcdc..65bf88d4f1 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 49ba7ffd3a..df7b8b0ff8 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 aeb855c46f..c21e255489 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 55d2caddc2..93ba22dec6 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 740493e40c..fe0323b78c 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 fd11c20242..e55e7a164b 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 2cab1989bf..1eb61cd4a9 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 6f09c1843f..fbbc240ade 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 38765358be..e3f7f3ceac 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 e97220ae46..b05806f402 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