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 b4c41aacd57..c8b27d29575 100755 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/maps/sccv_horizon/code/sccv_horizon_areas.dm b/maps/sccv_horizon/code/sccv_horizon_areas.dm deleted file mode 100644 index b764339fe64..00000000000 --- a/maps/sccv_horizon/code/sccv_horizon_areas.dm +++ /dev/null @@ -1,922 +0,0 @@ -//Engineering - -/area/engineering/lobby - name = "Engineering - Lobby" - -/area/engineering/storage/tech - name = "Engineering - Technical Storage" - icon_state = "auxstorage" - -/area/engineering/storage/lower - name = "Engineering - Lower Deck Storage" - -/area/engineering/aft_airlock - name = "Engineering - Aft Service Airlock" - -/area/engineering/rust_office - name = "Engineering - INDRA Office" - -/area/engineering/engine_room/rust - name = "Engineering - INDRA Engine" - -/area/engineering/engine_room/turbine - name = "Engineering - Combustion Turbine" - -/area/engineering/smes - name = "Engineering - SM SMES" - icon_state = "engine_smes" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - ambience = AMBIENCE_SINGULARITY - -/area/engineering/smes/rust - name = "Engineering - INDRA SMES" - -/area/engineering/engine_monitoring/rust - name = "Engineering - INDRA Engine Monitoring" - -/area/engineering/atmos/air - name = "Engineering - Air Mixing" - -/area/maintenance/substation/engineering/lower - name = "Engineering Substation - Lower Deck" - -/area/hallway/engineering - name = "Engineering - Main Hallway" - icon_state = "engineering" - ambience = AMBIENCE_ENGINEERING - holomap_color = HOLOMAP_AREACOLOR_ENGINEERING - -/area/hallway/engineering/rust - name = "Engineering - INDRA Hallway" - -/area/engineering/bluespace_drive - name = "Engineering - Bluespace Drive" - icon_state = "engine" - -/area/engineering/bluespace_drive/monitoring - name = "Engineering - Bluespace Drive" - icon_state = "engineering" - -//Medical - -/area/medical/ors - name = "Medical - Combined Operating Rooms" - icon_state = "surgery" - -/area/medical/exam - name = "Medical - Examination Room" - icon_state = "exam_room" - -/area/medical/ward - name = "Medical - Ward" - icon_state = "patients" - -/area/medical/ward/isolation - name = "Medical - Isolation Ward" - area_blurb = "This seldom-used ward somehow smells sterile and musty at the same time." - area_blurb_category = "medical_isolation" - -/area/medical/emergency_storage - name = "Medical - Lower Deck Emergency Storage" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/medical/morgue/lower - name = "Medical - Morgue" - icon_state = "morgue" - ambience = AMBIENCE_GHOSTLY - -/area/medical/equipment - name = "Medical - Equipment Room" - -/area/medical/smoking - name = "Medical - Smoking Lounge" - area_blurb = "The smell of cigarette smoke lingers within this room." - area_blurb_category = "medical_smoking" - -/area/medical/washroom - name = "Medical - Washroom" - -/area/hallway/medical - name = "Medical - Atrium" - holomap_color = HOLOMAP_AREACOLOR_MEDICAL - icon_state = "medbay" - -/area/hallway/medical/upper - name = "Medical - Upper Atrium" - -/area/hallway/crew_area - name = "Crew Quarters Hallway" - icon_state = "crew_area" - -//Research - -/area/rnd/conference - name = "Research - Conference Room" - -/area/maintenance/substation/xenoarchaeology - name = "Xenoarchaeology Substation" - -//Hangar - -/area/hangar - name = "Hangar" - icon_state = "bluenew" - ambience = AMBIENCE_HANGAR - sound_environment = SOUND_ENVIRONMENT_HANGAR - station_area = TRUE - holomap_color = HOLOMAP_AREACOLOR_HANGAR - -/area/hangar/briefing - name = "Expedition Briefing Room" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/hangar/control - name = "Hangar Control Room" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/hangar/intrepid - name = "Intrepid Hangar" - area_blurb = "A big, open room, home to the SCCV Horizon's largest shuttle, the Intrepid." - area_blurb_category = "intrepid_hanger" - -/area/hangar/intrepid/interstitial - name = "Intrepid Hangar Access" - -/area/hangar/operations - name = "Operations Hangar" - -/area/hangar/auxiliary - name = "Auxiliary Hangar" - -/area/maintenance/substation/hangar - name = "Hangar Substation" - -//Operations - -/area/operations - name = "Operations" - icon_state = "dark" - ambience = AMBIENCE_ENGINEERING - station_area = TRUE - holomap_color = HOLOMAP_AREACOLOR_OPERATIONS - -/area/operations/lower - name = "Lower Operations" - icon_state = "dark160" - -/area/operations/upper - name = "Upper Operations" - icon_state = "dark128" - -/area/operations/storage - name = "Operations Equipment Storage" - icon_state = "dark160" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - area_blurb = "Scuff marks scar the floor from the movement of many crates and stored goods." - area_blurb_category = "ops_warehouse" - -/area/operations/lower/machinist - name = "Machinist Workshop" - icon_state = "machinist_workshop" - area_blurb = "The scents of oil and mechanical lubricants fill the air in this workshop." - area_blurb_category = "robotics" - -/area/operations/lower/machinist/surgicalbay - name = "Machinist Surgical Bay" - icon_state = "machinist_workshop" - area_blurb = "The scent of sterilized equipment fill the air in this surgical bay." - area_blurb_category = "robotics" - -/area/operations/lobby - name = "Operations Lobby" - -/area/operations/loading - name = "Operations Bay" - icon_state = "quartloading" - -/area/operations/break_room - name = "Operations Break Room" - icon_state = "blue" - -/area/operations/office - name = "Operations Office" - icon_state = "quartoffice" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/operations/office_aux - name = "Operations Office (Aux)" - icon_state = "quartoffice" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/operations/mail_room - name = "Operations Mail Room" - icon_state = "red" - -/area/operations/qm - name = "Operations Manager's Office" - icon_state = "quart" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - -//Wings - -/area/maintenance/substation/wing_starboard - name = "Starboard Wing Substation" - -/area/maintenance/substation/wing_port - name = "Port Wing Substation" - -/area/maintenance/hangar - name = "Hangar Maintenance" - -/area/maintenance/hangar/port - name = "Port Hangar Maintenance" - -/area/maintenance/wing/cargo_compartment - name = "Auxiliary Cargo Maintenance" - -/area/maintenance/hangar/starboard - name = "Starboard Hangar Maintenance" - -/area/maintenance/wing - name = "Wing Frame Maintenance" - icon_state = "fpmaint" - -/area/maintenance/wing/starboard - name = "Central Wing Frame Interior - Starboard" - -/area/maintenance/wing/starboard/far - name = "Central Wing Frame Interior - Far Starboard" - -/area/maintenance/wing/starboard/deck1 - name = "Lower Wing Frame Interior - Starboard" - -/area/maintenance/wing/port - name = "Central Wing Frame Interior - Port" - -/area/maintenance/wing/port/far - name = "Central Wing Frame Interior - Far Port" - -/area/maintenance/wing/port/deck1 - name = "Lower Wing Frame Interior - Port" - -//Propulsion - -/area/engineering/atmos/propulsion - name = "Port Propulsion" - icon_state = "blue2" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/engineering/atmos/propulsion/starboard - name = "Starboard Propulsion" - icon_state = "blue-red2" - -//Bridge -/area/crew_quarters/heads/hop/xo - name = "Command - Executive Officer's Office" - -/area/bridge/bridge_crew - name = "Bridge Crew Preparation" - icon_state = "bridge_crew" - -/area/bridge/helm - name = "Bridge Helm" - icon_state = "bridge_helm" - -/area/bridge/supply - name = "Bridge Supply Closet" - icon_state = "bridge_crew" - -//Crew quarters - -/area/crew_quarters/lounge - name = "Crew Lounge" - icon_state = "lounge" - -/area/crew_quarters/lounge/secondary - name = "Secondary Crew Lounge" - icon_state = "lounge2" - -// Maintenance - -/area/maintenance/operations - name = "Operations Maintenance" - icon_state = "maint_cargo" - -/area/maintenance/aux_atmospherics/deck_2/starboard - name = "Starboard Auxiliary Atmospherics" -/area/maintenance/aux_atmospherics/deck_2/starboard/wing - name = "Starboard Wing Auxiliary Atmospherics" -/area/maintenance/aux_atmospherics/deck_3 - name = "Central Auxiliary Atmospherics" - -// Infrastructure - -/area/storage/shields - name = "Ship Shield Control" - icon_state = "eva" - -//shuttles - -/area/shuttle/intrepid - name = "Intrepid" - icon_state = "intrepid" - requires_power = TRUE - -/area/shuttle/intrepid/main_compartment - name = "Intrepid Main Compartment" - -/area/shuttle/intrepid/port_compartment - name = "Intrepid Port Compartment" - -/area/shuttle/intrepid/starboard_compartment - name = "Intrepid Starboard Compartment" - -/area/shuttle/intrepid/junction_compartment - name = "Intrepid Junction Compartment" - -/area/shuttle/intrepid/buffet - name = "Intrepid Buffet" - -/area/shuttle/intrepid/medical - name = "Intrepid Medical Compartment" - -/area/shuttle/intrepid/engineering - name = "Intrepid Engineering Compartment" - -/area/shuttle/intrepid/port_storage - name = "Intrepid Port Nacelle" - -/area/shuttle/intrepid/flight_deck - name = "Intrepid Flight Deck" - -/area/shuttle/canary - name = "Canary" - requires_power = TRUE - -/area/shuttle/quark/cockpit - name = "Quark Cockpit" - requires_power = TRUE - -/area/shuttle/quark/cargo_hold - name = "Quark Cargo Hold" - requires_power = TRUE - -// -// SCCV Horizon Areas -// -/area/horizon - name = "Horizon (PARENT AREA - DON'T USE)" - icon_state = "unknown" - station_area = TRUE - ambience = AMBIENCE_GENERIC - -// Exterior -/area/horizon/exterior - name = "Horizon - Exterior" - icon_state = "exterior" - base_turf = /turf/space - dynamic_lighting = TRUE - requires_power = FALSE - has_gravity = FALSE - no_light_control = TRUE - allow_nightmode = FALSE - ambience = AMBIENCE_SPACE - area_flags = AREA_FLAG_HIDE_FROM_HOLOMAP - -/********** Maintenance Start **********/ -// Maintenance -/area/horizon/maintenance - name = "Horizon - Maintenance (PARENT AREA - DON'T USE)" - icon_state = "maintenance" - area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_HIDE_FROM_HOLOMAP - sound_environment = SOUND_AREA_TUNNEL_ENCLOSED - turf_initializer = new /datum/turf_initializer/maintenance() - ambience = AMBIENCE_MAINTENANCE - -/area/horizon/maintenance/deck_two/fore/starboard - name = "Horizon - Maintenance - Deck Two - Fore Starboard" - -/area/horizon/maintenance/deck_two/fore/port - name = "Horizon - Maintenance - Deck Two - Fore Port" - -/area/horizon/maintenance/deck_three/aft/starboard - name = "Horizon - Maintenance - Deck Three - Aft Starboard" - -/********** Maintenance End **********/ - -/********** Hallways Start **********/ -// Hallways -/area/horizon/hallway - name = "Horizon - Hallway (PARENT AREA - DON'T USE)" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - allow_nightmode = TRUE - lightswitch = TRUE - holomap_color = HOLOMAP_AREACOLOR_HALLWAYS - emergency_lights = TRUE - -/area/horizon/hallway/deck_three/primary/central - name = "Horizon - Deck 3 - Central Primary Hallway" - icon_state = "hallC" - -/area/horizon/hallway/deck_three/primary/starboard - name = "Horizon - Deck 3 - Starboard Primary Hallway" - icon_state = "hallS" - -/area/horizon/hallway/deck_three/primary/starboard/docks - name = "Horizon - Deck 3 - Starboard Primary Hallway - Docks" - holomap_color = HOLOMAP_AREACOLOR_DOCK - -/area/horizon/hallway/deck_three/primary/port - name = "Horizon - Deck 3 - Port Primary Hallway" - icon_state = "hallP" - -/area/horizon/hallway/deck_three/primary/port/docks - name = "Horizon - Deck 3 - Port Primary Hallway - Docks" - holomap_color = HOLOMAP_AREACOLOR_DOCK - -/area/horizon/hallway/deck_two/fore - name = "Horizon - Deck 2 - Fore Hallway" - icon_state = "hallF" -/********** Hallways End **********/ - -/********** Stairwells Start **********/ -// Stairwells -/area/horizon/stairwell - name = "Horizon - Stairwell (PARENT AREA - DON'T USE)" - area_flags = AREA_FLAG_RAD_SHIELDED - holomap_color = HOLOMAP_AREACOLOR_HALLWAYS - -/area/horizon/stairwell/central - name = "Horizon - Central Stairwell" - icon_state = "stairwell" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/horizon/stairwell/bridge - name = "Horizon - Bridge Stairwell" - icon_state = "bridge_stairs" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - ambience = AMBIENCE_HIGHSEC -/********** Stairwells End **********/ - -/********** Crew Quarters Start **********/ -// Crew Quarters -/area/horizon/crew_quarters - name = "Horizon - Crew Quarters (PARENT AREA - DON'T USE)" - area_flags = AREA_FLAG_RAD_SHIELDED - holomap_color = HOLOMAP_AREACOLOR_CIVILIAN - -// Cryogenics -/area/horizon/crew_quarters/cryo - name = "Horizon - Cryogenic Storage" - icon_state = "Sleep" - -/area/horizon/crew_quarters/cryo/living_quarters_lift - name = "Horizon - Living Quarters Lift" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/horizon/crew_quarters/cryo/dormitories - name = "Horizon - Cryogenic Storage - Dormitories" - -/area/horizon/crew_quarters/cryo/washroom - name = "Horizon - Cryogenic Storage - Washroom" - icon_state = "washroom" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/horizon/crew_quarters/cryo/showers - name = "Horizon - Cryogenic Storage - Showers" - icon_state = "showers" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -// Fitness Center -/area/horizon/crew_quarters/fitness - name = "Horizon - Fitness Center (PARENT AREA - DON'T USE)" - icon_state = "fitness" - -/area/horizon/crew_quarters/fitness/hallway - name = "Horizon - Fitness Center Hallway" - icon_state = "fitness_hallway" - -/area/horizon/crew_quarters/fitness/pool - name = "Horizon - Fitness Center - Pool" - icon_state = "fitness_pool" - -/area/horizon/crew_quarters/fitness/gym - name = "Horizon - Fitness Center - Gym" - icon_state = "fitness_gym" - -/area/horizon/crew_quarters/fitness/changing - name = "Horizon - Fitness Center - Changing Room" - icon_state = "fitness_changingroom" - -/area/horizon/crew_quarters/fitness/washroom - name = "Horizon - Fitness Center - Washroom" - icon_state = "washroom" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/horizon/crew_quarters/fitness/showers - name = "Horizon - Fitness Center - Showers" - icon_state = "showers" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/horizon/crew_quarters/fitness/lounge - name = "Horizon - Fitness Center - Lounge" - icon_state = "fitness_lounge" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - -// Lounges -/area/horizon/crew_quarters/lounge/bar - name = "Horizon - Bar Lounge" - icon_state = "lounge" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - -// Miscellanous -/area/horizon/crew_quarters/washroom/central - name = "Horizon - Central Washroom" - icon_state = "washroom" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/********** Crew Quarters End **********/ - -/********** Holodeck Start **********/ -// Holodeck -/area/horizon/holodeck_control - name = "Horizon - Holodeck Alpha" - area_flags = AREA_FLAG_RAD_SHIELDED - holomap_color = HOLOMAP_AREACOLOR_CIVILIAN - -/area/horizon/holodeck_control/beta - name = "Horizon - Holodeck Beta" - -/area/horizon/holodeck - name = "Horizon - Holodeck (PARENT AREA - DON'T USE)" - icon_state = "Holodeck" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - no_light_control = TRUE - dynamic_lighting = FALSE - area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_NO_GHOST_TELEPORT_ACCESS - holomap_color = HOLOMAP_AREACOLOR_CIVILIAN - -/area/horizon/holodeck/alphadeck - name = "Horizon - Holodeck Alpha" - dynamic_lighting = TRUE - -/area/horizon/holodeck/betadeck - name = "Horizon - Holodeck Beta" - dynamic_lighting = TRUE - -/area/horizon/holodeck/source_plating - name = "Horizon - Holodeck - Off" - -/area/horizon/holodeck/source_chapel - name = "Horizon - Holodeck - Chapel" - -/area/horizon/holodeck/source_gym - name = "Horizon - Holodeck - Gym" - sound_environment = SOUND_ENVIRONMENT_ARENA - -/area/horizon/holodeck/source_range - name = "Horizon - Holodeck - Range" - sound_environment = SOUND_ENVIRONMENT_ARENA - -/area/horizon/holodeck/source_emptycourt - name = "Horizon - Holodeck - Empty Court" - sound_environment = SOUND_ENVIRONMENT_ARENA - -/area/horizon/holodeck/source_boxingcourt - name = "Horizon - Holodeck - Boxing Court" - sound_environment = SOUND_ENVIRONMENT_ARENA - -/area/horizon/holodeck/source_basketball - name = "Horizon - Holodeck - Basketball Court" - sound_environment = SOUND_ENVIRONMENT_ARENA - -/area/horizon/holodeck/source_thunderdomecourt - name = "Horizon - Holodeck - Thunderdome Court" - sound_environment = SOUND_ENVIRONMENT_ARENA - -/area/horizon/holodeck/source_courtroom - name = "Horizon - Holodeck - Courtroom" - sound_environment = SOUND_ENVIRONMENT_AUDITORIUM - -/area/horizon/holodeck/source_burntest - name = "Horizon - Holodeck - Atmospheric Burn Test" - -/area/horizon/holodeck/source_wildlife - name = "Horizon - Holodeck - Wildlife Simulation" - -/area/horizon/holodeck/source_meetinghall - name = "Horizon - Holodeck - Meeting Hall" - sound_environment = SOUND_ENVIRONMENT_AUDITORIUM - -/area/horizon/holodeck/source_theatre - name = "Horizon - Holodeck - Callistean Theatre" - sound_environment = SOUND_ENVIRONMENT_CONCERT_HALL - -/area/horizon/holodeck/source_picnicarea - name = "Horizon - Holodeck - Picnic Area" - sound_environment = SOUND_ENVIRONMENT_PLAIN - -/area/horizon/holodeck/source_dininghall - name = "Horizon - Holodeck - Dining Hall" - sound_environment = SOUND_ENVIRONMENT_PLAIN - -/area/horizon/holodeck/source_snowfield - name = "Horizon - Holodeck - Bursa Tundra" - sound_environment = SOUND_ENVIRONMENT_FOREST - -/area/horizon/holodeck/source_desert - name = "Horizon - Holodeck - Desert" - sound_environment = SOUND_ENVIRONMENT_PLAIN - -/area/horizon/holodeck/source_space - name = "Horizon - Holodeck - Space" - has_gravity = FALSE - sound_environment = SOUND_AREA_SPACE - -/area/horizon/holodeck/source_battlemonsters - name = "Horizon - Holodeck - Battlemonsters Arena" - sound_environment = SOUND_ENVIRONMENT_ARENA - -/area/horizon/holodeck/source_chessboard - name = "Horizon - Holodeck - Chessboard" - -/area/horizon/holodeck/source_adhomai - name = "Horizon - Holodeck - Adhomian Campfire" - -/area/horizon/holodeck/source_beach - name = "Horizon - Holodeck - Silversunner Coast" - sound_environment = SOUND_ENVIRONMENT_PLAIN - -/area/horizon/holodeck/source_pool - name = "Horizon - Holodeck - Swimming Pool" - -/area/horizon/holodeck/source_sauna - name = "Horizon - Holodeck - Sauna" - -/area/horizon/holodeck/source_jupiter - name = "Horizon - Holodeck - Jupiter Upper Atmosphere" - -/area/horizon/holodeck/source_konyang - name = "Horizon - Holodeck - Konyanger Boardwalk" - -/area/horizon/holodeck/source_moghes - name = "Horizon - Holodeck - Moghresian Jungle" - -/area/horizon/holodeck/source_biesel - name = "Horizon - Holodeck - Foggy Mendell Skyline" - -/area/horizon/holodeck/source_tribunal - name = "Horizon - Holodeck - Tribunalist Chapel" - -/area/horizon/holodeck/source_trinary - name = "Horizon - Holodeck - Trinarist Chapel" - -/area/horizon/holodeck/source_cafe - name = "Horizon - Holodeck - Animal Cafe" - -/area/horizon/holodeck/source_lasertag - name = "Horizon - Holodeck - Laser Tag Arena" - -/area/horizon/holodeck/source_combat_training - name = "Horizon - Holodeck - Combat Training Arena" - -/********** Holodeck End **********/ - -/********** Unique Start **********/ -// Hydroponics -/area/horizon/hydroponics - name = "Horizon - Hydroponics" - icon_state = "hydro" - holomap_color = HOLOMAP_AREACOLOR_CIVILIAN - -/area/horizon/hydroponics/lower - name = "Horizon - Hydroponics - Lower" - -/area/horizon/hydroponics/garden - name = "Horizon - Public Garden" - icon_state = "garden" - -// Library -/area/horizon/library - name = "Horizon - Library" - icon_state = "library" - sound_environment = SOUND_AREA_LARGE_SOFTFLOOR - holomap_color = HOLOMAP_AREACOLOR_CIVILIAN - -// Kitchen -/area/horizon/kitchen - name = "Horizon - Kitchen" - icon_state = "kitchen" - allow_nightmode = FALSE - holomap_color = HOLOMAP_AREACOLOR_CIVILIAN - -/area/horizon/kitchen/hallway - name = "Horizon - Kitchen - Hallway" - -/area/horizon/kitchen/freezer - name = "Horizon - Kitchen - Freezer" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -// Bar -/area/horizon/bar - name = "Horizon - Bar" - icon_state = "bar" - allow_nightmode = FALSE - holomap_color = HOLOMAP_AREACOLOR_CIVILIAN - -/area/horizon/bar/backroom - name = "Horizon - Bar - Backroom" - holomap_color = HOLOMAP_AREACOLOR_CIVILIAN - area_flags = AREA_FLAG_RAD_SHIELDED - -// Cafeteria -/area/horizon/cafeteria - name = "Horizon - Deck 3 Cafeteria" - icon_state = "cafeteria" - holomap_color = HOLOMAP_AREACOLOR_CIVILIAN - area_blurb = "The smell of coffee wafts over from the cafe. Patience, the tree, stands proudly in the centre of the atrium." - area_blurb_category = "d3_cafe" - -// Custodial -/area/horizon/custodial - name = "Horizon - Custodial Closet" - icon_state = "janitor" - allow_nightmode = FALSE - sound_environment = SOUND_AREA_LARGE_ENCLOSED - ambience = list(AMBIENCE_FOREBODING, AMBIENCE_ENGINEERING) - holomap_color = HOLOMAP_AREACOLOR_CIVILIAN - area_blurb = "A strong, concentrated smell of many cleaning supplies linger within this room." - area_blurb_category = "janitor" - -/area/horizon/custodial/disposals - name = "Horizon - Disposals and Recycling" - icon_state = "disposal" - ambience = list(AMBIENCE_ENGINEERING, AMBIENCE_ATMOS) // Industrial sounds. - area_blurb = "A large trash compactor takes up much of the room, ready to crush the ship's rubbish." - area_blurb_category = "trash_compactor" - -/area/horizon/custodial/auxiliary - name = "Horizon - Auxiliary Custodial Closet" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - holomap_color = HOLOMAP_AREACOLOR_CIVILIAN - -// Crew Armoury -/area/horizon/crew_armoury - name = "Horizon - Crew Armoury" - icon_state = "crew_armoury" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - ambience = AMBIENCE_HIGHSEC - allow_nightmode = FALSE - holomap_color = HOLOMAP_AREACOLOR_COMMAND - -/area/horizon/crew_armoury/foyer - name = "Horizon - Crew Armoury - Foyer" - icon_state = "crew_armoury_foyer" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - ambience = AMBIENCE_FOREBODING - holomap_color = HOLOMAP_AREACOLOR_HALLWAYS - -// Security (Deck 2) -/area/horizon/security - name = "Horizon - Security (PARENT AREA - DON'T USE)" - holomap_color = HOLOMAP_AREACOLOR_SECURITY - -/area/horizon/security/lobby - name = "Horizon - Security - Lobby" - icon_state = "security" - -/area/horizon/security/office - name = "Horizon - Security - Office" - icon_state = "security" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/horizon/security/hallway - name = "Horizon - Security - Main Hallway" - icon_state = "security" - -/area/horizon/security/equipment - name = "Horizon - Security - Equipment Room" - icon_state = "security" - -/area/horizon/security/washroom - name = "Horizon - Security - Washroom" - icon_state = "security" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/horizon/security/brig - name = "Horizon - Security - Brig" - icon_state = "brig" - area_flags = AREA_FLAG_HIDE_FROM_HOLOMAP | AREA_FLAG_PRISON - ambience = AMBIENCE_HIGHSEC - -/area/horizon/security/holding_cell_a - name = "Horizon - Security - Holding Cell A" - icon_state = "brig_proc" - -/area/horizon/security/holding_cell_b - name = "Horizon - Security - Holding Cell B" - icon_state = "brig_proc_two" - -/area/horizon/security/head_of_security - name = "Horizon - Security - Head of Security's Office" - icon_state = "head_quarters" - area_flags = AREA_FLAG_HIDE_FROM_HOLOMAP - ambience = AMBIENCE_HIGHSEC - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/horizon/security/warden - name = "Horizon - Security - Warden's Office" - icon_state = "Warden" - area_flags = AREA_FLAG_HIDE_FROM_HOLOMAP - ambience = AMBIENCE_HIGHSEC - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/horizon/security/armoury - name = "Horizon - Security - Armoury" - icon_state = "Warden" - area_flags = AREA_FLAG_HIDE_FROM_HOLOMAP - ambience = AMBIENCE_HIGHSEC - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -// Security (Deck 3) -/area/horizon/security/investigations_hallway - name = "Horizon - Security - Investigations Hallway" - icon_state = "security" - -/area/horizon/security/meeting_room - name = "Horizon - Security - Meeting Room" - icon_state = "security" - -/area/horizon/security/firing_range - name = "Horizon - Security - Firing Range" - icon_state = "security" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/horizon/security/investigators_office - name = "Horizon - Security - Investigators' Office" - icon_state = "investigations_office" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/horizon/security/interrogation - name = "Horizon - Security - Interrogation" - icon_state = "investigations" - ambience = list(AMBIENCE_HIGHSEC, AMBIENCE_FOREBODING) - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/horizon/security/interrogation/monitoring - name = "Horizon - Security - Interrogation Monitoring" - -/area/horizon/security/forensic_laboratory - name = "Horizon - Security - Forensic Laboratory" - icon_state = "investigations" - -/area/horizon/security/autopsy_laboratory - name = "Horizon - Security - Autopsy Laboratory" - icon_state = "investigations" - ambience = list(AMBIENCE_GHOSTLY, AMBIENCE_FOREBODING) - -/area/horizon/security/evidence_storage - name = "Horizon - Security - Evidence Storage" - icon_state = "evidence" - ambience = AMBIENCE_FOREBODING - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -// Commissary -/area/horizon/commissary - name = "Horizon - Commissary" -/********** Unique End **********/ - -/********** Weapon Systems Start **********/ -// Secure Ammunition Storage -/area/horizon/secure_ammunition_storage - name = "Horizon - Secure Ammunitions Storage" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - ambience = AMBIENCE_FOREBODING - holomap_color = HOLOMAP_AREACOLOR_OPERATIONS - -// ZAT -/area/horizon/zat - name = "Horizon - ZAT Weapon System" - icon_state = "zat" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - ambience = AMBIENCE_SINGULARITY - area_blurb = "A gargantuan machine dominates the room, covered in components and moving parts. Its name is befitting of its size." - area_blurb_category = "leviathan" - area_flags = AREA_FLAG_HIDE_FROM_HOLOMAP - -// Longbow -/area/horizon/longbow - name = "Horizon - Longbow Weapon System" - icon_state = "bridge_weapon" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - ambience = AMBIENCE_HIGHSEC - area_flags = AREA_FLAG_HIDE_FROM_HOLOMAP - -/area/horizon/grauwolf - name = "Horizon - Grauwolf Weapon System" - icon_state = "bridge_weapon" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - ambience = AMBIENCE_HIGHSEC - area_flags = AREA_FLAG_HIDE_FROM_HOLOMAP - -/********** Weapon Systems End **********/ diff --git a/maps/sccv_horizon/sccv_horizon.dmm b/maps/sccv_horizon/sccv_horizon.dmm index 0851ccf4bd6..195d667de7d 100644 --- a/maps/sccv_horizon/sccv_horizon.dmm +++ b/maps/sccv_horizon/sccv_horizon.dmm @@ -3136,6 +3136,7 @@ }, /obj/machinery/alarm/north, /obj/machinery/recharge_station, +/obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled, /area/horizon/operations/break_room) "atH" = ( @@ -5240,6 +5241,9 @@ /obj/effect/floor_decal/spline/fancy/wood{ dir = 4 }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 13 + }, /turf/simulated/floor/wood, /area/horizon/operations/machinist/surgicalbay) "aII" = ( @@ -5668,6 +5672,18 @@ /obj/effect/map_effect/perma_light/starlight/wide, /turf/space/dynamic, /area/template_noop) +"aLN" = ( +/obj/effect/floor_decal/industrial/outline/service, +/obj/structure/table/rack, +/obj/random/hydroponics, +/obj/random/hydroponics, +/obj/random/hydroponics, +/obj/random/hydroponics, +/obj/item/reagent_containers/glass/bucket, +/obj/random/hydroponics, +/obj/random/hydroponics, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/service/hydroponics/lower) "aLR" = ( /obj/structure/lattice/catwalk/indoor/grate/dark, /obj/structure/platform{ @@ -10154,6 +10170,7 @@ dir = 1 }, /obj/machinery/vending/cola, +/obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/white, /area/horizon/operations/break_room) "btb" = ( @@ -12824,6 +12841,7 @@ /obj/effect/floor_decal/spline/plain{ dir = 6 }, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/carpet/rubber, /area/horizon/medical/pharmacy) "bOZ" = ( @@ -13877,7 +13895,7 @@ /obj/effect/floor_decal/corner/yellow{ dir = 9 }, -/obj/effect/floor_decal/industrial/outline/operations, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled, /area/horizon/engineering/locker_room) "bWC" = ( @@ -20340,9 +20358,9 @@ /turf/simulated/floor/wood, /area/horizon/crew/lounge) "cRG" = ( -/obj/structure/closet/secure_closet/machinist, /obj/effect/floor_decal/industrial/outline/yellow, /obj/machinery/atmospherics/unary/vent_pump/on, +/obj/structure/closet/secure_closet/machinist, /turf/simulated/floor/tiled/dark/full, /area/horizon/operations/machinist/surgicalbay) "cRO" = ( @@ -21877,9 +21895,9 @@ /obj/machinery/light{ dir = 8 }, -/obj/structure/closet/wardrobe/engineering_yellow, /obj/effect/floor_decal/corner/yellow/full, -/obj/effect/floor_decal/industrial/outline/operations, +/obj/machinery/vending/wardrobe/engi_wardrobe, +/obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled, /area/horizon/engineering/locker_room) "ddc" = ( @@ -27149,6 +27167,7 @@ /obj/effect/floor_decal/corner/beige{ dir = 5 }, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/horizon/medical/icu) "dNx" = ( @@ -27445,6 +27464,7 @@ /obj/effect/floor_decal/spline/plain{ dir = 8 }, +/obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/white, /area/horizon/operations/break_room) "dPE" = ( @@ -31991,6 +32011,7 @@ /obj/machinery/light{ dir = 1 }, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/horizon/medical/gen_treatment) "exs" = ( @@ -36575,6 +36596,7 @@ /obj/effect/floor_decal/spline/plain{ dir = 5 }, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/carpet/rubber, /area/horizon/medical/pharmacy) "fgw" = ( @@ -39201,6 +39223,7 @@ dir = 9 }, /obj/structure/extinguisher_cabinet/west, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/carpet/rubber, /area/horizon/medical/pharmacy) "fAU" = ( @@ -40446,14 +40469,8 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/obj/structure/closet/gmcloset, -/obj/item/flame/lighter/zippo, -/obj/item/storage/box/fancy/candle_box, -/obj/item/storage/box/fancy/candle_box, -/obj/item/device/quikpay, -/obj/item/storage/box/fancy/matches, -/obj/structure/extinguisher_cabinet/west, -/obj/effect/floor_decal/industrial/outline/grey, +/obj/effect/floor_decal/industrial/hatch/grey, +/obj/machinery/vending/wardrobe/bar_wardrobe, /turf/simulated/floor/tiled/dark, /area/horizon/service/bar/backroom) "fKQ" = ( @@ -44409,11 +44426,9 @@ }, /obj/machinery/power/apc/east, /obj/structure/cable/green, -/obj/structure/closet/secure_closet/engineering_personal, /obj/effect/floor_decal/corner/yellow/full{ dir = 4 }, -/obj/effect/floor_decal/industrial/outline/operations, /turf/simulated/floor/tiled, /area/horizon/engineering/locker_room) "gmT" = ( @@ -48494,8 +48509,10 @@ /turf/unsimulated/floor/plating, /area/centcom/ferry) "gQy" = ( -/turf/template_noop, -/area/horizon/maintenance/deck_2/wing/starboard/nacelle) +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/turf/simulated/floor/tiled/dark/full, +/area/horizon/service/hydroponics/lower) "gQD" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 4 @@ -49455,8 +49472,8 @@ /turf/simulated/floor/tiled/dark, /area/horizon/weapons/longbow) "gXE" = ( -/obj/machinery/shieldgen, /obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/power/emitter, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/storage_hard) "gXG" = ( @@ -49862,10 +49879,10 @@ /area/horizon/maintenance/deck_1/main/interstitial) "gZW" = ( /obj/effect/floor_decal/industrial/outline/operations, -/obj/structure/closet/wardrobe/atmospherics_yellow, /obj/machinery/light{ dir = 4 }, +/obj/machinery/vending/wardrobe/atmos_wardrobe, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/atmos/storage) "gZY" = ( @@ -51790,15 +51807,15 @@ /obj/effect/floor_decal/corner/mauve/full{ dir = 8 }, -/obj/machinery/vending/coffee{ - pixel_y = 24; - density = 0 - }, /obj/machinery/camera/network/research{ c_tag = "Research - Conference Room"; pixel_y = 9; dir = 4 }, +/obj/machinery/vending/wardrobe/science_wardrobe{ + pixel_y = 24; + density = 0 + }, /turf/simulated/floor/tiled/white, /area/horizon/rnd/conference) "hom" = ( @@ -65004,6 +65021,7 @@ dir = 4 }, /obj/structure/table/stone/marble, +/obj/item/device/quikpay, /turf/simulated/floor/tiled/dark/full, /area/horizon/service/kitchen) "jiA" = ( @@ -73650,11 +73668,11 @@ /area/horizon/engineering/atmos/air) "ktJ" = ( /obj/machinery/recharge_station, -/obj/effect/floor_decal/industrial/hatch/yellow, /obj/effect/floor_decal/corner/green/diagonal, /obj/machinery/light/small{ dir = 8 }, +/obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/white, /area/horizon/crew/washroom/deck_2) "ktR" = ( @@ -75354,6 +75372,7 @@ dir = 8 }, /obj/structure/closet/secure_closet/cabinet/beer/horizon, +/obj/structure/extinguisher_cabinet/south, /turf/simulated/floor/tiled/dark, /area/horizon/service/bar/backroom) "kFm" = ( @@ -81748,7 +81767,7 @@ /obj/effect/floor_decal/corner/yellow/full{ dir = 1 }, -/obj/effect/floor_decal/industrial/outline/operations, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled, /area/horizon/engineering/locker_room) "lzB" = ( @@ -88796,6 +88815,7 @@ /obj/effect/floor_decal/corner/beige{ dir = 10 }, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/horizon/medical/gen_treatment) "mEU" = ( @@ -90001,6 +90021,7 @@ dir = 1 }, /obj/machinery/vending/lavatory, +/obj/effect/floor_decal/industrial/hatch/grey, /turf/simulated/floor/tiled/white, /area/horizon/operations/break_room) "mOb" = ( @@ -90443,6 +90464,7 @@ /obj/structure/sign/nosmoking_2{ pixel_x = 28 }, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/horizon/medical/gen_treatment) "mRY" = ( @@ -95279,10 +95301,8 @@ c_tag = "Service - Chapel Storage"; dir = 4 }, -/obj/structure/closet/crate/coffin, -/obj/structure/closet/crate/coffin{ - pixel_y = 4 - }, +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/vending/wardrobe/chap_wardrobe, /turf/simulated/floor/tiled/dark, /area/horizon/service/chapel/office) "nCL" = ( @@ -99605,6 +99625,11 @@ dir = 4 }, /obj/machinery/alarm/west, +/obj/item/device/quikpay, +/obj/item/storage/box/fancy/candle_box, +/obj/item/storage/box/fancy/candle_box, +/obj/item/storage/box/fancy/matches, +/obj/item/flame/lighter/zippo, /turf/simulated/floor/tiled/dark, /area/horizon/service/bar/backroom) "oik" = ( @@ -111182,8 +111207,12 @@ /obj/effect/floor_decal/corner_wide/orange{ dir = 10 }, -/obj/effect/floor_decal/industrial/outline/medical, /obj/structure/closet/secure_closet/chemical, +/obj/item/modular_computer/laptop/preset/medical, +/obj/item/clothing/glasses/safety/goggles, +/obj/item/clothing/glasses/safety/goggles, +/obj/item/storage/box/gloves, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/white, /area/horizon/medical/pharmacy) "pSa" = ( @@ -112093,8 +112122,6 @@ /obj/effect/floor_decal/corner/dark_blue/full{ dir = 8 }, -/obj/structure/closet/wardrobe/red, -/obj/effect/floor_decal/industrial/outline/security, /obj/machinery/light{ dir = 1 }, @@ -112102,6 +112129,8 @@ c_tag = "Security - Equipment Room"; dir = 4 }, +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/vending/wardrobe/sec_wardrobe, /turf/simulated/floor/tiled, /area/horizon/security/equipment) "pZK" = ( @@ -112110,6 +112139,7 @@ dir = 10 }, /obj/structure/extinguisher_cabinet/west, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/carpet/rubber, /area/horizon/medical/pharmacy) "pZM" = ( @@ -118333,9 +118363,9 @@ /turf/simulated/floor/tiled/dark/full, /area/horizon/shuttle/intrepid/buffet) "qWp" = ( -/obj/machinery/vending/coffee, /obj/effect/floor_decal/corner/purple/full, /obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/vending/wardrobe/jani_wardrobe, /turf/simulated/floor/tiled, /area/horizon/service/custodial) "qWr" = ( @@ -118387,10 +118417,9 @@ /area/shuttle/mercenary) "qWy" = ( /obj/effect/floor_decal/corner/grey/diagonal, -/obj/structure/closet/chefcloset, -/obj/item/device/quikpay, -/obj/effect/floor_decal/industrial/outline/grey, /obj/effect/floor_decal/spline/plain/corner, +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/vending/wardrobe/chef_wardrobe, /turf/simulated/floor/tiled/white, /area/horizon/service/kitchen) "qWC" = ( @@ -120419,7 +120448,7 @@ /obj/effect/floor_decal/corner/yellow{ dir = 6 }, -/obj/effect/floor_decal/industrial/outline/operations, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled, /area/horizon/engineering/locker_room) "rlZ" = ( @@ -123855,8 +123884,8 @@ /turf/simulated/floor/tiled/white, /area/horizon/shuttle/intrepid/medical) "rLc" = ( -/obj/machinery/power/emitter, /obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/shieldgen, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/storage_hard) "rLi" = ( @@ -133261,12 +133290,8 @@ /obj/effect/floor_decal/corner_wide/orange{ dir = 10 }, -/obj/effect/floor_decal/industrial/outline/medical, -/obj/structure/closet/wardrobe/pharmacy_white, -/obj/item/storage/box/gloves, -/obj/item/clothing/glasses/safety/goggles, -/obj/item/clothing/glasses/safety/goggles, -/obj/item/modular_computer/laptop/preset/medical, +/obj/machinery/vending/wardrobe/chem_wardrobe, +/obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/white, /area/horizon/medical/pharmacy) "tav" = ( @@ -135767,6 +135792,7 @@ /obj/effect/floor_decal/corner/beige{ dir = 10 }, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/horizon/medical/icu) "tsJ" = ( @@ -143248,6 +143274,9 @@ /obj/structure/table/rack, /obj/random/hydroponics, /obj/random/hydroponics, +/obj/item/reagent_containers/glass/bucket, +/obj/random/hydroponics, +/obj/random/hydroponics, /obj/random/hydroponics, /obj/random/hydroponics, /obj/item/reagent_containers/glass/bucket, @@ -146698,7 +146727,8 @@ /obj/effect/floor_decal/corner/brown/full{ dir = 8 }, -/obj/random/pottedplant, +/obj/machinery/vending/wardrobe/cargo_wardrobe, +/obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled, /area/horizon/operations/office) "uUy" = ( @@ -148863,6 +148893,7 @@ dir = 8 }, /obj/machinery/vending/lavatory, +/obj/effect/floor_decal/industrial/hatch/grey, /turf/simulated/floor/tiled/white, /area/horizon/crew/washroom/deck_2) "vjq" = ( @@ -152130,11 +152161,11 @@ /turf/simulated/floor/tiled/dark, /area/horizon/hangar/intrepid) "vGa" = ( -/obj/effect/floor_decal/industrial/outline/medical, -/obj/structure/closet/secure_closet/personal, /obj/machinery/light{ dir = 4 }, +/obj/machinery/vending/wardrobe/medi_wardrobe, +/obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/full, /area/horizon/medical/washroom) "vGb" = ( @@ -168577,9 +168608,9 @@ /turf/simulated/floor/tiled/dark, /area/horizon/rnd/xenobiology/xenoflora) "xUo" = ( -/obj/machinery/shieldgen, /obj/effect/floor_decal/industrial/outline/yellow, /obj/machinery/light, +/obj/machinery/power/emitter, /turf/simulated/floor/tiled/dark/full, /area/horizon/engineering/storage_hard) "xUr" = ( @@ -169502,14 +169533,11 @@ /turf/simulated/floor/wood, /area/horizon/command/bridge/minibar) "ycF" = ( -/obj/structure/table/standard, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 13 - }, /obj/structure/sign/poster{ pixel_y = 32 }, -/obj/item/storage/box/fancy/donut, +/obj/machinery/vending/wardrobe/robo_wardrobe, +/obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/dark/full, /area/horizon/operations/machinist/surgicalbay) "ycJ" = ( @@ -169879,6 +169907,7 @@ /obj/effect/floor_decal/corner/beige{ dir = 6 }, +/obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/horizon/medical/gen_treatment) "yex" = ( @@ -207175,7 +207204,7 @@ bCt gmT oGR plU -uwp +aLN uEI hWP upH @@ -207689,7 +207718,7 @@ gOA gga aUk kZw -uwp +gQy uEI pNi eQS @@ -248753,7 +248782,7 @@ eSV eSV eSV eSV -gQy +eSV eSV eSV eSV @@ -261611,7 +261640,7 @@ dpV ydR dRW rLc -rLc +gXE fov xoO oJM @@ -261867,7 +261896,7 @@ cQy moc uIe viJ -gXE +rLc xUo fov viv diff --git a/tgui/packages/tgui/interfaces/Vending.tsx b/tgui/packages/tgui/interfaces/Vending.tsx index 0cf465acdbd..40aaae4d0ae 100644 --- a/tgui/packages/tgui/interfaces/Vending.tsx +++ b/tgui/packages/tgui/interfaces/Vending.tsx @@ -12,6 +12,7 @@ export type VendingData = { sel_icon: string; message: string; message_err: string; + display_ad: string; products: Product[]; coin: string; @@ -38,6 +39,7 @@ export const Vending = (props, context) => { return ( + {data.display_ad}
{data.vending_item && data.sel_price !== 0 ? (