rendered paste body/obj/item/weapon/reagent_containers/food
var/heal_amt = 0
proc
heal(var/mob/M)
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
for(var/A in H.organs)
var/datum/organ/external/affecting = null
if(!H.organs[A]) continue
affecting = H.organs[A]
if(!istype(affecting, /datum/organ/external)) continue
if(affecting.heal_damage(src.heal_amt, src.heal_amt))
H.UpdateDamageIcon()
else
H.UpdateDamage()
else
M.bruteloss = max(0, M.bruteloss - src.heal_amt)
M.fireloss = max(0, M.fireloss - src.heal_amt)
M.updatehealth()
// Defining the action on "attack" by a /food/snacks/ item type
// note the new 'edible' variable which can be set to 0 for reagents
/obj/item/weapon/reagent_containers/food/snacks
name = "snack"
desc = "yummy"
icon = 'cooking.dmi'
icon_state = null
var/amount = 3 //amount of bites
var/edible = 1 //can you eat this?
heal_amt = 0 //healing and nutrition value
New()
var/datum/reagents/R = new/datum/reagents(10)
reagents = R
R.my_atom = src
attackby(obj/item/weapon/W as obj, mob/user as mob)
return
attack_self(mob/user as mob)
return
attack(mob/M as mob, mob/user as mob, def_zone)
if(!in_range(src, user))
return
if(!src.amount)
user << "\red None of [src] left, oh no!"
del(src)
return 0
if(istype(M, /mob/living/carbon/human) && src.edible)
if(M == user)
M << "\blue You take a bite of [src]."
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
reagents.trans_to(M, reagents.total_volume)
src.amount--
M.nutrition += src.heal_amt * 10
M.poo += 0.1
src.heal(M)
playsound(M.loc,'eatfood.ogg', rand(10,50), 1)
if(!src.amount)
user << "\red You finish eating [src]."
del(src)
return 1
else
for(var/mob/O in viewers(world.view, user))
O.show_message("\red [user] attempts to feed [M] [src].", 1)
if(!do_mob(user, M)) return
for(var/mob/O in viewers(world.view, user))
O.show_message("\red [user] feeds [M] [src].", 1)
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
reagents.trans_to(M, reagents.total_volume)
src.amount--
M.nutrition += src.heal_amt * 10
M.poo += 0.1
src.heal(M)
playsound(M.loc, 'eatfood.ogg', rand(10,50), 1)
if(!src.amount)
user << "\red [M] finishes eating [src]."
del(src)
return 1
return 0
attackby(obj/item/I as obj, mob/user as mob)
return
afterattack(obj/target, mob/user , flag)
return
///////////////////////////////////////////////////////
// //
// Raw reagents //
// //
///////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/snacks/flour
name = "flour"
desc = "Some flour"
icon_state = "flour"
edible = 0
/obj/item/weapon/reagent_containers/food/snacks/sugar
name = "sugar"
desc = "Some sugar"
icon_state = "sugar"
edible = 0
/obj/item/weapon/reagent_containers/food/snacks/dough
name = "dough"
desc = "A dough."
icon_state = "dough"
edible = 0
/obj/item/weapon/reagent_containers/food/snacks/flatdough
name = "flat dough"
desc = "A flattened dough."
icon_state = "dough"
edible = 0
/obj/item/weapon/reagent_containers/food/snacks/meat
name = "meat"
desc = "A raw meat slab."
icon_state = "meat"
edible = 0
/obj/item/weapon/reagent_containers/food/snacks/rawcutlet
name = "raw cutlet"
desc = "A thin piece of meat."
icon_state = "rawcutlet"
edible = 0
/obj/item/weapon/reagent_containers/food/snacks/rawmeatball
name = "raw meatball"
desc = "A raw meatball."
icon_state = "rawmeatball"
edible = 0
/obj/item/weapon/reagent_containers/food/snacks/egg
name = "egg"
desc = "Space chickens make them."
icon_state = "egg"
edible = 0
/obj/item/weapon/reagent_containers/food/snacks/ketchup
name = "ketchup"
desc = "Goes well with meat."
icon_state = "ketchup"
amount = 1
heal_amt = 1
///////////////////////////////////////////////////////
// //
// Cooked reagents //
// //
///////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/snacks/flatbread
name = "bun"
desc = "A base for any self-respecting burger."
icon_state = "bun"
amount = 2
heal_amt = 1
/obj/item/weapon/reagent_containers/food/snacks/flatbread
name = "flatbread"
desc = "Bland but filling."
icon_state = "flatbread"
amount = 3
heal_amt = 1
/obj/item/weapon/reagent_containers/food/snacks/waffles
name = "waffles"
desc = "Sweet waffles."
icon_state = "waffles"
amount = 3
heal_amt = 2
/obj/item/weapon/reagent_containers/food/snacks/spaghetti
name = "spaghetti"
desc = "Long and tasteless - 'Noodles'."
icon_state = "spaghetti"
amount = 2
heal_amt = 1
/obj/item/weapon/reagent_containers/food/snacks/spaghetti
name = "sauced spaghetti"
desc = "Long and tasty - 'Tomato Noodles'."
icon_state = "sspaghetti"
amount = 2
heal_amt = 2
/obj/item/weapon/reagent_containers/food/snacks/meatspaghetti
name = "spaghetti with meatballs"
desc = "A standard dinner - 'Spaghetti Monster'."
icon_state = "meatspaghetti"
amount = 2
heal_amt = 3
/obj/item/weapon/reagent_containers/food/snacks/smeatspaghetti
name = "sauced spaghetti with meatballs"
desc = "A tasty dinner - 'Spaghetti Terror'."
icon_state = "smeatspaghetti"
amount = 2
heal_amt = 4
/obj/item/weapon/reagent_containers/food/snacks/boiledegg
name = "boiled egg"
desc = "Boiled in its own shell - 'Humpty Dumpty'."
icon_state = "boiled egg"
amount = 1
heal_amt = 2
/obj/item/weapon/reagent_containers/food/snacks/omelette
name = "omelette"
desc = "A filling breakfast dish for every scientist - 'Eggheads'."
icon_state = "omelette"
amount = 2
heal_amt = 2
/obj/item/weapon/reagent_containers/food/snacks/omelette
name = "sauced omelette"
desc = "A saucy dish - 'Bloody Alien'."
icon_state = "somelette"
amount = 2
heal_amt = 3
/obj/item/weapon/reagent_containers/food/snacks/steak
name = "steak"
desc = "A juicy meat steak."
icon_state = "steak"
amount = 3
heal_amt = 2
/obj/item/weapon/reagent_containers/food/snacks/ssteak
name = "sauced steak"
desc = "A sauced meat steak."
icon_state = "ssteak"
amount = 3
heal_amt = 3
/obj/item/weapon/reagent_containers/food/snacks/cutlet
name = "cutlet"
desc = "A tasty meat slice - 'Bacon'."
icon_state = "cutlet"
amount = 1
heal_amt = 2
/obj/item/weapon/reagent_containers/food/snacks/sausage
name = "sausage"
desc = "A sausage."
icon_state = "sausage"
amount = 1
heal_amt = 2
/obj/item/weapon/reagent_containers/food/snacks/cutlet
name = "meatball"
desc = "A meatball."
icon_state = "meatball"
amount = 1
heal_amt = 2
///////////////////////////////////////////////////////
// //
// Burgers //
// //
///////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/snacks/hotdog
name = "hotdog"
desc = "Unrelated to dogs."
icon_state = "hotdog"
amount = 2
heal_amt = 3
/obj/item/weapon/reagent_containers/food/snacks/shotdog
name = "sauced hotdog"
desc = "Unrelated to dogs - 'Royal Hotdog'."
icon_state = "shotdog"
amount = 2
heal_amt = 4
/obj/item/weapon/reagent_containers/food/snacks/burger
name = "burger"
desc = "A fast way to become fat."
icon_state = "burger"
amount = 2
heal_amt = 3
/obj/item/weapon/reagent_containers/food/snacks/sburger
name = "sauced burger"
desc = "A fast way to become fat - 'Space Burger'."
icon_state = "sburger"
amount = 2
heal_amt = 4
/obj/item/weapon/reagent_containers/food/snacks/cheeseburger
name = "cheeseburger"
desc = "The cheese adds a good flavor."
icon_state = "cheeseburger"
amount = 2
heal_amt = 4
/obj/item/weapon/reagent_containers/food/snacks/scheeseburger
name = "saused cheeseburger"
desc = "The cheese adds a good flavor - 'Space Cheeseburger'."
icon_state = "scheeseburger"
amount = 2
heal_amt = 4
///////////////////////////////////////////////////////
// //
// Pizza //
// //
///////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/snacks/pizza
name = "Pizza Margherita"
desc = "A pizza with cheese and sauce - 'Margherita'."
icon_state = "pizza1"
amount = 4
heal_amt = 2
/obj/item/weapon/reagent_containers/food/snacks/pizzaslice
name = "Pizza Margherita slice"
desc = "A slice of pizza with cheese and sauce."
icon_state = "pizzaslice1"
amount = 1
heal_amt = 2
/obj/item/weapon/reagent_containers/food/snacks/pizzashroom
name = "Pizza e Funghi"
desc = "A pizza with cheese, sauce and mushrooms - 'Pizza e Funghi'."
icon_state = "pizza2"
amount = 4
heal_amt = 3
/obj/item/weapon/reagent_containers/food/snacks/pizzashroomslice
name = "Pizza e Funghi slice"
desc = "A slice of pizza with cheese, sauce and mushrooms."
icon_state = "pizzaslice2"
amount = 1
heal_amt = 3
/obj/item/weapon/reagent_containers/food/snacks/pizzameat
name = "Pizza al Prosciutto"
desc = "A pizza with cheese, sauce and sliced meat - 'Pizza al Prosciutto'."
icon_state = "pizza3"
amount = 4
heal_amt = 3
/obj/item/weapon/reagent_containers/food/snacks/pizzameatslice
name = "Pizza al Prosciutto slice"
desc = "A slice of pizza with cheese, sauce and sliced meat."
icon_state = "pizzaslice3"
amount = 1
heal_amt = 3
/obj/item/weapon/reagent_containers/food/snacks/pizzameatshroom
name = "Pizza al Prosciutto e Funghi"
desc = "A pizza with cheese, sauce and mushrooms - 'Pizza Prosciutto e Funghi'."
icon_state = "pizza4"
amount = 4
heal_amt = 4
/obj/item/weapon/reagent_containers/food/snacks/pizzameatshroomslice
name = "Pizza al Prosciutto e Funghi slice"
desc = "A slice of pizza with cheese, sauce, mushrooms and sliced meat."
icon_state = "pizzaslice4"
amount = 1
heal_amt = 4
/obj/item/weapon/reagent_containers/food/snacks/pizzasalami
name = "Pizza Capriciossa"
desc = "A pizza with cheese, sauce and salami - 'Capriciossa'."
icon_state = "pizza3"
amount = 4
heal_amt = 3
/obj/item/weapon/reagent_containers/food/snacks/pizzasalamislice
name = "Pizza Capriciossa slice"
desc = "A slice of pizza with cheese, sauce and salami."
icon_state = "pizzaslice3"
amount = 1
heal_amt = 3
/obj/item/weapon/reagent_containers/food/snacks/pizzasalamishroom
name = "Pizza Capriciossa e Funghi"
desc = "A pizza with mushrooms, cheese, sauce and salami - 'Capriciossa e Funghi'."
icon_state = "pizza4"
amount = 4
heal_amt = 4
/obj/item/weapon/reagent_containers/food/snacks/pizzasalamishroomslice
name = "Pizza Capriciossa e Funghi slice"
desc = "A slice of pizza with mushrooms, cheese, sauce and salami."
icon_state = "pizzaslice4"
amount = 1
heal_amt = 4
// Cutting pizza
/obj/item/weapon/reagent_containers/food/snacks/pizza/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/knife))
new /obj/item/weapon/reagent_containers/food/snacks/pizzaslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzaslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzaslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzaslice(src.loc)
user << "You cut the pizza."
amount--
del(src)
/obj/item/weapon/reagent_containers/food/snacks/pizzashroom/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/knife))
new /obj/item/weapon/reagent_containers/food/snacks/pizzashroomslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzashroomslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzashroomslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzashroomslice(src.loc)
user << "You cut the pizza."
amount--
del(src)
/obj/item/weapon/reagent_containers/food/snacks/pizzameat/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/knife))
new /obj/item/weapon/reagent_containers/food/snacks/pizzameatslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzameatslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzameatslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzameatslice(src.loc)
user << "You cut the pizza."
amount--
del(src)
/obj/item/weapon/reagent_containers/food/snacks/pizzameatshroom/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/knife))
new /obj/item/weapon/reagent_containers/food/snacks/pizzameatshroomslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzameatshroomslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzameatshroomslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzameatshroomslice(src.loc)
user << "You cut the pizza."
amount--
del(src)
/obj/item/weapon/reagent_containers/food/snacks/pizzasalami/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/knife))
new /obj/item/weapon/reagent_containers/food/snacks/pizzasalamislice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzasalamislice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzasalamislice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzasalamislice(src.loc)
user << "You cut the pizza."
amount--
del(src)
/obj/item/weapon/reagent_containers/food/snacks/pizzasalamishroom/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/knife))
new /obj/item/weapon/reagent_containers/food/snacks/pizzasalamishroomslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzasalamishroomslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzasalamishroomslice(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/pizzasalamishroomslice(src.loc)
user << "You cut the pizza."
amount--
del(src)
///////////////////////////////////////////////////////
// //
// Bread and sandwich system. //
// Stuff goes on top of bread slices! //
// //
///////////////////////////////////////////////////////
// *** At first, containers which require a knife to get something from then ***
// the loaf
/obj/item/weapon/reagent_containers/food/snacks/breadsys/
icon_state = null
amount = 1
// the loaf
/obj/item/weapon/reagent_containers/food/snacks/breadsys/loaf
name = "loaf of bread"
desc = "A fine loaf of bread"
icon_state = "loaf4"
heal_amt = 2
amount = 6
// the butterpack
/obj/item/weapon/reagent_containers/food/snacks/breadsys/butterpack
name = "Butter pack"
desc = "Don't eat this, it's unhealthy."
icon_state = "butterpack"
edible = 0
amount = 5
// the stick of salami
/obj/item/weapon/reagent_containers/food/snacks/breadsys/salamistick
name = "salami stick"
desc = "Don't choke on this, find a knife."
icon = 'cooking.dmi'
icon_state = "salamistick3"
edible = 0
amount = 5
// the head of cheese
/obj/item/weapon/reagent_containers/food/snacks/breadsys/bigcheese
name = "head of cheese"
icon = 'cooking.dmi'
icon_state = "bigcheese"
heal_amt = 2
amount = 3
// *** Now icons for the stuff which goes on top of the bread slice ***
/obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop
icon = 'cooking.dmi'
var/stateontop = "salami3" //state when ontop a sandvich
// a slice of bread loaf
/obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop/bread
name = "bread slice"
icon_state = "bread3"
stateontop = "bread1"
heal_amt = 1
// a slice of salami
/obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop/salami
name = "salami"
icon_state = "salami"
stateontop = "salami3"
heal_amt = 1
// a slice of cheese
/obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop/cheese
name = "cheese slice"
icon_state = "cheese"
stateontop = "cheese3"
heal_amt = 1
// a slice of butter
/obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop/butter
name = "butter"
icon_state = "butter"
stateontop = "butter3"
heal_amt = 0
// *** Cutting sandwich-system containers into pieces ***
// Loaf code
/obj/item/weapon/reagent_containers/food/snacks/breadsys/loaf/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/knife))
new /obj/item/weapon/reagent_containers/food/snacks/breadsys/bread(src.loc)
user << "You slice a piece of bread"
amount--
if(amount <= 5)
icon_state = "loaf3"
if(amount <= 4)
icon_state = "loaf2"
if(amount <= 2)
icon_state = "loaf1"
if(amount <= 1)
new /obj/item/weapon/reagent_containers/food/snacks/breadsys/bread(src.loc)
del(src)
// Cheese code
/obj/item/weapon/reagent_containers/food/snacks/breadsys/bigcheese/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/knife))
new /obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop/cheese(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop/cheese(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop/cheese(src.loc)
user << "You slice the cheese"
amount--
del(src)
// Salami code
/obj/item/weapon/reagent_containers/food/snacks/breadsys/salamistick/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/knife))
new /obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop/salami(src.loc)
user << "You slice a piece of salami"
amount--
if(amount <= 4)
icon_state = "salamistick2"
if(amount <= 3)
icon_state = "salamistick1"
if(amount <= 2)
icon_state = "salamistick0"
if(amount <= 1)
new /obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop/salami(src.loc)
del(src)
// Butterpack code
/obj/item/weapon/reagent_containers/food/snacks/breadsys/butterpack/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/knife))
if(amount >= 1)
new /obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop/butter(src.loc)
user << "You cut some butter"
amount--
if(amount < 1)
del(src)
// *** Sandwich assembling code ***
/obj/item/weapon/reagent_containers/food/snacks/breadsys/bread/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop))
var/state = W:stateontop
if(!state)
return
if(src.name != "sandwich")
src.name = "sandwich"
overlays += image(W.icon,icon_state = state)
user.drop_item(W)
W.loc = src
user << "You put a [W] ontop of the [src]"
src.heal_amt++
else if(W.type == /obj/item/weapon/reagent_containers/food/snacks/breadsys/bread/)
user.drop_item(W)
W.loc = src
if(src.name != "sandwich")
src.name = "sandwich"
overlays += image(W.icon,icon_state = W.icon_state)
user << "You put [W] ontop of the [src]"
src.heal_amt++
updateicon()
/obj/item/weapon/reagent_containers/food/snacks/breadsys/bread/proc/updateicon()
src.overlays = null
var/num = amount
for(var/obj/item/weapon/reagent_containers/food/snacks/breadsys/ontop/X in src)
var/iconx = "[X.stateontop][num]"
overlays += image(X.icon,iconx)
///////////////////////////////////////////////////////
// End of sandwich-related stuff //
///////////////////////////////////////////////////////