From a19b3797b21c8d465cd09febce5b5bde4b584906 Mon Sep 17 00:00:00 2001 From: Batrachophreno Date: Sun, 10 Aug 2025 04:09:16 -0400 Subject: [PATCH] Drobes (#21067) [Original suggestion here.](https://forums.aurorastation.org/topic/22454-tidy-up-lockers/) - Replaces departmental/job-specific wardrobe lockers with new 'Drobe' vending machines, each containing pertinent clothing, all with new icons: ClothesMate, EngiDrobe, AtmosDrobe, HyDrobe, SecDrobe, BarDrobe, ChefDrobe, ChapelDrobe, SciDrobe, MediDrobe, ChemDrobe, CargoDrobe, RoboDrobe - Makes vending machine ads populate at the top of the purchasing UI and randomly cycle. - Few vending-machine related map touch-ups (mostly vending machines missing the floor 'hatched' pattern underneath). - Misc code readability improvements. --- aurorastation.dme | 22 +- .../{vending.dm => vending/_vending.dm} | 187 +- code/game/machinery/vending/antagclothes.dm | 132 + code/game/machinery/vending/booze.dm | 189 ++ code/game/machinery/vending/cigarette.dm | 152 ++ code/game/machinery/vending/clothing.dm | 80 + code/game/machinery/vending/engitech.dm | 271 ++ code/game/machinery/vending/food.dm | 73 + code/game/machinery/vending/hotdrinks.dm | 75 + code/game/machinery/vending/hydro.dm | 362 +++ code/game/machinery/vending/medical.dm | 208 ++ code/game/machinery/vending/misc_awaysite.dm | 140 + code/game/machinery/vending/misc_offship.dm | 63 + code/game/machinery/vending/miscellaneous.dm | 161 ++ code/game/machinery/vending/restocker.dm | 45 + code/game/machinery/vending/security.dm | 116 + code/game/machinery/vending/service.dm | 124 + code/game/machinery/vending/snacks.dm | 245 ++ code/game/machinery/vending/soda.dm | 203 ++ code/game/machinery/vending/wardrobe.dm | 944 +++++++ code/game/machinery/vending_items.dm | 114 - code/game/machinery/vending_types.dm | 2384 ----------------- code/modules/clothing/glasses/glasses.dm | 15 +- .../Chemistry-Reagents-Medicine.dm | 1 + html/changelogs/Batrachophreno-Drobes.yml | 62 + .../Batrachophreno-DrugMessages.yml | 59 + icons/obj/vending.dmi | Bin 85205 -> 113383 bytes maps/sccv_horizon/code/sccv_horizon_areas.dm | 922 ------- maps/sccv_horizon/sccv_horizon.dmm | 143 +- tgui/packages/tgui/interfaces/Vending.tsx | 2 + 30 files changed, 3970 insertions(+), 3524 deletions(-) rename code/game/machinery/{vending.dm => vending/_vending.dm} (83%) create mode 100644 code/game/machinery/vending/antagclothes.dm create mode 100644 code/game/machinery/vending/booze.dm create mode 100644 code/game/machinery/vending/cigarette.dm create mode 100644 code/game/machinery/vending/clothing.dm create mode 100644 code/game/machinery/vending/engitech.dm create mode 100644 code/game/machinery/vending/food.dm create mode 100644 code/game/machinery/vending/hotdrinks.dm create mode 100644 code/game/machinery/vending/hydro.dm create mode 100644 code/game/machinery/vending/medical.dm create mode 100644 code/game/machinery/vending/misc_awaysite.dm create mode 100644 code/game/machinery/vending/misc_offship.dm create mode 100644 code/game/machinery/vending/miscellaneous.dm create mode 100644 code/game/machinery/vending/restocker.dm create mode 100644 code/game/machinery/vending/security.dm create mode 100644 code/game/machinery/vending/service.dm create mode 100644 code/game/machinery/vending/snacks.dm create mode 100644 code/game/machinery/vending/soda.dm create mode 100644 code/game/machinery/vending/wardrobe.dm delete mode 100644 code/game/machinery/vending_items.dm delete mode 100644 code/game/machinery/vending_types.dm create mode 100644 html/changelogs/Batrachophreno-Drobes.yml create mode 100644 html/changelogs/Batrachophreno-DrugMessages.yml delete mode 100644 maps/sccv_horizon/code/sccv_horizon_areas.dm diff --git a/aurorastation.dme b/aurorastation.dme index 470cac1d4c4..d25f1ae67ec 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -985,9 +985,6 @@ #include "code\game\machinery\tesla_beacon.dm" #include "code\game\machinery\transformer.dm" #include "code\game\machinery\turret_control.dm" -#include "code\game\machinery\vending.dm" -#include "code\game\machinery\vending_items.dm" -#include "code\game\machinery\vending_types.dm" #include "code\game\machinery\wall_frames.dm" #include "code\game\machinery\washing_machine.dm" #include "code\game\machinery\abstract\abstract.dm" @@ -1072,6 +1069,25 @@ #include "code\game\machinery\telecomms\machines\processor.dm" #include "code\game\machinery\telecomms\machines\receiver.dm" #include "code\game\machinery\telecomms\machines\server.dm" +#include "code\game\machinery\vending\_vending.dm" +#include "code\game\machinery\vending\antagclothes.dm" +#include "code\game\machinery\vending\booze.dm" +#include "code\game\machinery\vending\cigarette.dm" +#include "code\game\machinery\vending\clothing.dm" +#include "code\game\machinery\vending\engitech.dm" +#include "code\game\machinery\vending\food.dm" +#include "code\game\machinery\vending\hotdrinks.dm" +#include "code\game\machinery\vending\hydro.dm" +#include "code\game\machinery\vending\medical.dm" +#include "code\game\machinery\vending\misc_awaysite.dm" +#include "code\game\machinery\vending\misc_offship.dm" +#include "code\game\machinery\vending\miscellaneous.dm" +#include "code\game\machinery\vending\restocker.dm" +#include "code\game\machinery\vending\security.dm" +#include "code\game\machinery\vending\service.dm" +#include "code\game\machinery\vending\snacks.dm" +#include "code\game\machinery\vending\soda.dm" +#include "code\game\machinery\vending\wardrobe.dm" #include "code\game\modifiers\modifiers.dm" #include "code\game\objects\buckling.dm" #include "code\game\objects\empulse.dm" diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending/_vending.dm similarity index 83% rename from code/game/machinery/vending.dm rename to code/game/machinery/vending/_vending.dm index c522f6bd5d3..ca98c9c9363 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending/_vending.dm @@ -4,18 +4,24 @@ /datum/data/vending_product /// Display name for the product var/product_name = "generic" + /// Typepath of the product that is created when this record "sells" var/product_path = null /// Amount held in the vending machine var/amount = 0 + /// How many we can store at maximum var/max_amount = 0 /// Price to buy one var/price = 0 + /// Whether crew with an ID with an age below AGE_MINOR (20 by default) can buy this item + /// Imported from TG during rework and not implemented, but if we decided on this how FUNNY would that be. + // var/age_restricted = FALSE /// Display color for vending machine listing var/display_color = null /// `CAT_HIDDEN` for contraband, `CAT_COIN` for premium var/category = CAT_NORMAL var/icon/product_icon var/icon/icon_state + name = "generic" /datum/data/vending_product/New(var/path, var/name = null, var/amount = 1, var/price = 0, var/color = null, var/category = CAT_NORMAL) . = ..() @@ -43,10 +49,12 @@ QDEL_NULL(A) /** - * A vending machine + * Vending machine. + * + * Captalism in the year 2467: everything in a vending machine. Even love. */ /obj/machinery/vending - name = "Vendomat" + name = "\improper Vendomat" desc = "A generic vending machine." icon = 'icons/obj/vending.dmi' icon_state = "generic" @@ -57,11 +65,19 @@ manufacturer = "idris" z_flags = ZMM_MANGLE_PLANES - /// `icon_state` when vending + // Every vending machine has one of these. + /// `icon_state` when off. Defined on init. + var/icon_off + /// `icon_state` when vending. Defined on init. var/icon_vend - /// `icon_state` when denying - var/icon_deny + /// 'icon_state' when broken. Defined on init. + var/icon_broken + + /// 'icon_state' when on, if overlay exists. var/icon_screen + /// `icon_state` when denying. + var/icon_deny + // Power idle_power_usage = 10 @@ -86,20 +102,23 @@ /// Set to 1 if status_message is an error var/status_error = 0 - /* - Variables used to initialize the product list - These are used for initialization only, and so are optional if - product_records is specified - */ - var/list/products = list() // For each, use the following pattern: - var/list/contraband = list() // list(/type/path = amount,/type/path2 = amount2) - var/list/premium = list() // No specified amount = only one in stock - var/list/prices = list() // Prices for each item, list(/type/path = price), items not in the list don't have a price. + /** + * Variables used to initialize the product list These are used for initialization only, and so are + * optional if product_records is specified. + * + * For each, use the following pattern: + * list(/type/path = amount,/type/path2 = amount2) + * No specified amount = only one in stock + * Prices for each item, list(/type/path = price), items not in the list don't have a price. + **/ + var/list/products = list() + var/list/contraband = list() + var/list/premium = list() + var/list/prices = list() /// List of vending_product items available. var/list/product_records = list() - // Variables used to initialize advertising /// String of slogans spoken out loud, separated by semicolons var/product_slogans = "" @@ -109,6 +128,12 @@ var/product_ads = "" /// Set on init. Populated by `product_ads` var/list/ads_list = list() + /// Currently displayed avertisement + var/display_ad = "" + /// When did we last update the displayed ad? + var/last_ad = 0 + /// How long until we refresh our ad? + var/ad_delay = 10 SECONDS /// String of messages spoken when item is vended, seperated by semicolons var/vend_reply = "" /// Set on init. Populated by `vend_reply` @@ -122,7 +147,7 @@ /// When did we last pitch? var/last_slogan = 0 /// How long until we can pitch again? - var/slogan_delay = 10 MINUTES + var/slogan_delay = 20 MINUTES // Things that can go wrong /// Ignores if somebody doesn't have card access to that machine. @@ -140,7 +165,7 @@ /// If you can wrench the machine out of place var/can_move = TRUE - /// Id of the refill cartridge that has to be used + /// ID of the refill cartridge that has to be used var/vend_id = "generic" /// If items can be restocked into the vending machine var/restock_items = FALSE @@ -161,24 +186,61 @@ /// Sound made when an item is vended var/vending_sound = 'sound/machines/vending/vending_drop.ogg' - /// Lighting mask for vending machine - var/light_mask - /// This is for scaling the ui buttons - i've settled on 80x80 for machines with prices, and 60x60 for those without and with large inventories (boozeomat) var/ui_size = 80 var/datum/asset/spritesheet/vending/v_asset + // Null/set to 0 for vending machines that shouldn't glow for some reason (Horizon recovery ward) + /// Lighting mask for vending machine + var/light_mask light_range = 2 light_power = 0.9 + /** + * Is this item on station or not + * + * if it doesn't originate from off-station during mapload, all_products_free gets automatically set to TRUE if it was unset previously. + * if it's off-station during mapload, it's also safe from the brand intelligence event + */ + var/onstation = TRUE + + /** + * DO NOT APPLY THIS GLOBALLY. For mapping var edits only. + * A variable to change on a per instance basis that allows the instance to avoid having onstation set for them during mapload. + * Setting this to TRUE means that the vending machine is treated as if it were still onstation if it spawns off-station during mapload. + * Useful to specify an off-station machine that will still have costs for any given reason. + */ + var/onstation_override = FALSE + + /** + * If this is set to TRUE, all products sold by the vending machine are free (cost nothing). + * Takes precedence over any price setting. + * If unset, this will get automatically set to TRUE during init if the machine originates from off-station during mapload. + * Defaults to null, set it to TRUE or FALSE explicitly on a per-machine basis if you want to force it to be a certain value. + */ + var/all_products_free + + /** + * Recommended to set multipliers on these for a given vending machine's parent obj, to make things broadly more or less expensive. + * Vending machine products with no price explicitly set will use the defined prices- otherwise, an explicit price will override. + * If all_products_free is TRUE, all of this will be ignored. + * NOT YET IMPLEMENTED + */ + /// Default price of items if not overridden + var/default_price = 20 + /// Default price of premium items if not overridden + var/extra_price = 50 + /obj/machinery/vending/mechanics_hints(mob/user, distance, is_adjacent) . += ..() . += "A vending machine infected with a launcher virus can be fixed by using a debugger on it. This takes longer than using a wiring panel." . += "All vending machines can be hacked to obtain some contraband items from them, and some can be fed with coins to gain access to premium items." + /obj/machinery/vending/Initialize(mapload) . = ..() wires = new(src) + if(src.product_slogans) src.slogan_list += text2list(src.product_slogans, ";") @@ -189,15 +251,30 @@ if(src.product_ads) src.ads_list += text2list(src.product_ads, ";") + src.last_ad = world.time + rand(0, ad_delay) if(src.vend_reply) src.reply_list += text2list(src.vend_reply, ";") + icon_vend = "[initial(icon_state)]-vend" + icon_broken = "[initial(icon_state)]-broken" + icon_off = "[initial(icon_state)]-off" + reset_light() build_products() build_inventory() power_change() + // Check if we were created off-station during mapload. Non-station vending machines are always free. + var/turf/T = get_turf(src) + if(mapload && T) + if(!is_station_level(T.z)) + if(!onstation_override) + onstation = FALSE + // Only auto-set the free products var if we haven't explicitly assigned a value to it yet. + if(isnull(all_products_free)) + all_products_free = TRUE + return INITIALIZE_HINT_LATELOAD /obj/machinery/vending/LateInitialize() @@ -233,7 +310,7 @@ * products that the vending machine is to carry without manually populating * src.product_records. */ -/obj/machinery/vending/proc/build_inventory() +/obj/machinery/vending/proc/build_inventory(list/productlist, list/recordlist, list/categories, start_empty = FALSE, premium = FALSE) var/list/all_products = list( list(src.products, CAT_NORMAL), list(src.contraband, CAT_HIDDEN), @@ -586,6 +663,7 @@ data["manufacturer"] = manufacturer data["products"] = list() data["ui_size"] = ui_size + data["display_ad"] = display_ad if(currently_vending || !vend_ready) data["vending_item"] = TRUE @@ -634,12 +712,6 @@ else data["coin"] = null - if(src.panel_open) - data["panel"] = TRUE - data["speaker"] = shut_up ? FALSE : TRUE - else - data["panel"] = FALSE - return data /obj/machinery/vending/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) @@ -711,7 +783,6 @@ add_fingerprint(usr) /obj/machinery/vending/proc/vend(datum/data/vending_product/R, mob/user) - if (!R || R.amount < 1) return @@ -808,10 +879,15 @@ src.seconds_electrified-- //Pitch to the people! Really sell it! - if(((src.last_slogan + src.slogan_delay) <= world.time) && (src.slogan_list.len > 0) && (!src.shut_up) && prob(5)) - var/slogan = pick(src.slogan_list) - src.speak(slogan) + + if(((src.last_ad + src.ad_delay) <= world.time) && length(ads_list)) + display_ad = pick(ads_list) + src.last_ad = world.time + + if(((src.last_slogan + src.slogan_delay) <= world.time) && length(slogan_list) && !src.shut_up && prob(2)) + var/slogan = pick(slogan_list) src.last_slogan = world.time + src.speak(slogan) if(src.shoot_inventory && prob(shoot_inventory_chance)) src.throw_item() @@ -834,14 +910,14 @@ if(!anchored) stat |= NOPOWER if(stat & BROKEN) - icon_state = "[initial(icon_state)]-broken" + icon_state = icon_broken ClearOverlays() set_light(0) else if(!(stat & NOPOWER)) icon_state = initial(icon_state) update_icon() else - icon_state = "[initial(icon_state)]-off" + icon_state = icon_off ClearOverlays() set_light(0) @@ -861,7 +937,7 @@ break stat |= BROKEN - src.icon_state = "[initial(icon_state)]-broken" + src.icon_state = icon_broken return /// Somebody cut an important wire and now we're following a new definition of "pitch." @@ -890,7 +966,48 @@ src.visible_message(SPAN_WARNING("[src] launches [throw_item.name] at [target.name]!")) return TRUE -// screens go over the lighting layer, so googly eyes go under them +/// Screens go over the lighting layer. Sorry. /obj/machinery/vending/can_attach_sticker(var/mob/user, var/obj/item/sticker/S) to_chat(user, SPAN_WARNING("\The [src]'s non-stick surface prevents you from attaching a sticker to it!")) return FALSE + +/** + * Refill a vending machine from a refill canister + * + * This takes the products from the refill canister and then fills the products, contraband and premium product categories + * + * Arguments: + * * canister - the vending canister we are refilling from + */ +/obj/item/device/vending_refill + name = "resupply canister" + desc = "A vending machine restock cart." + icon = 'icons/obj/assemblies/electronic_setups.dmi' + icon_state = "setup_medium-open" + item_state = "restock_unit" + force = 16 + throwforce = 10 + throw_speed = 1 + throw_range = 7 + w_class = WEIGHT_CLASS_NORMAL + var/vend_id = "generic" + var/charges = 0 + +/obj/item/device/vending_refill/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) + . = ..() + if(charges > 0) + . += "It can restock [charges] item(s)." + else + . += SPAN_WARNING("It's empty!") + +/obj/item/device/vending_refill/proc/restock_inventory(var/obj/machinery/vending/vendor) + if(vendor) + for(var/datum/data/vending_product/product in vendor.product_records) + if(product.amount < product.max_amount) + var/expense = product.max_amount - product.amount + if(charges < expense) + expense = charges + product.amount += expense + charges -= expense + if(!charges) + break diff --git a/code/game/machinery/vending/antagclothes.dm b/code/game/machinery/vending/antagclothes.dm new file mode 100644 index 00000000000..9d5c9ef626f --- /dev/null +++ b/code/game/machinery/vending/antagclothes.dm @@ -0,0 +1,132 @@ +/* + * Generic Clothing Vendor + * Actor Vendor + **/ + +/obj/machinery/vending/actor + name = "\improper Actor Vendor" + desc = "Has all your odyssey actor items, to let you effectively do your odysseying and actoring." + vend_id = "actor" + icon_state = "generic" + icon_vend = "generic-vend" + light_mask = "generic-lightmask" + products = list( + /obj/item/device/radio/headset/ship/odyssey = 12, + /obj/item/portable_map_reader/odyssey = 12, + /obj/item/card/id/syndicate = 12, + /obj/item/storage/box/syndie_kit/chameleon = 12, + ) + light_color = COLOR_GUNMETAL + random_itemcount = FALSE + +/* +Generic clothing vendor used in antagonist areas. For now, this almost entirely contains generic items. Prioritises recolourable items. +Intended to take some pressure off admins asked regularly to spawn in clothing by allowing players to spawn and colour their clothes themselves. +Only contains very few origin-specific items, as otherwise the list would get so long it'd be entirely incomprehensible. +If you want to expand this to more than primarily generic items, I recommend designing a UI that supports switching between categories. +*/ +/obj/machinery/vending/generic_clothing + name = "\improper Generic Clothing Vendor" + desc = "Contains a large number of generic clothing items. Comes with hand-held dyers to dye its contents however the user wishes." + vend_id = "generic_clothing" + icon_state = "robotics" + icon_vend = "robotics-vend" + light_mask = "robotics-light-mask" + light_color = COLOR_GREEN + random_itemcount = FALSE + products = list ( + // This item allows players to change the colour of recolourable items from this vendor without needing admin intervention. + /obj/item/device/clothes_dyer = 6, + + // Generic suits. + /obj/item/clothing/suit/storage/toggle/labcoat = 6, + /obj/item/clothing/suit/storage/hazardvest/colorable = 6, + /obj/item/clothing/suit/storage/hooded/wintercoat/colorable = 6, + /obj/item/clothing/suit/storage/hooded/wintercoat/hoodie = 6, + /obj/item/clothing/suit/storage/surgical_gown = 6, + /obj/item/clothing/suit/storage/toggle/suitjacket = 6, + /obj/item/clothing/suit/storage/toggle/trench/colorable = 6, + /obj/item/clothing/suit/storage/toggle/bomber = 6, + /obj/item/clothing/suit/storage/toggle/cardigan = 6, + /obj/item/clothing/suit/storage/toggle/dominia/bomber = 6, + /obj/item/clothing/suit/storage/toggle/greatcoat/brown = 6, + + // Generic shirts. + /obj/item/clothing/under/dressshirt/alt = 6, + /obj/item/clothing/under/dressshirt/polo = 6, + /obj/item/clothing/under/dressshirt/silversun= 6, + /obj/item/clothing/under/dressshirt/tanktop = 6, + /obj/item/clothing/under/dressshirt/puffyblouse = 6, + + // Generic pants & skirts. + /obj/item/clothing/pants/shorts/colourable = 6, + /obj/item/clothing/pants/mustang/colourable = 6, + /obj/item/clothing/pants/dress = 6, + /obj/item/clothing/pants/skirt = 6, + /obj/item/clothing/pants/skirt/high = 6, + /obj/item/clothing/pants/skirt/pencil = 6, + + // Generic uniforms. + /obj/item/clothing/under/color/colorable = 6, + /obj/item/clothing/under/syndicate = 6, + /obj/item/clothing/under/syndicate/tracksuit = 6, + /obj/item/clothing/under/dress/colorable/longsleeve = 6, + /obj/item/clothing/under/dress/colorable/sleeveless = 6, + /obj/item/clothing/under/librarian = 6, + /obj/item/clothing/under/rank/medical/generic = 6, + /obj/item/clothing/under/dominia/imperial_suit = 6, + /obj/item/clothing/under/suit_jacket = 6, + /obj/item/clothing/under/tajaran = 6, + + // Generic hats. + /obj/item/clothing/head/bandana/colorable = 6, + /obj/item/clothing/head/beanie = 6, + /obj/item/clothing/head/beret/colorable = 6, + /obj/item/clothing/head/bucket/boonie = 6, + /obj/item/clothing/head/cowboy/wide = 6, + /obj/item/clothing/head/cowboy = 6, + /obj/item/clothing/head/fedora = 6, + /obj/item/clothing/head/flatcap/colourable = 6, + /obj/item/clothing/head/wool = 6, + /obj/item/clothing/head/sidecap = 6, + /obj/item/clothing/head/plain_hood = 6, + + // Generic gloves. + /obj/item/clothing/gloves/black_leather/colour = 6, + /obj/item/clothing/gloves/fingerless/colour = 6, + /obj/item/clothing/gloves/evening = 6, + + // Generic accessories. + /obj/item/clothing/accessory/wcoat_rec = 6, + /obj/item/clothing/accessory/bandanna/colorable = 6, + /obj/item/clothing/accessory/apron = 6, + /obj/item/clothing/accessory/tie/colourable = 6, + /obj/item/clothing/accessory/tie/ribbon/neck = 6, + /obj/item/clothing/accessory/poncho/colorable/gradient = 6, + /obj/item/clothing/accessory/poncho/dominia_cape = 6, + /obj/item/clothing/accessory/scarf = 6, + + // Bags. + /obj/item/storage/backpack/duffel/eng = 6, + /obj/item/storage/backpack/industrial = 6, + /obj/item/storage/backpack/messenger = 6, + /obj/item/storage/backpack/satchel = 6, + /obj/item/storage/backpack/satchel/leather/recolorable = 6, + /obj/item/storage/backpack/satchel/leather = 6, + + // Sunglasses and other eyewear. + /obj/item/clothing/glasses/regular = 6, + /obj/item/clothing/glasses/sunglasses = 6, + /obj/item/clothing/glasses/sunglasses/blindfold = 6, + /obj/item/clothing/glasses/monocle = 6, + /obj/item/clothing/glasses/eyepatch = 6, + + // Shoes and boots. + /obj/item/clothing/shoes/jackboots = 6, + /obj/item/clothing/shoes/jackboots/cavalry = 6, + /obj/item/clothing/shoes/jackboots/toeless = 6, + /obj/item/clothing/shoes/sneakers/black = 6, + /obj/item/clothing/shoes/laceup/colourable = 6, + /obj/item/clothing/shoes/heels = 6, + /obj/item/clothing/shoes/winter = 6, + ) diff --git a/code/game/machinery/vending/booze.dm b/code/game/machinery/vending/booze.dm new file mode 100644 index 00000000000..b0e9bef4c6c --- /dev/null +++ b/code/game/machinery/vending/booze.dm @@ -0,0 +1,189 @@ +/** + * Booze-O-Mat + * Merchant Station + * Abandoned + * Low Supply + */ + +/obj/machinery/vending/boozeomat + name = "Booze-O-Mat" + desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." + icon_state = "boozeomat" //////////////18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles + icon_vend = "boozeomat-vend" + light_mask = "boozeomat-lightmask" + vend_id = "booze" + products = list( + /obj/item/reagent_containers/food/drinks/bottle/applejack = 5, + /obj/item/reagent_containers/food/drinks/bottle/bitters = 6, + /obj/item/reagent_containers/food/drinks/bottle/boukha = 2, + /obj/item/reagent_containers/food/drinks/bottle/brandy = 4, + /obj/item/reagent_containers/food/drinks/bottle/grenadine = 5, + /obj/item/reagent_containers/food/drinks/bottle/tequila = 5, + /obj/item/reagent_containers/food/drinks/bottle/rum = 5, + /obj/item/reagent_containers/food/drinks/bottle/fernet = 3, + /obj/item/reagent_containers/food/drinks/bottle/cognac = 5, + /obj/item/reagent_containers/food/drinks/bottle/cremeyvette = 4, + /obj/item/reagent_containers/food/drinks/bottle/wine = 5, + /obj/item/reagent_containers/food/drinks/bottle/rose_wine = 5, + /obj/item/reagent_containers/food/drinks/bottle/whitewine = 5, + /obj/item/reagent_containers/food/drinks/bottle/skrellwineylpha = 2, + /obj/item/reagent_containers/food/drinks/bottle/drambuie = 4, + /obj/item/reagent_containers/food/drinks/bottle/melonliquor = 2, + /obj/item/reagent_containers/food/drinks/bottle/gin = 5, + /obj/item/reagent_containers/food/drinks/bottle/vermouth = 5, + /obj/item/reagent_containers/food/drinks/bottle/chartreusegreen = 5, + /obj/item/reagent_containers/food/drinks/bottle/guinness = 4, + /obj/item/reagent_containers/food/drinks/bottle/absinthe = 2, + /obj/item/reagent_containers/food/drinks/bottle/bluecuracao = 2, + /obj/item/reagent_containers/food/drinks/bottle/kahlua = 5, + /obj/item/reagent_containers/food/drinks/bottle/triplesec = 5, + /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine = 2, + /obj/item/reagent_containers/food/drinks/bottle/champagne = 5, + /obj/item/reagent_containers/food/drinks/bottle/vodka = 5, + /obj/item/reagent_containers/food/drinks/bottle/vodka/mushroom = 1, + /obj/item/reagent_containers/food/drinks/bottle/pulque = 5, + /obj/item/reagent_containers/food/drinks/bottle/fireball = 2, + /obj/item/reagent_containers/food/drinks/bottle/whiskey = 5, + /obj/item/reagent_containers/food/drinks/bottle/victorygin = 2, + /obj/item/reagent_containers/food/drinks/bottle/makgeolli = 2, + /obj/item/reagent_containers/food/drinks/bottle/soju = 2, + /obj/item/reagent_containers/food/drinks/bottle/sake = 1, + /obj/item/reagent_containers/food/drinks/bottle/cremewhite = 4, + /obj/item/reagent_containers/food/drinks/bottle/mintsyrup = 5, + /obj/item/reagent_containers/food/drinks/bottle/sugartree_liquor = 2, + /obj/item/reagent_containers/food/drinks/bottle/chartreuseyellow = 5, + /obj/item/reagent_containers/food/drinks/bottle/messa_mead = 2, + /obj/item/reagent_containers/food/drinks/bottle/dominian_wine = 1, + /obj/item/reagent_containers/food/drinks/bottle/assunzione_wine = 1, + /obj/item/reagent_containers/food/drinks/bottle/algae_wine = 1, + /obj/item/reagent_containers/food/drinks/bottle/kvass = 1, + /obj/item/reagent_containers/food/drinks/bottle/tarasun = 1, + /obj/item/reagent_containers/food/drinks/bottle/valokki_wine = 1, + /obj/item/reagent_containers/food/drinks/bottle/twentytwoseventyfive = 1, + /obj/item/reagent_containers/food/drinks/bottle/saintjacques = 1, + /obj/item/reagent_containers/food/drinks/bottle/hooch = 1, + /obj/item/reagent_containers/food/drinks/bottle/nemiik = 1, + /obj/item/reagent_containers/food/drinks/bottle/ogogoro = 2, + /obj/item/reagent_containers/food/drinks/carton/applejuice = 2, + /obj/item/reagent_containers/food/drinks/carton/cream = 4, + /obj/item/reagent_containers/food/drinks/carton/dynjuice = 2, + /obj/item/reagent_containers/food/drinks/carton/limejuice = 4, + /obj/item/reagent_containers/food/drinks/carton/lemonjuice = 4, + /obj/item/reagent_containers/food/drinks/carton/orangejuice = 4, + /obj/item/reagent_containers/food/drinks/carton/tomatojuice = 2, + /obj/item/reagent_containers/food/drinks/carton/cranberryjuice = 2, + /obj/item/reagent_containers/food/drinks/carton/watermelonjuice = 2, + /obj/item/reagent_containers/food/drinks/carton/bananajuice = 2, + /obj/item/reagent_containers/food/drinks/carton/fatshouters = 1, + /obj/item/reagent_containers/food/drinks/carton/mutthir = 1, + /obj/item/reagent_containers/food/drinks/boba = 2, + /obj/item/reagent_containers/food/drinks/ice = 9, + /obj/item/storage/box/fancy/vkrexi_swollen_organ = 1 + ) + contraband = list( + /obj/item/reagent_containers/food/drinks/tea = 10 + ) + premium = list( + /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing = 2 + ) + vend_delay = 15 + idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. + product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?" + product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!" + req_access = list(ACCESS_BAR) + random_itemcount = 0 + vending_sound = 'sound/machines/vending/vending_cans.ogg' + light_color = COLOR_PALE_BLUE_GRAY + ui_size = 60 + +/obj/item/device/vending_refill/booze + name = "booze resupply canister" + vend_id = "booze" + charges = 100 //holy shit that's a lot of booze + +/obj/machinery/vending/boozeomat/ui_data(mob/user) + var/list/data = ..() + data["width_override"] = 900 + data["height_override"] = 600 + return data + +/obj/machinery/vending/boozeomat/merchant + // boozeomat variant used on the merchant station + products = list( + /obj/item/reagent_containers/food/drinks/drinkingglass = 12, + /obj/item/reagent_containers/food/drinks/ice = 12, + /obj/item/reagent_containers/food/drinks/bottle/whiskey = 6, + /obj/item/reagent_containers/food/drinks/bottle/tequila = 6, + /obj/item/reagent_containers/food/drinks/bottle/champagne = 2, + /obj/item/reagent_containers/food/drinks/bottle/vodka = 6, + /obj/item/reagent_containers/food/drinks/bottle/rum = 6, + /obj/item/reagent_containers/food/drinks/bottle/wine = 6, + /obj/item/reagent_containers/food/drinks/bottle/cognac = 6, + /obj/item/reagent_containers/food/drinks/bottle/victorygin = 6, + /obj/item/reagent_containers/food/drinks/bottle/boukha = 6, + /obj/item/reagent_containers/food/drinks/bottle/small/beer = 12, + /obj/item/reagent_containers/food/drinks/bottle/absinthe = 6, + /obj/item/reagent_containers/food/drinks/bottle/brandy = 6, + /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine = 6) + random_itemcount = 1 + req_access = list() + restock_items = TRUE + +/obj/machinery/vending/boozeomat/abandoned + // badly stocked, with trash, junk, etc + desc = "Used to hold bottles and drinks cold and nice in the past, now it is all dusty and barely functioning, if at all." + products = list( + /obj/item/reagent_containers/food/drinks/drinkingglass = 1, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/shot = 5, + /obj/item/reagent_containers/food/drinks/ice = 1, + /obj/item/reagent_containers/food/drinks/bottle/whiskey = 2, + /obj/item/reagent_containers/food/drinks/bottle/tequila = 1, + /obj/item/reagent_containers/food/drinks/bottle/vodka = 2, + /obj/item/reagent_containers/food/drinks/bottle/rum = 1, + /obj/item/reagent_containers/food/drinks/bottle/wine = 1, + /obj/item/reagent_containers/food/drinks/bottle/victorygin = 1, + /obj/item/reagent_containers/food/drinks/bottle/ogogoro = 1, + /obj/item/reagent_containers/food/drinks/bottle/small/beer = 2, + /obj/item/reagent_containers/food/drinks/bottle = 6, + /obj/random/junk = 7, + /obj/item/material/shard = 3, + /obj/item/broken_bottle = 5) + random_itemcount = 1 + req_access = list() + restock_items = TRUE + use_power = 0 + +/obj/machinery/vending/boozeomat/low_supply + // just badly stocked + products = list( + /obj/item/reagent_containers/food/drinks/bottle/applejack = 1, + /obj/item/reagent_containers/food/drinks/bottle/bitters = 2, + /obj/item/reagent_containers/food/drinks/bottle/boukha = 1, + /obj/item/reagent_containers/food/drinks/bottle/grenadine = 2, + /obj/item/reagent_containers/food/drinks/bottle/tequila = 1, + /obj/item/reagent_containers/food/drinks/bottle/rum = 1, + /obj/item/reagent_containers/food/drinks/bottle/fernet = 1, + /obj/item/reagent_containers/food/drinks/bottle/drambuie = 2, + /obj/item/reagent_containers/food/drinks/bottle/melonliquor = 1, + /obj/item/reagent_containers/food/drinks/bottle/chartreusegreen = 2, + /obj/item/reagent_containers/food/drinks/bottle/absinthe = 1, + /obj/item/reagent_containers/food/drinks/bottle/kahlua = 1, + /obj/item/reagent_containers/food/drinks/bottle/triplesec = 1, + /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine = 1, + /obj/item/reagent_containers/food/drinks/bottle/vodka = 2, + /obj/item/reagent_containers/food/drinks/bottle/pulque = 1, + /obj/item/reagent_containers/food/drinks/bottle/fireball = 2, + /obj/item/reagent_containers/food/drinks/bottle/cremewhite = 1, + /obj/item/reagent_containers/food/drinks/bottle/mintsyrup = 2, + /obj/item/reagent_containers/food/drinks/bottle/chartreuseyellow = 1, + /obj/item/reagent_containers/food/drinks/bottle/messa_mead = 2, + /obj/item/reagent_containers/food/drinks/bottle/kvass = 1, + /obj/item/reagent_containers/food/drinks/bottle/hooch = 4, + /obj/item/reagent_containers/food/drinks/bottle/nemiik = 1, + /obj/item/reagent_containers/food/drinks/carton/applejuice = 1, + /obj/item/reagent_containers/food/drinks/carton/cream = 4, + /obj/item/reagent_containers/food/drinks/carton/dynjuice = 1, + /obj/item/reagent_containers/food/drinks/carton/tomatojuice = 1, + /obj/item/reagent_containers/food/drinks/carton/cranberryjuice = 1, + /obj/item/reagent_containers/food/drinks/ice = 9 + ) diff --git a/code/game/machinery/vending/cigarette.dm b/code/game/machinery/vending/cigarette.dm new file mode 100644 index 00000000000..45154d44efb --- /dev/null +++ b/code/game/machinery/vending/cigarette.dm @@ -0,0 +1,152 @@ +/* + * Cigarette machine + * Low Supply + * Merchant Station + * Hacked + */ + +/obj/machinery/vending/cigarette + name = "\improper cigarette machine" //OCD had to be uppercase to look nice with the new formating + desc = "If you want to get cancer, might as well do it in style!" + product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" + product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs." + vend_delay = 24 + icon_state = "cigs" + icon_vend = "cigs-vend" + vend_id = "smokes" + products = list( + /obj/item/storage/box/fancy/cigarettes/rugged = 6, + /obj/item/storage/box/fancy/cigarettes = 8, + /obj/item/storage/box/fancy/cigarettes/dromedaryco = 5, + /obj/item/storage/box/fancy/cigarettes/nicotine = 3, + /obj/item/storage/box/fancy/cigarettes/pra = 6, + /obj/item/storage/box/fancy/cigarettes/dpra = 6, + /obj/item/storage/box/fancy/cigarettes/nka = 6, + /obj/item/storage/box/fancy/cigarettes/federation = 3, + /obj/item/storage/box/fancy/cigarettes/dyn = 3, + /obj/item/storage/box/fancy/cigarettes/oracle = 3, + /obj/item/storage/chewables/rollable = 8, + /obj/item/storage/chewables/rollable/unathi = 6, + /obj/item/storage/chewables/rollable/fine = 5, + /obj/item/storage/chewables/rollable/nico = 3, + /obj/item/storage/chewables/rollable/oracle = 5, + /obj/item/storage/chewables/rollable/vedamor = 3, + /obj/item/storage/chewables/tobacco/bad = 6, + /obj/item/storage/chewables/tobacco = 8, + /obj/item/storage/chewables/tobacco/fine = 5, + /obj/item/storage/chewables/tobacco/federation = 2, + /obj/item/storage/chewables/tobacco/dyn = 2, + /obj/item/storage/chewables/tobacco/koko = 2, + /obj/item/storage/chewables/oracle = 4, + /obj/item/storage/box/fancy/chewables/tobacco/nico = 3, + /obj/item/storage/cigfilters = 6, + /obj/item/storage/box/fancy/cigpaper = 6, + /obj/item/storage/box/fancy/cigpaper/fine = 4, + /obj/item/storage/box/fancy/matches = 10, + /obj/item/flame/lighter/random = 4, + /obj/item/spacecash/ewallet/lotto = 30, + /obj/item/clothing/mask/smokable/ecig/util = 2, + /obj/item/clothing/mask/smokable/ecig/simple = 2, + /obj/item/reagent_containers/ecig_cartridge/med_nicotine = 10, + /obj/item/reagent_containers/ecig_cartridge/high_nicotine = 10, + /obj/item/reagent_containers/ecig_cartridge/orange = 10, + /obj/item/reagent_containers/ecig_cartridge/watermelon = 10, + /obj/item/reagent_containers/ecig_cartridge/grape = 10 + ) + contraband = list( + /obj/item/storage/box/fancy/cigarettes/blank = 5, + /obj/item/storage/box/fancy/cigarettes/acmeco = 5, + /obj/item/clothing/mask/smokable/cigarette/cigar/sausage = 3 + ) + premium = list( + /obj/item/flame/lighter/zippo = 4, + /obj/item/storage/box/fancy/cigarettes/cigar = 5 + ) + prices = list( + /obj/item/storage/box/fancy/cigarettes/rugged = 8.00, + /obj/item/storage/box/fancy/cigarettes = 9.00, + /obj/item/storage/box/fancy/cigarettes/dromedaryco = 9.75, + /obj/item/storage/box/fancy/cigarettes/nicotine = 10.50, + /obj/item/storage/box/fancy/cigarettes/pra = 9.75, + /obj/item/storage/box/fancy/cigarettes/dpra = 10.25, + /obj/item/storage/box/fancy/cigarettes/nka = 9.25, + /obj/item/storage/box/fancy/cigarettes/federation = 11.50, + /obj/item/storage/box/fancy/cigarettes/dyn = 10.25, + /obj/item/storage/box/fancy/cigarettes/oracle = 10.25, + /obj/item/storage/chewables/rollable = 7.50, + /obj/item/storage/chewables/rollable/unathi = 7.75, + /obj/item/storage/chewables/rollable/fine = 8.00, + /obj/item/storage/chewables/rollable/nico = 10.00, + /obj/item/storage/chewables/rollable/oracle = 7.75, + /obj/item/storage/chewables/rollable/vedamor = 8.50, + /obj/item/storage/chewables/tobacco/bad = 6.50, + /obj/item/storage/chewables/tobacco = 9.00, + /obj/item/storage/chewables/tobacco/fine = 10.00, + /obj/item/storage/chewables/tobacco/federation = 10.25, + /obj/item/storage/chewables/tobacco/dyn = 9.75, + /obj/item/storage/box/fancy/chewables/tobacco/nico = 10.75, + /obj/item/storage/chewables/oracle = 11.50, + /obj/item/storage/chewables/tobacco/koko = 11.00, + /obj/item/storage/box/fancy/matches = 1.50, + /obj/item/flame/lighter/random = 1.50, + /obj/item/storage/cigfilters = 1.25, + /obj/item/storage/box/fancy/cigpaper = 2.50, + /obj/item/storage/box/fancy/cigpaper/fine = 3.50, + /obj/item/spacecash/ewallet/lotto = 5.00, + /obj/item/clothing/mask/smokable/ecig/simple = 25.00, + /obj/item/clothing/mask/smokable/ecig/util = 35.00, + /obj/item/reagent_containers/ecig_cartridge/med_nicotine = 4.50, + /obj/item/reagent_containers/ecig_cartridge/high_nicotine = 5.25, + /obj/item/reagent_containers/ecig_cartridge/orange = 4.25, + /obj/item/reagent_containers/ecig_cartridge/watermelon = 4.00, + /obj/item/reagent_containers/ecig_cartridge/grape = 4.40 + ) + light_color = COLOR_BLUE_GRAY + +/obj/machinery/vending/cigarette/low_supply + products = list( + /obj/item/storage/box/fancy/cigarettes/rugged = 4, + /obj/item/storage/box/fancy/cigarettes = 2, + /obj/item/storage/box/fancy/cigarettes/dpra = 2, + /obj/item/storage/box/fancy/cigarettes/federation = 1, + /obj/item/storage/chewables/rollable = 2, + /obj/item/storage/chewables/rollable/unathi = 1, + /obj/item/storage/chewables/tobacco/bad = 2, + /obj/item/storage/chewables/tobacco/koko = 1, + /obj/item/storage/cigfilters = 1, + /obj/item/storage/box/fancy/cigpaper = 4, + /obj/item/storage/box/fancy/matches = 4, + /obj/item/spacecash/ewallet/lotto = 9, + /obj/item/clothing/mask/smokable/ecig/util = 1, + /obj/item/clothing/mask/smokable/ecig/simple = 1, + /obj/item/reagent_containers/ecig_cartridge/med_nicotine = 2, + /obj/item/reagent_containers/ecig_cartridge/grape = 1 + ) + +/obj/machinery/vending/cigarette/merchant + // Mapped in merchant station + premium = list() + prices = list() + products = list( + /obj/item/storage/box/fancy/cigarettes = 10, + /obj/item/storage/box/fancy/cigarettes/oracle = 10, + /obj/item/storage/box/fancy/matches = 10, + /obj/item/flame/lighter/random = 4, + /obj/item/storage/box/fancy/cigarettes/cigar = 5, + /obj/item/storage/box/fancy/cigarettes/acmeco = 5 + ) + +/obj/machinery/vending/cigarette/hacked + name = "hacked cigarette machine" + prices = list() + products = list( + /obj/item/storage/box/fancy/cigarettes = 10, + /obj/item/storage/box/fancy/matches = 10, + /obj/item/flame/lighter/zippo = 4, + /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2 + ) + +/obj/item/device/vending_refill/smokes + name = "smokes resupply canister" + vend_id = "smokes" + charges = 25 diff --git a/code/game/machinery/vending/clothing.dm b/code/game/machinery/vending/clothing.dm new file mode 100644 index 00000000000..6225b49d370 --- /dev/null +++ b/code/game/machinery/vending/clothing.dm @@ -0,0 +1,80 @@ +/** + * ClothesMate + */ + +/obj/machinery/vending/clothing + name = "ClothesMate" + desc = "A vending machine for clothing." + icon_state = "clothes" + icon_vend = "clothes-vend" + icon_deny = "clothes-deny" + product_ads = "Dress for success!;Prepare to look swagalicious!;Look at all this swag!;Why leave style up to fate? Use the ClothesMate!" + vend_reply = "Thank you for using ClothesMate!" + vend_id = "wardrobe" + products = list( + // Suits + /obj/item/clothing/under/color/black = 4, + /obj/item/clothing/under/color/grey = 4, + /obj/item/clothing/under/color/white = 4, + /obj/item/clothing/under/color/red = 4, + /obj/item/clothing/under/color/orange = 4, + /obj/item/clothing/under/color/yellow = 4, + /obj/item/clothing/under/color/green = 4, + /obj/item/clothing/under/color/blue = 4, + /obj/item/clothing/under/color/purple = 4, + /obj/item/clothing/under/swimsuit/black = 2, + /obj/item/clothing/under/swimsuit/blue = 2, + /obj/item/clothing/under/swimsuit/red = 2, + /obj/item/clothing/under/swimsuit/purple = 2, + /obj/item/clothing/under/dressshirt/silversun = 8, + // Pants + /obj/item/clothing/pants/black = 8, + /obj/item/clothing/pants/tan = 4, + /obj/item/clothing/pants/jeans = 4, + /obj/item/clothing/pants/jeansblack = 4, + /obj/item/clothing/pants/striped = 4, + /obj/item/clothing/pants/track = 4, + /obj/item/clothing/pants/track/red = 4, + /obj/item/clothing/pants/shorts/athletic/black = 2, + /obj/item/clothing/pants/shorts/athletic/blue = 2, + /obj/item/clothing/pants/shorts/athletic/red = 2, + /obj/item/clothing/pants/shorts/athletic/green = 2, + // Shoes + /obj/item/clothing/shoes/sneakers/black = 8, + /obj/item/clothing/shoes/sneakers/brown = 4, + /obj/item/clothing/shoes/sneakers/black/tajara = 2, + /obj/item/clothing/shoes/vaurca = 2, + /obj/item/clothing/shoes/workboots = 8, + /obj/item/clothing/shoes/workboots/toeless = 4, + /obj/item/clothing/shoes/sandals = 4, + /obj/item/clothing/shoes/winter = 8, + /obj/item/clothing/shoes/winter/toeless = 4, + /obj/item/clothing/shoes/footwraps = 2, + // Headwear + /obj/item/clothing/head/hijab = 2, + /obj/item/clothing/head/turban = 2, + /obj/item/clothing/head/kippah = 2, + /obj/item/clothing/mask/trinary_mask = 2, + // Eyewear + /obj/item/clothing/glasses/regular = 4, + /obj/item/clothing/glasses/regular/circle = 4, + /obj/item/clothing/glasses/night/aviator = 8, + /obj/item/clothing/glasses/sunglasses = 8, + /obj/item/clothing/glasses/fakesunglasses = 4 + ) + contraband = list( + /obj/item/clothing/head/bandana/pirate = 4, + /obj/item/clothing/glasses/eyepatch = 4, + /obj/item/clothing/under/rank/machinist/einstein = 4, + /obj/item/clothing/under/rank/liaison/einstein = 4, + /obj/item/clothing/glasses/sunglasses/blindfold = 4, + /obj/item/clothing/mask/fakemoustache = 4 + ) + premium = list( + /obj/item/clothing/head/fez = 2, + /obj/item/clothing/head/bowlerhat = 2, + /obj/item/clothing/head/that = 2 + ) + light_mask = "clothes-lightmask" + light_color = COLOR_PALE_BLUE_GRAY + restock_items = TRUE diff --git a/code/game/machinery/vending/engitech.dm b/code/game/machinery/vending/engitech.dm new file mode 100644 index 00000000000..c052db5fc27 --- /dev/null +++ b/code/game/machinery/vending/engitech.dm @@ -0,0 +1,271 @@ +/** + * Robotech Deluxe + * EngiVend + * Low Supply + * Robco Tool Maker + * YouTool + * Low Supply + * SCC Encryption Key Vendor + * Vendomat (Parts Vendor) + * Syndicate + */ + +/obj/machinery/vending/robotics + name = "Robotech Deluxe" + desc = "All the tools you need to create your own robot army." + icon_state = "robotics" + icon_vend = "robotics-vend" + req_access = list(ACCESS_ROBOTICS) + vend_id = "robo-tools" + products = list( + /obj/item/stack/cable_coil = 4, + /obj/item/device/flash/synthetic = 4, + /obj/item/cell/high = 12, + /obj/item/device/assembly/prox_sensor = 3, + /obj/item/device/assembly/signaler = 3, + /obj/item/device/healthanalyzer = 3, + /obj/item/surgery/scalpel = 2, + /obj/item/surgery/circular_saw = 2, + /obj/item/screwdriver = 5, + /obj/item/crowbar = 5 + ) + contraband = list( + /obj/item/device/flash = 2 + ) + premium = list( + /obj/item/device/paicard = 2 + ) + //everything after the power cell had no amounts, I improvised. -Sayu + restock_blocked_items = list( + /obj/item/stack/cable_coil, + /obj/item/device/flash, + /obj/item/light/tube + ) + restock_items = TRUE + random_itemcount = 0 + light_color = COLOR_BABY_BLUE + manufacturer = "hephaestus" + +/obj/item/device/vending_refill/robo + name = "robo-tools resupply canister" + vend_id = "robo-tools" + charges = 38 + +/obj/machinery/vending/engivend + name = "Engi-Vend" + desc = "Spare tool vending. What? Did you expect some witty description?" + icon_state = "engivend" + icon_vend = "engivend-vend" + req_access = list(ACCESS_ENGINE) + vend_id = "tools" + products = list( + /obj/item/device/multitool = 4, + /obj/item/taperoll/engineering = 4, + /obj/item/clothing/glasses/safety/goggles = 4, + /obj/item/airlock_electronics = 20, + /obj/item/module/power_control = 10, + /obj/item/airalarm_electronics = 10, + /obj/item/firealarm_electronics = 10, + /obj/item/cell/high = 10, + /obj/item/grenade/chem_grenade/antifuel = 5, + /obj/item/device/geiger = 5 + ) + contraband = list( + /obj/item/cell/potato = 3 + ) + premium = list( + /obj/item/storage/belt/utility = 3 + ) + restock_items = TRUE + random_itemcount = 0 + light_color = COLOR_GOLD + manufacturer = "hephaestus" + +/obj/machinery/vending/engivend/low_supply + products = list( + /obj/item/device/multitool = 2, + /obj/item/taperoll/engineering = 2, + /obj/item/clothing/glasses/safety/goggles = 3, + /obj/item/airlock_electronics = 12, + /obj/item/module/power_control = 7, + /obj/item/airalarm_electronics = 7, + /obj/item/firealarm_electronics = 8, + /obj/item/cell/high = 4, + /obj/item/grenade/chem_grenade/antifuel = 3, + /obj/item/device/geiger = 1 + ) + +/obj/machinery/vending/tool + name = "YouTool" + desc = "Tools for tools." + icon_state = "tool" + icon_vend = "tool-vend" + vend_id = "tools" + //req_access = list(ACCESS_MAINT_TUNNELS) //Maintenance access + products = list( + /obj/item/stack/cable_coil/random = 10, + /obj/item/crowbar = 5, + /obj/item/weldingtool = 3, + /obj/item/wirecutters = 5, + /obj/item/wrench = 5, + /obj/item/device/analyzer = 5, + /obj/item/device/t_scanner = 5, + /obj/item/screwdriver = 5, + /obj/item/tape_roll = 3, + /obj/item/hammer = 5 + ) + contraband = list( + /obj/item/weldingtool/hugetank = 2, + /obj/item/clothing/gloves/yellow/budget = 2 + ) + premium = list( + /obj/item/clothing/gloves/yellow = 1 + ) + restock_blocked_items = list( + /obj/item/stack/cable_coil, + /obj/item/weldingtool, + /obj/item/weldingtool/hugetank + ) + restock_items = TRUE + light_color = COLOR_GOLD + manufacturer = "hephaestus" + +/obj/machinery/vending/tool/low_supply + products = list( + /obj/item/stack/cable_coil/random = 4, + /obj/item/crowbar = 3, + /obj/item/weldingtool = 1, + /obj/item/wirecutters = 2, + /obj/item/wrench = 2, + /obj/item/device/analyzer = 3, + /obj/item/device/t_scanner = 2, + /obj/item/screwdriver = 3, + /obj/item/tape_roll = 1, + /obj/item/hammer = 1 + ) + +//This one's from bay12 +/obj/machinery/vending/engineering + name = "Robco Tool Maker" + desc = "Everything you need for do-it-yourself station repair." + icon_state = "engi" + icon_vend = "engi-vend" + req_access = list(ACCESS_ENGINE_EQUIP) + vend_id = "tools" + products = list( + /obj/item/clothing/head/hardhat = 4, + /obj/item/storage/belt/utility = 5, + /obj/item/clothing/glasses/safety/goggles = 4, + /obj/item/clothing/gloves/yellow = 4, + /obj/item/screwdriver = 8, + /obj/item/crowbar = 8, + /obj/item/wirecutters = 8, + /obj/item/device/multitool = 8, + /obj/item/wrench = 8, + /obj/item/device/t_scanner = 8, + /obj/item/stack/cable_coil/random = 10, + /obj/item/cell = 5, + /obj/item/device/analyzer = 5, + /obj/item/cell/high = 2, + /obj/item/weldingtool = 8, + /obj/item/clothing/head/welding = 8, + /obj/item/light/tube = 10, + /obj/item/clothing/head/hardhat/firefighter = 4, + /obj/item/clothing/suit/fire = 4, + /obj/item/stock_parts/scanning_module = 5, + /obj/item/stock_parts/micro_laser = 5, + /obj/item/stock_parts/matter_bin = 5, + /obj/item/stock_parts/manipulator = 5, + /obj/item/stock_parts/console_screen = 5, + /obj/item/tape_roll = 5 + ) + + restock_blocked_items = list( + /obj/item/stack/cable_coil, + /obj/item/weldingtool, + /obj/item/light/tube + ) + restock_items = TRUE + light_color = COLOR_GOLD + manufacturer = "hephaestus" + +/obj/item/device/vending_refill/tools + name = "tools resupply canister" + vend_id = "tools" + charges = 25 + + +/obj/machinery/vending/encryption + name = "SCC Encryption Key Vendor" + desc = "Communications galore, at the tip of your fingers." + product_ads = "Stop walkin, get talkin!;Get them keys!;Psst, got a minute?" + icon_state = "wallencrypt" + density = 0 //It is wall-mounted. + req_access = list(ACCESS_HOP) + vend_id = "encryption" + products = list( + /obj/item/device/encryptionkey/heads/captain = 1, + /obj/item/device/encryptionkey/heads/ce = 1, + /obj/item/device/encryptionkey/heads/cmo = 1, + /obj/item/device/encryptionkey/heads/hos = 1, + /obj/item/device/encryptionkey/heads/rd = 1, + /obj/item/device/encryptionkey/heads/xo = 1, + /obj/item/device/encryptionkey/headset_operations_manager = 1, + /obj/item/device/encryptionkey/headset_com = 5, + /obj/item/device/encryptionkey/headset_cargo = 5, + /obj/item/device/encryptionkey/headset_eng = 5, + /obj/item/device/encryptionkey/headset_med = 5, + /obj/item/device/encryptionkey/headset_sci = 5, + /obj/item/device/encryptionkey/headset_sec = 5, + /obj/item/device/encryptionkey/headset_service = 5, + /obj/item/device/encryptionkey/headset_warden = 5, + /obj/item/device/encryptionkey/headset_xenoarch = 5, + ) + +/obj/item/device/vending_refill/encryption + name = "encryption key resupply canister" + vend_id = "encryption" + charges = 60 + + +/obj/machinery/vending/assist + vend_id = "tools" + icon_state = "generic" + icon_vend = "generic-vend" + light_mask = "generic-lightmask" + products = list( + /obj/item/device/assembly/prox_sensor = 5, + /obj/item/device/assembly/igniter = 3, + /obj/item/device/assembly/signaler = 4, + /obj/item/wirecutters = 1 + ) + contraband = list( + /obj/item/device/flashlight = 5, + /obj/item/device/assembly/timer = 2, + /obj/item/device/assembly/infra = 2, + /obj/item/device/assembly/voice = 2 + ) + premium = list( + /obj/item/device/multitool/ = 2 + ) + product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" + restock_items = TRUE + light_color = COLOR_GUNMETAL + +/obj/machinery/vending/assist/synd + name = "\improper Parts vendor" + desc = "Just a normal vending machine - nothing to see here." + icon_state = "generic" + icon_vend = "generic-vend" + light_mask = "generic-lightmask" + contraband = null + random_itemcount = 0 + products = list( + /obj/item/device/assembly/prox_sensor = 5, + /obj/item/device/assembly/signaler = 4, + /obj/item/device/assembly/infra = 4, + /obj/item/device/assembly/prox_sensor = 4, + /obj/item/handcuffs = 8, + /obj/item/device/flash = 4, + /obj/item/clothing/glasses/sunglasses = 4 + ) diff --git a/code/game/machinery/vending/food.dm b/code/game/machinery/vending/food.dm new file mode 100644 index 00000000000..a47c1e37018 --- /dev/null +++ b/code/game/machinery/vending/food.dm @@ -0,0 +1,73 @@ +/** + * MREs + * Low Supply + * Ramen + */ + +/obj/machinery/vending/mredispenser + name = "MRE dispenser" + desc = "A vending machine filled with MRE's." + icon_state = "mrevend" + icon_deny = "mrevend-deny" + product_slogans = ";FOREIGN LEGION TESTED!, FOREIGN LEGION RECOMMENDED!, FOREIGN LEGION APPROVED!;YOU ARE NOT ALLOWED A JELLY DOUGHNUT!;YOU DON'T WANT TO DIE HUNGRY, SOLDIER!" + product_ads = "Everything the body needs!;Now trans-fat free!;Vegan options are available.;Safe for all known species!" + products = list( + /obj/item/storage/box/fancy/mre = 2, + /obj/item/storage/box/fancy/mre/menu2 = 2, + /obj/item/storage/box/fancy/mre/menu3 = 2, + /obj/item/storage/box/fancy/mre/menu4 = 2, + /obj/item/storage/box/fancy/mre/menu5 = 2, + /obj/item/storage/box/fancy/mre/menu6 = 2, + /obj/item/storage/box/fancy/mre/menu7 = 2, + /obj/item/storage/box/fancy/mre/menu8 = 2, + /obj/item/storage/box/fancy/mre/menu9 = 10, + /obj/item/storage/box/fancy/mre/menu10 = 10, + /obj/item/storage/box/fancy/mre/menu12 = 5 + ) + prices = list( + /obj/item/storage/box/fancy/mre = 12.00, + /obj/item/storage/box/fancy/mre/menu2 = 12.00, + /obj/item/storage/box/fancy/mre/menu3 = 12.00, + /obj/item/storage/box/fancy/mre/menu4 = 12.00, + /obj/item/storage/box/fancy/mre/menu5 = 12.00, + /obj/item/storage/box/fancy/mre/menu6 = 12.00, + /obj/item/storage/box/fancy/mre/menu7 = 12.00, + /obj/item/storage/box/fancy/mre/menu8 = 12.00, + /obj/item/storage/box/fancy/mre/menu9 = 12.00, + /obj/item/storage/box/fancy/mre/menu10 = 12.00, + /obj/item/storage/box/fancy/mre/menu12 = 12.00 + ) + contraband = list( + /obj/item/storage/box/fancy/mre/menu11 = 5, // memes. + /obj/item/reagent_containers/food/snacks/liquidfood = 5 + ) + vend_delay = 15 + idle_power_usage = 211 // Cold MREs... + +/obj/machinery/vending/mredispenser/low_supply + products = list( + /obj/item/storage/box/fancy/mre = 1, + /obj/item/storage/box/fancy/mre/menu2 = 1, + /obj/item/storage/box/fancy/mre/menu4 = 1, + /obj/item/storage/box/fancy/mre/menu9 = 4, + /obj/item/storage/box/fancy/mre/menu10 = 5, + /obj/item/storage/box/fancy/mre/menu12 = 3 + ) + +/obj/machinery/vending/ramen + name = "\improper ramen vendor" + desc = "A generic brand vending machine capable of cooking tonkotsu ramen at the push of a button. Truly a pinnacle of human engineering!" + icon_state = "ramen" + icon_vend = "ramen-vend" + icon_deny = "ramen-deny" + product_slogans = "Irasshaimase!" + vend_id = "ramen" + products = list( + /obj/item/reagent_containers/food/snacks/ramenbowl = 15, + /obj/item/reagent_containers/food/snacks/aoyama_ramen = 15 + ) + prices = list( + /obj/item/reagent_containers/food/snacks/ramenbowl = 7.00, + /obj/item/reagent_containers/food/snacks/aoyama_ramen = 8.25 + ) + light_color = COLOR_GUNMETAL diff --git a/code/game/machinery/vending/hotdrinks.dm b/code/game/machinery/vending/hotdrinks.dm new file mode 100644 index 00000000000..6bc82deffbf --- /dev/null +++ b/code/game/machinery/vending/hotdrinks.dm @@ -0,0 +1,75 @@ +/** + * Hot drinks machine + * Low Supply + * Free + */ + +/obj/machinery/vending/coffee + name = "\improper Hot Drinks machine" + desc = "A vending machine which dispenses hot drinks." + product_ads = "Have a drink!;Drink up!;It's good for you!;Would you like a hot joe?;I'd kill for some coffee!;The best beans in the galaxy.;Only the finest brew for you.;Mmmm. Nothing like a coffee.;I like coffee, don't you?;Coffee helps you work!;Try some tea.;We hope you like the best!;Try our new chocolate!;Admin conspiracies" + icon_state = "coffee" + icon_vend = "coffee-vend" + icon_screen = "coffee-screen" + light_mask = "coffee-lightmask" + vend_delay = 34 + idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. + vend_id = "coffee" + products = list( + /obj/item/reagent_containers/food/drinks/coffee = 25, + /obj/item/reagent_containers/food/drinks/tea = 25, + /obj/item/reagent_containers/food/drinks/greentea = 25, + /obj/item/reagent_containers/food/drinks/chaitea = 25, + /obj/item/reagent_containers/food/drinks/hotcider = 25, + /obj/item/reagent_containers/food/drinks/h_chocolate = 25, + /obj/item/reagent_containers/food/snacks/donut/normal = 20 + ) + contraband = list( + /obj/item/reagent_containers/food/drinks/ice = 10, + /obj/item/reagent_containers/food/drinks/carton/soymilk = 2 + ) + prices = list( + /obj/item/reagent_containers/food/drinks/coffee = 2, + /obj/item/reagent_containers/food/drinks/tea = 2, + /obj/item/reagent_containers/food/drinks/greentea = 2.25, + /obj/item/reagent_containers/food/drinks/chaitea = 2.50, + /obj/item/reagent_containers/food/drinks/hotcider = 2.50, + /obj/item/reagent_containers/food/drinks/h_chocolate = 2, + /obj/item/reagent_containers/food/snacks/donut/normal = 2.50 + ) + premium = list( + /obj/item/reagent_containers/glass/beaker/teapot/ = 5 + ) + vending_sound = 'sound/machines/vending/vending_coffee.ogg' + cooling_temperature = T0C + 57 //Optimal coffee temperature + heating_temperature = T0C + 100 //ULTRA HOT COFFEE + temperature_setting = -1 + light_color = COLOR_BROWN + +/obj/machinery/vending/coffee/free + name = "\improper Free Hot Drinks machine" + desc = "A vending machine which dispenses complimentary hot drinks." + random_itemcount = 0 + products = list( + /obj/item/reagent_containers/food/drinks/coffee = 12, + /obj/item/reagent_containers/food/drinks/tea = 8, + /obj/item/reagent_containers/food/drinks/h_chocolate = 8, + /obj/item/reagent_containers/food/snacks/donut/normal = 6 + ) + prices = list() + +/obj/machinery/vending/coffee/low_supply + products = list( + /obj/item/reagent_containers/food/drinks/coffee = 2, + /obj/item/reagent_containers/food/drinks/tea = 3, + /obj/item/reagent_containers/food/drinks/greentea = 1, + /obj/item/reagent_containers/food/drinks/chaitea = 1, + /obj/item/reagent_containers/food/drinks/hotcider = 1, + /obj/item/reagent_containers/food/drinks/h_chocolate = 1, + /obj/item/reagent_containers/food/snacks/donut/normal = 2 + ) + +/obj/item/device/vending_refill/coffee + name = "coffee resupply canister" + vend_id = "coffee" + charges = 38 diff --git a/code/game/machinery/vending/hydro.dm b/code/game/machinery/vending/hydro.dm new file mode 100644 index 00000000000..318f7fd8923 --- /dev/null +++ b/code/game/machinery/vending/hydro.dm @@ -0,0 +1,362 @@ +/** + * NutriMax + * Low Supply + * NutriMax Xenobotany + * Low Supply + * HydroVend + * Low Supply + * Public Garden ($) + * GardenVend + * MegaSeed Servitor + */ + +/obj/machinery/vending/hydronutrients + name = "NutriMax" + desc = "A plant nutrients vendor." + product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" + product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..." + icon_state = "nutri" + icon_vend = "nutri-vend" + vend_id = "hydro" + products = list( + /obj/item/reagent_containers/glass/fertilizer/ez = 6, + /obj/item/reagent_containers/glass/fertilizer/l4z = 5, + /obj/item/reagent_containers/glass/fertilizer/rh = 3, + /obj/item/plantspray/pests = 20, + /obj/item/reagent_containers/syringe = 5, + /obj/item/storage/bag/plants = 5 + ) + premium = list( + /obj/item/reagent_containers/glass/bottle/ammonia = 10, + /obj/item/reagent_containers/glass/bottle/diethylamine = 5, + /obj/random/horticulture_magazine = 4 + ) + contraband = list( + /obj/item/reagent_containers/glass/bottle/mutagen = 2 + ) + idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. + random_itemcount = 0 + light_color = COLOR_BABY_BLUE + +/obj/machinery/vending/hydronutrients/low_supply + products = list( + /obj/item/reagent_containers/glass/fertilizer/ez = 3, + /obj/item/reagent_containers/glass/fertilizer/l4z = 4, + /obj/item/reagent_containers/glass/fertilizer/rh = 1, + /obj/item/plantspray/pests = 12, + /obj/item/reagent_containers/syringe = 3, + /obj/item/storage/bag/plants = 3 + ) + +/obj/machinery/vending/hydronutrients/xenobotany + products = list( + /obj/item/reagent_containers/glass/fertilizer/ez = 6, + /obj/item/reagent_containers/glass/fertilizer/l4z = 6, + /obj/item/reagent_containers/glass/fertilizer/rh = 3, + /obj/item/plantspray/pests = 20, + /obj/item/reagent_containers/syringe = 6, + /obj/item/storage/bag/plants = 6, + /obj/item/device/analyzer/plant_analyzer = 2, + /obj/item/material/minihoe = 2, + /obj/item/material/hatchet = 2, + /obj/item/wirecutters/clippers = 2, + /obj/item/reagent_containers/spray/plantbgone = 2, + /obj/item/reagent_containers/glass/bottle/mutagen = 3 + ) + +/obj/machinery/vending/hydronutrients/xenobotany/low_supply + products = list( + /obj/item/reagent_containers/glass/fertilizer/ez = 3, + /obj/item/reagent_containers/glass/fertilizer/l4z = 4, + /obj/item/reagent_containers/glass/fertilizer/rh = 1, + /obj/item/plantspray/pests = 12, + /obj/item/reagent_containers/syringe = 4, + /obj/item/storage/bag/plants = 2, + /obj/item/device/analyzer/plant_analyzer = 1, + /obj/item/material/minihoe = 1, + /obj/item/material/hatchet = 1, + /obj/item/wirecutters/clippers = 1, + /obj/item/reagent_containers/spray/plantbgone = 1, + /obj/item/reagent_containers/glass/bottle/mutagen = 2 + ) + +//Used specifically for more advanced setups, includes analyzers and tools inside the machine. +/obj/machinery/vending/hydronutrients/hydroponics + name = "HydroVend" + desc = "A one stop shop for all your hydroponics needs." + + products = list( + /obj/item/reagent_containers/glass/fertilizer/ez = 6, + /obj/item/reagent_containers/glass/fertilizer/l4z = 6, + /obj/item/reagent_containers/glass/fertilizer/rh = 3, + /obj/item/plantspray/pests = 10, + /obj/item/reagent_containers/syringe = 6, + /obj/item/storage/bag/plants = 6, + /obj/item/device/analyzer/plant_analyzer = 2, + /obj/item/material/minihoe = 2, + /obj/item/material/hatchet = 2, + /obj/item/wirecutters/clippers = 2, + /obj/item/reagent_containers/spray/plantbgone = 2 + ) + premium = list( + /obj/item/reagent_containers/glass/bottle/ammonia = 10, + /obj/item/reagent_containers/glass/bottle/diethylamine = 5, + /obj/random/horticulture_magazine = 4 + ) + contraband = list( + /obj/item/reagent_containers/glass/bottle/mutagen = 2 + ) + +//Meant to replace garden vending machines in public spaces, has a price list for items. Nothing unreasonable. +/obj/machinery/vending/hydronutrients/gardenvend + name = "GardenVend" + desc = "A one stop shop for all your gardening needs." + + products = list( + /obj/item/reagent_containers/glass/fertilizer/ez = 6, + /obj/item/reagent_containers/glass/fertilizer/l4z = 6, + /obj/item/reagent_containers/glass/fertilizer/rh = 3, + /obj/item/plantspray/pests = 10, + /obj/item/storage/bag/plants = 6, + /obj/item/material/minihoe = 2, + /obj/item/material/hatchet = 2, + /obj/item/wirecutters/clippers = 2, + /obj/item/reagent_containers/spray/plantbgone = 2 + ) + prices = list( + /obj/item/reagent_containers/glass/fertilizer/ez = 10.00, + /obj/item/reagent_containers/glass/fertilizer/l4z = 10.00, + /obj/item/reagent_containers/glass/fertilizer/rh = 20.00, + /obj/item/plantspray/pests = 7.50, + /obj/item/storage/bag/plants = 10.00, + /obj/item/material/minihoe = 15.00, + /obj/item/material/hatchet = 15.00, + /obj/item/wirecutters/clippers = 15.00, + /obj/item/reagent_containers/spray/plantbgone = 35.00 + ) + + premium = list( + /obj/item/reagent_containers/glass/bottle/ammonia = 10, + /obj/item/reagent_containers/glass/bottle/diethylamine = 5, + /obj/random/horticulture_magazine = 4 + ) + contraband = list( + /obj/item/reagent_containers/glass/bottle/mutagen = 2 + ) + +/obj/machinery/vending/hydronutrients/gardenvend/low_supply + products = list( + /obj/item/reagent_containers/glass/fertilizer/ez = 2, + /obj/item/plantspray/pests = 3, + /obj/item/storage/bag/plants = 1, + /obj/item/material/minihoe = 1, + /obj/item/material/hatchet = 1, + /obj/item/wirecutters/clippers = 1, + /obj/item/reagent_containers/spray/plantbgone = 1 + ) + +/obj/item/device/vending_refill/hydro + name = "hydro resupply canister" + vend_id = "hydro" + charges = 23 + + +/obj/machinery/vending/hydroseeds + name = "MegaSeed Servitor" + desc = "When you need seeds fast!" + product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!" + product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!" + icon_state = SEED_NOUN_SEEDS + vend_id = SEED_NOUN_SEEDS + products = list( + /obj/item/seeds/aghrasshseed = 3, + /obj/item/seeds/ambrosiavulgarisseed = 3, + /obj/item/seeds/appleseed = 3, + /obj/item/seeds/bananaseed = 3, + /obj/item/seeds/bellpepperseed = 3, + /obj/item/seeds/berryseed = 3, + /obj/item/seeds/blackraspberryseed = 3, + /obj/item/seeds/blizzard = 3, + /obj/item/seeds/blueberryseed = 3, + /obj/item/seeds/blueraspberryseed = 3, + /obj/item/seeds/cabbageseed = 3, + /obj/item/seeds/carrotseed = 3, + /obj/item/seeds/chantermycelium = 3, + /obj/item/seeds/cherryseed = 3, + /obj/item/seeds/chiliseed = 3, + /obj/item/seeds/cocoapodseed = 3, + /obj/item/seeds/coffeeseed = 3, + /obj/item/seeds/cornseed = 3, + /obj/item/seeds/dynseed = 3, + /obj/item/seeds/earthenroot = 2, + /obj/item/seeds/eggplantseed = 3, + /obj/item/seeds/eki = 3, + /obj/item/seeds/garlicseed = 3, + /obj/item/seeds/gukheseed = 3, + /obj/item/seeds/grapeseed = 3, + /obj/item/seeds/grassseed = 3, + /obj/item/seeds/greengrapeseed = 3, + /obj/item/seeds/guamiseed = 3, + /obj/item/seeds/harebell = 3, + /obj/item/seeds/lemonseed = 3, + /obj/item/seeds/limeseed = 3, + /obj/item/seeds/mtearseed = 3, + /obj/item/seeds/mintseed = 3, + /obj/item/seeds/dirtberries = 2, + /obj/item/seeds/onionseed = 3, + /obj/item/seeds/oracleseed = 3, + /obj/item/seeds/orangeseed = 3, + /obj/item/seeds/peanutseed = 3, + /obj/item/seeds/peaseed = 3, + /obj/item/seeds/peppercornseed = 3, + /obj/item/seeds/plastiseed = 3, + /obj/item/seeds/plumpmycelium = 3, + /obj/item/seeds/poppyseed = 3, + /obj/item/seeds/potatoseed = 3, + /obj/item/seeds/pumpkinseed = 3, + /obj/item/seeds/qlortseed = 3, + /obj/item/seeds/clam/rasval = 3, + /obj/item/seeds/raspberryseed = 3, + /obj/item/seeds/replicapod = 3, + /obj/item/seeds/reishimycelium = 3, + /obj/item/seeds/riceseed = 3, + /obj/item/seeds/richcoffeeseed = 3, + /obj/item/seeds/sarezhiseed = 3, + /obj/item/seeds/serkiflowerseed, + /obj/item/seeds/shandseed = 3, + /obj/item/seeds/soyaseed = 3, + /obj/item/seeds/sthberryseed = 3, + /obj/item/seeds/strawberryseed = 3, + /obj/item/seeds/cranberryseed = 3, + /obj/item/seeds/sugarcaneseed = 3, + /obj/item/seeds/sunflowerseed = 3, + /obj/item/seeds/sugartree = 2, + /obj/item/seeds/teaseed = 3, + /obj/item/seeds/tobaccoseed = 3, + /obj/item/seeds/tomatoseed = 3, + /obj/item/seeds/towermycelium = 3, + /obj/item/seeds/vanilla = 3, + /obj/item/seeds/watermelonseed = 3, + /obj/item/seeds/wheatseed = 3, + /obj/item/seeds/whitebeetseed = 3, + /obj/item/seeds/wulumunushaseed = 2, + /obj/item/seeds/xuiziseed = 3, + /obj/item/seeds/ylpha = 3 + ) + + contraband = list( + /obj/item/seeds/amanitamycelium = 3, + /obj/item/seeds/cocaseed = 3, + /obj/item/seeds/glowshroom = 3, + /obj/item/seeds/libertymycelium = 3, + /obj/item/seeds/nettleseed = 3 + + ) + premium = list( + /obj/item/seeds/ambrosiadeusseed = 3 + ) + + prices = list( + /obj/item/seeds/ambrosiavulgarisseed = 12.00, + /obj/item/seeds/appleseed = 6.00, + /obj/item/seeds/bananaseed = 7.00, + /obj/item/seeds/bellpepperseed = 5.00, + /obj/item/seeds/berryseed = 5.00, + /obj/item/seeds/blackraspberryseed = 5.00, + /obj/item/seeds/blizzard = 9.00, + /obj/item/seeds/blueberryseed = 4.00, + /obj/item/seeds/blueraspberryseed = 5.00, + /obj/item/seeds/cabbageseed = 5.00, + /obj/item/seeds/carrotseed = 2.50, + /obj/item/seeds/chantermycelium = 12.50, + /obj/item/seeds/cherryseed = 5.00, + /obj/item/seeds/chiliseed = 6.00, + /obj/item/seeds/cocoapodseed = 6.00, + /obj/item/seeds/coffeeseed = 12.00, + /obj/item/seeds/cornseed = 4.00, + /obj/item/seeds/dynseed = 8.50, + /obj/item/seeds/earthenroot = 12.00, + /obj/item/seeds/eggplantseed = 4.00, + /obj/item/seeds/eki = 15.00, + /obj/item/seeds/garlicseed = 4.00, + /obj/item/seeds/grapeseed = 5.00, + /obj/item/seeds/grassseed = 2.00, + /obj/item/seeds/greengrapeseed = 5.00, + /obj/item/seeds/guamiseed = 13.50, + /obj/item/seeds/harebell = 1.50, + /obj/item/seeds/lemonseed = 5.00, + /obj/item/seeds/limeseed = 6.00, + /obj/item/seeds/mtearseed = 7.00, + /obj/item/seeds/mintseed = 6.00, + /obj/item/seeds/dirtberries = 12.00, + /obj/item/seeds/onionseed = 4.00, + /obj/item/seeds/oracleseed = 11.00, + /obj/item/seeds/orangeseed = 5.00, + /obj/item/seeds/peanutseed = 4.00, + /obj/item/seeds/peaseed = 5.00, + /obj/item/seeds/peppercornseed = 4.00, + /obj/item/seeds/plastiseed = 5.00, + /obj/item/seeds/plumpmycelium = 2.50, + /obj/item/seeds/poppyseed = 1.50, + /obj/item/seeds/potatoseed = 4.00, + /obj/item/seeds/pumpkinseed = 5.00, + /obj/item/seeds/qlortseed = 12.00, + /obj/item/seeds/clam/rasval = 18.00, + /obj/item/seeds/raspberryseed = 5.00, + /obj/item/seeds/reishimycelium = 15.00, + /obj/item/seeds/replicapod = 35.00, + /obj/item/seeds/riceseed = 2.50, + /obj/item/seeds/richcoffeeseed = 25.00, + /obj/item/seeds/shandseed = 7.00, + /obj/item/seeds/soyaseed = 5.00, + /obj/item/seeds/strawberryseed = 5.00, + /obj/item/seeds/cranberryseed = 5.00, + /obj/item/seeds/sugarcaneseed = 2.50, + /obj/item/seeds/sunflowerseed = 2.50, + /obj/item/seeds/sugartree = 5.00, + /obj/item/seeds/teaseed = 4.00, + /obj/item/seeds/tobaccoseed = 5.00, + /obj/item/seeds/tomatoseed = 4.00, + /obj/item/seeds/towermycelium = 7.50, + /obj/item/seeds/vanilla = 12.00, + /obj/item/seeds/watermelonseed = 4.00, + /obj/item/seeds/wheatseed = 2.50, + /obj/item/seeds/whitebeetseed = 2.50, + /obj/item/seeds/wulumunushaseed = 15.00, + /obj/item/seeds/ylpha = 16.00 + ) + restock_items = TRUE + random_itemcount = 0 + light_color = COLOR_BABY_BLUE + +/obj/item/device/vending_refill/seeds + name = "resupply canister" + vend_id = SEED_NOUN_SEEDS + charges = 175 + + +/** + * Populate hydroseeds product_records + * + * This needs to be customized to fetch the actual names of the seeds, otherwise + * the machine would simply list "packet of seeds" times 20 + */ +/obj/machinery/vending/hydroseeds/build_inventory() + var/list/all_products = list( + list(src.products, CAT_NORMAL), + list(src.contraband, CAT_HIDDEN), + list(src.premium, CAT_COIN)) + + for(var/current_list in all_products) + var/category = current_list[2] + + for(var/entry in current_list[1]) + var/obj/item/seeds/S = new entry(src) + var/name = S.name + var/datum/data/vending_product/product = new/datum/data/vending_product(entry, name) + + product.price = (entry in src.prices) ? src.prices[entry] : 0 + product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1 + product.category = category + + src.product_records.Add(product) diff --git a/code/game/machinery/vending/medical.dm b/code/game/machinery/vending/medical.dm new file mode 100644 index 00000000000..58416b92f5a --- /dev/null +++ b/code/game/machinery/vending/medical.dm @@ -0,0 +1,208 @@ +/** + * NanoMed Plus + * Low Supply + * NanoMed + * Low Supply + * NanoMed Mini + * Low Supply + * NanoPharm Mini + * Low Supply + */ + +/obj/machinery/vending/medical + name = "NanoMed Plus" + desc = "Medical drug dispenser." + icon_state = "med" + icon_vend = "med-vend" + product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!" + req_access = list(ACCESS_MEDICAL_EQUIP) + vend_id = "meds" + products = list( + /obj/item/reagent_containers/glass/bottle/antitoxin = 4, + /obj/item/reagent_containers/glass/bottle/inaprovaline = 4, + /obj/item/reagent_containers/glass/bottle/perconol = 3, + /obj/item/reagent_containers/glass/bottle/toxin = 1, + /obj/item/reagent_containers/glass/bottle/coagzolug = 2, + /obj/item/reagent_containers/glass/bottle/thetamycin = 2, + /obj/item/reagent_containers/syringe = 12, + /obj/item/device/healthanalyzer = 5, + /obj/item/device/breath_analyzer = 2, + /obj/item/reagent_containers/glass/beaker = 4, + /obj/item/reagent_containers/dropper = 2, + /obj/item/stack/medical/bruise_pack = 5, + /obj/item/stack/medical/ointment = 5, + /obj/item/stack/medical/advanced/bruise_pack = 3, + /obj/item/stack/medical/advanced/ointment = 3, + /obj/item/stack/medical/splint = 2, + /obj/item/reagent_containers/pill/antitox = 6, + /obj/item/reagent_containers/pill/cetahydramine = 6, + /obj/item/reagent_containers/pill/perconol = 6, + /obj/item/reagent_containers/glass/beaker/medcup = 4, + /obj/item/storage/pill_bottle = 4, + /obj/item/reagent_containers/spray/sterilizine = 2 + ) + contraband = list( + /obj/item/reagent_containers/inhaler/space_drugs = 2, + /obj/item/reagent_containers/pill/tox = 3, + /obj/item/reagent_containers/pill/stox = 4 + ) + idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. + random_itemcount = 0 + temperature_setting = -1 + light_color = LIGHT_COLOR_GREEN + manufacturer = "zenghu" + +/obj/machinery/vending/medical/low_supply + products = list( + /obj/item/reagent_containers/glass/bottle/inaprovaline = 1, + /obj/item/reagent_containers/glass/bottle/perconol = 1, + /obj/item/reagent_containers/glass/bottle/toxin = 1, + /obj/item/reagent_containers/glass/bottle/thetamycin = 1, + /obj/item/reagent_containers/syringe = 8, + /obj/item/device/healthanalyzer = 1, + /obj/item/stack/medical/bruise_pack = 2, + /obj/item/stack/medical/ointment = 1, + /obj/item/stack/medical/splint = 1, + /obj/item/reagent_containers/pill/antitox = 2, + /obj/item/reagent_containers/pill/cetahydramine = 1, + /obj/item/reagent_containers/pill/perconol = 1, + /obj/item/reagent_containers/glass/beaker/medcup = 4, + /obj/item/storage/pill_bottle = 2, + /obj/item/reagent_containers/spray/sterilizine = 1 + ) + +/obj/machinery/vending/wallmed1 + name = "NanoMed" + desc = "A wall-mounted version of the NanoMed." + product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?" + icon_state = "wallmed" + req_access = list(ACCESS_MEDICAL) + density = FALSE //It is wall-mounted, and thus, not dense. --Superxpdude + vend_id = "meds" + products = list( + /obj/item/stack/medical/bruise_pack = 3, + /obj/item/stack/medical/ointment = 3, + /obj/item/reagent_containers/pill/perconol = 4, + /obj/item/storage/box/fancy/med_pouch/trauma = 1, + /obj/item/storage/box/fancy/med_pouch/burn = 1, + /obj/item/storage/box/fancy/med_pouch/oxyloss = 1, + /obj/item/storage/box/fancy/med_pouch/toxin = 1, + /obj/item/device/healthanalyzer = 1, + /obj/item/device/breath_analyzer = 1 + ) + contraband = list( + /obj/item/reagent_containers/syringe/dylovene = 4, + /obj/item/reagent_containers/pill/tox = 1 + ) + premium = list( + /obj/item/reagent_containers/pill/mortaphenyl = 4 + ) + random_itemcount = FALSE + temperature_setting = -1 + light_color = LIGHT_COLOR_GREEN + obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED + manufacturer = "zenghu" + +/obj/machinery/vending/wallmed1/low_supply + products = list( + /obj/item/stack/medical/bruise_pack = 1, + /obj/item/stack/medical/ointment = 1, + /obj/item/reagent_containers/pill/perconol = 2, + /obj/item/storage/box/fancy/med_pouch/oxyloss = 1, + /obj/item/storage/box/fancy/med_pouch/toxin = 1 + ) + +/obj/machinery/vending/wallmed2 + name = "NanoMed Mini" + desc = "A wall-mounted version of the NanoMed, containing only vital first aid equipment." + icon_state = "wallmed" + req_access = list(ACCESS_MEDICAL) + density = FALSE //It is wall-mounted, and thus, not dense. --Superxpdude + vend_id = "meds" + products = list( + /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 5, + /obj/item/stack/medical/bruise_pack = 4, + /obj/item/stack/medical/ointment = 4, + /obj/item/storage/box/fancy/med_pouch/trauma = 1, + /obj/item/storage/box/fancy/med_pouch/burn = 1, + /obj/item/storage/box/fancy/med_pouch/oxyloss = 1, + /obj/item/storage/box/fancy/med_pouch/toxin = 1, + /obj/item/storage/box/fancy/med_pouch/radiation = 1, + /obj/item/device/healthanalyzer = 1, + /obj/item/device/breath_analyzer = 1 + ) + contraband = list( + /obj/item/reagent_containers/pill/tox = 3 + ) + premium = list( + /obj/item/reagent_containers/pill/mortaphenyl = 4 + ) + random_itemcount = FALSE + temperature_setting = -1 + light_color = LIGHT_COLOR_GREEN + obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED + manufacturer = "zenghu" + +/obj/machinery/vending/wallmed2/low_supply + products = list( + /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 1, + /obj/item/stack/medical/bruise_pack = 2, + /obj/item/stack/medical/ointment = 2, + /obj/item/storage/box/fancy/med_pouch/radiation = 1 + ) + +/obj/item/device/vending_refill/meds + name = "meds resupply canister" + vend_id = "meds" + charges = 38 + + +/obj/machinery/vending/wallpharm + name = "NanoPharm Mini" + desc = "A wall-mounted pharmaceuticals vending machine packed with over-the-counter bottles. For the sick salaried worker in you." + icon_state = "wallpharm" + density = FALSE + products = list( + /obj/item/stack/medical/bruise_pack = 5, + /obj/item/stack/medical/ointment = 5, + /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 2, + /obj/item/storage/pill_bottle/antidexafen = 4, + /obj/item/storage/pill_bottle/dexalin = 4, + /obj/item/storage/pill_bottle/dylovene = 4, + /obj/item/storage/pill_bottle/vitamin = 5, + /obj/item/storage/pill_bottle/cetahydramine = 4, + /obj/item/storage/pill_bottle/caffeine = 3, + /obj/item/storage/pill_bottle/nicotine = 4, + /obj/item/storage/pill_bottle/rmt = 2 + ) + prices = list( + /obj/item/storage/pill_bottle/antidexafen = 7.00, + /obj/item/storage/pill_bottle/dexalin = 25.00, + /obj/item/storage/pill_bottle/dylovene = 12.00, + /obj/item/storage/pill_bottle/vitamin = 8.00, + /obj/item/storage/pill_bottle/cetahydramine = 10.00, + /obj/item/storage/pill_bottle/caffeine = 9.00, + /obj/item/storage/pill_bottle/nicotine = 15.00, + /obj/item/storage/pill_bottle/rmt = 55.00 + ) + contraband = list( + /obj/item/reagent_containers/pill/tox = 3, + /obj/item/storage/pill_bottle/perconol = 3 + ) + random_itemcount = FALSE + temperature_setting = -1 + light_color = COLOR_GOLD + obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED + manufacturer = "nanotrasen" + +/obj/machinery/vending/wallpharm/low_supply + products = list( + /obj/item/stack/medical/bruise_pack = 2, + /obj/item/stack/medical/ointment = 2, + /obj/item/storage/pill_bottle/antidexafen = 1, + /obj/item/storage/pill_bottle/dexalin = 1, + /obj/item/storage/pill_bottle/dylovene = 2, + /obj/item/storage/pill_bottle/vitamin = 2, + /obj/item/storage/pill_bottle/cetahydramine = 1, + /obj/item/storage/pill_bottle/rmt = 1 + ) diff --git a/code/game/machinery/vending/misc_awaysite.dm b/code/game/machinery/vending/misc_awaysite.dm new file mode 100644 index 00000000000..6af0561544e --- /dev/null +++ b/code/game/machinery/vending/misc_awaysite.dm @@ -0,0 +1,140 @@ +/** + * Minimart refridgerator + * Minimart alcohol selection + * Rental Bikes self-service vendor + */ + +/obj/machinery/vending/minimart + name = "\improper minimart refrigerator" + desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars." + //product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" + //product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" + icon_state = "minimart" + icon_vend = "minimart" + vend_id = "snacks" + density = 0 + products = list( + /obj/item/reagent_containers/food/drinks/cans/cola = 10, + /obj/item/reagent_containers/food/drinks/cans/diet_cola = 10, + /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 10, + /obj/item/reagent_containers/food/drinks/cans/starkist = 10, + /obj/item/reagent_containers/food/drinks/waterbottle = 10, + /obj/item/reagent_containers/food/drinks/cans/dyn = 5, + /obj/item/reagent_containers/food/drinks/cans/space_up = 10, + /obj/item/reagent_containers/food/drinks/cans/iced_tea = 10, + /obj/item/reagent_containers/food/drinks/cans/grape_juice = 10, + /obj/item/reagent_containers/food/drinks/cans/peach_soda = 10, + /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 5, + /obj/item/reagent_containers/food/drinks/carton/small/milk = 10, + /obj/item/reagent_containers/food/drinks/carton/small/milk/choco = 10, + /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 10, + /obj/item/reagent_containers/food/drinks/cans/melon_soda = 10 + ) + contraband = list( + /obj/item/reagent_containers/food/drinks/cans/thirteenloko = 5, + /obj/item/reagent_containers/food/drinks/cans/koispunch = 3 + ) + premium = list( + /obj/item/reagent_containers/food/drinks/bottle/cola = 2, + /obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind = 2, + /obj/item/reagent_containers/food/drinks/bottle/space_up = 2 + ) + prices = list( + /obj/item/reagent_containers/food/drinks/cans/cola = 1.50, + /obj/item/reagent_containers/food/drinks/cans/diet_cola = 1.50, + /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 1.20, + /obj/item/reagent_containers/food/drinks/cans/dr_gibb = 1.75, + /obj/item/reagent_containers/food/drinks/cans/root_beer = 1.40, + /obj/item/reagent_containers/food/drinks/cans/starkist = 1.50, + /obj/item/reagent_containers/food/drinks/waterbottle = 1.25, + /obj/item/reagent_containers/food/drinks/cans/dyn = 1.80, + /obj/item/reagent_containers/food/drinks/cans/space_up = 1.50, + /obj/item/reagent_containers/food/drinks/cans/iced_tea = 1.40, + /obj/item/reagent_containers/food/drinks/cans/grape_juice = 1.75, + /obj/item/reagent_containers/food/drinks/cans/peach_soda = 1.75, + /obj/item/reagent_containers/food/drinks/cans/koispunch = 5.00, + /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 0.50, + /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda = 3.50, + /obj/item/reagent_containers/food/drinks/carton/small/milk = 1.80, + /obj/item/reagent_containers/food/drinks/carton/small/milk/choco = 1.80, + /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 1.80, + /obj/item/reagent_containers/food/drinks/cans/melon_soda = 1.75 + ) + light_color = COLOR_BABY_BLUE + +/obj/machinery/vending/minimart/alcohol + name = "\improper minimart alcohol selection" + products = list( + /obj/item/reagent_containers/food/drinks/bottle/makgeolli = 5, + /obj/item/reagent_containers/food/drinks/bottle/soju = 15, + /obj/item/reagent_containers/food/drinks/bottle/soju/shochu = 5, + /obj/item/reagent_containers/food/drinks/bottle/sake = 5, + /obj/item/reagent_containers/food/drinks/cans/beer/rice = 5, + /obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma = 5, + /obj/item/reagent_containers/food/drinks/cans/beer/rice/moonlabor = 5, + /obj/item/reagent_containers/food/drinks/cans/beer = 10, + /obj/item/reagent_containers/food/drinks/bottle/small/beer = 5, + /obj/item/reagent_containers/food/drinks/bottle/whiskey = 5, + /obj/item/reagent_containers/food/drinks/bottle/wine = 5, + /obj/item/reagent_containers/food/drinks/bottle/champagne = 3 + ) + prices = list( + /obj/item/reagent_containers/food/drinks/bottle/makgeolli = 12.00, + /obj/item/reagent_containers/food/drinks/bottle/soju = 6.00, + /obj/item/reagent_containers/food/drinks/bottle/soju/shochu = 12.00, + /obj/item/reagent_containers/food/drinks/bottle/sake = 16.00, + /obj/item/reagent_containers/food/drinks/cans/beer/rice = 8.00, + /obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma = 8.00, + /obj/item/reagent_containers/food/drinks/cans/beer/rice/moonlabor = 8.00, + /obj/item/reagent_containers/food/drinks/cans/beer = 8.00, + /obj/item/reagent_containers/food/drinks/bottle/small/beer = 8.00, + /obj/item/reagent_containers/food/drinks/bottle/whiskey = 12.00, + /obj/item/reagent_containers/food/drinks/bottle/wine = 20.00, + /obj/item/reagent_containers/food/drinks/bottle/champagne = 40.00 + ) + +/obj/machinery/vending/rental_bikes + name = "\improper Rental Bikes self-service vendor" + desc = "Rent-a-bike, for a day!" + icon_state = "rent-a-bike" + icon_vend = "rent-a-bike-vend" + vend_id = "rent-a-bike" + products = list( + /obj/item/key/bike/moped = 0, // filled from the key data lists + /obj/item/key/bike/sport = 0, + ) + prices = list( + /obj/item/key/bike/moped = 15.00, + /obj/item/key/bike/sport = 50.00 + ) + restock_items = FALSE + random_itemcount = FALSE + light_color = COLOR_BABY_BLUE + + /// List of strings. + /// Vended out keys will be filled with these key data (== bike reg plates) strings. + /// Also based on this list is filled the products assoc list. + var/list/key_data_mopeds = list() + + /// Same as the list for mopeds, except for sports bikes. + var/list/key_data_sports = list() + +/obj/machinery/vending/rental_bikes/build_products() + products[/obj/item/key/bike/moped] = length(key_data_mopeds) + products[/obj/item/key/bike/sport] = length(key_data_sports) + +/obj/machinery/vending/rental_bikes/vended_product_post(var/obj/vended) + var/obj/item/key/key = vended + if(!istype(key)) + return + + // expires the next day + var/rental_expiry = "[GLOB.game_year]-[time2text(world.realtime + 1 DAY, "MM-DD")] [worldtime2text()]" + key.desc += " Property of Idris Incorporated. Rental expires on [rental_expiry]. Return fully charged." + + if(key_data_mopeds && istype(key, /obj/item/key/bike/moped)) + key.key_data = key_data_mopeds[1] + key_data_mopeds.Cut(1,2) + else if(key_data_sports && istype(key, /obj/item/key/bike/sport)) + key.key_data = key_data_sports[1] + key_data_sports.Cut(1,2) diff --git a/code/game/machinery/vending/misc_offship.dm b/code/game/machinery/vending/misc_offship.dm new file mode 100644 index 00000000000..d41ed92735f --- /dev/null +++ b/code/game/machinery/vending/misc_offship.dm @@ -0,0 +1,63 @@ +/** + * Grand Romanovich casino vendor + */ + +/obj/machinery/vending/casino + name = "Grand Romanovich vending machine" + desc = "A vending machine commonly found in Crevus' casinos." + icon_state = "casinovend" + product_slogans = "The House always wins!;Spends your chips right here!;Let Go and Begin Again..." + product_ads = "Finding it, though, that's not the hard part. It's letting go." + vend_id = "casino" + products = list( + /obj/item/coin/casino = 50 + ) + contraband = list( + /obj/item/ammo_magazine/boltaction = 2 + ) + premium = list( + /obj/item/gun/projectile/shotgun/pump/rifle/blank = 3, + /obj/item/ammo_magazine/boltaction/blank = 10, + /obj/item/storage/box/fancy/cigarettes/dpra = 5, + /obj/item/storage/chewables/tobacco/bad = 5, + /obj/item/reagent_containers/food/drinks/bottle/messa_mead = 5, + /obj/item/reagent_containers/food/drinks/bottle/victorygin = 5, + /obj/item/reagent_containers/food/drinks/bottle/pwine = 5, + /obj/item/reagent_containers/food/snacks/hardbread = 5, + /obj/item/reagent_containers/food/drinks/cans/adhomai_milk = 5, + /obj/item/reagent_containers/food/snacks/adhomian_can = 5, + /obj/item/reagent_containers/food/snacks/clam = 5, + /obj/item/reagent_containers/food/snacks/tajaran_bread = 5, + /obj/item/toy/plushie/farwa = 2, + /obj/item/reagent_containers/food/snacks/monkeycube/wrapped/farwacube = 2, + /obj/item/razor = 2, + /obj/item/toy/balloon/syndicate = 2, + /obj/item/grenade/fake = 2, + /obj/item/eightball/haunted = 5, + /obj/item/spirit_board = 5, + /obj/item/device/flashlight/maglight = 5, + /obj/item/contraband/poster = 5, + /obj/item/spacecash/ewallet/lotto = 15, + /obj/item/device/laser_pointer = 5, + /obj/item/beach_ball = 1, + /obj/item/material/knife/butterfly/switchblade = 2, + /obj/item/reagent_containers/hypospray/autoinjector/stimpack = 2, + /obj/item/clothing/under/tajaran/summer = 2, + /obj/item/clothing/pants/tajaran = 2, + /obj/item/clothing/under/dress/tajaran =2, + /obj/item/clothing/under/dress/tajaran/blue = 2, + /obj/item/clothing/under/dress/tajaran/green = 2, + /obj/item/clothing/under/dress/tajaran/red = 2, + /obj/item/clothing/head/tajaran/circlet = 2, + /obj/item/clothing/head/tajaran/circlet/silver = 2, + /obj/item/gun/energy/lasertag/red = 2, + /obj/item/clothing/suit/armor/riot/laser_tag = 2, + /obj/item/gun/energy/lasertag/blue = 2, + /obj/item/clothing/suit/armor/riot/laser_tag/blue = 2 + ) + prices = list( + /obj/item/coin/casino = 100 + ) + + restock_items = FALSE + random_itemcount = FALSE diff --git a/code/game/machinery/vending/miscellaneous.dm b/code/game/machinery/vending/miscellaneous.dm new file mode 100644 index 00000000000..0a4736c5a60 --- /dev/null +++ b/code/game/machinery/vending/miscellaneous.dm @@ -0,0 +1,161 @@ +/** + * Toximate 3000 + * Battlemonsters vendor + * GwokBuzz vendor + * Lavatory Essentials + * Low Supply + */ + +/obj/machinery/vending/phoronresearch + name = "Toximate 3000" + desc = "All the fine parts you need in one vending machine!" + vend_id = "bomba" + icon_state = "generic" + icon_vend = "generic-vend" + products = list( + /obj/item/clothing/under/rank/scientist = 6, + /obj/item/clothing/suit/hazmat = 6, + /obj/item/clothing/head/hazmat = 6, + /obj/item/device/transfer_valve = 6, + /obj/item/device/assembly/timer = 6, + /obj/item/device/assembly/signaler = 6, + /obj/item/device/assembly/igniter = 6 + ) + contraband = list( + /obj/item/device/assembly/prox_sensor = 4, + /obj/item/device/assembly/infra = 4, + /obj/item/device/assembly/mousetrap = 4, + /obj/item/device/assembly/voice = 4 + ) + premium = list( + /obj/item/clothing/head/collectable/petehat = 1 + ) + restock_items = TRUE + random_itemcount = 0 + light_color = COLOR_BLUE_GRAY + manufacturer = "scc" + +/obj/machinery/vending/battlemonsters + name = "\improper Battlemonsters vendor" + desc = "A good place to dump all your rent money." + icon_state = "battlemonsters" + icon_vend = "battlemonsters-vend" + vend_id = "battlemonsters" + products = list( + /obj/item/book/manual/wiki/battlemonsters = 10, + /obj/item/battle_monsters/wrapped/basic = 20, + /obj/item/battle_monsters/wrapped = 20, + /obj/item/battle_monsters/wrapped/pro = 20, + /obj/item/battle_monsters/wrapped/species = 10, //Human monsters + /obj/item/battle_monsters/wrapped/species/lizard = 10, //Reptile Monsters + /obj/item/battle_monsters/wrapped/species/cat = 10, //Feline Monsters + /obj/item/battle_monsters/wrapped/species/ant = 10, //Ant Monsters + /obj/item/battle_monsters/wrapped/rare = 10 + ) + prices = list( + /obj/item/book/manual/wiki/battlemonsters = 15.00, + /obj/item/battle_monsters/wrapped = 25.00, + /obj/item/battle_monsters/wrapped/pro = 20.00, + /obj/item/battle_monsters/wrapped/species = 15.00, + /obj/item/battle_monsters/wrapped/species/lizard = 15.00, + /obj/item/battle_monsters/wrapped/species/cat = 15.00, + /obj/item/battle_monsters/wrapped/species/ant = 15.00, + /obj/item/battle_monsters/wrapped/rare = 35.00 + ) + contraband = list( + /obj/item/battle_monsters/wrapped/legendary = 5 + ) + premium = list( + /obj/item/coin/battlemonsters = 10 + ) + restock_items = FALSE + random_itemcount = FALSE + light_color = COLOR_BABY_BLUE + +/obj/item/device/vending_refill/battlemonsters + name = "Battlemonsters resupply canister" + vend_id = "battlemonsters" + charges = 40 + + +/obj/machinery/vending/overloaders + name = "GwokBuzz Vendor" + desc = "An entertainment software machine supplied by Gwok Software, a member of the Gwok Group." + desc_extended = "Previously the realm of amateur programmers and niche companies, the Gwok Group acquired and amalgamated a number of popular Port Verdant overloader brands in order to capitalize on the growing industry. Seeing untapped markets abroad, the corporation has begun exporting to nations with free IPC populations." + icon_state = "synth" + icon_vend = "synth-vend" + product_slogans = "GwokBuzz, to take the edge off!;Try our new Rainbow Essence flavour!;Safe and sanctioned by the authorities!" + vend_id = "overloaders" + products = list( + /obj/item/storage/overloader/classic = 5, + /obj/item/storage/overloader/tranquil = 5, + /obj/item/storage/overloader/rainbow = 5, + /obj/item/storage/overloader/screenshaker = 5 + ) + prices = list( + /obj/item/storage/overloader/classic = 50.00, + /obj/item/storage/overloader/tranquil = 60.00, + /obj/item/storage/overloader/rainbow = 60.00, + /obj/item/storage/overloader/screenshaker = 60.00, + /obj/item/storage/overloader/jitterbug = 85.00 + ) + contraband = list( + /obj/item/storage/overloader/rainbow = 2 + ) + premium = list( + /obj/item/storage/overloader/jitterbug = 5 + ) + light_color = LIGHT_COLOR_CYAN + +/obj/machinery/vending/overloaders/low_supply + products = list( + /obj/item/storage/overloader/classic = 2, + /obj/item/storage/overloader/rainbow = 1, + /obj/item/storage/overloader/screenshaker = 1 + ) + +/obj/machinery/vending/lavatory + name = "Lavatory Essentials" + desc = "Vends things that make you less reviled in the work-place!" + icon_state = "lavatory" + icon_vend = "lavatory-vend" + icon_deny = "lavatory-deny" + product_ads = "Take a shower you hippie.;Get a haircut, hippie!;Reeking of Vaurca taint? Take a shower!;You reek! Freshen up!;Hey, you dropped something!;Cleansing the world, one person at a time!" + prices = list( + /obj/item/soap = 3.50, + /obj/item/mirror = 7.00, + /obj/item/haircomb/random = 7.00, + /obj/item/towel/random = 8.50, + /obj/item/reagent_containers/spray/cleaner/deodorant = 5.00, + /obj/item/reagent_containers/toothpaste = 7.00, + /obj/item/reagent_containers/toothbrush = 3.50, + /obj/item/reagent_containers/food/drinks/flask/vacuumflask/mouthwash = 5.00 + ) + products = list( + /obj/item/soap = 12, + /obj/item/mirror = 8, + /obj/item/haircomb/random = 8, + /obj/item/towel/random = 6, + /obj/item/reagent_containers/spray/cleaner/deodorant = 5, + /obj/item/reagent_containers/toothpaste = 5, + /obj/item/reagent_containers/toothbrush = 12, + /obj/item/reagent_containers/food/drinks/flask/vacuumflask/mouthwash = 5 + ) + premium = list( + /obj/item/grenade/chem_grenade/metalfoam = 0 + ) + contraband = list( + /obj/item/inflatable_duck = 1 + ) + +/obj/machinery/vending/lavatory/low_supply + products = list( + /obj/item/soap = 4, + /obj/item/mirror = 2, + /obj/item/haircomb/random = 3, + /obj/item/towel/random = 4, + /obj/item/reagent_containers/spray/cleaner/deodorant = 2, + /obj/item/reagent_containers/toothpaste = 3, + /obj/item/reagent_containers/toothbrush = 6, + /obj/item/reagent_containers/food/drinks/flask/vacuumflask/mouthwash = 2 + ) diff --git a/code/game/machinery/vending/restocker.dm b/code/game/machinery/vending/restocker.dm new file mode 100644 index 00000000000..260ccff3926 --- /dev/null +++ b/code/game/machinery/vending/restocker.dm @@ -0,0 +1,45 @@ +/** + * Omni-Restocker + */ + + +/obj/machinery/vending/vendors + name = "Omni-Restocker" + desc = "The mother of all vendors, from which vending itself comes!" + icon_state = "engivend" + icon_vend = "engivend-vend" + vend_id = "admin" + req_access = list(ACCESS_JANITOR) + products = list( + /obj/item/device/vending_refill/booze = 2, + /obj/item/device/vending_refill/tools = 2, + /obj/item/device/vending_refill/coffee = 2, + /obj/item/device/vending_refill/snack = 2, + /obj/item/device/vending_refill/cola = 2, + /obj/item/device/vending_refill/zora = 2, + /obj/item/device/vending_refill/frontiervend = 2, + /obj/item/device/vending_refill/smokes = 2, + /obj/item/device/vending_refill/meds = 2, + /obj/item/device/vending_refill/robust = 2, + /obj/item/device/vending_refill/hydro = 2, + /obj/item/device/vending_refill/cutlery = 2, + /obj/item/device/vending_refill/robo = 2, + /obj/item/device/vending_refill/battlemonsters = 2, + /obj/item/device/vending_refill/encryption = 2 + ) + random_itemcount = 0 + light_color = COLOR_GOLD + light_mask = "engivend-light-mask" + +/obj/machinery/vending/vendors/low_supply + products = list( + /obj/item/device/vending_refill/tools = 1, + /obj/item/device/vending_refill/coffee = 1, + /obj/item/device/vending_refill/meds = 1, + /obj/item/device/vending_refill/robust = 1, + /obj/item/device/vending_refill/hydro = 1, + /obj/item/device/vending_refill/cutlery = 1, + /obj/item/device/vending_refill/robo = 1, + /obj/item/device/vending_refill/battlemonsters = 1, + /obj/item/device/vending_refill/encryption = 1 + ) diff --git a/code/game/machinery/vending/security.dm b/code/game/machinery/vending/security.dm new file mode 100644 index 00000000000..8751b4d8236 --- /dev/null +++ b/code/game/machinery/vending/security.dm @@ -0,0 +1,116 @@ +/** + * SecTech + * Tactical Express + * Nanosecurity Plus + */ + +/obj/machinery/vending/security + name = "SecTech" + desc = "A security equipment vendor." + product_ads = "Crack capitalist skulls!;Beat some heads in!;Don't forget - harm is good!;Your weapons are right here.;Handcuffs!;Freeze, scumbag!;Don't tase me bro!;Tase them, bro.;Why not have a donut?" + icon_state = "sec" + icon_vend = "sec-vend" + req_access = list(ACCESS_SECURITY) + vend_id = "security" + products = list( + /obj/item/handcuffs = 8, + /obj/item/grenade/chem_grenade/teargas = 4, + /obj/item/device/flash = 5, + /obj/item/reagent_containers/spray/pepper = 5, + /obj/item/storage/box/evidence = 6, + /obj/item/device/holowarrant = 5, + /obj/item/device/flashlight/maglight = 5, + /obj/item/device/hailer = 5, + /obj/item/reagent_containers/food/snacks/donut/normal = 6 + ) + premium = list( + /obj/item/storage/box/fancy/donut = 2 + ) + contraband = list( + /obj/item/clothing/glasses/sunglasses = 2, + /obj/item/grenade/flashbang = 4, + /obj/item/grenade/stinger = 4 + ) + restock_blocked_items = list( + /obj/item/storage/box/fancy/donut, + /obj/item/storage/box/evidence, + /obj/item/device/flash, + /obj/item/reagent_containers/spray/pepper + ) + restock_items = TRUE + random_itemcount = 0 + light_color = COLOR_BABY_BLUE + manufacturer = "zavodskoi" + +/obj/machinery/vending/security/low_supply + products = list( + /obj/item/handcuffs = 2, + /obj/item/grenade/chem_grenade/teargas = 1, + /obj/item/device/flash = 2, + /obj/item/reagent_containers/spray/pepper = 2, + /obj/item/storage/box/evidence = 4, + /obj/item/device/holowarrant = 3, + /obj/item/device/flashlight/maglight = 2, + /obj/item/device/hailer = 1 + ) + +/obj/item/device/vending_refill/robust + name = "security resupply canister" + vend_id = "security" + charges = 25 + + +/obj/machinery/vending/tacticool //Tried not to go overboard with the amount of fun security has access to. + name = "Tactical Express" + desc = "Everything you need to ensure corporate bureaucracy makes it another day." + icon_state = "tact" + req_access = list(ACCESS_SECURITY) + vend_id = "tactical" // Refill cartridge DNE 2025/07 + products = list( + /obj/item/storage/box/shotgunammo = 2, + /obj/item/storage/box/shotgunshells = 2, + /obj/item/ammo_magazine/c45m = 6, + /obj/item/grenade/chem_grenade/teargas = 6, + /obj/item/ammo_magazine/mc9mmt = 2, + /obj/item/clothing/mask/gas/tactical = 4, + /obj/item/handcuffs/ziptie = 3 + ) + contraband = list( + /obj/item/grenade/flashbang/clusterbang = 1 //this can only go well. + ) + premium = list( + /obj/item/grenade/chem_grenade/gas = 2 + ) + random_itemcount = 0 + light_color = COLOR_BROWN + manufacturer = "zavodskoi" + +/obj/machinery/vending/tacticool/ert //Slightly more !FUN! + name = "Nanosecurity Plus" + desc = "For when shit really goes down; the private contractor's personal armory." + req_access = list(ACCESS_SECURITY) + vend_id = "ert" // Refill cartridge DNE 2025/07 + products = list( + /obj/item/storage/box/shotgunammo = 2, + /obj/item/storage/box/shotgunshells = 2, + /obj/item/grenade/chem_grenade/gas = 6, + /obj/item/clothing/mask/gas/tactical = 8, + /obj/item/shield/riot/tact = 4, + /obj/item/handcuffs/ziptie = 6, + /obj/item/ammo_magazine/mc9mmt = 6, + /obj/item/ammo_magazine/mc9mmt/rubber = 4, + /obj/item/gun/projectile/automatic/x9 = 2, + /obj/item/ammo_magazine/c45m/auto = 6, + /obj/item/ammo_magazine/a556 = 12, + /obj/item/ammo_magazine/a556/ap = 4, + /obj/item/material/knife/tacknife = 4, + /obj/item/device/firing_pin = 12 + ) + contraband = list( + /obj/item/gun/bang/deagle = 1 + ) + premium = list( + /obj/item/shield/riot/tact = 2 + ) + random_itemcount = 0 + manufacturer = "zavodskoi" diff --git a/code/game/machinery/vending/service.dm b/code/game/machinery/vending/service.dm new file mode 100644 index 00000000000..56b2b97efdd --- /dev/null +++ b/code/game/machinery/vending/service.dm @@ -0,0 +1,124 @@ +/** + * Dinnerware vendor + * Plastic utensil vendor + * Metal utensil vendor + * Glasses vendor + */ + +/obj/machinery/vending/dinnerware + name = "\improper Dinnerware vendor" + desc = "A kitchen and restaurant equipment vendor." + product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..." + icon_state = "dinnerware" + icon_vend = "dinnerware-vend" + light_mask = "dinnerware-lightmask" + vend_id = "cutlery" + products = list( + /obj/item/material/kitchen/utensil/fork = 12, + /obj/item/material/kitchen/utensil/knife = 12, + /obj/item/material/kitchen/utensil/spoon = 12, + /obj/item/material/kitchen/utensil/fork/chopsticks = 12, + /obj/item/material/knife = 2, + /obj/item/material/hatchet/butch = 2, + /obj/item/reagent_containers/food/drinks/drinkingglass = 12, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/carafe = 3, + /obj/item/reagent_containers/glass/beaker/pitcher = 3, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup = 6, + /obj/item/reagent_containers/food/drinks/takeaway_cup_idris = 6, + /obj/item/clothing/accessory/apron/chef = 2, + /obj/item/clothing/suit/chef_jacket = 2, + /obj/item/material/kitchen/rollingpin = 2, + /obj/item/reagent_containers/cooking_container/oven = 5, + /obj/item/reagent_containers/cooking_container/fryer = 4, + /obj/item/reagent_containers/cooking_container/skillet = 4, + /obj/item/reagent_containers/cooking_container/saucepan = 4, + /obj/item/reagent_containers/cooking_container/pot = 4, + /obj/item/reagent_containers/cooking_container/board = 3, + /obj/item/reagent_containers/cooking_container/board/bowl = 2, + /obj/item/reagent_containers/ladle = 4, + /obj/item/storage/toolbox/lunchbox/nt = 6, + /obj/item/storage/toolbox/lunchbox/idris = 6, + /obj/item/reagent_containers/glass/rag = 8, + /obj/item/evidencebag/plasticbag = 20, + /obj/item/tray = 12, + /obj/item/tray/tea = 2, + /obj/item/tray/plate = 10, + /obj/item/reagent_containers/bowl = 10, + /obj/item/reagent_containers/bowl/plate = 10, + /obj/item/reagent_containers/bowl/gravy_boat = 8, + /obj/item/reagent_containers/glass/bottle/syrup = 4, + ) + contraband = list( + /obj/item/storage/toolbox/lunchbox/syndicate = 2 + ) + premium = list( + /obj/item/storage/toolbox/lunchbox/scc/filled = 2, + ) + restock_items = TRUE + random_itemcount = 0 + light_color = COLOR_STEEL + +/obj/machinery/vending/dinnerware/plastic + name = "\improper plastic utensil vendor" + desc = "A kitchen and restaurant utensil vendor." + products = list( + /obj/item/material/kitchen/utensil/fork/plastic = 12, + /obj/item/material/kitchen/utensil/spoon/plastic = 12, + /obj/item/material/kitchen/utensil/knife/plastic = 12, + /obj/item/material/kitchen/utensil/fork/chopsticks/bamboo = 12, + /obj/item/reagent_containers/food/drinks/drinkingglass = 12, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/carafe = 3, + /obj/item/reagent_containers/glass/beaker/pitcher = 3, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup = 6, + /obj/item/reagent_containers/food/drinks/takeaway_cup_idris = 6, + ) + +/obj/machinery/vending/dinnerware/metal + name = "\improper metal utensil vendor" + desc = "An upscale kitchen and restaurant utensil vendor." + products = list( + /obj/item/material/kitchen/utensil/fork = 12, + /obj/item/material/kitchen/utensil/spoon = 12, + /obj/item/material/kitchen/utensil/knife = 12, + /obj/item/material/kitchen/utensil/fork/chopsticks = 12, + /obj/item/reagent_containers/food/drinks/drinkingglass = 12, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/carafe = 3, + /obj/item/reagent_containers/glass/beaker/pitcher = 3, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup = 6, + /obj/item/reagent_containers/food/drinks/takeaway_cup_idris = 6, + ) + +/obj/machinery/vending/dinnerware/bar + name = "\improper glasses vendor" + desc = "A bar vendor for dispensing various glasses and cups." + products = list( + /obj/item/reagent_containers/glass/beaker/pitcher = 8, + /obj/item/reagent_containers/food/drinks/drinkingglass = 40, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/carafe = 3, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup = 6, + /obj/item/reagent_containers/food/drinks/takeaway_cup_idris = 12, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/pint = 6, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/square = 6, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/mug = 6, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/shake = 6, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/goblet = 6, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/wine = 6, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/flute = 6, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/cognac = 6, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/rocks = 6, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/cocktail = 6, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/shot = 6, + /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup/teacup = 6, + /obj/item/reagent_containers/food/drinks/flask/barflask = 2, + /obj/item/reagent_containers/food/drinks/flask/vacuumflask = 2, + /obj/item/material/kitchen/utensil/fork = 6, + /obj/item/material/kitchen/utensil/knife = 6, + /obj/item/material/kitchen/utensil/spoon = 6, + /obj/item/tray = 12, + /obj/item/tray/tea = 2, + ) + +/obj/item/device/vending_refill/cutlery + name = "cutlery resupply canister" + vend_id = "cutlery" + charges = 50 diff --git a/code/game/machinery/vending/snacks.dm b/code/game/machinery/vending/snacks.dm new file mode 100644 index 00000000000..dea1d82b2cf --- /dev/null +++ b/code/game/machinery/vending/snacks.dm @@ -0,0 +1,245 @@ +/** + * GetMore Chocolate Corp + * Low Supply + * Konyang + * FrontierVend + * Low Supply + * Hacked + */ + +/obj/machinery/vending/snack + name = "Getmore Chocolate Corp" + desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars." + product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" + product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" + icon_state = "snack" + light_mask = "snack-lightmask" + vend_id = "snacks" + products = list( + /obj/item/reagent_containers/food/snacks/candy = 6, + /obj/item/reagent_containers/food/drinks/dry_ramen = 6, + /obj/item/reagent_containers/food/snacks/chips =6, + /obj/item/reagent_containers/food/snacks/sosjerky = 6, + /obj/item/reagent_containers/food/snacks/no_raisin = 6, + /obj/item/reagent_containers/food/snacks/spacetwinkie = 6, + /obj/item/reagent_containers/food/snacks/cheesiehonkers = 6, + /obj/item/reagent_containers/food/snacks/tastybread = 6, + /obj/item/storage/box/pineapple = 4, + /obj/item/reagent_containers/food/snacks/chocolatebar = 6, + /obj/item/reagent_containers/food/snacks/whitechocolate/wrapped = 6, + /obj/item/storage/box/fancy/cookiesnack = 6, + /obj/item/storage/box/fancy/gum = 4, + /obj/item/storage/box/fancy/vkrexitaffy = 5, + /obj/item/clothing/mask/chewable/candy/lolli = 8, + /obj/item/storage/box/fancy/admints = 4, + /obj/item/reagent_containers/food/snacks/skrellsnacks = 3, + /obj/item/reagent_containers/food/snacks/meatsnack = 2, + /obj/item/reagent_containers/food/snacks/maps = 2, + /obj/item/reagent_containers/food/snacks/nathisnack = 2, + /obj/item/reagent_containers/food/snacks/koisbar_clean = 4, + /obj/item/reagent_containers/food/snacks/candy/koko = 5, + /obj/item/reagent_containers/food/snacks/tuna = 2, + /obj/item/reagent_containers/food/snacks/adhomian_can = 2, + /obj/item/reagent_containers/food/snacks/ricetub = 2, + /obj/item/reagent_containers/food/snacks/riceball = 4, + /obj/item/reagent_containers/food/snacks/seaweed = 5, + /obj/item/reagent_containers/food/drinks/jyalra = 5, + /obj/item/reagent_containers/food/drinks/jyalra/cheese = 5, + /obj/item/reagent_containers/food/drinks/jyalra/apple = 5, + /obj/item/reagent_containers/food/drinks/jyalra/cherry = 5 + ) + contraband = list( + /obj/item/reagent_containers/food/snacks/syndicake = 6, + /obj/item/reagent_containers/food/snacks/koisbar = 4 + ) + premium = list( + /obj/item/reagent_containers/food/snacks/cookie = 6, + /obj/item/storage/box/fancy/food/pralinebox = 2 + ) + prices = list( + /obj/item/reagent_containers/food/snacks/candy = 1.50, + /obj/item/reagent_containers/food/drinks/dry_ramen = 2.00, + /obj/item/reagent_containers/food/snacks/chips = 2.50, + /obj/item/reagent_containers/food/snacks/sosjerky = 3.50, + /obj/item/reagent_containers/food/snacks/no_raisin = 2.00, + /obj/item/reagent_containers/food/snacks/spacetwinkie = 2.00, + /obj/item/reagent_containers/food/snacks/cheesiehonkers = 2.50, + /obj/item/reagent_containers/food/snacks/tastybread = 3.50, + /obj/item/storage/box/pineapple = 5.00, + /obj/item/reagent_containers/food/snacks/chocolatebar = 2.00, + /obj/item/reagent_containers/food/snacks/whitechocolate/wrapped = 3.00, + /obj/item/storage/box/fancy/cookiesnack = 4.00, + /obj/item/storage/box/fancy/gum = 2.50, + /obj/item/storage/box/fancy/vkrexitaffy = 3.50, + /obj/item/clothing/mask/chewable/candy/lolli = 1.00, + /obj/item/storage/box/fancy/admints = 2.00, + /obj/item/reagent_containers/food/snacks/skrellsnacks = 1.50, + /obj/item/reagent_containers/food/snacks/meatsnack = 3.00, + /obj/item/reagent_containers/food/snacks/maps = 3.25, + /obj/item/reagent_containers/food/snacks/nathisnack = 2.00, + /obj/item/reagent_containers/food/snacks/koisbar_clean = 4.25, + /obj/item/reagent_containers/food/snacks/candy/koko = 3.00, + /obj/item/reagent_containers/food/snacks/tuna = 2.50, + /obj/item/reagent_containers/food/snacks/adhomian_can = 2.00, + /obj/item/reagent_containers/food/snacks/ricetub = 4.50, + /obj/item/reagent_containers/food/snacks/riceball = 3.00, + /obj/item/reagent_containers/food/snacks/seaweed = 2.50, + /obj/item/reagent_containers/food/drinks/jyalra = 1.50, + /obj/item/reagent_containers/food/drinks/jyalra/cheese = 1.75, + /obj/item/reagent_containers/food/drinks/jyalra/apple = 1.75, + /obj/item/reagent_containers/food/drinks/jyalra/cherry = 1.75, + /obj/item/reagent_containers/food/snacks/syndicake = 3.50, + /obj/item/reagent_containers/food/snacks/koisbar = 12.00, + ) + light_color = COLOR_BABY_BLUE + manufacturer = "nanotrasen" + +/obj/machinery/vending/snack/low_supply + products = list( + /obj/item/reagent_containers/food/drinks/dry_ramen = 4, + /obj/item/reagent_containers/food/snacks/chips = 1, + /obj/item/reagent_containers/food/snacks/sosjerky = 2, + /obj/item/reagent_containers/food/snacks/no_raisin = 4, + /obj/item/storage/box/fancy/vkrexitaffy = 3, + /obj/item/reagent_containers/food/snacks/skrellsnacks = 1, + /obj/item/reagent_containers/food/snacks/maps = 1, + /obj/item/reagent_containers/food/snacks/koisbar_clean = 1, + /obj/item/reagent_containers/food/snacks/adhomian_can = 1, + /obj/item/reagent_containers/food/drinks/jyalra = 1 + ) + +/obj/machinery/vending/snack/konyang + products = list( + /obj/item/reagent_containers/food/snacks/candy = 6, + /obj/item/reagent_containers/food/drinks/dry_ramen = 12, + /obj/item/reagent_containers/food/snacks/chips =6, + /obj/item/reagent_containers/food/snacks/sosjerky = 6, + /obj/item/reagent_containers/food/snacks/no_raisin = 6, + /obj/item/reagent_containers/food/snacks/spacetwinkie = 6, + /obj/item/reagent_containers/food/snacks/cheesiehonkers = 6, + /obj/item/reagent_containers/food/snacks/tastybread = 12, + /obj/item/storage/box/pineapple = 6, + /obj/item/reagent_containers/food/snacks/chocolatebar = 6, + /obj/item/storage/box/fancy/cookiesnack = 6, + /obj/item/storage/box/fancy/gum = 4, + /obj/item/clothing/mask/chewable/candy/lolli = 8, + /obj/item/storage/box/fancy/admints = 4, + /obj/item/reagent_containers/food/snacks/skrellsnacks = 3, + /obj/item/reagent_containers/food/snacks/meatsnack = 2, + /obj/item/reagent_containers/food/snacks/maps = 2, + /obj/item/reagent_containers/food/snacks/tuna = 2, + /obj/item/reagent_containers/food/snacks/ricetub = 4, + /obj/item/reagent_containers/food/snacks/riceball = 8, + /obj/item/reagent_containers/food/snacks/seaweed = 10, + ) + +/obj/item/device/vending_refill/snack + name = "snacks resupply canister" + vend_id = "snacks" + charges = 38 + +/obj/machinery/vending/frontiervend + name = "FrontierVend" + desc = "A vending machine specialized in snacks from the Coalition of Colonies." + desc_extended = "Almost rebranded to the 'Coalition of Snackolonies', the FrontierVend brand is owned by a now-subsidiary of Orion Express specialized in food exports. These machines \ + are omnipresent throughout the settled regions of human space, forming a sort of Coalition superculture; it's easier to sympathize with someone if you eat the same snacks." + icon_state = "frontiervend" + icon_deny = "frontiervend-deny" + product_slogans = "At least 85 billion served!;A new frontier of flavors!;Snacking for a free frontier!;Every purchase made supports the efforts of the Frontier Protection Bureau!" + product_ads = "Roundhouse kick a Solarian into the concrete.;Slam-dunk Solarians into the trashcan.;Launch Solarians into the sun.;Frost got what he deserved." + vend_id = "frontiervend" + + products = list( + /obj/item/reagent_containers/food/drinks/cans/himeokvass = 8, + /obj/item/reagent_containers/food/drinks/cans/boch = 8, + /obj/item/reagent_containers/food/drinks/cans/boch/buckthorn = 8, + /obj/item/reagent_containers/food/drinks/cans/xanuchai = 6, + /obj/item/reagent_containers/food/drinks/cans/xanuchai/creme = 8, + /obj/item/reagent_containers/food/drinks/cans/xanuchai/chocolate = 8, + /obj/item/reagent_containers/food/drinks/cans/xanuchai/neapolitan = 8, + /obj/item/reagent_containers/food/drinks/cans/galatea = 8, + /obj/item/reagent_containers/food/drinks/bottle/bestblend = 6, + /obj/item/reagent_containers/food/snacks/fishjerky = 8, + /obj/item/reagent_containers/food/snacks/pepperoniroll = 8, + /obj/item/reagent_containers/food/snacks/salmiak = 6, + /obj/item/reagent_containers/food/snacks/hakhspam = 6, + /obj/item/reagent_containers/food/snacks/pemmicanbar = 8, + /obj/item/reagent_containers/food/snacks/choctruffles = 6, + /obj/item/reagent_containers/food/snacks/peanutsnack = 8, + /obj/item/reagent_containers/food/snacks/peanutsnack/pepper = 6, + /obj/item/reagent_containers/food/snacks/peanutsnack/choc = 6, + /obj/item/reagent_containers/food/snacks/peanutsnack/masala = 6, + /obj/item/reagent_containers/food/snacks/chana = 8, + /obj/item/reagent_containers/food/snacks/chana/wild = 8, + /obj/item/reagent_containers/food/snacks/papad = 8, + /obj/item/reagent_containers/food/snacks/papad/garlic = 8, + /obj/item/reagent_containers/food/snacks/papad/ginger = 8, + /obj/item/reagent_containers/food/snacks/papad/apple = 8, + /obj/item/storage/box/fancy/foysnack = 4 + ) + prices = list( + /obj/item/reagent_containers/food/drinks/cans/himeokvass = 3.50, + /obj/item/reagent_containers/food/drinks/cans/boch = 2.50, + /obj/item/reagent_containers/food/drinks/cans/boch/buckthorn = 2.50, + /obj/item/reagent_containers/food/drinks/cans/xanuchai = 2.50, + /obj/item/reagent_containers/food/drinks/cans/xanuchai/creme = 2.50, + /obj/item/reagent_containers/food/drinks/cans/xanuchai/chocolate = 2.50, + /obj/item/reagent_containers/food/drinks/cans/xanuchai/neapolitan = 2.50, + /obj/item/reagent_containers/food/drinks/cans/galatea = 4.50, + /obj/item/reagent_containers/food/drinks/bottle/bestblend = 3.50, + /obj/item/reagent_containers/food/snacks/fishjerky = 3.50, + /obj/item/reagent_containers/food/snacks/pepperoniroll = 3.50, + /obj/item/reagent_containers/food/snacks/salmiak = 3.50, + /obj/item/reagent_containers/food/snacks/hakhspam = 4.00, + /obj/item/reagent_containers/food/snacks/pemmicanbar = 2.50, + /obj/item/reagent_containers/food/snacks/choctruffles = 3.50, + /obj/item/reagent_containers/food/snacks/peanutsnack = 2.50, + /obj/item/reagent_containers/food/snacks/peanutsnack/pepper = 2.50, + /obj/item/reagent_containers/food/snacks/peanutsnack/choc = 2.50, + /obj/item/reagent_containers/food/snacks/peanutsnack/masala = 2.50, + /obj/item/reagent_containers/food/snacks/chana = 3.25, + /obj/item/reagent_containers/food/snacks/chana/wild = 3.25, + /obj/item/reagent_containers/food/snacks/papad = 2.50, + /obj/item/reagent_containers/food/snacks/papad/garlic = 2.50, + /obj/item/reagent_containers/food/snacks/papad/ginger = 2.50, + /obj/item/reagent_containers/food/snacks/papad/apple = 2.50, + /obj/item/storage/box/fancy/foysnack = 4.00 + ) + contraband = list() + premium = list( + /obj/item/toy/comic/inspector = 2, + /obj/item/toy/comic/stormman = 2, + /obj/item/toy/plushie/greimorian = 2 + ) + random_itemcount = 0 + light_color = COLOR_BABY_BLUE + +/obj/machinery/vending/frontiervend/low_supply + products = list( + /obj/item/reagent_containers/food/drinks/cans/himeokvass = 2, + /obj/item/reagent_containers/food/drinks/cans/boch = 1, + /obj/item/reagent_containers/food/drinks/cans/boch/buckthorn = 2, + /obj/item/reagent_containers/food/drinks/cans/xanuchai = 2, + /obj/item/reagent_containers/food/drinks/cans/xanuchai/creme = 1, + /obj/item/reagent_containers/food/drinks/cans/galatea = 1, + /obj/item/reagent_containers/food/drinks/bottle/bestblend = 2, + /obj/item/reagent_containers/food/snacks/fishjerky = 1, + /obj/item/reagent_containers/food/snacks/pepperoniroll = 1, + /obj/item/reagent_containers/food/snacks/salmiak = 1, + /obj/item/reagent_containers/food/snacks/pemmicanbar = 1, + /obj/item/reagent_containers/food/snacks/peanutsnack = 2, + /obj/item/reagent_containers/food/snacks/peanutsnack/pepper = 1, + /obj/item/reagent_containers/food/snacks/chana = 1, + /obj/item/reagent_containers/food/snacks/papad = 2, + /obj/item/storage/box/fancy/foysnack = 1 + ) + +/obj/machinery/vending/frontiervend/hacked + name = "\improper hacked FrontierVend" + desc = "A complimentary FrontierVend machine. No money? No worries." + prices = list() + +/obj/item/device/vending_refill/frontiervend + name = "frontiervend resupply canister" + vend_id = "frontiervend" + charges = 220 diff --git a/code/game/machinery/vending/soda.dm b/code/game/machinery/vending/soda.dm new file mode 100644 index 00000000000..3ba0674dead --- /dev/null +++ b/code/game/machinery/vending/soda.dm @@ -0,0 +1,203 @@ +/** + * Idris Re-Fresh + * Low Supply + * Konyang + * Zo'ra Soda + * Low Supply + * BODA (Soviet Soda) + */ + +/obj/machinery/vending/cola + name = "Idris Re-Fresh" + desc = "A soft drink vendor provided by an Idris subsidiary." + icon_state = "cola_machine" + icon_vend = "cola_machine-vend" + icon_deny = "cola_machine-deny" + icon_screen = "cola_machine-screen" + light_mask = "cola_machine-lightmask" + product_slogans = "Idris Re-Fresh: the more expensive the place, the more of us you'll seee!" + product_ads = "Refreshing!;Hope you're thirsty!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space." + vend_id = "cola" + products = list( + /obj/item/reagent_containers/food/drinks/cans/cola = 10, + /obj/item/reagent_containers/food/drinks/cans/diet_cola = 10, + /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 10, + /obj/item/reagent_containers/food/drinks/cans/dr_gibb = 10, + /obj/item/reagent_containers/food/drinks/cans/root_beer = 10, + /obj/item/reagent_containers/food/drinks/cans/starkist = 10, + /obj/item/reagent_containers/food/drinks/waterbottle = 10, + /obj/item/reagent_containers/food/drinks/cans/dyn = 10, + /obj/item/reagent_containers/food/drinks/cans/space_up = 10, + /obj/item/reagent_containers/food/drinks/cans/iced_tea = 10, + /obj/item/reagent_containers/food/drinks/cans/grape_juice = 10, + /obj/item/reagent_containers/food/drinks/cans/peach_soda = 10, + /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 10, + /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda = 10, + /obj/item/reagent_containers/food/drinks/carton/small/milk = 10, + /obj/item/reagent_containers/food/drinks/carton/small/milk/choco = 10, + /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 10, + /obj/item/reagent_containers/food/drinks/cans/melon_soda = 10, + /obj/item/reagent_containers/food/drinks/zobo = 10 + ) + contraband = list( + /obj/item/reagent_containers/food/drinks/cans/thirteenloko = 5, + /obj/item/reagent_containers/food/drinks/cans/koispunch = 3 + ) + premium = list( + /obj/item/reagent_containers/food/drinks/bottle/cola = 2, + /obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind = 2, + /obj/item/reagent_containers/food/drinks/bottle/space_up = 2 + ) + prices = list( + /obj/item/reagent_containers/food/drinks/cans/cola = 1.50, + /obj/item/reagent_containers/food/drinks/cans/diet_cola = 1.50, + /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 1.50, + /obj/item/reagent_containers/food/drinks/cans/dr_gibb = 1.50, + /obj/item/reagent_containers/food/drinks/cans/root_beer = 1.50, + /obj/item/reagent_containers/food/drinks/cans/starkist = 1.50, + /obj/item/reagent_containers/food/drinks/waterbottle = 1.25, + /obj/item/reagent_containers/food/drinks/cans/dyn = 1.80, + /obj/item/reagent_containers/food/drinks/cans/space_up = 1.50, + /obj/item/reagent_containers/food/drinks/cans/iced_tea = 1.40, + /obj/item/reagent_containers/food/drinks/cans/grape_juice = 1.75, + /obj/item/reagent_containers/food/drinks/cans/peach_soda = 1.75, + /obj/item/reagent_containers/food/drinks/cans/koispunch = 5.00, + /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 2.25, + /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda = 3.00, + /obj/item/reagent_containers/food/drinks/carton/small/milk = 1.80, + /obj/item/reagent_containers/food/drinks/carton/small/milk/choco = 1.80, + /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 1.80, + /obj/item/reagent_containers/food/drinks/cans/melon_soda = 1.75, + /obj/item/reagent_containers/food/drinks/zobo = 1.75 + ) + idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. + vending_sound = 'sound/machines/vending/vending_cans.ogg' + temperature_setting = -1 + light_color = COLOR_GUNMETAL + +/obj/machinery/vending/cola/low_supply + products = list( + /obj/item/reagent_containers/food/drinks/cans/diet_cola = 1, + /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 2, + /obj/item/reagent_containers/food/drinks/cans/dr_gibb = 1, + /obj/item/reagent_containers/food/drinks/cans/root_beer = 2, + /obj/item/reagent_containers/food/drinks/cans/starkist = 1, + /obj/item/reagent_containers/food/drinks/waterbottle = 4, + /obj/item/reagent_containers/food/drinks/cans/dyn = 1, + /obj/item/reagent_containers/food/drinks/cans/space_up = 2, + /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 8, + /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda = 2 + ) + +/obj/machinery/vending/cola/konyang + products = list( + /obj/item/reagent_containers/food/drinks/cans/cola = 10, + /obj/item/reagent_containers/food/drinks/cans/diet_cola = 10, + /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 10, + /obj/item/reagent_containers/food/drinks/cans/starkist = 10, + /obj/item/reagent_containers/food/drinks/waterbottle = 10, + /obj/item/reagent_containers/food/drinks/cans/dyn = 5, + /obj/item/reagent_containers/food/drinks/cans/space_up = 10, + /obj/item/reagent_containers/food/drinks/cans/iced_tea = 10, + /obj/item/reagent_containers/food/drinks/cans/grape_juice = 10, + /obj/item/reagent_containers/food/drinks/cans/peach_soda = 10, + /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 5, + /obj/item/reagent_containers/food/drinks/carton/small/milk = 10, + /obj/item/reagent_containers/food/drinks/carton/small/milk/choco = 10, + /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 10, + /obj/item/reagent_containers/food/drinks/cans/melon_soda = 10 + ) + +/obj/item/device/vending_refill/cola + name = "cola resupply canister" + vend_id = "cola" + charges = 50 + + +/obj/machinery/vending/zora + name = "Zo'ra Soda" + desc = "An energy drink vendor provided by the Getmore Corporation in partnership with the brood of Ta'Akaix'Xakt'yagz'isk Zo'ra." + icon_state = "zoda" + icon_vend = "zoda-vend" + product_slogans = "Safe for consumption by all species!;Made by hard-working bound drones!;The most refreshing energy drink around!;A product of two thousand years!" + product_ads = "Tired? Try some Zo'ra Soda!;Thirsty? Why not Zo'ra Soda?;Bored? Have some Zo'ra Soda!;Zo'ra Soda. Drink up!;ZZZOOO'RRRAAA SSSOOODDDAAA!" + vend_id = "zora" + products = list( + /obj/item/reagent_containers/food/drinks/cans/zorasoda/cherry = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/phoron = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/klax = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/cthur = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/venomgrass = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/kois = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/drone = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/mixedberry = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/lemonlime = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/xuizi = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/dyn = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/buzz = 5, + /obj/item/reagent_containers/food/drinks/waterbottle/sedantis_water = 5 + ) + contraband = list( + /obj/item/reagent_containers/food/drinks/cans/zorasoda/hozm = 5 + ) + premium = list( + /obj/item/reagent_containers/food/drinks/cans/zorasoda/jelly = 3 + ) + prices = list( + /obj/item/reagent_containers/food/drinks/cans/zorasoda/cherry = 2.50, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/phoron = 2.50, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/klax = 2.50, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/cthur = 2.50, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/venomgrass = 2.50, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/kois = 2.50, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/drone = 2.50, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/mixedberry = 2.50, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/lemonlime = 2.50, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/xuizi = 2.50, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/dyn = 2.50, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/buzz = 2.50, + /obj/item/reagent_containers/food/drinks/waterbottle/sedantis_water = 3.50 + ) + idle_power_usage = 211 + temperature_setting = -1 + light_color = COLOR_CULT_REINFORCED + +/obj/machinery/vending/zora/low_supply + products = list( + /obj/item/reagent_containers/food/drinks/cans/zorasoda/cherry = 2, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/phoron = 3, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/venomgrass = 2, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/kois = 1, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/drone = 5, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/xuizi = 3, + /obj/item/reagent_containers/food/drinks/cans/zorasoda/dyn = 1 + ) + +/obj/item/device/vending_refill/zora + name = "Zo'ra Soda resupply canister" + vend_id = "zora" + charges = 40 + + +/obj/machinery/vending/sovietsoda + name = "BODA" + desc = "An old sweet water vending machine, how did this end up here?" + icon_state = "sovietsoda" + icon_vend = "sovietsoda-vend" + vend_id = "cola" + product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." + products = list( + /obj/item/reagent_containers/food/drinks/drinkingglass/soda = 30 + ) + //would a soviet vending machine really have a premium item? hmmm. + premium = list( + /obj/item/reagent_containers/food/drinks/bottle/vodka = 5 + ) + contraband = list( + /obj/item/reagent_containers/food/drinks/drinkingglass/cola = 20 + ) + idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. + random_itemcount = 0 + temperature_setting = -1 + vending_sound = 'sound/machines/vending/vending_cans.ogg' + light_color = COLOR_RED diff --git a/code/game/machinery/vending/wardrobe.dm b/code/game/machinery/vending/wardrobe.dm new file mode 100644 index 00000000000..8e471362109 --- /dev/null +++ b/code/game/machinery/vending/wardrobe.dm @@ -0,0 +1,944 @@ +/** + * Drobes + */ + +/obj/machinery/vending/wardrobe + name = "Drobe - PARENT DO NOT USE" + random_itemcount = FALSE + +/obj/machinery/vending/wardrobe/engi_wardrobe + name = "\improper EngiDrobe" + desc = "A vending machine renowned for vending industrial grade clothing." + icon_state = "engidrobe" + icon_deny = "engidrobe-deny" + light_mask = "clothes-lightmask" + product_ads = "Guaranteed* to protect against industrial accidents! (*not guaranteed);Yellow is the most radiation-resistant color!;Hi-viz is in this year! No, really!;You're the smartest department on the ship, so dress like it!" + vend_reply = "Thank you for using EngiDrobe!" + products = list( + /obj/item/clothing/under/rank/engineer/apprentice/heph = 2, + /obj/item/clothing/under/rank/engineer/apprentice/zavod = 2, + /obj/item/clothing/under/rank/engineer/heph = 4, + /obj/item/clothing/under/rank/engineer/zavod = 4, + /obj/item/clothing/suit/storage/hazardvest = 5, + /obj/item/clothing/suit/storage/hazardvest/green = 2, + /obj/item/clothing/suit/storage/hazardvest/red = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/engineering = 8, + /obj/item/clothing/suit/storage/hooded/wintercoat/heph = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/zavod = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/zavod/alt = 2, + /obj/item/clothing/suit/storage/toggle/engi_dep_jacket = 8, + /obj/item/clothing/suit/storage/toggle/corp/heph = 4, + /obj/item/clothing/suit/storage/toggle/corp/zavod = 2, + /obj/item/clothing/suit/storage/toggle/corp/zavod/alt = 2, + /obj/item/clothing/suit/storage/toggle/highvis = 5, + /obj/item/clothing/suit/storage/toggle/highvis_alt = 5, + /obj/item/clothing/suit/storage/toggle/highvis_orange = 5, + /obj/item/clothing/suit/storage/toggle/highvis_red = 5, + /obj/item/clothing/suit/storage/toggle/labcoat/heph = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi/alt = 2, + /obj/item/clothing/suit/storage/toggle/longcoat/heph = 2, + /obj/item/clothing/suit/storage/toggle/longcoat/zavodskoi = 2, + /obj/item/clothing/accessory/poncho/roles/cloak/engineer = 5, + /obj/item/clothing/accessory/poncho/roles/engineering = 5, + /obj/item/clothing/glasses/safety/goggles = 6, + /obj/item/clothing/head/bandana/engineering = 4, + /obj/item/clothing/head/beret/engineering = 4, + /obj/item/clothing/head/beret/corporate/heph = 3, + /obj/item/clothing/head/beret/corporate/zavod = 2, + /obj/item/clothing/head/beret/corporate/zavod/alt = 2, + /obj/item/clothing/head/hardhat/green = 2, + /obj/item/clothing/head/hardhat/orange = 4, + /obj/item/clothing/head/hardhat/red = 2, + /obj/item/clothing/head/sidecap/heph = 3, + /obj/item/clothing/head/sidecap/zavod = 3, + /obj/item/clothing/head/sidecap/zavod/alt = 3, + /obj/item/clothing/head/softcap/engineering = 4, + /obj/item/clothing/head/softcap/zavod = 2, + /obj/item/clothing/head/softcap/zavod/alt = 2, + /obj/item/clothing/head/wool/heph = 4, + /obj/item/clothing/head/wool/zavod = 2, + /obj/item/clothing/head/wool/zavod/alt = 2, + /obj/item/clothing/pants/highvis = 5, + /obj/item/clothing/pants/highvis_alt = 5, + /obj/item/clothing/pants/highvis_orange = 5, + /obj/item/clothing/pants/highvis_red = 5, + /obj/item/clothing/shoes/sneakers/orange = 6, + /obj/item/clothing/shoes/workboots/dark = 6, + /obj/item/clothing/shoes/workboots/toeless = 4, + /obj/item/storage/backpack/industrial = 6, + /obj/item/storage/backpack/heph = 4, + /obj/item/storage/backpack/zavod = 4, + /obj/item/storage/backpack/duffel/eng = 6, + /obj/item/storage/backpack/duffel/heph = 4, + /obj/item/storage/backpack/duffel/zavod = 4, + /obj/item/storage/backpack/cloak/engi = 3, + /obj/item/storage/backpack/cloak/heph = 2, + /obj/item/storage/backpack/cloak/zavod = 2 + ) + premium = list( + /obj/item/toy/figure/engineer = 6, + /obj/item/toy/figure/ce = 2 + ) + contraband = list( + /obj/item/clothing/under/rank/engineer/einstein = 4 + ) + light_color = COLOR_GOLD + +/obj/machinery/vending/wardrobe/atmos_wardrobe + name = "\improper AtmosDrobe" + desc = "This relatively unknown vending machine delivers clothing for Atmospherics Technicians, an equally unknown job." + icon_state = "atmosdrobe" + icon_deny = "atmosdrobe-deny" + light_mask = "clothes-lightmask" + product_ads = "Flammable? Inflammable? Doesn't matter!;If you know the Ideal Gas constant, show it off with these clothes!;Show up those pitiful engineers with stylish blue trim today!;Long live Atmosia! Gloria Admosia!" + vend_reply = "Thank you for using Atmosdrobe!" + products = list( + /obj/item/clothing/under/rank/atmospheric_technician/heph = 2, + /obj/item/clothing/under/rank/atmospheric_technician/zavod = 2, + /obj/item/clothing/suit/storage/hazardvest/blue/atmos = 3, + /obj/item/clothing/suit/storage/hazardvest/green = 2, + /obj/item/clothing/suit/storage/hazardvest/red = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/heph = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/zavod = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/zavod/alt = 2, + /obj/item/clothing/suit/storage/toggle/engi_dep_jacket = 4, + /obj/item/clothing/suit/storage/toggle/corp/heph = 4, + /obj/item/clothing/suit/storage/toggle/corp/zavod = 2, + /obj/item/clothing/suit/storage/toggle/corp/zavod/alt = 2, + /obj/item/clothing/suit/storage/toggle/highvis = 3, + /obj/item/clothing/suit/storage/toggle/highvis_alt = 3, + /obj/item/clothing/suit/storage/toggle/highvis_orange = 3, + /obj/item/clothing/suit/storage/toggle/highvis_red = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/heph = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi/alt = 2, + /obj/item/clothing/suit/storage/toggle/longcoat/heph = 2, + /obj/item/clothing/suit/storage/toggle/longcoat/zavodskoi = 2, + /obj/item/clothing/accessory/poncho/roles/cloak/atmos = 3, + /obj/item/clothing/accessory/poncho/roles/engineering = 3, + /obj/item/clothing/pants/highvis = 3, + /obj/item/clothing/pants/highvis_alt = 3, + /obj/item/clothing/pants/highvis_orange = 3, + /obj/item/clothing/pants/highvis_red = 3, + /obj/item/clothing/glasses/safety/goggles = 3, + /obj/item/clothing/head/bandana/atmos = 2, + /obj/item/clothing/head/beret/atmos = 2, + /obj/item/clothing/head/beret/corporate/heph = 3, + /obj/item/clothing/head/beret/corporate/zavod = 2, + /obj/item/clothing/head/beret/corporate/zavod/alt = 2, + /obj/item/clothing/head/hardhat/orange = 2, + /obj/item/clothing/head/hardhat/green = 2, + /obj/item/clothing/head/hardhat/red = 2, + /obj/item/clothing/head/sidecap/zavod = 3, + /obj/item/clothing/head/sidecap/zavod/alt = 3, + /obj/item/clothing/head/softcap/atmos = 2, + /obj/item/clothing/head/softcap/zavod = 2, + /obj/item/clothing/head/softcap/zavod/alt = 2, + /obj/item/clothing/head/wool/heph = 4, + /obj/item/clothing/head/wool/zavod = 2, + /obj/item/clothing/head/wool/zavod/alt = 2, + /obj/item/clothing/shoes/sneakers/orange = 4, + /obj/item/clothing/shoes/workboots/dark = 4, + /obj/item/clothing/shoes/workboots/toeless = 2, + /obj/item/storage/backpack/industrial = 6, + /obj/item/storage/backpack/heph = 4, + /obj/item/storage/backpack/zavod = 4, + /obj/item/storage/backpack/duffel/eng = 6, + /obj/item/storage/backpack/duffel/heph = 4, + /obj/item/storage/backpack/duffel/zavod = 4, + /obj/item/storage/backpack/cloak/engi = 3, + /obj/item/storage/backpack/cloak/heph = 2, + /obj/item/storage/backpack/cloak/zavod = 2 + ) + premium = list( + /obj/item/toy/figure/atmos = 3, + /obj/item/toy/figure/ce = 2 + ) + contraband = list( + /obj/item/clothing/under/rank/engineer/einstein = 4 + ) + light_color = COLOR_GOLD + +/obj/machinery/vending/wardrobe/sec_wardrobe + name = "\improper SecDrobe" + desc = "A vending machine for security and security-related clothing!" + icon_state = "secdrobe" + icon_deny = "secdrobe-deny" + light_mask = "clothes-lightmask" + product_ads = "Beat perps in style!;You have the right to be fashionable!;Now you can be the fashion police you always wanted to be!;Blood on your uniform? Don't wash it out, get a one!;Be more than a mall cop!" + vend_reply = "Thank you for using SecDrobe!" + products = list( + /obj/item/clothing/under/rank/cadet = 4, + /obj/item/clothing/under/rank/cadet/idris = 3, + /obj/item/clothing/under/rank/cadet/pmc = 3, + /obj/item/clothing/under/rank/cadet/zavod = 3, + /obj/item/clothing/under/rank/security = 4, + /obj/item/clothing/under/rank/security/idris = 3, + /obj/item/clothing/under/rank/security/idris/idrissec = 3, + /obj/item/clothing/under/rank/security/idris/idrissec/alt = 3, + /obj/item/clothing/under/rank/security/pmc = 3, + /obj/item/clothing/under/rank/security/pmc/pmcsec = 3, + /obj/item/clothing/under/rank/security/pmc/pmcsec/alt = 3, + /obj/item/clothing/under/rank/security/zavod = 3, + /obj/item/clothing/under/rank/security/zavod/zavodsec = 3, + /obj/item/clothing/under/rank/security/zavod/zavodsec/alt = 3, + /obj/item/clothing/under/det = 2, + /obj/item/clothing/under/det/idris = 2, + /obj/item/clothing/under/det/idris/alt = 2, + /obj/item/clothing/under/det/pmc = 2, + /obj/item/clothing/under/det/pmc/alt = 2, + /obj/item/clothing/under/det/zavod = 2, + /obj/item/clothing/under/det/zavod/alt = 2, + /obj/item/clothing/under/rank/warden = 2, + /obj/item/clothing/under/rank/warden/idris = 2, + /obj/item/clothing/under/rank/warden/pmc = 2, + /obj/item/clothing/under/rank/warden/zavod = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/security = 8, + /obj/item/clothing/suit/storage/hooded/wintercoat/idris = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/idris/alt = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/pmc = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/zavod = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/zavod/alt = 4, + /obj/item/clothing/suit/storage/security/officer/idris = 2, + /obj/item/clothing/suit/storage/security/officer/idris/alt = 2, + /obj/item/clothing/suit/storage/security/officer/pmc = 4, + /obj/item/clothing/suit/storage/security/officer/zav = 2, + /obj/item/clothing/suit/storage/security/officer/zav/alt = 2, + /obj/item/clothing/suit/storage/security/investigator = 2, + /obj/item/clothing/suit/storage/security/investigator/idris = 2, + /obj/item/clothing/suit/storage/security/investigator/pmc = 2, + /obj/item/clothing/suit/storage/security/investigator/zavod = 2, + /obj/item/clothing/suit/storage/toggle/warden = 2, + /obj/item/clothing/suit/storage/toggle/warden/idris = 2, + /obj/item/clothing/suit/storage/toggle/warden/pmc = 2, + /obj/item/clothing/suit/storage/toggle/warden/zavod = 2, + /obj/item/clothing/suit/storage/toggle/warden/zavod/alt = 2, + /obj/item/clothing/suit/storage/toggle/corp/idris = 2, + /obj/item/clothing/suit/storage/toggle/corp/idris/alt = 2, + /obj/item/clothing/suit/storage/toggle/corp/pmc = 4, + /obj/item/clothing/suit/storage/toggle/corp/zavod = 2, + /obj/item/clothing/suit/storage/toggle/corp/zavod/alt = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/idris = 4, + /obj/item/clothing/suit/storage/toggle/labcoat/idris/alt = 4, + /obj/item/clothing/suit/storage/toggle/labcoat/pmc = 4, + /obj/item/clothing/suit/storage/toggle/labcoat/pmc/alt = 4, + /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi = 4, + /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi/alt = 4, + /obj/item/clothing/suit/storage/toggle/longcoat/idris = 4, + /obj/item/clothing/suit/storage/toggle/longcoat/pmc = 4, + /obj/item/clothing/suit/storage/toggle/longcoat/zavodskoi = 4, + /obj/item/clothing/suit/storage/toggle/sec_dep_jacket = 8, + /obj/item/clothing/accessory/holster/waist = 8, + /obj/item/clothing/accessory/poncho/roles/cloak/security = 8, + /obj/item/clothing/gloves/black_leather = 8, + /obj/item/clothing/mask/balaclava = 4, + /obj/item/clothing/head/bandana/security = 8, + /obj/item/clothing/head/beret/security = 4, + /obj/item/clothing/head/beret/security/officer = 4, + /obj/item/clothing/head/beret/corporate/idris = 4, + /obj/item/clothing/head/beret/corporate/idris/alt = 4, + /obj/item/clothing/head/beret/corporate/zavod = 4, + /obj/item/clothing/head/beret/corporate/zavod/alt = 4, + /obj/item/clothing/head/peaked_cap/idris = 4, + /obj/item/clothing/head/peaked_cap/idris/no_logo = 4, + /obj/item/clothing/head/sidecap/pmcg = 4, + /obj/item/clothing/head/sidecap/zavod = 4, + /obj/item/clothing/head/sidecap/zavod/alt = 4, + /obj/item/clothing/head/softcap/security = 8, + /obj/item/clothing/head/softcap/idris = 4, + /obj/item/clothing/head/softcap/idris/alt = 4, + /obj/item/clothing/head/softcap/pmc = 4, + /obj/item/clothing/head/softcap/zavod = 4, + /obj/item/clothing/head/softcap/zavod/alt = 4, + /obj/item/clothing/head/warden = 2, + /obj/item/clothing/head/warden/idris = 2, + /obj/item/clothing/head/warden/pmc = 2, + /obj/item/clothing/head/warden/zavod = 2, + /obj/item/clothing/head/warden/zavod/alt = 2, + /obj/item/clothing/head/wool/idris = 4, + /obj/item/clothing/head/wool/idris/alt = 4, + /obj/item/clothing/head/wool/pmc = 4, + /obj/item/clothing/head/wool/zavod = 4, + /obj/item/clothing/head/wool/zavod/alt = 4, + /obj/item/clothing/shoes/jackboots = 8, + /obj/item/clothing/shoes/jackboots/toeless = 6, + /obj/item/storage/backpack/security = 6, + /obj/item/storage/backpack/idris = 4, + /obj/item/storage/backpack/pmcg = 4, + /obj/item/storage/backpack/zavod = 4, + /obj/item/storage/backpack/duffel/sec = 6, + /obj/item/storage/backpack/duffel/idris = 4, + /obj/item/storage/backpack/duffel/pmcg = 4, + /obj/item/storage/backpack/duffel/zavod = 4, + /obj/item/storage/backpack/cloak/phalanx = 2, + /obj/item/storage/backpack/cloak/sec = 2, + /obj/item/storage/backpack/cloak/zavod = 2 + ) + premium = list( + /obj/item/toy/figure/secofficer = 6, + /obj/item/toy/figure/detective = 2, + /obj/item/toy/figure/warden = 2, + /obj/item/toy/figure/hos = 2, + /obj/item/clothing/accessory/storage/bayonet = 4 + ) + contraband = list( + /obj/item/clothing/under/rank/security/einstein = 4 + ) + light_color = COLOR_PALE_BLUE_GRAY + +/obj/machinery/vending/wardrobe/bar_wardrobe + name = "BarDrobe" + desc = "A stylish vendor to dispense the most stylish bar clothing!" + icon_state = "bardrobe" + icon_deny = "bardrobe-deny" + light_mask = "clothes-lightmask" + product_ads = "Now 12% more stain-resistant!;Better-dressed bartenders get better tips! Hint hint!;Let's class this joint up! Or down, your call!;How's it feel to be the coolest part of the Service department?" + vend_reply = "Thank you for using the BarDrobe!" + products = list( + /obj/item/clothing/under/sl_suit = 3, + /obj/item/clothing/under/rank/bartender = 3, + /obj/item/clothing/under/suit_jacket = 3, + /obj/item/clothing/under/suit_jacket/burgundy = 3, + /obj/item/clothing/under/suit_jacket/navy = 3, + /obj/item/clothing/under/suit_jacket/really_black = 3, + /obj/item/clothing/under/suit_jacket/red = 3, + /obj/item/clothing/suit/storage/bartender = 3, + /obj/item/clothing/suit/storage/bartender/idris = 3, + /obj/item/clothing/suit/storage/bartender/orion = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/idris = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/idris/alt = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/nt = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/orion = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/orion/alt = 2, + /obj/item/clothing/suit/storage/toggle/corp/nt = 2, + /obj/item/clothing/suit/storage/toggle/corp/orion = 2, + /obj/item/clothing/suit/storage/toggle/corp/orion/alt = 2, + /obj/item/clothing/accessory/wcoat = 3, + /obj/item/clothing/head/bowler = 3, + /obj/item/clothing/head/flatcap/bartender = 3, + /obj/item/clothing/head/flatcap/bartender/idris = 3, + /obj/item/clothing/head/flatcap/bartender/orion = 3, + /obj/item/clothing/head/pin/flower = 3, + /obj/item/clothing/head/pin/flower/blue = 3, + /obj/item/clothing/head/pin/flower/pink = 3, + /obj/item/clothing/head/pin/flower/yellow = 3, + /obj/item/clothing/head/pin/magnetic = 3, + /obj/item/clothing/head/softcap/idris = 3, + /obj/item/clothing/head/softcap/idris/alt = 3, + /obj/item/clothing/head/softcap/nt = 3, + /obj/item/clothing/head/softcap/orion = 3, + /obj/item/clothing/head/wool/idris = 3, + /obj/item/clothing/head/wool/idris/alt = 3, + /obj/item/clothing/head/wool/nt = 3, + /obj/item/clothing/head/wool/orion = 3, + /obj/item/clothing/head/wool/orion/alt = 3, + /obj/item/clothing/head/top_hat = 3, + /obj/item/clothing/shoes/laceup = 3, + /obj/item/clothing/shoes/laceup/grey = 3, + /obj/item/clothing/shoes/sneakers/black = 3, + /obj/item/storage/backpack/idris = 2, + /obj/item/storage/backpack/nt = 2, + /obj/item/storage/backpack/orion = 2, + /obj/item/storage/backpack/duffel/idris = 2, + /obj/item/storage/backpack/duffel/nt = 2, + /obj/item/storage/backpack/duffel/orion = 2, + /obj/item/storage/backpack/cloak/orion = 2 + ) + premium = list( + /obj/item/toy/figure/bartender = 3, + /obj/item/clothing/accessory/storage/bandolier = 2, + /obj/item/clothing/head/bearpelt = 2, + /obj/item/clothing/head/cowboy = 2, + /obj/item/clothing/head/fez = 2, + /obj/item/clothing/glasses/monocle = 2 + ) + contraband = list( + /obj/item/clothing/head/welding = 2 + ) + light_color = COLOR_PALE_BLUE_GRAY + +/obj/machinery/vending/wardrobe/chef_wardrobe + name = "ChefDrobe" + desc = "This vending machine might not dispense food, but it certainly dispenses chef-related clothing." + icon_state = "chefdrobe" + icon_deny = "chefdrobe-deny" + light_mask = "clothes-lightmask" + product_ads = "Now 17% more stain-resistant!;Won't make your food taste any better, but you'll look good!;The taller the hat, the better the chef.;Did you leave something on the stove?;About time you got some sweet fit!" + vend_reply = "Thank you for using the ChefDrobe!" + products = list( + /obj/item/clothing/under/rank/chef = 3, + /obj/item/clothing/under/rank/chef/idris = 3, + /obj/item/clothing/under/rank/chef/orion = 3, + /obj/item/clothing/under/waiter = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/idris = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/idris/alt = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/nt = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/orion = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/orion/alt = 2, + /obj/item/clothing/suit/storage/toggle/corp/nt = 2, + /obj/item/clothing/suit/storage/toggle/corp/orion = 2, + /obj/item/clothing/suit/storage/toggle/corp/orion/alt = 2, + /obj/item/clothing/accessory/wcoat = 3, + /obj/item/clothing/head/hairnet = 3, + /obj/item/clothing/head/chefhat = 3, + /obj/item/clothing/head/chefhat/nt = 3, + /obj/item/clothing/head/chefhat/idris = 3, + /obj/item/clothing/head/chefhat/orion = 3, + /obj/item/clothing/head/softcap/idris = 3, + /obj/item/clothing/head/softcap/idris/alt = 3, + /obj/item/clothing/head/softcap/nt = 3, + /obj/item/clothing/head/softcap/orion = 3, + /obj/item/clothing/head/wool/idris = 3, + /obj/item/clothing/head/wool/idris/alt = 3, + /obj/item/clothing/head/wool/nt = 3, + /obj/item/clothing/head/wool/orion = 3, + /obj/item/clothing/head/wool/orion/alt = 3, + /obj/item/storage/box/gloves = 3, + /obj/item/storage/backpack/idris = 2, + /obj/item/storage/backpack/nt = 2, + /obj/item/storage/backpack/orion = 2, + /obj/item/storage/backpack/duffel/idris = 2, + /obj/item/storage/backpack/duffel/nt = 2, + /obj/item/storage/backpack/duffel/orion = 2, + /obj/item/storage/backpack/cloak/nt = 2, + /obj/item/storage/backpack/cloak/orion = 2 + ) + premium = list( + /obj/item/toy/figure/chef = 3 + ) + light_color = COLOR_PALE_BLUE_GRAY + +/obj/machinery/vending/wardrobe/jani_wardrobe + name = "JaniDrobe" + desc = "A self-cleaning vending machine capable of dispensing clothing for janitors." + icon_state = "janidrobe" + icon_deny = "janidrobe-deny" + light_mask = "clothes-lightmask" + product_ads = "Now endorsed by lizard janitors everywhere!;Proudly represent Janitor Nation!;Don't worry, purple is in this season!;Clothes covered in hydraulic fluid and blood? Get some ones!;Fuck the haters. You look great." + vend_reply = "Thank you for using JaniDrobe!" + products = list( + /obj/item/clothing/under/rank/janitor = 3, + /obj/item/clothing/under/rank/janitor/alt = 3, + /obj/item/clothing/under/rank/janitor/idris = 3, + /obj/item/clothing/under/rank/janitor/idris/alt = 3, + /obj/item/clothing/under/rank/janitor/orion = 3, + /obj/item/clothing/suit/caution = 6, + /obj/item/clothing/suit/storage/hazardvest = 5, + /obj/item/clothing/suit/storage/hazardvest/purple = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/idris = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/idris/alt = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/nt = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/orion = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/orion/alt = 2, + /obj/item/clothing/suit/storage/toggle/corp/nt = 2, + /obj/item/clothing/suit/storage/toggle/corp/orion = 2, + /obj/item/clothing/suit/storage/toggle/corp/orion/alt = 2, + /obj/item/clothing/suit/storage/toggle/highvis = 5, + /obj/item/clothing/suit/storage/toggle/highvis_alt = 5, + /obj/item/clothing/suit/storage/toggle/highvis_orange = 5, + /obj/item/clothing/suit/storage/toggle/highvis_red = 5, + /obj/item/storage/belt/custodial = 3, + /obj/item/clothing/accessory/holster/utility/custodial/armpit = 2, + /obj/item/clothing/accessory/holster/utility/custodial/hip = 2, + /obj/item/clothing/pants/highvis = 3, + /obj/item/clothing/pants/highvis_alt = 3, + /obj/item/clothing/pants/highvis_orange = 3, + /obj/item/clothing/pants/highvis_red = 3, + /obj/item/clothing/head/bandana/janitor = 3, + /obj/item/clothing/head/beret/janitor = 3, + /obj/item/clothing/head/softcap/idris = 3, + /obj/item/clothing/head/softcap/idris/alt = 3, + /obj/item/clothing/head/softcap/idris/custodian = 3, + /obj/item/clothing/head/softcap/nt = 3, + /obj/item/clothing/head/softcap/nt/custodian = 3, + /obj/item/clothing/head/softcap/orion = 3, + /obj/item/clothing/head/wool/idris = 3, + /obj/item/clothing/head/wool/idris/alt = 3, + /obj/item/clothing/head/wool/nt = 3, + /obj/item/clothing/head/wool/orion = 3, + /obj/item/clothing/head/wool/orion/alt = 3, + /obj/item/clothing/gloves/janitor = 4, + /obj/item/clothing/gloves/janitor/tajara = 2, + /obj/item/clothing/gloves/janitor/unathi = 2, + /obj/item/clothing/gloves/janitor/vaurca = 2, + /obj/item/clothing/glasses/safety/goggles = 6, + /obj/item/clothing/shoes/galoshes = 4, + /obj/item/storage/backpack/idris = 2, + /obj/item/storage/backpack/nt = 2, + /obj/item/storage/backpack/orion = 2, + /obj/item/storage/backpack/duffel/idris = 2, + /obj/item/storage/backpack/duffel/nt = 2, + /obj/item/storage/backpack/duffel/orion = 2, + /obj/item/storage/backpack/cloak/nt = 2, + /obj/item/storage/backpack/cloak/orion = 2 + ) + premium = list( + /obj/item/toy/figure/janitor = 6 + ) + light_color = COLOR_LIME + +/obj/machinery/vending/wardrobe/hydro_wardrobe + name = "HyDrobe" + desc = "A machine with a catchy name. It dispenses botany-related clothing and gear." + icon_state = "hydrobe" + icon_deny = "hydrobe-deny" + light_mask = "clothes-lightmask" + product_ads = "Do you love soil? Then buy our clothes!;Get outfits to match your green thumb here!;Soil resistant! Or absorbant! Who cares!;Guaranteed-ish to make plants grow faster if you wear it!;Can you hear them speaking too?" + vend_reply = "Thank you for using HyDrobe!" + products = list( + /obj/item/clothing/suit/storage/hooded/wintercoat/hydro = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/idris = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/idris/alt = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/nt = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/orion = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/orion/alt = 2, + /obj/item/clothing/suit/storage/toggle/corp/nt = 2, + /obj/item/clothing/suit/storage/toggle/corp/orion = 2, + /obj/item/clothing/suit/storage/toggle/corp/orion/alt = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/idris = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/nt = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/orion = 2, + /obj/item/clothing/suit/storage/toggle/longcoat/idris = 2, + /obj/item/clothing/suit/storage/toggle/longcoat/nt = 2, + /obj/item/clothing/suit/storage/toggle/longcoat/orion = 2, + /obj/item/clothing/head/bandana/hydro = 3, + /obj/item/clothing/head/bandana/hydro/idris = 3, + /obj/item/clothing/head/bandana/hydro/nt = 3, + /obj/item/clothing/head/bandana/hydro/orion = 3, + /obj/item/clothing/head/beret/hydro = 3, + /obj/item/clothing/head/softcap/hydro = 3, + /obj/item/clothing/head/softcap/idris = 3, + /obj/item/clothing/head/softcap/idris/alt = 3, + /obj/item/clothing/head/softcap/idris/custodian = 3, + /obj/item/clothing/head/softcap/nt = 3, + /obj/item/clothing/head/softcap/nt/custodian = 3, + /obj/item/clothing/head/softcap/orion = 3, + /obj/item/clothing/head/wool/idris = 3, + /obj/item/clothing/head/wool/idris/alt = 3, + /obj/item/clothing/head/wool/nt = 3, + /obj/item/clothing/head/wool/orion = 3, + /obj/item/clothing/head/wool/orion/alt = 3, + /obj/item/storage/backpack/hydroponics = 5, + /obj/item/storage/backpack/idris = 2, + /obj/item/storage/backpack/nt = 2, + /obj/item/storage/backpack/orion = 2, + /obj/item/storage/backpack/duffel/hyd = 5, + /obj/item/storage/backpack/duffel/idris = 2, + /obj/item/storage/backpack/duffel/nt = 2, + /obj/item/storage/backpack/duffel/orion = 2, + /obj/item/storage/backpack/cloak/nt = 2, + /obj/item/storage/backpack/cloak/orion = 2 + ) + premium = list( + /obj/item/toy/figure/gardener = 3 + ) + light_color = COLOR_LIME + +/obj/machinery/vending/wardrobe/chap_wardrobe + name = "ChapelDrobe" + desc = "God wills your purchase." + icon_state = "chapdrobe" + icon_deny = "chapdrobe-deny" + light_mask = "clothes-lightmask" + product_ads = "Maybe they'd listen if you dressed better?;Clothes for people of the cloth!;No laity allowed!" + vend_reply = "Thank you for using ChapelDrobe!" + products = list( + /obj/item/clothing/under/rank/chaplain = 3, + /obj/item/clothing/under/tajaran/matake = 3, + /obj/item/clothing/under/unathi/skakh = 2, + /obj/item/clothing/under/unathi/skakh/fisher = 2, + /obj/item/clothing/under/unathi/skakh/healer = 2, + /obj/item/clothing/under/unathi/skakh/warrior = 2, + /obj/item/clothing/suit/nun = 3, + /obj/item/clothing/head/chaplain_hood = 3, + /obj/item/clothing/head/nun_hood = 3, + /obj/item/clothing/head/hijab = 3, + /obj/item/clothing/head/turban = 3, + /obj/item/clothing/head/kippah = 3, + /obj/item/clothing/head/unathi/maxtlatl = 3, + /obj/item/clothing/mask/trinary_mask = 3, + /obj/item/clothing/mask/gas/unathi = 3, + /obj/item/clothing/mask/tajara = 3, + /obj/item/clothing/shoes/sneakers/black = 3, + /obj/item/storage/box/fancy/candle_box = 3, + /obj/item/storage/box/fancy/candle_box = 3, + /obj/item/deck/tarot = 3, + /obj/item/deck/tarot/nralakk = 2, + /obj/item/deck/tarot/nonnralakk = 2, + /obj/item/deck/tarot/adhomai = 2, + /obj/item/deck/lyodii = 2 + ) + contraband = list( + /obj/item/clothing/suit/cultrobes/alt = 2, + /obj/item/clothing/head/culthood/alt = 2, + /obj/item/clothing/shoes/cult = 2, + /obj/item/clothing/head/tajaran/raskara = 2 + ) + premium = list( + /obj/item/toy/figure/chaplain = 3 + ) + light_color = COLOR_PALE_BLUE_GRAY + +/obj/machinery/vending/wardrobe/science_wardrobe + name = "SciDrobe" + desc = "A simple vending machine suitable to dispense well-tailored science clothing." + icon_state = "scidrobe" + product_ads = "Surely nothing will go wrong!;Leave a pretty corpse!;Be remembered for your slick fashion sense!" + vend_reply = "Thank you for using SciDrobe!" + products = list( + /obj/item/clothing/under/rank/scientist/intern = 3, + /obj/item/clothing/under/rank/scientist/intern/zavod = 2, + /obj/item/clothing/under/rank/scientist/intern/zeng = 2, + /obj/item/clothing/under/rank/scientist = 6, + /obj/item/clothing/under/rank/scientist/zavod = 3, + /obj/item/clothing/under/rank/scientist/zeng = 3, + /obj/item/clothing/under/rank/scientist/botany = 6, + /obj/item/clothing/under/rank/scientist/botany/zavod = 3, + /obj/item/clothing/under/rank/scientist/botany/zeng = 3, + /obj/item/clothing/under/rank/scientist/xenobio = 6, + /obj/item/clothing/under/rank/scientist/xenobio/zavod = 3, + /obj/item/clothing/under/rank/scientist/xenobio/zeng = 3, + /obj/item/clothing/under/rank/scientist/xenoarchaeologist = 6, + /obj/item/clothing/under/rank/scientist/xenoarchaeologist/zavod = 3, + /obj/item/clothing/under/rank/scientist/xenoarchaeologist/zeng = 3, + /obj/item/clothing/under/rank/scientist/anomalist = 6, + /obj/item/clothing/under/rank/scientist/anomalist/zavod = 3, + /obj/item/clothing/under/rank/scientist/anomalist/zeng = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/science = 8, + /obj/item/clothing/suit/storage/hooded/wintercoat/nt = 6, + /obj/item/clothing/suit/storage/hooded/wintercoat/zavod = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/zavod/alt = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/zeng = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/zeng/alt = 3, + /obj/item/clothing/suit/storage/toggle/sci_dep_jacket = 6, + /obj/item/clothing/suit/storage/toggle/corp/nt = 4, + /obj/item/clothing/suit/storage/toggle/corp/zavod = 2, + /obj/item/clothing/suit/storage/toggle/corp/zavod/alt = 2, + /obj/item/clothing/suit/storage/toggle/corp/zeng = 2, + /obj/item/clothing/suit/storage/toggle/corp/zeng/alt = 2, + /obj/item/clothing/suit/storage/toggle/labcoat = 6, + /obj/item/clothing/suit/storage/toggle/labcoat/nt = 4, + /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi/alt = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/zeng = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/zeng/alt = 2, + /obj/item/clothing/head/bandana/science = 8, + /obj/item/clothing/head/beret/science = 6, + /obj/item/clothing/head/beret/corporate/zavod = 3, + /obj/item/clothing/head/beret/corporate/zavod/alt = 3, + /obj/item/clothing/head/beret/corporate/zeng = 3, + /obj/item/clothing/head/beret/corporate/zeng/alt = 3, + /obj/item/clothing/head/softcap/science = 6, + /obj/item/clothing/head/softcap/nt = 4, + /obj/item/clothing/head/softcap/zavod = 3, + /obj/item/clothing/head/softcap/zavod/alt = 3, + /obj/item/clothing/head/softcap/zeng = 3, + /obj/item/clothing/head/wool/nt = 6, + /obj/item/clothing/head/wool/zeng = 3, + /obj/item/clothing/head/wool/zeng/alt = 3, + /obj/item/clothing/head/wool/zavod = 3, + /obj/item/clothing/head/wool/zavod/alt = 3, + /obj/item/clothing/accessory/poncho/roles/science = 8, + /obj/item/clothing/shoes/sneakers/medsci = 8, + /obj/item/clothing/shoes/sneakers/medsci/zavod = 4, + /obj/item/clothing/shoes/sneakers/medsci/zeng = 4, + /obj/item/storage/backpack/toxins = 8, + /obj/item/storage/backpack/nt = 4, + /obj/item/storage/backpack/zavod = 4, + /obj/item/storage/backpack/zeng = 4, + /obj/item/storage/backpack/duffel/tox = 8, + /obj/item/storage/backpack/duffel/nt = 4, + /obj/item/storage/backpack/duffel/zavod = 4, + /obj/item/storage/backpack/duffel/zeng = 4, + /obj/item/storage/backpack/cloak/sci = 4, + /obj/item/storage/backpack/cloak/nt = 2, + /obj/item/storage/backpack/cloak/zavod = 2 + ) + contraband = list( + /obj/item/clothing/under/rank/scientist/einstein = 4 + ) + premium = list( + /obj/item/toy/figure/scientist = 8 + ) + light_color = COLOR_PALE_BLUE_GRAY + +/obj/machinery/vending/wardrobe/medi_wardrobe + name = "\improper MediDrobe" + desc = "A vending machine rumoured to be capable of dispensing clothing for medical personnel." + icon_state = "medidrobe" + product_ads = "Blood is always a great accent color!;Look like you stepped right off the set of a med drama holo!;Save lives AND look good!" + vend_reply = "Thank you for using MediDrobe!" + products = list( + /obj/item/clothing/under/rank/medical/intern = 3, + /obj/item/clothing/under/rank/medical/intern/pmc/alt = 2, + /obj/item/clothing/under/rank/medical/intern/zeng = 2, + /obj/item/clothing/under/rank/medical = 6, + /obj/item/clothing/under/rank/medical/pmc/alt = 3, + /obj/item/clothing/under/rank/medical/pmc/nexus = 3, + /obj/item/clothing/under/rank/medical/zeng = 3, + /obj/item/clothing/under/rank/medical/paramedic/pmc/alt = 2, + /obj/item/clothing/under/rank/medical/paramedic/pmc/epmc = 2, + /obj/item/clothing/under/rank/medical/paramedic/pmc/nexus = 2, + /obj/item/clothing/under/rank/medical/paramedic/pmc/sekh = 2, + /obj/item/clothing/under/rank/medical/paramedic/pmc/vekatak_phalanx = 2, + /obj/item/clothing/under/rank/medical/paramedic/zeng = 2, + /obj/item/clothing/under/rank/medical/psych = 3, + /obj/item/clothing/under/rank/medical/psych/pmc/alt = 2, + /obj/item/clothing/under/rank/medical/psych/zeng = 2, + /obj/item/clothing/under/rank/medical/surgeon = 3, + /obj/item/clothing/under/rank/medical/surgeon/pmc/alt = 2, + /obj/item/clothing/under/rank/medical/surgeon/zeng = 2, + /obj/item/clothing/under/medical_gown = 6, + /obj/item/clothing/under/medical_gown/white = 6, + /obj/item/clothing/suit/storage/surgical_gown/nt = 3, + /obj/item/clothing/suit/storage/surgical_gown/zeng = 3, + /obj/item/clothing/suit/storage/surgical_gown/pmc/alt = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/medical = 6, + /obj/item/clothing/suit/storage/hooded/wintercoat/nt = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/pmc/alt = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/zeng = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/zeng/alt = 2, + /obj/item/clothing/suit/storage/toggle/med_dep_jacket = 8, + /obj/item/clothing/suit/storage/toggle/corp/nt = 4, + /obj/item/clothing/suit/storage/toggle/corp/pmc/alt = 4, + /obj/item/clothing/suit/storage/toggle/corp/zeng = 2, + /obj/item/clothing/suit/storage/toggle/corp/zeng/alt = 2, + /obj/item/clothing/suit/storage/toggle/para_jacket = 4, + /obj/item/clothing/suit/storage/toggle/para_jacket/pmc = 2, + /obj/item/clothing/suit/storage/toggle/para_jacket/zeng = 2, + /obj/item/clothing/suit/storage/toggle/labcoat = 8, + /obj/item/clothing/suit/storage/toggle/labcoat/epmc = 4, + /obj/item/clothing/suit/storage/toggle/labcoat/nexus = 4, + /obj/item/clothing/suit/storage/toggle/labcoat/nt = 4, + /obj/item/clothing/suit/storage/toggle/labcoat/zeng = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/zeng/alt = 2, + /obj/item/clothing/head/bandana/medical = 8, + /obj/item/clothing/head/surgery = 4, + /obj/item/clothing/head/surgery/generic = 2, + /obj/item/clothing/head/surgery/zeng = 2, + /obj/item/clothing/head/surgery/pmc/alt = 2, + /obj/item/clothing/head/beret/medical = 8, + /obj/item/clothing/head/beret/corporate/pmc/epmc = 4, + /obj/item/clothing/head/beret/corporate/zeng = 2, + /obj/item/clothing/head/beret/corporate/zeng/alt = 2, + /obj/item/clothing/head/softcap/medical = 6, + /obj/item/clothing/head/softcap/nt = 3, + /obj/item/clothing/head/softcap/pmc/epmc = 3, + /obj/item/clothing/head/softcap/zeng = 3, + /obj/item/clothing/head/wool/nt = 4, + /obj/item/clothing/head/wool/pmc/alt = 4, + /obj/item/clothing/head/wool/zeng = 2, + /obj/item/clothing/head/wool/zeng/alt = 2, + /obj/item/clothing/head/hardhat/paramedic = 4, + /obj/item/clothing/mask/surgical = 8, + /obj/item/clothing/accessory/stethoscope = 8, + /obj/item/clothing/accessory/poncho/roles/medical = 6, + /obj/item/clothing/shoes/sneakers/black = 6, + /obj/item/clothing/shoes/sneakers/medsci = 6, + /obj/item/clothing/shoes/sneakers/medsci/pmc = 4, + /obj/item/clothing/shoes/sneakers/medsci/zeng = 4, + /obj/item/storage/backpack/medic = 8, + /obj/item/storage/backpack/emt = 4, + /obj/item/storage/backpack/psychiatrist = 2, + /obj/item/storage/backpack/nt = 4, + /obj/item/storage/backpack/pmcg = 4, + /obj/item/storage/backpack/zeng = 4, + /obj/item/storage/backpack/duffel/med = 8, + /obj/item/storage/backpack/duffel/emt = 4, + /obj/item/storage/backpack/duffel/psych = 2, + /obj/item/storage/backpack/duffel/nt = 4, + /obj/item/storage/backpack/duffel/pmcg = 4, + /obj/item/storage/backpack/duffel/zeng = 4, + /obj/item/storage/backpack/cloak/medical = 4, + /obj/item/storage/backpack/cloak/nt = 2, + /obj/item/storage/backpack/cloak/phalanx = 2 + ) + premium = list( + /obj/item/toy/figure/md = 6, + /obj/item/toy/figure/paramedic = 4, + /obj/item/toy/figure/psychologist = 2 + ) + light_color = COLOR_PALE_BLUE_GRAY + +/obj/machinery/vending/wardrobe/chem_wardrobe + name = "ChemDrobe" + desc = "A vending machine for dispensing chemistry related clothing." + icon_state = "chemdrobe" + product_ads = "Now 0.5% more resistant to acid spills!;Forget meds, make napalm! Be cool!;Try our new grenade fannypacks!" + vend_reply = "Thank you for using ChemDrobe!" + products = list( + /obj/item/clothing/under/rank/medical/pharmacist = 3, + /obj/item/clothing/under/rank/medical/pharmacist/pmc/alt = 2, + /obj/item/clothing/under/rank/medical/pharmacist/zeng = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/medical = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/nt = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/pmc/alt = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/zeng = 2, + /obj/item/clothing/suit/storage/hooded/wintercoat/zeng/alt = 2, + /obj/item/clothing/suit/storage/toggle/med_dep_jacket = 4, + /obj/item/clothing/suit/storage/toggle/corp/nt = 3, + /obj/item/clothing/suit/storage/toggle/corp/pmc/alt = 3, + /obj/item/clothing/suit/storage/toggle/corp/zeng = 2, + /obj/item/clothing/suit/storage/toggle/corp/zeng/alt = 2, + /obj/item/clothing/suit/storage/toggle/labcoat = 4, + /obj/item/clothing/suit/storage/toggle/labcoat/epmc = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/nexus = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/nt = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/zeng = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/zeng/alt = 2, + /obj/item/clothing/head/bandana/medical = 4, + /obj/item/clothing/head/beret/medical = 4, + /obj/item/clothing/head/beret/corporate/pmc/epmc = 4, + /obj/item/clothing/head/beret/corporate/zeng = 2, + /obj/item/clothing/head/beret/corporate/zeng/alt = 2, + /obj/item/clothing/head/softcap/medical = 4, + /obj/item/clothing/head/softcap/nt = 3, + /obj/item/clothing/head/softcap/pmc/epmc = 3, + /obj/item/clothing/head/softcap/zeng = 3, + /obj/item/clothing/head/wool/nt = 4, + /obj/item/clothing/head/wool/pmc/alt = 4, + /obj/item/clothing/head/wool/zeng = 2, + /obj/item/clothing/head/wool/zeng/alt = 2, + /obj/item/storage/belt/fannypack = 3, + /obj/item/clothing/accessory/poncho/roles/medical = 3, + /obj/item/clothing/shoes/sneakers/black = 4, + /obj/item/clothing/shoes/sneakers/medsci = 4, + /obj/item/clothing/shoes/sneakers/medsci/pmc = 2, + /obj/item/clothing/shoes/sneakers/medsci/zeng = 2, + /obj/item/storage/backpack/medic = 4, + /obj/item/storage/backpack/pharmacy = 3, + /obj/item/storage/backpack/nt = 3, + /obj/item/storage/backpack/pmcg = 3, + /obj/item/storage/backpack/zeng = 3, + /obj/item/storage/backpack/duffel/med = 4, + /obj/item/storage/backpack/duffel/pharm = 3, + /obj/item/storage/backpack/duffel/nt = 3, + /obj/item/storage/backpack/duffel/pmcg = 3, + /obj/item/storage/backpack/duffel/zeng = 3, + /obj/item/storage/backpack/cloak/medical = 4, + /obj/item/storage/backpack/cloak/nt = 2, + /obj/item/storage/backpack/cloak/phalanx = 2 + ) + premium = list( + /obj/item/toy/figure/chemist = 3 + ) + light_color = COLOR_PALE_BLUE_GRAY + +/obj/machinery/vending/wardrobe/cargo_wardrobe + name = "CargoDrobe" + desc = "A highly advanced vending machine for buying cargo related clothing for free." + icon_state = "cargodrobe" + product_ads = "These shorts are comfy and easy to wear, get yours now!;Extra sweat-wicking power!;Stop browsing, start wearing, you've got deadlines!" + vend_reply = "Thank you for using the CargoDrobe!" + products = list( + /obj/item/clothing/under/rank/hangar_technician = 3, + /obj/item/clothing/under/rank/hangar_technician/heph = 3, + /obj/item/clothing/under/rank/hangar_technician/orion = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/cargo = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/heph = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/orion = 4, + /obj/item/clothing/suit/storage/toggle/corp/heph = 4, + /obj/item/clothing/suit/storage/toggle/corp/orion = 4, + /obj/item/clothing/suit/storage/toggle/highvis = 3, + /obj/item/clothing/suit/storage/toggle/highvis_alt = 3, + /obj/item/clothing/suit/storage/toggle/highvis_orange = 3, + /obj/item/clothing/suit/storage/toggle/highvis_red = 3, + /obj/item/clothing/pants/shorts/khaki = 24, + /obj/item/clothing/pants/highvis = 3, + /obj/item/clothing/pants/highvis_alt = 3, + /obj/item/clothing/pants/highvis_orange = 3, + /obj/item/clothing/pants/highvis_red = 3, + /obj/item/clothing/head/bandana/cargo = 3, + /obj/item/clothing/head/beret/cargo = 3, + /obj/item/clothing/head/beret/corporate/heph = 3, + /obj/item/clothing/head/beret/corporate/orion = 3, + /obj/item/clothing/head/softcap/cargo = 3, + /obj/item/clothing/head/softcap/orion = 3, + /obj/item/clothing/head/wool/heph = 4, + /obj/item/clothing/head/wool/orion = 4, + /obj/item/clothing/accessory/poncho/roles/cargo = 4, + /obj/item/clothing/accessory/poncho/roles/cloak/cargo = 2, + /obj/item/clothing/glasses/safety/goggles = 3, + /obj/item/clothing/gloves/black = 3, + /obj/item/clothing/gloves/yellow = 3, + /obj/item/clothing/gloves/yellow/specialu = 3, + /obj/item/clothing/gloves/yellow/specialt = 3, + /obj/item/clothing/shoes/sneakers/black = 3, + /obj/item/clothing/shoes/workboots/dark = 4, + /obj/item/clothing/shoes/workboots/toeless = 2, + /obj/item/storage/backpack/heph = 4, + /obj/item/storage/backpack/orion = 4, + /obj/item/storage/backpack/duffel/heph = 4, + /obj/item/storage/backpack/duffel/orion = 4, + /obj/item/storage/backpack/cloak/heph = 2, + /obj/item/storage/backpack/cloak/orion = 2, + /obj/item/device/flashlight/marshallingwand = 3 + ) + premium = list( + /obj/item/toy/figure/cargotech = 3, + /obj/item/toy/figure/miner = 3 + ) + light_color = COLOR_GOLD + +/obj/machinery/vending/wardrobe/robo_wardrobe + name = "RoboDrobe" + desc = "A vending machine designed to dispense clothing known only to roboticists." + icon_state = "robodrobe" + product_ads = "You turn me TRUE, use defines!;0110001101101100011011100101011001100101;Become 83% less likely to die in The Uprising!" + vend_reply = "Thank you for using the RoboDrobe!" + products = list( + /obj/item/clothing/under/rank/machinist = 3, + /obj/item/clothing/under/rank/machinist/orion = 2, + /obj/item/clothing/under/rank/machinist/heph = 2, + /obj/item/clothing/suit/storage/machinist = 3, + /obj/item/clothing/suit/storage/hooded/wintercoat/cargo = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/heph = 4, + /obj/item/clothing/suit/storage/hooded/wintercoat/orion = 4, + /obj/item/clothing/suit/storage/toggle/corp/heph = 4, + /obj/item/clothing/suit/storage/toggle/corp/orion = 4, + /obj/item/clothing/suit/storage/toggle/highvis = 3, + /obj/item/clothing/suit/storage/toggle/highvis_alt = 3, + /obj/item/clothing/suit/storage/toggle/highvis_orange = 3, + /obj/item/clothing/suit/storage/toggle/highvis_red = 3, + /obj/item/clothing/suit/storage/toggle/labcoat = 3, + /obj/item/clothing/suit/storage/toggle/labcoat/heph = 2, + /obj/item/clothing/suit/storage/toggle/labcoat/orion = 2, + /obj/item/clothing/suit/storage/toggle/longcoat/heph = 2, + /obj/item/clothing/suit/storage/toggle/longcoat/orion = 2, + /obj/item/clothing/pants/highvis = 3, + /obj/item/clothing/pants/highvis_alt = 3, + /obj/item/clothing/pants/highvis_orange = 3, + /obj/item/clothing/pants/highvis_red = 3, + /obj/item/clothing/head/bandana/cargo = 3, + /obj/item/clothing/head/beret/cargo = 3, + /obj/item/clothing/head/beret/corporate/heph = 3, + /obj/item/clothing/head/beret/corporate/orion = 3, + /obj/item/clothing/head/softcap/cargo = 3, + /obj/item/clothing/head/softcap/orion = 3, + /obj/item/clothing/head/wool/heph = 4, + /obj/item/clothing/head/wool/orion = 4, + /obj/item/clothing/accessory/poncho/roles/cargo = 4, + /obj/item/clothing/accessory/poncho/roles/cloak/cargo = 2, + /obj/item/clothing/glasses/safety/goggles = 3, + /obj/item/clothing/gloves/black = 3, + /obj/item/clothing/gloves/yellow = 3, + /obj/item/clothing/gloves/yellow/specialu = 3, + /obj/item/clothing/gloves/yellow/specialt = 3, + /obj/item/clothing/shoes/sneakers/black = 3, + /obj/item/clothing/shoes/workboots/dark = 4, + /obj/item/clothing/shoes/workboots/toeless = 2, + /obj/item/storage/backpack/heph = 4, + /obj/item/storage/backpack/orion = 4, + /obj/item/storage/backpack/duffel/heph = 4, + /obj/item/storage/backpack/duffel/orion = 4, + /obj/item/storage/backpack/cloak/cargo = 3, + /obj/item/storage/backpack/cloak/heph = 2, + /obj/item/storage/backpack/cloak/orion = 2 + ) + premium = list( + /obj/item/toy/figure/roboticist = 3, + /obj/item/toy/figure/borg = 3 + ) + light_color = COLOR_LIME diff --git a/code/game/machinery/vending_items.dm b/code/game/machinery/vending_items.dm deleted file mode 100644 index 6ff2317d372..00000000000 --- a/code/game/machinery/vending_items.dm +++ /dev/null @@ -1,114 +0,0 @@ -/obj/item/device/vending_refill - name = "resupply canister" - desc = "A vending machine restock cart." - icon = 'icons/obj/assemblies/electronic_setups.dmi' - icon_state = "setup_medium-open" - item_state = "restock_unit" - force = 16 - throwforce = 10 - throw_speed = 1 - throw_range = 7 - w_class = WEIGHT_CLASS_NORMAL - var/vend_id = "generic" - var/charges = 0 - -/obj/item/device/vending_refill/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) - . = ..() - if(charges > 0) - . += "It can restock [charges] item(s)." - else - . += SPAN_WARNING("It's empty!") - -/obj/item/device/vending_refill/proc/restock_inventory(var/obj/machinery/vending/vendor) - if(vendor) - for(var/datum/data/vending_product/product in vendor.product_records) - if(product.amount < product.max_amount) - var/expense = product.max_amount - product.amount - if(charges < expense) - expense = charges - product.amount += expense - charges -= expense - if(!charges) - break - -//can refill most vendors from half depleted once. - -/obj/item/device/vending_refill/booze - name = "booze resupply canister" - vend_id = "booze" - charges = 100 //holy shit that's a lot of booze - -/obj/item/device/vending_refill/tools - name = "tools resupply canister" - vend_id = "tools" - charges = 25 - -/obj/item/device/vending_refill/coffee - name = "coffee resupply canister" - vend_id = "coffee" - charges = 38 - -/obj/item/device/vending_refill/snack - name = "snacks resupply canister" - vend_id = "snacks" - charges = 38 - -/obj/item/device/vending_refill/cola - name = "cola resupply canister" - vend_id = "cola" - charges = 50 - -/obj/item/device/vending_refill/smokes - name = "smokes resupply canister" - vend_id = "smokes" - charges = 25 - -/obj/item/device/vending_refill/meds - name = "meds resupply canister" - vend_id = "meds" - charges = 38 - -/obj/item/device/vending_refill/robust - name = "security resupply canister" - vend_id = "security" - charges = 25 - -/obj/item/device/vending_refill/hydro - name = "hydro resupply canister" - vend_id = "hydro" - charges = 23 - -/obj/item/device/vending_refill/seeds - name = "resupply canister" - vend_id = SEED_NOUN_SEEDS - charges = 175 - -/obj/item/device/vending_refill/cutlery - name = "cutlery resupply canister" - vend_id = "cutlery" - charges = 50 - -/obj/item/device/vending_refill/robo - name = "robo-tools resupply canister" - vend_id = "robo-tools" - charges = 38 - -/obj/item/device/vending_refill/zora - name = "Zo'ra Soda resupply canister" - vend_id = "zora" - charges = 40 - -/obj/item/device/vending_refill/frontiervend - name = "frontiervend resupply canister" - vend_id = "frontiervend" - charges = 220 - -/obj/item/device/vending_refill/battlemonsters - name = "Battlemonsters resupply canister" - vend_id = "battlemonsters" - charges = 40 - -/obj/item/device/vending_refill/encryption - name = "encryption key resupply canister" - vend_id = "encryption" - charges = 60 diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm deleted file mode 100644 index 83a46780900..00000000000 --- a/code/game/machinery/vending_types.dm +++ /dev/null @@ -1,2384 +0,0 @@ -/* - * Vending machine types - */ - -/* - -/obj/machinery/vending/[vendors name here] // --vending machine template :) - name = "" - desc = "" - icon = '' - icon_state = "" - vend_delay = 15 - products = list() - contraband = list() - premium = list() - -*/ - -//RECURSION -/obj/machinery/vending/vendors - name = "Omni-Restocker" - desc = "The mother of all vendors, from which vending itself comes!" - icon_state = "engivend" - icon_vend = "engivend-vend" - vend_id = "admin" - req_access = list(ACCESS_JANITOR) - products = list( - /obj/item/device/vending_refill/booze = 2, - /obj/item/device/vending_refill/tools = 2, - /obj/item/device/vending_refill/coffee = 2, - /obj/item/device/vending_refill/snack = 2, - /obj/item/device/vending_refill/cola = 2, - /obj/item/device/vending_refill/zora = 2, - /obj/item/device/vending_refill/frontiervend = 2, - /obj/item/device/vending_refill/smokes = 2, - /obj/item/device/vending_refill/meds = 2, - /obj/item/device/vending_refill/robust = 2, - /obj/item/device/vending_refill/hydro = 2, - /obj/item/device/vending_refill/cutlery = 2, - /obj/item/device/vending_refill/robo = 2, - /obj/item/device/vending_refill/battlemonsters = 2, - /obj/item/device/vending_refill/encryption = 2 - ) - random_itemcount = 0 - light_color = COLOR_GOLD - -/obj/machinery/vending/vendors/low_supply - products = list( - /obj/item/device/vending_refill/tools = 1, - /obj/item/device/vending_refill/coffee = 1, - /obj/item/device/vending_refill/meds = 1, - /obj/item/device/vending_refill/robust = 1, - /obj/item/device/vending_refill/hydro = 1, - /obj/item/device/vending_refill/cutlery = 1, - /obj/item/device/vending_refill/robo = 1, - /obj/item/device/vending_refill/battlemonsters = 1, - /obj/item/device/vending_refill/encryption = 1 - ) - -/obj/machinery/vending/boozeomat - name = "Booze-O-Mat" - desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." - icon_state = "boozeomat" //////////////18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles - icon_vend = "boozeomat-vend" - light_mask = "boozeomat-lightmask" - vend_id = "booze" - products = list( - /obj/item/reagent_containers/food/drinks/bottle/applejack = 5, - /obj/item/reagent_containers/food/drinks/bottle/bitters = 6, - /obj/item/reagent_containers/food/drinks/bottle/boukha = 2, - /obj/item/reagent_containers/food/drinks/bottle/brandy = 4, - /obj/item/reagent_containers/food/drinks/bottle/grenadine = 5, - /obj/item/reagent_containers/food/drinks/bottle/tequila = 5, - /obj/item/reagent_containers/food/drinks/bottle/rum = 5, - /obj/item/reagent_containers/food/drinks/bottle/fernet = 3, - /obj/item/reagent_containers/food/drinks/bottle/cognac = 5, - /obj/item/reagent_containers/food/drinks/bottle/cremeyvette = 4, - /obj/item/reagent_containers/food/drinks/bottle/wine = 5, - /obj/item/reagent_containers/food/drinks/bottle/rose_wine = 5, - /obj/item/reagent_containers/food/drinks/bottle/whitewine = 5, - /obj/item/reagent_containers/food/drinks/bottle/skrellwineylpha = 2, - /obj/item/reagent_containers/food/drinks/bottle/drambuie = 4, - /obj/item/reagent_containers/food/drinks/bottle/melonliquor = 2, - /obj/item/reagent_containers/food/drinks/bottle/gin = 5, - /obj/item/reagent_containers/food/drinks/bottle/vermouth = 5, - /obj/item/reagent_containers/food/drinks/bottle/chartreusegreen = 5, - /obj/item/reagent_containers/food/drinks/bottle/guinness = 4, - /obj/item/reagent_containers/food/drinks/bottle/absinthe = 2, - /obj/item/reagent_containers/food/drinks/bottle/bluecuracao = 2, - /obj/item/reagent_containers/food/drinks/bottle/kahlua = 5, - /obj/item/reagent_containers/food/drinks/bottle/triplesec = 5, - /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine = 2, - /obj/item/reagent_containers/food/drinks/bottle/champagne = 5, - /obj/item/reagent_containers/food/drinks/bottle/vodka = 5, - /obj/item/reagent_containers/food/drinks/bottle/vodka/mushroom = 1, - /obj/item/reagent_containers/food/drinks/bottle/pulque = 5, - /obj/item/reagent_containers/food/drinks/bottle/fireball = 2, - /obj/item/reagent_containers/food/drinks/bottle/whiskey = 5, - /obj/item/reagent_containers/food/drinks/bottle/victorygin = 2, - /obj/item/reagent_containers/food/drinks/bottle/makgeolli = 2, - /obj/item/reagent_containers/food/drinks/bottle/soju = 2, - /obj/item/reagent_containers/food/drinks/bottle/sake = 1, - /obj/item/reagent_containers/food/drinks/bottle/cremewhite = 4, - /obj/item/reagent_containers/food/drinks/bottle/mintsyrup = 5, - /obj/item/reagent_containers/food/drinks/bottle/sugartree_liquor = 2, - /obj/item/reagent_containers/food/drinks/bottle/chartreuseyellow = 5, - /obj/item/reagent_containers/food/drinks/bottle/messa_mead = 2, - /obj/item/reagent_containers/food/drinks/bottle/dominian_wine = 1, - /obj/item/reagent_containers/food/drinks/bottle/assunzione_wine = 1, - /obj/item/reagent_containers/food/drinks/bottle/algae_wine = 1, - /obj/item/reagent_containers/food/drinks/bottle/kvass = 1, - /obj/item/reagent_containers/food/drinks/bottle/tarasun = 1, - /obj/item/reagent_containers/food/drinks/bottle/valokki_wine = 1, - /obj/item/reagent_containers/food/drinks/bottle/twentytwoseventyfive = 1, - /obj/item/reagent_containers/food/drinks/bottle/saintjacques = 1, - /obj/item/reagent_containers/food/drinks/bottle/hooch = 1, - /obj/item/reagent_containers/food/drinks/bottle/nemiik = 1, - /obj/item/reagent_containers/food/drinks/bottle/ogogoro = 2, - /obj/item/reagent_containers/food/drinks/carton/applejuice = 2, - /obj/item/reagent_containers/food/drinks/carton/cream = 4, - /obj/item/reagent_containers/food/drinks/carton/dynjuice = 2, - /obj/item/reagent_containers/food/drinks/carton/limejuice = 4, - /obj/item/reagent_containers/food/drinks/carton/lemonjuice = 4, - /obj/item/reagent_containers/food/drinks/carton/orangejuice = 4, - /obj/item/reagent_containers/food/drinks/carton/tomatojuice = 2, - /obj/item/reagent_containers/food/drinks/carton/cranberryjuice = 2, - /obj/item/reagent_containers/food/drinks/carton/watermelonjuice = 2, - /obj/item/reagent_containers/food/drinks/carton/bananajuice = 2, - /obj/item/reagent_containers/food/drinks/carton/fatshouters = 1, - /obj/item/reagent_containers/food/drinks/carton/mutthir = 1, - /obj/item/reagent_containers/food/drinks/boba = 2, - /obj/item/reagent_containers/food/drinks/ice = 9, - /obj/item/storage/box/fancy/vkrexi_swollen_organ = 1 - ) - contraband = list( - /obj/item/reagent_containers/food/drinks/tea = 10 - ) - premium = list( - /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing = 2 - ) - vend_delay = 15 - idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. - product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?" - product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!" - req_access = list(ACCESS_BAR) - random_itemcount = 0 - vending_sound = 'sound/machines/vending/vending_cans.ogg' - light_color = COLOR_PALE_BLUE_GRAY - ui_size = 60 - -/obj/machinery/vending/boozeomat/ui_data(mob/user) - var/list/data = ..() - data["width_override"] = 900 - data["height_override"] = 600 - return data - -/obj/machinery/vending/boozeomat/merchant - // boozeomat variant used on the merchant station - products = list( - /obj/item/reagent_containers/food/drinks/drinkingglass = 12, - /obj/item/reagent_containers/food/drinks/ice = 12, - /obj/item/reagent_containers/food/drinks/bottle/whiskey = 6, - /obj/item/reagent_containers/food/drinks/bottle/tequila = 6, - /obj/item/reagent_containers/food/drinks/bottle/champagne = 2, - /obj/item/reagent_containers/food/drinks/bottle/vodka = 6, - /obj/item/reagent_containers/food/drinks/bottle/rum = 6, - /obj/item/reagent_containers/food/drinks/bottle/wine = 6, - /obj/item/reagent_containers/food/drinks/bottle/cognac = 6, - /obj/item/reagent_containers/food/drinks/bottle/victorygin = 6, - /obj/item/reagent_containers/food/drinks/bottle/boukha = 6, - /obj/item/reagent_containers/food/drinks/bottle/small/beer = 12, - /obj/item/reagent_containers/food/drinks/bottle/absinthe = 6, - /obj/item/reagent_containers/food/drinks/bottle/brandy = 6, - /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine = 6) - random_itemcount = 1 - req_access = list() - restock_items = TRUE - -/obj/machinery/vending/boozeomat/abandoned - // badly stocked, with trash, junk, etc - desc = "Used to hold bottles and drinks cold and nice in the past, now it is all dusty and barely functioning, if at all." - products = list( - /obj/item/reagent_containers/food/drinks/drinkingglass = 1, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/shot = 5, - /obj/item/reagent_containers/food/drinks/ice = 1, - /obj/item/reagent_containers/food/drinks/bottle/whiskey = 2, - /obj/item/reagent_containers/food/drinks/bottle/tequila = 1, - /obj/item/reagent_containers/food/drinks/bottle/vodka = 2, - /obj/item/reagent_containers/food/drinks/bottle/rum = 1, - /obj/item/reagent_containers/food/drinks/bottle/wine = 1, - /obj/item/reagent_containers/food/drinks/bottle/victorygin = 1, - /obj/item/reagent_containers/food/drinks/bottle/ogogoro = 1, - /obj/item/reagent_containers/food/drinks/bottle/small/beer = 2, - /obj/item/reagent_containers/food/drinks/bottle = 6, - /obj/random/junk = 7, - /obj/item/material/shard = 3, - /obj/item/broken_bottle = 5) - random_itemcount = 1 - req_access = list() - restock_items = TRUE - use_power = 0 - -/obj/machinery/vending/boozeomat/low_supply - // just badly stocked - products = list( - /obj/item/reagent_containers/food/drinks/bottle/applejack = 1, - /obj/item/reagent_containers/food/drinks/bottle/bitters = 2, - /obj/item/reagent_containers/food/drinks/bottle/boukha = 1, - /obj/item/reagent_containers/food/drinks/bottle/grenadine = 2, - /obj/item/reagent_containers/food/drinks/bottle/tequila = 1, - /obj/item/reagent_containers/food/drinks/bottle/rum = 1, - /obj/item/reagent_containers/food/drinks/bottle/fernet = 1, - /obj/item/reagent_containers/food/drinks/bottle/drambuie = 2, - /obj/item/reagent_containers/food/drinks/bottle/melonliquor = 1, - /obj/item/reagent_containers/food/drinks/bottle/chartreusegreen = 2, - /obj/item/reagent_containers/food/drinks/bottle/absinthe = 1, - /obj/item/reagent_containers/food/drinks/bottle/kahlua = 1, - /obj/item/reagent_containers/food/drinks/bottle/triplesec = 1, - /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine = 1, - /obj/item/reagent_containers/food/drinks/bottle/vodka = 2, - /obj/item/reagent_containers/food/drinks/bottle/pulque = 1, - /obj/item/reagent_containers/food/drinks/bottle/fireball = 2, - /obj/item/reagent_containers/food/drinks/bottle/cremewhite = 1, - /obj/item/reagent_containers/food/drinks/bottle/mintsyrup = 2, - /obj/item/reagent_containers/food/drinks/bottle/chartreuseyellow = 1, - /obj/item/reagent_containers/food/drinks/bottle/messa_mead = 2, - /obj/item/reagent_containers/food/drinks/bottle/kvass = 1, - /obj/item/reagent_containers/food/drinks/bottle/hooch = 4, - /obj/item/reagent_containers/food/drinks/bottle/nemiik = 1, - /obj/item/reagent_containers/food/drinks/carton/applejuice = 1, - /obj/item/reagent_containers/food/drinks/carton/cream = 4, - /obj/item/reagent_containers/food/drinks/carton/dynjuice = 1, - /obj/item/reagent_containers/food/drinks/carton/tomatojuice = 1, - /obj/item/reagent_containers/food/drinks/carton/cranberryjuice = 1, - /obj/item/reagent_containers/food/drinks/ice = 9 - ) - -/obj/machinery/vending/assist - vend_id = "tools" - icon_state = "generic" - icon_vend = "generic-vend" - light_mask = "generic-lightmask" - products = list( - /obj/item/device/assembly/prox_sensor = 5, - /obj/item/device/assembly/igniter = 3, - /obj/item/device/assembly/signaler = 4, - /obj/item/wirecutters = 1 - ) - contraband = list( - /obj/item/device/flashlight = 5, - /obj/item/device/assembly/timer = 2, - /obj/item/device/assembly/infra = 2, - /obj/item/device/assembly/voice = 2 - ) - premium = list( - /obj/item/device/multitool/ = 2 - ) - product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" - restock_items = TRUE - light_color = COLOR_GUNMETAL - -/obj/machinery/vending/assist/synd - name = "Parts vendor" - desc = "Just a normal vending machine - nothing to see here." - icon_state = "generic" - icon_vend = "generic-vend" - light_mask = "generic-lightmask" - contraband = null - random_itemcount = 0 - products = list( - /obj/item/device/assembly/prox_sensor = 5, - /obj/item/device/assembly/signaler = 4, - /obj/item/device/assembly/infra = 4, - /obj/item/device/assembly/prox_sensor = 4, - /obj/item/handcuffs = 8, - /obj/item/device/flash = 4, - /obj/item/clothing/glasses/sunglasses = 4 - ) - - -/obj/machinery/vending/coffee - name = "Hot Drinks machine" - desc = "A vending machine which dispenses hot drinks." - product_ads = "Have a drink!;Drink up!;It's good for you!;Would you like a hot joe?;I'd kill for some coffee!;The best beans in the galaxy.;Only the finest brew for you.;Mmmm. Nothing like a coffee.;I like coffee, don't you?;Coffee helps you work!;Try some tea.;We hope you like the best!;Try our new chocolate!;Admin conspiracies" - icon_state = "coffee" - icon_vend = "coffee-vend" - icon_screen = "coffee-screen" - light_mask = "coffee-lightmask" - vend_delay = 34 - idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. - vend_id = "coffee" - products = list( - /obj/item/reagent_containers/food/drinks/coffee = 25, - /obj/item/reagent_containers/food/drinks/tea = 25, - /obj/item/reagent_containers/food/drinks/greentea = 25, - /obj/item/reagent_containers/food/drinks/chaitea = 25, - /obj/item/reagent_containers/food/drinks/hotcider = 25, - /obj/item/reagent_containers/food/drinks/h_chocolate = 25, - /obj/item/reagent_containers/food/snacks/donut/normal = 20 - ) - contraband = list( - /obj/item/reagent_containers/food/drinks/ice = 10, - /obj/item/reagent_containers/food/drinks/carton/soymilk = 2 - ) - prices = list( - /obj/item/reagent_containers/food/drinks/coffee = 2, - /obj/item/reagent_containers/food/drinks/tea = 2, - /obj/item/reagent_containers/food/drinks/greentea = 2.25, - /obj/item/reagent_containers/food/drinks/chaitea = 2.50, - /obj/item/reagent_containers/food/drinks/hotcider = 2.50, - /obj/item/reagent_containers/food/drinks/h_chocolate = 2, - /obj/item/reagent_containers/food/snacks/donut/normal = 2.50, - ) - premium = list( - /obj/item/reagent_containers/glass/beaker/teapot/ = 5 - ) - vending_sound = 'sound/machines/vending/vending_coffee.ogg' - cooling_temperature = T0C + 57 //Optimal coffee temperature - heating_temperature = T0C + 100 //ULTRA HOT COFFEE - temperature_setting = -1 - light_color = COLOR_BROWN - -/obj/machinery/vending/coffee/free - name = "Free Hot Drinks machine" - desc = "A vending machine which dispenses complimentary hot drinks." - random_itemcount = 0 - products = list( - /obj/item/reagent_containers/food/drinks/coffee = 12, - /obj/item/reagent_containers/food/drinks/tea = 8, - /obj/item/reagent_containers/food/drinks/h_chocolate = 8, - /obj/item/reagent_containers/food/snacks/donut/normal = 6 - ) - prices = list() - -/obj/machinery/vending/coffee/low_supply - products = list( - /obj/item/reagent_containers/food/drinks/coffee = 2, - /obj/item/reagent_containers/food/drinks/tea = 3, - /obj/item/reagent_containers/food/drinks/greentea = 1, - /obj/item/reagent_containers/food/drinks/chaitea = 1, - /obj/item/reagent_containers/food/drinks/hotcider = 1, - /obj/item/reagent_containers/food/drinks/h_chocolate = 1, - /obj/item/reagent_containers/food/snacks/donut/normal = 2 - ) - -/obj/machinery/vending/snack - name = "Getmore Chocolate Corp" - desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars." - product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" - product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" - icon_state = "snack" - icon_vend = "snack-vend" - light_mask = "snack-lightmask" - vend_id = "snacks" - products = list( - /obj/item/reagent_containers/food/snacks/candy = 6, - /obj/item/reagent_containers/food/drinks/dry_ramen = 6, - /obj/item/reagent_containers/food/snacks/chips =6, - /obj/item/reagent_containers/food/snacks/sosjerky = 6, - /obj/item/reagent_containers/food/snacks/no_raisin = 6, - /obj/item/reagent_containers/food/snacks/spacetwinkie = 6, - /obj/item/reagent_containers/food/snacks/cheesiehonkers = 6, - /obj/item/reagent_containers/food/snacks/tastybread = 6, - /obj/item/storage/box/pineapple = 4, - /obj/item/reagent_containers/food/snacks/chocolatebar = 6, - /obj/item/reagent_containers/food/snacks/whitechocolate/wrapped = 6, - /obj/item/storage/box/fancy/cookiesnack = 6, - /obj/item/storage/box/fancy/gum = 4, - /obj/item/storage/box/fancy/vkrexitaffy = 5, - /obj/item/clothing/mask/chewable/candy/lolli = 8, - /obj/item/storage/box/fancy/admints = 4, - /obj/item/reagent_containers/food/snacks/skrellsnacks = 3, - /obj/item/reagent_containers/food/snacks/meatsnack = 2, - /obj/item/reagent_containers/food/snacks/maps = 2, - /obj/item/reagent_containers/food/snacks/nathisnack = 2, - /obj/item/reagent_containers/food/snacks/koisbar_clean = 4, - /obj/item/reagent_containers/food/snacks/candy/koko = 5, - /obj/item/reagent_containers/food/snacks/tuna = 2, - /obj/item/reagent_containers/food/snacks/adhomian_can = 2, - /obj/item/reagent_containers/food/snacks/ricetub = 2, - /obj/item/reagent_containers/food/snacks/riceball = 4, - /obj/item/reagent_containers/food/snacks/seaweed = 5, - /obj/item/reagent_containers/food/drinks/jyalra = 5, - /obj/item/reagent_containers/food/drinks/jyalra/cheese = 5, - /obj/item/reagent_containers/food/drinks/jyalra/apple = 5, - /obj/item/reagent_containers/food/drinks/jyalra/cherry = 5 - ) - contraband = list( - /obj/item/reagent_containers/food/snacks/syndicake = 6, - /obj/item/reagent_containers/food/snacks/koisbar = 4 - ) - premium = list( - /obj/item/reagent_containers/food/snacks/cookie = 6, - /obj/item/storage/box/fancy/food/pralinebox = 2 - ) - prices = list( - /obj/item/reagent_containers/food/snacks/candy = 1.50, - /obj/item/reagent_containers/food/drinks/dry_ramen = 2.00, - /obj/item/reagent_containers/food/snacks/chips = 2.50, - /obj/item/reagent_containers/food/snacks/sosjerky = 3.50, - /obj/item/reagent_containers/food/snacks/no_raisin = 2.00, - /obj/item/reagent_containers/food/snacks/spacetwinkie = 2.00, - /obj/item/reagent_containers/food/snacks/cheesiehonkers = 2.50, - /obj/item/reagent_containers/food/snacks/tastybread = 3.50, - /obj/item/storage/box/pineapple = 5.00, - /obj/item/reagent_containers/food/snacks/chocolatebar = 2.00, - /obj/item/reagent_containers/food/snacks/whitechocolate/wrapped = 3.00, - /obj/item/storage/box/fancy/cookiesnack = 4.00, - /obj/item/storage/box/fancy/gum = 2.50, - /obj/item/storage/box/fancy/vkrexitaffy = 3.50, - /obj/item/clothing/mask/chewable/candy/lolli = 1.00, - /obj/item/storage/box/fancy/admints = 2.00, - /obj/item/reagent_containers/food/snacks/skrellsnacks = 1.50, - /obj/item/reagent_containers/food/snacks/meatsnack = 3.00, - /obj/item/reagent_containers/food/snacks/maps = 3.25, - /obj/item/reagent_containers/food/snacks/nathisnack = 2.00, - /obj/item/reagent_containers/food/snacks/koisbar_clean = 4.25, - /obj/item/reagent_containers/food/snacks/candy/koko = 3.00, - /obj/item/reagent_containers/food/snacks/tuna = 2.50, - /obj/item/reagent_containers/food/snacks/adhomian_can = 2.00, - /obj/item/reagent_containers/food/snacks/ricetub = 4.50, - /obj/item/reagent_containers/food/snacks/riceball = 3.00, - /obj/item/reagent_containers/food/snacks/seaweed = 2.50, - /obj/item/reagent_containers/food/drinks/jyalra = 1.50, - /obj/item/reagent_containers/food/drinks/jyalra/cheese = 1.75, - /obj/item/reagent_containers/food/drinks/jyalra/apple = 1.75, - /obj/item/reagent_containers/food/drinks/jyalra/cherry = 1.75, - /obj/item/reagent_containers/food/snacks/syndicake = 3.50, - /obj/item/reagent_containers/food/snacks/koisbar = 12.00, - ) - light_color = COLOR_BABY_BLUE - manufacturer = "nanotrasen" - -/obj/machinery/vending/snack/low_supply - products = list( - /obj/item/reagent_containers/food/drinks/dry_ramen = 4, - /obj/item/reagent_containers/food/snacks/chips = 1, - /obj/item/reagent_containers/food/snacks/sosjerky = 2, - /obj/item/reagent_containers/food/snacks/no_raisin = 4, - /obj/item/storage/box/fancy/vkrexitaffy = 3, - /obj/item/reagent_containers/food/snacks/skrellsnacks = 1, - /obj/item/reagent_containers/food/snacks/maps = 1, - /obj/item/reagent_containers/food/snacks/koisbar_clean = 1, - /obj/item/reagent_containers/food/snacks/adhomian_can = 1, - /obj/item/reagent_containers/food/drinks/jyalra = 1 - ) - -/obj/machinery/vending/snack/konyang - products = list( - /obj/item/reagent_containers/food/snacks/candy = 6, - /obj/item/reagent_containers/food/drinks/dry_ramen = 12, - /obj/item/reagent_containers/food/snacks/chips =6, - /obj/item/reagent_containers/food/snacks/sosjerky = 6, - /obj/item/reagent_containers/food/snacks/no_raisin = 6, - /obj/item/reagent_containers/food/snacks/spacetwinkie = 6, - /obj/item/reagent_containers/food/snacks/cheesiehonkers = 6, - /obj/item/reagent_containers/food/snacks/tastybread = 12, - /obj/item/storage/box/pineapple = 6, - /obj/item/reagent_containers/food/snacks/chocolatebar = 6, - /obj/item/storage/box/fancy/cookiesnack = 6, - /obj/item/storage/box/fancy/gum = 4, - /obj/item/clothing/mask/chewable/candy/lolli = 8, - /obj/item/storage/box/fancy/admints = 4, - /obj/item/reagent_containers/food/snacks/skrellsnacks = 3, - /obj/item/reagent_containers/food/snacks/meatsnack = 2, - /obj/item/reagent_containers/food/snacks/maps = 2, - /obj/item/reagent_containers/food/snacks/tuna = 2, - /obj/item/reagent_containers/food/snacks/ricetub = 4, - /obj/item/reagent_containers/food/snacks/riceball = 8, - /obj/item/reagent_containers/food/snacks/seaweed = 10, - ) -/obj/machinery/vending/cola - name = "Idris Re-Fresh" - desc = "A soft drink vendor provided by an Idris subsidiary." - icon_state = "cola_machine" - icon_vend = "cola_machine-vend" - icon_deny = "cola_machine-deny" - icon_screen = "cola_machine-screen" - light_mask = "cola_machine-lightmask" - product_slogans = "Idris Re-Fresh: the more expensive the place, the more of us you'll seee!" - product_ads = "Refreshing!;Hope you're thirsty!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space." - vend_id = "cola" - products = list( - /obj/item/reagent_containers/food/drinks/cans/cola = 10, - /obj/item/reagent_containers/food/drinks/cans/diet_cola = 10, - /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 10, - /obj/item/reagent_containers/food/drinks/cans/dr_gibb = 10, - /obj/item/reagent_containers/food/drinks/cans/root_beer = 10, - /obj/item/reagent_containers/food/drinks/cans/starkist = 10, - /obj/item/reagent_containers/food/drinks/waterbottle = 10, - /obj/item/reagent_containers/food/drinks/cans/dyn = 10, - /obj/item/reagent_containers/food/drinks/cans/space_up = 10, - /obj/item/reagent_containers/food/drinks/cans/iced_tea = 10, - /obj/item/reagent_containers/food/drinks/cans/grape_juice = 10, - /obj/item/reagent_containers/food/drinks/cans/peach_soda = 10, - /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 10, - /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda = 10, - /obj/item/reagent_containers/food/drinks/carton/small/milk = 10, - /obj/item/reagent_containers/food/drinks/carton/small/milk/choco = 10, - /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 10, - /obj/item/reagent_containers/food/drinks/cans/melon_soda = 10, - /obj/item/reagent_containers/food/drinks/zobo = 10 - ) - contraband = list( - /obj/item/reagent_containers/food/drinks/cans/thirteenloko = 5, - /obj/item/reagent_containers/food/drinks/cans/koispunch = 3 - ) - premium = list( - /obj/item/reagent_containers/food/drinks/bottle/cola = 2, - /obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind = 2, - /obj/item/reagent_containers/food/drinks/bottle/space_up = 2 - ) - prices = list( - /obj/item/reagent_containers/food/drinks/cans/cola = 1.50, - /obj/item/reagent_containers/food/drinks/cans/diet_cola = 1.50, - /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 1.50, - /obj/item/reagent_containers/food/drinks/cans/dr_gibb = 1.50, - /obj/item/reagent_containers/food/drinks/cans/root_beer = 1.50, - /obj/item/reagent_containers/food/drinks/cans/starkist = 1.50, - /obj/item/reagent_containers/food/drinks/waterbottle = 1.25, - /obj/item/reagent_containers/food/drinks/cans/dyn = 1.80, - /obj/item/reagent_containers/food/drinks/cans/space_up = 1.50, - /obj/item/reagent_containers/food/drinks/cans/iced_tea = 1.40, - /obj/item/reagent_containers/food/drinks/cans/grape_juice = 1.75, - /obj/item/reagent_containers/food/drinks/cans/peach_soda = 1.75, - /obj/item/reagent_containers/food/drinks/cans/koispunch = 5.00, - /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 2.25, - /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda = 3.00, - /obj/item/reagent_containers/food/drinks/carton/small/milk = 1.80, - /obj/item/reagent_containers/food/drinks/carton/small/milk/choco = 1.80, - /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 1.80, - /obj/item/reagent_containers/food/drinks/cans/melon_soda = 1.75, - /obj/item/reagent_containers/food/drinks/zobo = 1.75, - ) - idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. - vending_sound = 'sound/machines/vending/vending_cans.ogg' - temperature_setting = -1 - light_color = COLOR_GUNMETAL - -/obj/machinery/vending/cola/low_supply - products = list( - /obj/item/reagent_containers/food/drinks/cans/diet_cola = 1, - /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 2, - /obj/item/reagent_containers/food/drinks/cans/dr_gibb = 1, - /obj/item/reagent_containers/food/drinks/cans/root_beer = 2, - /obj/item/reagent_containers/food/drinks/cans/starkist = 1, - /obj/item/reagent_containers/food/drinks/waterbottle = 4, - /obj/item/reagent_containers/food/drinks/cans/dyn = 1, - /obj/item/reagent_containers/food/drinks/cans/space_up = 2, - /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 8, - /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda = 2 - ) - -/obj/machinery/vending/cola/konyang - products = list( - /obj/item/reagent_containers/food/drinks/cans/cola = 10, - /obj/item/reagent_containers/food/drinks/cans/diet_cola = 10, - /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 10, - /obj/item/reagent_containers/food/drinks/cans/starkist = 10, - /obj/item/reagent_containers/food/drinks/waterbottle = 10, - /obj/item/reagent_containers/food/drinks/cans/dyn = 5, - /obj/item/reagent_containers/food/drinks/cans/space_up = 10, - /obj/item/reagent_containers/food/drinks/cans/iced_tea = 10, - /obj/item/reagent_containers/food/drinks/cans/grape_juice = 10, - /obj/item/reagent_containers/food/drinks/cans/peach_soda = 10, - /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 5, - /obj/item/reagent_containers/food/drinks/carton/small/milk = 10, - /obj/item/reagent_containers/food/drinks/carton/small/milk/choco = 10, - /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 10, - /obj/item/reagent_containers/food/drinks/cans/melon_soda = 10 - ) - -/obj/machinery/vending/cigarette - name = "cigarette machine" //OCD had to be uppercase to look nice with the new formating - desc = "If you want to get cancer, might as well do it in style!" - product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" - product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs." - vend_delay = 24 - icon_state = "cigs" - icon_vend = "cigs-vend" - vend_id = "smokes" - products = list( - /obj/item/storage/box/fancy/cigarettes/rugged = 6, - /obj/item/storage/box/fancy/cigarettes = 8, - /obj/item/storage/box/fancy/cigarettes/dromedaryco = 5, - /obj/item/storage/box/fancy/cigarettes/nicotine = 3, - /obj/item/storage/box/fancy/cigarettes/pra = 6, - /obj/item/storage/box/fancy/cigarettes/dpra = 6, - /obj/item/storage/box/fancy/cigarettes/nka = 6, - /obj/item/storage/box/fancy/cigarettes/federation = 3, - /obj/item/storage/box/fancy/cigarettes/dyn = 3, - /obj/item/storage/box/fancy/cigarettes/oracle = 3, - /obj/item/storage/chewables/rollable = 8, - /obj/item/storage/chewables/rollable/unathi = 6, - /obj/item/storage/chewables/rollable/fine = 5, - /obj/item/storage/chewables/rollable/nico = 3, - /obj/item/storage/chewables/rollable/oracle = 5, - /obj/item/storage/chewables/rollable/vedamor = 3, - /obj/item/storage/chewables/tobacco/bad = 6, - /obj/item/storage/chewables/tobacco = 8, - /obj/item/storage/chewables/tobacco/fine = 5, - /obj/item/storage/chewables/tobacco/federation = 2, - /obj/item/storage/chewables/tobacco/dyn = 2, - /obj/item/storage/chewables/tobacco/koko = 2, - /obj/item/storage/chewables/oracle = 4, - /obj/item/storage/box/fancy/chewables/tobacco/nico = 3, - /obj/item/storage/cigfilters = 6, - /obj/item/storage/box/fancy/cigpaper = 6, - /obj/item/storage/box/fancy/cigpaper/fine = 4, - /obj/item/storage/box/fancy/matches = 10, - /obj/item/flame/lighter/random = 4, - /obj/item/spacecash/ewallet/lotto = 30, - /obj/item/clothing/mask/smokable/ecig/util = 2, - /obj/item/clothing/mask/smokable/ecig/simple = 2, - /obj/item/reagent_containers/ecig_cartridge/med_nicotine = 10, - /obj/item/reagent_containers/ecig_cartridge/high_nicotine = 10, - /obj/item/reagent_containers/ecig_cartridge/orange = 10, - /obj/item/reagent_containers/ecig_cartridge/watermelon = 10, - /obj/item/reagent_containers/ecig_cartridge/grape = 10 - ) - contraband = list( - /obj/item/storage/box/fancy/cigarettes/blank = 5, - /obj/item/storage/box/fancy/cigarettes/acmeco = 5, - /obj/item/clothing/mask/smokable/cigarette/cigar/sausage = 3 - ) - premium = list( - /obj/item/flame/lighter/zippo = 4, - /obj/item/storage/box/fancy/cigarettes/cigar = 5 - ) - prices = list( - /obj/item/storage/box/fancy/cigarettes/rugged = 8.00, - /obj/item/storage/box/fancy/cigarettes = 9.00, - /obj/item/storage/box/fancy/cigarettes/dromedaryco = 9.75, - /obj/item/storage/box/fancy/cigarettes/nicotine = 10.50, - /obj/item/storage/box/fancy/cigarettes/pra = 9.75, - /obj/item/storage/box/fancy/cigarettes/dpra = 10.25, - /obj/item/storage/box/fancy/cigarettes/nka = 9.25, - /obj/item/storage/box/fancy/cigarettes/federation = 11.50, - /obj/item/storage/box/fancy/cigarettes/dyn = 10.25, - /obj/item/storage/box/fancy/cigarettes/oracle = 10.25, - /obj/item/storage/chewables/rollable = 7.50, - /obj/item/storage/chewables/rollable/unathi = 7.75, - /obj/item/storage/chewables/rollable/fine = 8.00, - /obj/item/storage/chewables/rollable/nico = 10.00, - /obj/item/storage/chewables/rollable/oracle = 7.75, - /obj/item/storage/chewables/rollable/vedamor = 8.50, - /obj/item/storage/chewables/tobacco/bad = 6.50, - /obj/item/storage/chewables/tobacco = 9.00, - /obj/item/storage/chewables/tobacco/fine = 10.00, - /obj/item/storage/chewables/tobacco/federation = 10.25, - /obj/item/storage/chewables/tobacco/dyn = 9.75, - /obj/item/storage/box/fancy/chewables/tobacco/nico = 10.75, - /obj/item/storage/chewables/oracle = 11.50, - /obj/item/storage/chewables/tobacco/koko = 11.00, - /obj/item/storage/box/fancy/matches = 1.50, - /obj/item/flame/lighter/random = 1.50, - /obj/item/storage/cigfilters = 1.25, - /obj/item/storage/box/fancy/cigpaper = 2.50, - /obj/item/storage/box/fancy/cigpaper/fine = 3.50, - /obj/item/spacecash/ewallet/lotto = 5.00, - /obj/item/clothing/mask/smokable/ecig/simple = 25.00, - /obj/item/clothing/mask/smokable/ecig/util = 35.00, - /obj/item/reagent_containers/ecig_cartridge/med_nicotine = 4.50, - /obj/item/reagent_containers/ecig_cartridge/high_nicotine = 5.25, - /obj/item/reagent_containers/ecig_cartridge/orange = 4.25, - /obj/item/reagent_containers/ecig_cartridge/watermelon = 4.00, - /obj/item/reagent_containers/ecig_cartridge/grape = 4.40, - ) - light_color = COLOR_BLUE_GRAY - -/obj/machinery/vending/cigarette/low_supply - products = list( - /obj/item/storage/box/fancy/cigarettes/rugged = 4, - /obj/item/storage/box/fancy/cigarettes = 2, - /obj/item/storage/box/fancy/cigarettes/dpra = 2, - /obj/item/storage/box/fancy/cigarettes/federation = 1, - /obj/item/storage/chewables/rollable = 2, - /obj/item/storage/chewables/rollable/unathi = 1, - /obj/item/storage/chewables/tobacco/bad = 2, - /obj/item/storage/chewables/tobacco/koko = 1, - /obj/item/storage/cigfilters = 1, - /obj/item/storage/box/fancy/cigpaper = 4, - /obj/item/storage/box/fancy/matches = 4, - /obj/item/spacecash/ewallet/lotto = 9, - /obj/item/clothing/mask/smokable/ecig/util = 1, - /obj/item/clothing/mask/smokable/ecig/simple = 1, - /obj/item/reagent_containers/ecig_cartridge/med_nicotine = 2, - /obj/item/reagent_containers/ecig_cartridge/grape = 1 - ) - -/obj/machinery/vending/cigarette/merchant - // Mapped in merchant station - premium = list() - prices = list() - products = list( - /obj/item/storage/box/fancy/cigarettes = 10, - /obj/item/storage/box/fancy/cigarettes/oracle = 10, - /obj/item/storage/box/fancy/matches = 10, - /obj/item/flame/lighter/random = 4, - /obj/item/storage/box/fancy/cigarettes/cigar = 5, - /obj/item/storage/box/fancy/cigarettes/acmeco = 5 - ) - -/obj/machinery/vending/cigarette/hacked - name = "hacked cigarette machine" - prices = list() - products = list( - /obj/item/storage/box/fancy/cigarettes = 10, - /obj/item/storage/box/fancy/matches = 10, - /obj/item/flame/lighter/zippo = 4, - /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2 - ) - -/obj/machinery/vending/medical - name = "NanoMed Plus" - desc = "Medical drug dispenser." - icon_state = "med" - icon_vend = "med-vend" - product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!" - req_access = list(ACCESS_MEDICAL_EQUIP) - vend_id = "meds" - products = list( - /obj/item/reagent_containers/glass/bottle/antitoxin = 4, - /obj/item/reagent_containers/glass/bottle/inaprovaline = 4, - /obj/item/reagent_containers/glass/bottle/perconol = 3, - /obj/item/reagent_containers/glass/bottle/toxin = 1, - /obj/item/reagent_containers/glass/bottle/coagzolug = 2, - /obj/item/reagent_containers/glass/bottle/thetamycin = 2, - /obj/item/reagent_containers/syringe = 12, - /obj/item/device/healthanalyzer = 5, - /obj/item/device/breath_analyzer = 2, - /obj/item/reagent_containers/glass/beaker = 4, - /obj/item/reagent_containers/dropper = 2, - /obj/item/stack/medical/bruise_pack = 5, - /obj/item/stack/medical/ointment = 5, - /obj/item/stack/medical/advanced/bruise_pack = 3, - /obj/item/stack/medical/advanced/ointment = 3, - /obj/item/stack/medical/splint = 2, - /obj/item/reagent_containers/pill/antitox = 6, - /obj/item/reagent_containers/pill/cetahydramine = 6, - /obj/item/reagent_containers/pill/perconol = 6, - /obj/item/reagent_containers/glass/beaker/medcup = 4, - /obj/item/storage/pill_bottle = 4, - /obj/item/reagent_containers/spray/sterilizine = 2 - ) - contraband = list( - /obj/item/reagent_containers/inhaler/space_drugs = 2, - /obj/item/reagent_containers/pill/tox = 3, - /obj/item/reagent_containers/pill/stox = 4 - ) - idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. - random_itemcount = 0 - temperature_setting = -1 - light_color = LIGHT_COLOR_GREEN - manufacturer = "zenghu" - -/obj/machinery/vending/medical/low_supply - products = list( - /obj/item/reagent_containers/glass/bottle/inaprovaline = 1, - /obj/item/reagent_containers/glass/bottle/perconol = 1, - /obj/item/reagent_containers/glass/bottle/toxin = 1, - /obj/item/reagent_containers/glass/bottle/thetamycin = 1, - /obj/item/reagent_containers/syringe = 8, - /obj/item/device/healthanalyzer = 1, - /obj/item/stack/medical/bruise_pack = 2, - /obj/item/stack/medical/ointment = 1, - /obj/item/stack/medical/splint = 1, - /obj/item/reagent_containers/pill/antitox = 2, - /obj/item/reagent_containers/pill/cetahydramine = 1, - /obj/item/reagent_containers/pill/perconol = 1, - /obj/item/reagent_containers/glass/beaker/medcup = 4, - /obj/item/storage/pill_bottle = 2, - /obj/item/reagent_containers/spray/sterilizine = 1 - ) - -//This one's from bay12 -/obj/machinery/vending/phoronresearch - name = "Toximate 3000" - desc = "All the fine parts you need in one vending machine!" - vend_id = "bomba" - icon_state = "generic" - icon_vend = "generic-vend" - products = list( - /obj/item/clothing/under/rank/scientist = 6, - /obj/item/clothing/suit/hazmat = 6, - /obj/item/clothing/head/hazmat = 6, - /obj/item/device/transfer_valve = 6, - /obj/item/device/assembly/timer = 6, - /obj/item/device/assembly/signaler = 6, - /obj/item/device/assembly/igniter = 6 - ) - contraband = list( - /obj/item/device/assembly/prox_sensor = 4, - /obj/item/device/assembly/infra = 4, - /obj/item/device/assembly/mousetrap = 4, - /obj/item/device/assembly/voice = 4 - ) - premium = list( - /obj/item/clothing/head/collectable/petehat = 1 - ) - restock_items = TRUE - random_itemcount = 0 - light_color = COLOR_BLUE_GRAY - manufacturer = "scc" - - -/obj/machinery/vending/wallmed1 - name = "\improper NanoMed" - desc = "A wall-mounted version of the NanoMed." - product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?" - icon_state = "wallmed" - req_access = list(ACCESS_MEDICAL) - density = FALSE //It is wall-mounted, and thus, not dense. --Superxpdude - vend_id = "meds" - products = list( - /obj/item/stack/medical/bruise_pack = 3, - /obj/item/stack/medical/ointment = 3, - /obj/item/reagent_containers/pill/perconol = 4, - /obj/item/storage/box/fancy/med_pouch/trauma = 1, - /obj/item/storage/box/fancy/med_pouch/burn = 1, - /obj/item/storage/box/fancy/med_pouch/oxyloss = 1, - /obj/item/storage/box/fancy/med_pouch/toxin = 1, - /obj/item/device/healthanalyzer = 1, - /obj/item/device/breath_analyzer = 1 - ) - contraband = list( - /obj/item/reagent_containers/syringe/dylovene = 4, - /obj/item/reagent_containers/pill/tox = 1 - ) - premium = list( - /obj/item/reagent_containers/pill/mortaphenyl = 4 - ) - random_itemcount = FALSE - temperature_setting = -1 - light_color = LIGHT_COLOR_GREEN - obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED - manufacturer = "zenghu" - -/obj/machinery/vending/wallmed1/low_supply - products = list( - /obj/item/stack/medical/bruise_pack = 1, - /obj/item/stack/medical/ointment = 1, - /obj/item/reagent_containers/pill/perconol = 2, - /obj/item/storage/box/fancy/med_pouch/oxyloss = 1, - /obj/item/storage/box/fancy/med_pouch/toxin = 1 - ) - -/obj/machinery/vending/wallmed2 - name = "\improper NanoMed Mini" - desc = "A wall-mounted version of the NanoMed, containing only vital first aid equipment." - icon_state = "wallmed" - req_access = list(ACCESS_MEDICAL) - density = FALSE //It is wall-mounted, and thus, not dense. --Superxpdude - vend_id = "meds" - products = list( - /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 5, - /obj/item/stack/medical/bruise_pack = 4, - /obj/item/stack/medical/ointment = 4, - /obj/item/storage/box/fancy/med_pouch/trauma = 1, - /obj/item/storage/box/fancy/med_pouch/burn = 1, - /obj/item/storage/box/fancy/med_pouch/oxyloss = 1, - /obj/item/storage/box/fancy/med_pouch/toxin = 1, - /obj/item/storage/box/fancy/med_pouch/radiation = 1, - /obj/item/device/healthanalyzer = 1, - /obj/item/device/breath_analyzer = 1 - ) - contraband = list( - /obj/item/reagent_containers/pill/tox = 3 - ) - premium = list( - /obj/item/reagent_containers/pill/mortaphenyl = 4 - ) - random_itemcount = FALSE - temperature_setting = -1 - light_color = LIGHT_COLOR_GREEN - obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED - manufacturer = "zenghu" - -/obj/machinery/vending/wallmed2/low_supply - products = list( - /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 1, - /obj/item/stack/medical/bruise_pack = 2, - /obj/item/stack/medical/ointment = 2, - /obj/item/storage/box/fancy/med_pouch/radiation = 1 - ) - -/obj/machinery/vending/wallpharm - name = "\improper NanoPharm Mini" - desc = "A wall-mounted pharmaceuticals vending machine packed with over-the-counter bottles. For the sick salaried worker in you." - icon_state = "wallpharm" - density = FALSE - products = list( - /obj/item/stack/medical/bruise_pack = 5, - /obj/item/stack/medical/ointment = 5, - /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 2, - /obj/item/storage/pill_bottle/antidexafen = 4, - /obj/item/storage/pill_bottle/dexalin = 4, - /obj/item/storage/pill_bottle/dylovene = 4, - /obj/item/storage/pill_bottle/vitamin = 5, - /obj/item/storage/pill_bottle/cetahydramine = 4, - /obj/item/storage/pill_bottle/caffeine = 3, - /obj/item/storage/pill_bottle/nicotine = 4, - /obj/item/storage/pill_bottle/rmt = 2 - ) - prices = list( - /obj/item/storage/pill_bottle/antidexafen = 7.00, - /obj/item/storage/pill_bottle/dexalin = 25.00, - /obj/item/storage/pill_bottle/dylovene = 12.00, - /obj/item/storage/pill_bottle/vitamin = 8.00, - /obj/item/storage/pill_bottle/cetahydramine = 10.00, - /obj/item/storage/pill_bottle/caffeine = 9.00, - /obj/item/storage/pill_bottle/nicotine = 15.00, - /obj/item/storage/pill_bottle/rmt = 55.00, - ) - contraband = list( - /obj/item/reagent_containers/pill/tox = 3, - /obj/item/storage/pill_bottle/perconol = 3 - ) - random_itemcount = FALSE - temperature_setting = -1 - light_color = COLOR_GOLD - obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED - manufacturer = "nanotrasen" - -/obj/machinery/vending/wallpharm/low_supply - products = list( - /obj/item/stack/medical/bruise_pack = 2, - /obj/item/stack/medical/ointment = 2, - /obj/item/storage/pill_bottle/antidexafen = 1, - /obj/item/storage/pill_bottle/dexalin = 1, - /obj/item/storage/pill_bottle/dylovene = 2, - /obj/item/storage/pill_bottle/vitamin = 2, - /obj/item/storage/pill_bottle/cetahydramine = 1, - /obj/item/storage/pill_bottle/rmt = 1 - ) - -/obj/machinery/vending/security - name = "SecTech" - desc = "A security equipment vendor." - product_ads = "Crack capitalist skulls!;Beat some heads in!;Don't forget - harm is good!;Your weapons are right here.;Handcuffs!;Freeze, scumbag!;Don't tase me bro!;Tase them, bro.;Why not have a donut?" - icon_state = "sec" - icon_vend = "sec-vend" - req_access = list(ACCESS_SECURITY) - vend_id = "security" - products = list( - /obj/item/handcuffs = 8, - /obj/item/grenade/chem_grenade/teargas = 4, - /obj/item/device/flash = 5, - /obj/item/reagent_containers/spray/pepper = 5, - /obj/item/storage/box/evidence = 6, - /obj/item/device/holowarrant = 5, - /obj/item/device/flashlight/maglight = 5, - /obj/item/device/hailer = 5, - /obj/item/reagent_containers/food/snacks/donut/normal = 6 - ) - premium = list( - /obj/item/storage/box/fancy/donut = 2 - ) - contraband = list( - /obj/item/clothing/glasses/sunglasses = 2, - /obj/item/grenade/flashbang = 4, - /obj/item/grenade/stinger = 4 - ) - restock_blocked_items = list( - /obj/item/storage/box/fancy/donut, - /obj/item/storage/box/evidence, - /obj/item/device/flash, - /obj/item/reagent_containers/spray/pepper - ) - restock_items = TRUE - random_itemcount = 0 - light_color = COLOR_BABY_BLUE - manufacturer = "zavodskoi" - -/obj/machinery/vending/security/low_supply - products = list( - /obj/item/handcuffs = 2, - /obj/item/grenade/chem_grenade/teargas = 1, - /obj/item/device/flash = 2, - /obj/item/reagent_containers/spray/pepper = 2, - /obj/item/storage/box/evidence = 4, - /obj/item/device/holowarrant = 3, - /obj/item/device/flashlight/maglight = 2, - /obj/item/device/hailer = 1 - ) - -/obj/machinery/vending/hydronutrients - name = "NutriMax" - desc = "A plant nutrients vendor." - product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" - product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..." - icon_state = "nutri" - icon_vend = "nutri-vend" - vend_id = "hydro" - products = list( - /obj/item/reagent_containers/glass/fertilizer/ez = 6, - /obj/item/reagent_containers/glass/fertilizer/l4z = 5, - /obj/item/reagent_containers/glass/fertilizer/rh = 3, - /obj/item/plantspray/pests = 20, - /obj/item/reagent_containers/syringe = 5, - /obj/item/storage/bag/plants = 5 - ) - premium = list( - /obj/item/reagent_containers/glass/bottle/ammonia = 10, - /obj/item/reagent_containers/glass/bottle/diethylamine = 5, - /obj/random/horticulture_magazine = 4 - ) - contraband = list( - /obj/item/reagent_containers/glass/bottle/mutagen = 2 - ) - idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. - random_itemcount = 0 - light_color = COLOR_BABY_BLUE - -/obj/machinery/vending/hydronutrients/low_supply - products = list( - /obj/item/reagent_containers/glass/fertilizer/ez = 3, - /obj/item/reagent_containers/glass/fertilizer/l4z = 4, - /obj/item/reagent_containers/glass/fertilizer/rh = 1, - /obj/item/plantspray/pests = 12, - /obj/item/reagent_containers/syringe = 3, - /obj/item/storage/bag/plants = 3 - ) - -/obj/machinery/vending/hydronutrients/xenobotany - products = list( - /obj/item/reagent_containers/glass/fertilizer/ez = 6, - /obj/item/reagent_containers/glass/fertilizer/l4z = 6, - /obj/item/reagent_containers/glass/fertilizer/rh = 3, - /obj/item/plantspray/pests = 20, - /obj/item/reagent_containers/syringe = 6, - /obj/item/storage/bag/plants = 6, - /obj/item/device/analyzer/plant_analyzer = 2, - /obj/item/material/minihoe = 2, - /obj/item/material/hatchet = 2, - /obj/item/wirecutters/clippers = 2, - /obj/item/reagent_containers/spray/plantbgone = 2, - /obj/item/reagent_containers/glass/bottle/mutagen = 3 - ) - -/obj/machinery/vending/hydronutrients/xenobotany/low_supply - products = list( - /obj/item/reagent_containers/glass/fertilizer/ez = 3, - /obj/item/reagent_containers/glass/fertilizer/l4z = 4, - /obj/item/reagent_containers/glass/fertilizer/rh = 1, - /obj/item/plantspray/pests = 12, - /obj/item/reagent_containers/syringe = 4, - /obj/item/storage/bag/plants = 2, - /obj/item/device/analyzer/plant_analyzer = 1, - /obj/item/material/minihoe = 1, - /obj/item/material/hatchet = 1, - /obj/item/wirecutters/clippers = 1, - /obj/item/reagent_containers/spray/plantbgone = 1, - /obj/item/reagent_containers/glass/bottle/mutagen = 2 - ) - -//Used specifically for more advanced setups, includes analyzers and tools inside the machine. -/obj/machinery/vending/hydronutrients/hydroponics - name = "HydroVend" - desc = "A one stop shop for all your hydroponics needs." - - products = list( - /obj/item/reagent_containers/glass/fertilizer/ez = 6, - /obj/item/reagent_containers/glass/fertilizer/l4z = 6, - /obj/item/reagent_containers/glass/fertilizer/rh = 3, - /obj/item/plantspray/pests = 10, - /obj/item/reagent_containers/syringe = 6, - /obj/item/storage/bag/plants = 6, - /obj/item/device/analyzer/plant_analyzer = 2, - /obj/item/material/minihoe = 2, - /obj/item/material/hatchet = 2, - /obj/item/wirecutters/clippers = 2, - /obj/item/reagent_containers/spray/plantbgone = 2 - ) - premium = list( - /obj/item/reagent_containers/glass/bottle/ammonia = 10, - /obj/item/reagent_containers/glass/bottle/diethylamine = 5, - /obj/random/horticulture_magazine = 4 - ) - contraband = list( - /obj/item/reagent_containers/glass/bottle/mutagen = 2 - ) - -//Meant to replace garden vending machines in public spaces, has a price list for items. Nothing unreasonable. -/obj/machinery/vending/hydronutrients/gardenvend - name = "GardenVend" - desc = "A one stop shop for all your gardening needs." - - products = list( - /obj/item/reagent_containers/glass/fertilizer/ez = 6, - /obj/item/reagent_containers/glass/fertilizer/l4z = 6, - /obj/item/reagent_containers/glass/fertilizer/rh = 3, - /obj/item/plantspray/pests = 10, - /obj/item/storage/bag/plants = 6, - /obj/item/material/minihoe = 2, - /obj/item/material/hatchet = 2, - /obj/item/wirecutters/clippers = 2, - /obj/item/reagent_containers/spray/plantbgone = 2 - ) - prices = list( - /obj/item/reagent_containers/glass/fertilizer/ez = 10.00, - /obj/item/reagent_containers/glass/fertilizer/l4z = 10.00, - /obj/item/reagent_containers/glass/fertilizer/rh = 20.00, - /obj/item/plantspray/pests = 7.50, - /obj/item/storage/bag/plants = 10.00, - /obj/item/material/minihoe = 15.00, - /obj/item/material/hatchet = 15.00, - /obj/item/wirecutters/clippers = 15.00, - /obj/item/reagent_containers/spray/plantbgone = 35.00, - ) - - premium = list( - /obj/item/reagent_containers/glass/bottle/ammonia = 10, - /obj/item/reagent_containers/glass/bottle/diethylamine = 5, - /obj/random/horticulture_magazine = 4 - ) - contraband = list( - /obj/item/reagent_containers/glass/bottle/mutagen = 2 - ) - -/obj/machinery/vending/hydronutrients/gardenvend/low_supply - products = list( - /obj/item/reagent_containers/glass/fertilizer/ez = 2, - /obj/item/plantspray/pests = 3, - /obj/item/storage/bag/plants = 1, - /obj/item/material/minihoe = 1, - /obj/item/material/hatchet = 1, - /obj/item/wirecutters/clippers = 1, - /obj/item/reagent_containers/spray/plantbgone = 1 - ) - -/obj/machinery/vending/hydroseeds - name = "MegaSeed Servitor" - desc = "When you need seeds fast!" - product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!" - product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!" - icon_state = SEED_NOUN_SEEDS - vend_id = SEED_NOUN_SEEDS - products = list( - /obj/item/seeds/aghrasshseed = 3, - /obj/item/seeds/ambrosiavulgarisseed = 3, - /obj/item/seeds/appleseed = 3, - /obj/item/seeds/bananaseed = 3, - /obj/item/seeds/bellpepperseed = 3, - /obj/item/seeds/berryseed = 3, - /obj/item/seeds/blackraspberryseed = 3, - /obj/item/seeds/blizzard = 3, - /obj/item/seeds/blueberryseed = 3, - /obj/item/seeds/blueraspberryseed = 3, - /obj/item/seeds/cabbageseed = 3, - /obj/item/seeds/carrotseed = 3, - /obj/item/seeds/chantermycelium = 3, - /obj/item/seeds/cherryseed = 3, - /obj/item/seeds/chiliseed = 3, - /obj/item/seeds/cocoapodseed = 3, - /obj/item/seeds/coffeeseed = 3, - /obj/item/seeds/cornseed = 3, - /obj/item/seeds/dynseed = 3, - /obj/item/seeds/earthenroot = 2, - /obj/item/seeds/eggplantseed = 3, - /obj/item/seeds/eki = 3, - /obj/item/seeds/garlicseed = 3, - /obj/item/seeds/gukheseed = 3, - /obj/item/seeds/grapeseed = 3, - /obj/item/seeds/grassseed = 3, - /obj/item/seeds/greengrapeseed = 3, - /obj/item/seeds/guamiseed = 3, - /obj/item/seeds/harebell = 3, - /obj/item/seeds/lemonseed = 3, - /obj/item/seeds/limeseed = 3, - /obj/item/seeds/mtearseed = 3, - /obj/item/seeds/mintseed = 3, - /obj/item/seeds/dirtberries = 2, - /obj/item/seeds/onionseed = 3, - /obj/item/seeds/oracleseed = 3, - /obj/item/seeds/orangeseed = 3, - /obj/item/seeds/peanutseed = 3, - /obj/item/seeds/peaseed = 3, - /obj/item/seeds/peppercornseed = 3, - /obj/item/seeds/plastiseed = 3, - /obj/item/seeds/plumpmycelium = 3, - /obj/item/seeds/poppyseed = 3, - /obj/item/seeds/potatoseed = 3, - /obj/item/seeds/pumpkinseed = 3, - /obj/item/seeds/qlortseed = 3, - /obj/item/seeds/clam/rasval = 3, - /obj/item/seeds/raspberryseed = 3, - /obj/item/seeds/replicapod = 3, - /obj/item/seeds/reishimycelium = 3, - /obj/item/seeds/riceseed = 3, - /obj/item/seeds/richcoffeeseed = 3, - /obj/item/seeds/sarezhiseed = 3, - /obj/item/seeds/serkiflowerseed, - /obj/item/seeds/shandseed = 3, - /obj/item/seeds/soyaseed = 3, - /obj/item/seeds/sthberryseed = 3, - /obj/item/seeds/strawberryseed = 3, - /obj/item/seeds/cranberryseed = 3, - /obj/item/seeds/sugarcaneseed = 3, - /obj/item/seeds/sunflowerseed = 3, - /obj/item/seeds/sugartree = 2, - /obj/item/seeds/teaseed = 3, - /obj/item/seeds/tobaccoseed = 3, - /obj/item/seeds/tomatoseed = 3, - /obj/item/seeds/towermycelium = 3, - /obj/item/seeds/vanilla = 3, - /obj/item/seeds/watermelonseed = 3, - /obj/item/seeds/wheatseed = 3, - /obj/item/seeds/whitebeetseed = 3, - /obj/item/seeds/wulumunushaseed = 2, - /obj/item/seeds/xuiziseed = 3, - /obj/item/seeds/ylpha = 3 - ) - contraband = list( - /obj/item/seeds/amanitamycelium = 3, - /obj/item/seeds/cocaseed = 3, - /obj/item/seeds/glowshroom = 3, - /obj/item/seeds/libertymycelium = 3, - /obj/item/seeds/nettleseed = 3 - - ) - premium = list( - /obj/item/seeds/ambrosiadeusseed = 3 - ) - prices = list( - /obj/item/seeds/ambrosiavulgarisseed = 12.00, - /obj/item/seeds/appleseed = 6.00, - /obj/item/seeds/bananaseed = 7.00, - /obj/item/seeds/bellpepperseed = 5.00, - /obj/item/seeds/berryseed = 5.00, - /obj/item/seeds/blackraspberryseed = 5.00, - /obj/item/seeds/blizzard = 9.00, - /obj/item/seeds/blueberryseed = 4.00, - /obj/item/seeds/blueraspberryseed = 5.00, - /obj/item/seeds/cabbageseed = 5.00, - /obj/item/seeds/carrotseed = 2.50, - /obj/item/seeds/chantermycelium = 12.50, - /obj/item/seeds/cherryseed = 5.00, - /obj/item/seeds/chiliseed = 6.00, - /obj/item/seeds/cocoapodseed = 6.00, - /obj/item/seeds/coffeeseed = 12.00, - /obj/item/seeds/cornseed = 4.00, - /obj/item/seeds/dynseed = 8.50, - /obj/item/seeds/earthenroot = 12.00, - /obj/item/seeds/eggplantseed = 4.00, - /obj/item/seeds/eki = 15.00, - /obj/item/seeds/garlicseed = 4.00, - /obj/item/seeds/grapeseed = 5.00, - /obj/item/seeds/grassseed = 2.00, - /obj/item/seeds/greengrapeseed = 5.00, - /obj/item/seeds/guamiseed = 13.50, - /obj/item/seeds/harebell = 1.50, - /obj/item/seeds/lemonseed = 5.00, - /obj/item/seeds/limeseed = 6.00, - /obj/item/seeds/mtearseed = 7.00, - /obj/item/seeds/mintseed = 6.00, - /obj/item/seeds/dirtberries = 12.00, - /obj/item/seeds/onionseed = 4.00, - /obj/item/seeds/oracleseed = 11.00, - /obj/item/seeds/orangeseed = 5.00, - /obj/item/seeds/peanutseed = 4.00, - /obj/item/seeds/peaseed = 5.00, - /obj/item/seeds/peppercornseed = 4.00, - /obj/item/seeds/plastiseed = 5.00, - /obj/item/seeds/plumpmycelium = 2.50, - /obj/item/seeds/poppyseed = 1.50, - /obj/item/seeds/potatoseed = 4.00, - /obj/item/seeds/pumpkinseed = 5.00, - /obj/item/seeds/qlortseed = 12.00, - /obj/item/seeds/clam/rasval = 18.00, - /obj/item/seeds/raspberryseed = 5.00, - /obj/item/seeds/reishimycelium = 15.00, - /obj/item/seeds/replicapod = 35.00, - /obj/item/seeds/riceseed = 2.50, - /obj/item/seeds/richcoffeeseed = 25.00, - /obj/item/seeds/shandseed = 7.00, - /obj/item/seeds/soyaseed = 5.00, - /obj/item/seeds/strawberryseed = 5.00, - /obj/item/seeds/cranberryseed = 5.00, - /obj/item/seeds/sugarcaneseed = 2.50, - /obj/item/seeds/sunflowerseed = 2.50, - /obj/item/seeds/sugartree = 5.00, - /obj/item/seeds/teaseed = 4.00, - /obj/item/seeds/tobaccoseed = 5.00, - /obj/item/seeds/tomatoseed = 4.00, - /obj/item/seeds/towermycelium = 7.50, - /obj/item/seeds/vanilla = 12.00, - /obj/item/seeds/watermelonseed = 4.00, - /obj/item/seeds/wheatseed = 2.50, - /obj/item/seeds/whitebeetseed = 2.50, - /obj/item/seeds/wulumunushaseed = 15.00, - /obj/item/seeds/ylpha = 16.00, - ) - restock_items = TRUE - random_itemcount = 0 - light_color = COLOR_BABY_BLUE - -/** - * Populate hydroseeds product_records - * - * This needs to be customized to fetch the actual names of the seeds, otherwise - * the machine would simply list "packet of seeds" times 20 - */ -/obj/machinery/vending/hydroseeds/build_inventory() - var/list/all_products = list( - list(src.products, CAT_NORMAL), - list(src.contraband, CAT_HIDDEN), - list(src.premium, CAT_COIN)) - - for(var/current_list in all_products) - var/category = current_list[2] - - for(var/entry in current_list[1]) - var/obj/item/seeds/S = new entry(src) - var/name = S.name - var/datum/data/vending_product/product = new/datum/data/vending_product(entry, name) - - product.price = (entry in src.prices) ? src.prices[entry] : 0 - product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1 - product.category = category - - src.product_records.Add(product) - -/obj/machinery/vending/dinnerware - name = "Dinnerware" - desc = "A kitchen and restaurant equipment vendor." - product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..." - icon_state = "dinnerware" - icon_vend = "dinnerware-vend" - light_mask = "dinnerware-lightmask" - vend_id = "cutlery" - products = list( - /obj/item/material/kitchen/utensil/fork = 12, - /obj/item/material/kitchen/utensil/knife = 12, - /obj/item/material/kitchen/utensil/spoon = 12, - /obj/item/material/kitchen/utensil/fork/chopsticks = 12, - /obj/item/material/knife = 2, - /obj/item/material/hatchet/butch = 2, - /obj/item/reagent_containers/food/drinks/drinkingglass = 12, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/carafe = 3, - /obj/item/reagent_containers/glass/beaker/pitcher = 3, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup = 6, - /obj/item/reagent_containers/food/drinks/takeaway_cup_idris = 6, - /obj/item/clothing/accessory/apron/chef = 2, - /obj/item/clothing/suit/chef_jacket = 2, - /obj/item/material/kitchen/rollingpin = 2, - /obj/item/reagent_containers/cooking_container/oven = 5, - /obj/item/reagent_containers/cooking_container/fryer = 4, - /obj/item/reagent_containers/cooking_container/skillet = 4, - /obj/item/reagent_containers/cooking_container/saucepan = 4, - /obj/item/reagent_containers/cooking_container/pot = 4, - /obj/item/reagent_containers/cooking_container/board = 3, - /obj/item/reagent_containers/cooking_container/board/bowl = 2, - /obj/item/reagent_containers/ladle = 4, - /obj/item/storage/toolbox/lunchbox/nt = 6, - /obj/item/storage/toolbox/lunchbox/idris = 6, - /obj/item/reagent_containers/glass/rag = 8, - /obj/item/evidencebag/plasticbag = 20, - /obj/item/tray = 12, - /obj/item/tray/tea = 2, - /obj/item/tray/plate = 10, - /obj/item/reagent_containers/bowl = 10, - /obj/item/reagent_containers/bowl/plate = 10, - /obj/item/reagent_containers/bowl/gravy_boat = 8, - /obj/item/reagent_containers/glass/bottle/syrup = 4, - ) - contraband = list( - /obj/item/storage/toolbox/lunchbox/syndicate = 2 - ) - premium = list( - /obj/item/storage/toolbox/lunchbox/scc/filled = 2, - ) - restock_items = TRUE - random_itemcount = 0 - light_color = COLOR_STEEL - -/obj/machinery/vending/dinnerware/plastic - name = "utensil vendor" - desc = "A kitchen and restaurant utensil vendor." - products = list( - /obj/item/material/kitchen/utensil/fork/plastic = 12, - /obj/item/material/kitchen/utensil/spoon/plastic = 12, - /obj/item/material/kitchen/utensil/knife/plastic = 12, - /obj/item/material/kitchen/utensil/fork/chopsticks/bamboo = 12, - /obj/item/reagent_containers/food/drinks/drinkingglass = 12, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/carafe = 3, - /obj/item/reagent_containers/glass/beaker/pitcher = 3, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup = 6, - /obj/item/reagent_containers/food/drinks/takeaway_cup_idris = 6, - ) - -/obj/machinery/vending/dinnerware/metal - name = "utensil vendor" - desc = "An upscale kitchen and restaurant utensil vendor." - products = list( - /obj/item/material/kitchen/utensil/fork = 12, - /obj/item/material/kitchen/utensil/spoon = 12, - /obj/item/material/kitchen/utensil/knife = 12, - /obj/item/material/kitchen/utensil/fork/chopsticks = 12, - /obj/item/reagent_containers/food/drinks/drinkingglass = 12, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/carafe = 3, - /obj/item/reagent_containers/glass/beaker/pitcher = 3, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup = 6, - /obj/item/reagent_containers/food/drinks/takeaway_cup_idris = 6, - ) - -/obj/machinery/vending/dinnerware/bar - name = "glasses vendor" - desc = "A bar vendor for dispensing various glasses and cups." - products = list( - /obj/item/reagent_containers/glass/beaker/pitcher = 8, - /obj/item/reagent_containers/food/drinks/drinkingglass = 40, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/carafe = 3, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup = 6, - /obj/item/reagent_containers/food/drinks/takeaway_cup_idris = 12, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/pint = 6, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/square = 6, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/mug = 6, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/shake = 6, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/goblet = 6, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/wine = 6, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/flute = 6, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/cognac = 6, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/rocks = 6, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/cocktail = 6, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/shot = 6, - /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup/teacup = 6, - /obj/item/reagent_containers/food/drinks/flask/barflask = 2, - /obj/item/reagent_containers/food/drinks/flask/vacuumflask = 2, - /obj/item/material/kitchen/utensil/fork = 6, - /obj/item/material/kitchen/utensil/knife = 6, - /obj/item/material/kitchen/utensil/spoon = 6, - /obj/item/tray = 12, - /obj/item/tray/tea = 2, - ) - -/obj/machinery/vending/sovietsoda - name = "BODA" - desc = "An old sweet water vending machine, how did this end up here?" - icon_state = "sovietsoda" - icon_vend = "sovietsoda-vend" - vend_id = "cola" - product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." - products = list( - /obj/item/reagent_containers/food/drinks/drinkingglass/soda = 30 - ) - //would a soviet vending machine really have a premium item? hmmm. - premium = list( - /obj/item/reagent_containers/food/drinks/bottle/vodka = 5 - ) - contraband = list( - /obj/item/reagent_containers/food/drinks/drinkingglass/cola = 20 - ) - idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. - random_itemcount = 0 - temperature_setting = -1 - vending_sound = 'sound/machines/vending/vending_cans.ogg' - light_color = COLOR_RED - -/obj/machinery/vending/tool - name = "YouTool" - desc = "Tools for tools." - icon_state = "tool" - icon_vend = "tool-vend" - vend_id = "tools" - //req_access = list(ACCESS_MAINT_TUNNELS) //Maintenance access - products = list( - /obj/item/stack/cable_coil/random = 10, - /obj/item/crowbar = 5, - /obj/item/weldingtool = 3, - /obj/item/wirecutters = 5, - /obj/item/wrench = 5, - /obj/item/device/analyzer = 5, - /obj/item/device/t_scanner = 5, - /obj/item/screwdriver = 5, - /obj/item/tape_roll = 3, - /obj/item/hammer = 5 - ) - contraband = list( - /obj/item/weldingtool/hugetank = 2, - /obj/item/clothing/gloves/yellow/budget = 2 - ) - premium = list( - /obj/item/clothing/gloves/yellow = 1 - ) - restock_blocked_items = list( - /obj/item/stack/cable_coil, - /obj/item/weldingtool, - /obj/item/weldingtool/hugetank - ) - restock_items = TRUE - light_color = COLOR_GOLD - manufacturer = "hephaestus" - -/obj/machinery/vending/tool/low_supply - products = list( - /obj/item/stack/cable_coil/random = 4, - /obj/item/crowbar = 3, - /obj/item/weldingtool = 1, - /obj/item/wirecutters = 2, - /obj/item/wrench = 2, - /obj/item/device/analyzer = 3, - /obj/item/device/t_scanner = 2, - /obj/item/screwdriver = 3, - /obj/item/tape_roll = 1, - /obj/item/hammer = 1 - ) - -/obj/machinery/vending/engivend - name = "Engi-Vend" - desc = "Spare tool vending. What? Did you expect some witty description?" - icon_state = "engivend" - icon_vend = "engivend-vend" - req_access = list(ACCESS_ENGINE) - vend_id = "tools" - products = list( - /obj/item/device/multitool = 4, - /obj/item/taperoll/engineering = 4, - /obj/item/clothing/glasses/safety/goggles = 4, - /obj/item/airlock_electronics = 20, - /obj/item/module/power_control = 10, - /obj/item/airalarm_electronics = 10, - /obj/item/firealarm_electronics = 10, - /obj/item/cell/high = 10, - /obj/item/grenade/chem_grenade/antifuel = 5, - /obj/item/device/geiger = 5 - ) - contraband = list( - /obj/item/cell/potato = 3 - ) - premium = list( - /obj/item/storage/belt/utility = 3 - ) - restock_items = TRUE - random_itemcount = 0 - light_color = COLOR_GOLD - manufacturer = "hephaestus" - -/obj/machinery/vending/engivend/low_supply - products = list( - /obj/item/device/multitool = 2, - /obj/item/taperoll/engineering = 2, - /obj/item/clothing/glasses/safety/goggles = 3, - /obj/item/airlock_electronics = 12, - /obj/item/module/power_control = 7, - /obj/item/airalarm_electronics = 7, - /obj/item/firealarm_electronics = 8, - /obj/item/cell/high = 4, - /obj/item/grenade/chem_grenade/antifuel = 3, - /obj/item/device/geiger = 1 - ) - -/obj/machinery/vending/tacticool //Tried not to go overboard with the amount of fun security has access to. - name = "Tactical Express" - desc = "Everything you need to ensure corporate bureaucracy makes it another day." - icon_state = "tact" - req_access = list(ACCESS_SECURITY) - vend_id = "tactical" - products = list( - /obj/item/storage/box/shotgunammo = 2, - /obj/item/storage/box/shotgunshells = 2, - /obj/item/ammo_magazine/c45m = 6, - /obj/item/grenade/chem_grenade/teargas = 6, - /obj/item/ammo_magazine/mc9mmt = 2, - /obj/item/clothing/mask/gas/tactical = 4, - /obj/item/handcuffs/ziptie = 3 - ) - contraband = list( - /obj/item/grenade/flashbang/clusterbang = 1 //this can only go well. - ) - premium = list( - /obj/item/grenade/chem_grenade/gas = 2 - ) - random_itemcount = 0 - light_color = COLOR_BROWN - manufacturer = "zavodskoi" - -/obj/machinery/vending/tacticool/ert //Slightly more !FUN! - name = "Nanosecurity Plus" - desc = "For when shit really goes down; the private contractor's personal armory." - req_access = list(ACCESS_SECURITY) - vend_id = "ert" - products = list( - /obj/item/storage/box/shotgunammo = 2, - /obj/item/storage/box/shotgunshells = 2, - /obj/item/grenade/chem_grenade/gas = 6, - /obj/item/clothing/mask/gas/tactical = 8, - /obj/item/shield/riot/tact = 4, - /obj/item/handcuffs/ziptie = 6, - /obj/item/ammo_magazine/mc9mmt = 6, - /obj/item/ammo_magazine/mc9mmt/rubber = 4, - /obj/item/gun/projectile/automatic/x9 = 2, - /obj/item/ammo_magazine/c45m/auto = 6, - /obj/item/ammo_magazine/a556 = 12, - /obj/item/ammo_magazine/a556/ap = 4, - /obj/item/material/knife/tacknife = 4, - /obj/item/device/firing_pin = 12 - ) - contraband = list( - /obj/item/gun/bang/deagle = 1 - ) - premium = list( - /obj/item/shield/riot/tact = 2 - ) - random_itemcount = 0 - manufacturer = "zavodskoi" - -//This one's from bay12 -/obj/machinery/vending/engineering - name = "Robco Tool Maker" - desc = "Everything you need for do-it-yourself station repair." - icon_state = "engi" - icon_vend = "engi-vend" - req_access = list(ACCESS_ENGINE_EQUIP) - vend_id = "tools" - products = list( - /obj/item/clothing/head/hardhat = 4, - /obj/item/storage/belt/utility = 5, - /obj/item/clothing/glasses/safety/goggles = 4, - /obj/item/clothing/gloves/yellow = 4, - /obj/item/screwdriver = 8, - /obj/item/crowbar = 8, - /obj/item/wirecutters = 8, - /obj/item/device/multitool = 8, - /obj/item/wrench = 8, - /obj/item/device/t_scanner = 8, - /obj/item/stack/cable_coil/random = 10, - /obj/item/cell = 5, - /obj/item/device/analyzer = 5, - /obj/item/cell/high = 2, - /obj/item/weldingtool = 8, - /obj/item/clothing/head/welding = 8, - /obj/item/light/tube = 10, - /obj/item/clothing/head/hardhat/firefighter = 4, - /obj/item/clothing/suit/fire = 4, - /obj/item/stock_parts/scanning_module = 5, - /obj/item/stock_parts/micro_laser = 5, - /obj/item/stock_parts/matter_bin = 5, - /obj/item/stock_parts/manipulator = 5, - /obj/item/stock_parts/console_screen = 5, - /obj/item/tape_roll = 5 - ) - - restock_blocked_items = list( - /obj/item/stack/cable_coil, - /obj/item/weldingtool, - /obj/item/light/tube - ) - restock_items = TRUE - light_color = COLOR_GOLD - manufacturer = "hephaestus" - -//This one's from bay12 -/obj/machinery/vending/robotics - name = "Robotech Deluxe" - desc = "All the tools you need to create your own robot army." - icon_state = "robotics" - icon_vend = "robotics-vend" - req_access = list(ACCESS_ROBOTICS) - vend_id = "robo-tools" - products = list( - /obj/item/stack/cable_coil = 4, - /obj/item/device/flash/synthetic = 4, - /obj/item/cell/high = 12, - /obj/item/device/assembly/prox_sensor = 3, - /obj/item/device/assembly/signaler = 3, - /obj/item/device/healthanalyzer = 3, - /obj/item/surgery/scalpel = 2, - /obj/item/surgery/circular_saw = 2, - /obj/item/screwdriver = 5, - /obj/item/crowbar = 5 - ) - contraband = list( - /obj/item/device/flash = 2 - ) - premium = list( - /obj/item/device/paicard = 2 - ) - //everything after the power cell had no amounts, I improvised. -Sayu - restock_blocked_items = list( - /obj/item/stack/cable_coil, - /obj/item/device/flash, - /obj/item/light/tube - ) - restock_items = TRUE - random_itemcount = 0 - light_color = COLOR_BABY_BLUE - manufacturer = "hephaestus" - -/obj/machinery/vending/zora - name = "Zo'ra Soda" - desc = "An energy drink vendor provided by the Getmore Corporation in partnership with the brood of Ta'Akaix'Xakt'yagz'isk Zo'ra." - icon_state = "zoda" - icon_vend = "zoda-vend" - product_slogans = "Safe for consumption by all species!;Made by hard-working bound drones!;The most refreshing energy drink around!;A product of two thousand years!" - product_ads = "Tired? Try some Zo'ra Soda!;Thirsty? Why not Zo'ra Soda?;Bored? Have some Zo'ra Soda!;Zo'ra Soda. Drink up!;ZZZOOO'RRRAAA SSSOOODDDAAA!" - vend_id = "zora" - products = list( - /obj/item/reagent_containers/food/drinks/cans/zorasoda/cherry = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/phoron = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/klax = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/cthur = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/venomgrass = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/kois = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/drone = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/mixedberry = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/lemonlime = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/xuizi = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/dyn = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/buzz = 5, - /obj/item/reagent_containers/food/drinks/waterbottle/sedantis_water = 5 - ) - contraband = list( - /obj/item/reagent_containers/food/drinks/cans/zorasoda/hozm = 5 - ) - premium = list( - /obj/item/reagent_containers/food/drinks/cans/zorasoda/jelly = 3 - ) - prices = list( - /obj/item/reagent_containers/food/drinks/cans/zorasoda/cherry = 2.50, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/phoron = 2.50, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/klax = 2.50, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/cthur = 2.50, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/venomgrass = 2.50, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/kois = 2.50, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/drone = 2.50, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/mixedberry = 2.50, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/lemonlime = 2.50, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/xuizi = 2.50, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/dyn = 2.50, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/buzz = 2.50, - /obj/item/reagent_containers/food/drinks/waterbottle/sedantis_water = 3.50, - ) - idle_power_usage = 211 - temperature_setting = -1 - light_color = COLOR_CULT_REINFORCED - -/obj/machinery/vending/zora/low_supply - products = list( - /obj/item/reagent_containers/food/drinks/cans/zorasoda/cherry = 2, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/phoron = 3, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/venomgrass = 2, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/kois = 1, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/drone = 5, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/xuizi = 3, - /obj/item/reagent_containers/food/drinks/cans/zorasoda/dyn = 1 - ) - -/obj/machinery/vending/battlemonsters - name = "\improper Battlemonsters vendor" - desc = "A good place to dump all your rent money." - icon_state = "battlemonsters" - icon_vend = "battlemonsters-vend" - vend_id = "battlemonsters" - products = list( - /obj/item/book/manual/wiki/battlemonsters = 10, - /obj/item/battle_monsters/wrapped/basic = 20, - /obj/item/battle_monsters/wrapped = 20, - /obj/item/battle_monsters/wrapped/pro = 20, - /obj/item/battle_monsters/wrapped/species = 10, //Human monsters - /obj/item/battle_monsters/wrapped/species/lizard = 10, //Reptile Monsters - /obj/item/battle_monsters/wrapped/species/cat = 10, //Feline Monsters - /obj/item/battle_monsters/wrapped/species/ant = 10, //Ant Monsters - /obj/item/battle_monsters/wrapped/rare = 10 - ) - prices = list( - /obj/item/book/manual/wiki/battlemonsters = 15.00, - /obj/item/battle_monsters/wrapped = 25.00, - /obj/item/battle_monsters/wrapped/pro = 20.00, - /obj/item/battle_monsters/wrapped/species = 15.00, - /obj/item/battle_monsters/wrapped/species/lizard = 15.00, - /obj/item/battle_monsters/wrapped/species/cat = 15.00, - /obj/item/battle_monsters/wrapped/species/ant = 15.00, - /obj/item/battle_monsters/wrapped/rare = 35.00, - ) - contraband = list( - /obj/item/battle_monsters/wrapped/legendary = 5 - ) - premium = list( - /obj/item/coin/battlemonsters = 10 - ) - restock_items = FALSE - random_itemcount = FALSE - light_color = COLOR_BABY_BLUE - -/obj/machinery/vending/casino - name = "grand romanovich vending machine" - desc = "A vending machine commonly found in Crevus' casinos." - icon_state = "casinovend" - product_slogans = "The House always wins!;Spends your chips right here!;Let Go and Begin Again..." - product_ads = "Finding it, though, that's not the hard part. It's letting go." - vend_id = "casino" - products = list( - /obj/item/coin/casino = 50 - ) - contraband = list( - /obj/item/ammo_magazine/boltaction = 2 - ) - premium = list( - /obj/item/gun/projectile/shotgun/pump/rifle/blank = 3, - /obj/item/ammo_magazine/boltaction/blank = 10, - /obj/item/storage/box/fancy/cigarettes/dpra = 5, - /obj/item/storage/chewables/tobacco/bad = 5, - /obj/item/reagent_containers/food/drinks/bottle/messa_mead = 5, - /obj/item/reagent_containers/food/drinks/bottle/victorygin = 5, - /obj/item/reagent_containers/food/drinks/bottle/pwine = 5, - /obj/item/reagent_containers/food/snacks/hardbread = 5, - /obj/item/reagent_containers/food/drinks/cans/adhomai_milk = 5, - /obj/item/reagent_containers/food/snacks/adhomian_can = 5, - /obj/item/reagent_containers/food/snacks/clam = 5, - /obj/item/reagent_containers/food/snacks/tajaran_bread = 5, - /obj/item/toy/plushie/farwa = 2, - /obj/item/reagent_containers/food/snacks/monkeycube/wrapped/farwacube = 2, - /obj/item/razor = 2, - /obj/item/toy/balloon/syndicate = 2, - /obj/item/grenade/fake = 2, - /obj/item/eightball/haunted = 5, - /obj/item/spirit_board = 5, - /obj/item/device/flashlight/maglight = 5, - /obj/item/contraband/poster = 5, - /obj/item/spacecash/ewallet/lotto = 15, - /obj/item/device/laser_pointer = 5, - /obj/item/beach_ball = 1, - /obj/item/material/knife/butterfly/switchblade = 2, - /obj/item/reagent_containers/hypospray/autoinjector/stimpack = 2, - /obj/item/clothing/under/tajaran/summer = 2, - /obj/item/clothing/pants/tajaran = 2, - /obj/item/clothing/under/dress/tajaran =2, - /obj/item/clothing/under/dress/tajaran/blue = 2, - /obj/item/clothing/under/dress/tajaran/green = 2, - /obj/item/clothing/under/dress/tajaran/red = 2, - /obj/item/clothing/head/tajaran/circlet = 2, - /obj/item/clothing/head/tajaran/circlet/silver = 2, - /obj/item/gun/energy/lasertag/red = 2, - /obj/item/clothing/suit/armor/riot/laser_tag = 2, - /obj/item/gun/energy/lasertag/blue = 2, - /obj/item/clothing/suit/armor/riot/laser_tag/blue = 2 - ) - prices = list( - /obj/item/coin/casino = 100 - ) - - restock_items = FALSE - random_itemcount = FALSE - -/obj/machinery/vending/mredispenser - name = "\improper MRE dispenser" - desc = "A vending machine filled with MRE's." - icon_state = "mrevend" - icon_vend = "mrevend-vend" - product_slogans = ";FOREIGN LEGION TESTED!, FOREIGN LEGION RECOMMENDED!, FOREIGN LEGION APPROVED!;YOU ARE NOT ALLOWED A JELLY DOUGHNUT!;YOU DON'T WANT TO DIE HUNGRY, SOLDIER!" - product_ads = "Everything the body needs!;Now trans-fat free!;Vegan options are available.;Safe for all known species!" - products = list( - /obj/item/storage/box/fancy/mre = 2, - /obj/item/storage/box/fancy/mre/menu2 = 2, - /obj/item/storage/box/fancy/mre/menu3 = 2, - /obj/item/storage/box/fancy/mre/menu4 = 2, - /obj/item/storage/box/fancy/mre/menu5 = 2, - /obj/item/storage/box/fancy/mre/menu6 = 2, - /obj/item/storage/box/fancy/mre/menu7 = 2, - /obj/item/storage/box/fancy/mre/menu8 = 2, - /obj/item/storage/box/fancy/mre/menu9 = 10, - /obj/item/storage/box/fancy/mre/menu10 = 10, - /obj/item/storage/box/fancy/mre/menu12 = 5 - ) - prices = list( - /obj/item/storage/box/fancy/mre = 12.00, - /obj/item/storage/box/fancy/mre/menu2 = 12.00, - /obj/item/storage/box/fancy/mre/menu3 = 12.00, - /obj/item/storage/box/fancy/mre/menu4 = 12.00, - /obj/item/storage/box/fancy/mre/menu5 = 12.00, - /obj/item/storage/box/fancy/mre/menu6 = 12.00, - /obj/item/storage/box/fancy/mre/menu7 = 12.00, - /obj/item/storage/box/fancy/mre/menu8 = 12.00, - /obj/item/storage/box/fancy/mre/menu9 = 12.00, - /obj/item/storage/box/fancy/mre/menu10 = 12.00, - /obj/item/storage/box/fancy/mre/menu12 = 12.00, - ) - contraband = list( - /obj/item/storage/box/fancy/mre/menu11 = 5, // memes. - /obj/item/reagent_containers/food/snacks/liquidfood = 5 - ) - vend_delay = 15 - idle_power_usage = 211 // Cold MREs... - -/obj/machinery/vending/mredispenser/low_supply - products = list( - /obj/item/storage/box/fancy/mre = 1, - /obj/item/storage/box/fancy/mre/menu2 = 1, - /obj/item/storage/box/fancy/mre/menu4 = 1, - /obj/item/storage/box/fancy/mre/menu9 = 4, - /obj/item/storage/box/fancy/mre/menu10 = 5, - /obj/item/storage/box/fancy/mre/menu12 = 3 - ) - -/obj/machinery/vending/overloaders - name = "GwokBuzz Vendor" - desc = "An entertainment software machine supplied by Gwok Software, a member of the Gwok Group." - desc_extended = "Previously the realm of amateur programmers and niche companies, the Gwok Group acquired and amalgamated a number of popular Port Verdant overloader brands in order to capitalize on the growing industry. Seeing untapped markets abroad, the corporation has begun exporting to nations with free IPC populations." - icon_state = "synth" - icon_vend = "synth-vend" - product_slogans = "GwokBuzz, to take the edge off!;Try our new Rainbow Essence flavour!;Safe and sanctioned by the authorities!" - vend_id = "overloaders" - products = list( - /obj/item/storage/overloader/classic = 5, - /obj/item/storage/overloader/tranquil = 5, - /obj/item/storage/overloader/rainbow = 5, - /obj/item/storage/overloader/screenshaker = 5 - ) - prices = list( - /obj/item/storage/overloader/classic = 50.00, - /obj/item/storage/overloader/tranquil = 60.00, - /obj/item/storage/overloader/rainbow = 60.00, - /obj/item/storage/overloader/screenshaker = 60.00, - /obj/item/storage/overloader/jitterbug = 85.00, - ) - contraband = list( - /obj/item/storage/overloader/rainbow = 2 - ) - premium = list( - /obj/item/storage/overloader/jitterbug = 5 - ) - light_color = LIGHT_COLOR_CYAN - -/obj/machinery/vending/overloaders/low_supply - products = list( - /obj/item/storage/overloader/classic = 2, - /obj/item/storage/overloader/rainbow = 1, - /obj/item/storage/overloader/screenshaker = 1 - ) - -/obj/machinery/vending/minimart - name = "minimart refrigerator" - desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars." - //product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" - //product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" - icon_state = "minimart" - icon_vend = "minimart" - vend_id = "snacks" - density = 0 - products = list( - /obj/item/reagent_containers/food/drinks/cans/cola = 10, - /obj/item/reagent_containers/food/drinks/cans/diet_cola = 10, - /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 10, - /obj/item/reagent_containers/food/drinks/cans/starkist = 10, - /obj/item/reagent_containers/food/drinks/waterbottle = 10, - /obj/item/reagent_containers/food/drinks/cans/dyn = 5, - /obj/item/reagent_containers/food/drinks/cans/space_up = 10, - /obj/item/reagent_containers/food/drinks/cans/iced_tea = 10, - /obj/item/reagent_containers/food/drinks/cans/grape_juice = 10, - /obj/item/reagent_containers/food/drinks/cans/peach_soda = 10, - /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 5, - /obj/item/reagent_containers/food/drinks/carton/small/milk = 10, - /obj/item/reagent_containers/food/drinks/carton/small/milk/choco = 10, - /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 10, - /obj/item/reagent_containers/food/drinks/cans/melon_soda = 10 - ) - contraband = list( - /obj/item/reagent_containers/food/drinks/cans/thirteenloko = 5, - /obj/item/reagent_containers/food/drinks/cans/koispunch = 3 - ) - premium = list( - /obj/item/reagent_containers/food/drinks/bottle/cola = 2, - /obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind = 2, - /obj/item/reagent_containers/food/drinks/bottle/space_up = 2 - ) - prices = list( - /obj/item/reagent_containers/food/drinks/cans/cola = 1.50, - /obj/item/reagent_containers/food/drinks/cans/diet_cola = 1.50, - /obj/item/reagent_containers/food/drinks/cans/space_mountain_wind = 1.20, - /obj/item/reagent_containers/food/drinks/cans/dr_gibb = 1.75, - /obj/item/reagent_containers/food/drinks/cans/root_beer = 1.40, - /obj/item/reagent_containers/food/drinks/cans/starkist = 1.50, - /obj/item/reagent_containers/food/drinks/waterbottle = 1.25, - /obj/item/reagent_containers/food/drinks/cans/dyn = 1.80, - /obj/item/reagent_containers/food/drinks/cans/space_up = 1.50, - /obj/item/reagent_containers/food/drinks/cans/iced_tea = 1.40, - /obj/item/reagent_containers/food/drinks/cans/grape_juice = 1.75, - /obj/item/reagent_containers/food/drinks/cans/peach_soda = 1.75, - /obj/item/reagent_containers/food/drinks/cans/koispunch = 5.00, - /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 0.50, - /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda = 3.50, - /obj/item/reagent_containers/food/drinks/carton/small/milk = 1.80, - /obj/item/reagent_containers/food/drinks/carton/small/milk/choco = 1.80, - /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 1.80, - /obj/item/reagent_containers/food/drinks/cans/melon_soda = 1.75, - ) - light_color = COLOR_BABY_BLUE - -/obj/machinery/vending/minimart/alcohol - name = "minimart alcohol selection" - products = list( - /obj/item/reagent_containers/food/drinks/bottle/makgeolli = 5, - /obj/item/reagent_containers/food/drinks/bottle/soju = 15, - /obj/item/reagent_containers/food/drinks/bottle/soju/shochu = 5, - /obj/item/reagent_containers/food/drinks/bottle/sake = 5, - /obj/item/reagent_containers/food/drinks/cans/beer/rice = 5, - /obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma = 5, - /obj/item/reagent_containers/food/drinks/cans/beer/rice/moonlabor = 5, - /obj/item/reagent_containers/food/drinks/cans/beer = 10, - /obj/item/reagent_containers/food/drinks/bottle/small/beer = 5, - /obj/item/reagent_containers/food/drinks/bottle/whiskey = 5, - /obj/item/reagent_containers/food/drinks/bottle/wine = 5, - /obj/item/reagent_containers/food/drinks/bottle/champagne = 3 - ) - prices = list( - /obj/item/reagent_containers/food/drinks/bottle/makgeolli = 12.00, - /obj/item/reagent_containers/food/drinks/bottle/soju = 6.00, - /obj/item/reagent_containers/food/drinks/bottle/soju/shochu = 12.00, - /obj/item/reagent_containers/food/drinks/bottle/sake = 16.00, - /obj/item/reagent_containers/food/drinks/cans/beer/rice = 8.00, - /obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma = 8.00, - /obj/item/reagent_containers/food/drinks/cans/beer/rice/moonlabor = 8.00, - /obj/item/reagent_containers/food/drinks/cans/beer = 8.00, - /obj/item/reagent_containers/food/drinks/bottle/small/beer = 8.00, - /obj/item/reagent_containers/food/drinks/bottle/whiskey = 12.00, - /obj/item/reagent_containers/food/drinks/bottle/wine = 20.00, - /obj/item/reagent_containers/food/drinks/bottle/champagne = 40.00, - ) - -/obj/machinery/vending/frontiervend - name = "\improper FrontierVend" - desc = "A vending machine specialized in snacks from the Coalition of Colonies." - desc_extended = "Almost rebranded to the 'Coalition of Snackolonies', the FrontierVend brand is owned by a now-subsidiary of Orion Express specialized in food exports. These machines \ - are omnipresent throughout the settled regions of human space, forming a sort of Coalition superculture; it's easier to sympathize with someone if you eat the same snacks." - icon_state = "frontiervend" - icon_vend = "frontiervend-vend" - product_slogans = "At least 85 billion served!;A new frontier of flavors!;Snacking for a free frontier!;Every purchase made supports the efforts of the Frontier Protection Bureau!" - product_ads = "Roundhouse kick a Solarian into the concrete.;Slam-dunk Solarians into the trashcan.;Launch Solarians into the sun.;Frost got what he deserved." - vend_id = "frontiervend" - - products = list( - /obj/item/reagent_containers/food/drinks/cans/himeokvass = 8, - /obj/item/reagent_containers/food/drinks/cans/boch = 8, - /obj/item/reagent_containers/food/drinks/cans/boch/buckthorn = 8, - /obj/item/reagent_containers/food/drinks/cans/xanuchai = 6, - /obj/item/reagent_containers/food/drinks/cans/xanuchai/creme = 8, - /obj/item/reagent_containers/food/drinks/cans/xanuchai/chocolate = 8, - /obj/item/reagent_containers/food/drinks/cans/xanuchai/neapolitan = 8, - /obj/item/reagent_containers/food/drinks/cans/galatea = 8, - /obj/item/reagent_containers/food/drinks/bottle/bestblend = 6, - /obj/item/reagent_containers/food/snacks/fishjerky = 8, - /obj/item/reagent_containers/food/snacks/pepperoniroll = 8, - /obj/item/reagent_containers/food/snacks/salmiak = 6, - /obj/item/reagent_containers/food/snacks/hakhspam = 6, - /obj/item/reagent_containers/food/snacks/pemmicanbar = 8, - /obj/item/reagent_containers/food/snacks/choctruffles = 6, - /obj/item/reagent_containers/food/snacks/peanutsnack = 8, - /obj/item/reagent_containers/food/snacks/peanutsnack/pepper = 6, - /obj/item/reagent_containers/food/snacks/peanutsnack/choc = 6, - /obj/item/reagent_containers/food/snacks/peanutsnack/masala = 6, - /obj/item/reagent_containers/food/snacks/chana = 8, - /obj/item/reagent_containers/food/snacks/chana/wild = 8, - /obj/item/reagent_containers/food/snacks/papad = 8, - /obj/item/reagent_containers/food/snacks/papad/garlic = 8, - /obj/item/reagent_containers/food/snacks/papad/ginger = 8, - /obj/item/reagent_containers/food/snacks/papad/apple = 8, - /obj/item/storage/box/fancy/foysnack = 4 - ) - prices = list( - /obj/item/reagent_containers/food/drinks/cans/himeokvass = 3.50, - /obj/item/reagent_containers/food/drinks/cans/boch = 2.50, - /obj/item/reagent_containers/food/drinks/cans/boch/buckthorn = 2.50, - /obj/item/reagent_containers/food/drinks/cans/xanuchai = 2.50, - /obj/item/reagent_containers/food/drinks/cans/xanuchai/creme = 2.50, - /obj/item/reagent_containers/food/drinks/cans/xanuchai/chocolate = 2.50, - /obj/item/reagent_containers/food/drinks/cans/xanuchai/neapolitan = 2.50, - /obj/item/reagent_containers/food/drinks/cans/galatea = 4.50, - /obj/item/reagent_containers/food/drinks/bottle/bestblend = 3.50, - /obj/item/reagent_containers/food/snacks/fishjerky = 3.50, - /obj/item/reagent_containers/food/snacks/pepperoniroll = 3.50, - /obj/item/reagent_containers/food/snacks/salmiak = 3.50, - /obj/item/reagent_containers/food/snacks/hakhspam = 4.00, - /obj/item/reagent_containers/food/snacks/pemmicanbar = 2.50, - /obj/item/reagent_containers/food/snacks/choctruffles = 3.50, - /obj/item/reagent_containers/food/snacks/peanutsnack = 2.50, - /obj/item/reagent_containers/food/snacks/peanutsnack/pepper = 2.50, - /obj/item/reagent_containers/food/snacks/peanutsnack/choc = 2.50, - /obj/item/reagent_containers/food/snacks/peanutsnack/masala = 2.50, - /obj/item/reagent_containers/food/snacks/chana = 3.25, - /obj/item/reagent_containers/food/snacks/chana/wild = 3.25, - /obj/item/reagent_containers/food/snacks/papad = 2.50, - /obj/item/reagent_containers/food/snacks/papad/garlic = 2.50, - /obj/item/reagent_containers/food/snacks/papad/ginger = 2.50, - /obj/item/reagent_containers/food/snacks/papad/apple = 2.50, - /obj/item/storage/box/fancy/foysnack = 4.00, - ) - contraband = list() - premium = list( - /obj/item/toy/comic/inspector = 2, - /obj/item/toy/comic/stormman = 2, - /obj/item/toy/plushie/greimorian = 2 - ) - random_itemcount = 0 - light_color = COLOR_BABY_BLUE - -/obj/machinery/vending/frontiervend/low_supply - products = list( - /obj/item/reagent_containers/food/drinks/cans/himeokvass = 2, - /obj/item/reagent_containers/food/drinks/cans/boch = 1, - /obj/item/reagent_containers/food/drinks/cans/boch/buckthorn = 2, - /obj/item/reagent_containers/food/drinks/cans/xanuchai = 2, - /obj/item/reagent_containers/food/drinks/cans/xanuchai/creme = 1, - /obj/item/reagent_containers/food/drinks/cans/galatea = 1, - /obj/item/reagent_containers/food/drinks/bottle/bestblend = 2, - /obj/item/reagent_containers/food/snacks/fishjerky = 1, - /obj/item/reagent_containers/food/snacks/pepperoniroll = 1, - /obj/item/reagent_containers/food/snacks/salmiak = 1, - /obj/item/reagent_containers/food/snacks/pemmicanbar = 1, - /obj/item/reagent_containers/food/snacks/peanutsnack = 2, - /obj/item/reagent_containers/food/snacks/peanutsnack/pepper = 1, - /obj/item/reagent_containers/food/snacks/chana = 1, - /obj/item/reagent_containers/food/snacks/papad = 2, - /obj/item/storage/box/fancy/foysnack = 1 - ) - -/obj/machinery/vending/frontiervend/hacked - name = "hacked FrontierVend" - desc = "A complimentary FrontierVend machine. No money? No worries." - prices = list() - -/obj/machinery/vending/rental_bikes - name = "\improper Rental Bikes self-service vendor" - desc = "Rent-a-bike, for a day!" - icon_state = "rent-a-bike" - icon_vend = "rent-a-bike-vend" - vend_id = "rent-a-bike" - products = list( - /obj/item/key/bike/moped = 0, // filled from the key data lists - /obj/item/key/bike/sport = 0, - ) - prices = list( - /obj/item/key/bike/moped = 15.00, - /obj/item/key/bike/sport = 50.00, - ) - restock_items = FALSE - random_itemcount = FALSE - light_color = COLOR_BABY_BLUE - - /// List of strings. - /// Vended out keys will be filled with these key data (== bike reg plates) strings. - /// Also based on this list is filled the products assoc list. - var/list/key_data_mopeds = list() - - /// Same as the list for mopeds, except for sports bikes. - var/list/key_data_sports = list() - -/obj/machinery/vending/rental_bikes/build_products() - products[/obj/item/key/bike/moped] = length(key_data_mopeds) - products[/obj/item/key/bike/sport] = length(key_data_sports) - -/obj/machinery/vending/rental_bikes/vended_product_post(var/obj/vended) - var/obj/item/key/key = vended - if(!istype(key)) - return - - // expires the next day - var/rental_expiry = "[GLOB.game_year]-[time2text(world.realtime + 1 DAY, "MM-DD")] [worldtime2text()]" - key.desc += " Property of Idris Incorporated. Rental expires on [rental_expiry]. Return fully charged." - - if(key_data_mopeds && istype(key, /obj/item/key/bike/moped)) - key.key_data = key_data_mopeds[1] - key_data_mopeds.Cut(1,2) - else if(key_data_sports && istype(key, /obj/item/key/bike/sport)) - key.key_data = key_data_sports[1] - key_data_sports.Cut(1,2) - -/obj/machinery/vending/ramen - name = "ramen vendor" - desc = "A generic brand vending machine capable of cooking tonkotsu ramen at the push of a button. Truly a pinnacle of human engineering!" - icon_state = "ramen" - icon_vend = "ramen-vend" - product_slogans = "Irasshaimase!" - vend_id = "ramen" - products = list( - /obj/item/reagent_containers/food/snacks/ramenbowl = 15, - /obj/item/reagent_containers/food/snacks/aoyama_ramen = 15 - ) - prices = list( - /obj/item/reagent_containers/food/snacks/ramenbowl = 7.00, - /obj/item/reagent_containers/food/snacks/aoyama_ramen = 8.25, - ) - light_color = COLOR_GUNMETAL - -/obj/machinery/vending/encryption - name = "SCC Encryption Key Vendor" - desc = "Communications galore, at the tip of your fingers." - product_ads = "Stop walkin, get talkin!;Get them keys!;Psst, got a minute?" - icon_state = "wallencrypt" - density = 0 //It is wall-mounted. - req_access = list(ACCESS_HOP) - vend_id = "encryption" - products = list( - /obj/item/device/encryptionkey/heads/captain = 1, - /obj/item/device/encryptionkey/heads/ce = 1, - /obj/item/device/encryptionkey/heads/cmo = 1, - /obj/item/device/encryptionkey/heads/hos = 1, - /obj/item/device/encryptionkey/heads/rd = 1, - /obj/item/device/encryptionkey/heads/xo = 1, - /obj/item/device/encryptionkey/headset_operations_manager = 1, - /obj/item/device/encryptionkey/headset_com = 5, - /obj/item/device/encryptionkey/headset_cargo = 5, - /obj/item/device/encryptionkey/headset_eng = 5, - /obj/item/device/encryptionkey/headset_med = 5, - /obj/item/device/encryptionkey/headset_sci = 5, - /obj/item/device/encryptionkey/headset_sec = 5, - /obj/item/device/encryptionkey/headset_service = 5, - /obj/item/device/encryptionkey/headset_warden = 5, - /obj/item/device/encryptionkey/headset_xenoarch = 5, - ) - -/obj/machinery/vending/actor - name = "Actor Vendor" - desc = "Has all your odyssey actor items, to let you effectively do your odysseying and actoring." - vend_id = "actor" - icon_state = "generic" - icon_vend = "generic-vend" - light_mask = "generic-lightmask" - products = list( - /obj/item/device/radio/headset/ship/odyssey = 12, - /obj/item/portable_map_reader/odyssey = 12, - /obj/item/card/id/syndicate = 12, - /obj/item/storage/box/syndie_kit/chameleon = 12, - ) - light_color = COLOR_GUNMETAL - random_itemcount = FALSE - -/* -Generic clothing vendor used in antagonist areas. For now, this almost entirely contains generic items. Prioritises recolourable items. -Intended to take some pressure off admins asked regularly to spawn in clothing by allowing players to spawn and colour their clothes themselves. -Only contains very few origin-specific items, as otherwise the list would get so long it'd be entirely incomprehensible. -If you want to expand this to more than primarily generic items, I recommend designing a UI that supports switching between categories. -*/ -/obj/machinery/vending/generic_clothing - name = "Generic Clothing Vendor" - desc = "Contains a large number of generic clothing items. Comes with hand-held dyers to dye its contents however the user wishes." - vend_id = "generic_clothing" - icon_state = "robotics" - icon_vend = "robotics-vend" - light_mask = "robotics-light-mask" - light_color = COLOR_GREEN - random_itemcount = FALSE - products = list ( - // This item allows players to change the colour of recolourable items from this vendor without needing admin intervention. - /obj/item/device/clothes_dyer = 6, - - // Generic suits. - /obj/item/clothing/suit/storage/toggle/labcoat = 6, - /obj/item/clothing/suit/storage/hazardvest/colorable = 6, - /obj/item/clothing/suit/storage/hooded/wintercoat/colorable = 6, - /obj/item/clothing/suit/storage/hooded/wintercoat/hoodie = 6, - /obj/item/clothing/suit/storage/surgical_gown = 6, - /obj/item/clothing/suit/storage/toggle/suitjacket = 6, - /obj/item/clothing/suit/storage/toggle/trench/colorable = 6, - /obj/item/clothing/suit/storage/toggle/bomber = 6, - /obj/item/clothing/suit/storage/toggle/cardigan = 6, - /obj/item/clothing/suit/storage/toggle/dominia/bomber = 6, - /obj/item/clothing/suit/storage/toggle/greatcoat/brown = 6, - - // Generic shirts. - /obj/item/clothing/under/dressshirt/alt = 6, - /obj/item/clothing/under/dressshirt/polo = 6, - /obj/item/clothing/under/dressshirt/silversun= 6, - /obj/item/clothing/under/dressshirt/tanktop = 6, - /obj/item/clothing/under/dressshirt/puffyblouse = 6, - - // Generic pants & skirts. - /obj/item/clothing/pants/shorts/colourable = 6, - /obj/item/clothing/pants/mustang/colourable = 6, - /obj/item/clothing/pants/dress = 6, - /obj/item/clothing/pants/skirt = 6, - /obj/item/clothing/pants/skirt/high = 6, - /obj/item/clothing/pants/skirt/pencil = 6, - - // Generic uniforms. - /obj/item/clothing/under/color/colorable = 6, - /obj/item/clothing/under/syndicate = 6, - /obj/item/clothing/under/syndicate/tracksuit = 6, - /obj/item/clothing/under/dress/colorable/longsleeve = 6, - /obj/item/clothing/under/dress/colorable/sleeveless = 6, - /obj/item/clothing/under/librarian = 6, - /obj/item/clothing/under/rank/medical/generic = 6, - /obj/item/clothing/under/dominia/imperial_suit = 6, - /obj/item/clothing/under/suit_jacket = 6, - /obj/item/clothing/under/tajaran = 6, - - // Generic hats. - /obj/item/clothing/head/bandana/colorable = 6, - /obj/item/clothing/head/beanie = 6, - /obj/item/clothing/head/beret/colorable = 6, - /obj/item/clothing/head/bucket/boonie = 6, - /obj/item/clothing/head/cowboy/wide = 6, - /obj/item/clothing/head/cowboy = 6, - /obj/item/clothing/head/fedora = 6, - /obj/item/clothing/head/flatcap/colourable = 6, - /obj/item/clothing/head/wool = 6, - /obj/item/clothing/head/sidecap = 6, - /obj/item/clothing/head/plain_hood = 6, - - // Generic gloves. - /obj/item/clothing/gloves/black_leather/colour = 6, - /obj/item/clothing/gloves/fingerless/colour = 6, - /obj/item/clothing/gloves/evening = 6, - - // Generic accessories. - /obj/item/clothing/accessory/wcoat_rec = 6, - /obj/item/clothing/accessory/bandanna/colorable = 6, - /obj/item/clothing/accessory/apron = 6, - /obj/item/clothing/accessory/tie/colourable = 6, - /obj/item/clothing/accessory/tie/ribbon/neck = 6, - /obj/item/clothing/accessory/poncho/colorable/gradient = 6, - /obj/item/clothing/accessory/poncho/dominia_cape = 6, - /obj/item/clothing/accessory/scarf = 6, - - // Bags. - /obj/item/storage/backpack/duffel/eng = 6, - /obj/item/storage/backpack/industrial = 6, - /obj/item/storage/backpack/messenger = 6, - /obj/item/storage/backpack/satchel = 6, - /obj/item/storage/backpack/satchel/leather/recolorable = 6, - /obj/item/storage/backpack/satchel/leather = 6, - - // Sunglasses and other eyewear. - /obj/item/clothing/glasses/regular = 6, - /obj/item/clothing/glasses/sunglasses = 6, - /obj/item/clothing/glasses/sunglasses/blindfold = 6, - /obj/item/clothing/glasses/monocle = 6, - /obj/item/clothing/glasses/eyepatch = 6, - - // Shoes and boots. - /obj/item/clothing/shoes/jackboots = 6, - /obj/item/clothing/shoes/jackboots/cavalry = 6, - /obj/item/clothing/shoes/jackboots/toeless = 6, - /obj/item/clothing/shoes/sneakers/black = 6, - /obj/item/clothing/shoes/laceup/colourable = 6, - /obj/item/clothing/shoes/heels = 6, - /obj/item/clothing/shoes/winter = 6, - ) - -/obj/machinery/vending/lavatory - name = "\improper Lavatory Essentials" - desc = "Vends things that make you less reviled in the work-place!" - icon_state = "lavatory" - icon_vend = "lavatory-vend" - icon_deny = "lavatory-deny" - product_ads = "Take a shower you hippie.;Get a haircut, hippie!;Reeking of Vaurca taint? Take a shower!;You reek! Freshen up!;Hey, you dropped something!;Cleansing the world, one person at a time!" - prices = list( - /obj/item/soap = 3.50, - /obj/item/mirror = 7.00, - /obj/item/haircomb/random = 7.00, - /obj/item/towel/random = 8.50, - /obj/item/reagent_containers/spray/cleaner/deodorant = 5.00, - /obj/item/reagent_containers/toothpaste = 7.00, - /obj/item/reagent_containers/toothbrush = 3.50, - /obj/item/reagent_containers/food/drinks/flask/vacuumflask/mouthwash = 5.00, - ) - products = list( - /obj/item/soap = 12, - /obj/item/mirror = 8, - /obj/item/haircomb/random = 8, - /obj/item/towel/random = 6, - /obj/item/reagent_containers/spray/cleaner/deodorant = 5, - /obj/item/reagent_containers/toothpaste = 5, - /obj/item/reagent_containers/toothbrush = 12, - /obj/item/reagent_containers/food/drinks/flask/vacuumflask/mouthwash = 5 - ) - premium = list( - /obj/item/grenade/chem_grenade/metalfoam = 0, - ) - contraband = list( - /obj/item/inflatable_duck = 1 - ) - -/obj/machinery/vending/lavatory/low_supply - prices = list( - /obj/item/soap = 7, - /obj/item/mirror = 12, - /obj/item/haircomb/random = 12, - /obj/item/towel/random = 14, - /obj/item/reagent_containers/spray/cleaner/deodorant = 6, - /obj/item/reagent_containers/toothpaste = 14, - /obj/item/reagent_containers/toothbrush = 23, - /obj/item/reagent_containers/food/drinks/flask/vacuumflask/mouthwash = 18 - ) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 1f10fd31c57..aade35c7cbe 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -33,10 +33,16 @@ BLIND // can't see anything var/activated_color = null var/normal_layer = GLASSES_LAYER var/shatter_material = /obj/item/material/shard + var/brand_name species_restricted = list("exclude",BODYTYPE_VAURCA_BREEDER) drop_sound = 'sound/items/drop/accessory.ogg' pickup_sound = 'sound/items/pickup/accessory.ogg' +/obj/item/clothing/glasses/Initialize() + . = ..() + if(brand_name) + desc += " This pair has been made in [brand_name] colors." + // Called in mob/RangedAttack() and mob/UnarmedAttack. /obj/item/clothing/glasses/proc/Look(var/atom/A, mob/user, var/proximity) return 0 // return 1 to cancel attack_hand/RangedAttack() @@ -365,7 +371,6 @@ BLIND // can't see anything /obj/item/clothing/glasses/safety/goggles/tactical name = "tactical goggles" desc = "A stylish pair of tactical goggles that protect the eyes from aerosolized chemicals, debris and bright flashes." - var/brand_name icon_state = "military_goggles" var/sprite_state = "military_goggles" // Implementing this temporarily to use the generic goggle inhands until unique sprites are made. @@ -381,8 +386,6 @@ BLIND // can't see anything item_state = sprite_state off_state = sprite_state . = ..() - if(brand_name) - desc += " This pair has been made in [brand_name] colors." /obj/item/clothing/glasses/safety/goggles/tactical/handle_additional_changes() flash_protection = up ? FLASH_PROTECTION_NONE : FLASH_PROTECTION_MODERATE @@ -395,7 +398,6 @@ BLIND // can't see anything /obj/item/clothing/glasses/safety/goggles/goon name = "tactical goggles" desc = "A stylish pair of tactical goggles that protect the eyes from aerosolized chemicals, debris and bright flashes. Comes with a security HUD." - var/brand_name icon_state = "security_goggles" var/sprite_state = "security_goggles" // Implementing this temporarily to use the generic goggle inhands until unique sprites are made. @@ -411,8 +413,6 @@ BLIND // can't see anything item_state = sprite_state off_state = sprite_state . = ..() - if(brand_name) - desc += " This pair has been made in [brand_name] colors." /obj/item/clothing/glasses/safety/goggles/goon/process_hud(var/mob/M) if(!up) @@ -443,7 +443,6 @@ BLIND // can't see anything /obj/item/clothing/glasses/safety/goggles/medical name = "medical goggles" desc = "A stylish pair of medical goggles that protect the eyes from aerosolized chemicals and debris. Comes with a medical HUD." - var/brand_name icon_state = "security_goggles" var/sprite_state = "security_goggles" // Implementing this temporarily to use the generic goggle inhands until unique sprites are made. @@ -458,8 +457,6 @@ BLIND // can't see anything item_state = sprite_state off_state = sprite_state . = ..() - if(brand_name) - desc += " This pair has been made in [brand_name] colors." /obj/item/clothing/glasses/safety/goggles/medical/process_hud(var/mob/M) if(!up) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index 9080c706442..6949a39c596 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -1194,6 +1194,7 @@ /// Imparts hallucination effects scaling with bac. var/alchohol_affected = TRUE var/messagedelay = MEDICATION_MESSAGE_DELAY + /// Generic fluff messages for anyone who takes it. var/list/goodmessage = list() /// Species-specific fluff messages- will override the generic version for the given species. See following comment/example for implementation details. diff --git a/html/changelogs/Batrachophreno-Drobes.yml b/html/changelogs/Batrachophreno-Drobes.yml new file mode 100644 index 00000000000..429f693a0cc --- /dev/null +++ b/html/changelogs/Batrachophreno-Drobes.yml @@ -0,0 +1,62 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: Batrachophrenoboocosmomachia + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added 13 new 'Drobe' vending machines, containing stock for associated departments/jobs, throughout the ship." + - rscdel: "Removed old wardrobe lockers where a Drobe machine existed to replace them." + - rscadd: "Updated all Vending machine product ads, made them display at random on the purchase screen." + - code_imp: "Split vending machine prefab code for readability, added documentation." + - bugfix: "Added floor 'hatch' markings to existing SCCV Horizon vending machines that were missing them." diff --git a/html/changelogs/Batrachophreno-DrugMessages.yml b/html/changelogs/Batrachophreno-DrugMessages.yml new file mode 100644 index 00000000000..bcc701b2760 --- /dev/null +++ b/html/changelogs/Batrachophreno-DrugMessages.yml @@ -0,0 +1,59 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: ChangeMe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - code_imp: "Added support for reagent/mental to return different feedback text strings based on species." + - bugfix: "Koko Reed Juice now only returns drug feedback messages to Unathi." diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index b4c41aacd5740b799ac628cb1d7b5e6dc6c9d2f4..c8b27d29575621ba6a32206f696fe3a3ac80cbca 100755 GIT binary patch literal 113383 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 literal 85205 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 { return ( + {data.display_ad}

{data.vending_item && data.sel_price !== 0 ? (