Porting sutures and meshes from /TG/ (#12532)

* Porting sutures and meshes from /TG/

* Recipes fix
This commit is contained in:
SmArtKar
2020-06-17 02:22:56 +03:00
committed by GitHub
parent f6a4e26e91
commit 170a38a3a7
23 changed files with 201 additions and 81 deletions
@@ -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" = (
+4 -4
View File
@@ -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" = (
+1 -1
View File
@@ -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)
@@ -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
},
+2 -2
View File
@@ -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
},
+10 -10
View File
@@ -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
},
+5 -5
View File
@@ -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
},
+8 -8
View File
@@ -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
},
+11 -11
View File
@@ -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)
@@ -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" = (
+4 -4
View File
@@ -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" = (
+2 -2
View File
@@ -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
},
+2 -2
View File
@@ -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" = (
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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,
@@ -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)
@@ -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,
+121 -1
View File
@@ -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("<span class='notice'>[user] starts to apply \the [src] on [user.p_them()]self...</span>", "<span class='notice'>You begin applying \the [src] on yourself...</span>")
if(!silent)
user.visible_message("<span class='notice'>[user] starts to apply \the [src] on [user.p_them()]self...</span>", "<span class='notice'>You begin applying \the [src] on yourself...</span>")
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("<span class='notice'>[user] starts to apply \the [src] on [M].</span>", "<span class='notice'>You begin applying \the [src] on [M]...</span>")
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("<span class='suicide'>[user] is squeezing \the [src] into [user.p_their()] mouth! [user.p_do(TRUE)]n't [user.p_they()] know that stuff is toxic?</span>")
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, "<span class='warning'>[M] is dead! You can not help [M.p_them()].</span>")
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, "<span class='warning'>You cannot use \the [src] on [M]!</span>")
return FALSE
else if (critter.health == critter.maxHealth)
to_chat(user, "<span class='notice'>[M] is at full health.</span>")
return FALSE
user.visible_message("<span class='green'>[user] applies \the [src] on [M].</span>", "<span class='green'>You apply \the [src] on [M].</span>")
M.heal_bodypart_damage(heal_brute)
return TRUE
to_chat(user, "<span class='warning'>You can't heal [M] with the \the [src]!</span>")
/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, "<span class='warning'>[M] is dead! You can not help [M.p_them()].</span>")
return
if(iscarbon(M))
return heal_carbon(M, user, 0, heal_burn)
to_chat(user, "<span class='warning'>You can't heal [M] with the \the [src]!</span>")
/obj/item/stack/medical/mesh/try_heal(mob/living/M, mob/user, silent = FALSE)
if(!is_open)
to_chat(user, "<span class='warning'>You need to open [src] first.</span>")
return
. = ..()
/obj/item/stack/medical/mesh/AltClick(mob/living/user)
if(!is_open)
to_chat(user, "<span class='warning'>You need to open [src] first.</span>")
return
. = ..()
/obj/item/stack/medical/mesh/attack_hand(mob/user)
if(!is_open & user.get_inactive_held_item() == src)
to_chat(user, "<span class='warning'>You need to open [src] first.</span>")
return
. = ..()
/obj/item/stack/medical/mesh/attack_self(mob/user)
if(!is_open)
is_open = TRUE
to_chat(user, "<span class='notice'>You open the sterile mesh package.</span>")
update_icon()
playsound(src, 'sound/items/poster_ripped.ogg', 20, TRUE)
return
. = ..()
+2 -2
View File
@@ -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
+10 -10
View File
@@ -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"
@@ -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"
@@ -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,
@@ -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)