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