Adds the Death Sandwich to the game (#75013)

## About The Pull Request
Adds the Death Sandwich to the game, the ultimate form of
bread-conveyed-meat-based consumables.

![deathsandwich](https://user-images.githubusercontent.com/66052067/235041733-287be1fd-1eed-4d6d-840b-96f95494f093.png)


And remember;
Eat it right, or you die!
## Why It's Good For The Game
I'm genuinely surprised we don't already have a meatball sub in the game
also I love humor food, and I doubt my edition of the Eggcellent
Challenge would ever be merged if I tried to do so, so this is the next
best thing.
## Changelog
🆑 Wallem
add: The ancient recipe for the Death Sandwich has been rediscovered
buried in the deepest depths of an erupting volcano.
/🆑
This commit is contained in:
Wallem
2023-05-03 01:49:35 +00:00
committed by GitHub
parent 1361099cf5
commit 9c0900bc9f
8 changed files with 128 additions and 0 deletions
@@ -208,6 +208,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
/obj/item/stock_parts/cell/high = 1,
/obj/item/storage/box/clown = 1,
/obj/item/weaponcrafting/receiver = 1,
/obj/item/book/granter/crafting_recipe/death_sandwich = 1,
) = 8,
list(//medical and chemicals
@@ -0,0 +1,60 @@
/datum/disease/death_sandwich_poisoning
name = "Death Sandwich Poisoning"
desc = "If left untreated the subject will ultimately perish."
form = "Condition"
spread_text = "Unknown"
max_stages = 3
cure_text = "Anacea" // I ain't about to make a second sandwich to counteract the first one, so closest thing I'm going for is this.
cures = list(/datum/reagent/toxin/anacea)
cure_chance = 4
agent = "eating the Death Sandwich wrong"
viable_mobtypes = list(/mob/living/carbon/human)
severity = DISEASE_SEVERITY_DANGEROUS
disease_flags = CURABLE
spread_flags = DISEASE_SPREAD_SPECIAL
visibility_flags = HIDDEN_SCANNER
bypasses_immunity = TRUE
/datum/disease/death_sandwich_poisoning/stage_act(seconds_per_tick, times_fired)
. = ..()
if(!.)
return
switch(stage)
if(1)
if(SPT_PROB(1.5, seconds_per_tick))
affected_mob.emote("cough")
if(SPT_PROB(0.5, seconds_per_tick))
affected_mob.emote("gag")
if(SPT_PROB(0.5, seconds_per_tick))
affected_mob.adjustToxLoss(5)
if(2)
if(SPT_PROB(5, seconds_per_tick))
affected_mob.emote("cough")
if(SPT_PROB(2.5, seconds_per_tick))
affected_mob.emote("gag")
if(SPT_PROB(1, seconds_per_tick))
to_chat(affected_mob, span_danger("Your body feels hot!"))
if(prob(20))
affected_mob.take_bodypart_damage(burn = 1)
if(SPT_PROB(3, seconds_per_tick))
affected_mob.adjustToxLoss(10)
if(3)
if(SPT_PROB(5, seconds_per_tick))
affected_mob.emote("gag")
if(SPT_PROB(10, seconds_per_tick))
affected_mob.emote("gasp")
if(SPT_PROB(2.5, seconds_per_tick))
affected_mob.vomit(20, TRUE)
if(SPT_PROB(2.5, seconds_per_tick))
to_chat(affected_mob, span_danger("Your body feels hot!"))
if(prob(60))
affected_mob.take_bodypart_damage(burn = 2)
if(SPT_PROB(6, seconds_per_tick))
affected_mob.adjustToxLoss(15)
if(SPT_PROB(1.5, seconds_per_tick))
to_chat(affected_mob, span_danger("You try to scream, but nothing comes out!"))
affected_mob.set_silence_if_lower(5 SECONDS)
@@ -241,3 +241,39 @@
foodtypes = GRAIN | MEAT | DAIRY | VEGETABLES
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL
/obj/item/food/death_sandwich
name = "death sandwich"
desc = "Eat it right, or you die!"
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "death_sandwich"
food_reagents = list(
/datum/reagent/consumable/nutriment = 8,
/datum/reagent/consumable/nutriment/protein = 14,
/datum/reagent/consumable/nutriment/vitamin = 6,
)
tastes = list("bread" = 1, "meat" = 1, "tomato sauce" = 1, "death" = 1)
foodtypes = GRAIN | MEAT
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL
eat_time = 4 SECONDS // Makes it harder to force-feed this to people as a weapon, as funny as that is.
///Override for checkliked callback
/obj/item/food/death_sandwich/make_edible()
. = ..()
AddComponent(/datum/component/edible, check_liked = CALLBACK(src, PROC_REF(check_liked)))
///Eat it right, or you die.
/obj/item/food/death_sandwich/proc/check_liked(fraction, mob/living/carbon/human/consumer)
/// Closest thing to a mullet we have
if(consumer.hairstyle == "Gelled Back" && istype(consumer.get_item_by_slot(ITEM_SLOT_ICLOTHING), /obj/item/clothing/under/rank/civilian/cookjorts))
return FOOD_LIKED
// I thought it didn't make sense for it to instantly kill you, so instead enjoy shitloads of toxin damage per bite.
balloon_alert(consumer, "ate it wrong!")
consumer.ForceContractDisease(new/datum/disease/death_sandwich_poisoning())
/obj/item/food/death_sandwich/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] starts to shove [src] down [user.p_their()] throat the wrong way. It looks like [user.p_theyre()] trying to commit suicide!"))
qdel(src)
user.gib(TRUE, TRUE, TRUE)
return MANUAL_SUICIDE
@@ -0,0 +1,17 @@
/obj/item/book/granter/crafting_recipe/death_sandwich
name = "\improper SANDWICH OF DEATH SECRET RECIPE"
desc = "An ancient composition notebook with the instructions for an ancient and ultimate sandwich scrawled upon its looseleaf pages. The title has been scrawled onto it with permanent marker."
crafting_recipe_types = list(
/datum/crafting_recipe/food/death_sandwich
)
icon_state = "cooking_learning_sandwich"
remarks = list(
"A meatball sub, but what makes it so special?",
"I just need to grease back my hair...?",
"What kind of ancient civilization wore jorts?",
"So it DOES matter what angle you fold the salami in...",
)
/obj/item/book/granter/crafting_recipe/death_sandwich/recoil(mob/living/user)
to_chat(user, span_warning("The book comically explodes in your hands, leaving no trace."))
qdel(src)
@@ -115,3 +115,15 @@
)
result = /obj/item/food/philly_cheesesteak
category = CAT_SANDWICH
/datum/crafting_recipe/food/death_sandwich
name = "Death Sandwich"
always_available = FALSE
reqs = list(
/obj/item/food/breadslice/plain = 2,
/obj/item/food/salami = 4,
/obj/item/food/meatball = 4,
/obj/item/food/grown/tomato = 1,
)
result = /obj/item/food/death_sandwich
category = CAT_SANDWICH
Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

+2
View File
@@ -1086,6 +1086,7 @@
#include "code\datums\diseases\brainrot.dm"
#include "code\datums\diseases\cold.dm"
#include "code\datums\diseases\cold9.dm"
#include "code\datums\diseases\death_sandwich_poisoning.dm"
#include "code\datums\diseases\decloning.dm"
#include "code\datums\diseases\dna_spread.dm"
#include "code\datums\diseases\fake_gbs.dm"
@@ -1973,6 +1974,7 @@
#include "code\game\objects\items\granters\crafting\bone_notes.dm"
#include "code\game\objects\items\granters\crafting\cannon.dm"
#include "code\game\objects\items\granters\crafting\combat_baking.dm"
#include "code\game\objects\items\granters\crafting\death_sandwich.dm"
#include "code\game\objects\items\granters\crafting\desserts.dm"
#include "code\game\objects\items\granters\crafting\pipegun.dm"
#include "code\game\objects\items\granters\crafting\regal_condor.dm"