From 3b19e416db2a65e83f94ae243d3463608b099765 Mon Sep 17 00:00:00 2001 From: "musketstgstation@gmail.com" Date: Sat, 11 Dec 2010 01:03:38 +0000 Subject: [PATCH] Moved vending machines and supply packs to their own defines files so they're not cluttered in with other things. Especially the supply packs, they were defines halfway down the file holding the related procs. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@587 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/obj/machinery.dm | 146 -------------- code/defines/obj/supplypacks.dm | 347 +++++++++++++++++++++++++++++++ code/defines/obj/vending.dm | 144 +++++++++++++ code/game/supplyshuttle.dm | 348 +------------------------------- goonstation.dme | 2 + 5 files changed, 494 insertions(+), 493 deletions(-) create mode 100644 code/defines/obj/supplypacks.dm create mode 100644 code/defines/obj/vending.dm diff --git a/code/defines/obj/machinery.dm b/code/defines/obj/machinery.dm index 107a1fce6e..741bfc5e4f 100644 --- a/code/defines/obj/machinery.dm +++ b/code/defines/obj/machinery.dm @@ -520,152 +520,6 @@ var/otherarea = null var/id = 1 - -/obj/machinery/vending - name = "Vendomat" - desc = "A generic vending machine." - icon = 'vending.dmi' - icon_state = "generic" - anchored = 1 - density = 1 - var/active = 1 //No sales pitches if off! - var/vend_ready = 1 //Are we ready to vend?? Is it time?? - var/vend_delay = 10 //How long does it take to vend? - var/product_paths = "" //String of product paths separated by semicolons. No spaces! - var/product_amounts = "" //String of product amounts separated by semicolons, must have amount for every path in product_paths - var/product_slogans = "" //String of slogans separated by semicolons, optional - var/product_hidden = "" //String of products that are hidden unless hacked. - var/product_hideamt = "" //String of hidden product amounts, separated by semicolons. Exact same as amounts. Must be left blank if hidden is. - var/list/product_records = list() - var/list/hidden_records = list() - var/list/slogan_list = list() - var/vend_reply //Thank you for shopping! - var/last_reply = 0 - var/last_slogan = 0 //When did we last pitch? - var/slogan_delay = 600 //How long until we can pitch again? - var/icon_vend //Icon_state when vending! - var/icon_deny //Icon_state when vending! - var/emagged = 0 //Ignores if somebody doesn't have card access to that machine. - var/seconds_electrified = 0 //Shock customers like an airlock. - var/shoot_inventory = 0 //Fire items at customers! We're broken! - var/extended_inventory = 0 //can we access the hidden inventory? - var/panel_open = 0 //Hacking that vending machine. Gonna get a free candy bar. - var/wires = 15 - -/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 - product_paths = "/obj/item/weapon/reagent_containers/food/drinks/bottle/gin;/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey;/obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla;/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka;/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth;/obj/item/weapon/reagent_containers/food/drinks/bottle/rum;/obj/item/weapon/reagent_containers/food/drinks/bottle/wine;/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac;/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua;/obj/item/weapon/reagent_containers/food/drinks/beer;/obj/item/weapon/reagent_containers/food/drinks/ale;/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice;/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice;/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice;/obj/item/weapon/reagent_containers/food/drinks/bottle/cream;/obj/item/weapon/reagent_containers/food/drinks/tonic;/obj/item/weapon/reagent_containers/food/drinks/cola;/obj/item/weapon/reagent_containers/food/drinks/sodawater;/obj/item/weapon/reagent_containers/food/drinks/drinkingglass" - product_amounts = "5;5;5;5;5;5;5;5;5;6;6;4;4;4;4;8;8;8;30" - vend_delay = 15 - product_hidden = "/obj/item/weapon/reagent_containers/food/drinks/coffee" - product_hideamt = "10" - product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Quite delighted to serve you!;Is nobody thirsty on this station?" - -/obj/machinery/vending/assist - product_amounts = "5;3;4;1;4" - product_hidden = "/obj/item/device/flashlight;obj/item/device/timer" - product_paths = "/obj/item/device/prox_sensor;/obj/item/device/igniter;/obj/item/device/radio/signaler;/obj/item/weapon/wirecutters;/obj/item/weapon/cartridge/signal" - product_hideamt = "5;2" - -/obj/machinery/vending/coffee - name = "coffee machine" - desc = "A Robust Coffee vending machine." - icon_state = "coffee" - icon_vend = "coffee-vend" - product_paths = "/obj/item/weapon/reagent_containers/food/drinks/coffee" - product_amounts = "25" - vend_delay = 34 - product_hidden = "/obj/item/weapon/reagent_containers/food/drinks/cola" - product_hideamt = "5" - -/obj/machinery/vending/snack - name = "Getmore Chocolate Corp" - desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars" - icon_state = "snack" - product_paths = "/obj/item/weapon/reagent_containers/food/snacks/candy;/obj/item/weapon/reagent_containers/food/snacks/chips;/obj/item/weapon/reagent_containers/food/snacks/sosjerky;/obj/item/weapon/reagent_containers/food/snacks/no_raisin;/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie;/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers" - product_amounts = "10;10;10;10;10;10" - product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" - product_hidden = "/obj/item/weapon/reagent_containers/food/snacks/syndicake" - product_hideamt = "10" - - -/obj/machinery/vending/cola - name = "Robust Softdrinks" - desc = "A softdrink vendor provided by Robust Industries, LLC." - icon_state = "Cola_Machine" - product_paths = "/obj/item/weapon/reagent_containers/food/drinks/cola;/obj/item/weapon/reagent_containers/food/drinks/space_mountain_wind;/obj/item/weapon/reagent_containers/food/drinks/dr_gibb;/obj/item/weapon/reagent_containers/food/drinks/starkist;/obj/item/weapon/reagent_containers/food/drinks/space_up" - product_amounts = "10;10;10;10;10" - product_slogans = "Robust Softdrinks: More robust then a toolbox to the head!" - product_hidden = "/obj/item/weapon/reagent_containers/food/drinks/thirteenloko" - product_hideamt = "5" - -/obj/machinery/vending/cigarette - name = "cigarette machine" - desc = "If you want to get cancer, might as well do it in style" - icon_state = "cigs" - product_paths = "/obj/item/weapon/cigpacket" - product_amounts = "10" - product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" - vend_delay = 34 - product_hidden = "/obj/item/weapon/zippo" - product_hideamt = "3" - -/obj/machinery/vending/medical - name = "NanoMed Plus" - desc = "Medical drug dispenser." - icon_state = "med" - icon_deny = "med-deny" - req_access_txt = "5" - product_paths = "/obj/item/weapon/reagent_containers/glass/bottle/antitoxin;/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline;/obj/item/weapon/reagent_containers/glass/bottle/stoxin;/obj/item/weapon/reagent_containers/glass/bottle/toxin;/obj/item/weapon/reagent_containers/syringe/antiviral;/obj/item/weapon/reagent_containers/syringe" - product_amounts = "4;4;4;4;8;12" - product_hidden = "/obj/item/weapon/reagent_containers/pill/tox;/obj/item/device/healthanalyzer" - product_hideamt = "3;10" - -/obj/machinery/vending/security - name = "SecTech" - desc = "A security equipment vendor" - icon_state = "sec" - icon_deny = "sec-deny" - req_access_txt = "1" - product_paths = "/obj/item/weapon/handcuffs;/obj/item/weapon/flashbang;/obj/item/device/flash" - product_amounts = "8;2;5" - //product_amounts = "8;5;4" Old totals - product_hidden = "/obj/item/clothing/head/helmet" - product_hideamt = "2" - -/obj/machinery/vending/hydronutrients - name = "NutriMax" - desc = "A plant nutrients vendor" - icon_state = "nutri" - icon_deny = "nutri-deny" - product_paths = "/obj/item/nutrient/ez;/obj/item/nutrient/l4z;/obj/item/nutrient/rh" - product_amounts = "35;25;15" - product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" - -/obj/machinery/vending/hydroseeds - name = "MegaSeed Servitor" - desc = "When you need seeds fast!" - icon_state = "seeds" - product_paths = "/obj/item/seeds/cornseed;/obj/item/seeds/chiliseed;/obj/item/seeds/berryseed;/obj/item/seeds/eggplantseed;/obj/item/seeds/tomatoseed;/obj/item/seeds/wheatseed;/obj/item/seeds/soyaseed;/obj/item/seeds/carrotseed;/obj/item/seeds/potatoseed;/obj/item/seeds/chantermycelium" - product_amounts = "2;2;2;2;2;2;2;2;2;2" - 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_hidden = "/obj/item/seeds/amanitamycelium;/obj/item/seeds/libertymycelium;/obj/item/seeds/nettleseed;/obj/item/seeds/plumpmycelium" - product_hideamt = "1;2;2;2" - -/obj/machinery/vending/magivend - name = "MagiVend" - desc = "A magic vending machine." - icon_state = "MagiVend" - product_amounts = "1;1;1;2" - product_slogans = "Sling spells the proper way with MagiVend!;Be your own Houdini! Use MagiVend!" - product_paths = "/obj/item/clothing/head/wizard;/obj/item/clothing/suit/wizrobe;/obj/item/clothing/shoes/sandal;/obj/item/weapon/staff" - vend_delay = 15 - vend_reply = "Have an enchanted evening!" - product_hidden = "/obj/item/clothing/head/wizard/red;/obj/item/clothing/suit/wizrobe/red" - product_hideamt = "1;1" - /obj/machinery/microwave name = "Microwave" icon = 'kitchen.dmi' diff --git a/code/defines/obj/supplypacks.dm b/code/defines/obj/supplypacks.dm new file mode 100644 index 0000000000..883bd50976 --- /dev/null +++ b/code/defines/obj/supplypacks.dm @@ -0,0 +1,347 @@ +//SUPPLY PACKS +//NOTE: only secure crate types use the access var (and are lockable) +//NOTE: hidden packs only show up when the computer has been hacked. + +/datum/supply_packs/specialops + name = "Special Ops supplies" + contains = list("/obj/item/weapon/storage/emp_kit", + "/obj/item/weapon/smokebomb", + "/obj/item/weapon/smokebomb", + "/obj/item/weapon/smokebomb", + "/obj/item/weapon/pen/sleepypen", + "/obj/item/weapon/incendiarygrenade") + cost = 20 + containertype = "/obj/crate" + containername = "Special Ops crate" + hidden = 1 + +/datum/supply_packs/wizard + name = "Wizard costume" + contains = list("/obj/item/weapon/staff", + "/obj/item/clothing/suit/wizrobe_fake", + "/obj/item/clothing/shoes/sandal", + "/obj/item/clothing/head/wizard_fake") + cost = 20 + containertype = "/obj/crate" + containername = "Wizard costume crate" + +/datum/supply_packs/metal50 + name = "50 Metal Sheets" + contains = list("/obj/item/weapon/sheet/metal") + amount = 50 + cost = 15 + containertype = "/obj/crate" + containername = "Metal sheets crate" + +/datum/supply_packs/glass50 + name = "50 Glass Sheets" + contains = list("/obj/item/weapon/sheet/glass") + amount = 50 + cost = 15 + containertype = "/obj/crate" + containername = "Glass sheets crate" + +/datum/supply_packs/internals + name = "Internals crate" + contains = list("/obj/item/clothing/mask/gas", + "/obj/item/clothing/mask/gas", + "/obj/item/clothing/mask/gas", + "/obj/item/weapon/tank/air", + "/obj/item/weapon/tank/air", + "/obj/item/weapon/tank/air") + cost = 10 + containertype = "/obj/crate/internals" + containername = "Internals crate" + +/datum/supply_packs/food + name = "Food crate" + contains = list("/obj/item/weapon/reagent_containers/food/snacks/flour", + "/obj/item/weapon/reagent_containers/food/snacks/flour", + "/obj/item/weapon/reagent_containers/food/snacks/flour", + "/obj/item/weapon/reagent_containers/food/snacks/faggot", + "/obj/item/weapon/reagent_containers/food/snacks/faggot", + "/obj/item/weapon/reagent_containers/food/snacks/faggot", + "/obj/item/kitchen/egg_box", + "/obj/item/weapon/storage/condimentbottles", + "/obj/item/weapon/banana", + "/obj/item/weapon/banana", + "/obj/item/weapon/banana") + cost = 5 + containertype = "/obj/crate/freezer" + containername = "Food crate" + +/datum/supply_packs/monkey + name = "Monkey crate" + contains = list("/mob/living/carbon/monkey", + "/mob/living/carbon/monkey", + "/mob/living/carbon/monkey", + "/mob/living/carbon/monkey", + "/mob/living/carbon/monkey") + cost = 20 + containertype = "/obj/crate/freezer" + containername = "Monkey crate" + +/datum/supply_packs/engineering + name = "Engineering crate" + contains = list("/obj/item/weapon/storage/toolbox/electrical", + "/obj/item/weapon/storage/toolbox/electrical", + "/obj/item/clothing/head/helmet/welding", + "/obj/item/clothing/head/helmet/welding", + "/obj/item/weapon/cell", // -- TLE + "/obj/item/weapon/cell", + "/obj/item/clothing/gloves/yellow", + "/obj/item/clothing/gloves/yellow") + cost = 5 + containertype = "/obj/crate" + containername = "Engineering crate" + +/datum/supply_packs/medical + name = "Medical crate" + contains = list("/obj/item/weapon/storage/firstaid/regular", + "/obj/item/weapon/storage/firstaid/fire", + "/obj/item/weapon/storage/firstaid/toxin", + "/obj/item/weapon/reagent_containers/glass/bottle/antitoxin", + "/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline", + "/obj/item/weapon/reagent_containers/glass/bottle/stoxin", + "/obj/item/weapon/storage/firstaid/syringes") + cost = 10 + containertype = "/obj/crate/medical" + containername = "Medical crate" + + +/datum/supply_packs/virus + name = "Virus crate" + contains = list("/obj/item/weapon/reagent_containers/glass/bottle/flu_virion", + "/obj/item/weapon/reagent_containers/glass/bottle/cold", + "/obj/item/weapon/reagent_containers/glass/bottle/fake_gbs", + "/obj/item/weapon/reagent_containers/glass/bottle/magnitis", +// "/obj/item/weapon/reagent_containers/glass/bottle/wizarditis", worse than GBS if anything +// "/obj/item/weapon/reagent_containers/glass/bottle/gbs", No. Just no. + "/obj/item/weapon/reagent_containers/glass/bottle/brainrot", + "/obj/item/weapon/storage/firstaid/syringes", + "/obj/item/weapon/storage/beakerbox") + cost = 20 + containertype = "/obj/crate/secure/weapon" + containername = "Virus crate" + access = access_heads + + +/datum/supply_packs/janitor + name = "Janitorial supplies" + contains = list("/obj/item/weapon/reagent_containers/glass/bucket", + "/obj/item/weapon/reagent_containers/glass/bucket", + "/obj/item/weapon/reagent_containers/glass/bucket", + "/obj/item/weapon/mop", + "/obj/item/weapon/caution", + "/obj/item/weapon/caution", + "/obj/item/weapon/caution", + "/obj/item/weapon/cleaner", + "/obj/item/weapon/chem_grenade/cleaner", + "/obj/item/weapon/chem_grenade/cleaner", + "/obj/item/weapon/chem_grenade/cleaner", + "/obj/mopbucket") + cost = 10 + containertype = "/obj/crate" + containername = "Janitorial supplies" + +/obj/item/weapon/storage/lightbox/tubes + +/datum/supply_packs/lightbulbs + name = "Replacement lights" + contains = list("/obj/item/weapon/storage/lightbox/tubes", + "/obj/item/weapon/storage/lightbox/tubes", + "/obj/item/weapon/storage/lightbox/tubes", + "/obj/item/weapon/storage/lightbox/tubes", + "/obj/item/weapon/storage/lightbox", + "/obj/item/weapon/storage/lightbox", + "/obj/item/weapon/storage/lightbox", + "/obj/item/weapon/storage/lightbox") + cost = 10 + containertype = "/obj/crate" + containername = "Replacement lights" + +/datum/supply_packs/plasma + name = "Plasma assembly crate" + contains = list("/obj/item/weapon/tank/plasma", + "/obj/item/weapon/tank/plasma", + "/obj/item/weapon/tank/plasma", + "/obj/item/device/igniter", + "/obj/item/device/igniter", + "/obj/item/device/igniter", + "/obj/item/device/prox_sensor", + "/obj/item/device/prox_sensor", + "/obj/item/device/prox_sensor", + "/obj/item/device/timer", + "/obj/item/device/timer", + "/obj/item/device/timer") + cost = 10 + containertype = "/obj/crate/secure/plasma" + containername = "Plasma assembly crate" + access = access_tox + +/datum/supply_packs/weapons + name = "Weapons crate" + contains = list("/obj/item/weapon/baton", + "/obj/item/weapon/baton", + "/obj/item/weapon/gun/energy/laser_gun", + "/obj/item/weapon/gun/energy/laser_gun", + "/obj/item/weapon/gun/energy/taser_gun", + "/obj/item/weapon/gun/energy/taser_gun", + "/obj/item/weapon/storage/flashbang_kit", + "/obj/item/weapon/storage/flashbang_kit") + cost = 20 + containertype = "/obj/crate/secure/weapon" + containername = "Weapons crate" + access = access_security + +/datum/supply_packs/eweapons + name = "Experimental weapons crate" + contains = list("/obj/item/weapon/flamethrower", + "/obj/item/weapon/tank/plasma", + "/obj/item/weapon/tank/plasma", + "/obj/item/weapon/tank/plasma", + "/obj/item/weapon/incendiarygrenade", + "/obj/item/weapon/incendiarygrenade", + "/obj/item/weapon/incendiarygrenade", + "/obj/item/clothing/gloves/stungloves") + cost = 25 + containertype = "/obj/crate/secure/weapon" + containername = "Experimental weapons crate" + access = access_heads + +/datum/supply_packs/riot + name = "Riot crate" + contains = list("/obj/item/weapon/baton", + "/obj/item/weapon/baton", + "/obj/item/weapon/shield/riot", + "/obj/item/weapon/shield/riot", + "/obj/item/weapon/storage/flashbang_kit", + "/obj/item/weapon/storage/flashbang_kit", + "/obj/item/weapon/handcuffs", + "/obj/item/weapon/handcuffs") + cost = 30 + containertype = "/obj/crate/secure/gear" + containername = "Riot crate" + access = access_security + +/datum/supply_packs/evacuation + name = "Emergency equipment" + contains = list("/obj/machinery/bot/floorbot", + "/obj/machinery/bot/floorbot", + "/obj/machinery/bot/floorbot", + "/obj/machinery/bot/floorbot", + "/obj/item/weapon/tank/air", + "/obj/item/weapon/tank/air", + "/obj/item/weapon/tank/air", + "/obj/item/weapon/tank/air", + "/obj/item/weapon/tank/air", + "/obj/item/clothing/mask/gas", + "/obj/item/clothing/mask/gas", + "/obj/item/clothing/mask/gas", + "/obj/item/clothing/mask/gas", + "/obj/item/clothing/mask/gas") + cost = 35 + containertype = "/obj/crate/internals" + containername = "Emergency Crate" + +/datum/supply_packs/party + name = "Party equipment" + contains = list("/obj/item/weapon/reagent_containers/food/drinks/beer", + "/obj/item/weapon/reagent_containers/food/drinks/beer", + "/obj/item/weapon/reagent_containers/food/drinks/beer", + "/obj/item/weapon/reagent_containers/food/drinks/beer", + "/obj/item/weapon/reagent_containers/food/drinks/beer", + "/obj/item/weapon/reagent_containers/food/drinks/beer", + "/obj/item/weapon/reagent_containers/food/drinks/beer", + "/obj/item/weapon/reagent_containers/food/drinks/beer") + cost = 20 + containertype = "/obj/crate" + containername = "Party equipment" +/* +/datum/supply_packs/hats + name = "Clown Gear" + contains = list("/obj/item/clothing/head/that", + "/obj/item/clothing/under/psyche", + "/obj/item/clothing/under/johnny", + "/obj/item/clothing/under/mario", + "/obj/item/clothing/under/luigi", + "/obj/item/clothing/head/butt") + cost = 20 + containertype = "/obj/crate" + containername = "Clown Gear" +*/ + +/datum/supply_packs/mule + name = "MULEbot Crate" + contains = list("/obj/machinery/bot/mulebot") + cost = 20 + containertype = "/obj/crate" + containername = "MULEbot Crate" + +/datum/supply_packs/robotics + name = "Robotics Assembly Crate" + contains = list("/obj/item/device/prox_sensor", + "/obj/item/device/prox_sensor", + "/obj/item/device/prox_sensor", + "/obj/item/weapon/storage/toolbox/electrical", + "/obj/item/device/flash", + "/obj/item/device/flash", + "/obj/item/device/flash", + "/obj/item/device/flash", + "/obj/item/weapon/cell/robotcrate", + "/obj/item/weapon/cell/robotcrate") + cost = 10 + containertype = /obj/crate/secure/gear + containername = "Robotics Assembly" + access = access_robotics + +/datum/supply_packs/hydroponics // -- Skie + name = "Hydroponics Supply Crate" + contains = list("/obj/item/weapon/plantbgone", + "/obj/item/weapon/plantbgone", + "/obj/item/weapon/plantbgone", + "/obj/item/weapon/plantbgone", +// "/obj/item/weapon/weedspray", +// "/obj/item/weapon/weedspray", +// "/obj/item/weapon/pestspray", +// "/obj/item/weapon/pestspray", + "/obj/item/weapon/minihoe", + "/obj/item/device/analyzer/plant_analyzer", + "/obj/item/clothing/gloves/latex", + "/obj/item/clothing/gloves/latex") // For handling nettles etc + cost = 10 + containertype = /obj/crate/hydroponics + containername = "Hydroponics crate" + access = access_hydroponics + +/datum/supply_packs/seeds + name = "Seeds Crate" + contains = list("/obj/item/seeds/chiliseed", + "/obj/item/seeds/berryseed", + "/obj/item/seeds/eggplantseed", + "/obj/item/seeds/tomatoseed", + "/obj/item/seeds/soyaseed", + "/obj/item/seeds/wheatseed", + "/obj/item/seeds/carrotseed", + "/obj/item/seeds/chantermycelium", + "/obj/item/seeds/potatoseed") + cost = 10 + containertype = /obj/crate/hydroponics + containername = "Seeds crate" + access = access_hydroponics + + +/datum/supply_packs/exoticseeds + name = "Exotic Seeds Crate" + contains = list("/obj/item/seeds/nettleseed", + "/obj/item/seeds/plumpmycelium", + "/obj/item/seeds/libertymycelium", + "/obj/item/seeds/amanitamycelium", + "/obj/item/seeds/eggyseed") + cost = 15 + containertype = /obj/crate/hydroponics + containername = "Exotic Seeds crate" + access = access_hydroponics + + +//SUPPLY PACKS \ No newline at end of file diff --git a/code/defines/obj/vending.dm b/code/defines/obj/vending.dm new file mode 100644 index 0000000000..1baeedbcca --- /dev/null +++ b/code/defines/obj/vending.dm @@ -0,0 +1,144 @@ +/obj/machinery/vending + name = "Vendomat" + desc = "A generic vending machine." + icon = 'vending.dmi' + icon_state = "generic" + anchored = 1 + density = 1 + var/active = 1 //No sales pitches if off! + var/vend_ready = 1 //Are we ready to vend?? Is it time?? + var/vend_delay = 10 //How long does it take to vend? + var/product_paths = "" //String of product paths separated by semicolons. No spaces! + var/product_amounts = "" //String of product amounts separated by semicolons, must have amount for every path in product_paths + var/product_slogans = "" //String of slogans separated by semicolons, optional + var/product_hidden = "" //String of products that are hidden unless hacked. + var/product_hideamt = "" //String of hidden product amounts, separated by semicolons. Exact same as amounts. Must be left blank if hidden is. + var/list/product_records = list() + var/list/hidden_records = list() + var/list/slogan_list = list() + var/vend_reply //Thank you for shopping! + var/last_reply = 0 + var/last_slogan = 0 //When did we last pitch? + var/slogan_delay = 600 //How long until we can pitch again? + var/icon_vend //Icon_state when vending! + var/icon_deny //Icon_state when vending! + var/emagged = 0 //Ignores if somebody doesn't have card access to that machine. + var/seconds_electrified = 0 //Shock customers like an airlock. + var/shoot_inventory = 0 //Fire items at customers! We're broken! + var/extended_inventory = 0 //can we access the hidden inventory? + var/panel_open = 0 //Hacking that vending machine. Gonna get a free candy bar. + var/wires = 15 + +/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 + product_paths = "/obj/item/weapon/reagent_containers/food/drinks/bottle/gin;/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey;/obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla;/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka;/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth;/obj/item/weapon/reagent_containers/food/drinks/bottle/rum;/obj/item/weapon/reagent_containers/food/drinks/bottle/wine;/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac;/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua;/obj/item/weapon/reagent_containers/food/drinks/beer;/obj/item/weapon/reagent_containers/food/drinks/ale;/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice;/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice;/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice;/obj/item/weapon/reagent_containers/food/drinks/bottle/cream;/obj/item/weapon/reagent_containers/food/drinks/tonic;/obj/item/weapon/reagent_containers/food/drinks/cola;/obj/item/weapon/reagent_containers/food/drinks/sodawater;/obj/item/weapon/reagent_containers/food/drinks/drinkingglass" + product_amounts = "5;5;5;5;5;5;5;5;5;6;6;4;4;4;4;8;8;8;30" + vend_delay = 15 + product_hidden = "/obj/item/weapon/reagent_containers/food/drinks/coffee" + product_hideamt = "10" + product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Quite delighted to serve you!;Is nobody thirsty on this station?" + +/obj/machinery/vending/assist + product_amounts = "5;3;4;1;4" + product_hidden = "/obj/item/device/flashlight;obj/item/device/timer" + product_paths = "/obj/item/device/prox_sensor;/obj/item/device/igniter;/obj/item/device/radio/signaler;/obj/item/weapon/wirecutters;/obj/item/weapon/cartridge/signal" + product_hideamt = "5;2" + +/obj/machinery/vending/coffee + name = "coffee machine" + desc = "A Robust Coffee vending machine." + icon_state = "coffee" + icon_vend = "coffee-vend" + product_paths = "/obj/item/weapon/reagent_containers/food/drinks/coffee" + product_amounts = "25" + vend_delay = 34 + product_hidden = "/obj/item/weapon/reagent_containers/food/drinks/cola" + product_hideamt = "5" + +/obj/machinery/vending/snack + name = "Getmore Chocolate Corp" + desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars" + icon_state = "snack" + product_paths = "/obj/item/weapon/reagent_containers/food/snacks/candy;/obj/item/weapon/reagent_containers/food/snacks/chips;/obj/item/weapon/reagent_containers/food/snacks/sosjerky;/obj/item/weapon/reagent_containers/food/snacks/no_raisin;/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie;/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers" + product_amounts = "10;10;10;10;10;10" + product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" + product_hidden = "/obj/item/weapon/reagent_containers/food/snacks/syndicake" + product_hideamt = "10" + + +/obj/machinery/vending/cola + name = "Robust Softdrinks" + desc = "A softdrink vendor provided by Robust Industries, LLC." + icon_state = "Cola_Machine" + product_paths = "/obj/item/weapon/reagent_containers/food/drinks/cola;/obj/item/weapon/reagent_containers/food/drinks/space_mountain_wind;/obj/item/weapon/reagent_containers/food/drinks/dr_gibb;/obj/item/weapon/reagent_containers/food/drinks/starkist;/obj/item/weapon/reagent_containers/food/drinks/space_up" + product_amounts = "10;10;10;10;10" + product_slogans = "Robust Softdrinks: More robust then a toolbox to the head!" + product_hidden = "/obj/item/weapon/reagent_containers/food/drinks/thirteenloko" + product_hideamt = "5" + +/obj/machinery/vending/cigarette + name = "cigarette machine" + desc = "If you want to get cancer, might as well do it in style" + icon_state = "cigs" + product_paths = "/obj/item/weapon/cigpacket" + product_amounts = "10" + product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" + vend_delay = 34 + product_hidden = "/obj/item/weapon/zippo" + product_hideamt = "3" + +/obj/machinery/vending/medical + name = "NanoMed Plus" + desc = "Medical drug dispenser." + icon_state = "med" + icon_deny = "med-deny" + req_access_txt = "5" + product_paths = "/obj/item/weapon/reagent_containers/glass/bottle/antitoxin;/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline;/obj/item/weapon/reagent_containers/glass/bottle/stoxin;/obj/item/weapon/reagent_containers/glass/bottle/toxin;/obj/item/weapon/reagent_containers/syringe/antiviral;/obj/item/weapon/reagent_containers/syringe" + product_amounts = "4;4;4;4;8;12" + product_hidden = "/obj/item/weapon/reagent_containers/pill/tox;/obj/item/device/healthanalyzer" + product_hideamt = "3;10" + +/obj/machinery/vending/security + name = "SecTech" + desc = "A security equipment vendor" + icon_state = "sec" + icon_deny = "sec-deny" + req_access_txt = "1" + product_paths = "/obj/item/weapon/handcuffs;/obj/item/weapon/flashbang;/obj/item/device/flash" + product_amounts = "8;2;5" + //product_amounts = "8;5;4" Old totals + product_hidden = "/obj/item/clothing/head/helmet" + product_hideamt = "2" + +/obj/machinery/vending/hydronutrients + name = "NutriMax" + desc = "A plant nutrients vendor" + icon_state = "nutri" + icon_deny = "nutri-deny" + product_paths = "/obj/item/nutrient/ez;/obj/item/nutrient/l4z;/obj/item/nutrient/rh" + product_amounts = "35;25;15" + product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" + +/obj/machinery/vending/hydroseeds + name = "MegaSeed Servitor" + desc = "When you need seeds fast!" + icon_state = "seeds" + product_paths = "/obj/item/seeds/cornseed;/obj/item/seeds/chiliseed;/obj/item/seeds/berryseed;/obj/item/seeds/eggplantseed;/obj/item/seeds/tomatoseed;/obj/item/seeds/wheatseed;/obj/item/seeds/soyaseed;/obj/item/seeds/carrotseed;/obj/item/seeds/potatoseed;/obj/item/seeds/chantermycelium" + product_amounts = "2;2;2;2;2;2;2;2;2;2" + 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_hidden = "/obj/item/seeds/amanitamycelium;/obj/item/seeds/libertymycelium;/obj/item/seeds/nettleseed;/obj/item/seeds/plumpmycelium" + product_hideamt = "1;2;2;2" + +/obj/machinery/vending/magivend + name = "MagiVend" + desc = "A magic vending machine." + icon_state = "MagiVend" + product_amounts = "1;1;1;2" + product_slogans = "Sling spells the proper way with MagiVend!;Be your own Houdini! Use MagiVend!" + product_paths = "/obj/item/clothing/head/wizard;/obj/item/clothing/suit/wizrobe;/obj/item/clothing/shoes/sandal;/obj/item/weapon/staff" + vend_delay = 15 + vend_reply = "Have an enchanted evening!" + product_hidden = "/obj/item/clothing/head/wizard/red;/obj/item/clothing/suit/wizrobe/red" + product_hideamt = "1;1" \ No newline at end of file diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index ed9bd2360f..88086131d4 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -33,353 +33,7 @@ var/ordernum=0 sd_lighting = 0 requires_power = 0 -//SUPPLY PACKS -//NOTE: only secure crate types use the access var (and are lockable) -//NOTE: hidden packs only show up when the computer has been hacked. - -/datum/supply_packs/specialops - name = "Special Ops supplies" - contains = list("/obj/item/weapon/storage/emp_kit", - "/obj/item/weapon/smokebomb", - "/obj/item/weapon/smokebomb", - "/obj/item/weapon/smokebomb", - "/obj/item/weapon/pen/sleepypen", - "/obj/item/weapon/incendiarygrenade") - cost = 20 - containertype = "/obj/crate" - containername = "Special Ops crate" - hidden = 1 - -/datum/supply_packs/wizard - name = "Wizard costume" - contains = list("/obj/item/weapon/staff", - "/obj/item/clothing/suit/wizrobe_fake", - "/obj/item/clothing/shoes/sandal", - "/obj/item/clothing/head/wizard_fake") - cost = 20 - containertype = "/obj/crate" - containername = "Wizard costume crate" - -/datum/supply_packs/metal50 - name = "50 Metal Sheets" - contains = list("/obj/item/weapon/sheet/metal") - amount = 50 - cost = 15 - containertype = "/obj/crate" - containername = "Metal sheets crate" - -/datum/supply_packs/glass50 - name = "50 Glass Sheets" - contains = list("/obj/item/weapon/sheet/glass") - amount = 50 - cost = 15 - containertype = "/obj/crate" - containername = "Glass sheets crate" - -/datum/supply_packs/internals - name = "Internals crate" - contains = list("/obj/item/clothing/mask/gas", - "/obj/item/clothing/mask/gas", - "/obj/item/clothing/mask/gas", - "/obj/item/weapon/tank/air", - "/obj/item/weapon/tank/air", - "/obj/item/weapon/tank/air") - cost = 10 - containertype = "/obj/crate/internals" - containername = "Internals crate" - -/datum/supply_packs/food - name = "Food crate" - contains = list("/obj/item/weapon/reagent_containers/food/snacks/flour", - "/obj/item/weapon/reagent_containers/food/snacks/flour", - "/obj/item/weapon/reagent_containers/food/snacks/flour", - "/obj/item/weapon/reagent_containers/food/snacks/faggot", - "/obj/item/weapon/reagent_containers/food/snacks/faggot", - "/obj/item/weapon/reagent_containers/food/snacks/faggot", - "/obj/item/kitchen/egg_box", - "/obj/item/weapon/storage/condimentbottles", - "/obj/item/weapon/banana", - "/obj/item/weapon/banana", - "/obj/item/weapon/banana") - cost = 5 - containertype = "/obj/crate/freezer" - containername = "Food crate" - -/datum/supply_packs/monkey - name = "Monkey crate" - contains = list("/mob/living/carbon/monkey", - "/mob/living/carbon/monkey", - "/mob/living/carbon/monkey", - "/mob/living/carbon/monkey", - "/mob/living/carbon/monkey") - cost = 20 - containertype = "/obj/crate/freezer" - containername = "Monkey crate" - -/datum/supply_packs/engineering - name = "Engineering crate" - contains = list("/obj/item/weapon/storage/toolbox/electrical", - "/obj/item/weapon/storage/toolbox/electrical", - "/obj/item/clothing/head/helmet/welding", - "/obj/item/clothing/head/helmet/welding", - "/obj/item/weapon/cell", // -- TLE - "/obj/item/weapon/cell", - "/obj/item/clothing/gloves/yellow", - "/obj/item/clothing/gloves/yellow") - cost = 5 - containertype = "/obj/crate" - containername = "Engineering crate" - -/datum/supply_packs/medical - name = "Medical crate" - contains = list("/obj/item/weapon/storage/firstaid/regular", - "/obj/item/weapon/storage/firstaid/fire", - "/obj/item/weapon/storage/firstaid/toxin", - "/obj/item/weapon/reagent_containers/glass/bottle/antitoxin", - "/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline", - "/obj/item/weapon/reagent_containers/glass/bottle/stoxin", - "/obj/item/weapon/storage/firstaid/syringes") - cost = 10 - containertype = "/obj/crate/medical" - containername = "Medical crate" - - -/datum/supply_packs/virus - name = "Virus crate" - contains = list("/obj/item/weapon/reagent_containers/glass/bottle/flu_virion", - "/obj/item/weapon/reagent_containers/glass/bottle/cold", - "/obj/item/weapon/reagent_containers/glass/bottle/fake_gbs", - "/obj/item/weapon/reagent_containers/glass/bottle/magnitis", -// "/obj/item/weapon/reagent_containers/glass/bottle/wizarditis", worse than GBS if anything -// "/obj/item/weapon/reagent_containers/glass/bottle/gbs", No. Just no. - "/obj/item/weapon/reagent_containers/glass/bottle/brainrot", - "/obj/item/weapon/storage/firstaid/syringes", - "/obj/item/weapon/storage/beakerbox") - cost = 20 - containertype = "/obj/crate/secure/weapon" - containername = "Virus crate" - access = access_heads - - -/datum/supply_packs/janitor - name = "Janitorial supplies" - contains = list("/obj/item/weapon/reagent_containers/glass/bucket", - "/obj/item/weapon/reagent_containers/glass/bucket", - "/obj/item/weapon/reagent_containers/glass/bucket", - "/obj/item/weapon/mop", - "/obj/item/weapon/caution", - "/obj/item/weapon/caution", - "/obj/item/weapon/caution", - "/obj/item/weapon/cleaner", - "/obj/item/weapon/chem_grenade/cleaner", - "/obj/item/weapon/chem_grenade/cleaner", - "/obj/item/weapon/chem_grenade/cleaner", - "/obj/mopbucket") - cost = 10 - containertype = "/obj/crate" - containername = "Janitorial supplies" - -/obj/item/weapon/storage/lightbox/tubes - -/datum/supply_packs/lightbulbs - name = "Replacement lights" - contains = list("/obj/item/weapon/storage/lightbox/tubes", - "/obj/item/weapon/storage/lightbox/tubes", - "/obj/item/weapon/storage/lightbox/tubes", - "/obj/item/weapon/storage/lightbox/tubes", - "/obj/item/weapon/storage/lightbox", - "/obj/item/weapon/storage/lightbox", - "/obj/item/weapon/storage/lightbox", - "/obj/item/weapon/storage/lightbox") - cost = 10 - containertype = "/obj/crate" - containername = "Replacement lights" - -/datum/supply_packs/plasma - name = "Plasma assembly crate" - contains = list("/obj/item/weapon/tank/plasma", - "/obj/item/weapon/tank/plasma", - "/obj/item/weapon/tank/plasma", - "/obj/item/device/igniter", - "/obj/item/device/igniter", - "/obj/item/device/igniter", - "/obj/item/device/prox_sensor", - "/obj/item/device/prox_sensor", - "/obj/item/device/prox_sensor", - "/obj/item/device/timer", - "/obj/item/device/timer", - "/obj/item/device/timer") - cost = 10 - containertype = "/obj/crate/secure/plasma" - containername = "Plasma assembly crate" - access = access_tox - -/datum/supply_packs/weapons - name = "Weapons crate" - contains = list("/obj/item/weapon/baton", - "/obj/item/weapon/baton", - "/obj/item/weapon/gun/energy/laser_gun", - "/obj/item/weapon/gun/energy/laser_gun", - "/obj/item/weapon/gun/energy/taser_gun", - "/obj/item/weapon/gun/energy/taser_gun", - "/obj/item/weapon/storage/flashbang_kit", - "/obj/item/weapon/storage/flashbang_kit") - cost = 20 - containertype = "/obj/crate/secure/weapon" - containername = "Weapons crate" - access = access_security - -/datum/supply_packs/eweapons - name = "Experimental weapons crate" - contains = list("/obj/item/weapon/flamethrower", - "/obj/item/weapon/tank/plasma", - "/obj/item/weapon/tank/plasma", - "/obj/item/weapon/tank/plasma", - "/obj/item/weapon/incendiarygrenade", - "/obj/item/weapon/incendiarygrenade", - "/obj/item/weapon/incendiarygrenade", - "/obj/item/clothing/gloves/stungloves") - cost = 25 - containertype = "/obj/crate/secure/weapon" - containername = "Experimental weapons crate" - access = access_heads - -/datum/supply_packs/riot - name = "Riot crate" - contains = list("/obj/item/weapon/baton", - "/obj/item/weapon/baton", - "/obj/item/weapon/shield/riot", - "/obj/item/weapon/shield/riot", - "/obj/item/weapon/storage/flashbang_kit", - "/obj/item/weapon/storage/flashbang_kit", - "/obj/item/weapon/handcuffs", - "/obj/item/weapon/handcuffs") - cost = 30 - containertype = "/obj/crate/secure/gear" - containername = "Riot crate" - access = access_security - -/datum/supply_packs/evacuation - name = "Emergency equipment" - contains = list("/obj/machinery/bot/floorbot", - "/obj/machinery/bot/floorbot", - "/obj/machinery/bot/floorbot", - "/obj/machinery/bot/floorbot", - "/obj/item/weapon/tank/air", - "/obj/item/weapon/tank/air", - "/obj/item/weapon/tank/air", - "/obj/item/weapon/tank/air", - "/obj/item/weapon/tank/air", - "/obj/item/clothing/mask/gas", - "/obj/item/clothing/mask/gas", - "/obj/item/clothing/mask/gas", - "/obj/item/clothing/mask/gas", - "/obj/item/clothing/mask/gas") - cost = 35 - containertype = "/obj/crate/internals" - containername = "Emergency Crate" - -/datum/supply_packs/party - name = "Party equipment" - contains = list("/obj/item/weapon/reagent_containers/food/drinks/beer", - "/obj/item/weapon/reagent_containers/food/drinks/beer", - "/obj/item/weapon/reagent_containers/food/drinks/beer", - "/obj/item/weapon/reagent_containers/food/drinks/beer", - "/obj/item/weapon/reagent_containers/food/drinks/beer", - "/obj/item/weapon/reagent_containers/food/drinks/beer", - "/obj/item/weapon/reagent_containers/food/drinks/beer", - "/obj/item/weapon/reagent_containers/food/drinks/beer") - cost = 20 - containertype = "/obj/crate" - containername = "Party equipment" -/* -/datum/supply_packs/hats - name = "Clown Gear" - contains = list("/obj/item/clothing/head/that", - "/obj/item/clothing/under/psyche", - "/obj/item/clothing/under/johnny", - "/obj/item/clothing/under/mario", - "/obj/item/clothing/under/luigi", - "/obj/item/clothing/head/butt") - cost = 20 - containertype = "/obj/crate" - containername = "Clown Gear" -*/ - -/datum/supply_packs/mule - name = "MULEbot Crate" - contains = list("/obj/machinery/bot/mulebot") - cost = 20 - containertype = "/obj/crate" - containername = "MULEbot Crate" - -/datum/supply_packs/robotics - name = "Robotics Assembly Crate" - contains = list("/obj/item/device/prox_sensor", - "/obj/item/device/prox_sensor", - "/obj/item/device/prox_sensor", - "/obj/item/weapon/storage/toolbox/electrical", - "/obj/item/device/flash", - "/obj/item/device/flash", - "/obj/item/device/flash", - "/obj/item/device/flash", - "/obj/item/weapon/cell/robotcrate", - "/obj/item/weapon/cell/robotcrate") - cost = 10 - containertype = /obj/crate/secure/gear - containername = "Robotics Assembly" - access = access_robotics - -/datum/supply_packs/hydroponics // -- Skie - name = "Hydroponics Supply Crate" - contains = list("/obj/item/weapon/plantbgone", - "/obj/item/weapon/plantbgone", - "/obj/item/weapon/plantbgone", - "/obj/item/weapon/plantbgone", -// "/obj/item/weapon/weedspray", -// "/obj/item/weapon/weedspray", -// "/obj/item/weapon/pestspray", -// "/obj/item/weapon/pestspray", - "/obj/item/weapon/minihoe", - "/obj/item/device/analyzer/plant_analyzer", - "/obj/item/clothing/gloves/latex", - "/obj/item/clothing/gloves/latex") // For handling nettles etc - cost = 10 - containertype = /obj/crate/hydroponics - containername = "Hydroponics crate" - access = access_hydroponics - -/datum/supply_packs/seeds - name = "Seeds Crate" - contains = list("/obj/item/seeds/chiliseed", - "/obj/item/seeds/berryseed", - "/obj/item/seeds/eggplantseed", - "/obj/item/seeds/tomatoseed", - "/obj/item/seeds/soyaseed", - "/obj/item/seeds/wheatseed", - "/obj/item/seeds/carrotseed", - "/obj/item/seeds/chantermycelium", - "/obj/item/seeds/potatoseed") - cost = 10 - containertype = /obj/crate/hydroponics - containername = "Seeds crate" - access = access_hydroponics - - -/datum/supply_packs/exoticseeds - name = "Exotic Seeds Crate" - contains = list("/obj/item/seeds/nettleseed", - "/obj/item/seeds/plumpmycelium", - "/obj/item/seeds/libertymycelium", - "/obj/item/seeds/amanitamycelium", - "/obj/item/seeds/eggyseed") - cost = 15 - containertype = /obj/crate/hydroponics - containername = "Exotic Seeds crate" - access = access_hydroponics - - -//SUPPLY PACKS +//SUPPLY PACKS MOVED TO /code/defines/obj/supplypacks.dm /obj/plasticflaps //HOW DO YOU CALL THOSE THINGS ANYWAY name = "Plastic flaps" diff --git a/goonstation.dme b/goonstation.dme index 17a9669c53..2a4822829b 100644 --- a/goonstation.dme +++ b/goonstation.dme @@ -224,7 +224,9 @@ #include "code\defines\obj\radio.dm" #include "code\defines\obj\spawner.dm" #include "code\defines\obj\storage.dm" +#include "code\defines\obj\supplypacks.dm" #include "code\defines\obj\toy.dm" +#include "code\defines\obj\vending.dm" #include "code\defines\obj\weapon.dm" #include "code\defines\obj\window.dm" #include "code\defines\obj\clothing\gimmick.dm"