Adding dried meat.

This commit is contained in:
MistakeNot4892
2024-01-18 18:54:03 +11:00
parent 4077e10507
commit 5d80ac21b8
16 changed files with 169 additions and 61 deletions
+58
View File
@@ -0,0 +1,58 @@
/obj/item/reagent_containers/food/snacks/jerky
name = "mystery jerky"
icon = 'icons/obj/food_jerky.dmi'
bitesize = 2
w_class = ITEMSIZE_TINY
/obj/item/reagent_containers/food/snacks/jerky/fish
name = "dried fish"
desc = "A piece of dried fish, with a couple of scales still attached."
icon_state = "fishjerky"
/obj/item/reagent_containers/food/snacks/jerky/fish/get_drying_state()
return "fish_dried"
/obj/item/reagent_containers/food/snacks/jerky/fish/Initialize()
. = ..()
reagents.add_reagent("seafood", 5)
/obj/item/reagent_containers/food/snacks/jerky/meat
name = "dried meat"
desc = "A piece of chewy dried meat. It has the texture of leather."
icon_state = "meatjerky"
/obj/item/reagent_containers/food/snacks/jerky/meat/get_drying_state()
return "meat_dried"
/obj/item/reagent_containers/food/snacks/jerky/meat/Initialize()
. = ..()
reagents.add_reagent("protein", 4)
reagents.add_reagent("triglyceride", 1)
/obj/item/reagent_containers/food/snacks/jerky/cutlet
name = "dried meat stick"
desc = "A stick of chewy dried meat. Great for travel rations."
icon_state = "smallmeatjerky"
/obj/item/reagent_containers/food/snacks/jerky/cutlet/get_drying_state()
return "meat_dried_small"
/obj/item/reagent_containers/food/snacks/jerky/cutlet/Initialize()
. = ..()
reagents.add_reagent("protein", 2)
/obj/item/reagent_containers/food/snacks/jerky/spider
name = "dried spider meat"
desc = "A piece of green, stringy dried meat, full of tubes. It smells faintly of acid."
icon_state = "spiderjerky"
/obj/item/reagent_containers/food/snacks/jerky/spider/get_drying_state()
return "meat_dried"
/obj/item/reagent_containers/food/snacks/jerky/spider/Initialize()
. = ..()
reagents.add_reagent("protein", 5)
/obj/item/reagent_containers/food/snacks/jerky/spider/poison/Initialize()
. = ..()
reagents.add_reagent("spidertoxin", 3)
+27 -20
View File
@@ -47,7 +47,13 @@
/obj/item/reagent_containers/food/snacks/is_dryable()
return !dry
/obj/item/reagent_containers/food/snacks/dry_out(var/obj/rack, var/drying_power = 1)
/obj/item/reagent_containers/food/snacks/dry_out(var/obj/rack, var/drying_power = 1, var/fire_exposed = FALSE)
// If it's a direct fire, cook the food instead.
if(fire_exposed)
return grill(rack)
// Otherwise, try to dry it out.
if(!dried_type || dry)
return null
if(dried_type == type)
@@ -56,6 +62,7 @@
color = "#aaaaaa"
rack?.visible_message(SPAN_NOTICE("\The [src] is dry!"))
return src
return ..()
/obj/item/reagent_containers/food/snacks
@@ -76,7 +83,7 @@
/obj/item/reagent_containers/food/snacks/proc/grill(var/atom/heat_source)
if(!backyard_grilling_product || !backyard_grilling_threshold)
return
return null
backyard_grilling_progress++
if(backyard_grilling_progress >= backyard_grilling_threshold)
backyard_grilling_progress = 0
@@ -88,6 +95,7 @@
else
food.visible_message("<span class='[backyard_grilling_span]'>\The [src] [backyard_grilling_announcement]</span>")
qdel(src)
return food
//Placeholder for effect that trigger on eating that aren't tied to reagents.
/obj/item/reagent_containers/food/snacks/proc/On_Consume(var/mob/M)
@@ -896,14 +904,18 @@
icon_state = "fishfillet"
filling_color = "#FFDEFE"
center_of_mass = list("x"=17, "y"=13)
bitesize = 6
bitesize = 2
drying_wetness = 20
dried_type = /obj/item/reagent_containers/food/snacks/jerky/fish
var/toxin_type = "carpotoxin"
var/toxin_amount = 3
/obj/item/reagent_containers/food/snacks/carpmeat/get_drying_state()
return "fish"
/obj/item/reagent_containers/food/snacks/carpmeat/Initialize()
. = ..()
reagents.add_reagent("seafood", 3)
reagents.add_reagent("seafood", 6)
if(toxin_type && toxin_amount)
reagents.add_reagent(toxin_type, toxin_amount)
@@ -987,6 +999,9 @@
center_of_mass = list("x"=16, "y"=10)
bitesize = 6
/obj/item/reagent_containers/food/snacks/xenomeat/get_drying_state()
return "spidermeat"
/obj/item/reagent_containers/food/snacks/xenomeat/proc/add_venom()
reagents.add_reagent("pacid",6)
@@ -1004,6 +1019,8 @@
bitesize = 6
backyard_grilling_product = /obj/item/reagent_containers/food/snacks/xenomeat/spidermeat/charred
backyard_grilling_announcement = "smokes as the poison burns away."
drying_wetness = 20
dried_type = /obj/item/reagent_containers/food/snacks/jerky/spider/poison
/obj/item/reagent_containers/food/snacks/xenomeat/spidermeat/add_venom()
..()
@@ -1013,7 +1030,10 @@
name = "charred spider meat"
desc = "A slab of green meat with char lines. The poison has been burned out of it."
color = COLOR_LIGHT_RED
drying_wetness = null
dried_type = null
backyard_grilling_product = /obj/item/reagent_containers/food/snacks/badrecipe
dried_type = /obj/item/reagent_containers/food/snacks/jerky/spider
/obj/item/reagent_containers/food/snacks/xenomeat/spidermeat/charred/add_venom()
return
@@ -1070,11 +1090,12 @@
whoops.dropInto(loc)
visible_message(SPAN_DANGER("\The [src] chars and blackens!"))
qdel(src)
return
return whoops
// Otherwise we just warm up.
heat()
visible_message(SPAN_NOTICE("\The [src] steams gently!"))
return src
/obj/item/reagent_containers/food/snacks/donkpocket/proc/heat()
warm = 1
@@ -3833,20 +3854,6 @@
. = ..()
reagents.add_reagent("protein", 3)
/obj/item/reagent_containers/food/snacks/rawcutlet
name = "raw cutlet"
desc = "A thin piece of raw meat."
icon = 'icons/obj/food_ingredients.dmi'
icon_state = "rawcutlet"
bitesize = 1
center_of_mass = list("x"=17, "y"=20)
backyard_grilling_product = /obj/item/reagent_containers/food/snacks/cutlet
backyard_grilling_announcement = "sizzles as it is grilled through."
/obj/item/reagent_containers/food/snacks/rawcutlet/Initialize()
. = ..()
reagents.add_reagent("protein", 1)
/obj/item/reagent_containers/food/snacks/cutlet
name = "cutlet"
desc = "A tasty meat slice."
+21
View File
@@ -5,6 +5,11 @@
health = 180
filling_color = "#FF1C1C"
center_of_mass = list("x"=16, "y"=14)
drying_wetness = 20
dried_type = /obj/item/reagent_containers/food/snacks/jerky/meat
/obj/item/reagent_containers/food/snacks/meat/get_drying_state()
return "meat"
/obj/item/reagent_containers/food/snacks/meat/Initialize()
. = ..()
@@ -32,6 +37,22 @@
else
..()
/obj/item/reagent_containers/food/snacks/rawcutlet
name = "raw cutlet"
desc = "A thin piece of raw meat."
icon = 'icons/obj/food_ingredients.dmi'
icon_state = "rawcutlet"
bitesize = 1
center_of_mass = list("x"=17, "y"=20)
backyard_grilling_product = /obj/item/reagent_containers/food/snacks/cutlet
backyard_grilling_announcement = "sizzles as it is grilled through."
drying_wetness = 10
dried_type = /obj/item/reagent_containers/food/snacks/jerky/cutlet
/obj/item/reagent_containers/food/snacks/rawcutlet/Initialize()
. = ..()
reagents.add_reagent("protein", 1)
/obj/item/reagent_containers/food/snacks/meat/syntiflesh
name = "synthetic meat"
desc = "A synthetic slab of flesh."
@@ -14,7 +14,7 @@
return
var/do_update = FALSE
for(var/obj/item/thing in contents)
var/obj/item/product = thing.dry_out(src)
var/obj/item/product = thing.dry_out(src, silent = TRUE)
if(product)
product.dropInto(loc)
do_update = TRUE
+4
View File
@@ -9,6 +9,7 @@
slot_flags = SLOT_HOLSTER
drop_sound = 'sound/items/drop/herb.ogg'
pickup_sound = 'sound/items/pickup/herb.ogg'
drying_wetness = 20
var/plantname
var/datum/seed/seed
@@ -64,6 +65,9 @@
if(seed.get_trait(TRAIT_STINGS))
force = 1
/obj/item/reagent_containers/food/snacks/grown/get_drying_state(var/obj/rack)
return seed?.drying_state || "grown"
/obj/item/reagent_containers/food/snacks/grown/proc/update_desc()
if(!seed)
+3
View File
@@ -32,6 +32,9 @@
var/backyard_grilling_product = /obj/item/reagent_containers/food/snacks/badrecipe
var/backyard_grilling_announcement = "smokes and chars!"
// Used to show an icon when drying in a rack.
var/drying_state = "grown"
// Making the assumption anything in HYDRO-ponics is capable of processing water, and nutrients commonly associated with it, leaving us with the below to be tweaked.
var/list/beneficial_reagents // Reagents considered uniquely 'beneficial' by a plant.
var/list/mutagenic_reagents // Reagents considered uniquely 'mutagenic' by a plant.
@@ -11,42 +11,20 @@
no_variants = FALSE
max_amount = 20
stacktype = "wetleather"
var/wetness = 30 //Reduced when exposed to high temperautres
/obj/item/stack/wetleather/is_dryable()
return wetness > 0
drying_wetness = 30
dried_type = /obj/item/stack/material/leather
/obj/item/stack/wetleather/get_drying_state(var/obj/rack)
if(wetness)
return "leather_wet"
return "leather_dry"
return (drying_wetness > 0 ? "leather_wet" : "leather_dry")
/obj/item/stack/wetleather/examine(var/mob/user)
. = ..()
. += description_info
. += "\The [src] is [get_dryness_text()]."
/obj/item/stack/wetleather/get_dryness_text(var/obj/rack)
if(wetness > 20)
return "wet"
if(wetness > 10)
return "damp"
if(wetness)
return "almost dry"
return ..()
/obj/item/stack/wetleather/transfer_to(obj/item/stack/S, var/tamount=null, var/type_verified)
. = ..()
if(.) // If it transfers any, do a weighted average of the wetness
var/obj/item/stack/wetleather/W = S
var/oldamt = W.amount - .
W.wetness = round(((oldamt * W.wetness) + (. * wetness)) / W.amount)
/obj/item/stack/wetleather/dry_out(var/obj/rack, var/drying_power = 1)
if(wetness <= 0)
return null
wetness -= drying_power
if(wetness <= 0)
. = new /obj/item/stack/material/leather(loc, amount)
rack?.visible_message(SPAN_NOTICE("The [src] is dry!"))
qdel(src)
W.drying_wetness = round(((oldamt * W.drying_wetness) + (. * drying_wetness)) / W.amount)
@@ -1,8 +1,8 @@
/obj/structure/drying_rack
name = "drying rack"
desc = "A rack used to stretch leather out and hold it taut during the tanning process."
icon = 'icons/obj/kitchen.dmi'
icon_state = "spike"
icon = 'icons/obj/drying_rack.dmi'
icon_state = "rack"
var/obj/item/drying
/obj/structure/drying_rack/Initialize()
@@ -32,7 +32,7 @@
/obj/structure/drying_rack/update_icon()
cut_overlays()
var/drying_state = drying?.get_drying_state(src)
var/drying_state = drying?.get_drying_overlay(src)
if(drying_state)
add_overlay(drying_state)
+1 -1
View File
@@ -396,7 +396,7 @@
var/obj/item/stack/wetleather/wethide = new(O.loc, round(volume))
dryhide.use(round(volume))
if(!QDELETED(wethide) && wethide.get_amount())
wethide.dry_out(null, INFINITY) // dry it immediately
wethide.dry_out(drying_power = INFINITY, silent = TRUE) // dry it immediately
..()
/datum/reagent/toxin/plantbgone