tweaks IPC viruses (system cleaner and immunity redux pt2 FINAL (probably)) (#18486)

* ipc viruses

* weird

* use flags

* proper logic
This commit is contained in:
Molti
2023-04-23 23:35:15 -05:00
committed by GitHub
parent 82ed3c4ebd
commit 81b11fab2a
11 changed files with 24 additions and 2 deletions

View File

@@ -32,6 +32,8 @@ Bonus
"Resistance 9" = "Causes permanent deafness, instead of intermittent.",
"Stealth 4" = "The symptom remains hidden until active.",
)
process_flags = ORGANIC | SYNTHETIC
/datum/symptom/deafness/Start(datum/disease/advance/A)
. = ..()
if(!.)

View File

@@ -121,6 +121,7 @@ Bonus
"Stage Speed 8" = "Increases explosion radius and explosion damage to the host when the host is wet.",
"Transmission 8" = "Additionally synthesizes chlorine trifluoride and napalm inside the host. More chemicals are synthesized if the resistance 9 threshold has been met."
)
process_flags = ORGANIC | SYNTHETIC //is funny
/datum/symptom/alkali/Start(datum/disease/advance/A)
. = ..()

View File

@@ -32,6 +32,7 @@ Bonus
"Stage Speed 7" = "Increases the amount of hallucinations.",
"Stealth 4" = "The virus mimics positive symptoms.",
)
process_flags = ORGANIC | SYNTHETIC
/datum/symptom/hallucigen/Start(datum/disease/advance/A)
. = ..()

View File

@@ -380,6 +380,7 @@
"Transmission 6" = "Increases temperature adjustment rate.",
"Stage Speed 7" = "Increases healing speed.",
)
process_flags = ORGANIC | SYNTHETIC //only really for temp stabilize
/datum/symptom/heal/plasma/Start(datum/disease/advance/A)
. = ..()

View File

@@ -14,6 +14,7 @@
"Transmission 5" = "Increases the virus' growth rate while nanites are present.",
"Stage Speed 7" = "Increases the replication boost."
)
process_flags = ORGANIC | SYNTHETIC
/datum/symptom/nano_boost/Start(datum/disease/advance/A)
. = ..()
@@ -50,6 +51,7 @@
"Stage Speed 5" = "Increases the virus' growth rate while nanites are present.",
"Resistance 7" = "Severely increases the rate at which the nanites are destroyed."
)
process_flags = ORGANIC | SYNTHETIC
/datum/symptom/nano_destroy/Start(datum/disease/advance/A)
. = ..()

View File

@@ -21,6 +21,7 @@
var/list/cached_tentacle_turfs
var/turf/last_location
var/tentacle_recheck_cooldown = 100
process_flags = ORGANIC | SYNTHETIC
/datum/symptom/necroseed/Start(datum/disease/advance/A)
. = ..()

View File

@@ -15,6 +15,7 @@
"Transmission 12" = "Makes the host irradiate others around them as well.",
"Stage Speed 8" = "Host takes radiation damage faster."
)
process_flags = ORGANIC | SYNTHETIC
/datum/symptom/radiation/Start(datum/disease/advance/A)
. = ..()

View File

@@ -24,6 +24,7 @@
transmittable = 3
level = 5
severity = 0
process_flags = ORGANIC | SYNTHETIC //i don't think this needs to be here, but just in case
/datum/symptom/inorganic_adaptation/Start(datum/disease/advance/A)
. = ..()

View File

@@ -29,6 +29,7 @@
var/neutered = FALSE
var/list/thresholds
var/naturally_occuring = TRUE //if this symptom can appear from /datum/disease/advance/GenerateSymptoms()
var/process_flags = ORGANIC //some symptoms don't affect robotic mobs
/datum/symptom/New()
var/list/S = SSdisease.list_symptoms
@@ -56,7 +57,14 @@
return FALSE
if(world.time < next_activation)
return FALSE
else
var/can_process = FALSE
if(!can_process && A.affected_mob?.dna?.species?.reagent_tag & PROCESS_SYNTHETIC && (process_flags & SYNTHETIC))//some symptoms don't affect synthetic mobs
can_process = TRUE
if(!can_process && A.affected_mob?.dna?.species?.reagent_tag & PROCESS_ORGANIC && (process_flags & ORGANIC))//some symptoms don't affect organic mobs
can_process = TRUE
if(can_process)
next_activation = world.time + rand(symptom_delay_min * 10, symptom_delay_max * 10)
return TRUE

View File

@@ -448,6 +448,11 @@
metabolization_rate = 0.5 * REAGENTS_METABOLISM
process_flags = SYNTHETIC
/datum/reagent/medicine/system_cleaner/reaction_mob(mob/living/L, method=TOUCH, reac_volume)
for(var/thing in L.diseases)//lets it cure viruses from IPC
var/datum/disease/D = thing
D.cure()
/datum/reagent/medicine/system_cleaner/on_mob_life(mob/living/M)
M.adjustToxLoss(-2*REM, 0)
. = 1

View File

@@ -100,7 +100,6 @@
name = "Vaccine"
color = "#C81040" // rgb: 200, 16, 64
taste_description = "slime"
process_flags = ORGANIC | SYNTHETIC
/datum/reagent/vaccine/reaction_mob(mob/living/L, method=TOUCH, reac_volume)
if(islist(data) && ((method == INGEST && reac_volume >= 5) || method == INJECT))//drinking it requires at least 5u, injection doesn't