From 170a38a3a72c1034bf64781177809612de2bd239 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Wed, 17 Jun 2020 02:22:56 +0300 Subject: [PATCH] Porting sutures and meshes from /TG/ (#12532) * Porting sutures and meshes from /TG/ * Recipes fix --- .../lavaland_surface_biodome_winter.dmm | 4 +- _maps/RandomRuins/SpaceRuins/TheDerelict.dmm | 8 +- _maps/RandomRuins/SpaceRuins/oldstation.dmm | 2 +- _maps/RandomZLevels/away_mission/wildwest.dmm | 2 +- _maps/map_files/CogStation/CogStation.dmm | 4 +- .../map_files/Deltastation/DeltaStation2.dmm | 20 +-- _maps/map_files/KiloStation/KiloStation.dmm | 10 +- _maps/map_files/LambdaStation/lambda.dmm | 16 +-- _maps/map_files/MetaStation/MetaStation.dmm | 22 ++-- _maps/map_files/PubbyStation/PubbyStation.dmm | 6 +- _maps/map_files/generic/CentCom.dmm | 8 +- _maps/shuttles/emergency_meta.dmm | 4 +- _maps/shuttles/emergency_russiafightpit.dmm | 4 +- _maps/shuttles/infiltrator_basic.dmm | 4 +- code/_globalvars/lists/maintenance_loot.dm | 2 +- .../crafting/recipes/recipes_misc.dm | 10 +- .../game/objects/effects/spawners/lootdrop.dm | 2 +- code/game/objects/items/stacks/medical.dm | 122 +++++++++++++++++- code/game/objects/items/storage/boxes.dm | 4 +- code/game/objects/items/storage/firstaid.dm | 20 +-- .../objects/structures/ghost_role_spawners.dm | 2 +- code/modules/holiday/halloween/bartholomew.dm | 2 +- .../chemistry/reagents/medicine_reagents.dm | 4 +- 23 files changed, 201 insertions(+), 81 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm index f48801c199..b71b6838b0 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm @@ -3,9 +3,9 @@ /turf/template_noop, /area/template_noop) "ac" = ( -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/mesh, /obj/structure/table, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/plating, /area/ruin/powered/snow_biodome) "ad" = ( diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm index 1464dd9529..ac1d1ca4d8 100644 --- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm @@ -2368,7 +2368,7 @@ /turf/open/floor/plasteel/airless/white, /area/ruin/space/derelict/medical) "hW" = ( -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/plasteel/airless/white, /area/ruin/space/derelict/medical) "hX" = ( @@ -2610,13 +2610,13 @@ /turf/open/floor/plasteel/airless/white, /area/ruin/space/derelict/medical) "iM" = ( -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/plasteel/airless{ icon_state = "damaged2" }, /area/ruin/space/derelict/medical) "iN" = ( -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/mesh, /turf/open/floor/plasteel/airless{ icon_state = "damaged3" }, @@ -2866,7 +2866,7 @@ /turf/open/floor/plasteel/airless/white, /area/ruin/space/derelict/medical) "jB" = ( -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/mesh, /turf/open/floor/plasteel/airless/white, /area/ruin/space/derelict/medical) "jC" = ( diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 89e2c553b9..343c79a895 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -843,7 +843,7 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "cx" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) diff --git a/_maps/RandomZLevels/away_mission/wildwest.dmm b/_maps/RandomZLevels/away_mission/wildwest.dmm index 064be0907a..76c59a8e1d 100644 --- a/_maps/RandomZLevels/away_mission/wildwest.dmm +++ b/_maps/RandomZLevels/away_mission/wildwest.dmm @@ -1610,7 +1610,7 @@ /turf/open/floor/plasteel/cafeteria, /area/awaymission/wildwest/mines) "fi" = ( -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /obj/effect/turf_decal/tile/blue{ dir = 4 }, diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index 5025a99ec4..ce96e027ef 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -15264,8 +15264,8 @@ }, /obj/item/stack/medical/gauze, /obj/item/reagent_containers/blood, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 5a630f05ef..8a4b5f8130 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -77360,8 +77360,8 @@ "cBx" = ( /obj/structure/rack, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/item/reagent_containers/syringe/epinephrine{ pixel_x = -3; pixel_y = 3 @@ -85495,8 +85495,8 @@ "cPs" = ( /obj/structure/table, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/effect/turf_decal/tile/blue{ dir = 4 }, @@ -91727,8 +91727,8 @@ "cZH" = ( /obj/structure/table/glass, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/machinery/camera{ c_tag = "Medbay - Sleepers"; name = "medbay camera"; @@ -94026,8 +94026,8 @@ "ddp" = ( /obj/structure/table/glass, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/structure/sign/warning/nosmoking{ pixel_y = 32 }, @@ -101144,8 +101144,8 @@ "dqj" = ( /obj/structure/table, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 1c3741c18e..b205e7c324 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -25243,7 +25243,7 @@ pixel_y = 4 }, /obj/item/lighter, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/plasteel/dark, /area/maintenance/port) "aPO" = ( @@ -27105,8 +27105,8 @@ "aSy" = ( /obj/structure/table, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture{ pixel_x = 4 }, /obj/item/storage/firstaid/regular, @@ -55554,10 +55554,10 @@ /obj/structure/table, /obj/item/storage/firstaid/regular, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/ointment{ +/obj/item/stack/medical/mesh{ pixel_y = 4 }, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm index 901824a5de..825bc3c2aa 100644 --- a/_maps/map_files/LambdaStation/lambda.dmm +++ b/_maps/map_files/LambdaStation/lambda.dmm @@ -16073,11 +16073,11 @@ pixel_y = -1 }, /obj/item/reagent_containers/dropper, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ pixel_x = -2; pixel_y = 6 }, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/mesh, /obj/item/healthanalyzer, /turf/open/floor/plasteel/white, /area/science/explab) @@ -34517,8 +34517,8 @@ /area/gateway) "bmm" = ( /obj/structure/rack, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture, /obj/item/reagent_containers/syringe/charcoal, /obj/item/reagent_containers/syringe/epinephrine{ pixel_x = -1; @@ -64186,8 +64186,8 @@ pixel_y = -32 }, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/structure/table/glass, /turf/open/floor/plating, /area/medical/abandoned) @@ -75822,11 +75822,11 @@ /obj/item/folder, /obj/item/folder, /obj/structure/table/reinforced, -/obj/item/stack/medical/ointment{ +/obj/item/stack/medical/mesh{ pixel_x = 3; pixel_y = -2 }, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ pixel_x = -3; pixel_y = 2 }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index e8af6a21b5..c08670c2c0 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -4919,11 +4919,11 @@ /area/maintenance/solars/port/fore) "ajj" = ( /obj/structure/table, -/obj/item/stack/medical/ointment{ +/obj/item/stack/medical/mesh{ pixel_x = 3; pixel_y = -2 }, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ pixel_x = -3; pixel_y = 2 }, @@ -46804,8 +46804,8 @@ /area/bridge/showroom/corporate) "bOG" = ( /obj/structure/rack, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture, /obj/item/reagent_containers/syringe/charcoal, /obj/item/reagent_containers/syringe/epinephrine{ pixel_x = -1; @@ -52251,8 +52251,8 @@ "cap" = ( /obj/structure/table, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -58829,11 +58829,11 @@ pixel_y = -1 }, /obj/item/reagent_containers/dropper, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ pixel_x = -2; pixel_y = 6 }, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/mesh, /obj/item/healthanalyzer, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -60419,9 +60419,9 @@ /obj/effect/decal/cleanable/blood/gibs/limb, /obj/structure/rack, /obj/item/storage/firstaid/regular, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/item/clothing/glasses/hud/health, /turf/open/floor/plating, /area/maintenance/starboard/aft) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index fabb2b7217..18d1b115a4 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -34525,8 +34525,8 @@ /area/maintenance/department/engine) "bBY" = ( /obj/structure/closet/crate/medical, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture, /turf/open/floor/plating, /area/maintenance/department/engine) "bBZ" = ( @@ -40238,7 +40238,7 @@ }, /area/maintenance/department/chapel/monastery) "bNF" = ( -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/plasteel/dark, /area/maintenance/department/engine) "bNG" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 66072817f4..f82ba2d735 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -49,7 +49,7 @@ /area/holodeck/rec_center/bunker) "ak" = ( /obj/structure/table, -/obj/item/stack/medical/ointment{ +/obj/item/stack/medical/mesh{ heal_burn = 10 }, /turf/open/floor/holofloor/asteroid, @@ -355,7 +355,7 @@ /area/holodeck/rec_center/lounge) "bc" = ( /obj/structure/table, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ heal_brute = 10 }, /turf/open/floor/holofloor/asteroid, @@ -10568,8 +10568,8 @@ /area/wizard_station) "yD" = ( /obj/structure/table/wood, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /turf/open/floor/engine/cult, /area/wizard_station) "yE" = ( diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm index 8df487714e..cae3139c41 100644 --- a/_maps/shuttles/emergency_meta.dmm +++ b/_maps/shuttles/emergency_meta.dmm @@ -333,8 +333,8 @@ "aT" = ( /obj/structure/table, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/machinery/light{ dir = 4 }, diff --git a/_maps/shuttles/emergency_russiafightpit.dmm b/_maps/shuttles/emergency_russiafightpit.dmm index 65fc7e30a2..206ebc4687 100644 --- a/_maps/shuttles/emergency_russiafightpit.dmm +++ b/_maps/shuttles/emergency_russiafightpit.dmm @@ -365,11 +365,11 @@ /area/shuttle/escape) "bi" = ( /obj/structure/table, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ pixel_x = 5; pixel_y = 5 }, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/mineral/plastitanium, /area/shuttle/escape) "bj" = ( diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm index f5861fab32..42fe684e05 100644 --- a/_maps/shuttles/infiltrator_basic.dmm +++ b/_maps/shuttles/infiltrator_basic.dmm @@ -608,8 +608,8 @@ "bu" = ( /obj/structure/table/reinforced, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/effect/turf_decal/bot_white, /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/medical) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 396eb87723..69d4794e87 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -51,7 +51,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/airlock_painter = 1, /obj/item/stack/cable_coil/random = 4, /obj/item/stack/cable_coil/random/five = 6, - /obj/item/stack/medical/bruise_pack = 1, + /obj/item/stack/medical/suture = 1, /obj/item/stack/rods/ten = 9, /obj/item/stack/rods/twentyfive = 1, /obj/item/stack/rods/fifty = 1, diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index 1ad53aae67..b076407efc 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -124,9 +124,9 @@ category = CAT_MISC subcategory = CAT_TOOL -/datum/crafting_recipe/bruise_pack - name = "Bruise Pack" - result = /obj/item/stack/medical/bruise_pack/one +/datum/crafting_recipe/brute_pack + name = "Suture Pack" + result = /obj/item/stack/medical/suture/one time = 1 reqs = list(/obj/item/stack/medical/gauze = 1, /datum/reagent/medicine/styptic_powder = 10) @@ -134,8 +134,8 @@ subcategory = CAT_TOOL /datum/crafting_recipe/burn_pack - name = "Burn Ointment" - result = /obj/item/stack/medical/ointment/one + name = "Regenerative Mesh" + result = /obj/item/stack/medical/mesh/one time = 1 reqs = list(/obj/item/stack/medical/gauze = 1, /datum/reagent/medicine/silver_sulfadiazine = 10) diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 5b2006b6f3..57b25a8901 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -491,7 +491,7 @@ /obj/item/kitchen/knife = 5, /obj/item/screwdriver = 5, /obj/item/crowbar/red = 1, //Dont you need a crowbar to open this? - /obj/item/stack/medical/bruise_pack = 3, + /obj/item/stack/medical/suture = 3, /obj/item/reagent_containers/food/drinks/bottle/vodka = 2, /obj/item/radio = 5, /obj/item/flashlight = 4, diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 98bf02906b..e6403e83cc 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -13,18 +13,33 @@ novariants = FALSE item_flags = NOBLUDGEON var/self_delay = 50 + var/other_delay = 0 + var/repeating = FALSE /obj/item/stack/medical/attack(mob/living/M, mob/user) . = ..() + try_heal(M, user) + + +/obj/item/stack/medical/proc/try_heal(mob/living/M, mob/user, silent = FALSE) if(!M.can_inject(user, TRUE)) return if(M == user) - user.visible_message("[user] starts to apply \the [src] on [user.p_them()]self...", "You begin applying \the [src] on yourself...") + if(!silent) + user.visible_message("[user] starts to apply \the [src] on [user.p_them()]self...", "You begin applying \the [src] on yourself...") if(!do_mob(user, M, self_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject, user, TRUE))) return + else if(other_delay) + if(!silent) + user.visible_message("[user] starts to apply \the [src] on [M].", "You begin applying \the [src] on [M]...") + if(!do_mob(user, M, other_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject, user, TRUE))) + return + if(heal(M, user)) log_combat(user, M, "healed", src.name) use(1) + if(repeating && amount > 0) + try_heal(M, user, TRUE) /obj/item/stack/medical/proc/heal(mob/living/M, mob/user) @@ -174,3 +189,108 @@ /obj/item/stack/medical/ointment/suicide_act(mob/living/user) user.visible_message("[user] is squeezing \the [src] into [user.p_their()] mouth! [user.p_do(TRUE)]n't [user.p_they()] know that stuff is toxic?") return TOXLOSS + +/obj/item/stack/medical/suture + name = "suture" + desc = "Sterile sutures used to seal up cuts and lacerations." + gender = PLURAL + singular_name = "suture" + icon_state = "suture" + self_delay = 30 + other_delay = 10 + amount = 15 + max_amount = 15 + repeating = TRUE + var/heal_brute = 10 + grind_results = list(/datum/reagent/medicine/spaceacillin = 2) + +/obj/item/stack/medical/suture/one + amount = 1 + +/obj/item/stack/medical/suture/heal(mob/living/M, mob/user) + . = ..() + if(M.stat == DEAD) + to_chat(user, "[M] is dead! You can not help [M.p_them()].") + return + if(iscarbon(M)) + return heal_carbon(M, user, heal_brute, 0) + if(isanimal(M)) + var/mob/living/simple_animal/critter = M + if (!(critter.healable)) + to_chat(user, "You cannot use \the [src] on [M]!") + return FALSE + else if (critter.health == critter.maxHealth) + to_chat(user, "[M] is at full health.") + return FALSE + user.visible_message("[user] applies \the [src] on [M].", "You apply \the [src] on [M].") + M.heal_bodypart_damage(heal_brute) + return TRUE + + to_chat(user, "You can't heal [M] with the \the [src]!") + +/obj/item/stack/medical/mesh + name = "regenerative mesh" + desc = "A bacteriostatic mesh used to dress burns." + gender = PLURAL + singular_name = "regenerative mesh" + icon_state = "regen_mesh" + self_delay = 30 + other_delay = 10 + amount = 15 + max_amount = 15 + repeating = TRUE + var/heal_burn = 10 + var/is_open = TRUE ///This var determines if the sterile packaging of the mesh has been opened. + grind_results = list(/datum/reagent/medicine/spaceacillin = 2) + +/obj/item/stack/medical/mesh/one + amount = 1 + +/obj/item/stack/medical/mesh/Initialize() + . = ..() + if(amount == max_amount) //only seal full mesh packs + is_open = FALSE + update_icon() + +/obj/item/stack/medical/mesh/update_icon_state() + if(!is_open) + icon_state = "regen_mesh_closed" + else + return ..() + +/obj/item/stack/medical/mesh/heal(mob/living/M, mob/user) + . = ..() + if(M.stat == DEAD) + to_chat(user, "[M] is dead! You can not help [M.p_them()].") + return + if(iscarbon(M)) + return heal_carbon(M, user, 0, heal_burn) + to_chat(user, "You can't heal [M] with the \the [src]!") + + +/obj/item/stack/medical/mesh/try_heal(mob/living/M, mob/user, silent = FALSE) + if(!is_open) + to_chat(user, "You need to open [src] first.") + return + . = ..() + +/obj/item/stack/medical/mesh/AltClick(mob/living/user) + if(!is_open) + to_chat(user, "You need to open [src] first.") + return + . = ..() + +/obj/item/stack/medical/mesh/attack_hand(mob/user) + if(!is_open & user.get_inactive_held_item() == src) + to_chat(user, "You need to open [src] first.") + return + . = ..() + +/obj/item/stack/medical/mesh/attack_self(mob/user) + if(!is_open) + is_open = TRUE + to_chat(user, "You open the sterile mesh package.") + update_icon() + playsound(src, 'sound/items/poster_ripped.ogg', 20, TRUE) + return + . = ..() diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 41c5204bdc..08b5f18ead 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -745,8 +745,8 @@ ////// /obj/item/storage/box/hug/medical/PopulateContents() - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/ointment(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/mesh(src) new /obj/item/reagent_containers/hypospray/medipen(src) // Clown survival box diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index ba2746844c..e082c15741 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -37,10 +37,10 @@ if(empty) return new /obj/item/stack/medical/gauze(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/stack/medical/ointment(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/mesh(src) + new /obj/item/stack/medical/mesh(src) new /obj/item/reagent_containers/hypospray/medipen(src) new /obj/item/healthanalyzer(src) @@ -52,12 +52,12 @@ if(empty) return new /obj/item/stack/medical/gauze(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/stack/medical/ointment(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/mesh(src) + new /obj/item/stack/medical/mesh(src) + new /obj/item/stack/medical/mesh(src) /obj/item/storage/firstaid/fire name = "burn treatment kit" diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 8c9a3636c8..4455c8820d 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -581,7 +581,7 @@ uniform = /obj/item/clothing/under/rank/rnd/scientist shoes = /obj/item/clothing/shoes/laceup id = /obj/item/card/id/away/old/sci - l_pocket = /obj/item/stack/medical/bruise_pack + l_pocket = /obj/item/stack/medical/suture assignedrole = "Ancient Crew" job_description = "Oldstation Crew" diff --git a/code/modules/holiday/halloween/bartholomew.dm b/code/modules/holiday/halloween/bartholomew.dm index 4ef00e29cb..82ac374525 100644 --- a/code/modules/holiday/halloween/bartholomew.dm +++ b/code/modules/holiday/halloween/bartholomew.dm @@ -88,7 +88,7 @@ /obj/item/t_scanner = 5, /obj/item/airlock_painter = 1, /obj/item/stack/cable_coil = 6, - /obj/item/stack/medical/bruise_pack = 1, + /obj/item/stack/medical/suture = 1, /obj/item/stack/rods = 3, /obj/item/stack/sheet/cardboard = 2, /obj/item/stack/sheet/metal = 1, diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index b51e28decf..369c13b2fc 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -250,7 +250,7 @@ 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) + new/obj/item/stack/medical/mesh(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) @@ -336,7 +336,7 @@ 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) + new/obj/item/stack/medical/suture(get_turf(G), reac_volume) G.use(reac_volume) /datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/carbon/M)