diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 51ddf7aeccb..04b6a733880 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -129,15 +129,15 @@ /obj/item/toy/crayon/proc/check_empty(mob/user) // When eating a crayon, check_empty() can be called twice producing // two messages unless we check for being deleted first - if(!qdeleted(src)) - . = TRUE + if(qdeleted(src)) + return TRUE . = FALSE // -1 is unlimited charges if(charges == -1) . = FALSE else if(!charges_left) - user << "There is no more of [src.name] \ + user << "There is no more of \the [src.name] \ left!" if(self_contained) qdel(src) @@ -380,6 +380,8 @@ if(edible && (M == user)) user << "You take a bite of the [src.name]. Delicious!" var/eaten = use_charges(5) + if(check_empty(user)) //Prevents divsion by zero + return var/fraction = min(eaten / reagents.total_volume, 1) reagents.reaction(M, INGEST, fraction * volume_multiplier) reagents.trans_to(M, eaten, volume_multiplier)