Merge pull request #8756 from VOREStation/upstream-merge-7449

[MIRROR] Flavour Enhancement: Vending
This commit is contained in:
Novacat
2020-08-21 13:32:37 -04:00
committed by GitHub
28 changed files with 1311 additions and 187 deletions

View File

@@ -28,40 +28,60 @@
icon_state = "4no_raisins"
/obj/item/trash/candy
name = "candy"
name = "hard candy wrapper"
icon_state = "candy"
/obj/item/trash/candy/gums
name = "gummy candy bag"
icon_state = "candy_gums"
/obj/item/trash/candy/proteinbar
name = "protein bar"
name = "protein bar wrapper"
icon_state = "proteinbar"
/obj/item/trash/candy/fruitbar
name = "fruit bar wrapper"
icon_state = "fruitbar"
/obj/item/trash/cheesie
name = "\improper Cheesie Honkers"
name = "\improper Cheesie Honkers bag"
icon_state = "cheesie_honkers"
/obj/item/trash/chips
name = "chips"
name = "chips bag"
icon_state = "chips"
/obj/item/trash/chips/bbq
name = "bbq chips bag"
icon_state = "chips_bbq"
/obj/item/trash/cookiesnack
name = "\improper Carps Ahoy! miniature cookies packet"
icon_state = "cookiesnack"
/obj/item/trash/popcorn
name = "popcorn"
name = "popcorn bag"
icon_state = "popcorn"
/obj/item/trash/tuna
name = "tuna can"
icon_state = "tuna"
/obj/item/trash/sosjerky
name = "Scaredy's Private Reserve Beef Jerky"
name = "Scaredy's Private Reserve Beef Jerky wrapper"
icon_state = "sosjerky"
/obj/item/trash/unajerky
name = "Moghes Imported Sissalik Jerky"
name = "Moghes Imported Sissalik Jerky tin"
icon_state = "unathitinred"
drop_sound = 'sound/items/drop/soda.ogg'
/obj/item/trash/syndi_cakes
name = "syndi cakes"
name = "syndi cakes box"
icon_state = "syndi_cakes"
/obj/item/trash/waffles
name = "waffles"
name = "waffles tray"
icon_state = "waffles"
/obj/item/trash/plate
@@ -73,13 +93,39 @@
icon_state = "snack_bowl"
/obj/item/trash/pistachios
name = "pistachios pack"
name = "pistachios packet"
icon_state = "pistachios_pack"
/obj/item/trash/semki
name = "semki pack"
name = "semki packet"
icon_state = "semki_pack"
/obj/item/trash/koisbar
name = "candy wrapper"
icon_state = "koisbar"
/obj/item/trash/kokobar
name = "candy wrapper"
icon_state = "kokobar"
/obj/item/trash/gumpack
name = "gum packet"
icon_state = "gum_pack"
/obj/item/trash/admints
name = "mint wrapper"
icon_state = "admint_pack"
/obj/item/trash/coffee
name = "empty cup"
icon_state = "coffee_vended"
drop_sound = 'sound/items/drop/papercup.ogg'
/obj/item/trash/ramen
name = "cup ramen"
icon_state = "ramen"
drop_sound = 'sound/items/drop/papercup.ogg'
/obj/item/trash/tray
name = "tray"
icon_state = "tray"
@@ -91,19 +137,19 @@
icon_state = "candle4"
/obj/item/trash/liquidfood
name = "\improper \"LiquidFood\" ration"
name = "\improper \"LiquidFood\" ration packet"
icon_state = "liquidfood"
/obj/item/trash/liquidprotein
name = "\improper \"LiquidProtein\" ration"
name = "\improper \"LiquidProtein\" ration packet"
icon_state = "liquidprotein"
/obj/item/trash/liquidvitamin
name = "\improper \"VitaPaste\" ration"
name = "\improper \"VitaPaste\" ration packet"
icon_state = "liquidvitamin"
/obj/item/trash/tastybread
name = "bread tube"
name = "bread tube wrapper"
icon_state = "tastybread"
// Aurora Food Port
@@ -121,7 +167,28 @@
/obj/item/trash/chipbasket
name = "empty basket"
icon_state = "chipbasket_empty"
icon_state = "chipbasket_empty"
/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'
/obj/item/trash/lollibutt
name = "lollipop stick"
desc = "A lollipop stick devoid of pop."
icon = 'icons/obj/clothing/masks.dmi'
icon_state = "pop-stick"
/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'
slot_flags = SLOT_EARS | SLOT_MASK
/obj/item/trash/attack(mob/M as mob, mob/living/user as mob)
return

View File

@@ -0,0 +1,233 @@
/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'
body_parts_covered = 0
var/type_butt = null
var/chem_volume = 0
var/chewtime = 0
var/brand
var/list/filling = list()
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()
cut_overlays()
if(wrapped)
add_overlay("[initial(icon_state)]_wrapper")
obj/item/clothing/mask/chewable/Initialize()
. = ..()
flags |= NOREACT // so it doesn't react until you light it
create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15
for(var/R in filling)
reagents.add_reagent(R, filling[R])
if(wrapped)
slot_flags = null
/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)
else
STOP_PROCESSING(SSprocessing, src)
/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 ash-tray when you stuff it into your face."
throw_speed = 0.5
icon_state = "chew"
type_butt = /obj/item/trash/spitwad
w_class = 1
slot_flags = SLOT_EARS | SLOT_MASK
chem_volume = 50
chewtime = 300
brand = "tobacco"
/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/cheap
name = "chewing tobacco"
desc = "A chewy wad of tobacco. Cut in long strands and treated with syrup so it tastes less like an ash-tray when you stuff it into your face."
filling = list("nicotine" = 2)
/obj/item/clothing/mask/chewable/tobacco/fine
name = "deluxe chewing tobacco"
desc = "A chewy wad of fine tobacco. Cut in long strands and treated with syrup so it doesn't taste like an ash-tray when you stuff it into your face."
filling = list("nicotine" = 3)
/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."
icon_state = "nic_gum"
type_butt = /obj/item/trash/spitgum
wrapped = TRUE
/obj/item/clothing/mask/chewable/tobacco/nico/Initialize()
. = ..()
reagents.add_reagent("nicotine", 2)
color = reagents.get_color()
/obj/item/weapon/storage/chewables
name = "box of chewing wads master"
desc = "A generic brand of Waffle Co Wads, unflavored chews. Why do these exist?"
icon = 'icons/obj/cigarettes.dmi'
icon_state = "cigpacket"
item_state = "cigpacket"
drop_sound = 'sound/items/drop/shovel.ogg'
use_sound = 'sound/items/storage/pillbottle.ogg'
w_class = 2
throwforce = 2
slot_flags = SLOT_BELT
starts_with = list(/obj/item/clothing/mask/chewable/tobacco = 6)
make_exact_fit()
//Tobacco Tins
/obj/item/weapon/storage/chewables/tobacco
name = "tin of Al Mamun Smooth chewing tobacco"
desc = "Packaged and shipped straight from Kishar, popularised by the biosphere farmers of Kanondaga."
icon_state = "chew_generic"
item_state = "cigpacket"
starts_with = list(/obj/item/clothing/mask/chewable/tobacco/cheap = 6)
storage_slots = 6
/obj/item/weapon/storage/chewables/tobacco/fine
name = "tin of Suamalie chewing tobacco"
desc = "Once reserved for the first-class tourists of Oasis, this premium blend has been released for the public to enjoy."
icon_state = "chew_fine"
item_state = "Dpacket"
starts_with = list(/obj/item/clothing/mask/chewable/tobacco/fine = 6)
/obj/item/weapon/storage/box/fancy/chewables/tobacco/nico
name = "box of Nico-Tine gum"
desc = "A government doctor approved brand of nicotine gum. Cut out the middleman for your addiction fix."
icon = 'icons/obj/cigarettes.dmi'
icon_state = "chew_nico"
item_state = "Epacket"
starts_with = list(/obj/item/clothing/mask/chewable/tobacco/nico = 6)
storage_slots = 6
drop_sound = 'sound/items/drop/box.ogg'
use_sound = 'sound/items/storage/box.ogg'
/obj/item/weapon/storage/box/fancy/chewables/tobacco/update_icon()
icon_state = "[initial(icon_state)][contents.len]"
/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 = 1
slot_flags = SLOT_EARS | SLOT_MASK
chem_volume = 50
chewtime = 300
filling = list("sugar" = 2)
/obj/item/clothing/mask/chewable/candy/gum
name = "chewing gum"
desc = "A chewy wad of fine synthetic rubber and artificial flavoring. Be sure to unwrap it, genius."
icon_state = "gum"
item_state = "gum"
wrapped = TRUE
/obj/item/clothing/mask/chewable/candy/gum/Initialize()
. = ..()
reagents.add_reagent(pick("banana","berryjuice","grapejuice","lemonjuice","limejuice","orangejuice","watermelonjuice"),10)
color = reagents.get_color()
update_icon()
/obj/item/weapon/storage/box/gum
name = "\improper Frooty-Choos flavored gum"
desc = "A small pack of chewing gum in various flavors."
description_fluff = "Frooty-Choos is NanoTrasen's top-selling brand of artificially flavoured fruit-adjacent non-swallowable chew-product. This extremely specific definition places sales figures safely away from competing 'gum' brands."
icon = 'icons/obj/food_snacks.dmi'
icon_state = "gum_pack"
item_state = "candy"
slot_flags = SLOT_EARS
w_class = 1
starts_with = list(/obj/item/clothing/mask/chewable/candy/gum = 5)
can_hold = list(/obj/item/clothing/mask/chewable/candy/gum,
/obj/item/trash/spitgum)
use_sound = 'sound/items/drop/paper.ogg'
drop_sound = 'sound/items/drop/wrapper.ogg'
max_storage_space = 5
foldable = null
trash = /obj/item/trash/gumpack
/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. Make sure to unwrap it, genius."
type_butt = /obj/item/trash/lollibutt
icon_state = "lollipop"
item_state = "lollipop"
wrapped = TRUE
/obj/item/clothing/mask/chewable/candy/lolli/process()
chew()
if(chewtime < 1)
spitout(0)
/obj/item/clothing/mask/chewable/candy/lolli/Initialize()
. = ..()
reagents.add_reagent(pick("banana","berryjuice","grapejuice","lemonjuice","limejuice","orangejuice","watermelonjuice"),20)
color = reagents.get_color()
update_icon()

View File

@@ -488,6 +488,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/weapon/rollingpaper
name = "rolling paper"
desc = "A small, thin piece of easily flammable paper, commonly used for rolling and smoking various dried plants."
description_fluff = "The legalization of certain substances propelled the sale of rolling papers through the roof. Now almost every Trans-stellar produces a variety, often of questionable quality."
icon = 'icons/obj/cigarettes.dmi'
icon_state = "cig paper"
@@ -513,6 +514,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/weapon/flame/lighter
name = "cheap lighter"
desc = "A cheap-as-free lighter."
description_fluff = "The 'hand-made in Altair' sticker underneath is a charming way of saying 'Made with prison labour'. It's no wonder the company can sell these things so cheap."
icon = 'icons/obj/items.dmi'
icon_state = "lighter-g"
item_state = "lighter-g"
@@ -527,6 +529,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/weapon/flame/lighter/zippo
name = "\improper Zippo lighter"
desc = "The zippo."
description_fluff = "Still going after all these years."
icon = 'icons/obj/zippo.dmi'
icon_state = "zippo"
item_state = "zippo"

View File

@@ -1,6 +1,6 @@
/obj/item/clothing/mask/smokable/ecig
name = "electronic cigarette"
desc = "Device with modern approach to smoking."
desc = "For the modern approach to smoking."
icon = 'icons/obj/ecig.dmi'
var/active = 0
//var/obj/item/weapon/cell/ec_cell = /obj/item/weapon/cell/device
@@ -24,6 +24,7 @@
/obj/item/clothing/mask/smokable/ecig/simple
name = "simple electronic cigarette"
desc = "A cheap Lucky 1337 electronic cigarette, styled like a traditional cigarette."
description_fluff = "Produced by the Ward-Takahashi Corporation on behalf of the Lucky Stars cigarette brand, the 1337 is the e-cig of choice for teenage wastrels across the core worlds. Due to a total lack of safety features, this model is banned on most interstellar flights."
icon_state = "ccigoff"
icon_off = "ccigoff"
icon_empty = "ccigoff"
@@ -32,6 +33,7 @@
/obj/item/clothing/mask/smokable/ecig/util
name = "electronic cigarette"
desc = "A popular utilitarian model electronic cigarette, the ONI-55. Comes in a variety of colors."
description_fluff = "Ward-Takahashi's flagship brand of e-cig is a popular fashion accessory in certain circles where open flames are prohibited. Custom casings are sold for almost as much as the device itself, and are practically impossible to DIY."
icon_state = "ecigoff1"
icon_off = "ecigoff1"
icon_empty = "ecigoff1"
@@ -43,6 +45,7 @@
/obj/item/clothing/mask/smokable/ecig/deluxe
name = "deluxe electronic cigarette"
desc = "A premium model eGavana MK3 electronic cigarette, shaped like a cigar."
description_fluff = "The eGavana is a product of Morpheus Cyberkinetics, and comes standard with additional jacks that allow cyborgs and positronics to experience a simulation of soothing artificial oil residues entering their lungs. It's a pretty good cig for meatbags, too."
icon_state = "pcigoff1"
icon_off = "pcigoff1"
icon_empty = "pcigoff2"

View File

@@ -26,6 +26,7 @@
item_state = "syringe_kit"
center_of_mass = list("x" = 13,"y" = 10)
var/foldable = /obj/item/stack/material/cardboard // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard
var/trash = null // if set, can be crushed into a trash item when empty
max_w_class = ITEMSIZE_SMALL
max_storage_space = INVENTORY_BOX_SPACE
use_sound = 'sound/items/storage/box.ogg'
@@ -35,26 +36,37 @@
/obj/item/weapon/storage/box/attack_self(mob/user as mob)
if(..()) return
//try to fold it.
if ( contents.len )
return
//try to fold it
if(ispath(foldable))
if (contents.len)
return
var/found = 0
// Close any open UI windows first
for(var/mob/M in range(1))
if (M.s_active == src)
close(M)
if (M == user)
found = 1
if (!found) // User is too far away
return
// Now make the cardboard
to_chat(user, "<span class='notice'>You fold [src] flat.</span>")
playsound(src, 'sound/items/storage/boxfold.ogg', 30, 1)
new foldable(get_turf(src))
qdel(src)
//try to crush it
if(ispath(trash))
if(contents.len && user.a_intent == I_HURT) // only crumple with things inside on harmintent.
user.visible_message(SPAN_DANGER("You crush \the [src], spilling its contents everywhere!"), SPAN_DANGER("[user] crushes \the [src], spilling its contents everywhere!"))
spill()
else
to_chat(user, SPAN_NOTICE("You crumple up \the [src].")) //make trash
playsound(src.loc, 'sound/items/drop/wrapper.ogg', 30, 1)
var/obj/item/trash = new src.trash()
qdel(src)
user.put_in_hands(trash)
if ( !ispath(foldable) )
return
var/found = 0
// Close any open UI windows first
for(var/mob/M in range(1))
if (M.s_active == src)
close(M)
if ( M == user )
found = 1
if ( !found ) // User is too far away
return
// Now make the cardboard
to_chat(user, "<span class='notice'>You fold [src] flat.</span>")
playsound(src, 'sound/items/storage/boxfold.ogg', 30, 1)
new foldable(get_turf(src))
qdel(src)
/obj/item/weapon/storage/box/survival
name = "emergency supply box"

View File

@@ -265,14 +265,16 @@
/obj/item/weapon/storage/fancy/cigarettes/dromedaryco
name = "\improper DromedaryCo packet"
desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\""
desc = "A packet of six Earth-export DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\""
description_fluff = "DromedaryCo is one of Sol's oldest cigarette brands, and takes pride in having sourced tobcacco from the same Indian plantations since 2044. Popular with those willing to pay extra for a little nostalgia."
icon_state = "Dpacket"
brand = "\improper Dromedary Co. cigarette"
/obj/item/weapon/storage/fancy/cigarettes/killthroat
name = "\improper AcmeCo packet"
desc = "A packet of six AcmeCo cigarettes. For those who somehow want to obtain the record for the most amount of cancerous tumors."
icon_state = "Bpacket"
desc = "A packet of six AcmeCo cigarettes. For those who want to obtain a record for the most cancerous tumors on a budget."
description_fluff = "Available anywhere people breathe and want to breathe less, AcmeCo is the cheapest, most widespread cigarette brand in the galaxy. They taste like trash, but when you're keeping them inside your jumpsuit on a 16 hour shift, you're probably not too concerned with flavour."
icon_state = "Apacket"
brand = "\improper Acme Co. cigarette"
// New exciting ways to kill your lungs! - Earthcrusher //
@@ -280,36 +282,41 @@
/obj/item/weapon/storage/fancy/cigarettes/luckystars
name = "\improper pack of Lucky Stars"
desc = "A mellow blend made from synthetic, pod-grown tobacco. The commercial jingle is guaranteed to get stuck in your head."
description_fluff = "Lucky Stars are some of the most prolific advertisers in the business, with Gilthari Exports plastering the name and slogan on everything from workplace safety videos to racing bikes. 'Feel the gentle warmth of your Lucky Star'."
icon_state = "LSpacket"
brand = "\improper Lucky Star"
/obj/item/weapon/storage/fancy/cigarettes/jerichos
name = "\improper pack of Jerichos"
desc = "Typically seen dangling from the lips of Martian soldiers and border world hustlers. Tastes like hickory smoke, feels like warm liquid death down your lungs."
desc = "Typically seen dangling from the lips of Fleet veterans and border world hustlers. Tastes like hickory smoke, feels like warm liquid death down your lungs."
description_fluff = "The Jericho brand has carefully cultivated its 'rugged' image ever since its completely accidental association with the SolGov-Hegemony war due to their sizable corporate presence in the region. Prior to the war, Jerichos were considered the realm of drunks and sad divorcees."
icon_state = "Jpacket"
brand = "\improper Jericho"
/obj/item/weapon/storage/fancy/cigarettes/menthols
name = "\improper pack of Temperamento Menthols"
desc = "With a sharp and natural organic menthol flavor, these Temperamentos are a favorite of NDV crews. Hardly anyone knows they make 'em in non-menthol!"
desc = "With a sharp and natural organic menthol flavor, these Temperamentos are a favorite of science vessel crews. Hardly anyone knows they make 'em in non-menthol!"
description_fluff = "Temperamento Menthols are a product of the Aether Atmospherics and Recycling company, and the 'smooth' menthol taste is rumoured to be the chemical by-product of some far more profitable industrial synthesis."
icon_state = "TMpacket"
brand = "\improper Temperamento Menthol"
/obj/item/weapon/storage/fancy/cigarettes/carcinomas
name = "\improper pack of Carcinoma Angels"
desc = "This unknown brand was slated for the chopping block, until they were publicly endorsed by an old Earthling gonzo journalist. The rest is history. They sell a variety for cats, too."
icon_state = "CApacket"
desc = "This previously unknown brand was slated for the chopping block, until they were publicly endorsed by an old Earthling gonzo journalist. The rest is history. They sell a variety for cats, too."
description_fluff = "The bitter taste of a Carcinoma Angel is considered desirable by many equally bitter wash-ups who consider themselves to be 'hard-boiled'. The smell is practically inseparable from urban security offices, and old men with exonet radio shows."
brand = "\improper Carcinoma Angel"
/obj/item/weapon/storage/fancy/cigarettes/professionals
name = "\improper pack of Professional 120s"
desc = "Let's face it - if you're smoking these, you're either trying to look upper-class or you're 80 years old. That's the only excuse. They are, however, very good quality."
description_fluff = "Grown and rolled in a meticulously maintained biosphere orbitting Love, P120 tobacco is marketed as 'probably the best in the galaxy'. The premium price point, and the fact that the vast majority of consumers couldn't really tell the difference between this and the next leading brand."
icon_state = "P100packet"
brand = "\improper Professional 120"
/obj/item/weapon/storage/fancy/cigar
name = "cigar case"
desc = "A case for holding your cigars when you are not smoking them."
description_fluff = "The tastefully engraved palm tree tells you that these 'Corona Grande' premium cigars are only sold on the luxury cruises and resorts of Oasis, though ten separate companies produce them for that purpose galaxy-wide. The standard is however very high."
icon_state = "cigarcase"
icon = 'icons/obj/cigarettes.dmi'
w_class = ITEMSIZE_TINY