diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 1f52a78a89d..e96b40ca822 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -61,7 +61,7 @@ var/list/diseases = subtypesof(/datum/disease) var/permeability_mod = 1 var/severity = NONTHREAT var/list/required_organs = list() - + var/needs_all_cures = TRUE var/list/strain_data = list() //dna_spread special bullshit @@ -90,12 +90,12 @@ var/list/diseases = subtypesof(/datum/disease) if(!(disease_flags & CURABLE)) return 0 - . = 1 + . = cures.len for(var/C_id in cures) if(!affected_mob.reagents.has_reagent(C_id)) .-- - break //One missing cure is enough to fail - + if(!. || (needs_all_cures && . < cures.len)) + return 0 /datum/disease/proc/spread(atom/source, force_spread = 0) if((spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) && !force_spread)