diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index f2c0ab216f2..fb780e5d550 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -1232,7 +1232,8 @@
/obj/item/kitchen/mould/bear = 1, /obj/item/kitchen/mould/worm = 1,
/obj/item/kitchen/mould/bean = 1, /obj/item/kitchen/mould/ball = 1,
/obj/item/kitchen/mould/cane = 1, /obj/item/kitchen/mould/cash = 1,
- /obj/item/kitchen/mould/coin = 1, /obj/item/kitchen/mould/loli = 1)
+ /obj/item/kitchen/mould/coin = 1, /obj/item/kitchen/mould/loli = 1,
+ /obj/item/kitchen/cutter = 2)
contraband = list(/obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife/butcher = 2)
armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0)
diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm
index 98422d8c680..a0810a0b96c 100644
--- a/code/game/objects/items/weapons/kitchen.dm
+++ b/code/game/objects/items/weapons/kitchen.dm
@@ -9,12 +9,16 @@
* Rolling Pins
* Candy Moulds
* Sushi Mat
+ * Circular cutter
*/
/obj/item/kitchen
icon = 'icons/obj/kitchen.dmi'
origin_tech = "materials=1"
+
+
+
/*
* Utensils
*/
@@ -179,6 +183,7 @@
origin_tech = "biotech=3;combat=2"
attack_verb = list("shanked", "shivved")
+
/*
* Rolling Pins
*/
@@ -251,7 +256,7 @@
desc = "It has the shape of a sucker imprinted into it."
icon_state = "mould_loli"
-/*
+/*
* Sushi Mat
*/
/obj/item/kitchen/sushimat
@@ -263,4 +268,20 @@
throw_speed = 3
throw_range = 3
w_class = WEIGHT_CLASS_SMALL
- attack_verb = list("rolled", "cracked", "battered", "thrashed")
\ No newline at end of file
+ attack_verb = list("rolled", "cracked", "battered", "thrashed")
+
+
+
+/// circular cutter by Ume
+
+/obj/item/kitchen/cutter
+ name = "generic circular cutter"
+ desc = "A generic circular cutter for cookies and other things."
+ icon = 'icons/obj/kitchen.dmi'
+ icon_state = "circular_cutter"
+ force = 5
+ throwforce = 5
+ throw_speed = 3
+ throw_range = 3
+ w_class = WEIGHT_CLASS_SMALL
+ attack_verb = list("bashed", "slashed", "pricked", "thrashed")
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index 26309f885fa..8b176dbfabd 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -460,6 +460,19 @@
return ..()
+/obj/item/storage/bag/tray/cookies_tray
+ var/cookie = /obj/item/reagent_containers/food/snacks/cookie
+
+/obj/item/storage/bag/tray/cookies_tray/New() /// By Azule Utama, thank you a lot!
+ ..()
+ for(var/i in 1 to 6)
+ var/obj/item/C = new cookie(src)
+ handle_item_insertion(C) // Done this way so the tray actually has the cookies visible when spawned
+ rebuild_overlays()
+
+/obj/item/storage/bag/tray/cookies_tray/sugarcookie
+ cookie = /obj/item/reagent_containers/food/snacks/sugarcookie
+
/*
* Chemistry bag
*/
diff --git a/code/modules/food_and_drinks/food/foods/baked_goods.dm b/code/modules/food_and_drinks/food/foods/baked_goods.dm
index 1115b42014e..0746f37d113 100644
--- a/code/modules/food_and_drinks/food/foods/baked_goods.dm
+++ b/code/modules/food_and_drinks/food/foods/baked_goods.dm
@@ -201,7 +201,7 @@
icon_state = "COOKIE!!!"
bitesize = 1
filling_color = "#DBC94F"
- list_reagents = list("nutriment" = 1)
+ list_reagents = list("nutriment" = 1, "sugar" = 3, "hot_coco" = 5 )
/obj/item/reagent_containers/food/snacks/fortunecookie
name = "fortune cookie"
@@ -215,7 +215,7 @@
name = "sugar cookie"
desc = "Just like your little sister used to make."
icon_state = "sugarcookie"
- list_reagents = list("nutriment" = 3, "sugar" = 3)
+ list_reagents = list("nutriment" = 1, "sugar" = 3)
//////////////////////
diff --git a/code/modules/food_and_drinks/food/foods/ingredients.dm b/code/modules/food_and_drinks/food/foods/ingredients.dm
index 8fb9773a48e..7dda7c0a1c0 100644
--- a/code/modules/food_and_drinks/food/foods/ingredients.dm
+++ b/code/modules/food_and_drinks/food/foods/ingredients.dm
@@ -129,6 +129,71 @@
list_reagents = list("nutriment" = 1)
+///cookies by Ume
+
+/obj/item/reagent_containers/food/snacks/cookiedough
+ var/flat = FALSE
+ name = "pastry dough"
+ icon = 'icons/obj/food/food_ingredients.dmi'
+ desc = "The base for tasty cookies."
+ icon_state = "cookiedough"
+ list_reagents = list("nutriment" = 5, "sugar" = 5)
+
+/obj/item/reagent_containers/food/snacks/cookiedough/update_icon()
+ if(flat)
+ icon_state = "cookiedough_flat"
+ name = "flat pastry dough"
+ else
+ icon_state = "cookiedough"
+
+
+
+// Dough + rolling pin = flat cookie dough // Flat dough + circular cutter = unbaked cookies
+/obj/item/reagent_containers/food/snacks/cookiedough/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/kitchen/rollingpin) && !flat)
+ if(isturf(loc))
+ to_chat(user, "You flatten [src].")
+ flat = TRUE
+ update_icon()
+ else
+ to_chat(user, "You need to put [src] on a surface to roll it out!")
+ else if(istype(I, /obj/item/kitchen/cutter) && flat)
+ if(isturf(loc))
+ new /obj/item/reagent_containers/food/snacks/rawcookies(loc)
+ to_chat(user, "You cut [src] into cookies.")
+ qdel(src)
+ else
+ to_chat(user, "You need to put [src] on a surface to cut it out!")
+ else
+ return ..()
+
+
+/obj/item/reagent_containers/food/snacks/rawcookies
+ name = "raw cookies"
+ desc = "Ready for oven!"
+ icon = 'icons/obj/food/food_ingredients.dmi'
+ icon_state = "unbaked_cookies"
+ list_reagents = list("nutriment" = 5, "sugar" = 5)
+
+/obj/item/reagent_containers/food/snacks/rawcookies/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/reagent_containers/food/snacks/choc_pile))
+ if(isturf(loc))
+ new /obj/item/reagent_containers/food/snacks/rawcookies/chocochips(loc)
+ to_chat(user, "You sprinkle [I] all over the cookies.")
+ qdel(src)
+ qdel(I)
+ else
+ to_chat(user, "You need to put [src] on a surface to add this")
+ else
+ return ..()
+
+/obj/item/reagent_containers/food/snacks/rawcookies/chocochips
+ name = "raw cookies"
+ desc = "Ready for oven! They have little pieces of chocolate all over them"
+ icon = 'icons/obj/food/food_ingredients.dmi'
+ icon_state = "unbaked_cookies_choco"
+ list_reagents = list("nutriment" = 5, "sugar" = 5, "chocolate" = 5)
+
//////////////////////
// Chocolate //
//////////////////////
@@ -140,6 +205,19 @@
filling_color = "#7D5F46"
list_reagents = list("nutriment" = 2, "sugar" = 2, "cocoa" = 2)
+///Chocolate crumbles/pile
+/obj/item/reagent_containers/food/snacks/chocolatebar/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/kitchen/knife))
+ if(isturf(loc))
+ new /obj/item/reagent_containers/food/snacks/choc_pile(loc)
+ to_chat(user, "You cut [src] into little crumbles.")
+ qdel(src)
+ else
+ to_chat(user, "You need to put [src] on a surface to cut it out!")
+ else
+ return ..()
+
+
/obj/item/reagent_containers/food/snacks/choc_pile //for reagent chocolate being spilled on turfs
name = "pile of chocolate"
desc = "A pile of pure chocolate pieces."
diff --git a/code/modules/food_and_drinks/recipes/recipes_oven.dm b/code/modules/food_and_drinks/recipes/recipes_oven.dm
index a6e08ad8569..0a6072e51a9 100644
--- a/code/modules/food_and_drinks/recipes/recipes_oven.dm
+++ b/code/modules/food_and_drinks/recipes/recipes_oven.dm
@@ -163,13 +163,22 @@
)
result = /obj/item/reagent_containers/food/snacks/loadedbakedpotato
-/datum/recipe/oven/cookie
- reagents = list("milk" = 5, "sugar" = 5)
+////cookies by Ume
+
+/datum/recipe/oven/cookies
items = list(
- /obj/item/reagent_containers/food/snacks/dough,
- /obj/item/reagent_containers/food/snacks/chocolatebar,
+ /obj/item/reagent_containers/food/snacks/rawcookies/chocochips,
)
- result = /obj/item/reagent_containers/food/snacks/cookie
+ result = /obj/item/storage/bag/tray/cookies_tray
+
+/datum/recipe/oven/sugarcookies
+ items = list(
+ /obj/item/reagent_containers/food/snacks/rawcookies,
+ )
+ result = /obj/item/storage/bag/tray/cookies_tray/sugarcookie
+
+
+////
/datum/recipe/oven/fortunecookie
reagents = list("sugar" = 5)
@@ -437,14 +446,6 @@
)
result = /obj/item/reagent_containers/food/snacks/cracker
-/datum/recipe/oven/sugarcookie
- reagents = list("sugar" = 5)
- items = list(
- /obj/item/reagent_containers/food/snacks/dough,
- /obj/item/reagent_containers/food/snacks/egg,
- )
- result = /obj/item/reagent_containers/food/snacks/sugarcookie
-
/datum/recipe/oven/sugarcookie/make_food(obj/container)
var/obj/item/reagent_containers/food/snacks/sugarcookie/being_cooked = ..()
being_cooked.reagents.del_reagent("egg")
diff --git a/code/modules/reagents/chemistry/recipes/food.dm b/code/modules/reagents/chemistry/recipes/food.dm
index cbea3014773..ec732bba858 100644
--- a/code/modules/reagents/chemistry/recipes/food.dm
+++ b/code/modules/reagents/chemistry/recipes/food.dm
@@ -99,9 +99,25 @@
/datum/chemical_reaction/dough/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
- for(var/i = 1, i <= created_volume, i++)
+ for(var/i in 1 to created_volume)
new /obj/item/reagent_containers/food/snacks/dough(location)
+///Cookies by Ume
+
+/datum/chemical_reaction/cookiedough
+ name = "Dough"
+ id = "dough"
+ result = null
+ required_reagents = list("milk" = 10, "flour" = 10, "sugar" = 5)
+ result_amount = 1
+ mix_message = "The ingredients form a dough. It smells sweet and yummy."
+
+/datum/chemical_reaction/cookiedough/on_reaction(datum/reagents/holder, created_volume)
+ var/location = get_turf(holder.my_atom)
+ for(var/i in 1 to created_volume)
+ new /obj/item/reagent_containers/food/snacks/cookiedough(location)
+
+
/datum/chemical_reaction/corn_syrup
name = "corn_syrup"
id = "corn_syrup"
diff --git a/icons/obj/food/food_ingredients.dmi b/icons/obj/food/food_ingredients.dmi
index f6fcf5228ac..e57f4854b1f 100644
Binary files a/icons/obj/food/food_ingredients.dmi and b/icons/obj/food/food_ingredients.dmi differ
diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi
index 16fb7801f0f..2c3b244a41d 100644
Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ