From 1493d282fad2f9ec89cb1c4686c9d41bd40b22e6 Mon Sep 17 00:00:00 2001 From: fluffe9911 Date: Sat, 18 Aug 2018 14:05:53 -0400 Subject: [PATCH] Zombie Organ now does toxin damage! (#39553) * Zombie Organ now does tox damage * Adds some ominous dots * Makes zombies not get the you feel sick message * Makes the mass zombie infection button not be a kill everyone slowly button part 1 * Makes the mass zombie infection button not be a kill everyone slowly part 2 * Makes romerol use nodamage version --- code/modules/admin/verbs/randomverbs.dm | 4 ++-- .../reagents/chemistry/reagents/other_reagents.dm | 2 +- code/modules/zombie/organs.dm | 13 ++++++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 4ffc24b3ac6..c1cece152d8 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1129,7 +1129,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits return for(var/mob/living/carbon/human/H in GLOB.carbon_list) - new /obj/item/organ/zombie_infection(H) + new /obj/item/organ/zombie_infection/nodamage(H) message_admins("[key_name_admin(usr)] added a latent zombie infection to all humans.") log_admin("[key_name(usr)] added a latent zombie infection to all humans.") @@ -1146,7 +1146,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits if(confirm != "Yes") return - for(var/obj/item/organ/zombie_infection/I in GLOB.zombie_infection_list) + for(var/obj/item/organ/zombie_infection/nodamage/I in GLOB.zombie_infection_list) qdel(I) message_admins("[key_name_admin(usr)] cured all zombies.") diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index f93951f56c6..5501122d2bb 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1672,7 +1672,7 @@ /datum/reagent/romerol/reaction_mob(mob/living/carbon/human/H, method=TOUCH, reac_volume) // Silently add the zombie infection organ to be activated upon death if(!H.getorganslot(ORGAN_SLOT_ZOMBIE)) - var/obj/item/organ/zombie_infection/ZI = new() + var/obj/item/organ/zombie_infection/nodamage/ZI = new() ZI.Insert(H) ..() diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index 5faef81b069..329cc127ab2 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -4,6 +4,7 @@ zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_ZOMBIE icon_state = "blacktumor" + var/causes_damage = TRUE var/datum/species/old_species = /datum/species/human var/living_transformation_time = 30 var/converts_living = FALSE @@ -44,7 +45,10 @@ return if(!(src in owner.internal_organs)) Remove(owner) - + if (causes_damage && !iszombie(owner) && owner.stat != DEAD) + owner.adjustToxLoss(1) + if (prob(10)) + to_chat(owner, "You feel sick...") if(timer_id) return if(owner.suiciding) @@ -66,7 +70,7 @@ if(!converts_living && owner.stat != DEAD) return - + if(!iszombie(owner)) old_species = owner.dna.species.type owner.set_species(/datum/species/zombie/infectious) @@ -77,7 +81,7 @@ owner.setToxLoss(0, 0) owner.setOxyLoss(0, 0) owner.heal_overall_damage(INFINITY, INFINITY, INFINITY, FALSE, FALSE, TRUE) - + if(!owner.revive()) return @@ -87,3 +91,6 @@ owner.do_jitter_animation(living_transformation_time) owner.Stun(living_transformation_time) to_chat(owner, "You are now a zombie!") + +/obj/item/organ/zombie_infection/nodamage + causes_damage = FALSE