diff --git a/code/game/objects/items/weapons/circuitboards/machinery/miscboards.dm b/code/game/objects/items/weapons/circuitboards/machinery/miscboards.dm
index 34e32ecc557..ddc5e602504 100644
--- a/code/game/objects/items/weapons/circuitboards/machinery/miscboards.dm
+++ b/code/game/objects/items/weapons/circuitboards/machinery/miscboards.dm
@@ -139,6 +139,18 @@
"/obj/item/stock_parts/scanning_module" = 1,
"/obj/item/stock_parts/matter_bin" = 2)
+/obj/item/circuitboard/grill
+ name = T_BOARD("grill")
+ desc = "The circuitboard for a grill."
+ build_path = /obj/machinery/appliance/cooker/grill
+ origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 3)
+ board_type = "machine"
+ req_components = list(
+ "/obj/item/stock_parts/capacitor" = 2,
+ "/obj/item/stock_parts/micro_laser" = 1,
+ "/obj/item/stack/cable_coil" = 5
+ )
+
/obj/item/circuitboard/candymachine
name = T_BOARD("candy machine")
desc = "The circuitboard for a candy machine."
diff --git a/code/modules/cooking/machinery/cooking_machines/container.dm b/code/modules/cooking/machinery/cooking_machines/container.dm
index 158946311e2..e17b34c55ae 100644
--- a/code/modules/cooking/machinery/cooking_machines/container.dm
+++ b/code/modules/cooking/machinery/cooking_machines/container.dm
@@ -239,7 +239,8 @@
icon_state = "grill_grate"
appliancetype = GRILL
insertable = list(
- /obj/item/reagent_containers/food/snacks/meat
+ /obj/item/reagent_containers/food/snacks/meat,
+ /obj/item/reagent_containers/food/snacks/xenomeat
)
/obj/item/reagent_containers/cooking_container/grill_grate/can_fit()
diff --git a/code/modules/cooking/machinery/cooking_machines/grill.dm b/code/modules/cooking/machinery/cooking_machines/grill.dm
index c6ffa707fef..3e9d6fe98f1 100644
--- a/code/modules/cooking/machinery/cooking_machines/grill.dm
+++ b/code/modules/cooking/machinery/cooking_machines/grill.dm
@@ -21,6 +21,13 @@
cooking_coeff = 0.3 // cook it nice and slow
+ component_types = list(
+ /obj/item/circuitboard/grill,
+ /obj/item/stock_parts/capacitor = 2,
+ /obj/item/stock_parts/micro_laser,
+ /obj/item/stack/cable_coil = 5
+ )
+
starts_with = list(
/obj/item/reagent_containers/cooking_container/grill_grate
)
@@ -59,8 +66,10 @@
var/obj/item/reagent_containers/cooking_container/grill_grate/G = CI.container
if(G)
add_overlay(image('icons/obj/cooking_machines.dmi', "grill"))
- var/contents_len = length(G.contents)
- if(!contents_len)
- return
- for(var/i = 1 to contents_len)
- add_overlay(image('icons/obj/cooking_machines.dmi', "meat[i]"))
\ No newline at end of file
+ var/counter = 1
+ for(var/thing in G.contents)
+ if(istype(thing, /obj/item/reagent_containers/food/snacks/meat))
+ add_overlay(image('icons/obj/cooking_machines.dmi', "meat[counter]"))
+ else if(istype(thing, /obj/item/reagent_containers/food/snacks/xenomeat))
+ add_overlay(image('icons/obj/cooking_machines.dmi', "xenomeat[counter]"))
+ counter++
\ No newline at end of file
diff --git a/code/modules/cooking/recipes/recipe.dm b/code/modules/cooking/recipes/recipe.dm
index 11e5698499b..0427336121f 100644
--- a/code/modules/cooking/recipes/recipe.dm
+++ b/code/modules/cooking/recipes/recipe.dm
@@ -70,6 +70,8 @@
/decl/recipe/proc/get_appliance_names()
var/list/appliance_names
+ if(appliance & GRILL) // this comes first in the proc because it's the most important - geeves
+ LAZYADD(appliance_names, "a grill")
if(appliance & MIX)
LAZYADD(appliance_names, "a mixing bowl or plate")
if(appliance & FRYER)
diff --git a/code/modules/cooking/recipes/recipes_grill.dm b/code/modules/cooking/recipes/recipes_grill.dm
index 5ccd591c8fb..deef9e0bfaf 100644
--- a/code/modules/cooking/recipes/recipes_grill.dm
+++ b/code/modules/cooking/recipes/recipes_grill.dm
@@ -3,5 +3,27 @@
items = list(
/obj/item/reagent_containers/food/snacks/meat
)
- reagents = list(/decl/reagent/sodiumchloride = 1, /decl/reagent/blackpepper = 1, /decl/reagent/spacespice = 1)
+ reagents = list(/decl/reagent/sodiumchloride = 1, /decl/reagent/blackpepper = 1)
result = /obj/item/reagent_containers/food/snacks/meatsteak/grilled
+
+/decl/recipe/grilled_meat_spicy
+ appliance = GRILL
+ items = list(
+ /obj/item/reagent_containers/food/snacks/meat
+ )
+ reagents = list(/decl/reagent/sodiumchloride = 1, /decl/reagent/blackpepper = 1, /decl/reagent/spacespice = 1)
+ result = /obj/item/reagent_containers/food/snacks/meatsteak/grilled/spicy
+
+/decl/recipe/grilled_xenomeat
+ appliance = GRILL
+ items = list(
+ /obj/item/reagent_containers/food/snacks/xenomeat
+ )
+ result = /obj/item/reagent_containers/food/snacks/xenomeat/grilled
+
+/decl/recipe/grilled_xenomeat/make_food(obj/container) // make sure we burn all the polyacid away
+ . = ..()
+ var/list/results = .
+ for(var/thing in results)
+ var/obj/item/XMG = thing
+ XMG.reagents.del_reagent(/decl/reagent/acid/polyacid)
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
index 13bbffed44f..c4b3898a51c 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
@@ -20,6 +20,7 @@
speak_chance = 5
turns_per_move = 5
see_in_dark = 10
+ meat_amount = 3
meat_type = /obj/item/reagent_containers/food/snacks/xenomeat
organ_names = list("thorax", "legs", "head")
response_help = "pets"
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 61b3d37fa41..b94d5f1a12b 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -726,7 +726,9 @@ mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj)
if(issmall(src))
user.visible_message("\The [user] chops up \the [src]!")
- new/obj/effect/decal/cleanable/blood/splatter(get_turf(src))
+ var/obj/effect/decal/cleanable/blood/splatter/S = new /obj/effect/decal/cleanable/blood/splatter(get_turf(src))
+ S.basecolor = blood_type
+ S.update_icon()
qdel(src)
else
user.visible_message("\The [user] butchers \the [src] messily!")
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 310fc0af3f6..64c40bdd51d 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -886,6 +886,32 @@
reagents_to_add = list(/decl/reagent/nutriment/protein = 6, /decl/reagent/acid/polyacid = 6)
+/obj/item/reagent_containers/food/snacks/xenomeat/grilled
+ name = "grilled xeno steak"
+ desc = "A piece of grilled xeno meat. The process converts the dangerous acids within into tasty fats, even though the final look might be... upsetting."
+ icon_state = "xenosteak"
+
+ trash = /obj/item/trash/plate/steak
+ center_of_mass = list("x"=16, "y"=13)
+ bitesize = 2
+ reagents_to_add = list(/decl/reagent/nutriment/protein = 6, /decl/reagent/nutriment/triglyceride = 2, /decl/reagent/capsaicin = 2)
+
+/obj/item/reagent_containers/food/snacks/xenomeat/grilled/update_icon()
+ var/percent = round((reagents.total_volume / 10) * 100)
+ switch(percent)
+ if(0 to 10)
+ icon_state = "xenosteak_10"
+ if(11 to 25)
+ icon_state = "xenosteak_25"
+ if(26 to 40)
+ icon_state = "xenosteak_40"
+ if(41 to 60)
+ icon_state = "xenosteak_60"
+ if(61 to 75)
+ icon_state = "xenosteak_75"
+ if(76 to INFINITY)
+ icon_state = "xenosteak"
+
/obj/item/reagent_containers/food/snacks/meatball
name = "meatball"
desc = "A great meal all round."
@@ -1512,7 +1538,11 @@
/obj/item/reagent_containers/food/snacks/meatsteak/grilled
name = "grilled steak"
desc = "A piece of meat grilled to absolute perfection. Sssssssip. This is the life."
- reagents_to_add = list(/decl/reagent/nutriment/protein = 6, /decl/reagent/nutriment/triglyceride = 2, /decl/reagent/sodiumchloride = 1, /decl/reagent/blackpepper = 1, /decl/reagent/spacespice = 1)
+ reagents_to_add = list(/decl/reagent/nutriment/protein = 6, /decl/reagent/nutriment/triglyceride = 2, /decl/reagent/sodiumchloride = 1, /decl/reagent/blackpepper = 1)
+
+/obj/item/reagent_containers/food/snacks/meatsteak/grilled/spicy
+ desc = "A piece of meat grilled to absolute perfection, spiced to tastebud specification. Sssssssip. This is the life."
+ reagents_to_add = list(/decl/reagent/nutriment/protein = 6, /decl/reagent/nutriment/triglyceride = 2, /decl/reagent/sodiumchloride = 1, /decl/reagent/blackpepper = 1, /decl/reagent/spacespice = 2)
/obj/item/reagent_containers/food/snacks/spacylibertyduff
name = "spacy liberty duff"
diff --git a/code/modules/research/designs/circuit/machine_circuits.dm b/code/modules/research/designs/circuit/machine_circuits.dm
index ee9794afc13..15d98c3fc36 100644
--- a/code/modules/research/designs/circuit/machine_circuits.dm
+++ b/code/modules/research/designs/circuit/machine_circuits.dm
@@ -136,6 +136,11 @@
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/circuitboard/cerealmaker
+/datum/design/circuit/machine/grill
+ name = "Grill"
+ req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
+ build_path = /obj/item/circuitboard/grill
+
/datum/design/circuit/machine/candymaker
name = "Candy Machine"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
diff --git a/html/changelogs/geeves-grill_buffs.yml b/html/changelogs/geeves-grill_buffs.yml
new file mode 100644
index 00000000000..0ecc4740c46
--- /dev/null
+++ b/html/changelogs/geeves-grill_buffs.yml
@@ -0,0 +1,10 @@
+author: Geeves
+
+delete-after: True
+
+changes:
+ - rscadd: "You can now grill xenomeat on the grill, as is. The polyacid inside will provide the spice you need."
+ - rscadd: "Ported new grill sprites."
+ - rscadd: "Added grill circuitboards to RnD, mapped one into the maintenance workshop."
+ - rscadd: "Increased the amount of meat greimorians drop when butchered."
+ - tweak: "Added an additional recipe for grilled meat that only needs salt and pepper, no space spice."
\ No newline at end of file
diff --git a/icons/obj/cooking_machines.dmi b/icons/obj/cooking_machines.dmi
index a566e64d39a..3a9f7b6522a 100644
Binary files a/icons/obj/cooking_machines.dmi and b/icons/obj/cooking_machines.dmi differ
diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi
index dddc1f6a6d4..1deb809a862 100644
Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ
diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm
index 07fbce51edb..fb49fe97c67 100644
--- a/maps/aurora/aurora-4_mainlevel.dmm
+++ b/maps/aurora/aurora-4_mainlevel.dmm
@@ -59956,6 +59956,7 @@
/obj/item/circuitboard/mech_recharger,
/obj/item/circuitboard/optable,
/obj/item/circuitboard/security/engineering,
+/obj/item/circuitboard/grill,
/turf/simulated/floor/carpet/rubber,
/area/maintenance/workshop)
"dtt" = (