diff --git a/code/datums/diseases/xeno_transformation.dm b/code/datums/diseases/xeno_transformation.dm
index 9f49c2f1259a..f4dede6c5082 100644
--- a/code/datums/diseases/xeno_transformation.dm
+++ b/code/datums/diseases/xeno_transformation.dm
@@ -1,26 +1,64 @@
//Xenomicrobes
/datum/disease/xeno_transformation
- name = "Unknown Mutagenic Disease"
+ name = "|D-ID Field Error|"
max_stages = 5
- spread = "Syringe"
+ spread = "SCANNER UNIT FAILURE"
spread_type = SPECIAL
- cure = "Unknown"
+ cure = "Please contact the nearest Weyland-Yutani Specialist Technician."
cure_chance = 5
+ stage_prob = 100 //Guaranteed stage advance per check, but minimum age keeps it a consistent length.
agent = "Rip-LEY Mutagenic Microbes"
affected_species = list("Human")
- hidden = list(1, 0)
- stage_minimum_age = 100
+ stage_minimum_age = 180
+ var/hivenumber_alienize = XENO_HIVE_NORMAL
+ var/alienize_list = XENO_T1_CASTES //define first then check for PCI during disease infection
+ var/level = 0
+ var/xenospeaker = FALSE
+ var/start = FALSE
/datum/disease/xeno_transformation/stage_act()
..()
+
+ for(var/datum/reagent/ciphering_reagent as anything in affected_mob.reagents.reagent_list)
+ var/datum/chem_property/property_CIP = ciphering_reagent.get_property(PROPERTY_CIPHERING) //Checks for CIP changes to hivenumber
+
+ if(property_CIP)
+ level = property_CIP.level //check level on CIP for hivenumber_alienize
+ var/hivenumber = GLOB.hive_datum[level]
+ hivenumber_alienize = hivenumber
+
+
switch(stage)
+ if(1)
+ if (start == FALSE)
+ to_chat(affected_mob, "Something has begun within you.") //Feedback for XT
+ start = TRUE
if(2)
- if (prob(3))
+ if (prob(1))
to_chat(affected_mob, "Your throat feels scratchy.")
+ if (prob(1))
+ to_chat(affected_mob, "Your heart pumps a little faster.")
+ if (prob(1))
+ to_chat(affected_mob, "Something catches in your throat.")
if(3)
+ if (xenospeaker == FALSE)
+ xenospeaker = TRUE
+ affected_mob.apply_effect(3, DAZE)
+ to_chat(affected_mob, SPAN_XENOHIGHDANGER("Something in your mind tears- and your thoughts don't sound the way they did before."))
+ affected_mob.universal_understand = 1 //universal understanding for roleplay's sake.
+ affected_mob.set_languages(list(LANGUAGE_XENOMORPH, LANGUAGE_HIVEMIND)) //You're gonna be one of them soon, anyway.
+ give_action(affected_mob, /datum/action/human_action/activable/cult/speak_hivemind) //Lets the victim speak in their hivemind, but not spectate xenos. Fun for roleplay.
+
+ if(SSticker.mode && affected_mob.mind)
+ SSticker.mode.xenomorphs += affected_mob.mind
+
+ var/datum/hive_status/hive = GLOB.hive_datum[hivenumber_alienize]
+ if (hive)
+ affected_mob.faction = hive.internal_faction
+ affected_mob.hivenumber = hivenumber_alienize
if (prob(5))
- to_chat(affected_mob, SPAN_DANGER("Your throat feels very scratchy."))
+ to_chat(affected_mob, SPAN_DANGER("There's- something in your throat..."))
affected_mob.take_limb_damage(1)
if (prob(8))
to_chat(affected_mob, SPAN_DANGER("Your skin feels tight."))
@@ -34,20 +72,34 @@
to_chat(affected_mob, "\italic " + pick("Soon we will be one...", "Must... evolve...", "Capture...", "We are perfect."))
if(4)
if (prob(10))
- to_chat(affected_mob, pick(SPAN_DANGER("Your skin feels very tight."), SPAN_DANGER("Your blood boils!")))
+ to_chat(affected_mob, pick(SPAN_XENODANGER("Your skin feels very tight."), SPAN_DANGER("Your blood boils!")))
affected_mob.take_limb_damage(3)
if (prob(5))
- affected_mob.whisper(pick("Soon we will be one...", "Must... evolve...", "Capture...", "We are perfect.", "Hsssshhhhh!"))
+ affected_mob.whisper(pick("Soon we will be one...", "Must... evolve...", "Capture...", "You are perfect."))
if (prob(8))
- to_chat(affected_mob, SPAN_DANGER("You can feel... something...inside you."))
+ to_chat(affected_mob, SPAN_XENODANGER("You can feel... something... inside you."))
if(5)
- to_chat(affected_mob, SPAN_DANGER("Your skin feels impossibly calloused..."))
- affected_mob.apply_damage(10, TOX)
- affected_mob.updatehealth()
- if(prob(40))
- var/turf/T = find_loc(affected_mob)
- gibs(T)
- var/mob/living/carbon/human/H = affected_mob
- H.Alienize(XENO_T1_CASTES)
+ if (!isxeno(affected_mob) && !HAS_TRAIT(src, TRAIT_KNOCKEDOUT)) //prevents transformed xeno from suffering stage 5 checks continually(?)
+ affected_mob.pain.apply_pain(PAIN_CHESTBURST_WEAK)
+ affected_mob.visible_message(SPAN_DANGER("[affected_mob] starts shaking uncontrollably!"),
+ SPAN_XENOHIGHDANGER("There's- a screaming coming from inside us- a voice so loud our insides rush at the ends of our skin to make space for its light- it won't be long now..."))
+ affected_mob.apply_effect(3, PARALYZE)
+ affected_mob.make_jittery(105)
+ affected_mob.take_limb_damage(1)
+ if (prob(5))
+ affected_mob.whisper(pick("So close...", "Evolve- EVOLVE- NOW!", "Capture... them... all...", "Just... a little... more...", "Hsssshhhhh!", "It's all so clear, now."))
+ if (prob(10))
+ to_chat(affected_mob, SPAN_DANGER("Your skin feels impossibly calloused..."))
+ affected_mob.pain.apply_pain(PAIN_CHESTBURST_WEAK)
+ var/message = pick("There's an emptiness inside of you.", "The organelles in your chest grieve for what you aren't.", "Your heart starts beating rapidly, and each beat is painful.")
+ message = SPAN_XENOBOLDNOTICE("[message].")
+ to_chat(affected_mob, message)
+ affected_mob.apply_damage(10, TOX)
+ if (prob(1))
+ affected_mob.updatehealth()
+ var/turf/hxenoturf = find_loc(affected_mob)
+ gibs(hxenoturf)
+ var/mob/living/carbon/human/humanmob = affected_mob
+ humanmob.Alienize(alienize_list, hivenumber_alienize)
src.cure()
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index 9c3952f87da9..be18dd6f0bd1 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -51,7 +51,8 @@
return O
//human -> alien
-/mob/living/carbon/human/proc/Alienize(list/types)
+//checks for ciphering level to change hivenumber
+/mob/living/carbon/human/proc/Alienize(list/types, hivenumber_alienize)
if (monkeyizing)
return
for(var/obj/item/W in src)
@@ -98,19 +99,26 @@
new_xeno = new /mob/living/carbon/xenomorph/crusher(loc)
if(XENO_CASTE_PRAETORIAN)
new_xeno = new /mob/living/carbon/xenomorph/praetorian(loc)
+ if(XENO_CASTE_DESPOILER)
+ new_xeno = new /mob/living/carbon/xenomorph/despoiler(loc)
if(XENO_CASTE_QUEEN)
new_xeno = new /mob/living/carbon/xenomorph/queen(loc)
if(XENO_CASTE_HELLHOUND)
new_xeno = new /mob/living/carbon/xenomorph/hellhound(loc)
+ if(XENO_CASTE_PREDALIEN)
+ new_xeno = new /mob/living/carbon/xenomorph/predalien(loc)
else
new_xeno = new /mob/living/carbon/xenomorph/drone(loc)
new_xeno.a_intent = INTENT_HARM
new_xeno.key = key
+
+ new_xeno.set_hive_and_update(hivenumber_alienize)
+
if(new_xeno.client)
new_xeno.client.change_view(GLOB.world_view_size)
- to_chat(new_xeno, "You are now an alien.")
+ to_chat(new_xeno, "Our new form ripples with strength that confounds us. We are now... perfection.")
qdel(src)
return
diff --git a/code/modules/reagents/chemistry_properties/prop_special.dm b/code/modules/reagents/chemistry_properties/prop_special.dm
index 5623aadd6f62..dff5eadfbc9b 100644
--- a/code/modules/reagents/chemistry_properties/prop_special.dm
+++ b/code/modules/reagents/chemistry_properties/prop_special.dm
@@ -11,7 +11,7 @@
category = PROPERTY_TYPE_METABOLITE
value = 5
-/datum/chem_property/special/boosting/pre_process(mob/living/M)
+/datum/chem_property/special/boosting/pre_process(mob/living/affected_mob)
return list(REAGENT_BOOST = level * 0.5)
/datum/chem_property/special/optimized
@@ -36,29 +36,29 @@
category = PROPERTY_TYPE_MEDICINE
value = 2
-/datum/chem_property/special/hypergenetic/process(mob/living/M, potency = 1)
- M.heal_limb_damage(potency)
- if(!ishuman(M))
+/datum/chem_property/special/hypergenetic/process(mob/living/affected_mob, potency = 1)
+ affected_mob.heal_limb_damage(potency)
+ if(!ishuman(affected_mob))
return
- var/mob/living/carbon/human/H = M
- for(var/datum/internal_organ/O in H.internal_organs)
- M.apply_internal_damage(-potency, O)
+ var/mob/living/carbon/human/humanmob = affected_mob
+ for(var/datum/internal_organ/humanorgan in humanmob.internal_organs)
+ affected_mob.apply_internal_damage(-potency, humanorgan)
-/datum/chem_property/special/hypergenetic/process_overdose(mob/living/M, potency = 1, delta_time)
- M.adjustCloneLoss(potency * delta_time)
+/datum/chem_property/special/hypergenetic/process_overdose(mob/living/affected_mob, potency = 1, delta_time)
+ affected_mob.adjustCloneLoss(potency * delta_time)
-/datum/chem_property/special/hypergenetic/process_critical(mob/living/M, potency = 1, delta_time)
- M.take_limb_damage(1.5 * potency * delta_time, 1.5 * potency * delta_time)
+/datum/chem_property/special/hypergenetic/process_critical(mob/living/affected_mob, potency = 1, delta_time)
+ affected_mob.take_limb_damage(1.5 * potency * delta_time, 1.5 * potency * delta_time)
-/datum/chem_property/special/hypergenetic/reaction_mob(mob/M, method=TOUCH, volume, potency)
- if(!isxeno_human(M))
+/datum/chem_property/special/hypergenetic/reaction_mob(mob/affected_mob, method=TOUCH, volume, potency)
+ if(!isxeno_human(affected_mob))
return
- M.AddComponent(/datum/component/status_effect/healing_reduction, -potency * volume * POTENCY_MULTIPLIER_LOW) //reduces heal reduction if present
- if(ishuman(M)) //heals on contact with humans/xenos
- var/mob/living/carbon/human/H = M
- H.heal_limb_damage(potency * volume * POTENCY_MULTIPLIER_LOW)
- if(isxeno(M)) //more effective on xenos to account for higher HP
- var/mob/living/carbon/xenomorph/X = M
+ affected_mob.AddComponent(/datum/component/status_effect/healing_reduction, -potency * volume * POTENCY_MULTIPLIER_LOW) //reduces heal reduction if present
+ if(ishuman(affected_mob)) //heals on contact with humans/xenos
+ var/mob/living/carbon/human/humanmob = affected_mob
+ humanmob.heal_limb_damage(potency * volume * POTENCY_MULTIPLIER_LOW)
+ if(isxeno(affected_mob)) //more effective on xenos to account for higher HP
+ var/mob/living/carbon/xenomorph/X = affected_mob
X.gain_health(potency * volume)
/datum/chem_property/special/organhealing
@@ -68,18 +68,18 @@
rarity = PROPERTY_ADMIN
category = PROPERTY_TYPE_MEDICINE
-/datum/chem_property/special/organhealing/process(mob/living/M, potency = 1, delta_time)
- if(!ishuman(M))
+/datum/chem_property/special/organhealing/process(mob/living/affected_mob, potency = 1, delta_time)
+ if(!ishuman(affected_mob))
return
- var/mob/living/carbon/human/H = M
- for(var/datum/internal_organ/O in H.internal_organs)
- M.apply_internal_damage(-0.5 * potency * delta_time, O)
+ var/mob/living/carbon/human/humanmob = affected_mob
+ for(var/datum/internal_organ/humanorgan in humanmob.internal_organs)
+ affected_mob.apply_internal_damage(-0.5 * potency * delta_time, humanorgan)
-/datum/chem_property/special/organhealing/process_overdose(mob/living/M, potency = 1)
- M.adjustCloneLoss(POTENCY_MULTIPLIER_MEDIUM * potency)
+/datum/chem_property/special/organhealing/process_overdose(mob/living/affected_mob, potency = 1)
+ affected_mob.adjustCloneLoss(POTENCY_MULTIPLIER_MEDIUM * potency)
-/datum/chem_property/special/organhealing/process_critical(mob/living/M, potency = 1)
- M.take_limb_damage(POTENCY_MULTIPLIER_HIGH * potency, POTENCY_MULTIPLIER_HIGH * potency)
+/datum/chem_property/special/organhealing/process_critical(mob/living/affected_mob, potency = 1)
+ affected_mob.take_limb_damage(POTENCY_MULTIPLIER_HIGH * potency, POTENCY_MULTIPLIER_HIGH * potency)
/datum/chem_property/special/DNA_Disintegrating
name = PROPERTY_DNA_DISINTEGRATING
@@ -89,11 +89,14 @@
category = PROPERTY_TYPE_TOXICANT|PROPERTY_TYPE_ANOMALOUS
value = 16
-/datum/chem_property/special/DNA_Disintegrating/process(mob/living/M, potency = 1)
- M.adjustCloneLoss(POTENCY_MULTIPLIER_EXTREME * potency)
- if(ishuman(M) && M.cloneloss >= 190)
- var/mob/living/carbon/human/H = M
- H.contract_disease(new /datum/disease/xeno_transformation(0),1) //This is the real reason PMCs are being sent to retrieve it.
+/datum/chem_property/special/DNA_Disintegrating/process(mob/living/affected_mob, potency = 1)
+ affected_mob.adjustCloneLoss(POTENCY_MULTIPLIER_EXTREME * potency)
+ if(ishuman(affected_mob) && affected_mob.cloneloss >= 150)
+ var/mob/living/carbon/human/human = affected_mob
+ var/obj/limb/moblimb = pick(human.limbs)
+ if(moblimb)
+ moblimb.fracture(100)
+ human.contract_disease(new /datum/disease/xeno_transformation(0),1) //This is the real reason PMCs are being sent to retrieve it.
/datum/chem_property/special/DNA_Disintegrating/trigger()
SSticker.mode.get_specific_call(/datum/emergency_call/goon/chem_retrieval, TRUE, FALSE, holder.name) // "Weyland-Yutani Goon (Chemical Investigation Squad)"
@@ -129,19 +132,19 @@
value = 16
max_level = 6
-/datum/chem_property/special/ciphering/process(mob/living/M, potency = 1, delta_time)
+/datum/chem_property/special/ciphering/process(mob/living/affected_mob, potency = 1, delta_time)
if(!GLOB.hive_datum[level]) // This should probably always be valid
return
- for(var/content in M.contents)
+ for(var/content in affected_mob.contents)
if(!istype(content, /obj/item/alien_embryo))
continue
// level is a number rather than a hivenumber, which are strings
var/hivenumber = GLOB.hive_datum[level]
var/datum/hive_status/hive = GLOB.hive_datum[hivenumber]
- var/obj/item/alien_embryo/A = content
- A.hivenumber = hivenumber
- A.faction = hive.internal_faction
+ var/obj/item/alien_embryo/embryo = content
+ embryo.hivenumber = hivenumber
+ embryo.faction = hive.internal_faction
/datum/chem_property/special/encrypted
name = PROPERTY_ENCRYPTED
@@ -156,25 +159,25 @@
rarity = PROPERTY_DISABLED // this one should always be disabled, even if ciphering is not
max_level = 6
-/datum/chem_property/special/ciphering/predator/reagent_added(atom/A, datum/reagent/R, amount)
+/datum/chem_property/special/ciphering/predator/reagent_added(atom/embryo, datum/reagent/R, amount)
. = ..()
- var/obj/item/xeno_egg/E = A
- if(!istype(E))
+ var/obj/item/xeno_egg/egg = embryo
+ if(!istype(egg))
return
if(amount < 10)
return
- if((E.flags_embryo & FLAG_EMBRYO_PREDATOR) && E.hivenumber == GLOB.hive_datum[level])
+ if((egg.flags_embryo & FLAG_EMBRYO_PREDATOR) && egg.hivenumber == GLOB.hive_datum[level])
return
- E.visible_message(SPAN_DANGER("\The [E] rapidly mutates."))
+ egg.visible_message(SPAN_DANGER("\The [egg] rapidly mutates."))
- playsound(E, 'sound/effects/attackblob.ogg', 25, TRUE)
+ playsound(egg, 'sound/effects/attackblob.ogg', 25, TRUE)
- E.hivenumber = GLOB.hive_datum[level]
- set_hive_data(E, GLOB.hive_datum[level])
- E.flags_embryo |= FLAG_EMBRYO_PREDATOR
+ egg.hivenumber = GLOB.hive_datum[level]
+ set_hive_data(egg, GLOB.hive_datum[level])
+ egg.flags_embryo |= FLAG_EMBRYO_PREDATOR
/datum/chem_property/special/crossmetabolizing
name = PROPERTY_CROSSMETABOLIZING
@@ -185,11 +188,11 @@
value = 666
max_level = 2
-/datum/chem_property/special/crossmetabolizing/pre_process(mob/living/M)
- if(!ishuman(M))
+/datum/chem_property/special/crossmetabolizing/pre_process(mob/living/affected_mob)
+ if(!ishuman(affected_mob))
return
- var/mob/living/carbon/human/H = M
- if(H.species.reagent_tag == IS_YAUTJA)
+ var/mob/living/carbon/human/humanmob = affected_mob
+ if(humanmob.species.reagent_tag == IS_YAUTJA)
return list(REAGENT_FORCE = TRUE)
else if(level < 2)//needs level two to work on humans too
return list(REAGENT_CANCEL = TRUE)
@@ -202,14 +205,14 @@
category = PROPERTY_TYPE_ANOMALOUS
value = 666
-/datum/chem_property/special/embryonic/process(mob/living/M, potency = 1, delta_time)
- if(!ishuman(M))
+/datum/chem_property/special/embryonic/process(mob/living/affected_mob, potency = 1, delta_time)
+ if(!ishuman(affected_mob))
return
- var/mob/living/carbon/human/H = M
- if((locate(/obj/item/alien_embryo) in H.contents) || (H.species.flags & IS_SYNTHETIC) || !H.huggable) //No effect if already infected
+ var/mob/living/carbon/human/humanmob = affected_mob
+ if((locate(/obj/item/alien_embryo) in humanmob.contents) || (humanmob.species.flags & IS_SYNTHETIC) || !humanmob.huggable) //No effect if already infected
return
for(var/i=1,i<=max((level % 100)/10,1),i++)//10's determine number of embryos
- var/obj/item/alien_embryo/embryo = new /obj/item/alien_embryo(H)
+ var/obj/item/alien_embryo/embryo = new /obj/item/alien_embryo(humanmob)
embryo.hivenumber = min(level % 10,5) //1's determine hivenumber
embryo.faction = FACTION_LIST_XENOMORPH[embryo.hivenumber]
@@ -221,25 +224,25 @@
category = PROPERTY_TYPE_ANOMALOUS
value = 666
-/datum/chem_property/special/transforming/process(mob/living/M, potency = 1, delta_time)
- if(!ishuman(M))
+/datum/chem_property/special/transforming/process(mob/living/affected_mob, potency = 1, delta_time)
+ if(!ishuman(affected_mob))
return
- var/mob/living/carbon/human/H = M
- H.contract_disease(new /datum/disease/xeno_transformation(0),1)
+ var/mob/living/carbon/human/humanmob = affected_mob
+ humanmob.contract_disease(new /datum/disease/xeno_transformation(0),1)
/datum/chem_property/special/ravening
name = PROPERTY_RAVENING
code = "RAV"
- description = "The chemical agent carries the X-65 biological organism."
+ description = "The chemical agent carries the X-65 biological organisaffected_mob."
rarity = PROPERTY_ADMIN
category = PROPERTY_TYPE_ANOMALOUS
value = 666
-/datum/chem_property/special/ravening/process(mob/living/M, potency = 1, delta_time)
- if(!ishuman(M))
+/datum/chem_property/special/ravening/process(mob/living/affected_mob, potency = 1, delta_time)
+ if(!ishuman(affected_mob))
return
- var/mob/living/carbon/human/H = M
- H.contract_disease(new /datum/disease/black_goo, 1)
+ var/mob/living/carbon/human/humanmob = affected_mob
+ humanmob.contract_disease(new /datum/disease/black_goo, 1)
/datum/chem_property/special/curing
name = PROPERTY_CURING
@@ -250,23 +253,23 @@
value = 666
max_level = 4
-/datum/chem_property/special/curing/process(mob/living/M, potency = 1, delta_time)
+/datum/chem_property/special/curing/process(mob/living/affected_mob, potency = 1, delta_time)
var/datum/species/zombie/zs = GLOB.all_species[SPECIES_ZOMBIE]
- if(!ishuman(M))
+ if(!ishuman(affected_mob))
return
- var/mob/living/carbon/human/H = M
- if(H.viruses)
- for(var/datum/disease/D in H.viruses)
+ var/mob/living/carbon/human/humanmob = affected_mob
+ if(humanmob.viruses)
+ for(var/datum/disease/D in humanmob.viruses)
if(potency >= CREATE_MAX_TIER_1)
D.cure()
- zs.remove_from_revive(H)
+ zs.remove_from_revive(humanmob)
else
if(D.name == "Unknown Mutagenic Disease" && (potency == 0.5 || potency > 1.5))
D.cure()
if(D.name == "Black Goo" && potency >= 1)
D.cure()
- zs.remove_from_revive(H)
+ zs.remove_from_revive(humanmob)
/datum/chem_property/special/omnipotent
name = PROPERTY_OMNIPOTENT
@@ -276,38 +279,38 @@
category = PROPERTY_TYPE_MEDICINE|PROPERTY_TYPE_ANOMALOUS
value = 666
-/datum/chem_property/special/omnipotent/process(mob/living/M, potency = 1, delta_time)
- M.reagents.remove_all_type(/datum/reagent/toxin, 2.5*REM * delta_time, 0, 1)
- M.setCloneLoss(0)
- M.setOxyLoss(0)
- M.heal_limb_damage(POTENCY_MULTIPLIER_VHIGH * potency, POTENCY_MULTIPLIER_VHIGH * potency)
- M.apply_damage(-POTENCY_MULTIPLIER_VHIGH * potency, TOX)
- M.hallucination = 0
- M.setBrainLoss(0)
- M.disabilities = 0
- M.sdisabilities = 0
- M.SetEyeBlur(0)
- M.SetEyeBlind(0)
- M.set_effect(0, WEAKEN)
- M.set_effect(0, STUN)
- M.set_effect(0, PARALYZE)
- M.silent = 0
- M.dizziness = 0
- M.drowsiness = 0
- M.stuttering = 0
- M.confused = 0
- M.sleeping = 0
- M.jitteriness = 0
- for(var/datum/disease/D in M.viruses)
+/datum/chem_property/special/omnipotent/process(mob/living/affected_mob, potency = 1, delta_time)
+ affected_mob.reagents.remove_all_type(/datum/reagent/toxin, 2.5*REM * delta_time, 0, 1)
+ affected_mob.setCloneLoss(0)
+ affected_mob.setOxyLoss(0)
+ affected_mob.heal_limb_damage(POTENCY_MULTIPLIER_VHIGH * potency, POTENCY_MULTIPLIER_VHIGH * potency)
+ affected_mob.apply_damage(-POTENCY_MULTIPLIER_VHIGH * potency, TOX)
+ affected_mob.hallucination = 0
+ affected_mob.setBrainLoss(0)
+ affected_mob.disabilities = 0
+ affected_mob.sdisabilities = 0
+ affected_mob.SetEyeBlur(0)
+ affected_mob.SetEyeBlind(0)
+ affected_mob.set_effect(0, WEAKEN)
+ affected_mob.set_effect(0, STUN)
+ affected_mob.set_effect(0, PARALYZE)
+ affected_mob.silent = 0
+ affected_mob.dizziness = 0
+ affected_mob.drowsiness = 0
+ affected_mob.stuttering = 0
+ affected_mob.confused = 0
+ affected_mob.sleeping = 0
+ affected_mob.jitteriness = 0
+ for(var/datum/disease/D in affected_mob.viruses)
D.spread = "Remissive"
D.stage--
if(D.stage < 1)
D.cure()
- if(!ishuman(M))
+ if(!ishuman(affected_mob))
return
- var/mob/living/carbon/human/H = M
- for(var/datum/internal_organ/I in H.internal_organs)
- M.apply_internal_damage(-0.5 * potency * delta_time, I)
+ var/mob/living/carbon/human/humanmob = affected_mob
+ for(var/datum/internal_organ/I in humanmob.internal_organs)
+ affected_mob.apply_internal_damage(-0.5 * potency * delta_time, I)
/datum/chem_property/special/omnipotent/reaction_hydro_tray(obj/structure/machinery/portable_atmospherics/hydroponics/processing_tray, potency, volume)
. = ..()