diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm index 2e62cad345..6ae91b66dd 100644 --- a/code/game/jobs/whitelist.dm +++ b/code/game/jobs/whitelist.dm @@ -91,6 +91,23 @@ var/list/whitelist = list() return FALSE +/proc/is_borg_whitelisted(mob/M, var/module) + //They are admin or the whitelist isn't in use + if(whitelist_overrides(M)) + return 1 + + //You did something wrong + if(!M || !module) + return 0 + + //If we have a loaded file, search it + if(alien_whitelist) + for (var/s in alien_whitelist) + if(findtext(s,"[M.ckey] - [module]")) + return 1 + if(findtext(s,"[M.ckey] - All")) + return 1 + /proc/whitelist_overrides(mob/M) if(!config.usealienwhitelist) return TRUE diff --git a/code/global.dm b/code/global.dm index 0d029e3afa..32d571ef3c 100644 --- a/code/global.dm +++ b/code/global.dm @@ -138,11 +138,24 @@ var/custom_event_msg = null var/global/list/alphabet_uppercase = list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z") -// Used by robots and robot preferences. +// Used by robots and robot preferences for regular modules. var/list/robot_module_types = list( "Standard", "Engineering", "Surgeon", "Crisis", "Miner", "Janitor", "Service", "Clerical", "Security", - "Research" + "Research", "Medihound", "K9", "Janihound", "Sci-borg", "Pupdozer", + "Service-Hound", "BoozeHound", "KMine" +) +// List of modules added during code red +var/list/emergency_module_types = list( + "Combat", "ERT" +) +// List of modules available to AI shells +var/list/shell_module_types = list( + "Standard", "Service", "Clerical", "Service-Hound", "BoozeHound" +) +// List of whitelisted modules +var/list/whitelisted_module_types = list( + "Lost", "Stray" ) // Some scary sounds. diff --git a/code/global_vr.dm b/code/global_vr.dm index e5710f412c..70cc86998d 100644 --- a/code/global_vr.dm +++ b/code/global_vr.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD /hook/startup/proc/modules_vr() robot_module_types += "Medihound" robot_module_types += "K9" @@ -18,6 +19,24 @@ var/list/shell_module_types = list( ) */ +||||||| parent of 79f1a263e4... Merge pull request #11083 from Heroman3003/modwl +/hook/startup/proc/modules_vr() + robot_module_types += "Medihound" + robot_module_types += "K9" + robot_module_types += "Janihound" + robot_module_types += "Sci-borg" + robot_module_types += "Pupdozer" + robot_module_types += "Service-Hound" + robot_module_types += "BoozeHound" + robot_module_types += "KMine" + return 1 + +var/list/shell_module_types = list( + "Standard", "Service", "Clerical", "Service-Hound" +) + +======= +>>>>>>> 79f1a263e4... Merge pull request #11083 from Heroman3003/modwl var/list/awayabductors = list() // List of scatter landmarks for Abductors in Gateways var/list/eventdestinations = list() // List of scatter landmarks for VOREStation event portals var/list/eventabductors = list() // List of scatter landmarks for VOREStation abductor portals diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index f6de08d784..58950d906a 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -278,8 +278,10 @@ modules.Add(robot_module_types) if(crisis || security_level == SEC_LEVEL_RED || crisis_override) to_chat(src, "Crisis mode active. Combat module available.") - modules+="Combat" - modules+="ERT" + modules += emergency_module_types + for(var/module_name in whitelisted_module_types) + if(is_borg_whitelisted(src, module_name)) + modules += module_name //VOREStatation Edit End: shell restrictions modtype = tgui_input_list(usr, "Please, select a module!", "Robot module", modules) @@ -287,6 +289,8 @@ return if(!(modtype in robot_modules)) return + if(!is_borg_whitelisted(src, modtype)) + return var/module_type = robot_modules[modtype] transform_with_anim() //VOREStation edit: sprite animation diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 13cd20121a..925a4c2f87 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -9,7 +9,12 @@ var/global/list/robot_modules = list( "Security" = /obj/item/weapon/robot_module/robot/security/general, "Combat" = /obj/item/weapon/robot_module/robot/security/combat, "Engineering" = /obj/item/weapon/robot_module/robot/engineering/general, - "Janitor" = /obj/item/weapon/robot_module/robot/janitor + "Janitor" = /obj/item/weapon/robot_module/robot/janitor, + "Gravekeeper" = /obj/item/weapon/robot_module/robot/gravekeeper, + "Lost" = /obj/item/weapon/robot_module/robot/lost, + "Protector" = /obj/item/weapon/robot_module/robot/syndicate/protector, + "Mechanist" = /obj/item/weapon/robot_module/robot/syndicate/mechanist, + "Combat Medic" = /obj/item/weapon/robot_module/robot/syndicate/combat_medic ) /obj/item/weapon/robot_module diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm index e24643325b..bdaaadfb4c 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm @@ -71,7 +71,12 @@ robot_modules["Service-Hound"] = /obj/item/weapon/robot_module/robot/clerical/brodog robot_modules["BoozeHound"] = /obj/item/weapon/robot_module/robot/booze robot_modules["KMine"] = /obj/item/weapon/robot_module/robot/kmine +<<<<<<< HEAD robot_modules["UnityHound"] = /obj/item/weapon/robot_module/robot/chound //CH Addition Unity +||||||| parent of 79f1a263e4... Merge pull request #11083 from Heroman3003/modwl +======= + robot_modules["Stray"] = /obj/item/weapon/robot_module/robot/stray +>>>>>>> 79f1a263e4... Merge pull request #11083 from Heroman3003/modwl return 1 //Just add a new proc with the robot_module type if you wish to run some other vore code