diff --git a/code/datums/disease.dm b/code/datums/disease.dm
index f44293a8d04..3f5288071ca 100644
--- a/code/datums/disease.dm
+++ b/code/datums/disease.dm
@@ -44,7 +44,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
var/permeability_mod = 1//permeability modifier coefficient.
var/desc = null//description. Leave it null and this disease won't show in med records.
var/severity = null//severity descr
- var/longevity = 250//time in "ticks" the virus stays in inanimate object (blood stains, corpses, etc). In syringes, bottles and beakers it stays infinitely.
+ var/longevity = 150//time in "ticks" the virus stays in inanimate object (blood stains, corpses, etc). In syringes, bottles and beakers it stays infinitely.
var/list/hidden = list(0, 0)
var/can_carry = 1 // If the disease allows "carriers".
// if hidden[1] is true, then virus is hidden from medical scanners
@@ -183,7 +183,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
/datum/disease/New(var/process=1, var/datum/disease/D)//process = 1 - adding the object to global list. List is processed by master controller.
cure_list = list(cure_id) // to add more cures, add more vars to this list in the actual disease's New()
- if(process) // Viruses in list are considered active.
+ if(process) // Viruses in list are considered active.
active_diseases += src
initial_spread = spread
diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm
index 939960d5fe9..74f81f6eced 100644
--- a/code/datums/diseases/advance/advance.dm
+++ b/code/datums/diseases/advance/advance.dm
@@ -416,4 +416,11 @@ var/list/advance_cures = list(
name_symptoms += S.name
message_admins("[key_name_admin(user)] has triggered a custom virus outbreak of [D.name]! It has these symptoms: [english_list(name_symptoms)]")
+/*
+/mob/verb/test()
+
+ for(var/datum/disease/D in active_diseases)
+ src << "[D.name] - [D.holder]"
+*/
+
#undef RANDOM_STARTING_LEVEL
\ No newline at end of file
diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm
index 1fe08646e88..79a3d82c7c4 100644
--- a/code/datums/diseases/advance/symptoms/vomit.dm
+++ b/code/datums/diseases/advance/symptoms/vomit.dm
@@ -86,7 +86,7 @@ Bonus
// They lose blood and health.
var/brute_dam = M.getBruteLoss()
- if(brute_dam >= 50)
+ if(brute_dam < 50)
M.adjustBruteLoss(3)
var/turf/pos = get_turf(M)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 3f14640c1d6..f23d6c09b49 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -516,20 +516,7 @@ its easier to just keep the beam vertical.
var/turf/simulated/source2 = src
new /obj/effect/decal/cleanable/oil(source2)
-/atom/proc/clean_prints()
- if(istype(fingerprints, /list))
- //Smudge up dem prints some
- for(var/P in fingerprints)
- var/test_print = stars(fingerprints[P], rand(10,20))
- if(stringpercent(test_print) == 32) //She's full of stars! (No actual print left)
- fingerprints.Remove(P)
- else
- fingerprints[P] = test_print
- if(!fingerprints.len)
- del(fingerprints)
-
/atom/proc/clean_blood()
- clean_prints()
if(istype(blood_DNA, /list))
del(blood_DNA)
return 1
diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm
index 98bf53dd947..f5e5b2987df 100644
--- a/code/game/machinery/kitchen/processor.dm
+++ b/code/game/machinery/kitchen/processor.dm
@@ -82,7 +82,7 @@
for(var/datum/disease/D in O.viruses)
if(D.spread_type != SPECIAL)
- B.data["viruses"] = D.Copy()
+ B.data["viruses"] += D.Copy()
B.data["blood_DNA"] = copytext(O.dna.unique_enzymes,1,0)
if(O.resistances&&O.resistances.len)
diff --git a/code/game/objects/effects/decals/Cleanable/aliens.dm b/code/game/objects/effects/decals/Cleanable/aliens.dm
index b8b990f6ff0..7ee6aaa3b50 100644
--- a/code/game/objects/effects/decals/Cleanable/aliens.dm
+++ b/code/game/objects/effects/decals/Cleanable/aliens.dm
@@ -26,7 +26,9 @@
if (i > 0)
var/obj/effect/decal/cleanable/xenoblood/b = new /obj/effect/decal/cleanable/xenoblood/xsplatter(src.loc)
for(var/datum/disease/D in src.viruses)
- b.viruses += D.Copy()
+ var/datum/disease/ND = D.Copy(1)
+ b.viruses += ND
+ ND.holder = b
if (step_to(src, get_step(src, direction), 0))
break
diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm
index a520de941f9..393eeb9dd6f 100644
--- a/code/game/objects/effects/decals/Cleanable/humans.dm
+++ b/code/game/objects/effects/decals/Cleanable/humans.dm
@@ -69,6 +69,9 @@
if (i > 0)
var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc)
for(var/datum/disease/D in src.viruses)
- b.viruses += D.Copy()
+ var/datum/disease/ND = D.Copy(1)
+ b.viruses += ND
+ ND.holder = b
+
if (step_to(src, get_step(src, direction), 0))
break
\ No newline at end of file
diff --git a/code/game/objects/effects/gibs.dm b/code/game/objects/effects/gibs.dm
index 92be8ed4ddf..ae8fc7220a0 100644
--- a/code/game/objects/effects/gibs.dm
+++ b/code/game/objects/effects/gibs.dm
@@ -47,10 +47,10 @@
if(viruses.len > 0)
for(var/datum/disease/D in viruses)
if(prob(virusProb))
- var/datum/disease/viruus = D.Copy()
+ var/datum/disease/viruus = D.Copy(1)
gib.viruses += viruus
viruus.holder = gib
- viruus.spread_type = CONTACT_FEET
+
gib.blood_DNA = list()
if(MobDNA)
gib.blood_DNA[MobDNA.unique_enzymes] = MobDNA.b_type
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index f59c2b57fd7..da1e5fbc9d7 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -1040,9 +1040,8 @@
set category = "IC"
set src = usr
- if(module_active)
+ var/obj/item/W = get_active_hand()
+ if (W)
+ W.attack_self(src)
- var/obj/item/W = module_active
- if (W)
- W.attack_self(src)
return
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 726dec39875..7283673226c 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -498,7 +498,7 @@
Blood = L
break
var/list/res = Blood.data["resistances"]
- spawn(res.len*500)
+ spawn(res.len*200)
src.wait = null
else
src.temphtml = "The replicator is not ready yet."
@@ -525,7 +525,7 @@
B.reagents.add_reagent("blood",20,data)
src.updateUsrDialog()
wait = 1
- spawn(2000)
+ spawn(1000)
src.wait = null
else
src.temphtml = "The replicator is not ready yet."
@@ -624,6 +624,7 @@
dat += "Disease Agent: [D?"[D.agent] - Create virus culture bottle":"none"]
"
dat += "Common name: [(D.name||"none")]
"
dat += "Description: [(D.desc||"none")]
"
+ dat += "Spread: [(D.spread||"none")]
"
dat += "Possible cure: [(D.cure||"none")]
"
if(istype(D, /datum/disease/advance))
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index 9a9be4fc9f0..5e8ae23fecb 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -125,7 +125,7 @@ datum
blood_prop.blood_DNA[self.data["blood_DNA"]] = self.data["blood_type"]
for(var/datum/disease/D in self.data["viruses"])
- var/datum/disease/newVirus = D.Copy()
+ var/datum/disease/newVirus = D.Copy(1)
blood_prop.viruses += newVirus
newVirus.holder = blood_prop
@@ -136,7 +136,7 @@ datum
blood_prop = new(T)
blood_prop.blood_DNA["Non-Human DNA"] = "A+"
for(var/datum/disease/D in self.data["viruses"])
- var/datum/disease/newVirus = D.Copy()
+ var/datum/disease/newVirus = D.Copy(1)
blood_prop.viruses += newVirus
newVirus.holder = blood_prop
@@ -146,7 +146,7 @@ datum
blood_prop = new(T)
blood_prop.blood_DNA["UNKNOWN DNA STRUCTURE"] = "X*"
for(var/datum/disease/D in self.data["viruses"])
- var/datum/disease/newVirus = D.Copy()
+ var/datum/disease/newVirus = D.Copy(1)
blood_prop.viruses += newVirus
newVirus.holder = blood_prop
return