diff --git a/modular_citadel/code/datums/mood_events/generic_negative_events.dm b/modular_citadel/code/datums/mood_events/generic_negative_events.dm new file mode 100644 index 0000000000..cc7e714819 --- /dev/null +++ b/modular_citadel/code/datums/mood_events/generic_negative_events.dm @@ -0,0 +1,11 @@ +// Citadel-specific negative moodlets + +/datum/mood_event/plushjack + description = "I have butchered a plush recently.\n" + mood_change = -1 + timeout = 1200 + +/datum/mood_event/plush_nostuffing + description = "A plush I tried to pet had no stuffing...\n" + mood_change = -1 + timeout = 1200 diff --git a/modular_citadel/code/datums/mood_events/generic_positive_events.dm b/modular_citadel/code/datums/mood_events/generic_positive_events.dm new file mode 100644 index 0000000000..40df233fbf --- /dev/null +++ b/modular_citadel/code/datums/mood_events/generic_positive_events.dm @@ -0,0 +1,21 @@ +// Citadel-specific positive moodlets + +/datum/mood_event/headpat + description = "Headpats are nice.\n" + mood_change = 2 + timeout = 1200 + +/datum/mood_event/hugbox + description = "I hugged a box of hugs recently.\n" + mood_change = 1 + timeout = 1200 + +/datum/mood_event/plushpet + description = "I pet a plush recently.\n" + mood_change = 1 + timeout = 3000 + +/datum/mood_event/plushplay + description = "I've played with plushes recently.\n" + mood_change = 3 + timeout = 3000 diff --git a/modular_citadel/code/datums/mood_events/moodular.dm b/modular_citadel/code/datums/mood_events/moodular.dm new file mode 100644 index 0000000000..b764c0027e --- /dev/null +++ b/modular_citadel/code/datums/mood_events/moodular.dm @@ -0,0 +1,42 @@ +// Modular stuff to use with Citadel-specific moods. + +// box of hugs +/obj/item/storage/box/hug/attack_self(mob/user) + . = ..() + GET_COMPONENT_FROM(mood, /datum/component/mood, user) + if(mood) + mood.add_event("hugbox", /datum/mood_event/hugbox) + +// headpats (IMPORTANT) +/mob/living/carbon/help_shake_act(mob/living/carbon/M) + . = ..() + GET_COMPONENT_FROM(mood, /datum/component/mood, src) + if(mood) + mood.add_event("headpat", /datum/mood_event/headpat) + +// plush petting +/obj/item/toy/plush/attack_self(mob/user) + . = ..() + if(stuffed || grenade) + GET_COMPONENT_FROM(mood, /datum/component/mood, user) + if(mood) + mood.add_event("plushpet", /datum/mood_event/plushpet) + else + GET_COMPONENT_FROM(mood, /datum/component/mood, user) + if(mood) + mood.add_event("plush_nostuffing", /datum/mood_event/plush_nostuffing) + +// Jack the Ripper starring plush +/obj/item/toy/plush/attackby(obj/item/I, mob/living/user, params) + . = ..() + if(I.is_sharp()) + if(!grenade) + GET_COMPONENT_FROM(mood, /datum/component/mood, user) + if(mood) + mood.add_event("plushjack", /datum/mood_event/plushjack) + +// plush playing (plush-on-plush action) + if(istype(I, /obj/item/toy/plush)) + GET_COMPONENT_FROM(mood, /datum/component/mood, user) + if(mood) + mood.add_event("plushplay", /datum/mood_event/plushplay) diff --git a/tgstation.dme b/tgstation.dme index 37d2ae9cac..344b7926d6 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2603,6 +2603,9 @@ #include "modular_citadel\code\controllers\subsystem\shuttle.dm" #include "modular_citadel\code\datums\uplink_items_cit.dm" #include "modular_citadel\code\datums\components\material_container.dm" +#include "modular_citadel\code\datums\mood_events\generic_negative_events.dm" +#include "modular_citadel\code\datums\mood_events\generic_positive_events.dm" +#include "modular_citadel\code\datums\mood_events\moodular.dm" #include "modular_citadel\code\datums\mutations\hulk.dm" #include "modular_citadel\code\datums\status_effects\debuffs.dm" #include "modular_citadel\code\datums\traits\neutral.dm"