diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm index 1b5b92b86e9..4cff52ac702 100644 --- a/code/modules/food/recipes_microwave.dm +++ b/code/modules/food/recipes_microwave.dm @@ -219,6 +219,18 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread +/datum/recipe/spidermeatbread + reagents = list("flour" = 15) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/spidermeat, + /obj/item/weapon/reagent_containers/food/snacks/spidermeat, + /obj/item/weapon/reagent_containers/food/snacks/spidermeat, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/spidermeatbread + /datum/recipe/bananabread reagents = list("milk" = 5, "flour" = 15) items = list( @@ -1156,4 +1168,27 @@ items = list( /obj/item/weapon/reagent_containers/food/snacks/egg, ) - result = /obj/item/weapon/reagent_containers/food/snacks/sugarcookie \ No newline at end of file + result = /obj/item/weapon/reagent_containers/food/snacks/sugarcookie + +/datum/recipe/boiledspiderleg + reagents = list("water" = 10) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/spiderleg, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/boiledspiderleg + +/datum/recipe/spidereggsham + reagents = list("sodiumchloride" = 1) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/spidereggs, + /obj/item/weapon/reagent_containers/food/snacks/spidermeat, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/spidereggsham + +/datum/recipe/sashimi + reagents = list("soysauce" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/spidereggs, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sashimi \ 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 3da3cecb760..c4e1c38c32d 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -9,6 +9,7 @@ name = "giant spider" desc = "Furry and black, it makes you shudder to look at it. This one has deep red eyes." icon_state = "guard" + var/butcher_state = 8 // Icon state for dead spider icons icon_living = "guard" icon_dead = "guard_dead" speak_emote = list("chitters") @@ -16,7 +17,7 @@ speak_chance = 5 turns_per_move = 5 see_in_dark = 10 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/bearmeat + meat_type = /obj/item/weapon/reagent_containers/food/snacks/spidermeat response_help = "pets" response_disarm = "gently pushes aside" response_harm = "hits" @@ -40,6 +41,7 @@ icon_state = "nurse" icon_living = "nurse" icon_dead = "nurse_dead" + meat_type = /obj/item/weapon/reagent_containers/food/snacks/spidereggs maxHealth = 40 health = 40 melee_damage_lower = 5 @@ -87,6 +89,19 @@ stop_automated_movement = 0 walk(src,0) +// Chops off each leg with a 50/50 chance of harvesting one, until finally calling +// default harvest action +/mob/living/simple_animal/hostile/giant_spider/harvest() + if(butcher_state > 0) + butcher_state-- + icon_state = icon_dead + "[butcher_state]" + + if(prob(50)) + new /obj/item/weapon/reagent_containers/food/snacks/spiderleg(src.loc) + return + else + return ..() + /mob/living/simple_animal/hostile/giant_spider/nurse/proc/GiveUp(var/C) spawn(100) if(busy == MOVING_TO_TARGET) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 0e1fdd34f30..f78ea0edd35 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -401,12 +401,7 @@ return else if(meat_type && (stat == DEAD)) //if the animal has a meat, and if it is dead. if(istype(O, /obj/item/weapon/kitchenknife) || istype(O, /obj/item/weapon/butch)) - new meat_type (get_turf(src)) - if(prob(95)) - del(src) - return - gib() - return + harvest() else if(O.force) var/damage = O.force @@ -487,7 +482,7 @@ /mob/living/simple_animal/revive() health = maxHealth ..() - + /mob/living/simple_animal/proc/make_babies() // <3 <3 <3 if(gender != FEMALE || stat || !scan_ready || !childtype || !species) return @@ -509,4 +504,13 @@ alone = 0 continue if(alone && partner && children < 3) - new childtype(loc) + new childtype(loc) + +// Harvest an animal's delicious byproducts +/mob/living/simple_animal/proc/harvest() + new meat_type (get_turf(src)) + if(prob(95)) + del(src) + return + gib() + return \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index e6a36f1cf5e..aa2ce301eb1 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -570,6 +570,26 @@ reagents.add_reagent("nutriment", 3) src.bitesize = 6 +/obj/item/weapon/reagent_containers/food/snacks/spidermeat + name = "spider meat" + desc = "A slab of spider meat." + icon_state = "spidermeat" + New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("toxin", 3) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/spiderleg + name = "spider leg" + desc = "A still twitching leg of a giant spider... you don't really want to eat this, do you?" + icon_state = "spiderleg" + New() + ..() + reagents.add_reagent("nutriment", 2) + reagents.add_reagent("toxin", 2) + bitesize = 2 + /obj/item/weapon/reagent_containers/food/snacks/faggot name = "faggot" desc = "A great meal all round. Not a cord of wood." @@ -1808,6 +1828,28 @@ trash = /obj/item/trash/plate bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/spidermeatbread + name = "spider meat loaf" + desc = "Reassuringly green meatloaf made from spider meat." + icon_state = "spidermeatbread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/spidermeatbreadslice + slices_num = 5 + New() + ..() + reagents.add_reagent("nutriment", 30) + reagents.add_reagent("toxin", 15) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/spidermeatbreadslice + name = "spider meat bread slice" + desc = "A slice of meatloaf made from an animal that most likely still wants you dead." + icon_state = "xenobreadslice" + trash = /obj/item/trash/plate + bitesize = 2 + New() + ..() + reagents.add_reagent("toxin", 2) + /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread name = "banana-nut bread" desc = "A heavenly and filling treat." @@ -2423,3 +2465,46 @@ reagents.add_reagent("nutriment", 2) reagents.add_reagent("sugar", 5) bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/boiledspiderleg + name = "boiled spider leg" + desc = "A giant spider's leg that's still twitching after being cooked. Gross!" + icon_state = "spiderlegcooked" + trash = /obj/item/trash/plate + New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("toxin", 2) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/spidereggs + name = "spider eggs" + desc = "A cluster of juicy spider eggs. A great side dish for when you care not for your health." + icon_state = "spidereggs" + New() + ..() + reagents.add_reagent("nutriment", 2) + reagents.add_reagent("toxin", 3) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/spidereggsham + name = "green eggs and ham" + desc = "Would you eat them on a train? Would you eat them on a plane? Would you eat them on a state of the art corporate deathtrap floating through space?" + icon_state = "spidereggsham" + trash = /obj/item/trash/plate + New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("sodiumchloride", 1) + reagents.add_reagent("toxin", 3) + bitesize = 4 + +/obj/item/weapon/reagent_containers/food/snacks/sashimi + name = "carp sashimi" + desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself." + icon_state = "sashimi" + New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("toxin", 5) + bitesize = 3 \ No newline at end of file diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 3689efb21f7..bc7e5f2089e 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index 6b8e7af858f..9cc4400c047 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ