diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm
index 9234b54b088..e3e50ba468f 100644
--- a/code/datums/diseases/advance/symptoms/sensory.dm
+++ b/code/datums/diseases/advance/symptoms/sensory.dm
@@ -24,27 +24,36 @@ Bonus
level = 5
severity = 0
+/datum/symptom/sensory_restoration/proc/check_and_add(reagent, check, add, mob/living/M)
+ if(M.reagents.get_reagent_amount(reagent) < check)
+ M.reagents.add_reagent(reagent, add)
+ return 1
+
/datum/symptom/sensory_restoration/Activate(var/datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB * 3))
var/mob/living/M = A.affected_mob
+
switch(A.stage)
if(2)
- if(M.reagents.get_reagent_amount("oculine")<10)
- M.reagents.add_reagent("oculine", 10)
+ if(check_and_add("oculine", 10, 10, M))
to_chat(M, "Your hearing feels clearer and crisp.")
if(3)
- if(M.reagents.get_reagent_amount("antihol") < 10 && M.reagents.get_reagent_amount("oculine") < 10 )
- M.reagents.add_reagent_list(list("antihol"=10, "oculine"=10))
+ if(check_and_add("antihol", 10, 10, M))
to_chat(M, "You feel sober.")
+ check_and_add("oculine", 10, 10, M)
if(4)
- if(M.reagents.get_reagent_amount("antihol") < 10 && M.reagents.get_reagent_amount("oculine") < 10 && M.reagents.get_reagent_amount("synaphydramine") < 10)
- M.reagents.add_reagent_list(list("antihol"=10, "oculine"=10, "synaphydramine"=5))
+ if(check_and_add("synaphydramine", 10, 5, M))
to_chat(M, "You feel focused.")
+ check_and_add("antihol", 10, 10, M)
+ check_and_add("oculine", 10, 10, M)
if(5)
- if(M.reagents.get_reagent_amount("antihol") < 10 && M.reagents.get_reagent_amount("oculine") < 10 && M.reagents.get_reagent_amount("synaphydramine") < 10 && M.reagents.get_reagent_amount("mannitol") < 10)
- M.reagents.add_reagent_list(list("mannitol"=10, "antihol"=10, "oculine"=10, "synaphydramine"=10))
+ if(check_and_add("mannitol", 10, 10, M))
to_chat(M, "Your mind feels relaxed.")
+ check_and_add("synaphydramine", 10, 5, M)
+ check_and_add("antihol", 10, 10, M)
+ check_and_add("oculine", 10, 10, M)
+
return
/*