/obj/item/mixing_bowl
name = "mixing bowl"
desc = "Mixing it up in the kitchen."
container_type = OPENCONTAINER
icon = 'icons/obj/kitchen.dmi'
icon_state = "mixing_bowl"
var/max_n_of_items = 25
var/dirty = FALSE
var/clean_icon = "mixing_bowl"
var/dirty_icon = "mixing_bowl_dirty"
/obj/item/mixing_bowl/New()
..()
create_reagents(100)
/obj/item/mixing_bowl/attackby(obj/item/I, mob/user, params)
if(dirty)
if(istype(I, /obj/item/soap))
user.visible_message("[user] starts to scrub [src].", "You start to scrub [src].")
if(do_after(user, 20 * I.toolspeed, target = src))
clean()
user.visible_message("[user] has scrubbed [src] clean.", "You have scrubbed [src] clean.")
return 1
else
to_chat(user, "You should clean [src] before you use it for food prep.")
return 0
if(is_type_in_list(I, GLOB.cooking_ingredients[RECIPE_MICROWAVE]) || is_type_in_list(I, GLOB.cooking_ingredients[RECIPE_GRILL]) || is_type_in_list(I, GLOB.cooking_ingredients[RECIPE_OVEN]) || is_type_in_list(I, GLOB.cooking_ingredients[RECIPE_CANDY]))
if(length(contents)>=max_n_of_items)
to_chat(user, "This [src] is full of ingredients, you cannot put more.")
return 1
if(istype(I, /obj/item/stack))
var/obj/item/stack/S = I
if(S.get_amount() > 1)
var/obj/item/stack/to_add = S.split(user, 1)
to_add.forceMove(src)
user.visible_message("[user] adds one of [S] to [src].", "You add one of [S] to [src].")
else
return add_item(S, user)
else
return add_item(I, user)
else if(is_type_in_list(I, list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/drinks, /obj/item/reagent_containers/condiment)))
if(!I.reagents)
return 1
for(var/datum/reagent/R in I.reagents.reagent_list)
if(!(R.id in GLOB.cooking_reagents[RECIPE_MICROWAVE]) && !(R.id in GLOB.cooking_reagents[RECIPE_GRILL]) && !(R.id in GLOB.cooking_reagents[RECIPE_OVEN]) && !(R.id in GLOB.cooking_reagents[RECIPE_CANDY]))
to_chat(user, "Your [I] contains components unsuitable for cookery.")
return 1
else
to_chat(user, "You have no idea what you can cook with [I].")
return 1
/obj/item/mixing_bowl/proc/add_item(obj/item/I, mob/user)
if(!user.drop_item())
to_chat(user, "\The [I] is stuck to your hand, you cannot put it in [src]")
//return 0
else
I.forceMove(src)
user.visible_message("[user] adds [I] to [src].", "You add [I] to [src].")
/obj/item/mixing_bowl/attack_self(mob/user)
var/dat = ""
if(dirty)
dat = {"This [src] is dirty!"}
else
var/list/items_counts = list()
var/list/items_measures = list()
var/list/items_measures_p = list()
for(var/obj/O in contents)
var/display_name = O.name
if(istype(O,/obj/item/food/egg))
items_measures[display_name] = "egg"
items_measures_p[display_name] = "eggs"
if(istype(O,/obj/item/food/tofu))
items_measures[display_name] = "tofu chunk"
items_measures_p[display_name] = "tofu chunks"
if(istype(O,/obj/item/food/meat)) //any meat
items_measures[display_name] = "slab of meat"
items_measures_p[display_name] = "slabs of meat"
if(istype(O,/obj/item/food/donkpocket))
display_name = "Turnovers"
items_measures[display_name] = "turnover"
items_measures_p[display_name] = "turnovers"
if(istype(O,/obj/item/food/carpmeat))
items_measures[display_name] = "fillet of meat"
items_measures_p[display_name] = "fillets of meat"
items_counts[display_name]++
for(var/O in items_counts)
var/N = items_counts[O]
if(!(O in items_measures))
dat += {"[capitalize(O)]: [N] [lowertext(O)]\s
Please clean it before use!
"}
else
if(N==1)
dat += {"[capitalize(O)]: [N] [items_measures[O]]
"}
else
dat += {"[capitalize(O)]: [N] [items_measures_p[O]]
"}
for(var/datum/reagent/R in reagents.reagent_list)
var/display_name = R.name
if(R.id == "capsaicin")
display_name = "Hotsauce"
if(R.id == "frostoil")
display_name = "Coldsauce"
dat += {"[display_name]: [R.volume] unit\s
"}
if(length(items_counts)==0 && length(reagents.reagent_list)==0)
dat = {"[src] is empty
"}
else
dat = {"Ingredients:
[dat]"}
dat += {"