From 60749f8b07e3bb1d8b4d6b5e80fdd64c434c3308 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Oct 2019 14:33:32 -0400 Subject: [PATCH] Adds a config option to determine the minimum alert level for secborgs (defaulting to red alert) --- code/__DEFINES/robots.dm | 4 ++++ code/controllers/configuration/entries/game_options.dm | 3 +++ code/modules/mob/living/silicon/robot/robot.dm | 5 ++++- config/game_options.txt | 4 ++++ .../code/modules/mob/living/silicon/robot/robot_modules.dm | 2 +- 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index 0820d63247..a05e6f6160 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -50,3 +50,7 @@ #define ASSEMBLY_THIRD_STEP 2 #define ASSEMBLY_FOURTH_STEP 3 #define ASSEMBLY_FIFTH_STEP 4 + + +//Checks to determine borg availability depending on the server's config. These are defines in the interest of reducing copypasta +#define BORG_SEC_AVAILABLE (!CONFIG_GET(flag/disable_secborg) && GLOB.security_level >= CONFIG_GET(number/minimum_secborg_alert)) \ No newline at end of file diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index cfd57b4850..cf0caebb61 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -70,6 +70,9 @@ /datum/config_entry/flag/disable_peaceborg +/datum/config_entry/number/minimum_secborg_alert //Minimum alert level for secborgs to be chosen. + config_entry_value = 3 + /datum/config_entry/number/traitor_scaling_coeff //how much does the amount of players get divided by to determine traitors config_entry_value = 6 min_val = 1 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 6c58921abc..2b2cc4c0b5 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -226,6 +226,9 @@ to_chat(src,"ERROR: Module installer reply timeout. Please check internal connections.") return + if(!CONFIG_GET(flag/disable_secborg) && GLOB.security_level < CONFIG_GET(number/minimum_secborg_alert)) + to_chat(src, "NOTICE: Due to local station regulations, the security cyborg module and its variants are only available during [num2seclevel(CONFIG_GET(number/minimum_secborg_alert))] alert and greater.") + var/list/modulelist = list("Standard" = /obj/item/robot_module/standard, \ "Engineering" = /obj/item/robot_module/engineering, \ "Medical" = /obj/item/robot_module/medical, \ @@ -234,7 +237,7 @@ "Service" = /obj/item/robot_module/butler) if(!CONFIG_GET(flag/disable_peaceborg)) modulelist["Peacekeeper"] = /obj/item/robot_module/peacekeeper - if(!CONFIG_GET(flag/disable_secborg)) + if(BORG_SEC_AVAILABLE) modulelist["Security"] = /obj/item/robot_module/security modulelist += get_cit_modules() //Citadel change - adds Citadel's borg modules. diff --git a/config/game_options.txt b/config/game_options.txt index 2e346ce0ac..02d620eb31 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -267,6 +267,10 @@ ALLOW_AI_MULTICAM ## Uncomment to prevent the security cyborg module from being chosen #DISABLE_SECBORG +## Determines the minimum alert level for the security cyborg model to be chosen +## 0: Green, 1:Blue, 2:Amber, 3:Red, 4:Delta +MINIMUM_SECBORG_ALERT 3 + ## Peacekeeper Borg ### ## Uncomment to prevent the peacekeeper cyborg module from being chosen #DISABLE_PEACEBORG diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm index b16ac1d586..c063d8b9ef 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -13,7 +13,7 @@ /mob/living/silicon/robot/proc/get_cit_modules() var/list/modulelist = list() modulelist["MediHound"] = /obj/item/robot_module/medihound - if(!CONFIG_GET(flag/disable_secborg)) + if(BORG_SEC_AVAILABLE) modulelist["Security K-9"] = /obj/item/robot_module/k9 modulelist["Scrub Puppy"] = /obj/item/robot_module/scrubpup modulelist["Borgi"] = /obj/item/robot_module/borgi