diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 9c5b5e4d3c0..e96d3a290f5 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -26,6 +26,15 @@ icon_state = "sheet-monkey" origin_tech = null +var/global/list/datum/stack_recipe/monkey_recipes = list ( \ + new/datum/stack_recipe("monkey mask", /obj/item/clothing/mask/gas/monkeymask, 1, on_floor = 1), \ + new/datum/stack_recipe("monkey suit", /obj/item/clothing/suit/monkeysuit, 2, on_floor = 1), \ + ) + +/obj/item/stack/sheet/animalhide/monkey/New(var/loc, var/amount=null) + recipes = monkey_recipes + return ..() + /obj/item/stack/sheet/animalhide/lizard name = "lizard skin" desc = "Sssssss..." @@ -40,6 +49,15 @@ icon_state = "sheet-xeno" origin_tech = null +var/global/list/datum/stack_recipe/xeno_recipes = list ( \ + new/datum/stack_recipe("alien helmet", /obj/item/clothing/head/xenos, 1, on_floor = 1), \ + new/datum/stack_recipe("alien suit", /obj/item/clothing/suit/xenos, 2, on_floor = 1), \ + ) + +/obj/item/stack/sheet/animalhide/xeno/New(var/loc, var/amount=null) + recipes = xeno_recipes + return ..() + //don't see anywhere else to put these, maybe together they could be used to make the xenos suit? /obj/item/stack/sheet/xenochitin name = "alien chitin" diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index 1d1d5661cea..6b43db959e0 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -1,3 +1,10 @@ + +#define SKINTYPE_MONKEY 1 +#define SKINTYPE_ALIEN 2 + +#define MEATTYPE_MONKEY 1 +#define MEATTYPE_ALIEN 2 + //////Kitchen Spike /obj/structure/kitchenspike @@ -9,7 +16,9 @@ anchored = 1 var/meat = 0 var/occupied = 0 - var/meattype = 0 // 0 - Nothing, 1 - Monkey, 2 - Xeno + var/meattype = null + var/skin = 0 + var/skintype = null /obj/structure/kitchenspike/attack_paw(mob/user as mob) return src.attack_hand(usr) @@ -22,7 +31,9 @@ src.icon_state = "spikebloody" src.occupied = 1 src.meat = 5 - src.meattype = 1 + src.meattype = MEATTYPE_MONKEY + src.skin = 1 + src.skintype = SKINTYPE_MONKEY for(var/mob/O in viewers(src, null)) O.show_message(text("[user] has forced [G.affecting] onto the spike, killing them instantly!")) qdel(G.affecting) @@ -35,7 +46,9 @@ src.icon_state = "spikebloodygreen" src.occupied = 1 src.meat = 5 - src.meattype = 2 + src.meattype = MEATTYPE_ALIEN + src.skin = 1 + src.skintype = SKINTYPE_ALIEN for(var/mob/O in viewers(src, null)) O.show_message(text("[user] has forced [G.affecting] onto the spike, killing them instantly!")) qdel(G.affecting) @@ -55,10 +68,14 @@ if(..()) return if(src.occupied) - if(src.meattype == 1) - if(src.meat > 1) + if(src.meattype == MEATTYPE_MONKEY && src.skintype == SKINTYPE_MONKEY) + if(src.skin >= 1) + src.skin-- + new /obj/item/stack/sheet/animalhide/monkey(src.loc) + user << "You remove the hide from the monkey!" + else if(src.meat > 1) src.meat-- - new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey( src.loc ) + new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src.loc ) usr << "You remove some meat from the monkey." else if(src.meat == 1) src.meat-- @@ -66,10 +83,14 @@ usr << "You remove the last piece of meat from the monkey!" src.icon_state = "spike" src.occupied = 0 - else if(src.meattype == 2) - if(src.meat > 1) + else if(src.meattype == MEATTYPE_ALIEN && src.skintype == SKINTYPE_ALIEN) + if(src.skin >= 1) + src.skin-- + new /obj/item/stack/sheet/animalhide/xeno(src.loc) + user << "You remove the hide from the alien!" + else if(src.meat > 1) src.meat-- - new /obj/item/weapon/reagent_containers/food/snacks/xenomeat( src.loc ) + new /obj/item/weapon/reagent_containers/food/snacks/xenomeat(src.loc ) usr << "You remove some meat from the alien." else if(src.meat == 1) src.meat-- @@ -77,3 +98,9 @@ usr << "You remove the last piece of meat from the alien!" src.icon_state = "spike" src.occupied = 0 + +#undef SKINTYPE_MONKEY +#undef SKINTYPE_ALIEN + +#undef MEATTYPE_MONKEY +#undef MEATTYPE_ALIEN diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index e35eaa148dd..e7023880534 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -11,6 +11,7 @@ response_harm = "hits" speed = 0 meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat + skin_type = /obj/item/stack/sheet/animalhide/xeno meat_amount = 3 maxHealth = 100 health = 100 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index c1eb6157ddb..45dbf172af0 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -20,6 +20,7 @@ var/turns_since_move = 0 var/meat_amount = 0 var/meat_type + var/skin_type var/stop_automated_movement = 0 //Use this to temporarely stop random movement or to if you write special movement code for animals. var/wander = 1 // Does the mob wander around when idle? var/stop_automated_movement_when_pulled = 1 //When set to 1 this stops the animal from moving when someone is pulling it. @@ -219,6 +220,8 @@ if(meat_amount && meat_type) for(var/i = 0; i < meat_amount; i++) new meat_type(src.loc) + if(skin_type) + new skin_type(src.loc) ..() @@ -347,7 +350,7 @@ else user << " [src] is dead, medical items won't bring it back to life." return - if(meat_type && (stat == DEAD)) //if the animal has a meat, and if it is dead. + if((meat_type || skin_type) && (stat == DEAD)) //if the animal has a meat, and if it is dead. if(istype(O, /obj/item/weapon/kitchenknife)) harvest() diff --git a/html/changelogs/FIRECAGE-PR-7282.yml b/html/changelogs/FIRECAGE-PR-7282.yml new file mode 100644 index 00000000000..2a922c2fe5f --- /dev/null +++ b/html/changelogs/FIRECAGE-PR-7282.yml @@ -0,0 +1,7 @@ +author: Firecage + +delete-after: True + +changes: + - rscadd: "We, at NanoTrasen, have recently upgraded the Kitchen Spikes to include the skin of both Monkeys and Aliens when you harvest their flesh!" + - rscadd: "In other news, a station in a nearby Sector has been making monkey and xeno costumes. We are not sure why."