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"