diff --git a/code/datums/disease.dm b/code/datums/disease.dm index b016234ef8e..956f721ce6e 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -182,8 +182,8 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease return 1 return 0 -/datum/disease/proc/Copy() - return new type(0, src) +/datum/disease/proc/Copy(var/process = 0) + return new type(process, src) /* /datum/disease/Del() diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 36ace2d6b39..90be5558962 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -96,8 +96,8 @@ var/list/archive_diseases = list() return // Returns the advance disease with a different reference memory. -/datum/disease/advance/Copy() - return new /datum/disease/advance(0, src, 1) +/datum/disease/advance/Copy(var/process = 0) + return new /datum/disease/advance(process, src, 1) /* @@ -288,7 +288,7 @@ var/list/archive_diseases = list() var/s = safepick(GenerateSymptoms(level, 1)) if(s) AddSymptom(s) - Refresh() + Refresh(1) return // Randomly remove a symptom. @@ -297,7 +297,7 @@ var/list/archive_diseases = list() var/s = safepick(symptoms) if(s) RemoveSymptom(s) - Refresh() + Refresh(1) return // Name the disease. diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm index d97ca858f9b..1fe08646e88 100644 --- a/code/datums/diseases/advance/symptoms/vomit.dm +++ b/code/datums/diseases/advance/symptoms/vomit.dm @@ -30,7 +30,7 @@ Bonus /datum/symptom/vomit/Activate(var/datum/disease/advance/A) ..() - if(prob(SYMPTOM_ACTIVATION_PROB)) + if(prob(SYMPTOM_ACTIVATION_PROB / 2)) var/mob/living/M = A.affected_mob switch(A.stage) if(1, 2, 3, 4) @@ -42,7 +42,6 @@ Bonus /datum/symptom/vomit/proc/Vomit(var/mob/living/M) - M.Stun(5) M.visible_message("[M] vomits on the floor!") M.nutrition -= 20 @@ -82,7 +81,7 @@ Bonus /datum/symptom/vomit/blood/Vomit(var/mob/living/M) - M.Stun(5) + M.Stun(1) M.visible_message("[M] vomits on the floor!") // They lose blood and health. diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 871ebc2cdce..008a9691983 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -459,7 +459,7 @@ its easier to just keep the beam vertical. if(!B.blood_DNA[M.dna.unique_enzymes]) B.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type for(var/datum/disease/D in M.viruses) - var/datum/disease/newDisease = new D.type + var/datum/disease/newDisease = D.Copy(1) B.viruses += newDisease newDisease.holder = B return 1 //we bloodied the floor @@ -468,7 +468,7 @@ its easier to just keep the beam vertical. var/obj/effect/decal/cleanable/blood/newblood = new /obj/effect/decal/cleanable/blood(T) newblood.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type for(var/datum/disease/D in M.viruses) - var/datum/disease/newDisease = new D.type + var/datum/disease/newDisease = D.Copy(1) newblood.viruses += newDisease newDisease.holder = newblood return 1 //we bloodied the floor @@ -493,7 +493,7 @@ its easier to just keep the beam vertical. this.icon_state = "vomittox_[pick(1,4)]" for(var/datum/disease/D in M.viruses) - var/datum/disease/newDisease = new D.type + var/datum/disease/newDisease = D.Copy(1) this.viruses += newDisease newDisease.holder = this @@ -505,7 +505,7 @@ its easier to just keep the beam vertical. var/obj/effect/decal/cleanable/blood/this = new /obj/effect/decal/cleanable/blood(source1) this.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type for(var/datum/disease/D in M.viruses) - var/datum/disease/newDisease = new D.type + var/datum/disease/newDisease = D.Copy(1) this.viruses += newDisease newDisease.holder = this @@ -515,7 +515,7 @@ its easier to just keep the beam vertical. var/obj/effect/decal/cleanable/xenoblood/this = new /obj/effect/decal/cleanable/xenoblood(source2) this.blood_DNA["UNKNOWN BLOOD"] = "X*" for(var/datum/disease/D in M.viruses) - var/datum/disease/newDisease = new D.type + var/datum/disease/newDisease = D.Copy(1) this.viruses += newDisease newDisease.holder = this diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index 031f638fb10..d435ff2d6fd 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -206,7 +206,7 @@ // world << sound('sound/AI/outbreak7.ogg') var/virus_type if(!virus) - virus_type = pick(/datum/disease/dnaspread,/datum/disease/flu,/datum/disease/cold,/datum/disease/brainrot,/datum/disease/magnitis,/datum/disease/pierrot_throat) + virus_type = pick(/datum/disease/dnaspread,/datum/disease/advance/flu,/datum/disease/advance/cold,/datum/disease/brainrot,/datum/disease/magnitis,/datum/disease/pierrot_throat) else switch(virus) if("fake gbs") @@ -220,16 +220,16 @@ if("brain rot") virus_type = /datum/disease/brainrot if("cold") - virus_type = /datum/disease/cold + virus_type = /datum/disease/advance/cold if("retrovirus") virus_type = /datum/disease/dnaspread if("flu") - virus_type = /datum/disease/flu + virus_type = /datum/disease/advance/flu // if("t-virus") // virus_type = /datum/disease/t_virus if("pierrot's throat") virus_type = /datum/disease/pierrot_throat - for(var/mob/living/carbon/human/H in living_mob_list) + for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) var/foundAlready = 0 // don't infect someone that already has the virus for(var/datum/disease/D in H.viruses) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 6f960887af3..58f63b6128c 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -74,6 +74,8 @@ dat += "