/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"