diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 9aed3244949..8b5420497d2 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -980,13 +980,15 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump, return 1 /mob/living/carbon/proc/forceFed(var/obj/item/weapon/reagent_containers/food/toEat, mob/user, fullness) - if (fullness <= (550 * (1 + overeatduration / 1000))) - visible_message("[user] attempts to force [src] to [toEat.apply_method] [toEat].") + if(fullness <= (550 * (1 + overeatduration / 1000))) + if(!toEat.instant_application) + visible_message("[user] attempts to force [src] to [toEat.apply_method] [toEat].") else visible_message("[user] cannot force anymore of [toEat] down [src]'s throat.") return 0 - if(!do_mob(user, src)) - return 0 + if(!toEat.instant_application) + if(!do_mob(user, src)) + return 0 forceFedAttackLog(toEat, user) visible_message("[user] forces [src] to [toEat.apply_method] [toEat].") return 1 diff --git a/code/modules/reagents/newchem/patch.dm b/code/modules/reagents/newchem/patch.dm index a7aae47d8de..793b6f8ae6f 100644 --- a/code/modules/reagents/newchem/patch.dm +++ b/code/modules/reagents/newchem/patch.dm @@ -10,37 +10,42 @@ apply_method = "apply" transfer_efficiency = 0.5 //patches aren't as effective at getting chemicals into the bloodstream. -/obj/item/weapon/reagent_containers/food/pill/patch/New() - ..() - icon_state = "bandaid" - /obj/item/weapon/reagent_containers/food/pill/patch/afterattack(obj/target, mob/user , proximity) return // thanks inheritance again /obj/item/weapon/reagent_containers/food/pill/patch/styptic name = "healing patch" desc = "Helps with brute injuries." - New() - ..() - reagents.add_reagent("styptic_powder", 40) + icon_state = "bandaid_brute" + instant_application = 1 + +/obj/item/weapon/reagent_containers/food/pill/patch/styptic/New() + ..() + reagents.add_reagent("styptic_powder", 40) /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf name = "burn patch" desc = "Helps with burn injuries." - New() - ..() - reagents.add_reagent("silver_sulfadiazine", 40) + icon_state = "bandaid_burn" + instant_application = 1 + +/obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf/New() + ..() + reagents.add_reagent("silver_sulfadiazine", 40) /obj/item/weapon/reagent_containers/food/pill/patch/synthflesh name = "syntheflesh patch" desc = "Helps with burn injuries." - New() - ..() - reagents.add_reagent("synthflesh", 20) + instant_application = 1 + +/obj/item/weapon/reagent_containers/food/pill/patch/synthflesh/New() + ..() + reagents.add_reagent("synthflesh", 20) /obj/item/weapon/reagent_containers/food/pill/patch/nicotine name = "nicotine patch" desc = "Helps temporarily curb the cravings of nicotine dependency." - New() - ..() - reagents.add_reagent("nicotine", 20) \ No newline at end of file + +/obj/item/weapon/reagent_containers/food/pill/patch/nicotine/New() + ..() + reagents.add_reagent("nicotine", 20) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food.dm b/code/modules/reagents/reagent_containers/food.dm index 8caaa5ff653..50a3ecd1a1d 100644 --- a/code/modules/reagents/reagent_containers/food.dm +++ b/code/modules/reagents/reagent_containers/food.dm @@ -10,6 +10,7 @@ var/apply_type = INGEST var/apply_method = "swallow" var/transfer_efficiency = 1.0 + var/instant_application = 0 //if we want to bypass the forcedfeed delay /obj/item/weapon/reagent_containers/food/New() ..() diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 332375dae8d..610abd27950 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -248,6 +248,12 @@ else trans = src.reagents.trans_to(target, amount_per_transfer_from_this) to_chat(user, "\blue You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units.") + if(istype(target, /obj/item/weapon/reagent_containers/food/pill/patch)) + var/obj/item/weapon/reagent_containers/food/pill/patch/P = target + if(P.instant_application) + to_chat(user, "You break the medical seal on the [P]!") + P.instant_application = 0 + if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT) mode = SYRINGE_DRAW update_icon() diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 54ed8f57927..ccf3bad52b5 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ