Files
Greenjoe12345 d6653ee3aa Tajaran tea and drug expansion (#21651)
Adds two tajaran teas to the game, Messa's Tear and ras'nif. These can
be found in the loadout and the bar, as well as random warehouse spawns.
Adds solar salve, a legal herbal substance from Adhomai, found in the
loadout and warehouse spawns.
Also performs some tweaks to the Konyang teas in order to make brewing
teas with them easier.

---------

Signed-off-by: Greenjoe12345 <33647525+Greenjoe12345@users.noreply.github.com>
2026-01-28 06:43:44 +00:00

313 lines
11 KiB
Plaintext

/obj/item/clothing/mask/chewable
name = "chewable item master"
desc = "If you are seeing this, ahelp it."
icon = 'icons/obj/clothing/masks.dmi'
drop_sound = 'sound/items/drop/food.ogg'
pickup_sound = 'sound/items/pickup/food.ogg'
body_parts_covered = 0
var/damage_per_crunch // if set to a number, chewing something will cause this amount of damage in brute and half of it in pain.
var/crunching = FALSE
var/type_butt = null
var/chem_volume = 0
var/chewtime = 0
var/brand
var/wrapped = FALSE
/obj/item/clothing/mask/chewable/attack_self(mob/user)
if(wrapped)
wrapped = FALSE
to_chat(user, SPAN_NOTICE("You unwrap \the [name]."))
playsound(src.loc, 'sound/items/drop/wrapper.ogg', 50, 1)
slot_flags = SLOT_EARS | SLOT_MASK
update_icon()
/obj/item/clothing/mask/chewable/update_icon()
ClearOverlays()
if(wrapped)
var/mutable_appearance/base_overlay = mutable_appearance(icon, "[initial(icon_state)]_wrapper")
base_overlay.appearance_flags = RESET_COLOR
AddOverlays(base_overlay)
/obj/item/clothing/mask/chewable/Initialize()
create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15
. = ..()
atom_flags |= ATOM_FLAG_NO_REACT // so it doesn't react until you light it
if(wrapped)
slot_flags = null
update_icon()
/obj/item/clothing/mask/chewable/equipped(var/mob/living/user, var/slot)
..()
if(slot == slot_wear_mask)
var/mob/living/carbon/human/C = user
if(C.check_has_mouth())
START_PROCESSING(SSprocessing, src)
else
to_chat(user, SPAN_NOTICE("You don't have a mouth, and can't make much use of \the [src]."))
/obj/item/clothing/mask/chewable/dropped()
STOP_PROCESSING(SSprocessing, src)
..()
/obj/item/clothing/mask/chewable/Destroy()
. = ..()
STOP_PROCESSING(SSprocessing, src)
/obj/item/clothing/mask/chewable/proc/chew()
chewtime--
if(reagents && reagents.total_volume)
if(ishuman(loc))
var/mob/living/carbon/human/C = loc
if (src == C.wear_mask && C.check_has_mouth())
reagents.trans_to_mob(C, REM, CHEM_INGEST, 0.2)
if(isnum(damage_per_crunch && !crunching))
addtimer(CALLBACK(src, PROC_REF(damagecrunch), C), 50, TIMER_UNIQUE)
crunching = TRUE
else
STOP_PROCESSING(SSprocessing, src)
/obj/item/clothing/mask/chewable/proc/damagecrunch(mob/living/carbon/human/user)
if(src == user.wear_mask) // are we still chewing the gum?
user.apply_damage(damage_per_crunch, DAMAGE_BRUTE, BP_HEAD)
user.apply_damage(damage_per_crunch/2, DAMAGE_PAIN, BP_HEAD)
to_chat(user, SPAN_DANGER("You bite down hard on \the [name]!"))
crunching = FALSE
/obj/item/clothing/mask/chewable/process()
chew()
if(chewtime < 1)
spitout()
/obj/item/clothing/mask/chewable/tobacco
name = "wad"
desc = "A chewy wad of tobacco. Cut in long strands and treated with syrup so it doesn't taste like an ashtray when you stuff it into your face."
throw_speed = 0.5
icon_state = "chew"
type_butt = /obj/item/trash/spitwad
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS | SLOT_MASK
chem_volume = 50
chewtime = 300
brand = "tobacco"
/obj/item/trash/spitwad
name = "spit wad"
desc = "A disgusting spitwad."
icon = 'icons/obj/clothing/masks.dmi'
icon_state = "spit-chew"
drop_sound = 'sound/items/drop/flesh.ogg'
pickup_sound = 'sound/items/pickup/flesh.ogg'
slot_flags = SLOT_EARS | SLOT_MASK
/obj/item/clothing/mask/chewable/proc/spitout(var/transfer_color = 1, var/no_message = 0)
if(type_butt)
var/obj/item/butt = new type_butt(src.loc)
transfer_fingerprints_to(butt)
if(transfer_color)
butt.color = color
if(brand)
butt.desc += " This one is \a [brand]."
if(ismob(loc))
var/mob/living/M = loc
if(!no_message)
to_chat(M, SPAN_NOTICE("The [name] runs out of flavor."))
if(M.wear_mask)
M.remove_from_mob(src) //un-equip it so the overlays can update
M.update_inv_wear_mask(0)
if(!M.equip_to_slot_if_possible(butt, slot_wear_mask))
M.update_inv_l_hand(0)
M.update_inv_r_hand(1)
M.put_in_hands(butt)
STOP_PROCESSING(SSprocessing, src)
qdel(src)
/obj/item/clothing/mask/chewable/tobacco/bad
name = "chewing tobacco"
desc = "A chewy wad of cheap tobacco. Cut in long strands and treated with syrup so it tastes less like an ashtray when you stuff it into your face."
reagents_to_add = list(/singleton/reagent/toxin/tobacco/fake = 2)
/obj/item/clothing/mask/chewable/tobacco/generic
name = "chewing tobacco"
desc = "A chewy wad of tobacco. Cut in long strands and treated with syrup so it doesn't taste like an ashtray when you stuff it into your face."
reagents_to_add = list(/singleton/reagent/toxin/tobacco = 2)
/obj/item/clothing/mask/chewable/tobacco/fine
name = "chewing tobacco"
desc = "A chewy wad of fine tobacco. Cut in long strands and treated with syrup so it doesn't taste like an ashtray when you stuff it into your face."
reagents_to_add = list(/singleton/reagent/toxin/tobacco/rich = 2)
/obj/item/clothing/mask/chewable/tobacco/nico
name = "nicotine gum"
desc = "A chewy wad of synthetic rubber, laced with nicotine. Possibly the least disgusting method of nicotine delivery."
reagents_to_add = list(/singleton/reagent/mental/nicotine = 2)
icon_state = "nic_gum"
type_butt = /obj/item/trash/spitgum
wrapped = TRUE
/obj/item/clothing/mask/chewable/tobacco/sweet
name = "chewing tobacco"
desc = "A chewy wad of sweet tobacco. Cut in long strands and treated with syrup so it doesn't taste like an ashtray when you stuff it in your face."
reagents_to_add = list(/singleton/reagent/toxin/tobacco/sweet = 2)
/obj/item/clothing/mask/chewable/tobacco/dyn
name = "dyn chewing tobacco"
desc = "A chewy wad of menthol tobacco. Cut in long strands and treated with syrup and menthol so it doesn't taste like an ashtray when you stuff it into your face."
reagents_to_add = list(
/singleton/reagent/toxin/tobacco/sweet = 1,
/singleton/reagent/drink/dynjuice = 1
)
/obj/item/clothing/mask/chewable/oracle
name = "chewing oracle"
desc = "A chewy wad of oracle. Cut in long strands."
throw_speed = 0.5
icon_state = "chew"
type_butt = /obj/item/trash/spitwad
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS | SLOT_MASK
chem_volume = 50
chewtime = 300
brand = "oracle"
reagents_to_add = list(/singleton/reagent/toxin/oracle = 2)
/obj/item/clothing/mask/chewable/candy
name = "wad"
desc = "A chewy wad of wadding material."
throw_speed = 0.5
icon_state = "chew"
type_butt = /obj/item/trash/spitgum
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS | SLOT_MASK
chem_volume = 50
chewtime = 300
reagents_to_add = list(/singleton/reagent/sugar = 2)
/obj/item/clothing/mask/chewable/chewingkoko
name = "wad"
desc = "A sweet chewy wad of koko reeds, treated with a persevative syrup."
throw_speed = 0.5
icon_state = "chew"
type_butt = /obj/item/trash/spitwad
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS | SLOT_MASK
chem_volume = 50
chewtime = 300
brand = "koko"
reagents_to_add = list(/singleton/reagent/mental/kokoreed = 7)
/obj/item/trash/spitgum
name = "old gum"
desc = "A disgusting chewed up wad of gum."
icon = 'icons/obj/clothing/masks.dmi'
icon_state = "spit-gum"
drop_sound = 'sound/items/drop/flesh.ogg'
pickup_sound = 'sound/items/pickup/flesh.ogg'
slot_flags = SLOT_EARS | SLOT_MASK
/obj/item/clothing/mask/chewable/candy/gum
name = "chewing gum"
desc = "A chewy wad of fine synthetic rubber and artificial flavoring."
icon_state = "gum"
wrapped = TRUE
/obj/item/clothing/mask/chewable/candy/gum/Initialize()
. = ..()
reagents.add_reagent(pick(/singleton/reagent/drink/banana,/singleton/reagent/drink/berryjuice,/singleton/reagent/drink/grapejuice,/singleton/reagent/drink/lemonjuice,/singleton/reagent/drink/limejuice,/singleton/reagent/drink/orangejuice,/singleton/reagent/drink/watermelonjuice),10)
color = reagents.get_color()
update_icon()
/obj/item/clothing/mask/chewable/candy/gum/gumball
name = "\improper gumball"
desc = "A gumball, created and patented by Chip Getmore. Known to contain a hard shell and a reagent interior!"
icon_state = "gumball"
item_state = null
wrapped = FALSE
/obj/item/clothing/mask/chewable/candy/gum/gumball/medical
reagents_to_add = list(/singleton/reagent/tricordrazine = 5)
/obj/item/clothing/mask/chewable/candy/lolli
name = "lollipop"
desc = "A simple artificially flavored sphere of sugar on a handle, colloquially known as a sucker. Allegedly one is born every minute."
type_butt = /obj/item/trash/lollibutt
icon_state = "lollipop"
item_state = "lollipop"
wrapped = TRUE
/obj/item/trash/lollibutt
name = "lollipop stick"
desc = "A lollipop stick devoid of pop."
icon = 'icons/obj/clothing/masks.dmi'
icon_state = "lollipop_stick"
slot_flags = SLOT_EARS | SLOT_MASK
/obj/item/clothing/mask/chewable/candy/lolli/process()
chew()
if(chewtime < 1)
spitout(0)
/obj/item/clothing/mask/chewable/candy/lolli/update_icon()
ClearOverlays()
var/mutable_appearance/base_overlay = mutable_appearance(icon, "[initial(icon_state)]_stick")
base_overlay.appearance_flags = RESET_COLOR
AddOverlays(base_overlay)
if(wrapped)
AddOverlays("[initial(icon_state)]_wrapper")
/obj/item/clothing/mask/chewable/candy/lolli/Initialize()
. = ..()
reagents.add_reagent(pick(/singleton/reagent/drink/banana,/singleton/reagent/drink/berryjuice,/singleton/reagent/drink/grapejuice,/singleton/reagent/drink/lemonjuice,/singleton/reagent/drink/limejuice,/singleton/reagent/drink/orangejuice,/singleton/reagent/drink/watermelonjuice),20)
color = reagents.get_color()
update_icon()
/obj/item/clothing/mask/chewable/candy/lolli/meds
name = "lollipop"
desc = "A sucrose sphere on a small handle, it has been infused with medication."
type_butt = /obj/item/trash/lollibutt
icon_state = "lollipop"
/obj/item/clothing/mask/chewable/candy/lolli/meds/Initialize()
. = ..()
var/singleton/reagent/payload = pick(list(
/singleton/reagent/perconol,
/singleton/reagent/mortaphenyl,
/singleton/reagent/dylovene))
reagents.add_reagent(payload, 15)
color = reagents.get_color()
desc = "[desc] This one is labeled '[initial(payload.name)]'."
/obj/item/clothing/mask/chewable/candy/lolli/weak_meds
name = "medicine lollipop"
desc = "A sucrose sphere on a small handle, it has been infused with medication."
reagents_to_add = list(/singleton/reagent/sugar = 6)
/obj/item/clothing/mask/chewable/candy/lolli/weak_meds/Initialize()
. = ..()
var/singleton/reagent/payload = pick(list(
/singleton/reagent/dylovene,
/singleton/reagent/inaprovaline))
reagents.add_reagent(payload, 15)
color = reagents.get_color()
desc = "[desc] This one is labeled '[initial(payload.name)]'."
/obj/item/clothing/mask/chewable/solar_salve
name = "solar salve"
desc = "A paste made of various Adhomian herbs, chewed to help ward off feelings of hunger, thirst and the cold."
desc_extended = "A herbal mixture originating from Southern Harr'masir, Solar Salve is used to ward off the feelings of hunger, thirst and cold. Nowadays it commonly sees use in the docks of the city of Crevus."
gender = PLURAL
color = "#5f8c37"
icon_state = "wad"
type_butt = /obj/item/trash/spitwad/solar_salve
chem_volume = 50
chewtime = 300
reagents_to_add = list(/singleton/reagent/drugs/solar_salve = 10)
/obj/item/trash/spitwad/solar_salve
name = "chewed plant paste"
desc = "A chewed up lump of plant matter. Disgusting."
gender = PLURAL
color = "#5f8c37"
icon_state = "spit-gum"