From 42f23e73bbd06277752933fb6f7290080df8144d Mon Sep 17 00:00:00 2001 From: DGamerL <108773801+DGamerL@users.noreply.github.com> Date: Mon, 19 Feb 2024 15:49:14 +0100 Subject: [PATCH] Fixes "????" making you vomit more than normal (#24230) * Dummy disease check * Contra review * Update code/datums/diseases/advance/advance.dm Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com> --------- Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com> --- code/datums/diseases/_MobProcs.dm | 6 +++--- code/datums/diseases/_disease.dm | 7 +++---- code/datums/diseases/advance/advance.dm | 11 +++++++---- code/modules/surgery/organs/heart.dm | 2 +- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index 0992a054df3..91873cf56a6 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -2,9 +2,9 @@ /mob/proc/HasDisease(datum/disease/D) for(var/thing in viruses) var/datum/disease/DD = thing - if(D.IsSame(DD)) - return 1 - return 0 + if(DD.IsSame(D)) + return TRUE + return FALSE /mob/proc/CanContractDisease(datum/disease/D) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 404a45324e2..6d19e603ca9 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -158,10 +158,9 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease)) qdel(src) /datum/disease/proc/IsSame(datum/disease/D) - if(istype(src, D.type)) - return 1 - return 0 - + if(ispath(D)) + return istype(src, D) + return istype(src, D.type) /datum/disease/proc/Copy() var/datum/disease/D = new type() diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 6e445daffc3..08c6509defe 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -86,13 +86,16 @@ GLOBAL_LIST_INIT(advance_cures, list( // Compares type then ID. /datum/disease/advance/IsSame(datum/disease/advance/D) + if(ispath(D)) + return FALSE - if(!(istype(D, /datum/disease/advance))) - return 0 + if(!istype(D, /datum/disease/advance)) + return FALSE if(GetDiseaseID() != D.GetDiseaseID()) - return 0 - return 1 + return FALSE + + return TRUE // To add special resistances. /datum/disease/advance/cure(resistance=1) diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 9e284f5c421..208e0f87812 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -248,7 +248,7 @@ addtimer(CALLBACK(src, PROC_REF(recharge)), 30 SECONDS) addtimer(CALLBACK(src, PROC_REF(message_to_owner), owner, "Your [name] fails to return to its normal rhythm!"), 3 SECONDS) - if(owner.HasDisease(new /datum/disease/critical/heart_failure(0))) + if(owner.HasDisease(/datum/disease/critical/heart_failure)) to_chat(owner, "Your [name] detects a cardiac event and attempts to return to its normal rhythm!") if(prob(40) && emagged) attempted_restart = TRUE