From 35aecac620471e4eabb7f0c2516d99998d93065e Mon Sep 17 00:00:00 2001 From: Artur Date: Thu, 20 Feb 2020 12:50:25 +0200 Subject: [PATCH] Disgust mood for bloodsuckers being disgusted, and blood bag inneficency --- .../mood_events/generic_negative_events.dm | 5 ++++ .../bloodsucker/bloodsucker_life.dm | 1 + .../reagents/reagent_containers/blood_pack.dm | 24 ++++++++++--------- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 81ee5c3989..1464927c3a 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -243,6 +243,11 @@ description = "I have been scorched by the unforgiving rays of the sun.\n" mood_change = -6 timeout = 15 MINUTES + +/datum/mood_event/bloodsucker_disgust + description = "Something I recently ate was horrifyingly disgusting.\n" + mood_change = -5 + timeout = 5 MINUTES /datum/mood_event/nanite_sadness description = "+++++++HAPPINESS SUPPRESSION+++++++\n" diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 4a4e518261..8466b7755d 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -360,4 +360,5 @@ C.Stun(30) //C.Dizzy(50) foodInGut = 0 + SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "vampdisgust", /datum/mood_event/bloodsucker_disgust) sickphase ++ diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 2f5fb067ea..fcf5f85ffb 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -107,25 +107,27 @@ else return ..() -/obj/item/reagent_containers/blood/attack(mob/M, mob/user, def_zone) +/obj/item/reagent_containers/blood/attack(mob/living/carbon/C, mob/user, def_zone) if(user.a_intent == INTENT_HELP && reagents.total_volume > 0) - if (user != M) - to_chat(user, "You force [M] to drink from the [src]") - user.visible_message("[user] forces [M] to drink from the [src].") - if(!do_mob(user, M, 50)) + if(user != C) + to_chat(user, "You force [C] to drink from the [src]") + user.visible_message("[user] forces [C] to drink from the [src].") + if(!do_mob(user, C, 50)) return else - if(!do_mob(user, M, 10)) + if(!do_mob(user, C, 10)) return + to_chat(user, "You take a sip from the [src].") user.visible_message("[user] puts the [src] up to their mouth.") if(reagents.total_volume <= 0) // Safety: In case you spam clicked the blood bag on yourself, and it is now empty (below will divide by zero) - return - var/gulp_size = 5 + return + var/gulp_size = 3 var/fraction = min(gulp_size / reagents.total_volume, 1) - reagents.reaction(M, INGEST, fraction) //checkLiked(fraction, M) // Blood isn't food, sorry. - reagents.trans_to(M, gulp_size) - playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) + reagents.reaction(C, INGEST, fraction) //checkLiked(fraction, M) // Blood isn't food, sorry. + reagents.trans_to(C, gulp_size) + reagents.remove_reagent(src, 2) //Inneficency, so hey, IVs are usefull. + playsound(C.loc,'sound/items/drink.ogg', rand(10, 50), 1) ..() /obj/item/reagent_containers/blood/bluespace