From 91ab345297141548c1a4e6998455f222d722e251 Mon Sep 17 00:00:00 2001 From: NovaBot <154629622+NovaBot13@users.noreply.github.com> Date: Sat, 10 Feb 2024 21:51:32 -0500 Subject: [PATCH] [MIRROR] Adds a Touchy quirk (#903) * Adds a Touchy quirk (#81387) ## About The Pull Request Adds a new quirk for -2 points that requires you to be next to something to examine them, like blindness but without the timer or actual blindness itself. ## Why It's Good For The Game For the player using the quirk, it's 2 points for losing the ability to simply examine everything around you, making it harder to tell what someone has in their hands when they are charging at you, for example. You need to get up and close to things to see what they are. For people being examined, it's just another possible excuse to be near them, opening up plausible deniability for actions such as sleepy pens, changeling stings, etc. ## Changelog :cl: Atlasle, JohnFulpWillard add: Adds the Touchy quirk, you need to be next to something to examine it, for 2 extra quirk points. /:cl: * Adds a Touchy quirk --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> --- .../subsystem/processing/quirks.dm | 1 + code/datums/quirks/negative_quirks/unusual.dm | 22 +++++++++++++++++++ tgstation.dme | 1 + 3 files changed, 24 insertions(+) create mode 100644 code/datums/quirks/negative_quirks/unusual.dm diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index d112cfe49e2..040276b5596 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -5,6 +5,7 @@ // Shifted to glob so they are generated at world start instead of risking players doing preference stuff before the subsystem inits GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list( list(/datum/quirk/item_quirk/blindness, /datum/quirk/item_quirk/nearsighted), + list(/datum/quirk/item_quirk/blindness, /datum/quirk/touchy), list(/datum/quirk/jolly, /datum/quirk/depression, /datum/quirk/apathetic, /datum/quirk/hypersensitive), list(/datum/quirk/no_taste, /datum/quirk/vegetarian, /datum/quirk/deviant_tastes, /datum/quirk/gamer), list(/datum/quirk/pineapple_liker, /datum/quirk/pineapple_hater, /datum/quirk/gamer), diff --git a/code/datums/quirks/negative_quirks/unusual.dm b/code/datums/quirks/negative_quirks/unusual.dm new file mode 100644 index 00000000000..79cfac06c13 --- /dev/null +++ b/code/datums/quirks/negative_quirks/unusual.dm @@ -0,0 +1,22 @@ +/datum/quirk/touchy + name = "Touchy" + desc = "You are very touchy and have to physically be able to touch something to examine it." + icon = FA_ICON_HAND + value = -2 + gain_text = span_danger("You feel like you can't examine things from a distance.") + lose_text = span_notice("You feel like you can examine things from a distance.") + medical_record_text = "Patient is unable to tell objects apart from a distance." + hardcore_value = 4 + +/datum/quirk/touchy/add(client/client_source) + RegisterSignal(quirk_holder, COMSIG_CLICK_SHIFT, PROC_REF(examinate_check)) + +/datum/quirk/touchy/remove() + UnregisterSignal(quirk_holder, COMSIG_CLICK_SHIFT) + +///Checks if the mob is besides the thing being examined, if they aren't then we cancel their examinate. +/datum/quirk/touchy/proc/examinate_check(mob/examiner, atom/examined) + SIGNAL_HANDLER + + if(!examined.Adjacent(examiner)) + return COMSIG_MOB_CANCEL_CLICKON diff --git a/tgstation.dme b/tgstation.dme index c0821f2df95..a28a8fe69c4 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1773,6 +1773,7 @@ #include "code\datums\quirks\negative_quirks\softspoken.dm" #include "code\datums\quirks\negative_quirks\tin_man.dm" #include "code\datums\quirks\negative_quirks\unstable.dm" +#include "code\datums\quirks\negative_quirks\unusual.dm" #include "code\datums\quirks\neutral_quirks\bald.dm" #include "code\datums\quirks\neutral_quirks\colorist.dm" #include "code\datums\quirks\neutral_quirks\deviant_tastes.dm"