diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index f9669012..796b50a3 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -37,11 +37,11 @@ PROCESSING_SUBSYSTEM_DEF(quirks) if(job?.blacklisted_quirks) cut = filter_quirks(quirks, job) for(var/V in my_quirks) - var/datum/quirk/Q = quirks[V] - if(Q) + if(V in quirks) + var/datum/quirk/Q = quirks[V] user.add_quirk(Q, spawn_effects) else - stack_trace("Invalid quirk \"[V]\" in client [cli.ckey] preferences") + log_admin("Invalid quirk \"[V]\" in client [cli.ckey] preferences") cli.prefs.all_quirks -= V badquirk = TRUE if(badquirk) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index a6468076..4bd28fbc 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -468,5 +468,5 @@ H.maxHealth = H.maxHealth * 0.8 /datum/quirk/flimsy/remove() //how do admins even remove traits? - var/mob/living/carbon/human/H = quirk_holder - H.maxHealth += healthchange + if(quirk_holder) + quirk_holder.maxHealth += healthchange diff --git a/hyperstation/code/datums/traits/good.dm b/hyperstation/code/datums/traits/good.dm index 49ee4492..672d8719 100644 --- a/hyperstation/code/datums/traits/good.dm +++ b/hyperstation/code/datums/traits/good.dm @@ -10,8 +10,8 @@ M.grant_language(/datum/language/narsie) /datum/quirk/narsianspeaker/remove() - var/mob/living/M = quirk_holder - M?.remove_language(/datum/language/narsie) + if(quirk_holder) + quirk_holder.remove_language(/datum/language/ratvar) /datum/quirk/ratvarianspeaker name = "Ratvarian speaker" @@ -25,8 +25,8 @@ M.grant_language(/datum/language/ratvar) /datum/quirk/ratvarianspeaker/remove() - var/mob/living/M = quirk_holder - M?.remove_language(/datum/language/ratvar) + if(quirk_holder) + quirk_holder.remove_language(/datum/language/ratvar) /datum/quirk/encodedspeaker name = "Encoded Audio speaker" @@ -40,8 +40,8 @@ M.grant_language(/datum/language/machine) /datum/quirk/encodedspeaker/remove() - var/mob/living/M = quirk_holder - M?.remove_language(/datum/language/machine) + if(quirk_holder) + quirk_holder.remove_language(/datum/language/ratvar) /datum/quirk/xenospeaker name = "Xenocommon speaker" @@ -55,5 +55,5 @@ M.grant_language(/datum/language/xenocommon) /datum/quirk/xenospeaker/remove() - var/mob/living/M = quirk_holder - M?.remove_language(/datum/language/xenocommon) + if(quirk_holder) + quirk_holder.remove_language(/datum/language/ratvar)