mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-18 19:39:42 +01:00
Zombies tweaks (#5377)
After having our first zombie round, I saw some issues and came up with some solutions -zombies can now devour their victims -zombie transformation now properly removes people's languages -trioxin will now revive the dead, allowing for people that were mudered by zombies to return back to life as a zombie -attacking people already infected with the zombie transformation will send a message to the attacking zombie
This commit is contained in:
@@ -187,7 +187,11 @@
|
||||
sprint_speed_factor = 0.3
|
||||
exhaust_threshold = 0 //No oxyloss, so zero threshold
|
||||
|
||||
inherent_verbs = list(/mob/living/carbon/human/proc/darkness_eyes)
|
||||
inherent_verbs = list(/mob/living/carbon/human/proc/darkness_eyes, /mob/living/proc/devour)
|
||||
|
||||
allowed_eat_types = TYPE_ORGANIC | TYPE_HUMANOID
|
||||
|
||||
gluttonous = TRUE
|
||||
|
||||
/datum/species/zombie/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
H.mutations.Add(CLUMSY)
|
||||
|
||||
@@ -154,6 +154,10 @@
|
||||
|
||||
/datum/unarmed_attack/bite/infectious/apply_effects(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/armour,var/attack_damage,var/zone)
|
||||
..()
|
||||
if(target && target.stat == DEAD)
|
||||
return
|
||||
if(target.internal_organs_by_name["zombie"])
|
||||
to_chat(user, "<span class='danger'>You feel that \the [target] has been already infected!</span>")
|
||||
if(prob(25))
|
||||
if(target.reagents)
|
||||
target.reagents.add_reagent("trioxin", 10)
|
||||
|
||||
@@ -251,9 +251,11 @@
|
||||
if(prob(10))
|
||||
if(!isundead(owner))
|
||||
if(ishuman_species(owner))
|
||||
for(var/datum/language/L in owner.languages)
|
||||
owner.remove_language(L.name)
|
||||
owner << "<span class='warning'>You feel life leaving your husk, but death rejects you...</span>"
|
||||
playsound(src.loc, 'sound/hallucinations/far_noise.ogg', 50, 1)
|
||||
owner << "<font size='3'> <span class='cult'>All that is left is a cruel hunger for the flesh of the living, and the desire to spread this infection. You must consume all the living!</font></span>"
|
||||
owner << "<font size='3'><span class='cult'>All that is left is a cruel hunger for the flesh of the living, and the desire to spread this infection. You must consume all the living!</font></span>"
|
||||
owner.set_species("Zombie")
|
||||
else
|
||||
owner.adjustToxLoss(50)
|
||||
@@ -793,14 +793,29 @@
|
||||
taste_description = "old eggs"
|
||||
metabolism = REM
|
||||
unaffected_species = IS_DIONA | IS_MACHINE | IS_UNDEAD
|
||||
affects_dead = TRUE
|
||||
|
||||
/datum/reagent/toxin/trioxin/affect_blood(var/mob/living/carbon/M, var/removed)
|
||||
..()
|
||||
if(istype(M,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(M.reagents.has_reagent("spaceacillin", 15))
|
||||
|
||||
if(H.reagents.has_reagent("spaceacillin", 15))
|
||||
return
|
||||
|
||||
if(!H.internal_organs_by_name["zombie"] && prob(15))
|
||||
var/obj/item/organ/external/affected = H.get_organ("chest")
|
||||
var/obj/item/organ/parasite/zombie/infest = new()
|
||||
infest.replaced(H, affected)
|
||||
infest.replaced(H, affected)
|
||||
|
||||
if(ishuman_species(H))
|
||||
if(!H.internal_organs_by_name["brain"]) //destroying the brain stops trioxin from bringing the dead back to life
|
||||
return
|
||||
|
||||
for(var/datum/language/L in H.languages)
|
||||
H.remove_language(L.name)
|
||||
|
||||
H.set_species("Zombie")
|
||||
H.revive()
|
||||
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>")
|
||||
|
||||
Reference in New Issue
Block a user