Merge pull request #12787 from CameronWoof/advanced-sutures-and-mesh
Ports Medicated Sutures and Advanced Regenerative Mesh from TG
@@ -11,6 +11,7 @@
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
full_w_class = WEIGHT_CLASS_TINY
|
||||
resistance_flags = FLAMMABLE
|
||||
grind_results = list(/datum/reagent/cellulose = 10)
|
||||
var/value = 0
|
||||
|
||||
/obj/item/stack/spacecash/Initialize()
|
||||
|
||||
@@ -207,6 +207,16 @@
|
||||
/obj/item/stack/medical/suture/one
|
||||
amount = 1
|
||||
|
||||
/obj/item/stack/medical/suture/medicated
|
||||
name = "medicated suture"
|
||||
icon_state = "suture_purp"
|
||||
desc = "A suture infused with drugs that speed up wound healing of the treated laceration."
|
||||
heal_brute = 15
|
||||
grind_results = list(/datum/reagent/medicine/polypyr = 2)
|
||||
|
||||
/obj/item/stack/medical/suture/one
|
||||
amount = 1
|
||||
|
||||
/obj/item/stack/medical/suture/heal(mob/living/M, mob/user)
|
||||
. = ..()
|
||||
if(M.stat == DEAD)
|
||||
@@ -246,12 +256,30 @@
|
||||
/obj/item/stack/medical/mesh/one
|
||||
amount = 1
|
||||
|
||||
/obj/item/stack/medical/mesh/advanced
|
||||
name = "advanced regenerative mesh"
|
||||
desc = "An advanced mesh made with aloe extracts and sterilizing chemicals, used to treat burns."
|
||||
gender = PLURAL
|
||||
singular_name = "advanced regenerative mesh"
|
||||
icon_state = "aloe_mesh"
|
||||
heal_burn = 15
|
||||
grind_results = list(/datum/reagent/consumable/aloejuice = 1)
|
||||
|
||||
/obj/item/stack/medical/mesh/advanced/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/advanced/update_icon_state()
|
||||
if(!is_open)
|
||||
icon_state = "aloe_mesh_closed"
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/medical/mesh/update_icon_state()
|
||||
if(!is_open)
|
||||
icon_state = "regen_mesh_closed"
|
||||
@@ -294,3 +322,37 @@
|
||||
playsound(src, 'sound/items/poster_ripped.ogg', 20, TRUE)
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/obj/item/stack/medical/aloe
|
||||
name = "aloe cream"
|
||||
desc = "A healing paste you can apply on wounds."
|
||||
|
||||
icon_state = "aloe_paste"
|
||||
self_delay = 20
|
||||
other_delay = 10
|
||||
novariants = TRUE
|
||||
amount = 20
|
||||
max_amount = 20
|
||||
var/heal = 3
|
||||
grind_results = list(/datum/reagent/consumable/aloejuice = 1)
|
||||
|
||||
/obj/item/stack/medical/aloe/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 FALSE
|
||||
if(iscarbon(M))
|
||||
return heal_carbon(M, user, heal, heal)
|
||||
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, heal)
|
||||
return TRUE
|
||||
|
||||
to_chat(user, "<span class='warning'>You can't heal [M] with the \the [src]!</span>")
|
||||
@@ -288,7 +288,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
|
||||
merge_type = /obj/item/stack/sheet/mineral/wood
|
||||
novariants = TRUE
|
||||
material_type = /datum/material/wood
|
||||
grind_results = list(/datum/reagent/carbon = 20)
|
||||
grind_results = list(/datum/reagent/cellulose = 20)
|
||||
walltype = /turf/closed/wall/mineral/wood
|
||||
|
||||
/obj/item/stack/sheet/mineral/wood/attackby(obj/item/W, mob/user, params) // NOTE: sheet_types.dm is where the WOOD stack lives. Maybe move this over there.
|
||||
@@ -350,7 +350,7 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0)
|
||||
resistance_flags = FLAMMABLE
|
||||
merge_type = /obj/item/stack/sheet/mineral/bamboo
|
||||
grind_results = list(/datum/reagent/carbon = 5)
|
||||
grind_results = list(/datum/reagent/cellulose = 10)
|
||||
material_type = /datum/material/bamboo
|
||||
|
||||
/obj/item/stack/sheet/mineral/bamboo/get_main_recipes()
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
amount = 5
|
||||
max_amount = 5
|
||||
resistance_flags = FLAMMABLE
|
||||
grind_results = list(/datum/reagent/cellulose = 5)
|
||||
|
||||
var/list/conferred_embed = EMBED_HARMLESS
|
||||
var/overwrite_existing = FALSE
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
amount = 25
|
||||
max_amount = 25
|
||||
resistance_flags = FLAMMABLE
|
||||
grind_results = list(/datum/reagent/cellulose = 5)
|
||||
|
||||
/obj/item/stack/packageWrap/suicide_act(mob/living/user)
|
||||
user.visible_message("<span class='suicide'>[user] begins wrapping [user.p_them()]self in \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
throwforce = 0
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
grind_results = list(/datum/reagent/cellulose = 10)
|
||||
|
||||
/obj/item/grown/corncob/attackby(obj/item/grown/W, mob/user, params)
|
||||
if(W.get_sharpness())
|
||||
|
||||
@@ -504,3 +504,34 @@
|
||||
prime()
|
||||
if(!QDELETED(src))
|
||||
qdel(src)
|
||||
|
||||
/obj/item/seeds/aloe
|
||||
name = "pack of aloe seeds"
|
||||
desc = "These seeds grow into aloe."
|
||||
icon_state = "seed-aloe"
|
||||
species = "aloe"
|
||||
plantname = "Aloe"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/aloe
|
||||
lifespan = 60
|
||||
endurance = 25
|
||||
maturation = 4
|
||||
production = 4
|
||||
yield = 6
|
||||
growthstages = 5
|
||||
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
|
||||
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.05)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/aloe
|
||||
seed = /obj/item/seeds/aloe
|
||||
name = "aloe"
|
||||
desc = "Cut leaves from the aloe plant."
|
||||
icon_state = "aloe"
|
||||
filling_color = "#90EE90"
|
||||
bitesize_mod = 5
|
||||
foodtype = VEGETABLES
|
||||
juice_results = list(/datum/reagent/consumable/aloejuice = 0)
|
||||
distill_reagent = /datum/reagent/consumable/ethanol/tequila
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/aloe/microwave_act(obj/machinery/microwave/M)
|
||||
new /obj/item/stack/medical/aloe(drop_location(), 2)
|
||||
qdel(src)
|
||||
@@ -16,6 +16,7 @@
|
||||
icon_dead = "towercap-dead"
|
||||
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
|
||||
mutatelist = list(/obj/item/seeds/tower/steel)
|
||||
reagents_add = list(/datum/reagent/cellulose = 0.05)
|
||||
|
||||
/obj/item/seeds/tower/steel
|
||||
name = "pack of steel-cap mycelium"
|
||||
@@ -25,6 +26,7 @@
|
||||
plantname = "Steel Caps"
|
||||
product = /obj/item/grown/log/steel
|
||||
mutatelist = list()
|
||||
reagents_add = list(/datum/reagent/cellulose = 0.05, /datum/reagent/iron = 0.05)
|
||||
rarity = 20
|
||||
|
||||
/obj/item/grown/log
|
||||
|
||||
@@ -157,12 +157,12 @@
|
||||
|
||||
/datum/plant_gene/reagent/polypyr
|
||||
name = "Polypyrylium Oligomers"
|
||||
reagent_id = "polypyr"
|
||||
reagent_id = /datum/reagent/medicine/polypyr
|
||||
rate = 0.15
|
||||
|
||||
/datum/plant_gene/reagent/liquidelectricity
|
||||
name = "Liquid Electricity"
|
||||
reagent_id = "liquidelectricity"
|
||||
reagent_id = /datum/reagent/consumable/liquidelectricity
|
||||
rate = 0.1
|
||||
|
||||
// Various traits affecting the product. Each must be somehow useful.
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
resistance_flags = FLAMMABLE
|
||||
max_integrity = 50
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
grind_results = list(/datum/reagent/cellulose = 3)
|
||||
color = "white"
|
||||
/// What's actually written on the paper.
|
||||
var/info = ""
|
||||
|
||||
@@ -999,3 +999,18 @@
|
||||
glass_name = "glass of bungo juice"
|
||||
glass_desc = "Exotic! You feel like you are on vacation already."
|
||||
value = REAGENT_VALUE_COMMON
|
||||
|
||||
/datum/reagent/consumable/aloejuice
|
||||
name = "Aloe Juice"
|
||||
color = "#A3C48B"
|
||||
description = "A healthy and refreshing juice."
|
||||
taste_description = "vegetable"
|
||||
glass_icon_state = "glass_yellow"
|
||||
glass_name = "glass of aloe juice"
|
||||
glass_desc = "A healthy and refreshing juice."
|
||||
|
||||
/datum/reagent/consumable/aloejuice/on_mob_life(mob/living/M)
|
||||
if(M.getToxLoss() && prob(30))
|
||||
M.adjustToxLoss(-1, 0)
|
||||
..()
|
||||
. = TRUE
|
||||
@@ -2296,3 +2296,9 @@
|
||||
if(data["blood_DNA"])
|
||||
S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
|
||||
|
||||
/datum/reagent/cellulose
|
||||
name = "Cellulose Fibers"
|
||||
description = "A crystaline polydextrose polymer, plants swear by this stuff."
|
||||
reagent_state = SOLID
|
||||
color = "#E6E6DA"
|
||||
taste_mult = 0
|
||||
@@ -318,3 +318,19 @@
|
||||
id = /datum/reagent/medicine/psicodine
|
||||
results = list(/datum/reagent/medicine/psicodine = 5)
|
||||
required_reagents = list( /datum/reagent/medicine/mannitol = 2, /datum/reagent/water = 2, /datum/reagent/impedrezene = 1)
|
||||
|
||||
/datum/chemical_reaction/medsuture
|
||||
required_reagents = list(/datum/reagent/cellulose = 10, /datum/reagent/toxin/formaldehyde = 20, /datum/reagent/medicine/polypyr = 15) //This might be a bit much, reagent cost should be reviewed after implementation.
|
||||
|
||||
/datum/chemical_reaction/medsuture/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/i = 1, i <= created_volume, i++)
|
||||
new /obj/item/stack/medical/suture/medicated(location)
|
||||
|
||||
/datum/chemical_reaction/medmesh
|
||||
required_reagents = list(/datum/reagent/cellulose = 20, /datum/reagent/consumable/aloejuice = 20, /datum/reagent/space_cleaner/sterilizine = 10)
|
||||
|
||||
/datum/chemical_reaction/medmesh/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/i = 1, i <= created_volume, i++)
|
||||
new /obj/item/stack/medical/mesh/advanced(location)
|
||||
@@ -833,3 +833,8 @@
|
||||
required_reagents = list(/datum/reagent/medicine/salglu_solution = 1, /datum/reagent/iron = 1, /datum/reagent/stable_plasma = 1)
|
||||
mix_message = "The mixture congeals and gives off a faint copper scent."
|
||||
required_temp = 350
|
||||
|
||||
/datum/chemical_reaction/cellulose_carbonization
|
||||
results = list(/datum/reagent/carbon = 1)
|
||||
required_reagents = list(/datum/reagent/cellulose = 1)
|
||||
required_temp = 512
|
||||
@@ -4,7 +4,8 @@
|
||||
product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!"
|
||||
product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!"
|
||||
icon_state = "seeds"
|
||||
products = list(/obj/item/seeds/ambrosia = 3,
|
||||
products = list(/obj/item/seeds/aloe = 3,
|
||||
/obj/item/seeds/ambrosia = 3,
|
||||
/obj/item/seeds/apple = 3,
|
||||
/obj/item/seeds/banana = 3,
|
||||
/obj/item/seeds/berry = 3,
|
||||
|
||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 51 KiB |