Files
2020-02-16 19:40:21 -08:00

1453 lines
51 KiB
Plaintext

/proc/build_supply_pack_cache()
qm_supply_cache.Cut()
for(var/S in childrentypesof(/datum/supply_packs))
qm_supply_cache += new S()
/datum/supply_order
var/datum/supply_packs/object = null
var/orderedby = null
var/comment = null
var/whos_id = null
var/console_location = null
proc/create(var/spawnpoint, var/mob/orderer)
var/atom/movable/A = object.create(spawnpoint, orderer)
if(!isnull(whos_id))
A.name = "[A.name], Ordered by [whos_id:registered], [comment ? "([comment])":"" ]"
else
A.name = "[A.name] [comment ? "([comment])":"" ]"
if(comment)
A.delivery_destination = comment
return A
//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
var/name = null
var/desc = null
var/list/contains = list()
var/amount = null
var/cost = null
var/containertype = null
var/containername = null
var/category = "Miscellaneous"
var/access = null
var/hidden = 0 //So as it turns out this is used in construction mode hardyhar
var/syndicate = 0 //If this is one the crate will only show up when the console is emagged
var/id = 0 //What jobs can order it
var/whos_id = null //linked ID
proc/create(var/spawnpoint, var/mob/creator)
if (!spawnpoint)
return null
var/atom/movable/A
if (!ispath(containertype) && contains.len > 1)
containertype = text2path(containertype)
if (!ispath(containertype))
containertype = /obj/storage/crate // this did not need to be a string
if (ispath(containertype))
#ifdef HALLOWEEN
if (halloween_mode && prob(10))
A = new /obj/storage/crate/haunted(spawnpoint)
else
A = new containertype(spawnpoint)
#else
A = new containertype(spawnpoint)
#endif
if (A)
spawnpoint = A // set the spawnpoint to the container we made so we don't have to duplicate the contains spawner loop
if (containername)
A.name = containername
if (access && isobj(A))
var/obj/O = A
O.req_access = list()
O.req_access += text2num(access)
if (contains.len)
for (var/B in contains)
var/thepath = B
if (!ispath(thepath))
thepath = text2path(B)
if (!ispath(thepath))
continue
var/amt = 1
if (isnum(contains[B]))
amt = abs(contains[B])
for (amt, amt>0, amt--)
var/atom/thething = new thepath(spawnpoint)
if (amount && isitem(thething))
var/obj/item/I = thething
I.amount = amount
if (A)
return A
return null
/datum/supply_packs/emptycrate
name = "Empty Crate"
desc = "Nothing (crate only)"
contains = list()
cost = 10
containertype = /obj/storage/crate
containername = "crate"
/datum/supply_packs/specialops
name = "Special Ops Supplies"
desc = "x1 Sleepy Pen, x1 Holographic Disguiser, x1 Signal Jammer, x1 Agent Card, x1 EMP Grenade Kit, x1 Tactical Grenades Kit"
contains = list(/obj/item/card/id/syndicate,
/obj/item/storage/box/emp_kit,
/obj/item/storage/box/tactical_kit,
/obj/item/pen/sleepypen,
/obj/item/device/disguiser,
/obj/item/radiojammer)
cost = 80000
containertype = /obj/storage/crate
containername = "Special Ops Crate"
syndicate = 1
/datum/supply_packs/paint
name = "Paint Cans"
desc = "A selection of random paints."
contains = list(/obj/item/paint_can/random = 4)
cost = 1000
containertype = /obj/storage/crate
containername = "Paint Crate"
/datum/supply_packs/metal200
name = "200 Metal Sheets"
desc = "x200 Metal Sheets"
category = "Basic Materials"
contains = list(/obj/item/sheet/steel)
amount = 200
cost = 2000
containertype = /obj/storage/crate
containername = "Metal Sheets Crate - 200 pack"
/datum/supply_packs/metal50
name = "50 Metal Sheets"
desc = "x50 Metal Sheets"
category = "Basic Materials"
contains = list(/obj/item/sheet/steel)
amount = 50
cost = 500
containertype = /obj/storage/crate
containername = "Metal Sheets Crate - 50 pack"
/datum/supply_packs/glass200
name = "200 Glass Sheets"
desc = "x200 Glass Sheets"
category = "Basic Materials"
contains = list(/obj/item/sheet/glass)
amount = 200
cost = 2000
containertype = /obj/storage/crate
containername = "Glass Sheets Crate - 200 pack"
/datum/supply_packs/glass50
name = "50 Glass Sheets"
desc = "x50 Glass Sheets"
category = "Basic Materials"
contains = list(/obj/item/sheet/glass)
amount = 50
cost = 500
containertype = /obj/storage/crate
containername = "Glass Sheets Crate - 50 pack"
/datum/supply_packs/dryfoods
name = "Catering: Dry Goods Crate"
desc = "x25 Assorted Cooking Ingredients"
category = "Civilian Department"
contains = list(/obj/item/reagent_containers/food/snacks/ingredient/flour = 6,
/obj/item/reagent_containers/food/snacks/ingredient/rice_sprig = 4,
/obj/item/reagent_containers/food/snacks/ingredient/spaghetti = 3,
/obj/item/reagent_containers/food/snacks/ingredient/sugar = 4,
/obj/item/reagent_containers/food/snacks/ingredient/oatmeal = 3,
/obj/item/reagent_containers/food/snacks/ingredient/tortilla = 3,
/obj/item/reagent_containers/food/snacks/ingredient/pancake_batter = 2)
cost = 200
containertype = /obj/storage/crate/freezer
containername = "Catering: Dry Goods Crate"
/datum/supply_packs/meateggdairy
name = "Catering: Meat, Eggs and Dairy Crate"
desc = "x25 Assorted Cooking Ingredients"
category = "Civilian Department"
contains = list(/obj/item/reagent_containers/food/snacks/hotdog = 4,
/obj/item/reagent_containers/food/snacks/ingredient/cheese = 4,
/obj/item/reagent_containers/food/drinks/milk = 4,
/obj/item/reagent_containers/food/snacks/ingredient/meat/synthmeat = 3,
/obj/item/reagent_containers/food/snacks/ingredient/meat/monkeymeat = 3,
/obj/item/reagent_containers/food/snacks/ingredient/meat/fish/salmon,
/obj/item/reagent_containers/food/snacks/ingredient/meat/fish/white,
/obj/item/kitchen/food_box/egg_box = 3,
/obj/item/storage/box/bacon_kit = 2)
cost = 600
containertype = /obj/storage/crate/freezer
containername = "Catering: Meat, Eggs and Dairy Crate"
/datum/supply_packs/produce
name = "Catering: Fresh Produce Crate"
desc = "x20 Assorted Cooking Ingredients"
category = "Civilian Department"
contains = list(/obj/item/reagent_containers/food/snacks/plant/apple = 2,
/obj/item/reagent_containers/food/snacks/plant/banana = 2,
/obj/item/reagent_containers/food/snacks/plant/carrot = 2,
/obj/item/reagent_containers/food/snacks/plant/corn = 2,
/obj/item/reagent_containers/food/snacks/plant/garlic,
/obj/item/reagent_containers/food/snacks/plant/lettuce = 2,
/obj/item/reagent_containers/food/snacks/plant/tomato = 4,
/obj/item/reagent_containers/food/snacks/plant/potato = 2,
/obj/item/reagent_containers/food/snacks/plant/onion,
/obj/item/reagent_containers/food/snacks/plant/lime,
/obj/item/reagent_containers/food/snacks/plant/lemon,
/obj/item/reagent_containers/food/snacks/plant/orange)
cost = 1050
containertype = /obj/storage/crate/freezer
containername = "Catering: Fresh Produce Crate"
/datum/supply_packs/condiment
name = "Catering: Condiment Crate"
desc = "x25 Assorted Cooking Ingredients"
category = "Civilian Department"
contains = list(/obj/item/reagent_containers/food/snacks/condiment/chocchips = 3,
/obj/item/reagent_containers/food/snacks/condiment/cream = 2,
/obj/item/reagent_containers/food/snacks/condiment/custard,
/obj/item/reagent_containers/food/snacks/condiment/hotsauce = 3,
/obj/item/reagent_containers/food/snacks/condiment/ketchup = 4,
/obj/item/reagent_containers/food/snacks/condiment/mayo = 4,
/obj/item/reagent_containers/food/snacks/condiment/syrup = 3,
/obj/item/reagent_containers/food/snacks/ingredient/peanutbutter = 3,
/obj/item/reagent_containers/food/snacks/ingredient/honey = 2)
cost = 250
containertype = /obj/storage/crate/freezer
containername = "Catering: Condiment Crate"
/datum/supply_packs/electrical4
name = "Electrical Supplies Crate - 4 pack"
desc = "x4 Cabling Box (28 cable coils total)"
category = "Basic Materials"
contains = list(/obj/item/storage/box/cablesbox = 4)
cost = 1000
containertype = /obj/storage/crate
containername = "Electrical Supplies Crate - 4 pack"
/datum/supply_packs/engineering
name = "Engineering Crate"
desc = "x2 Mechanical Toolbox, x2 Welding Mask, x2 Insulated Gloves"
category = "Engineering Department"
contains = list(/obj/item/storage/toolbox/mechanical = 2,
/obj/item/clothing/head/helmet/welding = 2,
/obj/item/clothing/gloves/yellow = 2)
cost = 1000
containertype = /obj/storage/crate
containername = "Engineering Crate"
/datum/supply_packs/generator
name = "Experimental Local Generator"
desc = "x1 Experimental Local Generator"
category = "Engineering Department"
contains = list(/obj/machinery/power/lgenerator)
cost = 2500
containertype = /obj/storage/crate
containername = "Experimental Local Generator Crate"
/datum/supply_packs/medicalfirstaid
name = "Medical: First Aid Crate"
desc = "x10 Assorted First Aid Kits"
category = "Medical Department"
contains = list(/obj/item/storage/firstaid/regular = 2,
/obj/item/storage/firstaid/brute = 2,
/obj/item/storage/firstaid/fire = 2,
/obj/item/storage/firstaid/toxin = 2,
/obj/item/storage/firstaid/oxygen,
/obj/item/storage/firstaid/brain)
cost = 1000
containertype = /obj/storage/crate/medical
containername = "Medical: First Aid Crate"
/datum/supply_packs/medicalchems
name = "Medical: Medical Reservoir Crate"
desc = "x4 Assorted reservoir beakers, x2 Sedative bottles, x2 Hyposprays, x1 Syringe Kit"
category = "Medical Department"
contains = list(/obj/item/reagent_containers/glass/beaker/large/antitox,
/obj/item/reagent_containers/glass/beaker/large/epinephrine,
/obj/item/reagent_containers/glass/beaker/large/brute,
/obj/item/reagent_containers/glass/beaker/large/burn,
/obj/item/reagent_containers/glass/bottle/morphine = 2,
/obj/item/reagent_containers/hypospray = 2,
/obj/item/storage/box/syringes)
cost = 1500
containertype = /obj/storage/crate/medical
containername = "Medical Crate"
/datum/supply_packs/janitor
name = "Janitorial Supplies"
desc = "x3 Buckets, x1 Mop, x3 Wet Floor Signs, x3 Cleaning Grenades, x1 Mop Bucket"
category = "Civilian Department"
contains = list(/obj/item/reagent_containers/glass/bucket = 3,
/obj/item/mop,
/obj/item/caution = 3,
/obj/item/chem_grenade/cleaner = 3,
/obj/mopbucket)
cost = 500
containertype = /obj/storage/crate
containername = "Janitorial Supplies"
/datum/supply_packs/hydrostarter
name = "Hydroponics: Starter Crate"
desc = "x2 Watering Cans, x4 Compost Bags, x2 Weedkiller bottles, x2 Plant Analyzers, x4 Plant Trays"
category = "Civilian Department"
contains = list(/obj/item/reagent_containers/glass/wateringcan = 2,
/obj/item/reagent_containers/glass/compostbag = 4,
/obj/item/reagent_containers/glass/bottle/weedkiller = 2,
/obj/item/plantanalyzer = 2,
/obj/machinery/plantpot = 4)
cost = 500
containertype = /obj/storage/crate
containername = "Hydroponics: Starter Crate"
/datum/supply_packs/hydronutrient
name = "Hydroponics: Nutrient Pack"
desc = "x15 Nutrient Formulas"
category = "Civilian Department"
contains = list(/obj/item/reagent_containers/glass/bottle/fruitful = 3,
/obj/item/reagent_containers/glass/bottle/mutriant = 3,
/obj/item/reagent_containers/glass/bottle/groboost = 3,
/obj/item/reagent_containers/glass/bottle/topcrop = 3,
/obj/item/reagent_containers/glass/bottle/powerplant = 3)
cost = 1000
containertype = /obj/storage/crate
containername = "Hydroponics: Nutrient Crate"
/datum/supply_packs/mining
name = "Mining Equipment"
desc = "x1 Powered Pickaxe, x1 Power Hammer, x1 Optical Meson Scanner, x1 Geological Scanner, x2 Mining Satchel, x3 Mining Explosives"
category = "Engineering Department"
contains = list(/obj/item/mining_tool/power_pick,
/obj/item/mining_tool/powerhammer,
/obj/item/clothing/glasses/meson,
/obj/item/oreprospector,
/obj/item/satchel/mining = 2,
/obj/item/breaching_charge/mining = 3)
cost = 500
containertype = /obj/storage/secure/crate/plasma
containername = "Mining Equipment Crate (Cardlocked \[Mining])"
access = access_mining
/datum/supply_packs/monkey4
name = "Lab Monkey Crate - 4 pack"
desc = "x4 Monkey"
category = "Research Department"
contains = list(/mob/living/carbon/human/npc/monkey = 4)
cost = 500
containertype = /obj/storage/crate/medical
containername = "Lab Monkey Crate"
/datum/supply_packs/bee
name = "Honey Production Kit"
desc = "For use with existing hydroponics bay."
category = "Civilian Department"
contains = list(/obj/item/bee_egg_carton = 5)
cost = 450
containertype = /obj/storage/secure/crate/bee
containername = "Honey Production Kit (Cardlocked \[Hydroponics])"
access = access_hydro
create(var/sp, var/mob/creator)
var/obj/storage/secure/crate/bee/beez=..()
for(var/obj/item/bee_egg_carton/carton in beez)
carton.ourEgg.blog = "ordered by [key_name(creator)]|"
return beez
/datum/supply_packs/chemical
name = "Chemistry Resupply Crate (Cardlocked \[Research])"
desc = "x6 Reagent Bottles, x1 Beaker Box, x1 Mechanical Dropper, x1 Spectroscopic Goggles, x1 Reagent Scanner"
category = "Research Department"
contains = list(/obj/item/storage/box/beakerbox,
/obj/item/reagent_containers/glass/bottle/oil,
/obj/item/reagent_containers/glass/bottle/phenol,
/obj/item/reagent_containers/glass/bottle/acid,
/obj/item/reagent_containers/glass/bottle/acetone,
/obj/item/reagent_containers/glass/bottle/diethylamine,
/obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/reagent_containers/dropper/mechanical,
/obj/item/clothing/glasses/spectro,
/obj/item/device/reagentscanner)
cost = 500
containertype = /obj/storage/secure/crate/plasma
containername = "Chemistry Resupply Crate (Cardlocked \[Research])"
access = access_tox
// Added security resupply crate (Convair880).
/datum/supply_packs/security_resupply
name = "Weapons Crate - Security Equipment (Cardlocked \[Security])"
desc = "x1 Port-a-Brig and remote, x1 Taser, x1 Stun Baton, x1 Security-Issue Grenade Box, x1 Handcuff Kit"
category = "Security Department"
contains = list(/obj/machinery/port_a_brig,
/obj/item/remote/porter/port_a_brig,
/obj/item/gun/energy/taser_gun,
/obj/item/baton,
/obj/item/storage/box/QM_grenadekit_security,
/obj/item/storage/box/handcuff_kit)
cost = 5000
containertype = /obj/storage/secure/crate/weapon
containername = "Weapons Crate - Security Equipment (Cardlocked \[Security])"
access = access_security
/datum/supply_packs/security_upgrade //Azungar's upgrade pack for security.
name = "Weapons Crate - Security Equipment Upgrade (Cardlocked \[Security])"
desc = "x1 Taser Shotgun, x1 Elite Security Helmet"
category = "Security Department"
contains = list(/obj/item/gun/energy/tasershotgun,
/obj/item/clothing/head/helmet/hardhat/security/improved)
cost = 15000
containertype = /obj/storage/secure/crate/weapon
containername = "Weapons Crate - Security Equipment Upgrade (Cardlocked \[Security])"
access = access_security
/datum/supply_packs/weapons2
name = "Weapons Crate - Phasers (Cardlocked \[Security])"
desc = "x2 Phaser Gun"
category = "Security Department"
contains = list(/obj/item/gun/energy/phaser_gun = 2)
cost = 5000
containertype = /obj/storage/secure/crate/weapon
containername = "Weapons Crate - Phasers (Cardlocked \[Security])"
access = access_security
/datum/supply_packs/eweapons
name = "Weapons Crate - Experimental (Cardlocked \[Security])"
desc = "x1 Wave gun, x1 Experimental Grenade Box (7 grenades)"
category = "Security Department"
contains = list(/obj/item/gun/energy/wavegun,
/obj/item/storage/box/QM_grenadekit_experimentalweapons)
cost = 5000
containertype = /obj/storage/secure/crate/weapon
containername = "Weapons Crate - Experimental (Cardlocked \[Security])"
access = access_security
/datum/supply_packs/evacuation
name = "Emergency Equipment"
desc = "x4 Floor Bot, x5 Air Tank, x5 Gas Mask"
contains = list(/obj/machinery/bot/floorbot = 4,
/obj/item/tank/air = 5,
/obj/item/clothing/mask/gas = 5)
cost = 1500
containertype = /obj/storage/crate/internals
containername = "Emergency Equipment"
/datum/supply_packs/alcohol
name = "Alcohol Crate"
desc = "x8 Assorted Liquor"
category = "Civilian Department"
contains = list(/obj/item/storage/box/beer,
/obj/item/reagent_containers/food/drinks/bottle/beer,
/obj/item/reagent_containers/food/drinks/bottle/wine,
/obj/item/reagent_containers/food/drinks/bottle/mead,
/obj/item/reagent_containers/food/drinks/bottle/cider,
/obj/item/reagent_containers/food/drinks/bottle/rum,
/obj/item/reagent_containers/food/drinks/bottle/vodka,
/obj/item/reagent_containers/food/drinks/bottle/tequila)
cost = 300
containertype = /obj/storage/crate
containername = "Alcohol Crate"
/datum/supply_packs/robot
name = "Robotics Crate"
desc = "x1 Securitron, x1 Floorbot, x1 Cleanbot, x1 Medibot, x1 Firebot"
category = "Medical Department"
contains = list(/obj/machinery/bot/secbot,
/obj/machinery/bot/floorbot,
/obj/machinery/bot/cleanbot,
/obj/machinery/bot/medbot,
/obj/machinery/bot/firebot)
cost = 2000
containertype = /obj/storage/crate
containername = "Robotics Crate"
/datum/supply_packs/mulebot
name = "Replacement Mulebot"
desc = "x1 Mulebot"
category = "Engineering Department"
contains = list("/obj/machinery/bot/mulebot")
cost = 750
containertype = /obj/storage/crate
containername = "Replacement Mulebot Crate"
/datum/supply_packs/dressup
name = "Novelty Clothing Crate"
desc = "Assorted Novelty Clothing"
contains = list(/obj/random_item_spawner/dressup)
cost = 15000
containertype = /obj/storage/crate/packing
containername = "Novelty Clothing Crate"
#ifdef HALLOWEEN
/datum/supply_packs/halloween
name = "Spooky Crate"
desc = "WHAT COULD IT BE? SPOOKY GHOSTS?? TERRIFYING SKELETONS??? DARE YOU FIND OUT?!"
contains = list(/obj/item/storage/goodybag = 6)
cost = 250
containertype = /obj/storage/crate
containername = "Spooky Crate"
#endif
#ifdef XMAS
/datum/supply_packs/xmas
name = "Holiday Supplies"
desc = "Winter joys from the workshop of Santa Claus himself! (Amusing Trivia: Santa Claus does not infact exist.)"
contains = list(/obj/item/clothing/head/helmet/space/santahat = 3,
/obj/item/wrapping_paper/xmas = 2,
/obj/item/scissors,
/obj/item/reagent_containers/food/drinks/eggnog = 2,
/obj/item/a_gift/festive = 2)
cost = 500
containertype = /obj/storage/crate/xmas
containername = "Holiday Supplies"
#endif
/datum/supply_packs/party
name = "Party Supplies"
desc = "Perfect for celebrating any special occasion!"
contains = list(/obj/item/clothing/head/party/birthday = 1,
/obj/item/clothing/head/party/birthday/blue = 1,
/obj/item/clothing/head/party/random = 5,
/obj/item/wrapping_paper = 2,
/obj/item/scissors,
/obj/item/item_box/assorted/stickers,
/obj/item/storage/box/balloonbox = 2,
/obj/item/reagent_containers/food/drinks/duo = 6,
/obj/item/reagent_containers/food/drinks/bottle/beer = 6,
/obj/item/reagent_containers/food/snacks/cake/chocolate = 1)
cost = 750
containertype = /obj/storage/crate
containername = "Party Supplies"
/datum/supply_packs/fueltank
name = "Welding Fuel tank"
desc = "1x Welding Fuel tank"
category = "Basic Materials"
contains = list(/obj/reagent_dispensers/fueltank)
cost = 4000
containertype = /obj/storage/crate
containername = "Welding Fuel Tank crate"
/datum/supply_packs/watertank
name = "High Capacity Watertank"
desc = "1x High Capacity Watertank"
category = "Basic Materials"
contains = list(/obj/reagent_dispensers/watertank/big)
cost = 2500
containertype = /obj/storage/crate
containername = "High Capacity Watertank crate"
/datum/supply_packs/compostbin
name = "Compost Bin"
desc = "1x Compost Bin"
category = "Civilian Department"
contains = list(/obj/reagent_dispensers/compostbin)
cost = 1000
containertype = /obj/storage/crate
containername = "Compost Bin crate"
/datum/supply_packs/office
name = "Office Supply Crate"
desc = "x4 Paper Bins, x2 Clipboards, x1 Sticky Note Stacks, x5 Writing Implement Sets, x1 Stapler, x1 Scissors"
contains = list(/obj/item/paper_bin = 4,
/obj/item/clipboard = 2,
/obj/item/postit_stack,
/obj/item/storage/box/pen,
/obj/item/storage/box/marker/basic,
/obj/item/storage/box/marker,
/obj/item/storage/box/crayon/basic,
/obj/item/storage/box/crayon,
/obj/item/staple_gun/red,
/obj/item/scissors,
/obj/item/stamp = 2)
cost = 250
containername = "Office Supply Crate"
// vvv Adding some suggestions from the QM Order Thread (Gannets) vvv
/datum/supply_packs/birds
name = "Avian Import Kit"
desc = "x5 hand-reared birds to help brighten your workplace."
category = "Civilian Department"
contains = list(/obj/critter/parrot/random = 5)
cost = 2000
containertype = /obj/storage/crate/packing
containername = "Avian Import Kit"
/datum/supply_packs/animal
name = "Animal Import Kit"
desc = "A random pile of animals."
category = "Civilian Department"
contains = list (/obj/random_item_spawner/critter)
cost = 2000
containertype = /obj/storage/crate/packing
containername = "Animal Import Kit"
/datum/supply_packs/takeout_chinese
name = "Golden Gannet Delivery"
desc = "A Space Chinese meal for two, delivered galaxy-wide."
category = "Civilian Department"
contains = list(/obj/item/reagent_containers/food/snacks/takeout = 2,
/obj/item/reagent_containers/food/snacks/fortune_cookie = 2)
cost = 200
containertype = /obj/storage/crate/packing
containername = "Golden Gannet Delivery"
/datum/supply_packs/takeout_pizza
name = "Soft Soft Pizzeria Delivery"
desc = "Two fresh-baked pizza meals, straight from the oven to your airlock."
category = "Civilian Department"
contains = list(/obj/item/reagent_containers/food/snacks/pizza = 2,
/obj/item/reagent_containers/food/snacks/fries = 2,
/obj/item/reagent_containers/food/drinks/cola = 2)
cost = 200
containertype = /obj/storage/crate/pizza
containername = "Soft Soft Pizza Delivery"
/datum/supply_packs/clown
name = "Comedy Equipment"
desc = "Entertainers burn bright but die young, outfit a new one with this crate!"
category = "Civilian Department"
contains = list(/obj/item/storage/box/costume/clown,
/obj/item/instrument/bikehorn,
/obj/item/bananapeel,
/obj/item/reagent_containers/food/snacks/pie/cream,
/obj/item/storage/box/balloonbox)
cost = 500
containertype = /obj/storage/crate/packing
containername = "Comedy Equipment"
/datum/supply_packs/ID_gear
name = "Identity Kit"
desc = "For HOP use only. Certainly not for identity fraud."
contains = list(/obj/item/storage/box/PDAbox,
/obj/item/storage/box/id_kit)
cost = 1500
containertype = /obj/storage/secure/crate
containername = "Identity Kit"
access = access_heads
/datum/supply_packs/prosphetics
name = "Prosthetic Augmentation Kit"
desc = "Replace your feeble flesh with these mechanical substitutes."
category = "Medical Department"
contains = list(/obj/random_item_spawner/prosthetics)
cost = 2000
containertype = /obj/storage/crate
containername = "Prosthetic Augmentation Kit"
/datum/supply_packs/restricted_medicine
name = "Restricted Medicine Shipment"
desc = "A shipment of specialised medicines. Card-locked to medical access."
category = "Medical Department"
contains = list(/obj/item/reagent_containers/glass/bottle/omnizine,
/obj/item/reagent_containers/glass/bottle/pfd = 2,
/obj/item/reagent_containers/glass/bottle/pentetic,
/obj/item/reagent_containers/glass/bottle/haloperidol,
/obj/item/reagent_containers/glass/bottle/ether)
cost = 6000
containertype = /obj/storage/secure/crate
containername = "Restricted Medicine Shipment (Cardlocked \[Medical])"
access = access_medical_director
/datum/supply_packs/cyborg
name = "Cyborg Component Crate"
desc = "Build your very own walking science nightmare! (Brain not included.)"
category = "Medical Department"
contains = list(/obj/item/parts/robot_parts/robot_frame,
/obj/item/parts/robot_parts/head/sturdy,
/obj/item/parts/robot_parts/chest,
/obj/item/parts/robot_parts/arm/left/sturdy,
/obj/item/parts/robot_parts/arm/right/sturdy,
/obj/item/parts/robot_parts/leg/left,
/obj/item/parts/robot_parts/leg/right,
/obj/item/cable_coil)
cost = 4500
containertype = /obj/storage/crate/wooden
containername = "Junior Medical Science Set: For Ages 7+"
/datum/supply_packs/chemistry_resupply
name = "Chemistry Resupply Crate"
desc = "All the nessesary precursors needed to jump in to advanced chemistry."
category = "Research Department"
contains = list(/obj/item/reagent_containers/glass/beaker/large = 4,
/obj/item/storage/box/beakerbox = 2,
/obj/item/reagent_containers/glass/bottle/oil,
/obj/item/reagent_containers/glass/bottle/phenol,
/obj/item/reagent_containers/glass/bottle/acetone,
/obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/reagent_containers/glass/bottle/diethylamine,
/obj/item/reagent_containers/glass/bottle/acid)
cost = 3000
containertype = /obj/storage/crate/wooden
containername = "Chemistry Resupply Crate"
/datum/supply_packs/rcd
name = "Rapid-construction-device Replacement"
desc = "Contains one empty rapid-construction-device."
category = "Basic Materials"
contains = list(/obj/item/rcd)
cost = 60000
containertype = /obj/storage/crate/wooden
containername = "RCD Replacement"
/datum/supply_packs/winter
name = "Cold Weather Gear"
desc = "Warm winter gear to ward off the winter chills."
contains = list(/obj/item/clothing/suit/wintercoat = 5,
/obj/machinery/space_heater = 2,
/obj/item/reagent_containers/food/drinks/chickensoup = 2,
/obj/item/reagent_containers/food/drinks/coffee = 2)
cost = 3000
containertype = /obj/storage/crate/packing
containername = "Cold Weather Gear"
/datum/supply_packs/buddy
name = "Thinktronic Build Your Own Buddy Kit"
desc = "Assemble your very own working Robuddy, one part per week."
contains = list(/obj/item/guardbot_frame,
/obj/item/guardbot_core,
/obj/item/cell,
/obj/item/parts/robot_parts/arm/right/sturdy,
/obj/random_item_spawner/buddytool)
cost = 7500
containertype = /obj/storage/crate/wooden
containername = "Robuddy Kit"
/datum/supply_packs/meteor
name = "Meteor Shield System"
desc = "It'll do in a pinch but your ship should really have it's own shields."
contains = list(/obj/machinery/shieldgenerator/meteorshield = 4)
cost = 2500
containertype = /obj/storage/crate/wooden
containername = "Meteor Shield System"
/datum/supply_packs/atmos
name = "Atmospherics Supplies"
desc = "For when you need to be breathing."
category = "Basic Materials"
contains = list(/obj/item/tank/air,
/obj/item/tank/oxygen,
/obj/machinery/portable_atmospherics/scrubber = 2,
/obj/item/clothing/under/misc/atmospheric_technician)
cost = 8000
containertype = /obj/storage/crate/wooden
containername = "Atmospherics Supplies"
/datum/supply_packs/reclaimer
name = "Reclaimed Reclaimer"
desc = "Jeez, be more careful with it next time!"
category = "Basic Materials"
contains = list(/obj/machinery/portable_reclaimer)
cost = 1000
containertype = /obj/storage/crate/packing
containername = "Reclaimed Reclaimer"
/datum/supply_packs/morgue
name = "Morgue Supplies"
desc = "The morgue can only fit so many clowns."
category = "Medical Department"
contains = list(/obj/item/body_bag = 10,
/obj/item/reagent_containers/glass/bottle/formaldehyde,
/obj/item/reagent_containers/syringe,
/obj/item/storage/bible)
cost = 10000
containertype = /obj/storage/closet/coffin
containername = "Morgue Supplies"
/datum/supply_packs/computer
name = "Home Networking Kit"
desc = "Build your own state of the art computer system! (Contents may vary.)"
contains = list(/obj/item/sheet/glass/fullstack,
/obj/item/sheet/steel/fullstack,
/obj/item/cable_coil = 3,
/obj/item/motherboard,
/obj/random_item_spawner/peripherals,
/obj/random_item_spawner/circuitboards)
cost = 5000
containertype = /obj/storage/crate/wooden
containername = "Home Networking Kit"
/datum/supply_packs/candle
name = "Candle Crate"
desc = "Perfect for setting the mood."
contains = list(/obj/item/device/light/candle = 3,
/obj/item/device/light/candle/small = 6,
/obj/item/matchbook)
cost = 500
containertype = /obj/storage/crate/packing
containername = "Candle Crate"
/datum/supply_packs/microbrew
name = "Home Distillery Kit"
desc = "Turn Cargo into a microbrewery."
contains = list(/obj/reagent_dispensers/still,
/obj/item/reagent_containers/food/drinks/drinkingglass/pitcher = 2,
/obj/item/reagent_containers/food/drinks/bottle = 6)
cost = 5000
containertype = /obj/storage/crate/wooden
containername = "Home Distillery Kit"
/datum/supply_packs/bloodbags
name = "Blood Bank"
desc = "An emergency supply of blood."
category = "Medical Department"
contains = list (/obj/item/reagent_containers/iv_drip/blood = 4)
cost = 3000
containertype = /obj/storage/crate/medical
containername = "Blood Bank"
/datum/supply_packs/singularity_generator
name = "Singularity Generator Crate"
desc = "An extremely unstable gravitational singularity, stored in a hi-tech jam jar, fired directly at your current location."
category = "Engineering Department"
contains = list(/obj/machinery/the_singularitygen)
cost = 100000
containertype = /obj/storage/secure/crate
containername = "Singularity Generator Crate (Cardlocked \[Chief Engineer])"
access = access_engineering_chief
/datum/supply_packs/field_generator
name = "Field Generator Crate"
desc = "The four goal-posts needed to contain a singularity."
category = "Engineering Department"
contains = list(/obj/machinery/field_generator = 4)
cost = 40000
containertype = /obj/storage/secure/crate
containername = "Field Generator Crate (Cardlocked \[Engineering])"
access = access_engineering
/datum/supply_packs/emitter
name = "Emitter Crate"
desc = "Contains one emitter, for energizing field generators. You'll need a few of these."
category = "Engineering Department"
contains = list(/obj/machinery/emitter)
cost = 15000
containertype = /obj/storage/secure/crate
containername = "Emitter Crate (Cardlocked \[Engineering])"
access = access_engineering
/datum/supply_packs/rad_collector
name = "Radiation Collector Crate"
desc = "Four collector arrays and one controller, to harvest radiation from the singularity."
category = "Engineering Department"
contains = list(/obj/machinery/power/collector_array = 4,
/obj/machinery/power/collector_control)
cost = 5000
containertype = /obj/storage/secure/crate
containername = "Radiation Array Crate (Cardlocked \[Engineering])"
access = access_engineering
/datum/supply_packs/radiation_emergency
name = "Radioactive Emergency Supplies"
desc = "Equipment for dealing with a radioactive emergency. No, the crate itself is not radioactive."
category = "Basic Materials"
contains = list(/obj/item/clothing/suit/rad = 4,
/obj/item/clothing/head/rad_hood = 4,
/obj/item/storage/pill_bottle/antirad = 2,
/obj/item/reagent_containers/emergency_injector/anti_rad = 4)
cost = 2000
containertype = /obj/storage/crate/wooden
containername = "Radiation Emergency Supplies"
/datum/supply_packs/eva
name = "EVA Equipment Crate"
desc = "Gear for enabling mobility in major hull damage scenarios."
category = "Basic Materials"
contains = list(/obj/item/clothing/head/helmet/space,
/obj/item/clothing/suit/space,
/obj/item/clothing/mask/gas/emergency,
/obj/item/tank/jetpack,
/obj/item/clothing/shoes/magnetic)
cost = 5000
containertype = /obj/storage/crate/wooden
containername = "EVA Equipment Crate"
/datum/supply_packs/abcu
name = "ABCU Unit Crate"
desc = "An additional ABCU Unit, for large construction projects."
category = "Engineering Department"
contains = list(/obj/machinery/abcu)
cost = 5000
containertype = /obj/storage/secure/crate
containername = "ABCU Unit Crate (Cardlocked \[Engineering])"
access = access_engineering
/datum/supply_packs/janitor_supplies
name = "Janitorial Supplies Refill"
desc = "Supplies to restock your hard-working Janitor."
category = "Civilian Department"
contains = list(/obj/item/chem_grenade/cleaner = 4,
/obj/item/spraybottle/cleaner = 2,
/obj/item/storage/box/trash_bags,
/obj/item/storage/box/biohazard_bags)
cost = 500
containertype = /obj/storage/crate/packing
containername = "Janitorial Supplies Refill"
/datum/supply_packs/toolbelts
name = "Utility Belt Crate"
desc = "Belts and tools to fill them to appease the staff assistant masses."
category = "Basic Materials"
contains = list(/obj/item/storage/belt/utility = 2,
/obj/item/storage/toolbox/mechanical = 2)
cost = 750
containertype = /obj/storage/crate/packing
containername = "Utility Belt Crate"
/datum/supply_packs/antibio
name = "Anti-Biological Hazard Supplies"
desc = " A couple of tools for combatting rogue biological lifeforms."
category = "Security Department"
contains = list(/obj/item/flamethrower/loaded,
/obj/item/storage/box/flaregun)
cost = 7000
containertype = /obj/storage/secure/crate
containername = "Anti-Biological Hazard Supplies (Cardlocked \[Security])"
access = access_security
/datum/supply_packs/loyaltyimplant
name = "Loyalty Kit"
desc = "To ensure unflinching loyalty towards glorious Nanotrasen."
category = "Security Department"
contains = list(/obj/item/implantcase/antirev = 4,
/obj/item/implanter = 2)
cost = 6000
containertype = /obj/storage/crate
containername = "Loyalty Kit"
access = access_security
/datum/supply_packs/furniture
name = "Furnishings Crate"
desc = "An assortment of flat-packed furniture, designed in Space Sweden."
contains = list(/obj/random_item_spawner/furniture_parts)
cost = 750
containertype = /obj/storage/crate/wooden
containername = "Furnishings Crate"
/datum/supply_packs/hat
name = "Haberdasher's Crate"
desc = "A veritable smörgåsbord of head ornaments."
contains = list(/obj/random_item_spawner/hat)
cost = 5000
containertype = /obj/storage/crate/packing
containername = "Haberdasher's Crate"
/datum/supply_packs/mask
name = "Masquerade Crate"
desc = "For hosting a masked ball in the bar."
contains = list(/obj/random_item_spawner/mask)
cost = 5000
containertype = /obj/storage/crate/packing
containername = "Masquerade Crate"
/datum/supply_packs/sponge
name = "Sponge Capsule Crate"
desc = "For all your watery animal needs!"
contains = list(/obj/item/spongecaps = 4)
cost = 5000
containertype = /obj/storage/crate/packing
containername = "Sponge Capsule Crate"
/datum/supply_packs/candy
name = "Candy Crate"
desc = "Proudly bringing sugar comas to your space stations since 2k53."
contains = list(/obj/item/item_box/heartcandy,
/obj/item/storage/goodybag,
/obj/item/item_box/swedish_bag,
/obj/item/kitchen/peach_rings)
cost = 500
containertype = /obj/storage/crate
containername = "Candy Crate"
/datum/supply_packs/light
name = "Lighting Crate"
desc = "Afraid of the dark? Lighten up your life with a couple of torches and a pile of glowsticks."
contains = list(/obj/item/device/light/glowstick = 8,
/obj/item/device/light/flashlight = 2)
cost = 500
containertype = /obj/storage/crate/packing
containername = "Lighting Crate"
// Kyle2143's vending restock packs
/datum/supply_packs/necessities_vending_restock
name = "Necessities Vending Machine Restocking Pack"
desc = "Various Vending Machine Restock Cartridges for necessities"
contains = list(/obj/item/vending/restock_cartridge/coffee,
/obj/item/vending/restock_cartridge/snack,
/obj/item/vending/restock_cartridge/cigarette,
/obj/item/vending/restock_cartridge/alcohol,
/obj/item/vending/restock_cartridge/cola,
/obj/item/vending/restock_cartridge/kitchen,
/obj/item/vending/restock_cartridge/monkey,
/obj/item/vending/restock_cartridge/standard)
cost = 3000
containertype = /obj/storage/crate
containername = "Necessities Vending Machine Restocking Pack"
/datum/supply_packs/med_hydro_vending_restock
name = "Medical/Hydroponics Vending Machine Restocking Pack"
desc = "Various Vending Machine Restock Cartridges for Med/Hydro"
contains = list(/obj/item/vending/restock_cartridge/hydroponics,
/obj/item/vending/restock_cartridge/medical,
/obj/item/vending/restock_cartridge/medical_public,
/obj/item/vending/restock_cartridge/kitchen)
cost = 3000
containertype = /obj/storage/crate
containername = "Med/Hydro Vending Machine Restocking Pack"
/datum/supply_packs/security_vending_restock
name = "Security Vending Machine Restocking Pack"
desc = "Various Vending Machine Restock Cartridges for security"
contains = list(/obj/item/vending/restock_cartridge/security,
/obj/item/vending/restock_cartridge/security_ammo)
cost = 5000
containertype = /obj/storage/crate
containername = "Security Vending Machine Restocking Pack"
/datum/supply_packs/electronics_vending_restock
name = "Electronics Vending Machine Restocking Pack"
desc = "Various Vending Machine Restock Cartridges for electronics"
contains = list(/obj/item/vending/restock_cartridge/electronics,
/obj/item/vending/restock_cartridge/mechanics,
/obj/item/vending/restock_cartridge/computer3,
/obj/item/vending/restock_cartridge/floppy,
/obj/item/vending/restock_cartridge/pda)
cost = 4000
containertype = /obj/storage/crate
containername = "Electronics Vending Machine Restocking Pack"
/*
Umm, apparently the packs below never get added? What's up with that. Construction mode :S -ZeWaka
*/
/datum/supply_packs/banking_kit
name = "Banking Kit"
desc = "Circuit Boards: 1x Bank Records, 1x ATM"
contains = list(/obj/item/circuitboard/atm,
/obj/item/circuitboard/bank_data)
hidden = 1
cost = 10000
containertype = /obj/storage/crate
containername = "Banking Kit"
/datum/supply_packs/homing_kit
name = "Homing Kit"
desc = "3x Tracking Beacon"
cost = 1000
hidden = 1
contains = list(/obj/item/device/radio/beacon = 3)
containertype = /obj/storage/crate
containername = "Homing Kit"
/datum/supply_packs/id_computer
name = "ID Computer Circuitboard"
desc = "1x ID Computer Circuitboard"
hidden = 1
contains = list(/obj/item/circuitboard/card)
cost = 10000
/datum/supply_packs/administrative_id
name = "Administrative ID card"
desc = "1x Captain level ID"
contains = list(/obj/item/card/id/captains_spare)
cost = 2500
hidden = 1
containertype = null
containername = null
/datum/supply_packs/plasmastone
name = "Plasmastone"
desc = "1x Plasmastone"
contains = list(/obj/item/raw_material/plasmastone)
cost = 7000
hidden = 1
containertype = null
containername = null
/datum/supply_packs/baton
name = "Stun Baton"
desc = "1x Stun Baton"
contains = list(/obj/item/baton)
cost = 3000
hidden = 1
containertype = null
containername = null
/datum/supply_packs/telecrystal
name = "Telecrystal"
desc = "1x Telecrystal"
contains = list(/obj/item/raw_material/telecrystal)
cost = 7000
hidden = 1
containertype = null
containername = null
/datum/supply_packs/telecrystal_bulk
name = "Telecrystal Resupply Pack"
desc = "10x Telecrystal"
contains = list(/obj/item/raw_material/telecrystal = 10)
cost = 63000
hidden = 1
containertype = /obj/storage/crate
containername = "Telecrystal Resupply Pack"
#ifdef MAP_OVERRIDE_MANTA
/datum/supply_packs/antisingularity
name = "Anti-Singularity Pack"
desc = "Everything that the crew needs to take down a rogue singularity."
category = "Engineering Department"
contains = list(/obj/item/paper/antisingularity,/obj/item/ammo/bullets/antisingularity = 5,/obj/item/gun/kinetic/antisingularity)
cost = 10000
containertype = /obj/storage/crate/classcrate/qm
containername = "Anti-Singularity Supply Pack"
#endif
/* ================================================= */
/* -------------------- Complex -------------------- */
/* ================================================= */
/datum/supply_packs/complex
hidden = 1
var/list/blueprints = list()
var/list/frames = list()
create(var/spawnpoint)
var/atom/movable/A = ..()
if (!A)
// TODO: spawn a new crate instead of just returning?
return
for (var/path in blueprints)
if (!ispath(path))
path = text2path(path)
if (!ispath(path))
continue
var/amt = 1
if (isnum(blueprints[path]))
amt = abs(blueprints[path])
for (amt, amt>0, amt--)
new /obj/item/paper/manufacturer_blueprint(A, path)
for (var/path in frames)
if (!ispath(path))
path = text2path(path)
if (!ispath(path))
continue
var/amt = 1
if (isnum(frames[path]))
amt = abs(frames[path])
// vvv this is barf vvv
var/atom/template = new path()
var/template_name = template ? template.name : null
qdel(template)
if (!template_name)
continue
for (amt, amt>0, amt--)
var/obj/item/electronics/frame/F = new /obj/item/electronics/frame(A)
F.name = "[template_name] frame"
F.store_type = path
F.viewstat = 2
F.secured = 2
F.icon_state = "dbox"
/datum/supply_packs/complex/electronics_kit
name = "Mechanics Reconstruction Kit"
desc = "1x Ruckingenur frame, 1x Manufacturer frame, 1x reclaimer frame, 1x device analyzer, 1x soldering iron"
category = "Engineering Department"
contains = list(/obj/item/electronics/scanner,
/obj/item/electronics/soldering)
frames = list(/obj/machinery/rkit,
/obj/machinery/manufacturer/mechanic,
/obj/machinery/portable_reclaimer)
cost = 1000
containertype = /obj/storage/crate
containername = "Mechanics Reconstruction Kit"
/datum/supply_packs/complex/mini_magnet_kit
name = "Small Magnet Kit"
desc = "1x Magnetizer, 1x Low Performance Magnet Kit, 1x Magnet Chassis Frame"
category = "Engineering Department"
contains = list(/obj/item/magnetizer,
/obj/item/magnet_parts/construction/small)
frames = list(/obj/machinery/magnet_chassis,
/obj/machinery/computer/magnet)
cost = 10000
containertype = /obj/storage/crate
containername = "Small Magnet Kit"
/datum/supply_packs/complex/magnet_kit
name = "Magnet Kit"
desc = "1x Magnetizer, 1x High Performance Magnet Kit, 1x Magnet Chassis Frame"
category = "Engineering Department"
contains = list(/obj/item/magnetizer,
/obj/item/magnet_parts/construction)
frames = list(/obj/machinery/magnet_chassis,
/obj/machinery/computer/magnet)
cost = 75000
containertype = /obj/storage/crate
containername = "Magnet Kit"
/*
/datum/supply_packs/complex/arc_smelter
name = "Arc Smelter"
desc = "2x Slag Shovel, Frames: 1x Arc Smelter, 1x Loom, 1x Workbench"
contains = list(/obj/item/slag_shovel = 2)
frames = list(/obj/machinery/smelter,
/obj/workbench)
cost = 100000
containertype = /obj/storage/crate
containername = "Arc Smelter"
*/
/datum/supply_packs/complex/manufacturer_kit
name = "Manufacturer Kit"
desc = "Frames: 1x General Manufacturer, 1x Mining Manufacturer, 1x Gas Extractor, 1x Reclaimer"
category = "Engineering Department"
frames = list(/obj/machinery/manufacturer/general,
/obj/machinery/manufacturer/mining,
/obj/machinery/manufacturer/gas,
/obj/machinery/portable_reclaimer)
cost = 8000
containertype = /obj/storage/crate
containername = "Manufacturer Kit"
/datum/supply_packs/complex/cargo_kit
name = "Cargo Bay Kit"
desc = "Contains a higher tier of cargo computer, allowed access to the full NT catalog.<br>1x Cargo Teleporter, Frames: 1x Commerce Computer, 1x Incoming supply pad, 1x Outgoing supply pad, 1x Cargo Teleporter pad, 1x Recharger"
category = "Engineering Department"
contains = list(/obj/item/paper/cargo_instructions,
/obj/item/cargotele)
frames = list(/obj/machinery/computer/special_supply/commerce,
/obj/supply_pad/incoming,
/obj/supply_pad/outgoing,
/obj/submachine/cargopad,
/obj/machinery/recharger)
cost = 45000
containertype = /obj/storage/crate
containername = "Cargo Bay Kit"
/datum/supply_packs/complex/pod_kit
name = "Pod Production Kit"
desc = "Frames: 1x Ship Component Fabricator, 1x Reclaimer"
frames = list(/obj/machinery/manufacturer/hangar,
/obj/machinery/portable_reclaimer)
cost = 60000
containertype = /obj/storage/crate
containername = "Pod Production Kit"
/datum/supply_packs/complex/turret_kit
name = "Defense Turret Kit"
desc = "Frames: 3x Turret, 1x Turret Control Console, 2x Security Camera"
frames = list(/obj/machinery/turret/construction = 3,
/obj/machinery/turretid/computer,
/obj/machinery/camera = 2)
cost = 40000
containertype = /obj/storage/crate
containername = "Defense Turret Kit"
/datum/supply_packs/complex/ai_kit
name = "Artificial Intelligence Kit"
desc = "Frames: 1x Asimov 5 AI, 2x Turret, 1x Turret Control Console, 2x Security Camera"
frames = list(/obj/ai_frame,
/obj/machinery/turret/construction = 2,
/obj/machinery/turretid/computer,
/obj/machinery/camera = 2)
cost = 100000
containertype = /obj/storage/crate
containername = "AI Kit"
/datum/supply_packs/complex/basic_power_kit
name = "Basic Power Kit"
desc = "Frames: 1x SMES cell, 2x Furnace"
category = "Engineering Department"
frames = list(/obj/smes_spawner,
/obj/machinery/power/furnace = 2)
cost = 40000
containertype = /obj/storage/crate
containername = "AI Kit"
/datum/supply_packs/complex/mainframe_kit
name = "Computer Core Kit"
category = "Research Department"
desc = "1x Memory Board, 1x Mainframe Recovery Kit, 1x TermOS B disk, Frames: 1x Computer Mainframe, 1x Databank, 1x Network Radio, 3x Data Terminal, 1x CompTech"
contains = list(/obj/item/disk/data/memcard,
/obj/item/storage/box/zeta_boot_kit,
/obj/item/disk/data/floppy/read_only/terminal_os)
frames = list(/obj/machinery/networked/mainframe,
/obj/machinery/networked/storage,
/obj/machinery/networked/radio,
/obj/machinery/power/data_terminal = 3,
/obj/machinery/vending/computer3)
cost = 150000
containertype = /obj/storage/crate
containername = "Computer Core Kit"
/datum/supply_packs/complex/artlab_kit
name = "Artifact Research Kit"
desc = "Frames: 5x Data Terminal, 1x Pitcher, 1x Impact pad, 1x Heater pad, 1x Electric box, 1x X-Ray machine"
category = "Research Department"
frames = list(/obj/machinery/networked/test_apparatus/pitching_machine,
/obj/machinery/networked/test_apparatus/impact_pad,
/obj/machinery/networked/test_apparatus/electrobox,
/obj/machinery/networked/test_apparatus/heater,
/obj/machinery/networked/test_apparatus/xraymachine,
/obj/machinery/power/data_terminal = 5)
cost = 80000
containertype = /obj/storage/crate
containername = "Artifact Research Kit"
/datum/supply_packs/complex/toilet_kit
name = "Bathroom Kit"
desc = "Frames: 4x Toilet, 1x Sink, 1x Shower Head, 1x Bathtub"
category = "Civilian Department"
frames = list(/obj/item/storage/toilet = 4,
/obj/machinery/shower,
/obj/machinery/bathtub,
/obj/submachine/chef_sink/chem_sink)
cost = 15000
containertype = /obj/storage/crate
containername = "Bathroom Kit"
/datum/supply_packs/complex/kitchen_kit
name = "Kitchen Kit"
desc = "1x Fridge, Frames: 1x Oven, 1x Mixer, 1x Sink, 1x Deep Fryer, 1x Food Processor, 1x ValuChimp, 1x FoodTech, 1x Meat Spike, 1x Gibber"
category = "Civilian Department"
contains = list(/obj/storage/secure/closet/fridge)
frames = list(/obj/submachine/chef_oven,
/obj/submachine/mixer,
/obj/submachine/chef_sink,
/obj/machinery/deep_fryer,
/obj/submachine/foodprocessor,
/obj/machinery/vending/monkey,
/obj/machinery/vending/kitchen,
/obj/kitchenspike,
/obj/machinery/gibber)
cost = 50000
containertype = /obj/storage/crate
containername = "Kitchen Kit"
/datum/supply_packs/complex/bartender_kit
name = "Bar Kit"
desc = "2x Glassware box, Frames: 1x Alcohol Dispenser, 1x Soda Fountain, 1x Ice Cream Machine, 1x Kitchenware Recycler, 1x Microwave"
category = "Civilian Department"
contains = list(/obj/item/storage/box/glassbox = 2)
frames = list(/obj/machinery/microwave,
/obj/machinery/chem_dispenser/alcohol,
/obj/machinery/chem_dispenser/soda,
/obj/submachine/ice_cream_dispenser,
/obj/machinery/glass_recycler)
cost = 25000
containertype = /obj/storage/crate
containername = "Bar Kit"
/datum/supply_packs/complex/arcade
name = "Arcade Machine"
desc = "Frames: 1x Arcade Machine"
category = "Civilian Department"
frames = list(/obj/machinery/computer/arcade)
cost = 2500
containertype = /obj/storage/crate
containername = "Arcade Machine"
/datum/supply_packs/complex/telescience_kit
name = "Telescience Kit"
desc = "Frames: 1x Science Teleporter Console, 2x Data Terminal, 1x Telepad"
category = "Research Department"
frames = list(/obj/machinery/networked/teleconsole,
/obj/machinery/networked/telepad,
/obj/machinery/power/data_terminal = 2)
cost = 40000
containertype = /obj/storage/crate
containername = "Telescience"
/datum/supply_packs/complex/security_camera
name = "Security Camera kit"
desc = "Frames: 5x Security Camera"
category = "Security Department"
frames = list(/obj/machinery/camera = 5)
cost = 1000
containertype = /obj/storage/crate
containername = "Security Camera"
/datum/supply_packs/complex/medical_kit
name = "Medbay kit"
desc = "1x Defibrillator, 2x Hypospray, 1x Medical Belt, Frames: 1x NanoMed, 1x Medical Records computer"
category = "Medical Department"
contains = list(/obj/item/robodefibrillator,
/obj/item/storage/belt/medical,
/obj/item/reagent_containers/hypospray = 2)
frames = list(/obj/machinery/optable,
/obj/machinery/vending/medical)
cost = 10000
containertype = /obj/storage/crate
containername = "Medbay kit"
/datum/supply_packs/complex/operating_kit
name = "Operating Room kit"
desc = "1x Staple Gun, 1x Defibrillator, 2x Scalpel, 2x Circular Saw, 1x Hemostat, 2x Suture, 1x Enucleation Spoon, Frames: 1x Medical Fabricator, 1x Operating Table"
category = "Medical Department"
contains = list(/obj/item/staple_gun,
/obj/item/robodefibrillator,
/obj/item/scalpel = 2,
/obj/item/circular_saw = 2,
/obj/item/hemostat,
/obj/item/suture,
/obj/item/surgical_spoon)
frames = list(/obj/machinery/manufacturer/medical,
/obj/machinery/optable,
/obj/machinery/vending/medical)
cost = 15000
containertype = /obj/storage/crate
containername = "Operating Room kit"
/datum/supply_packs/complex/robotics_kit
name = "Robotics kit"
desc = "1x Staple Gun, 1x Scalpel, 1x Circular Saw, Frames: 1x Robotics Fabricator, 1x Operating Table, 1x Module Rewriter, 1x Recharge station"
category = "Medical Department"
contains = list(/obj/item/staple_gun,
/obj/item/scalpel,
/obj/item/circular_saw)
frames = list(/obj/machinery/manufacturer/robotics,
/obj/machinery/optable,
/obj/submachine/robomoduler,
/obj/machinery/recharge_station)
cost = 20000
containertype = /obj/storage/crate
containername = "Robotics kit"
/datum/supply_packs/complex/genetics_kit
name = "Genetics kit"
desc = "Circuitboards: 1x DNA Modifier, 1x Cloning Console, Frames: 1x Cloning Scanner, 1x Cloning Pod, 1x Reclaimer, 1x DNA Scanner"
category = "Medical Department"
contains = list(/obj/item/circuitboard/genetics,
/obj/item/circuitboard/cloning)
frames = list(/obj/machinery/clone_scanner,
/obj/machinery/clonepod,
/obj/machinery/clonegrinder,
/obj/machinery/genetics_scanner)
cost = 50000
containertype = /obj/storage/crate
containername = "Genetics kit"