Files
SmArtKar c41bc9c6c2 Fixes bubblegum suicide span, cleans up say spans (#96103)
## About The Pull Request

Closes #96085
Also went through other say spans and converted them to defines, as well
as fixed beepsky smash's hallucination beepskys not having their spans
due to incorrect span being passed.

## Changelog
🆑
fix: Bubblegun suicide no longer makes the user yell out HTML
fix: Beepsky Smash beepskys now use proper text formatting
code: Cleaned up say span code in a few places
/🆑
2026-05-21 19:51:36 -06:00

374 lines
12 KiB
Plaintext

// Sweets that didn't make it into any other category
/obj/item/food/candy_corn
name = "candy corn"
desc = "It's a handful of candy corn. Can be stored in a detective's hat."
icon_state = "candy_corn"
food_reagents = list(
/datum/reagent/consumable/nutriment = 4,
/datum/reagent/consumable/sugar = 2,
)
tastes = list("candy corn" = 1)
foodtypes = JUNKFOOD | SUGAR
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_TINY
crafting_complexity = FOOD_COMPLEXITY_1
/obj/item/food/candy_corn/prison
name = "desiccated candy corn"
desc = "If this candy corn were any harder Security would confiscate it for being a potential shiv."
force = 1 // the description isn't lying
throwforce = 1 // if someone manages to bust out of jail with candy corn god bless them
tastes = list("bitter wax" = 1)
foodtypes = GROSS
/obj/item/food/candiedapple
name = "candied apple"
desc = "An apple coated in sugary sweetness."
icon_state = "candiedapple"
bite_consumption = 3
food_reagents = list(
/datum/reagent/consumable/nutriment = 5,
/datum/reagent/consumable/sugar = 3,
/datum/reagent/consumable/caramel = 5,
)
tastes = list("apple" = 2, "caramel" = 3)
foodtypes = JUNKFOOD | FRUIT | SUGAR
w_class = WEIGHT_CLASS_SMALL
crafting_complexity = FOOD_COMPLEXITY_1
/obj/item/food/mint
name = "mint"
desc = "It is only wafer thin."
icon_state = "mint"
bite_consumption = 1
food_reagents = list(/datum/reagent/consumable/mintextract = 2)
foodtypes = TOXIC | SUGAR
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_TINY
/obj/item/food/ant_candy
name = "ant candy"
desc = "A colony of ants suspended in hardened sugar. Those things are dead, right?"
icon_state = "ant_pop"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/nutriment/vitamin = 1,
/datum/reagent/consumable/sugar = 5,
/datum/reagent/ants = 3,
)
tastes = list("candy" = 1, "insects" = 1)
foodtypes = JUNKFOOD | SUGAR | BUGS
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_TINY
crafting_complexity = FOOD_COMPLEXITY_1
// Chocolates
/obj/item/food/chocolatebar
name = "chocolate bar"
desc = "Such, sweet, fattening food."
icon_state = "chocolatebar"
food_reagents = list(
/datum/reagent/consumable/nutriment = 2,
/datum/reagent/consumable/sugar = 2,
/datum/reagent/consumable/coco = 2,
)
tastes = list("chocolate" = 1)
foodtypes = JUNKFOOD | SUGAR
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_TINY
crafting_complexity = FOOD_COMPLEXITY_1
/obj/item/food/virtual_chocolate
name = "virtual chocolate bar"
desc = "Digital food only gives off the sensation of eating... without any of the nutritional benefits."
icon_state = "virtual_chocolate"
tastes = list("nothing" = 1)
foodtypes = NONE
w_class = WEIGHT_CLASS_TINY
/obj/item/food/chococoin
name = "chocolate coin"
desc = "A completely edible but non-flippable festive coin."
icon_state = "chococoin"
food_reagents = list(
/datum/reagent/consumable/nutriment = 4,
/datum/reagent/consumable/coco = 1,
/datum/reagent/consumable/sugar = 1,
)
tastes = list("chocolate" = 1)
foodtypes = JUNKFOOD | SUGAR
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL
crafting_complexity = FOOD_COMPLEXITY_2
/obj/item/food/fudgedice
name = "fudge dice"
desc = "A little cube of chocolate that tends to have a less intense taste if you eat too many at once."
icon_state = "chocodice"
food_reagents = list(
/datum/reagent/consumable/nutriment = 3,
/datum/reagent/consumable/coco = 1,
/datum/reagent/consumable/sugar = 1,
)
trash_type = /obj/item/dice/fudge
tastes = list("fudge" = 1)
foodtypes = JUNKFOOD | SUGAR
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL
crafting_complexity = FOOD_COMPLEXITY_2
/obj/item/food/chocoorange
name = "chocolate orange"
desc = "A festive chocolate orange."
icon_state = "chocoorange"
food_reagents = list(
/datum/reagent/consumable/nutriment = 3,
/datum/reagent/consumable/sugar = 1,
)
tastes = list("chocolate" = 3, "oranges" = 1)
foodtypes = JUNKFOOD|FRUIT|SUGAR|ORANGES
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL
crafting_complexity = FOOD_COMPLEXITY_2
/obj/item/food/bonbon
name = "bon bon"
desc = "A tiny and sweet chocolate."
icon_state = "tiny_chocolate"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/sugar = 1,
/datum/reagent/consumable/coco = 1,
)
tastes = list("chocolate" = 1)
foodtypes = JUNKFOOD|SUGAR
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_TINY
/obj/item/food/bonbon/caramel_truffle
name = "caramel truffle"
desc = "A bite-sized chocolate truffle with a chewy caramel filling."
icon_state = "caramel_truffle"
food_reagents = list(
/datum/reagent/consumable/nutriment = 3,
/datum/reagent/consumable/nutriment/vitamin = 3,
)
tastes = list("chocolate" = 1, "chewy caramel" = 1)
crafting_complexity = FOOD_COMPLEXITY_2
/obj/item/food/bonbon/chocolate_truffle
name = "chocolate truffle"
desc = "A bite-sized chocolate truffle with a rich chocolate mousse filling."
icon_state = "chocolate_truffle"
food_reagents = list(
/datum/reagent/consumable/nutriment = 3,
/datum/reagent/consumable/nutriment/vitamin = 3,
)
/obj/item/food/bonbon/peanut_truffle
name = "peanut truffle"
desc = "A bite-sized chocolate truffle with crunchy peanuts mixed in."
icon_state = "peanut_truffle"
food_reagents = list(
/datum/reagent/consumable/nutriment = 3,
/datum/reagent/consumable/nutriment/vitamin = 3,
)
tastes = list("chocolate" = 1, "peanuts" = 1)
foodtypes = SUGAR|JUNKFOOD|NUTS
crafting_complexity = FOOD_COMPLEXITY_1
/obj/item/food/bonbon/peanut_butter_cup
name = "peanut butter cup"
desc = "An ultra-sweet chocolate treat with a savory peanut butter filling."
icon_state = "peanut_butter_cup"
food_reagents = list(
/datum/reagent/consumable/nutriment = 3,
/datum/reagent/consumable/nutriment/vitamin = 3,
)
tastes = list("chocolate" = 1, "peanut butter" = 1)
foodtypes = SUGAR|JUNKFOOD|NUTS
crafting_complexity = FOOD_COMPLEXITY_1
// Gum
/obj/item/food/bubblegum
name = "bubblegum"
desc = "A rubbery strip of gum. Not exactly filling, but it keeps you busy."
icon_state = "bubblegum"
inhand_icon_state = null
color = "#E48AB5" // craftable custom gums someday?
food_reagents = list(/datum/reagent/consumable/sugar = 5)
tastes = list("candy" = 1)
food_flags = FOOD_FINGER_FOOD
slot_flags = ITEM_SLOT_MASK
w_class = WEIGHT_CLASS_TINY
/obj/item/food/bubblegum/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] swallows [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
qdel(src)
return TOXLOSS
/obj/item/food/bubblegum/Initialize(mapload)
. = ..()
AddElement(/datum/element/chewable)
/obj/item/food/bubblegum/nicotine
name = "nicotine gum"
food_reagents = list(
/datum/reagent/drug/nicotine = 10,
/datum/reagent/consumable/menthol = 5,
)
tastes = list("mint" = 1)
color = "#60A584"
/obj/item/food/bubblegum/happiness
name = "\improper HP+ gum"
desc = "A rubbery strip of gum. It smells funny."
food_reagents = list(/datum/reagent/drug/happiness = 15)
tastes = list("paint thinner" = 1)
color = "#EE35FF"
/obj/item/food/bubblegum/bubblegum
name = "bubblegum gum"
desc = "A rubbery strip of gum. You don't feel like eating it is a good idea."
color = "#913D3D"
food_reagents = list(/datum/reagent/blood = 15)
tastes = list("hell" = 1, "people" = 1)
/obj/item/food/bubblegum/bubblegum/process()
if(iscarbon(loc))
hallucinate(loc)
/obj/item/food/bubblegum/bubblegum/make_edible()
. = ..()
AddComponentFrom(SOURCE_EDIBLE_INNATE, /datum/component/edible, on_consume = CALLBACK(src, PROC_REF(OnConsume)))
/obj/item/food/bubblegum/bubblegum/proc/OnConsume(mob/living/eater, mob/living/feeder)
if(iscarbon(eater))
hallucinate(eater)
///This proc has a 5% chance to have a bubblegum line appear, with an 85% chance for just text and 15% for a bubblegum hallucination and scarier text.
/obj/item/food/bubblegum/bubblegum/proc/hallucinate(mob/living/carbon/victim)
if(prob(95)) //cursed by bubblegum
return
if(prob(15))
victim.cause_hallucination(/datum/hallucination/oh_yeah, "bubblegum bubblegum", haunt_them = TRUE)
else
to_chat(victim, span_warning("[pick("You hear faint whispers.", "You smell ash.", "You feel hot.", "You hear a roar in the distance.")]"))
/obj/item/food/bubblegum/bubblegum/suicide_act(mob/living/user)
user.say(";[pick(BUBBLEGUM_HALLUCINATION_LINES)]", spans = list(SPAN_COLOSSUS))
return ..()
/obj/item/food/gumball
name = "gumball"
desc = "A colorful, sugary gumball."
icon = 'icons/obj/food/lollipop.dmi'
icon_state = "gumball"
worn_icon_state = "bubblegum"
food_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/sal_acid = 2, /datum/reagent/medicine/oxandrolone = 2) //Kek
tastes = list("candy")
foodtypes = JUNKFOOD
food_flags = FOOD_FINGER_FOOD
slot_flags = ITEM_SLOT_MASK
w_class = WEIGHT_CLASS_TINY
venue_value = FOOD_PRICE_WORTHLESS
/obj/item/food/gumball/Initialize(mapload)
. = ..()
color = rgb(rand(0, 255), rand(0, 255), rand(0, 255))
AddElement(/datum/element/chewable)
// Lollipop
/obj/item/food/lollipop
name = "lollipop"
desc = "A delicious lollipop. Makes for a great Valentine's present."
icon = 'icons/obj/food/lollipop.dmi'
icon_state = "lollipop_stick"
inhand_icon_state = null
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/nutriment/vitamin = 1,
/datum/reagent/iron = 10, /datum/reagent/consumable/sugar = 5,
/datum/reagent/medicine/omnizine = 2,
)
tastes = list("candy" = 1)
foodtypes = JUNKFOOD | SUGAR
food_flags = FOOD_FINGER_FOOD
slot_flags = ITEM_SLOT_MASK
w_class = WEIGHT_CLASS_TINY
venue_value = FOOD_PRICE_WORTHLESS
var/mutable_appearance/head
var/head_color = rgb(0, 0, 0)
/obj/item/food/lollipop/Initialize(mapload)
. = ..()
head = mutable_appearance('icons/obj/food/lollipop.dmi', "lollipop_head")
change_head_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255)))
AddElement(/datum/element/chewable)
/obj/item/food/lollipop/proc/change_head_color(C)
head_color = C
cut_overlay(head)
head.color = C
add_overlay(head)
/obj/item/food/lollipop/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
..(hit_atom)
throw_speed = 1
throwforce = 0
/obj/item/food/lollipop/cyborg
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/nutriment/vitamin = 1,
/datum/reagent/iron = 10,
/datum/reagent/consumable/sugar = 5,
/datum/reagent/medicine/psicodine = 2, //psicodine instead of omnizine, because the latter was making coders freak out
)
/obj/item/food/spiderlollipop
name = "spider lollipop"
desc = "Still gross, but at least it has a mountain of sugar on it."
icon_state = "spiderlollipop"
worn_icon_state = "lollipop_stick"
food_reagents = list(
/datum/reagent/consumable/nutriment/protein = 2,
/datum/reagent/toxin = 1,
/datum/reagent/iron = 10,
/datum/reagent/consumable/sugar = 5,
/datum/reagent/medicine/omnizine = 2,
) //lollipop, but vitamins = toxins
tastes = list("cobwebs" = 1, "sugar" = 2)
foodtypes = JUNKFOOD|SUGAR|MEAT|BUGS
food_flags = FOOD_FINGER_FOOD
slot_flags = ITEM_SLOT_MASK
crafting_complexity = FOOD_COMPLEXITY_1
/obj/item/food/spiderlollipop/Initialize(mapload)
. = ..()
AddElement(/datum/element/chewable)
/obj/item/food/swirl_lollipop
name = "swirl lollipop"
desc = "A massive rainbow swirlled lollipop. Said to contain extra sugar."
icon_state = "swirl_lollipop"
worn_icon_state = "lollipop_stick"
inhand_icon_state = "swirl_lollipop"
food_reagents = list(
/datum/reagent/consumable/sugar = 30,
/datum/reagent/drug/happiness = 5, //swirl lollipops make everyone happy!
/datum/reagent/medicine/omnizine = 2,
)
tastes = list("whimsical joy" = 1, "sugar" = 2)
foodtypes = JUNKFOOD | SUGAR
food_flags = FOOD_FINGER_FOOD
slot_flags = ITEM_SLOT_MASK
crafting_complexity = FOOD_COMPLEXITY_1
/obj/item/food/swirl_lollipop/Initialize(mapload)
. = ..()
AddElement(/datum/element/chewable)