From ac9530862c7878f16f55523be5b19c887e4f7f2c Mon Sep 17 00:00:00 2001 From: shazbot194 Date: Sat, 29 Sep 2018 22:10:33 -0800 Subject: [PATCH] Update to code more module now --- code/modules/mob/living/silicon/robot/robot.dm | 8 +++----- .../mob/living/silicon/robot/robot_modules.dm | 13 +++++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index b3f0a6f0aad..46310a3b239 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -653,14 +653,12 @@ var/list/robot_verbs_default = list( var/datum/robot_component/C = components[V] if(C.installed == 1 || C.installed == -1) removable_components += V - if(src.module && istype(src.module, /obj/item/robot_module/miner)) - removable_components += "KA modkits" + if(module && istype(src.module, /obj/item/robot_module/miner)) + removable_components += module.custom_removals var/remove = input(user, "Which component do you want to pry out?", "Remove Component") as null|anything in removable_components if(!remove) return - if(remove == "KA modkits") - for(var/obj/item/gun/energy/kinetic_accelerator/cyborg/D in src.module.modules) - D.attackby(W, user, params) + if(module.handle_custom_removal(remove, user, W, params)) return var/datum/robot_component/C = components[remove] var/obj/item/robot_parts/robot_component/I = C.wrapped diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index e9aadf5086a..486b2a72e8f 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -15,6 +15,7 @@ var/list/stacktypes var/channels = list() + var/list/custom_removals = list() /obj/item/robot_module/emp_act(severity) @@ -103,6 +104,10 @@ qdel(A) R.module_actions.Cut() +// Return true in an overridden subtype to prevent normal removal handling +/obj/item/robot_module/proc/handle_custom_removal(component_id, mob/living/user, obj/item/W, params) + return FALSE + /obj/item/robot_module/standard name = "standard robot module" module_type = "Standard" @@ -325,6 +330,7 @@ module_actions = list( /datum/action/innate/robot_sight/meson, ) + custom_removals = list("KA modkits") /obj/item/robot_module/miner/New() ..() @@ -341,6 +347,13 @@ fix_modules() +/obj/item/robot_module/miner/handle_custom_removal(component_id, mob/living/user, obj/item/W, params) + if(component_id == "KA modkits") + for(var/obj/item/gun/energy/kinetic_accelerator/cyborg/D in src) + D.attackby(W, user, params) + return TRUE + return ..() + /obj/item/robot_module/deathsquad name = "NT advanced combat module" module_type = "Malf"