From f15d9a953651d584242e39188c3d2d180b9ceacc Mon Sep 17 00:00:00 2001 From: Poojawa Date: Fri, 21 Sep 2018 05:22:39 -0500 Subject: [PATCH] Adds vore based moodlets --- .../mood_events/generic_negative_events.dm | 10 +++++++++ .../mood_events/generic_positive_events.dm | 10 ++++++++- .../code/modules/vore/eating/belly_obj_vr.dm | 21 ++++++++++++++++--- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/modular_citadel/code/datums/mood_events/generic_negative_events.dm b/modular_citadel/code/datums/mood_events/generic_negative_events.dm index cc7e714819..c0f2591656 100644 --- a/modular_citadel/code/datums/mood_events/generic_negative_events.dm +++ b/modular_citadel/code/datums/mood_events/generic_negative_events.dm @@ -9,3 +9,13 @@ description = "A plush I tried to pet had no stuffing...\n" mood_change = -1 timeout = 1200 + +/datum/mood_event/emptypred + description = "I had to let someone out.\n" + mood_change = -2 + timeout = 600 + +/datum/mood_event/emptyprey + description = "It feels quite cold out here.\n" + mood_change = -2 + timeout = 600 \ No newline at end of file diff --git a/modular_citadel/code/datums/mood_events/generic_positive_events.dm b/modular_citadel/code/datums/mood_events/generic_positive_events.dm index 798d77db99..4c581d8184 100644 --- a/modular_citadel/code/datums/mood_events/generic_positive_events.dm +++ b/modular_citadel/code/datums/mood_events/generic_positive_events.dm @@ -23,4 +23,12 @@ /datum/mood_event/orgasm description = "I came!" //funny meme haha mood_change = 3 - timeout = 1000 \ No newline at end of file + timeout = 1000 + +/datum/mood_event/fedpred + description = "I've devoured someone!\n" + mood_change = 3 + +/datum/mood_event/fedprey + description = "It feels quite cozy in here.\n" + mood_change = 3 \ No newline at end of file diff --git a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm index cea77c7adf..6e61359fa9 100644 --- a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm +++ b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm @@ -183,11 +183,16 @@ var/atom/movable/AM = thing if(isliving(AM)) var/mob/living/L = AM + var/mob/living/OW = owner if(L.absorbed && !include_absorbed) continue L.absorbed = FALSE L.stop_sound_channel(CHANNEL_PREYLOOP) L.cure_blind("belly_[REF(src)]") + SEND_SIGNAL(OW, COMSIG_CLEAR_MOOD_EVENT, "fedpred", /datum/mood_event/fedpred) + SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "fedprey", /datum/mood_event/fedprey) + SEND_SIGNAL(OW, COMSIG_ADD_MOOD_EVENT, "emptypred", /datum/mood_event/emptypred) + SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "emptyprey", /datum/mood_event/emptyprey) AM.forceMove(destination) // Move the belly contents into the same location as belly's owner. count++ for(var/mob/M in get_hearers_in_view(5, get_turf(owner))) @@ -218,6 +223,11 @@ var/mob/living/OW = owner ML.stop_sound_channel(CHANNEL_PREYLOOP) ML.cure_blind("belly_[REF(src)]") + SEND_SIGNAL(OW, COMSIG_CLEAR_MOOD_EVENT, "fedpred", /datum/mood_event/fedpred) + SEND_SIGNAL(ML, COMSIG_CLEAR_MOOD_EVENT, "fedprey", /datum/mood_event/fedprey) + SEND_SIGNAL(OW, COMSIG_ADD_MOOD_EVENT, "emptypred", /datum/mood_event/emptypred) + SEND_SIGNAL(ML, COMSIG_ADD_MOOD_EVENT, "emptyprey", /datum/mood_event/emptyprey) + if(ML.absorbed) ML.absorbed = FALSE if(ishuman(M) && ishuman(OW)) @@ -242,7 +252,14 @@ return if (prey.buckled) prey.buckled.unbuckle_mob(prey,TRUE) - + + if(!isbelly(prey.loc)) + SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "fedpred", /datum/mood_event/fedpred) + SEND_SIGNAL(prey, COMSIG_ADD_MOOD_EVENT, "fedprey", /datum/mood_event/fedprey) + else + SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, "emptypred", /datum/mood_event/emptypred) + SEND_SIGNAL(prey, COMSIG_CLEAR_MOOD_EVENT, "emptyprey", /datum/mood_event/emptyprey) + prey.forceMove(src) prey.playsound_local(loc,preyloop,70,0, channel = CHANNEL_PREYLOOP) owner.updateVRPanel() @@ -251,8 +268,6 @@ M.updateVRPanel() M.become_blind("belly_[REF(src)]") - - // Setup the autotransfer checks if needed if(transferlocation && autotransferchance > 0) addtimer(CALLBACK(src, /obj/belly/.proc/check_autotransfer, prey), autotransferwait)