From 5d4513b13a0f040cdef7fe13c4efd4d1444f1fc6 Mon Sep 17 00:00:00 2001 From: Hekto61 <94539922+Hekto61@users.noreply.github.com> Date: Thu, 22 May 2025 20:35:31 +0300 Subject: [PATCH] Belly rub action --- .../code/datums/mood_events/needs_events.dm | 6 ++++++ .../mob/living/carbon/carbon_defense.dm | 19 ++++++++++++++++++ .../mob/living/carbon/human/species.dm | 20 +++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/GainStation13/code/datums/mood_events/needs_events.dm b/GainStation13/code/datums/mood_events/needs_events.dm index 102a3c2d9b..68d8532721 100644 --- a/GainStation13/code/datums/mood_events/needs_events.dm +++ b/GainStation13/code/datums/mood_events/needs_events.dm @@ -11,3 +11,9 @@ description = "I love headpats so much!\n" mood_change = 3 timeout = 2 MINUTES + + +/datum/mood_event/bellyrub_good + description = "I love bellly massage so much!\n" + mood_change = 3 + timeout = 2 MINUTES diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 936f8182a6..27409c65c6 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -294,6 +294,25 @@ target_message = "[M] boops your nose.") playsound(src, 'sound/items/Nose_boop.ogg', 50, 0) + //GS13 EDIT Belly rubs start + else if(M.zone_selected == BODY_ZONE_PRECISE_GROIN) + if(ishuman(src)) + var/mob/living/carbon/human/H = src + M.visible_message("[M] rubs [H]'s belly to make [p_them()] feel better!", \ + "You rub [H]'s belly to make [p_them()] feel less stuffed!") + H.reduce_fullness(rand(4,16), FALSE) + if(!HAS_TRAIT(H, TRAIT_ROBOTIC_ORGANISM)) + H.adjust_nutrition(rand(-5,-1)) + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "bellyrub_good", /datum/mood_event/bellyrub_good) + if(prob(5)) + M.visible_message(" Belly rubbing causes [H] to belch!", \ + "Your belly massage made [p_them()] to burp!") + H.emote(pick("belch","burp")) + if(prob(10)) + H.emote("gurgle") + M.DelayNextAction(100) + //GS13 EDIT Belly rubs end + else if(check_zone(M.zone_selected) == BODY_ZONE_HEAD) var/datum/species/S S = dna.species diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index ebce4913d9..5b5e50b92e 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1730,6 +1730,26 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return /datum/species/proc/help(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) + //GS13 edit start belly rub + if(user.zone_selected == BODY_ZONE_PRECISE_GROIN && user.health >= 0 && target == user) + user.visible_message("[user] rubs their belly!", \ + "You rub your belly!") + user.reduce_fullness(rand(4,16), FALSE) + if(!HAS_TRAIT(user, TRAIT_ROBOTIC_ORGANISM)) + user.adjust_nutrition(rand(-5,-1)) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "bellyrub_good", /datum/mood_event/bellyrub_good) + if(prob(5)) + user.visible_message("While [user] rubs their belly, the spontanious belch comes out!", \ + "Your belly massage made you to burp!") + user.emote(pick("belch","burp")) + if(prob(10)) + user.emote("gurgle") + user.DelayNextAction(100) + playsound(user, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + return FALSE + + //GS13 edit end belly rub + if(target.health >= 0 && !HAS_TRAIT(target, TRAIT_FAKEDEATH)) target.help_shake_act(user) if(target != user)