From 28c15adaa397be3e2dd833b3c09eb48977ed70d7 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Sun, 9 Jun 2013 16:30:22 +0400 Subject: [PATCH] Fixed runtime in blood transfer. Fixed cure machine producing virus blood wrong. Changes to existing syndromes: -Cough : now has chance to infect people around mob. -Telepathy : now should properly give powers to the mob. New syndromes: -Topographical Cretinism : confusing directions, much like drunk effect. -Blackout : short-time blindness --- code/modules/organs/blood.dm | 2 +- code/modules/virus2/curer.dm | 4 ++-- code/modules/virus2/effect.dm | 32 +++++++++++++++++++++++--------- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index 227fbcd5a6b..20373ea2094 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -201,7 +201,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 vessel.add_reagent("blood", amount, injected.data) vessel.update_total() var/list/viruses = injected.data["virus2"] - if (viruses.len) + if (viruses && viruses.len) virus2 |= viruses if (injected.data["antibodies"] && prob(5)) antibodies |= injected.data["antibodies"] diff --git a/code/modules/virus2/curer.dm b/code/modules/virus2/curer.dm index 65b030ba827..4d616048d18 100644 --- a/code/modules/virus2/curer.dm +++ b/code/modules/virus2/curer.dm @@ -22,8 +22,8 @@ return var/obj/item/weapon/reagent_containers/glass/beaker/product = new(src.loc) - var/list/data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"virus2"=null,"antibodies"=0) - data["virus2"] = I:virus2 + var/list/data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"virus2"=list(),"antibodies"=0) + data["virus2"] |= I:virus2 product.reagents.add_reagent("blood",30,data) virusing = 1 diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index 3aa5a361c69..5a3cef83e69 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -87,7 +87,7 @@ mob.radiation += (2*multiplier) /datum/disease2/effect/deaf - name = "Hard of hearing syndrome" + name = "Dead Ear syndrome" stage = 4 activate(var/mob/living/carbon/mob,var/multiplier) mob.ear_deaf += 20 @@ -140,7 +140,10 @@ name = "Telepathy Syndrome" stage = 3 activate(var/mob/living/carbon/mob,var/multiplier) - mob.mutations |= 512 + mob.dna.check_integrity() + var/newdna = setblock(mob.dna.struc_enzymes,REMOTETALKBLOCK,toggledblock(getblock(mob.dna.struc_enzymes,REMOTETALKBLOCK,3)),3) + mob.dna.struc_enzymes = newdna + domutcheck(mob, null) /datum/disease2/effect/mind name = "Lazy mind syndrome" @@ -171,6 +174,12 @@ activate(var/mob/living/carbon/mob,var/multiplier) mob.say("*giggle") +/datum/disease2/effect/confusion + name = "Topographical Cretinism Syndrome" + stage = 3 + activate(var/mob/living/carbon/mob,var/multiplier) + mob.confused += 10 + /datum/disease2/effect/groan name = "Groaning Syndrome" stage = 3 @@ -179,7 +188,7 @@ ////////////////////////STAGE 2///////////////////////////////// /datum/disease2/effect/scream - name = "Random screaming syndrome" + name = "Loudness syndrome" stage = 2 activate(var/mob/living/carbon/mob,var/multiplier) mob.say("*scream") @@ -190,23 +199,28 @@ activate(var/mob/living/carbon/mob,var/multiplier) mob.drowsyness += 10 -/datum/disease2/effect/drowsy - name = "Bedroom Syndrome" - stage = 2 - activate(var/mob/living/carbon/mob,var/multiplier) - mob.drowsyness = 5 - /datum/disease2/effect/sleepy name = "Resting syndrome" stage = 2 activate(var/mob/living/carbon/mob,var/multiplier) mob.say("*collapse") +/datum/disease2/effect/sleepy + name = "Blackout Syndrome" + stage = 2 + activate(var/mob/living/carbon/mob,var/multiplier) + mob.eye_blind = max(mob.eye_blind, 4) + /datum/disease2/effect/cough name = "Anima Syndrome" stage = 2 activate(var/mob/living/carbon/mob,var/multiplier) mob.say("*cough") + for(var/mob/living/carbon/M in view(1,mob)) + if(airborne_can_reach(get_turf(mob), get_turf(M))) + for (var/datum/disease2/disease/V in mob.virus2) + if(V.spreadtype == "Airborne") + infect_virus2(M,V) /datum/disease2/effect/hungry name = "Appetiser Effect"