Files
Bubberstation/code/game/objects/items/food/bread.dm
tralezab 0bb22f59b5 Baguette swords make proper sounds and are toggled from left clicking the baguette, not right click (#69769)
Baguette swords make proper sounds and are toggled from left clicking the baguette, not right click
2022-09-29 10:32:55 -07:00

415 lines
16 KiB
Plaintext

/obj/item/food/bread
icon = 'icons/obj/food/burgerbread.dmi'
max_volume = 80
tastes = list("bread" = 10)
foodtypes = GRAIN
eat_time = 3 SECONDS
/obj/item/food/bread/Initialize(mapload)
. = ..()
AddElement(/datum/element/dunkable, 10)
AddComponent(/datum/component/food_storage)
/obj/item/food/breadslice
icon = 'icons/obj/food/burgerbread.dmi'
foodtypes = GRAIN
food_flags = FOOD_FINGER_FOOD
eat_time = 0.5 SECONDS
w_class = WEIGHT_CLASS_SMALL
/obj/item/food/breadslice/Initialize(mapload)
. = ..()
AddElement(/datum/element/dunkable, 10)
/obj/item/food/bread/plain
name = "bread"
desc = "Some plain old earthen bread."
icon_state = "bread"
food_reagents = list(/datum/reagent/consumable/nutriment = 10)
tastes = list("bread" = 10)
foodtypes = GRAIN
w_class = WEIGHT_CLASS_SMALL
venue_value = FOOD_PRICE_CHEAP
burns_in_oven = TRUE
/obj/item/food/bread/plain/Initialize(mapload)
. = ..()
AddComponent(/datum/component/customizable_reagent_holder, /obj/item/food/bread/empty, CUSTOM_INGREDIENT_ICON_FILL, max_ingredients = 8)
/obj/item/food/bread/plain/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/breadslice/plain, 5, 3 SECONDS, table_required = TRUE)
// special subtype we use for the "Bread" Admin Smite (or the breadify proc)
/obj/item/food/bread/plain/smite
desc = "If you hold it up to your ear, you can hear the screams of the damned."
/obj/item/food/breadslice/plain
name = "bread slice"
desc = "A slice of home."
icon_state = "breadslice"
foodtypes = GRAIN
food_reagents = list(/datum/reagent/consumable/nutriment = 2)
venue_value = FOOD_PRICE_TRASH
decomp_type = /obj/item/food/breadslice/moldy
/obj/item/food/breadslice/plain/Initialize(mapload)
. = ..()
AddComponent(/datum/component/customizable_reagent_holder, null, CUSTOM_INGREDIENT_ICON_STACK)
/obj/item/food/breadslice/plain/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/griddle_toast, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE)
/obj/item/food/breadslice/moldy
name = "moldy 'bread' slice"
desc = "Entire stations have been ripped apart over arguing whether this is still good to eat."
icon_state = "moldybreadslice"
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/mold = 10)
tastes = list("decaying fungus" = 1)
foodtypes = GROSS
preserved_food = TRUE
/obj/item/food/breadslice/moldy/bacteria
name = "bacteria rich moldy 'bread' slice"
desc = "Something (possibly necroyeast) has caused this bread to rise in a macabre state of unlife. It lurchs about when unattended. You might want to locate a priest if you see this. Or maybe a flamethrower."
/obj/item/food/breadslice/moldy/bacteria/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_MOLD, CELL_VIRUS_TABLE_GENERIC, rand(2, 4), 25)
/obj/item/food/bread/meat
name = "meatbread loaf"
desc = "The culinary base of every self-respecting eloquen/tg/entleman."
icon_state = "meatbread"
food_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 10, /datum/reagent/consumable/nutriment/protein = 12)
tastes = list("bread" = 10, "meat" = 10)
foodtypes = GRAIN | MEAT
venue_value = FOOD_PRICE_CHEAP
/obj/item/food/bread/meat/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/breadslice/meat, 5, 3 SECONDS, table_required = TRUE)
/obj/item/food/breadslice/meat
name = "meatbread slice"
desc = "A slice of delicious meatbread."
icon_state = "meatbreadslice"
foodtypes = GRAIN | MEAT
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/nutriment/protein = 2.4)
/obj/item/food/bread/sausage
name = "sausagebread loaf"
desc = "Dont think too much about it."
icon_state = "sausagebread"
foodtypes = GRAIN | MEAT
food_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 10, /datum/reagent/consumable/nutriment/protein = 12)
tastes = list("bread" = 10, "meat" = 10)
/obj/item/food/bread/sausage/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/breadslice/sausage, 5, 3 SECONDS, table_required = TRUE)
/obj/item/food/breadslice/sausage
name = "sausagebread slice"
desc = "A slice of delicious sausagebread."
icon_state = "sausagebreadslice"
foodtypes = GRAIN | MEAT
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/nutriment/protein = 2.4)
tastes = list("bread" = 10, "meat" = 10)
/obj/item/food/bread/xenomeat
name = "xenomeatbread loaf"
desc = "The culinary base of every self-respecting eloquen/tg/entleman. Extra Heretical."
icon_state = "xenomeatbread"
food_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 10, /datum/reagent/consumable/nutriment/protein = 15)
tastes = list("bread" = 10, "acid" = 10)
foodtypes = GRAIN | MEAT
/obj/item/food/bread/xenomeat/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/breadslice/xenomeat, 5, 3 SECONDS, table_required = TRUE)
/obj/item/food/breadslice/xenomeat
name = "xenomeatbread slice"
desc = "A slice of delicious meatbread. Extra Heretical."
icon_state = "xenobreadslice"
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/nutriment/protein = 3)
foodtypes = GRAIN | MEAT
/obj/item/food/bread/spidermeat
name = "spider meat loaf"
desc = "Reassuringly green meatloaf made from spider meat."
icon_state = "spidermeatbread"
food_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/toxin = 15, /datum/reagent/consumable/nutriment/vitamin = 10, /datum/reagent/consumable/nutriment/protein = 12)
tastes = list("bread" = 10, "cobwebs" = 5)
foodtypes = GRAIN | MEAT | TOXIC
/obj/item/food/bread/spidermeat/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/breadslice/spidermeat, 5, 3 SECONDS, table_required = TRUE)
/obj/item/food/breadslice/spidermeat
name = "spider meat bread slice"
desc = "A slice of meatloaf made from an animal that most likely still wants you dead."
icon_state = "spidermeatslice"
food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/toxin = 3, /datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtypes = GRAIN | MEAT | TOXIC
/obj/item/food/bread/banana
name = "banana-nut bread"
desc = "A heavenly and filling treat."
icon_state = "bananabread"
food_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/banana = 20)
tastes = list("bread" = 10) // bananjuice will also flavour
foodtypes = GRAIN | FRUIT
/obj/item/food/bread/banana/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/breadslice/banana, 5, 3 SECONDS, table_required = TRUE)
/obj/item/food/breadslice/banana
name = "banana-nut bread slice"
desc = "A slice of delicious banana bread."
icon_state = "bananabreadslice"
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/banana = 4)
foodtypes = GRAIN | FRUIT
/obj/item/food/bread/tofu
name = "Tofubread"
desc = "Like meatbread but for vegetarians. Not guaranteed to give superpowers."
icon_state = "tofubread"
food_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 10, /datum/reagent/consumable/nutriment/protein = 10)
tastes = list("bread" = 10, "tofu" = 10)
foodtypes = GRAIN | VEGETABLES
venue_value = FOOD_PRICE_TRASH
/obj/item/food/bread/tofu/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/breadslice/tofu, 5, 3 SECONDS, table_required = TRUE)
/obj/item/food/breadslice/tofu
name = "tofubread slice"
desc = "A slice of delicious tofubread."
icon_state = "tofubreadslice"
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
foodtypes = GRAIN | VEGETABLES
/obj/item/food/bread/creamcheese
name = "cream cheese bread"
desc = "Yum yum yum!"
icon_state = "creamcheesebread"
food_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/protein = 10, /datum/reagent/consumable/nutriment/vitamin = 10)
tastes = list("bread" = 10, "cheese" = 10)
foodtypes = GRAIN | DAIRY
/obj/item/food/bread/creamcheese/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/breadslice/creamcheese, 5, 3 SECONDS, table_required = TRUE)
/obj/item/food/breadslice/creamcheese
name = "cream cheese bread slice"
desc = "A slice of yum!"
icon_state = "creamcheesebreadslice"
food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
/obj/item/food/bread/empty
name = "bread"
icon_state = "tofubread"
desc = "It's bread, customized to your wildest dreams."
/obj/item/food/bread/empty/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/breadslice/empty, 5, 3 SECONDS, table_required = TRUE)
/obj/item/food/bread/mimana
name = "mimana bread"
desc = "Best eaten in silence."
icon_state = "mimanabread"
food_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/toxin/mutetoxin = 5, /datum/reagent/consumable/nothing = 5, /datum/reagent/consumable/nutriment/vitamin = 10)
tastes = list("bread" = 10, "silence" = 10)
foodtypes = GRAIN | FRUIT
/obj/item/food/bread/mimana/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/breadslice/mimana, 5, 3 SECONDS, table_required = TRUE)
/obj/item/food/breadslice/mimana
name = "mimana bread slice"
desc = "A slice of silence!"
icon_state = "mimanabreadslice"
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/toxin/mutetoxin = 1, /datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
foodtypes = GRAIN | FRUIT
// What you get from cutting a custom bread. Different from custom sliced bread.
/obj/item/food/breadslice/empty
name = "bread slice"
icon_state = "tofubreadslice"
foodtypes = GRAIN
desc = "It's a slice of bread, customized to your wildest dreams."
/obj/item/food/breadslice/empty/Initialize(mapload)
. = ..()
AddComponent(/datum/component/customizable_reagent_holder, null, CUSTOM_INGREDIENT_ICON_FILL, max_ingredients = 8)
/obj/item/food/baguette
name = "baguette"
desc = "Bon appetit!"
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "baguette"
inhand_icon_state = "baguette"
worn_icon_state = "baguette"
food_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 3)
bite_consumption = 3
w_class = WEIGHT_CLASS_NORMAL
slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT
attack_verb_continuous = list("touche's")
attack_verb_simple = list("touche")
tastes = list("bread" = 1)
foodtypes = GRAIN
venue_value = FOOD_PRICE_CHEAP
/// whether this is in fake swordplay mode or not
var/fake_swordplay = FALSE
/obj/item/food/baguette/Initialize()
. = ..()
register_context()
/obj/item/food/baguette/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
if (user.mind?.miming && held_item == src)
context[SCREENTIP_CONTEXT_LMB] = "Toggle Swordplay"
return CONTEXTUAL_SCREENTIP_SET
/obj/item/food/baguette/examine(mob/user)
var/examine_list = ..()
if(user.mind?.miming)
examine_list += span_notice("You can wield this like a sword by using it in your hand.")
/obj/item/food/baguette/attack_self(mob/user, modifiers)
. = ..()
if(!user.mind?.miming)
return
if(fake_swordplay)
end_swordplay(user)
else
begin_swordplay(user)
/obj/item/food/baguette/proc/begin_swordplay(mob/user)
visible_message(
span_notice("[user] begins wielding [src] like a sword!"),
span_notice("You begin wielding [src] like a sword, with a firm grip on the bottom as an imaginary handle.")
)
ADD_TRAIT(src, TRAIT_CUSTOM_TAP_SOUND, SWORDPLAY_TRAIT)
attack_verb_continuous = list("slashes", "cuts")
attack_verb_simple = list("slash", "cut")
hitsound = 'sound/weapons/rapierhit.ogg'
fake_swordplay = TRUE
RegisterSignal(src, COMSIG_ITEM_EQUIPPED, .proc/on_sword_equipped)
RegisterSignal(src, COMSIG_ITEM_DROPPED, .proc/on_sword_dropped)
/obj/item/food/baguette/proc/end_swordplay(mob/user)
UnregisterSignal(src, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED))
REMOVE_TRAIT(src, TRAIT_CUSTOM_TAP_SOUND, SWORDPLAY_TRAIT)
attack_verb_continuous = initial(attack_verb_continuous)
attack_verb_simple = initial(attack_verb_simple)
hitsound = initial(hitsound)
fake_swordplay = FALSE
if(user)
visible_message(
span_notice("[user] no longer holds [src] like a sword!"),
span_notice("You go back to holding [src] normally.")
)
/obj/item/food/baguette/proc/on_sword_dropped(datum/source, mob/user)
SIGNAL_HANDLER
end_swordplay()
/obj/item/food/baguette/proc/on_sword_equipped(datum/source, mob/equipper, slot)
SIGNAL_HANDLER
if(!(slot & ITEM_SLOT_HANDS))
end_swordplay()
/obj/item/food/garlicbread
name = "garlic bread"
desc = "Alas, it is limited."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "garlicbread"
inhand_icon_state = "garlicbread"
food_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/garlic = 2)
bite_consumption = 3
tastes = list("bread" = 1, "garlic" = 1, "butter" = 1)
foodtypes = GRAIN
venue_value = FOOD_PRICE_NORMAL
/obj/item/food/butterbiscuit
name = "butter biscuit"
desc = "Well butter my biscuit!"
icon = 'icons/obj/food/food.dmi'
icon_state = "butterbiscuit"
food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("butter" = 1, "biscuit" = 1)
foodtypes = GRAIN | BREAKFAST
w_class = WEIGHT_CLASS_SMALL
venue_value = FOOD_PRICE_CHEAP
/obj/item/food/butterdog
name = "butterdog"
desc = "Made from exotic butters."
icon = 'icons/obj/food/food.dmi'
icon_state = "butterdog"
bite_consumption = 1
food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("butter" = 1, "exotic butter" = 1)
foodtypes = GRAIN | DAIRY
w_class = WEIGHT_CLASS_SMALL
/obj/item/food/butterdog/Initialize(mapload)
. = ..()
AddComponent(/datum/component/slippery, 8 SECONDS)
/obj/item/food/raw_frenchtoast
name = "raw french toast"
desc = "A slice of bread soaked in a beaten egg mixture. Put it on a griddle to start cooking!."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "raw_frenchtoast"
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("raw egg" = 2, "soaked bread" = 1)
foodtypes = GRAIN | RAW | BREAKFAST
w_class = WEIGHT_CLASS_SMALL
/obj/item/food/raw_frenchtoast/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/frenchtoast, rand(20 SECONDS, 30 SECONDS), TRUE)
/obj/item/food/frenchtoast
name = "french toast"
desc = "A slice of bread soaked in an egg mixture and grilled until golden-brown. Drizzled with syrup!."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "frenchtoast"
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("french toast" = 1, "syrup" = 1, "golden deliciousness" = 1)
foodtypes = GRAIN | BREAKFAST
w_class = WEIGHT_CLASS_SMALL
burns_on_grill = TRUE
/obj/item/food/raw_breadstick
name = "raw breadstick"
desc = "An uncooked strip of dough in the shape of a breadstick."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "raw_breadstick"
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("raw dough" = 1)
foodtypes = GRAIN | DAIRY
w_class = WEIGHT_CLASS_SMALL
/obj/item/food/raw_breadstick/MakeBakeable()
AddComponent(/datum/component/bakeable, /obj/item/food/breadstick, rand(15 SECONDS, 20 SECONDS), TRUE, TRUE)
/obj/item/food/breadstick
name = "breadstick"
desc = "A delicious, buttery breadstick. Highly addictive, but oh-so worth it."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "breadstick"
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("fluffy bread" = 1, "butter" = 2)
foodtypes = GRAIN | DAIRY
w_class = WEIGHT_CLASS_SMALL
burns_in_oven = TRUE