diff --git a/code/datums/quirks/negative.dm b/code/datums/quirks/negative.dm index 808f28d88fe..5bdb6854e4b 100644 --- a/code/datums/quirks/negative.dm +++ b/code/datums/quirks/negative.dm @@ -750,6 +750,7 @@ /datum/quirk/bad_touch/proc/uncomfortable_touch() SIGNAL_HANDLER + new /obj/effect/temp_visual/annoyed(quirk_holder.loc) var/datum/component/mood/mood = quirk_holder.GetComponent(/datum/component/mood) if(mood.sanity <= SANITY_NEUTRAL) SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "bad_touch", /datum/mood_event/very_bad_touch) diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index bc09eb7225b..8505730cd56 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -391,6 +391,18 @@ pixel_y = rand(-4,4) animate(src, pixel_y = pixel_y + 32, alpha = 0, time = 25) +/obj/effect/temp_visual/annoyed + name = "annoyed" + icon = 'icons/effects/effects.dmi' + icon_state = "annoyed" + duration = 25 + +/obj/effect/temp_visual/annoyed/Initialize(mapload) + . = ..() + pixel_x = rand(-4,0) + pixel_y = rand(8,12) + animate(src, pixel_y = pixel_y + 16, alpha = 0, time = duration) + /obj/effect/temp_visual/love_heart name = "love heart" icon = 'icons/effects/effects.dmi' diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 59ab12447ab..12dc2a87180 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -450,6 +450,9 @@ null, "You hear a soft patter.", DEFAULT_MESSAGE_RANGE, list(M, src)) to_chat(M, "You give [src] a pat on the head to make [p_them()] feel better!") to_chat(src, "[M] gives you a pat on the head to make you feel better! ") + + if(HAS_TRAIT(src, TRAIT_BADTOUCH)) + to_chat(M, "[src] looks visibly upset as you pat [p_them()] on the head.") else SEND_SIGNAL(src, COMSIG_CARBON_HUGGED, M) @@ -489,6 +492,9 @@ SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/besthug, M) else if (hugger_mood.sanity >= SANITY_DISTURBED) SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/betterhug, M) + + if(HAS_TRAIT(src, TRAIT_BADTOUCH)) + to_chat(M, "[src] looks visibly upset as you hug [p_them()].") AdjustStun(-60) AdjustKnockdown(-60) diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 4df910d6ec5..9a5874954af 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ