[MIRROR] Miscellaneous virology fixes/adjustments (#11032)

Co-authored-by: Guti <32563288+TheCaramelion@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-06-07 19:15:24 -07:00
committed by GitHub
parent 8529a33efd
commit 5c0aeb5b05
4 changed files with 19 additions and 6 deletions

View File

@@ -188,6 +188,14 @@
viruses_to_return += D viruses_to_return += D
return viruses_to_return return viruses_to_return
/mob/proc/GetDormantDiseases()
LAZYINITLIST(viruses)
var/list/viruses_to_return = list()
for(var/datum/disease/D in viruses)
if(D.virus_modifiers & DORMANT)
viruses_to_return += D
return viruses_to_return
/mob/proc/GetResistances() /mob/proc/GetResistances()
LAZYINITLIST(resistances) LAZYINITLIST(resistances)
return resistances return resistances

View File

@@ -39,7 +39,7 @@
. = FALSE . = FALSE
var/sickrisk = 1 var/sickrisk = 1
if(isSynthetic() || species.virus_immune || HAS_TRAIT(src, STRONG_IMMUNITY_TRAIT)) // Don't bother if(isSynthetic() || HAS_TRAIT(src, STRONG_IMMUNITY_TRAIT)) // Don't bother
return return
switch(get_species()) switch(get_species())

View File

@@ -79,7 +79,7 @@
. += span_notice("The scanner is missing.") . += span_notice("The scanner is missing.")
else else
. += span_notice("A class " + span_bold("[scanner.rating]") + " scanning module is installed. It is <i>screwed</i> in place.") . += span_notice("A class " + span_bold("[scanner.rating]") + " scanning module is installed. It is <i>screwed</i> in place.")
. += span_notice("Can detect diseases below stealth " + span_bold("[maximum_stealth]") + ".") // . += span_notice("Can detect diseases below stealth " + span_bold("[maximum_stealth]") + ".")
. += span_notice("Can extract diseases in " + span_bold("[DisplayTimeText(extract_time)]") + ".") . += span_notice("Can extract diseases in " + span_bold("[DisplayTimeText(extract_time)]") + ".")
. += span_notice("Can isolate symptoms <b>[maximum_level >= 9 ? "of any level" : "below level [maximum_level]"]</b>, in <b>[DisplayTimeText(isolate_time)]</b>.") . += span_notice("Can isolate symptoms <b>[maximum_level >= 9 ? "of any level" : "below level [maximum_level]"]</b>, in <b>[DisplayTimeText(isolate_time)]</b>.")
@@ -89,7 +89,7 @@
var/effective_scanner_rating = scanner.rating +1 var/effective_scanner_rating = scanner.rating +1
extract_time = (10 SECONDS) / effective_scanner_rating extract_time = (10 SECONDS) / effective_scanner_rating
isolate_time = (15 SECONDS) / effective_scanner_rating isolate_time = (15 SECONDS) / effective_scanner_rating
maximum_stealth = scanner.rating + 2 // maximum_stealth = scanner.rating + 2
maximum_level = scanner.rating + 5 maximum_level = scanner.rating + 5
/obj/item/extrapolator/attack(atom/AM, mob/living/user) /obj/item/extrapolator/attack(atom/AM, mob/living/user)
@@ -184,15 +184,17 @@
return TRUE return TRUE
if(EXTRAPOLATOR_ACT_CHECK(result, EXTRAPOLATOR_ACT_PRIORITY_ISOLATE)) if(EXTRAPOLATOR_ACT_CHECK(result, EXTRAPOLATOR_ACT_PRIORITY_ISOLATE))
isolate = TRUE isolate = TRUE
var/list/advance_diseases = list() //var/list/advance_diseases = list()
/*
for(var/datum/disease/advance/candidate in diseases) for(var/datum/disease/advance/candidate in diseases)
if(candidate.stealth >= maximum_stealth) if(candidate.stealth >= maximum_stealth)
continue continue
advance_diseases += candidate advance_diseases += candidate
if(!length(advance_diseases)) */
if(!length(diseases))
to_chat(user, span_warning("[icon2html(src, user)] There are no valid diseases to make a culture from.")) to_chat(user, span_warning("[icon2html(src, user)] There are no valid diseases to make a culture from."))
return return
var/datum/disease/advance/target_disease = length(advance_diseases) > 1 ? tgui_input_list(user, "Select disease to extract", "Viral Extraction", advance_diseases, default = advance_diseases[1]) : advance_diseases[1] var/datum/disease/advance/target_disease = length(diseases) > 1 ? tgui_input_list(user, "Select disease to extract", "Viral Extraction", diseases, default = diseases[1]) : diseases[1]
if(!target_disease) if(!target_disease)
return return
using = TRUE using = TRUE

View File

@@ -285,6 +285,9 @@ var/const/CE_STABLE_THRESHOLD = 0.5
for(var/datum/disease/D in GetSpreadableViruses()) for(var/datum/disease/D in GetSpreadableViruses())
B.data["viruses"] |= D.Copy() B.data["viruses"] |= D.Copy()
for(var/datum/disease/D in GetDormantDiseases())
B.data["viruses"] |= D.Copy()
if(!B.data["resistances"]) if(!B.data["resistances"])
B.data["resistances"] = list() B.data["resistances"] = list()