diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index cf0e1bdec9..9eb3fcaaea 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -115,6 +115,33 @@ //Tools & Storage// /////////////////// +/datum/crafting_recipe/upgraded_gauze + name = "Improved Gauze" + result = /obj/item/stack/medical/gauze/adv + time = 1 + reqs = list(/obj/item/stack/medical/gauze = 1, + /datum/reagent/space_cleaner/sterilizine = 10) + category = CAT_MISC + subcategory = CAT_TOOL + +/datum/crafting_recipe/bruise_pack + name = "Bruise Pack" + result = /obj/item/stack/medical/bruise_pack + time = 1 + reqs = list(/obj/item/stack/medical/gauze = 1, + /datum/reagent/medicine/styptic_powder = 10) + category = CAT_MISC + subcategory = CAT_TOOL + +/datum/crafting_recipe/burn_pack + name = "Brun Ointment" + result = /obj/item/stack/medical/ointment + time = 1 + reqs = list(/obj/item/stack/medical/gauze = 1, + /datum/reagent/medicine/silver_sulfadiazine = 10) + category = CAT_MISC + subcategory = CAT_TOOL + /datum/crafting_recipe/ghettojetpack name = "Improvised Jetpack" result = /obj/item/tank/jetpack/improvised diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 50e9b94e97..adc4970175 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -100,6 +100,7 @@ if(!H.bleedsuppress && H.bleed_rate) //so you can't stack bleed suppression H.suppress_bloodloss(stop_bleeding) to_chat(user, "You stop the bleeding of [M]!") + H.adjustBruteLoss(-(heal_brute)) return TRUE to_chat(user, "You can not use \the [src] on [M]!") @@ -127,6 +128,12 @@ stop_bleeding = 900 heal_brute = 0 +/obj/item/stack/medical/gauze/adv + name = "sterilized medical gauze" + desc = "A roll of elastic sterilized cloth that is extremely effective at stopping bleeding, heals minor wounds and cleans them." + singular_name = "sterilized medical gauze" + self_delay = 5 + /obj/item/stack/medical/gauze/cyborg custom_materials = null is_cyborg = 1 diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index d9eb1f77a7..e4973dd2d5 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -246,6 +246,13 @@ metabolization_rate = 5 * REAGENTS_METABOLISM overdose_threshold = 50 +/datum/reagent/medicine/silver_sulfadiazine/reaction_obj(obj/O, reac_volume) + if(istype(O, /obj/item/stack/medical/gauze)) + var/obj/item/stack/medical/gauze/G = O + reac_volume = min((reac_volume / 10), G.amount) + new/obj/item/stack/medical/ointment(get_turf(G), reac_volume) + G.use(reac_volume) + /datum/reagent/medicine/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) if(iscarbon(M) && M.stat != DEAD) if(method in list(INGEST, VAPOR, INJECT)) @@ -321,6 +328,12 @@ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) ..() +/datum/reagent/medicine/styptic_powder/reaction_obj(obj/O, reac_volume) + if(istype(O, /obj/item/stack/medical/gauze)) + var/obj/item/stack/medical/gauze/G = O + reac_volume = min((reac_volume / 10), G.amount) + new/obj/item/stack/medical/bruise_pack(get_turf(G), reac_volume) + G.use(reac_volume) /datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-2*REM, 0) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 6dc27dcd9e..5fb27bd074 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1045,6 +1045,14 @@ // +20% success propability on each step, useful while operating in less-than-perfect conditions ..() +/datum/reagent/space_cleaner/sterilizine/reaction_obj(obj/O, reac_volume) + if(istype(O, /obj/item/stack/medical/gauze)) + var/obj/item/stack/medical/gauze/G = O + reac_volume = min((reac_volume / 10), G.amount) + new/obj/item/stack/medical/gauze/adv(get_turf(G), reac_volume) + G.use(reac_volume) + + /datum/reagent/iron name = "Iron" description = "Pure iron is a metal."