From 66424e44b27ea131698a5c307a59813fa73de620 Mon Sep 17 00:00:00 2001
From: CHOMPStation2StaffMirrorBot
<94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com>
Date: Sat, 26 Jul 2025 19:51:45 -0700
Subject: [PATCH] [MIRROR] Virology Fixes (#11254)
Co-authored-by: Guti <32563288+TheCaramelion@users.noreply.github.com>
---
code/datums/diseases/_disease.dm | 4 ++++
code/datums/diseases/advance/advance.dm | 2 --
code/datums/diseases/advance/disease_preset.dm | 8 ++++----
code/datums/diseases/advance/symptoms/blobspores.dm | 2 +-
code/datums/diseases/{roanoake.dm => roanoke.dm} | 12 ++++++------
code/game/objects/items/devices/extrapolator.dm | 2 +-
vorestation.dme | 2 +-
7 files changed, 17 insertions(+), 15 deletions(-)
rename code/datums/diseases/{roanoake.dm => roanoke.dm} (91%)
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"