diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm
index 0cae5222bf..3cbf4b3cd2 100644
--- a/code/datums/traits/negative.dm
+++ b/code/datums/traits/negative.dm
@@ -137,16 +137,18 @@ GLOBAL_LIST_EMPTY(family_heirlooms)
var/lums = T.get_lumcount()
if(lums <= 0.2)
if(quirk_holder.m_intent == MOVE_INTENT_RUN)
- sleep(2) //0.2 seconds of being in the dark
- T = get_turf(quirk_holder)
- lums = T.get_lumcount()
- if(lums <= 0.2) //check again
- to_chat(quirk_holder, "Easy, easy, take it slow... you're in the dark...")
- quirk_holder.toggle_move_intent()
+ addtimer(CALLBACK(src, .proc/recheck),2) //0.2 seconds of being in the dark
SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "nyctophobia", /datum/mood_event/nyctophobia)
else
SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "nyctophobia")
+/datum/quirk/nyctophobia/proc/recheck()
+ var/turf/T = get_turf(quirk_holder)
+ var/lums = T.get_lumcount()
+ if(lums <= 0.2) //check again, did they remain in the dark for 0.2 seconds?
+ to_chat(quirk_holder, "Easy, easy, take it slow... you're in the dark...")
+ quirk_holder.toggle_move_intent()
+
/datum/quirk/lightless
name = "Light Sensitivity"
desc = "Bright lights irritate you. Your eyes start to water, your skin feels itchy against the photon radiation, and your hair gets dry and frizzy. Maybe it's a medical condition. If only Nanotrasen was more considerate of your needs..."