From cd9a8ac1049fa1d99efed2f7e51f56581e919416 Mon Sep 17 00:00:00 2001 From: MrPerson Date: Wed, 8 May 2013 03:48:46 -0700 Subject: [PATCH] Two new game_options, SECURITY_HAS_MAINT_ACCESS and EVERYONE_HAS_MAINT_ACCESS. Renamed ASSISTANT_MAINT to ASSISTANTS_HAVE_MAINT_ACCESS. --- code/controllers/configuration.dm | 10 +++++++--- code/game/jobs/job/assistant.dm | 7 ++++--- code/game/jobs/job/job.dm | 9 +++++++-- code/game/jobs/job/security.dm | 18 +++++++++++++++--- config/game_options.txt | 8 +++++++- 5 files changed, 40 insertions(+), 12 deletions(-) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 37b13994707..5f466524745 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -44,6 +44,7 @@ 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/jobs_have_maint_access = 0 //Who gets maint access? 1 = assistants, 2 = security, 3 = assistants and sec, 4 = everyone var/server var/banappeals @@ -101,7 +102,6 @@ var/use_recursive_explosions //Defines whether the server uses recursive or circular explosions. - var/assistant_maint = 0 //Do assistants get maint access? var/gateway_delay = 18000 //How long the gateway takes before it activates. Default is half an hour. var/ghost_interaction = 0 @@ -297,8 +297,12 @@ config.alert_desc_green = value if("alert_delta") config.alert_desc_delta = value - if("assistant_maint") - config.assistant_maint = 1 + if("assistants_have_maint_access") + config.jobs_have_maint_access |= 1 + if("security_has_maint_access") + config.jobs_have_maint_access |= 2 + if("everyone_has_maint_access") + config.jobs_have_maint_access |= 4 if("gateway_delay") config.gateway_delay = text2num(value) if("continuous_rounds") diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm index 30285024205..62abcc55125 100644 --- a/code/game/jobs/job/assistant.dm +++ b/code/game/jobs/job/assistant.dm @@ -17,7 +17,8 @@ return 1 /datum/job/assistant/get_access() - if(config.assistant_maint) - return list(access_maint_tunnels) + if(config.jobs_have_maint_access & 1) //Config has assistant maint access set + . = ..() + . |= list(access_maint_tunnels) else - return list() \ No newline at end of file + return ..() \ No newline at end of file diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 5a41c9ad70b..e9ee590ff41 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -80,10 +80,15 @@ if(!config) //Needed for robots. return src.minimal_access.Copy() + . = list() + if(config.jobs_have_minimal_access) - return src.minimal_access.Copy() + . = src.minimal_access.Copy() else - return src.access.Copy() + . = src.access.Copy() + + if(config.jobs_have_maint_access & 4) //Config has universal maint access set + . |= list(access_maint_tunnels) //If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1 /datum/job/proc/player_old_enough(client/C) diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 48d5028998d..d876ed62d9c 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -56,7 +56,7 @@ supervisors = "the head of security" selection_color = "#ffeeee" access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue) - minimal_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) //But see /datum/job/warden/get_access() minimal_player_age = 7 equip(var/mob/living/carbon/human/H) @@ -84,7 +84,12 @@ L.implanted = 1 return 1 - +/datum/job/warden/get_access() + if(config.jobs_have_maint_access & 2) //Config has sec maint access set + . = ..() + . |= list(access_maint_tunnels) + else + return ..() /datum/job/detective title = "Detective" @@ -142,7 +147,7 @@ supervisors = "the head of security" selection_color = "#ffeeee" access = list(access_security, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_morgue) - minimal_access = list(access_security, access_sec_doors, access_brig, access_court) + minimal_access = list(access_security, access_sec_doors, access_brig, access_court) //But see /datum/job/warden/get_access() minimal_player_age = 7 @@ -168,3 +173,10 @@ L.imp_in = H L.implanted = 1 return 1 + +/datum/job/officer/get_access() + if(config.jobs_have_maint_access & 2) //Config has sec maint access set + . = ..() + . |= list(access_maint_tunnels) + else + return ..() \ No newline at end of file diff --git a/config/game_options.txt b/config/game_options.txt index bb6b3eace9e..1ce2c612d5a 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -131,7 +131,13 @@ GATEWAY_DELAY 18000 JOBS_HAVE_MINIMAL_ACCESS ## Uncomment to give assistants maint access. -#ASSISTANT_MAINT +#ASSISTANTS_HAVE_MAINT_ACCESS + +## Uncoment to give security maint access. Note that if you comment JOBS_HAVE_MINIMAL_ACCESS security already gets maint from that. +#SECURITY_HAS_MAINT_ACCESS + +## Uncomment to give everyone maint access. +#EVERYONE_HAS_MAINT_ACCESS ### GHOST INTERACTION ###