diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 00abe28ff71..cbb4768f4d7 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -300,6 +300,7 @@ var/hunger_threshold = NUTRITION_LEVEL_STARVING var/synthesizing = 0 var/poison_amount = 5 + var/disabled_by_emp = FALSE slot = "stomach" origin_tech = "materials=2;powerstorage=2;biotech=2" @@ -308,6 +309,8 @@ return if(synthesizing) return + if(disabled_by_emp) + return if(owner.stat == DEAD) return if(owner.nutrition <= hunger_threshold) @@ -319,11 +322,20 @@ /obj/item/organ/internal/cyberimp/chest/nutriment/proc/synth_cool() synthesizing = FALSE +/obj/item/organ/internal/cyberimp/chest/nutriment/proc/emp_cool() + disabled_by_emp = FALSE + /obj/item/organ/internal/cyberimp/chest/nutriment/emp_act(severity) if(!owner || emp_proof) return + owner.vomit(100, FALSE, TRUE, 3, FALSE) // because when else do we ever use projectile vomiting + owner.loc.visible_message("The contents of [owner]'s stomach erupt violently from [owner.p_their()] mouth!", + "You hear vomiting and a sickening splattering against the floor!") owner.reagents.add_reagent("????",poison_amount / severity) //food poisoning - to_chat(owner, "You feel like your insides are burning.") + disabled_by_emp = TRUE // Disable the implant for a little bit so this effect actually matters + synthesizing = FALSE + addtimer(CALLBACK(src, .proc/emp_cool), 60 SECONDS) + to_chat(owner, "You feel like your insides are burning!") /obj/item/organ/internal/cyberimp/chest/nutriment/plus name = "Nutriment pump implant PLUS"