diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 7fd55f626a..f1ad49c767 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -60,6 +60,9 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease)) if(global_flag_check(virus_modifiers, CARRIER) && !cure) return FALSE + if(global_flag_check(virus_modifiers, DORMANT)) + return FALSE + if(!global_flag_check(virus_modifiers, PROCESSING)) virus_modifiers |= PROCESSING Start() @@ -184,6 +187,7 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease)) /datum/disease/proc/Copy() var/datum/disease/D = new type() D.strain_data = strain_data.Copy() + D.virus_modifiers = virus_modifiers return D /datum/disease/proc/GetDiseaseID() diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index ce33c82b10..0ecad3e8b9 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -58,8 +58,6 @@ GLOBAL_LIST_INIT(advance_cures, list( /datum/disease/advance/stage_act() if(!..()) return FALSE - if(global_flag_check(virus_modifiers, DORMANT)) - return FALSE if(symptoms && length(symptoms)) if(!s_processing) diff --git a/code/datums/diseases/advance/disease_preset.dm b/code/datums/diseases/advance/disease_preset.dm index 0b0f9492da..84f1e85115 100644 --- a/code/datums/diseases/advance/disease_preset.dm +++ b/code/datums/diseases/advance/disease_preset.dm @@ -51,10 +51,10 @@ if(SPECIES_UNATHI, SPECIES_TAJARAN) // Mice devourers sickrisk = 0.5 if(SPECIES_XENOCHIMERA) - var/datum/disease/advance/dormant_roanoake = new /datum/disease/roanoake - dormant_roanoake.virus_modifiers |= DORMANT - ForceContractDisease(dormant_roanoake, TRUE) - return + var/datum/disease/roanoke/dormant_roanoke = new + dormant_roanoke.virus_modifiers |= DORMANT + ForceContractDisease(dormant_roanoke, TRUE) + return TRUE if(SPECIES_PROMETHEAN) // Too clean return diff --git a/code/datums/diseases/advance/symptoms/blobspores.dm b/code/datums/diseases/advance/symptoms/blobspores.dm index 734b372c34..dd2cdf2267 100644 --- a/code/datums/diseases/advance/symptoms/blobspores.dm +++ b/code/datums/diseases/advance/symptoms/blobspores.dm @@ -90,7 +90,7 @@ BONUS ready_to_pop = TRUE /datum/symptom/blobspores/OnDeath(datum/disease/advance/A) - if(neutered) + if(!..()) return var/mob/living/M = A.affected_mob M.visible_message(span_danger("[M] starts swelling grotesquely!")) diff --git a/code/datums/diseases/roanoake.dm b/code/datums/diseases/roanoke.dm similarity index 91% rename from code/datums/diseases/roanoake.dm rename to code/datums/diseases/roanoke.dm index 843d37237d..905122a632 100644 --- a/code/datums/diseases/roanoake.dm +++ b/code/datums/diseases/roanoke.dm @@ -1,6 +1,6 @@ -/datum/disease/roanoake - name = "Roanoake Syndrome" - medical_name = "Roanoake Syndrome" +/datum/disease/roanoke + name = "Roanoke Syndrome" + medical_name = "Roanoke Syndrome" max_stages = 6 stage_prob = 2 spread_text = "Blood and close contact" @@ -18,13 +18,13 @@ var/list/obj/item/organ/organ_list = list() var/obj/item/organ/O -/datum/disease/roanoake/Start() +/datum/disease/roanoke/Start() var/mob/living/carbon/human/M = affected_mob organ_list += M.organs organ_list += M.internal_organs -/datum/disease/roanoake/stage_act() +/datum/disease/roanoke/stage_act() if(!..()) return FALSE var/mob/living/carbon/human/M = affected_mob @@ -88,6 +88,6 @@ cure() return -/datum/disease/roanoake/proc/fever(var/mob/living/M, var/datum/disease/D) +/datum/disease/roanoke/proc/fever(var/mob/living/M, var/datum/disease/D) M.bodytemperature = min(M.bodytemperature + (2 * stage), BODYTEMP_HEAT_DAMAGE_LIMIT - 1) return TRUE diff --git a/code/game/objects/items/devices/extrapolator.dm b/code/game/objects/items/devices/extrapolator.dm index fb55960496..22b93cd7a0 100644 --- a/code/game/objects/items/devices/extrapolator.dm +++ b/code/game/objects/items/devices/extrapolator.dm @@ -171,7 +171,7 @@ for(var/datum/symptom/symptom in advance_disease.symptoms) message += "[symptom.name]" else - message += span_info("[disease.name], stage [disease.stage]/[disease.max_stages].") + message += span_info("[disease.name], [global_flag_check(disease.virus_modifiers, DORMANT) ? "dormant virus" : "stage [disease.stage]/[disease.max_stages]"].") disease.addToDB() diff --git a/vorestation.dme b/vorestation.dme index 0d83ceeff6..22974e084e 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -646,7 +646,7 @@ #include "code\datums\diseases\gbs.dm" #include "code\datums\diseases\lycancoughy.dm" #include "code\datums\diseases\magnitis.dm" -#include "code\datums\diseases\roanoake.dm" +#include "code\datums\diseases\roanoke.dm" #include "code\datums\diseases\advance\advance.dm" #include "code\datums\diseases\advance\disease_preset.dm" #include "code\datums\diseases\advance\symptoms\blobspores.dm"