From 99d68540bc6a786aed27ac5020c4403fbeb245f3 Mon Sep 17 00:00:00 2001 From: MisterLayne Date: Tue, 26 Sep 2017 17:12:47 -0400 Subject: [PATCH] Fixes Glitched Synthetic Syring --- .../reagents/reagent_containers/syringes.dm | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 536a069474b..c6f89fff078 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -58,7 +58,7 @@ return if(mode == SYRINGE_BROKEN) - user << "This syringe is broken!" + to_chat(user, "This syringe is broken!") return if(user.a_intent == I_HURT && ismob(target)) @@ -70,26 +70,31 @@ switch(mode) if(SYRINGE_DRAW) if(!reagents.get_free_space()) - user << "The syringe is full." + to_chat(user, "The syringe is full.") mode = SYRINGE_INJECT return if(ismob(target))//Blood! if(reagents.has_reagent("blood")) - user << "There is already a blood sample in this syringe." + to_chat(user, "There is already a blood sample in this syringe.") return + if(istype(target, /mob/living/carbon)) var/amount = reagents.get_free_space() var/mob/living/carbon/T = target if(!T.dna) - user << "You are unable to locate any blood. (To be specific, your target seems to be missing their DNA datum)." + to_chat(user, "You are unable to locate any blood. (To be specific, your target seems to be missing their DNA datum).") return if(NOCLONE in T.mutations) //target done been et, no more blood in him - user << "You are unable to locate any blood." + to_chat(user, "You are unable to locate any blood." + return + + if(T.isSynthetic()) + to_chat(user, "You can't draw blood from a synthetic!") return if(drawing) - user << "You are already drawing blood from [T.name]." + to_chat(user, "You are already drawing blood from [T.name].") return var/datum/reagent/B @@ -117,50 +122,51 @@ reagents.update_total() on_reagent_change() reagents.handle_reactions() - user << "You take a blood sample from [target]." + to_chat(user, "You take a blood sample from [target].") for(var/mob/O in viewers(4, user)) O.show_message("[user] takes a blood sample from [target].", 1) else //if not mob if(!target.reagents.total_volume) - user << "[target] is empty." + to_chat(user, "[target] is empty.") return if(!target.is_open_container() && !istype(target, /obj/structure/reagent_dispensers) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/weapon/reagent_containers/food)) - user << "You cannot directly remove reagents from this object." + to_chat(user, "You cannot directly remove reagents from this object.") return var/trans = target.reagents.trans_to_obj(src, amount_per_transfer_from_this) - user << "You fill the syringe with [trans] units of the solution." + to_chat(user, "You fill the syringe with [trans] units of the solution.") update_icon() + if(!reagents.get_free_space()) mode = SYRINGE_INJECT update_icon() if(SYRINGE_INJECT) if(!reagents.total_volume) - user << "The syringe is empty." + to_chat(user, "The syringe is empty.") mode = SYRINGE_DRAW return if(istype(target, /obj/item/weapon/implantcase/chem)) return if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/smokable/cigarette) && !istype(target, /obj/item/weapon/storage/fancy/cigarettes)) - user << "You cannot directly fill this object." + to_chat(user, "You cannot directly fill this object.") return if(!target.reagents.get_free_space()) - user << "[target] is full." + to_chat(user, "[target] is full.") return var/mob/living/carbon/human/H = target if(istype(H)) var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting) if(!affected) - user << "\The [H] is missing that limb!" + to_chat(user, "\The [H] is missing that limb!") return else if(affected.robotic >= ORGAN_ROBOT) - user << "You cannot inject a robotic limb." + to_chat(user, "You cannot inject a robotic limb.") return if(ismob(target) && target != user) @@ -200,9 +206,9 @@ else trans = reagents.trans_to_obj(target, amount_per_transfer_from_this) if(trans) - user << "You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units." + to_chat(user, "You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units.") else - user << "The syringe is empty." + to_chat(user, "The syringe is empty.") if (reagents.total_volume <= 0 && mode == SYRINGE_INJECT) mode = SYRINGE_DRAW update_icon() @@ -245,7 +251,7 @@ var/obj/item/organ/external/affecting = H.get_organ(target_zone) if (!affecting || affecting.is_stump()) - user << "They are missing that limb!" + to_chat(user, "They are missing that limb!") return var/hit_area = affecting.name @@ -302,10 +308,10 @@ /obj/item/weapon/reagent_containers/syringe/ld50_syringe/afterattack(obj/target, mob/user, flag) if(mode == SYRINGE_DRAW && ismob(target)) // No drawing 50 units of blood at once - user << "This needle isn't designed for drawing blood." + to_chat(user, "This needle isn't designed for drawing blood.") return if(user.a_intent == "hurt" && ismob(target)) // No instant injecting - user << "This syringe is too big to stab someone with it." + to_chat(user, "This syringe is too big to stab someone with it.") ..() ////////////////////////////////////////////////////////////////////////////////