mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-29 07:59:01 +01:00
Backports the new zombification mechanics from the Konyang zombie event. (#18710)
* Reorder parasites * sounds * organ defines, dmdocs * maiming stuff * undead changes, abilities * hylemnomil, undead sprites * antibodies * antibody extractor code * icons * antibody fixes * antibodies vial, rock break sfx * You're all going to die down here. * hylemnomilz eta vial and attributions * zombified organs can't be removed * hylemnomil zeta edits * fixes * lmao * easier check --------- Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
@@ -1831,3 +1831,22 @@
|
||||
if(P)
|
||||
if(P.drug_resistance == 0)
|
||||
P.drug_resistance = 1
|
||||
|
||||
/singleton/reagent/antibodies
|
||||
name = "Hylemnomil-Zeta Antibodies"
|
||||
description = "A pure antibody compound that is capable of fighting against Hylemnomil-Zeta."
|
||||
color = "#FFFFFF"
|
||||
overdose = 100
|
||||
metabolism = REM*0.0001
|
||||
scannable = TRUE
|
||||
taste_description = "pure death"
|
||||
|
||||
/singleton/reagent/antibodies/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
|
||||
. = ..()
|
||||
M.add_chemical_effect(CE_ANTIBODIES, 10)
|
||||
var/obj/item/organ/internal/parasite/zombie/Z = M.internal_organs_by_name[BP_ZOMBIE_PARASITE]
|
||||
if(Z && !Z.curing)
|
||||
if(prob(5))
|
||||
var/obj/item/organ/external/E = Z.parent_organ
|
||||
Z.curing = TRUE
|
||||
to_chat(M, SPAN_WARNING("Your [E.name] tightens, pulses, and squirms as \the [Z] fights back against the antibodies!"))
|
||||
|
||||
@@ -842,49 +842,68 @@
|
||||
H.berserk_stop()
|
||||
berserked = FALSE
|
||||
|
||||
/singleton/reagent/toxin/trioxin
|
||||
name = "Trioxin"
|
||||
description = "A synthetic compound of unknown origins, designated originally as a performance enhancing substance."
|
||||
/singleton/reagent/toxin/hylemnomil
|
||||
name = "Hylemnomil-Zeta"
|
||||
description = "An extraordinary synthetic compound created at Einstein Engines Research Base Omega-99. This compound is synthetically created to incorporate parts of \
|
||||
the Rampancy Signal on Konyang. It rewrites an organism's DNA at the base and, similarly to rabies, makes the infected organic have an \
|
||||
unstoppable need to feed on anything it sees. Instructions can be conveyed to some degree, such as information on who is an Einstein Engines \
|
||||
employee and to not hurt them. The process of DNA rewriting leads to rapid rotting of the flesh."
|
||||
reagent_state = LIQUID
|
||||
color = "#E7E146"
|
||||
color = "#551A8B"
|
||||
strength = 1
|
||||
taste_description = "old eggs"
|
||||
taste_description = "unknown scientific concoction"
|
||||
metabolism = REM
|
||||
unaffected_species = IS_DIONA | IS_MACHINE | IS_UNDEAD
|
||||
affects_dead = TRUE
|
||||
|
||||
/singleton/reagent/toxin/trioxin/affect_blood(var/mob/living/carbon/M, var/removed, var/datum/reagents/holder)
|
||||
/singleton/reagent/toxin/hylemnomil/affect_blood(var/mob/living/carbon/M, var/removed, var/datum/reagents/holder)
|
||||
..()
|
||||
if(istype(M,/mob/living/carbon/human))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
/// Thetamycin is a temporary fix.
|
||||
if(H.reagents.has_reagent(/singleton/reagent/thetamycin, 15))
|
||||
return
|
||||
|
||||
/// Antibodies are a more permanent one.
|
||||
if(H.chem_effects[CE_ANTIBODIES])
|
||||
return
|
||||
|
||||
if(!H.internal_organs_by_name[BP_ZOMBIE_PARASITE] && prob(15))
|
||||
var/obj/item/organ/external/affected = H.get_organ(BP_CHEST)
|
||||
var/to_infest
|
||||
var/list/possible_organs = list()
|
||||
var/obj/item/organ/external/organ_to_check
|
||||
|
||||
/// The infection starts from the hands and feet. The closer it is to the brain, the higher the stage it starts at.
|
||||
for(var/organ in list(BP_R_HAND, BP_L_HAND, BP_R_FOOT, BP_L_FOOT))
|
||||
organ_to_check = H.organs_by_name[organ]
|
||||
if(organ_to_check && !BP_IS_ROBOTIC(organ_to_check))
|
||||
possible_organs[organ] = 1
|
||||
|
||||
if(!length(possible_organs))
|
||||
for(var/organ in list(BP_R_ARM, BP_L_ARM, BP_R_LEG, BP_L_LEG))
|
||||
organ_to_check = H.organs_by_name[organ]
|
||||
if(organ_to_check && !BP_IS_ROBOTIC(organ_to_check))
|
||||
possible_organs[organ] = 2
|
||||
|
||||
/// In case there aren't any appendages, try the groin.
|
||||
if(!length(possible_organs))
|
||||
organ_to_check = H.organs_by_name[BP_GROIN]
|
||||
if(organ_to_check && !BP_IS_ROBOTIC(organ_to_check))
|
||||
possible_organs[BP_GROIN] = 2
|
||||
|
||||
/// I'm not even sure how you get to being a nugget, but the last resort is the chest.
|
||||
if(!length(possible_organs))
|
||||
possible_organs[BP_CHEST] = 3
|
||||
|
||||
/// Infect the user, apply the right stage, then remove all hylemnomil from the user.
|
||||
to_infest = pick(possible_organs)
|
||||
var/obj/item/organ/external/affected = H.organs_by_name[to_infest]
|
||||
var/obj/item/organ/internal/parasite/zombie/infest = new()
|
||||
infest.replaced(H, affected)
|
||||
|
||||
if(H.species.zombie_type)
|
||||
if(!H.internal_organs_by_name[BP_BRAIN]) //destroying the brain stops trioxin from bringing the dead back to life
|
||||
return
|
||||
|
||||
if(H && H.stat != DEAD)
|
||||
return
|
||||
|
||||
for(var/datum/language/L in H.languages)
|
||||
H.remove_language(L.name)
|
||||
|
||||
var/r = H.r_skin
|
||||
var/g = H.g_skin
|
||||
var/b = H.b_skin
|
||||
|
||||
H.set_species(H.species.zombie_type, 0, 0, 0)
|
||||
H.revive()
|
||||
H.change_skin_color(r, g, b)
|
||||
playsound(H.loc, 'sound/hallucinations/far_noise.ogg', 50, 1)
|
||||
to_chat(H,"<font size='3'><span class='cult'>You return back to life as the undead, all that is left is the hunger to consume the living and the will to spread the infection.</font></span>")
|
||||
infest.parent_organ = affected.limb_name
|
||||
infest.stage = possible_organs[to_infest]
|
||||
H.reagents.remove_reagent(type, REAGENT_VOLUME(H.reagents, type))
|
||||
|
||||
/singleton/reagent/toxin/dextrotoxin
|
||||
name = "Dextrotoxin"
|
||||
|
||||
@@ -194,6 +194,13 @@
|
||||
possible_transfer_amounts = list(5,10,15,25)
|
||||
fragile = 1 // very fragile
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/vial/antidote
|
||||
name = "hylemnomil-zeta antidote vial"
|
||||
desc = "<span class='cult'>Your lifeline. Defend it with your life.</span>"
|
||||
volume = 60
|
||||
amount_per_transfer_from_this = 5
|
||||
reagents_to_add = list(/singleton/reagent/antibodies = 60)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/medcup
|
||||
name = "medicine cup"
|
||||
desc = "A glass medicine cup. Like a shot glass for medicine."
|
||||
|
||||
@@ -228,11 +228,10 @@
|
||||
reagents_to_add = list(/singleton/reagent/hyronalin = 60)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/trioxin
|
||||
name = "trioxin bottle"
|
||||
desc = "A small bottle. Contains a swirling, green liquid."
|
||||
icon_state = "bottle-1"
|
||||
reagents_to_add = list(/singleton/reagent/toxin/trioxin = 60)
|
||||
|
||||
name = "hylemnomil-zeta vial"
|
||||
desc = "A small, unmarked lial with an ominous label. <span class='cult'>It contains a swirling, purple liquid.</span>"
|
||||
icon_state = "bouteille"
|
||||
reagents_to_add = list(/singleton/reagent/toxin/hylemnomil = 60)
|
||||
//syrups
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/syrup
|
||||
|
||||
Reference in New Issue
Block a user