diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm
index 94740bd0e1e..63073768eb6 100644
--- a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm
+++ b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm
@@ -18,7 +18,9 @@
spawn(30)//Slight delay so the enemy does not immedietly know the ability was used. Due to lag, this often came before waking up.
H.say(pick("A CORNERED FOX IS MORE DANGEROUS THAN A JACKAL!","HURT ME MOOORRREEE!","IMPRESSIVE!"))
spawn(70)
- reagents.reaction(H, INGEST)
+ if(reagents.total_volume)
+ var/fraction = min(a_transfer/reagents.total_volume, 1)
+ reagents.reaction(H, INGEST, fraction)
reagents.trans_id_to(H, "radium", a_transfer)
H << "You are beginning to feel the after-effect of the injection."
a_boost--
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 9054053d2b5..ee7822b28a7 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -45,44 +45,35 @@
user << "[src] is empty!"
return
- if(reagents && reagents.total_volume)
+ if(istype(M))
if(user.a_intent == "harm")
- if(ismob(M))
- var/R
- M.visible_message("[user] splashes the contents of [src] onto [M]!", \
- "[user] splashes the contents of [src] onto [M]!")
- if(reagents)
- for(var/datum/reagent/A in reagents.reagent_list)
- R += A.id + " ("
- R += num2text(A.volume) + "),"
-
- reagents.reaction(M, TOUCH)
- add_logs(user, M, "splashed", R)
- reagents.clear_reagents()
- return
-
- else if(M == user)
- user << "You swallow a gulp of [src]."
- if(reagents.total_volume)
- reagents.reaction(user, INGEST)
- spawn(5)
- reagents.trans_to(user, 5)
- playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
- return
-
- else if(ismob(M))
- M.visible_message("[user] attempts to feed something to [M].", \
+ var/R
+ M.visible_message("[user] splashes the contents of [src] onto [M]!", \
+ "[user] splashes the contents of [src] onto [M]!")
+ if(reagents)
+ for(var/datum/reagent/A in reagents.reagent_list)
+ R += A.id + " ("
+ R += num2text(A.volume) + "),"
+ reagents.reaction(M, TOUCH)
+ add_logs(user, M, "splashed", R)
+ reagents.clear_reagents()
+ else
+ if(M != user)
+ M.visible_message("[user] attempts to feed something to [M].", \
"[user] attempts to feed something to you.")
- if(!do_mob(user, M)) return
- if(!reagents.total_volume) return // The drink might be empty after the delay, such as by spam-feeding
- M.visible_message("[user] feeds something to [M].", "[user] feeds something to you.")
- add_logs(user, M, "fed", reagentlist(src))
- if(reagents.total_volume)
- reagents.reaction(M, INGEST)
- spawn(5)
- reagents.trans_to(M, 5)
+ if(!do_mob(user, M))
+ return
+ if(!reagents || !reagents.total_volume)
+ return // The drink might be empty after the delay, such as by spam-feeding
+ M.visible_message("[user] feeds something to [M].", "[user] feeds something to you.")
+ add_logs(user, M, "fed", reagentlist(src))
+ else
+ user << "You swallow a gulp of [src]."
+ var/fraction = min(5/reagents.total_volume, 1)
+ reagents.reaction(user, INGEST, fraction)
+ spawn(5)
+ reagents.trans_to(user, 5)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
- return
/obj/item/weapon/reagent_containers/glass/afterattack(obj/target, mob/user, proximity)
if((!proximity) || !check_allowed_items(target,target_self=1)) return