From f61225f3b314df6abb0308b219bfaab94fa204cf Mon Sep 17 00:00:00 2001 From: Chakirski Date: Thu, 7 Jul 2016 15:05:33 -0500 Subject: [PATCH] EMP-Binary --- code/modules/mob/living/silicon/robot/component.dm | 10 +++++++++- code/modules/mob/living/silicon/robot/robot.dm | 7 +++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index c6ae0f57ddf..a2529c99ee0 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -9,6 +9,7 @@ var/electronics_damage = 0 var/energy_consumption = 0 var/max_damage = 30 + var/component_disabled = 0 var/mob/living/silicon/robot/owner // The actual device object that has to be installed for this. @@ -95,6 +96,7 @@ external_type = /obj/item/robot_parts/robot_component/binary_communication_device energy_consumption = 0 max_damage = 30 + component_disabled = 0 /datum/robot_component/camera name = "camera" @@ -121,7 +123,13 @@ /mob/living/silicon/robot/proc/is_component_functioning(module_name) var/datum/robot_component/C = components[module_name] - return C && C.installed == 1 && C.toggled && C.is_powered() + return C && C.installed == 1 && C.toggled && C.is_powered() && !C.component_disabled + +/mob/living/silicon/robot/proc/disable_component(module_name, emp_duration) + var/datum/robot_component/D = get_component(module_name) + D.component_disabled = 1 + spawn (emp_duration) + D.component_disabled = 0 // Returns component by it's string name /mob/living/silicon/robot/proc/get_component(var/component_name) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 81c781b51ff..20e30ffc5c0 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1470,3 +1470,10 @@ var/list/robot_verbs_default = list( status_flags &= ~CANPUSH notify_ai(2) + +/mob/living/silicon/robot/emp_act(severity) + ..() + if(1) + disable_component("comms", 360) + if(2) + disable_component("comms", 60)