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"