Merge pull request #16895 from lewcc/vomit-comet

Nutriment Pump Implants make you projectile vomit when EMPed
This commit is contained in:
variableundefined
2021-11-05 08:38:30 -05:00
committed by GitHub
2 changed files with 37 additions and 13 deletions
+12 -12
View File
@@ -75,7 +75,7 @@
mask = /obj/item/clothing/mask/gas/sechailer/swat
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/eyes/hud/security,
/obj/item/organ/internal/cyberimp/chest/nutriment
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
belt = /obj/item/gun/energy/gun/blueshield/pdw9
@@ -108,7 +108,7 @@
)
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/chest/nutriment/plus,
/obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened,
/obj/item/organ/internal/cyberimp/eyes/hud/security,
/obj/item/organ/internal/cyberimp/brain/anti_stun/hardened,
/obj/item/organ/internal/cyberimp/arm/flash
@@ -160,7 +160,7 @@
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/arm/flash,
/obj/item/organ/internal/cyberimp/chest/nutriment,
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened,
/obj/item/organ/internal/cyberimp/eyes/hud/security
)
@@ -196,7 +196,7 @@
)
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/chest/nutriment/plus,
/obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened,
/obj/item/organ/internal/cyberimp/eyes/hud/security,
/obj/item/organ/internal/cyberimp/brain/anti_stun/hardened,
/obj/item/organ/internal/cyberimp/arm/telebaton,
@@ -247,7 +247,7 @@
mask = /obj/item/clothing/mask/gas
cybernetic_implants = list(
/obj/item/organ/internal/eyes/cybernetic/shield,
/obj/item/organ/internal/cyberimp/chest/nutriment
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
l_pocket = /obj/item/t_scanner
r_pocket = /obj/item/melee/classic_baton/telescopic
@@ -280,7 +280,7 @@
)
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/chest/nutriment/plus,
/obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened,
/obj/item/organ/internal/cyberimp/eyes/hud/security,
/obj/item/organ/internal/cyberimp/brain/anti_stun/hardened,
/obj/item/organ/internal/eyes/cybernetic/shield,
@@ -338,7 +338,7 @@
suit_store = /obj/item/gun/energy/gun
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/arm/surgery,
/obj/item/organ/internal/cyberimp/chest/nutriment
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
belt = /obj/item/defibrillator/compact/advanced/loaded
@@ -387,7 +387,7 @@
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/arm/surgery/l,
/obj/item/organ/internal/cyberimp/arm/medibeam,
/obj/item/organ/internal/cyberimp/chest/nutriment/plus,
/obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened,
/obj/item/organ/internal/cyberimp/eyes/hud/medical,
/obj/item/organ/internal/cyberimp/brain/anti_stun/hardened
)
@@ -437,7 +437,7 @@
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/eyes/hud/security,
/obj/item/organ/internal/cyberimp/chest/nutriment
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
implants = list(/obj/item/implant/mindshield,
@@ -454,7 +454,7 @@
r_pocket = /obj/item/nullrod/ert
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/chest/nutriment/plus,
/obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened,
/obj/item/organ/internal/cyberimp/eyes/hud/security,
/obj/item/organ/internal/cyberimp/brain/anti_stun/hardened
)
@@ -505,7 +505,7 @@
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/arm/janitorial,
/obj/item/organ/internal/cyberimp/chest/nutriment
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
/datum/outfit/job/centcom/response_team/janitorial/gamma
@@ -526,7 +526,7 @@
)
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/chest/nutriment/plus,
/obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened,
/obj/item/organ/internal/cyberimp/arm/advmop,
/obj/item/organ/internal/cyberimp/brain/anti_stun/hardened
)
@@ -300,14 +300,22 @@
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"
/obj/item/organ/internal/cyberimp/chest/nutriment/examine(mob/user)
. = ..()
if(emp_proof)
. += " The implant has been hardened. It is invulnerable to EMPs."
/obj/item/organ/internal/cyberimp/chest/nutriment/on_life()
if(!owner)
return
if(synthesizing)
return
if(disabled_by_emp)
return
if(owner.stat == DEAD)
return
if(owner.nutrition <= hunger_threshold)
@@ -319,11 +327,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.visible_message("<span class='warning'>The contents of [owner]'s stomach erupt violently from [owner.p_their()] mouth!</span>",
"<span class='warning'>You feel like your insides are burning as you vomit profusely!</span>",
"<span class='warning'>You hear vomiting and a sickening splattering against the floor!</span>")
owner.reagents.add_reagent("????",poison_amount / severity) //food poisoning
to_chat(owner, "<span class='warning'>You feel like your insides are burning.</span>")
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)
/obj/item/organ/internal/cyberimp/chest/nutriment/plus
name = "Nutriment pump implant PLUS"
@@ -333,6 +350,13 @@
hunger_threshold = NUTRITION_LEVEL_HUNGRY
poison_amount = 10
origin_tech = "materials=4;powerstorage=3;biotech=3"
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
name = "hardened nutrient pump implant"
emp_proof = TRUE
/obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened
name = "hardened nutrient pump implant PLUS"
emp_proof = TRUE
/obj/item/organ/internal/cyberimp/chest/reviver
name = "Reviver implant"