From 26c944b7e0c111b9ac2ce05ae81d1e36a58d5026 Mon Sep 17 00:00:00 2001 From: Akke Date: Wed, 10 Feb 2016 18:04:44 +0000 Subject: [PATCH 1/3] Adds var/needs_all_cures --- code/datums/diseases/_disease.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 1f52a78a89d..535aeb7c722 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 @@ -92,7 +92,7 @@ var/list/diseases = subtypesof(/datum/disease) . = 1 for(var/C_id in cures) - if(!affected_mob.reagents.has_reagent(C_id)) + if(!affected_mob.reagents.has_reagent(C_id) && needs_all_cures) .-- break //One missing cure is enough to fail From 00eba3168d0cd688b24d0939ab851dab7f23f3d3 Mon Sep 17 00:00:00 2001 From: Akke Date: Wed, 10 Feb 2016 18:21:20 +0000 Subject: [PATCH 2/3] updates to dunc and kaze's suggestion --- code/datums/diseases/_disease.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 535aeb7c722..e6b3bf1649b 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -63,6 +63,7 @@ var/list/diseases = subtypesof(/datum/disease) var/list/required_organs = list() var/needs_all_cures = TRUE var/list/strain_data = list() //dna_spread special bullshit + var/cureCheck = 1 @@ -90,12 +91,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) && needs_all_cures) + if(!affected_mob.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) From 8170f2113dd872c5e7d6b603a10f02b453aed6d1 Mon Sep 17 00:00:00 2001 From: Akke Date: Wed, 10 Feb 2016 22:50:31 +0000 Subject: [PATCH 3/3] if(!affected_mob.reagents.has_reagent(C_id)) --- code/datums/diseases/_disease.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index e6b3bf1649b..e96b40ca822 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -63,7 +63,6 @@ var/list/diseases = subtypesof(/datum/disease) var/list/required_organs = list() var/needs_all_cures = TRUE var/list/strain_data = list() //dna_spread special bullshit - var/cureCheck = 1 @@ -93,10 +92,10 @@ var/list/diseases = subtypesof(/datum/disease) . = cures.len for(var/C_id in cures) - if(!affected_mob.has_reagent(C_id)) + if(!affected_mob.reagents.has_reagent(C_id)) .-- if(!. || (needs_all_cures && . < cures.len)) - return 0 + return 0 /datum/disease/proc/spread(atom/source, force_spread = 0) if((spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) && !force_spread)