mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-15 17:07:44 +01:00
Refactored hitby to be in line with TG's version. Refactored item weight defines to a more clear naming scheme, also in line with TG's version. Refactored how the movement bumps are handled, ported signals to handle them, in preparation for the movement update. Fixed disposal hit bouncing the hitting atom on the wall. Items do not push other items anymore if they are tiny.
294 lines
10 KiB
Plaintext
294 lines
10 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)]'."
|