All pastes #2071560 Raw Edit

Someone

public text v1 · immutable
#2071560 ·published 2011-05-29 11:11 UTC
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              //
///////////////////////////////////////////////////////