Files
Paradise/code/datums/supplypacks.dm
2022-09-25 17:03:50 +01:00

2027 lines
68 KiB
Plaintext

//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.
//ANOTHER NOTE: Contraband is obtainable through modified supplycomp circuitboards.
//BIG NOTE: Don't add living things to crates, that's bad, it will break the shuttle.
//NEW NOTE: Do NOT set the price of any crates below 7 points. Doing so allows infinite points.
// Supply Groups
#define SUPPLY_EMERGENCY 1
#define SUPPLY_SECURITY 2
#define SUPPLY_ENGINEER 3
#define SUPPLY_MEDICAL 4
#define SUPPLY_SCIENCE 5
#define SUPPLY_ORGANIC 6
#define SUPPLY_MATERIALS 7
#define SUPPLY_MISC 8
#define SUPPLY_VEND 9
GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY_ENGINEER,SUPPLY_MEDICAL,SUPPLY_SCIENCE,SUPPLY_ORGANIC,SUPPLY_MATERIALS,SUPPLY_MISC,SUPPLY_VEND))
/proc/get_supply_group_name(cat)
switch(cat)
if(SUPPLY_EMERGENCY)
return "Emergency"
if(SUPPLY_SECURITY)
return "Security"
if(SUPPLY_ENGINEER)
return "Engineering"
if(SUPPLY_MEDICAL)
return "Medical"
if(SUPPLY_SCIENCE)
return "Science"
if(SUPPLY_ORGANIC)
return "Food and Livestock"
if(SUPPLY_MATERIALS)
return "Raw Materials"
if(SUPPLY_MISC)
return "Miscellaneous"
if(SUPPLY_VEND)
return "Vending"
/datum/supply_packs
var/name = null
var/list/contains = list()
var/manifest = ""
var/amount = null
var/cost = null
var/containertype = /obj/structure/closet/crate
var/containername = null
var/access = null
var/hidden = 0
var/contraband = 0
var/group = SUPPLY_MISC
var/list/announce_beacons = list() // Particular beacons that we'll notify the relevant department when we reach
var/special = FALSE //Event/Station Goals/Admin enabled packs
var/special_enabled = FALSE
/// List of names for being done in TGUI
var/list/ui_manifest = list()
/datum/supply_packs/New()
manifest += "<ul>"
for(var/path in contains)
if(!path) continue
var/atom/movable/AM = path
manifest += "<li>[initial(AM.name)]</li>"
// Add the name to the UI manifest
ui_manifest += "[initial(AM.name)]"
manifest += "</ul>"
////// Use the sections to keep things tidy please /Malkevin
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Emergency ///////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_packs/emergency // Section header - use these to set default supply group and crate type for sections
name = "HEADER" // Use "HEADER" to denote section headers, this is needed for the supply computers to filter them
containertype = /obj/structure/closet/crate/internals
group = SUPPLY_EMERGENCY
/datum/supply_packs/emergency/evac
name = "Emergency Equipment Crate"
contains = list(/mob/living/simple_animal/bot/floorbot,
/mob/living/simple_animal/bot/floorbot,
/mob/living/simple_animal/bot/medbot,
/mob/living/simple_animal/bot/medbot,
/obj/item/tank/internals/air,
/obj/item/tank/internals/air,
/obj/item/tank/internals/air,
/obj/item/tank/internals/air,
/obj/item/tank/internals/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,
/obj/item/grenade/gas/oxygen,
/obj/item/grenade/gas/oxygen)
cost = 35
containertype = /obj/structure/closet/crate/internals
containername = "emergency crate"
group = SUPPLY_EMERGENCY
/datum/supply_packs/emergency/internals
name = "Internals Crate"
contains = list(/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
/obj/item/tank/internals/air,
/obj/item/tank/internals/air,
/obj/item/tank/internals/air)
cost = 10
containername = "internals crate"
/datum/supply_packs/emergency/firefighting
name = "Firefighting Crate"
contains = list(/obj/item/clothing/suit/fire/firefighter,
/obj/item/clothing/suit/fire/firefighter,
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
/obj/item/flashlight,
/obj/item/flashlight,
/obj/item/tank/internals/oxygen/red,
/obj/item/tank/internals/oxygen/red,
/obj/item/extinguisher,
/obj/item/extinguisher,
/obj/item/clothing/head/hardhat/red,
/obj/item/clothing/head/hardhat/red)
cost = 10
containertype = /obj/structure/closet/crate
containername = "firefighting crate"
/datum/supply_packs/emergency/atmostank
name = "Firefighting Watertank Crate"
contains = list(/obj/item/watertank/atmos)
cost = 10
containertype = /obj/structure/closet/crate/secure
containername = "firefighting watertank crate"
access = ACCESS_ATMOSPHERICS
/datum/supply_packs/emergency/weedcontrol
name = "Weed Control Crate"
contains = list(/obj/item/scythe,
/obj/item/clothing/mask/gas,
/obj/item/grenade/chem_grenade/antiweed,
/obj/item/grenade/chem_grenade/antiweed)
cost = 15
containertype = /obj/structure/closet/crate/secure/hydrosec
containername = "weed control crate"
access = ACCESS_HYDROPONICS
announce_beacons = list("Hydroponics" = list("Hydroponics"))
/datum/supply_packs/emergency/voxsupport
name = "Vox Life Support Supplies"
contains = list(/obj/item/clothing/mask/breath/vox,
/obj/item/clothing/mask/breath/vox,
/obj/item/tank/internals/emergency_oxygen/double/vox,
/obj/item/tank/internals/emergency_oxygen/double/vox)
cost = 50
containertype = /obj/structure/closet/crate/medical
containername = "vox life support supplies crate"
/datum/supply_packs/emergency/plasmamansupport
name = "Plasmaman Supply Kit"
contains = list(/obj/item/clothing/under/plasmaman,
/obj/item/clothing/under/plasmaman,
/obj/item/tank/internals/plasmaman/belt/full,
/obj/item/tank/internals/plasmaman/belt/full,
/obj/item/clothing/mask/breath,
/obj/item/clothing/mask/breath,
/obj/item/clothing/head/helmet/space/plasmaman,
/obj/item/clothing/head/helmet/space/plasmaman)
cost = 20
containertype = /obj/structure/closet/crate/secure/plasma
containername = "plasmaman life support supplies crate"
access = ACCESS_EVA
/datum/supply_packs/emergency/specialops
name = "Special Ops Supplies"
contains = list(/obj/item/storage/box/emps,
/obj/item/grenade/smokebomb,
/obj/item/grenade/smokebomb,
/obj/item/grenade/smokebomb,
/obj/item/pen/sleepy,
/obj/item/grenade/chem_grenade/incendiary)
cost = 20
containertype = /obj/structure/closet/crate
containername = "special ops crate"
hidden = 1
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Security ////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_packs/security
name = "HEADER"
containertype = /obj/structure/closet/crate/secure/gear
access = ACCESS_SECURITY
group = SUPPLY_SECURITY
announce_beacons = list("Security" = list("Head of Security's Desk", "Warden", "Security"))
/datum/supply_packs/security/supplies
name = "Security Supplies Crate"
contains = list(/obj/item/storage/box/flashbangs,
/obj/item/storage/box/teargas,
/obj/item/storage/box/flashes,
/obj/item/storage/box/handcuffs)
cost = 10
containername = "security supply crate"
/datum/supply_packs/security/vending/security
name = "SecTech Supply Crate"
cost = 15
contains = list(/obj/item/vending_refill/security)
containername = "SecTech supply crate"
/datum/supply_packs/security/vending/clothingvendor
name = "Security Clothing Vendors Crate"
cost = 40
contains = list(/obj/item/vending_refill/secdrobe,
/obj/item/vending_refill/detdrobe)
containername = "security clothing vendor crate"
////// Armor: Basic
/datum/supply_packs/security/helmets
name = "Helmets Crate"
contains = list(/obj/item/clothing/head/helmet,
/obj/item/clothing/head/helmet,
/obj/item/clothing/head/helmet)
cost = 10
containername = "helmet crate"
/datum/supply_packs/security/justiceinbound
name = "Standard Justice Enforcer Crate"
contains = list(/obj/item/clothing/head/helmet/justice,
/obj/item/clothing/head/helmet/justice,
/obj/item/clothing/mask/gas/sechailer,
/obj/item/clothing/mask/gas/sechailer)
cost = 60 //justice comes at a price. An expensive, noisy price.
containername = "justice enforcer crate"
/datum/supply_packs/security/armor
name = "Armor Crate"
contains = list(/obj/item/clothing/suit/armor/vest,
/obj/item/clothing/suit/armor/vest,
/obj/item/clothing/suit/armor/vest)
cost = 10
containername = "armor crate"
////// Weapons: Basic
/datum/supply_packs/security/baton
name = "Stun Batons Crate"
contains = list(/obj/item/melee/baton/loaded,
/obj/item/melee/baton/loaded,
/obj/item/melee/baton/loaded)
cost = 10
containername = "stun baton crate"
/datum/supply_packs/security/laser
name = "Lasers Crate"
contains = list(/obj/item/gun/energy/laser,
/obj/item/gun/energy/laser,
/obj/item/gun/energy/laser)
cost = 15
containername = "laser crate"
/datum/supply_packs/security/disabler
name = "Disabler Crate"
contains = list(/obj/item/gun/energy/disabler,
/obj/item/gun/energy/disabler,
/obj/item/gun/energy/disabler)
cost = 10
containername = "disabler crate"
/datum/supply_packs/security/forensics
name = "Forensics Crate"
contains = list(/obj/item/detective_scanner,
/obj/item/storage/box/evidence,
/obj/item/camera,
/obj/item/taperecorder,
/obj/item/toy/crayon/white,
/obj/item/clothing/head/det_hat)
cost = 20
containername = "forensics crate"
///// Armory stuff
/datum/supply_packs/security/armory
name = "HEADER"
containertype = /obj/structure/closet/crate/secure/weapon
access = ACCESS_ARMORY
announce_beacons = list("Security" = list("Warden", "Head of Security's Desk"))
///// Armor: Specialist
/datum/supply_packs/security/armory/riothelmets
name = "Riot Helmets Crate"
contains = list(/obj/item/clothing/head/helmet/riot,
/obj/item/clothing/head/helmet/riot,
/obj/item/clothing/head/helmet/riot)
cost = 15
containername = "riot helmets crate"
/datum/supply_packs/security/armory/riotarmor
name = "Riot Armor Crate"
contains = list(/obj/item/clothing/suit/armor/riot,
/obj/item/clothing/suit/armor/riot,
/obj/item/clothing/suit/armor/riot)
cost = 15
containername = "riot armor crate"
/datum/supply_packs/security/armory/riotshields
name = "Riot Shields Crate"
contains = list(/obj/item/shield/riot,
/obj/item/shield/riot,
/obj/item/shield/riot)
cost = 20
containername = "riot shields crate"
/datum/supply_packs/security/bullethelmets
name = "Bulletproof Helmets Crate"
contains = list(/obj/item/clothing/head/helmet/alt,
/obj/item/clothing/head/helmet/alt,
/obj/item/clothing/head/helmet/alt)
cost = 10
containername = "bulletproof helmet crate"
/datum/supply_packs/security/armory/bulletarmor
name = "Bulletproof Armor Crate"
contains = list(/obj/item/clothing/suit/armor/bulletproof,
/obj/item/clothing/suit/armor/bulletproof,
/obj/item/clothing/suit/armor/bulletproof)
cost = 15
containername = "tactical armor crate"
/datum/supply_packs/security/armory/webbing
name = "Webbing Crate"
contains = list(/obj/item/storage/belt/security/webbing,
/obj/item/storage/belt/security/webbing,
/obj/item/storage/belt/security/webbing)
cost = 15
containername = "tactical webbing crate"
/datum/supply_packs/security/armory/swat
name = "SWAT gear crate"
contains = list(/obj/item/clothing/head/helmet/swat,
/obj/item/clothing/head/helmet/swat,
/obj/item/clothing/suit/space/swat,
/obj/item/clothing/suit/space/swat,
/obj/item/kitchen/knife/combat,
/obj/item/kitchen/knife/combat,
/obj/item/clothing/mask/gas/sechailer/swat,
/obj/item/clothing/mask/gas/sechailer/swat,
/obj/item/storage/belt/military/assault,
/obj/item/storage/belt/military/assault)
cost = 60
containername = "assault armor crate"
/datum/supply_packs/security/armory/laserarmor
name = "Ablative Armor Crate"
contains = list(/obj/item/clothing/suit/armor/laserproof,
/obj/item/clothing/suit/armor/laserproof) // Only two vests to keep costs down for balance
cost = 20
containertype = /obj/structure/closet/crate/secure/plasma
containername = "ablative armor crate"
/////// Weapons: Specialist
/datum/supply_packs/security/armory/ballistic
name = "Riot Shotguns Crate"
contains = list(/obj/item/gun/projectile/shotgun/riot,
/obj/item/gun/projectile/shotgun/riot,
/obj/item/gun/projectile/shotgun/riot,
/obj/item/storage/belt/bandolier,
/obj/item/storage/belt/bandolier,
/obj/item/storage/belt/bandolier)
cost = 50
containername = "riot shotgun crate"
/datum/supply_packs/security/armory/ballisticauto
name = "Combat Shotguns Crate"
contains = list(/obj/item/gun/projectile/shotgun/automatic/combat,
/obj/item/gun/projectile/shotgun/automatic/combat,
/obj/item/gun/projectile/shotgun/automatic/combat,
/obj/item/storage/belt/bandolier,
/obj/item/storage/belt/bandolier,
/obj/item/storage/belt/bandolier)
cost = 80
containername = "combat shotgun crate"
/datum/supply_packs/security/armory/expenergy
name = "Energy Guns Crate"
contains = list(/obj/item/gun/energy/gun,
/obj/item/gun/energy/gun)
cost = 25
containertype = /obj/structure/closet/crate/secure/plasma
containername = "energy gun crate"
/datum/supply_packs/security/armory/epistol // costs 3/5ths of the normal e-guns for 3/4ths the total ammo, making it cheaper to arm more people, but less convient for any one person
name = "Energy Pistol Crate"
contains = list(/obj/item/gun/energy/gun/mini,
/obj/item/gun/energy/gun/mini,
/obj/item/gun/energy/gun/mini)
cost = 15
containertype = /obj/structure/closet/crate/secure/plasma
containername = "energy gun crate"
/datum/supply_packs/security/armory/eweapons
name = "Incendiary Weapons Crate"
contains = list(/obj/item/flamethrower/full,
/obj/item/tank/internals/plasma,
/obj/item/tank/internals/plasma,
/obj/item/tank/internals/plasma,
/obj/item/grenade/chem_grenade/incendiary,
/obj/item/grenade/chem_grenade/incendiary,
/obj/item/grenade/chem_grenade/incendiary)
cost = 15 // its a fecking flamethrower and some plasma, why the shit did this cost so much before!?
containertype = /obj/structure/closet/crate/secure/plasma
containername = "incendiary weapons crate"
access = ACCESS_HEADS
/datum/supply_packs/security/armory/wt550
name = "WT-550 Auto Rifle Crate"
contains = list(/obj/item/gun/projectile/automatic/wt550,
/obj/item/gun/projectile/automatic/wt550)
cost = 35
containername = "auto rifle crate"
/datum/supply_packs/security/armory/wt550ammo
name = "WT-550 Rifle Ammo Crate"
contains = list(/obj/item/ammo_box/magazine/wt550m9,
/obj/item/ammo_box/magazine/wt550m9,
/obj/item/ammo_box/magazine/wt550m9,
/obj/item/ammo_box/magazine/wt550m9,)
cost = 30
containername = "auto rifle ammo crate"
/////// Implants & etc
/datum/supply_packs/security/armory/mindshield
name = "Mindshield Bio-chips Crate"
contains = list (/obj/item/storage/lockbox/mindshield)
cost = 40
containername = "mindshield bio-chip crate"
/datum/supply_packs/security/armory/trackingimp
name = "Tracking Bio-chips Crate"
contains = list (/obj/item/storage/box/trackimp)
cost = 20
containername = "tracking bio-chip crate"
/datum/supply_packs/security/armory/chemimp
name = "Chemical Bio-chips Crate"
contains = list (/obj/item/storage/box/chemimp)
cost = 20
containername = "chemical bio-chip crate"
/datum/supply_packs/security/armory/exileimp
name = "Exile Bio-chips Crate"
contains = list (/obj/item/storage/box/exileimp)
cost = 30
containername = "exile bio-chip crate"
/datum/supply_packs/security/securitybarriers
name = "Security Barriers Crate"
contains = list(/obj/item/grenade/barrier,
/obj/item/grenade/barrier,
/obj/item/grenade/barrier,
/obj/item/grenade/barrier)
cost = 20
containername = "security barriers crate"
/datum/supply_packs/security/securityclothes
name = "Security Clothing Crate"
contains = list(/obj/item/clothing/under/rank/security/corp,
/obj/item/clothing/under/rank/security/corp,
/obj/item/clothing/head/soft/sec/corp,
/obj/item/clothing/head/soft/sec/corp,
/obj/item/clothing/under/rank/warden/corp,
/obj/item/clothing/head/beret/sec/warden,
/obj/item/clothing/under/rank/head_of_security/corp,
/obj/item/clothing/head/HoS/beret)
cost = 30
containername = "security clothing crate"
/datum/supply_packs/security/officerpack // Starter pack for an officer. Contains everything in a locker but backpack (officer already start with one). Convenient way to equip new officer on highpop.
name = "Officer Starter Pack"
contains = list(/obj/item/clothing/suit/armor/vest/security,
/obj/item/radio/headset/headset_sec/alt,
/obj/item/clothing/head/soft/sec,
/obj/item/reagent_containers/spray/pepper,
/obj/item/flash,
/obj/item/grenade/flashbang,
/obj/item/storage/belt/security,
/obj/item/holosign_creator/security,
/obj/item/clothing/mask/gas/sechailer,
/obj/item/clothing/glasses/hud/security/sunglasses,
/obj/item/clothing/head/helmet,
/obj/item/melee/baton/loaded,
/obj/item/clothing/suit/armor/secjacket)
cost = 30 // Convenience has a price and this pack is genuinely loaded
containername = "officer starter crate"
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Engineering /////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_packs/engineering
name = "HEADER"
group = SUPPLY_ENGINEER
announce_beacons = list("Engineering" = list("Engineering", "Chief Engineer's Desk"))
containertype = /obj/structure/closet/crate/engineering
/datum/supply_packs/engineering/fueltank
name = "Fuel Tank Crate"
contains = list(/obj/structure/reagent_dispensers/fueltank)
cost = 8
containertype = /obj/structure/largecrate
containername = "fuel tank crate"
/datum/supply_packs/engineering/tools //the most robust crate
name = "Toolbox Crate"
contains = list(/obj/item/storage/toolbox/electrical,
/obj/item/storage/toolbox/electrical,
/obj/item/storage/toolbox/electrical,
/obj/item/storage/toolbox/mechanical,
/obj/item/storage/toolbox/mechanical,
/obj/item/storage/toolbox/mechanical)
cost = 10
containername = "electrical maintenance crate"
/datum/supply_packs/vending/engivend
name = "Engineering Vendor Supply Crate"
cost = 20
contains = list(/obj/item/vending_refill/engivend,
/obj/item/vending_refill/youtool)
containername = "engineering supply crate"
/datum/supply_packs/engineering/vending/clothingvendor
name = "Engineering Clothing Vendors Crate"
cost = 20
contains = list(/obj/item/vending_refill/engidrobe,
/obj/item/vending_refill/atmosdrobe)
containername = "engineering clothing vendor crate"
/datum/supply_packs/engineering/powergamermitts
name = "Insulated Gloves Crate"
contains = list(/obj/item/clothing/gloves/color/yellow,
/obj/item/clothing/gloves/color/yellow,
/obj/item/clothing/gloves/color/yellow)
cost = 20 //Made of pure-grade bullshittinium
containername = "insulated gloves crate"
containertype = /obj/structure/closet/crate/engineering/electrical
/datum/supply_packs/engineering/power
name = "Power Cell Crate"
contains = list(/obj/item/stock_parts/cell/high, //Changed to an extra high powercell because normal cells are useless
/obj/item/stock_parts/cell/high,
/obj/item/stock_parts/cell/high)
cost = 10
containername = "electrical maintenance crate"
containertype = /obj/structure/closet/crate/engineering/electrical
/datum/supply_packs/engineering/engiequipment
name = "Engineering Gear Crate"
contains = list(/obj/item/storage/belt/utility,
/obj/item/storage/belt/utility,
/obj/item/storage/belt/utility,
/obj/item/clothing/suit/storage/hazardvest,
/obj/item/clothing/suit/storage/hazardvest,
/obj/item/clothing/suit/storage/hazardvest,
/obj/item/clothing/head/welding,
/obj/item/clothing/head/welding,
/obj/item/clothing/head/welding,
/obj/item/clothing/head/hardhat,
/obj/item/clothing/head/hardhat,
/obj/item/clothing/head/hardhat,
/obj/item/clothing/glasses/meson/engine,
/obj/item/clothing/glasses/meson/engine)
cost = 10
containername = "engineering gear crate"
/datum/supply_packs/engineering/solar
name = "Solar Pack Crate"
contains = list(/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly,
/obj/item/solar_assembly, // 21 Solar Assemblies. 1 Extra for the controller
/obj/item/circuitboard/solar_control,
/obj/item/tracker_electronics,
/obj/item/paper/solar)
cost = 20
containername = "solar pack crate"
containertype = /obj/structure/closet/crate/engineering/electrical
/datum/supply_packs/engineering/engine
name = "Emitter Crate"
contains = list(/obj/machinery/power/emitter,
/obj/machinery/power/emitter)
cost = 10
containername = "emitter crate"
access = ACCESS_CE
containertype = /obj/structure/closet/crate/secure/engineering
/datum/supply_packs/engineering/engine/field_gen
name = "Field Generator Crate"
contains = list(/obj/machinery/field/generator,
/obj/machinery/field/generator)
cost = 10
containername = "field generator crate"
/datum/supply_packs/engineering/engine/sing_gen
name = "Singularity Generator Crate"
contains = list(/obj/machinery/the_singularitygen)
cost = 10
containername = "singularity generator crate"
/datum/supply_packs/engineering/engine/tesla
name = "Energy Ball Generator Crate"
contains = list(/obj/machinery/the_singularitygen/tesla)
cost = 10
containername = "energy ball generator crate"
/datum/supply_packs/engineering/engine/coil
name = "Tesla Coil Crate"
contains = list(/obj/machinery/power/tesla_coil,
/obj/machinery/power/tesla_coil,
/obj/machinery/power/tesla_coil)
cost = 10
containername = "tesla coil crate"
/datum/supply_packs/engineering/engine/grounding
name = "Grounding Rod Crate"
contains = list(/obj/machinery/power/grounding_rod,
/obj/machinery/power/grounding_rod)
cost = 10
containername = "grounding rod crate"
/datum/supply_packs/engineering/engine/collector
name = "Collector Crate"
contains = list(/obj/machinery/power/rad_collector,
/obj/machinery/power/rad_collector,
/obj/machinery/power/rad_collector)
cost = 10
containername = "collector crate"
/datum/supply_packs/engineering/engine/PA
name = "Particle Accelerator Crate"
contains = list(/obj/structure/particle_accelerator/fuel_chamber,
/obj/machinery/particle_accelerator/control_box,
/obj/structure/particle_accelerator/particle_emitter/center,
/obj/structure/particle_accelerator/particle_emitter/left,
/obj/structure/particle_accelerator/particle_emitter/right,
/obj/structure/particle_accelerator/power_box,
/obj/structure/particle_accelerator/end_cap)
cost = 25
containername = "particle accelerator crate"
/datum/supply_packs/engineering/radiation
name = "Radiation Protection Crate"
cost = 20
contains = list(/obj/item/clothing/head/radiation,
/obj/item/clothing/head/radiation,
/obj/item/clothing/suit/radiation,
/obj/item/clothing/suit/radiation,
/obj/item/geiger_counter,
/obj/item/geiger_counter)
containername = "radiation protection crate"
containertype = /obj/structure/closet/crate/radiation
/datum/supply_packs/engineering/engine/spacesuit
name = "Space Suit Crate"
contains = list(/obj/item/clothing/suit/space,
/obj/item/clothing/suit/space,
/obj/item/clothing/head/helmet/space,
/obj/item/clothing/head/helmet/space,
/obj/item/clothing/mask/breath,
/obj/item/clothing/mask/breath)
cost = 30
containertype = /obj/structure/closet/crate/secure
containername = "space suit crate"
access = ACCESS_EVA
/datum/supply_packs/engineering/inflatable
name = "Inflatable barriers Crate"
contains = list(/obj/item/storage/briefcase/inflatable,
/obj/item/storage/briefcase/inflatable,
/obj/item/storage/briefcase/inflatable)
cost = 20
containername = "inflatable barrier crate"
/datum/supply_packs/engineering/engine/supermatter_shard
name = "Supermatter Shard Crate"
contains = list(/obj/machinery/atmospherics/supermatter_crystal/shard)
cost = 50 //So cargo thinks twice before killing themselves with it
containertype = /obj/structure/closet/crate/secure/engineering
containername = "supermatter shard crate"
access = ACCESS_CE
/datum/supply_packs/engineering/engine/teg
name = "Thermo-Electric Generator Crate"
contains = list(
/obj/machinery/power/generator,
/obj/item/pipe/circulator,
/obj/item/pipe/circulator)
cost = 25
containertype = /obj/structure/closet/crate/secure/engineering
containername = "thermo-electric generator crate"
access = ACCESS_CE
announce_beacons = list("Engineering" = list("Chief Engineer's Desk", "Atmospherics"))
/datum/supply_packs/engineering/conveyor
name = "Conveyor Assembly Crate"
contains = list(/obj/item/conveyor_construct,
/obj/item/conveyor_construct,
/obj/item/conveyor_construct,
/obj/item/conveyor_construct,
/obj/item/conveyor_construct,
/obj/item/conveyor_construct,
/obj/item/conveyor_switch_construct,
/obj/item/paper/conveyor)
cost = 15
containername = "conveyor assembly crate"
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Medical /////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_packs/medical
name = "HEADER"
containertype = /obj/structure/closet/crate/medical
group = SUPPLY_MEDICAL
announce_beacons = list("Medbay" = list("Medbay", "Chief Medical Officer's Desk"))
/datum/supply_packs/medical/supplies
name = "Medical Supplies Crate"
contains = list(/obj/item/reagent_containers/glass/bottle/charcoal,
/obj/item/reagent_containers/glass/bottle/charcoal,
/obj/item/reagent_containers/glass/bottle/epinephrine,
/obj/item/reagent_containers/glass/bottle/epinephrine,
/obj/item/reagent_containers/glass/bottle/morphine,
/obj/item/reagent_containers/glass/bottle/morphine,
/obj/item/reagent_containers/glass/bottle/toxin,
/obj/item/reagent_containers/glass/bottle/toxin,
/obj/item/reagent_containers/glass/beaker/large,
/obj/item/reagent_containers/glass/beaker/large,
/obj/item/stack/medical/bruise_pack,
/obj/item/reagent_containers/iv_bag/salglu,
/obj/item/storage/box/beakers,
/obj/item/storage/box/syringes,
/obj/item/storage/box/bodybags,
/obj/item/storage/box/iv_bags,
/obj/item/vending_refill/medical)
cost = 20
containertype = /obj/structure/closet/crate/medical
containername = "medical supplies crate"
/datum/supply_packs/medical/firstaid
name = "First Aid Kits Crate"
contains = list(/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular)
cost = 10
containername = "first aid kits crate"
/datum/supply_packs/medical/firstaidadv
name = "Advanced First Aid Kits Crate"
contains = list(/obj/item/storage/firstaid/adv,
/obj/item/storage/firstaid/adv,
/obj/item/storage/firstaid/adv,
/obj/item/storage/firstaid/adv)
cost = 10
containername = "advanced first aid kits crate"
/datum/supply_packs/medical/firstaidmachine
name = "Machine First Aid Kits Crate"
contains = list(/obj/item/storage/firstaid/machine,
/obj/item/storage/firstaid/machine,
/obj/item/storage/firstaid/machine,
/obj/item/storage/firstaid/machine)
cost = 10
containername = "machine first aid kits crate"
/datum/supply_packs/medical/firstaibrute
name = "Brute Treatment Kits Crate"
contains = list(/obj/item/storage/firstaid/brute,
/obj/item/storage/firstaid/brute,
/obj/item/storage/firstaid/brute)
cost = 10
containername = "brute first aid kits crate"
/datum/supply_packs/medical/firstaidburns
name = "Burns Treatment Kits Crate"
contains = list(/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/fire)
cost = 10
containername = "fire first aid kits crate"
/datum/supply_packs/medical/firstaidtoxins
name = "Toxin Treatment Kits Crate"
contains = list(/obj/item/storage/firstaid/toxin,
/obj/item/storage/firstaid/toxin,
/obj/item/storage/firstaid/toxin)
cost = 10
containername = "toxin first aid kits crate"
/datum/supply_packs/medical/firstaidoxygen
name = "Oxygen Treatment Kits Crate"
contains = list(/obj/item/storage/firstaid/o2,
/obj/item/storage/firstaid/o2,
/obj/item/storage/firstaid/o2)
cost = 10
containername = "oxygen first aid kits crate"
/datum/supply_packs/medical/virus
name = "Virus Crate"
contains = list(/obj/item/reagent_containers/glass/bottle/flu_virion,
/obj/item/reagent_containers/glass/bottle/cold,
/obj/item/reagent_containers/glass/bottle/epiglottis_virion,
/obj/item/reagent_containers/glass/bottle/liver_enhance_virion,
/obj/item/reagent_containers/glass/bottle/fake_gbs,
/obj/item/reagent_containers/glass/bottle/magnitis,
/obj/item/reagent_containers/glass/bottle/pierrot_throat,
/obj/item/reagent_containers/glass/bottle/brainrot,
/obj/item/reagent_containers/glass/bottle/hullucigen_virion,
/obj/item/reagent_containers/glass/bottle/anxiety,
/obj/item/reagent_containers/glass/bottle/beesease,
/obj/item/storage/box/syringes,
/obj/item/storage/box/beakers,
/obj/item/reagent_containers/glass/bottle/mutagen)
cost = 25
containertype = /obj/structure/closet/crate/secure/plasma
containername = "virus crate"
access = ACCESS_CMO
announce_beacons = list("Medbay" = list("Virology", "Chief Medical Officer's Desk"))
/datum/supply_packs/medical/vending
name = "Medical Vending Crate"
cost = 20
contains = list(/obj/item/vending_refill/medical,
/obj/item/vending_refill/wallmed)
containername = "medical vending crate"
/datum/supply_packs/medical/vending/clothingvendor
name = "Medical Clothing Vendors Crate"
cost = 20
contains = list(/obj/item/vending_refill/medidrobe,
/obj/item/vending_refill/chemdrobe,
/obj/item/vending_refill/virodrobe)
containername = "medical clothing vendors crate"
/datum/supply_packs/medical/bloodpacks
name = "Blood Pack Variety Crate"
contains = list(/obj/item/reagent_containers/iv_bag,
/obj/item/reagent_containers/iv_bag,
/obj/item/reagent_containers/iv_bag/blood/APlus,
/obj/item/reagent_containers/iv_bag/blood/AMinus,
/obj/item/reagent_containers/iv_bag/blood/BPlus,
/obj/item/reagent_containers/iv_bag/blood/BMinus,
/obj/item/reagent_containers/iv_bag/blood/OPlus,
/obj/item/reagent_containers/iv_bag/blood/OMinus,
/obj/item/reagent_containers/iv_bag/slime,
/obj/item/reagent_containers/iv_bag/blood/vox)
cost = 35
containertype = /obj/structure/closet/crate/freezer
containername = "blood pack crate"
/datum/supply_packs/medical/iv_drip
name = "IV Drip Crate"
contains = list(/obj/machinery/iv_drip)
cost = 30
containertype = /obj/structure/closet/crate/secure
containername = "IV drip crate"
access = ACCESS_MEDICAL
/datum/supply_packs/medical/surgery
name = "Surgery Crate"
contains = list(/obj/item/cautery,
/obj/item/surgicaldrill,
/obj/item/clothing/mask/breath/medical,
/obj/item/tank/internals/anesthetic,
/obj/item/FixOVein,
/obj/item/hemostat,
/obj/item/scalpel,
/obj/item/bonegel,
/obj/item/retractor,
/obj/item/bonesetter,
/obj/item/circular_saw)
cost = 25
containertype = /obj/structure/closet/crate/secure
containername = "surgery crate"
access = ACCESS_MEDICAL
/datum/supply_packs/medical/gloves
name = "Nitrile Glove Crate"
contains = list(/obj/item/clothing/gloves/color/latex/nitrile,
/obj/item/clothing/gloves/color/latex/nitrile,
/obj/item/clothing/gloves/color/latex/nitrile,
/obj/item/clothing/gloves/color/latex/nitrile)
cost = 50
containername = "nitrile glove crate"
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Science /////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_packs/science
name = "HEADER"
group = SUPPLY_SCIENCE
announce_beacons = list("Research Division" = list("Science", "Research Director's Desk"))
containertype = /obj/structure/closet/crate/sci
/datum/supply_packs/science/robotics
name = "Robotics Assembly Crate"
contains = list(/obj/item/assembly/prox_sensor,
/obj/item/assembly/prox_sensor,
/obj/item/assembly/prox_sensor,
/obj/item/storage/toolbox/electrical,
/obj/item/storage/box/flashes,
/obj/item/stock_parts/cell/high,
/obj/item/stock_parts/cell/high)
cost = 10
containertype = /obj/structure/closet/crate/secure/scisec
containername = "robotics assembly crate"
access = ACCESS_ROBOTICS
announce_beacons = list("Research Division" = list("Robotics", "Research Director's Desk"))
/datum/supply_packs/science/robotics/mecha_ripley
name = "Circuit Crate (Ripley APLU)"
contains = list(/obj/item/book/manual/ripley_build_and_repair,
/obj/item/circuitboard/mecha/ripley/main, //TEMPORARY due to lack of circuitboard printer
/obj/item/circuitboard/mecha/ripley/peripherals) //TEMPORARY due to lack of circuitboard printer
cost = 30
containername = "\improper APLU \"Ripley\" circuit crate"
/datum/supply_packs/science/robotics/mecha_odysseus
name = "Circuit Crate (Odysseus)"
contains = list(/obj/item/circuitboard/mecha/odysseus/peripherals, //TEMPORARY due to lack of circuitboard printer
/obj/item/circuitboard/mecha/odysseus/main) //TEMPORARY due to lack of circuitboard printer
cost = 25
containername = "\improper \"Odysseus\" circuit crate"
/datum/supply_packs/science/plasma
name = "Plasma Assembly Crate"
contains = list(/obj/item/tank/internals/plasma,
/obj/item/tank/internals/plasma,
/obj/item/tank/internals/plasma,
/obj/item/assembly/igniter,
/obj/item/assembly/igniter,
/obj/item/assembly/igniter,
/obj/item/assembly/prox_sensor,
/obj/item/assembly/prox_sensor,
/obj/item/assembly/prox_sensor,
/obj/item/assembly/timer,
/obj/item/assembly/timer,
/obj/item/assembly/timer)
cost = 10
containertype = /obj/structure/closet/crate/secure/plasma
containername = "plasma assembly crate"
access = ACCESS_TOX_STORAGE
group = SUPPLY_SCIENCE
/datum/supply_packs/science/shieldwalls
name = "Shield Generators Crate"
contains = list(/obj/machinery/shieldwallgen,
/obj/machinery/shieldwallgen,
/obj/machinery/shieldwallgen,
/obj/machinery/shieldwallgen)
cost = 20
containertype = /obj/structure/closet/crate/secure/scisec
containername = "shield generators crate"
access = ACCESS_TELEPORTER
/datum/supply_packs/science/transfer_valves
name = "Tank Transfer Valves Crate"
contains = list(/obj/item/transfer_valve,
/obj/item/transfer_valve)
cost = 60
containertype = /obj/structure/closet/crate/secure/scisec
containername = "tank transfer valves crate"
access = ACCESS_RD
/datum/supply_packs/science/prototype
name = "Machine Prototype Crate"
contains = list(/obj/item/machineprototype)
cost = 80
containertype = /obj/structure/closet/crate/secure/scisec
containername = "machine prototype crate"
access = ACCESS_RESEARCH
/datum/supply_packs/science/oil
name = "Oil Tank Crate"
contains = list(/obj/structure/reagent_dispensers/oil,
/obj/item/reagent_containers/food/drinks/oilcan)
cost = 10
containertype = /obj/structure/largecrate
containername = "oil tank crate"
/datum/supply_packs/science/vending/clothingvendor
name = "Science Clothing Vendors Crate"
cost = 20
contains = list(/obj/item/vending_refill/scidrobe,
/obj/item/vending_refill/robodrobe,
/obj/item/vending_refill/genedrobe,)
containername = "science clothing vendor crate"
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Organic /////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_packs/organic
name = "HEADER"
group = SUPPLY_ORGANIC
containertype = /obj/structure/closet/crate/freezer
/datum/supply_packs/organic/food
name = "Food Crate"
contains = list(/obj/item/reagent_containers/food/condiment/flour,
/obj/item/reagent_containers/food/condiment/rice,
/obj/item/reagent_containers/food/condiment/milk,
/obj/item/reagent_containers/food/condiment/soymilk,
/obj/item/reagent_containers/food/condiment/saltshaker,
/obj/item/reagent_containers/food/condiment/peppermill,
/obj/item/kitchen/rollingpin,
/obj/item/storage/fancy/egg_box,
/obj/item/mixing_bowl,
/obj/item/mixing_bowl,
/obj/item/reagent_containers/food/condiment/enzyme,
/obj/item/reagent_containers/food/condiment/sugar,
/obj/item/reagent_containers/food/snacks/meat/monkey,
/obj/item/reagent_containers/food/snacks/grown/banana,
/obj/item/reagent_containers/food/snacks/grown/banana,
/obj/item/reagent_containers/food/snacks/grown/banana)
cost = 10
containername = "food crate"
announce_beacons = list("Kitchen" = list("Kitchen"))
/datum/supply_packs/organic/pizza
name = "Pizza Crate"
contains = list(/obj/item/pizzabox/margherita,
/obj/item/pizzabox/mushroom,
/obj/item/pizzabox/pepperoni,
/obj/item/pizzabox/vegetable,
/obj/item/pizzabox/hawaiian)
cost = 60
containername = "Pizza crate"
/datum/supply_packs/organic/monkey
name = "Monkey Crate"
contains = list (/obj/item/storage/box/monkeycubes)
cost = 20
containername = "monkey crate"
/datum/supply_packs/organic/farwa
name = "Farwa Crate"
contains = list (/obj/item/storage/box/monkeycubes/farwacubes)
cost = 20
containername = "farwa crate"
/datum/supply_packs/organic/wolpin
name = "Wolpin Crate"
contains = list (/obj/item/storage/box/monkeycubes/wolpincubes)
cost = 20
containername = "wolpin crate"
/datum/supply_packs/organic/skrell
name = "Neaera Crate"
contains = list (/obj/item/storage/box/monkeycubes/neaeracubes)
cost = 20
containername = "neaera crate"
/datum/supply_packs/organic/stok
name = "Stok Crate"
contains = list (/obj/item/storage/box/monkeycubes/stokcubes)
cost = 20
containername = "stok crate"
/datum/supply_packs/organic/party
name = "Party Equipment Crate"
contains = list(/obj/item/storage/box/drinkingglasses,
/obj/item/reagent_containers/food/drinks/shaker,
/obj/item/reagent_containers/food/drinks/bottle/patron,
/obj/item/reagent_containers/food/drinks/bottle/goldschlager,
/obj/item/reagent_containers/food/drinks/cans/ale,
/obj/item/reagent_containers/food/drinks/cans/ale,
/obj/item/reagent_containers/food/drinks/cans/beer,
/obj/item/reagent_containers/food/drinks/cans/beer,
/obj/item/reagent_containers/food/drinks/cans/beer,
/obj/item/reagent_containers/food/drinks/cans/beer,
/obj/item/grenade/confetti,
/obj/item/grenade/confetti)
cost = 20
containername = "party equipment"
announce_beacons = list("Bar" = list("Bar"))
/datum/supply_packs/organic/bar
name = "Bar Starter Kit"
contains = list(/obj/item/storage/box/drinkingglasses,
/obj/item/circuitboard/chem_dispenser/soda,
/obj/item/circuitboard/chem_dispenser/beer)
cost = 20
containername = "beer starter kit"
announce_beacons = list("Bar" = list("Bar"))
//////// livestock
/datum/supply_packs/organic/cow
name = "Cow Crate"
cost = 30
containertype = /obj/structure/closet/critter/cow
containername = "cow crate"
/datum/supply_packs/organic/pig
name = "Pig Crate"
cost = 25
containertype = /obj/structure/closet/critter/pig
containername = "pig crate"
/datum/supply_packs/organic/goat
name = "Goat Crate"
cost = 25
containertype = /obj/structure/closet/critter/goat
containername = "goat crate"
/datum/supply_packs/organic/chicken
name = "Chicken Crate"
cost = 20
containertype = /obj/structure/closet/critter/chick
containername = "chicken crate"
/datum/supply_packs/organic/turkey
name = "Turkey Crate"
cost = 20
containertype = /obj/structure/closet/critter/turkey
containername = "turkey crate"
/datum/supply_packs/organic/corgi
name = "Corgi Crate"
cost = 50
containertype = /obj/structure/closet/critter/corgi
contains = list(/obj/item/clothing/accessory/petcollar)
containername = "corgi crate"
/datum/supply_packs/organic/cat
name = "Cat Crate"
cost = 50 //Cats are worth as much as corgis.
containertype = /obj/structure/closet/critter/cat
contains = list(/obj/item/clothing/accessory/petcollar,
/obj/item/toy/cattoy)
containername = "cat crate"
/datum/supply_packs/organic/pug
name = "Pug Crate"
cost = 50
containertype = /obj/structure/closet/critter/pug
contains = list(/obj/item/clothing/accessory/petcollar)
containername = "pug crate"
/datum/supply_packs/organic/fox
name = "Fox Crate"
cost = 55 //Foxes are cool.
containertype = /obj/structure/closet/critter/fox
contains = list(/obj/item/clothing/accessory/petcollar)
containername = "fox crate"
/datum/supply_packs/organic/butterfly
name = "Butterfly Crate"
cost = 50
containertype = /obj/structure/closet/critter/butterfly
containername = "butterfly crate"
/datum/supply_packs/organic/deer
name = "Deer Crate"
cost = 56 //Deer are best.
containertype = /obj/structure/closet/critter/deer
containername = "deer crate"
/datum/supply_packs/organic/bunny
name = "Bunny Crate"
cost = 20
containertype = /obj/structure/closet/critter/bunny
containername = "bunny crate"
////// hippy gear
/datum/supply_packs/organic/hydroponics // -- Skie
name = "Hydroponics Supply Crate"
contains = list(/obj/item/reagent_containers/spray/plantbgone,
/obj/item/reagent_containers/spray/plantbgone,
/obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/hatchet,
/obj/item/cultivator,
/obj/item/plant_analyzer,
/obj/item/clothing/gloves/botanic_leather,
/obj/item/clothing/suit/apron) // Updated with new things
cost = 15
containertype = /obj/structure/closet/crate/hydroponics
containername = "hydroponics crate"
announce_beacons = list("Hydroponics" = list("Hydroponics"))
/datum/supply_packs/organic/hydroponics/hydrotank
name = "Hydroponics Watertank Crate"
contains = list(/obj/item/watertank)
cost = 10
containertype = /obj/structure/closet/crate/secure
containername = "hydroponics watertank crate"
access = ACCESS_HYDROPONICS
announce_beacons = list("Hydroponics" = list("Hydroponics"))
/datum/supply_packs/organic/hydroponics/seeds
name = "Seeds Crate"
contains = list(/obj/item/seeds/chili,
/obj/item/seeds/cotton,
/obj/item/seeds/berry,
/obj/item/seeds/corn,
/obj/item/seeds/eggplant,
/obj/item/seeds/tomato,
/obj/item/seeds/soya,
/obj/item/seeds/wheat,
/obj/item/seeds/wheat/rice,
/obj/item/seeds/carrot,
/obj/item/seeds/sunflower,
/obj/item/seeds/chanter,
/obj/item/seeds/potato,
/obj/item/seeds/sugarcane)
cost = 10
containername = "seeds crate"
/datum/supply_packs/organic/vending/hydro_refills
name = "Hydroponics Vending Machines Refills"
cost = 20
containertype = /obj/structure/closet/crate
contains = list(/obj/item/vending_refill/hydroseeds,
/obj/item/vending_refill/hydronutrients)
containername = "hydroponics supply crate"
/datum/supply_packs/organic/hydroponics/exoticseeds
name = "Exotic Seeds Crate"
contains = list(/obj/item/seeds/nettle,
/obj/item/seeds/replicapod,
/obj/item/seeds/replicapod,
/obj/item/seeds/replicapod,
/obj/item/seeds/nymph,
/obj/item/seeds/nymph,
/obj/item/seeds/nymph,
/obj/item/seeds/plump,
/obj/item/seeds/liberty,
/obj/item/seeds/amanita,
/obj/item/seeds/reishi,
/obj/item/seeds/banana,
/obj/item/seeds/eggplant/eggy,
/obj/item/seeds/random,
/obj/item/seeds/random)
cost = 15
containername = "exotic seeds crate"
/datum/supply_packs/organic/hydroponics/beekeeping_fullkit
name = "Beekeeping Starter Kit"
contains = list(/obj/structure/beebox/unwrenched,
/obj/item/honey_frame,
/obj/item/honey_frame,
/obj/item/honey_frame,
/obj/item/queen_bee/bought,
/obj/item/clothing/head/beekeeper_head,
/obj/item/clothing/suit/beekeeper_suit,
/obj/item/melee/flyswatter)
cost = 15
containername = "beekeeping starter kit"
/datum/supply_packs/organic/hydroponics/beekeeping_suits
name = "2 Beekeeper suits"
contains = list(/obj/item/clothing/head/beekeeper_head,
/obj/item/clothing/suit/beekeeper_suit,
/obj/item/clothing/head/beekeeper_head,
/obj/item/clothing/suit/beekeeper_suit)
cost = 10
containername = "beekeeper suits"
//Bottler
/datum/supply_packs/organic/bottler
name = "Brewing Buddy Bottler Unit"
contains = list(/obj/machinery/bottler,
/obj/item/wrench)
cost = 35
containername = "bottler crate"
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Materials ///////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_packs/materials
name = "HEADER"
group = SUPPLY_MATERIALS
announce_beacons = list("Engineering" = list("Engineering", "Chief Engineer's Desk", "Atmospherics"))
/datum/supply_packs/materials/metal50
name = "50 Metal Sheets Crate"
contains = list(/obj/item/stack/sheet/metal)
amount = 50
cost = 10
containername = "metal sheets crate"
/datum/supply_packs/materials/glass50
name = "50 Glass Sheets Crate"
contains = list(/obj/item/stack/sheet/glass)
amount = 50
cost = 10
containername = "glass sheets crate"
/datum/supply_packs/materials/wood30
name = "30 Wood Planks Crate"
contains = list(/obj/item/stack/sheet/wood)
amount = 30
cost = 15
containername = "wood planks crate"
/datum/supply_packs/materials/cardboard50
name = "50 Cardboard Sheets Crate"
contains = list(/obj/item/stack/sheet/cardboard)
amount = 50
cost = 10
containername = "cardboard sheets crate"
/datum/supply_packs/materials/sandstone30
name = "30 Sandstone Blocks Crate"
contains = list(/obj/item/stack/sheet/mineral/sandstone)
amount = 30
cost = 20
containername = "sandstone blocks crate"
/datum/supply_packs/materials/plastic30
name = "30 Plastic Sheets Crate"
contains = list(/obj/item/stack/sheet/plastic)
amount = 30
cost = 20
containername = "plastic sheets crate"
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Miscellaneous ///////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_packs/misc
name = "HEADER"
group = SUPPLY_MISC
/datum/supply_packs/misc/mule
name = "MULEbot Crate"
contains = list(/mob/living/simple_animal/bot/mulebot)
cost = 20
containertype = /obj/structure/largecrate/mule
containername = "\improper MULEbot crate"
/datum/supply_packs/misc/watertank
name = "Water Tank Crate"
contains = list(/obj/structure/reagent_dispensers/watertank)
cost = 8
containertype = /obj/structure/largecrate
containername = "water tank crate"
/datum/supply_packs/misc/hightank
name = "High-Capacity Water Tank Crate"
contains = list(/obj/structure/reagent_dispensers/watertank/high)
cost = 12
containertype = /obj/structure/largecrate
containername = "high-capacity water tank crate"
/datum/supply_packs/misc/lasertag
name = "Laser Tag Crate"
contains = list(/obj/item/gun/energy/laser/tag/red,
/obj/item/gun/energy/laser/tag/red,
/obj/item/gun/energy/laser/tag/red,
/obj/item/gun/energy/laser/tag/blue,
/obj/item/gun/energy/laser/tag/blue,
/obj/item/gun/energy/laser/tag/blue,
/obj/item/clothing/suit/redtag,
/obj/item/clothing/suit/redtag,
/obj/item/clothing/suit/redtag,
/obj/item/clothing/suit/bluetag,
/obj/item/clothing/suit/bluetag,
/obj/item/clothing/suit/bluetag,
/obj/item/clothing/head/helmet/redtaghelm,
/obj/item/clothing/head/helmet/bluetaghelm)
cost = 15
containername = "laser tag crate"
/datum/supply_packs/misc/religious_supplies
name = "Religious Supplies Crate"
contains = list(/obj/item/reagent_containers/food/drinks/bottle/holywater,
/obj/item/reagent_containers/food/drinks/bottle/holywater,
/obj/item/storage/bible/booze,
/obj/item/storage/bible/booze,
/obj/item/clothing/suit/hooded/chaplain_hoodie,
/obj/item/clothing/suit/hooded/chaplain_hoodie,
/obj/item/clothing/under/burial,
/obj/item/clothing/under/burial)
cost = 40
containername = "religious supplies crate"
/datum/supply_packs/misc/minerkit
name = "Shaft Miner Starter Kit"
cost = 30
access = ACCESS_QM
contains = list(/obj/item/storage/backpack/duffel/mining_conscript)
containertype = /obj/structure/closet/crate/secure
containername = "shaft miner starter kit"
/datum/supply_packs/misc/barberkit
name = "Barber Kit Crate"
contains = list(/obj/item/clothing/under/barber,
/obj/item/storage/box/lip_stick,
/obj/item/storage/box/barber)
cost = 20
containername = "barber kit crate"
/datum/supply_packs/misc/carpet
name = "Carpet Crate"
cost = 20
contains = list(/obj/item/stack/tile/carpet/twenty)
containername = "carpet crate"
///////////// Paper Work
/datum/supply_packs/misc/paper
name = "Bureaucracy Crate"
contains = list(/obj/structure/filingcabinet/chestdrawer,
/obj/item/camera_film,
/obj/item/hand_labeler,
/obj/item/hand_labeler_refill,
/obj/item/hand_labeler_refill,
/obj/item/stack/tape_roll,
/obj/item/paper_bin,
/obj/item/pen,
/obj/item/pen/blue,
/obj/item/pen/red,
/obj/item/stamp/denied,
/obj/item/stamp/granted,
/obj/item/folder/blue,
/obj/item/folder/red,
/obj/item/folder/yellow,
/obj/item/clipboard,
/obj/item/clipboard)
cost = 15
containername = "bureaucracy crate"
/datum/supply_packs/misc/book_crate
name = "Research Crate"
contains = list(/obj/item/book/codex_gigas)
cost = 15
containername = "book crate"
/datum/supply_packs/misc/book_crate/New()
contains += pick(subtypesof(/obj/item/book/manual))
contains += pick(subtypesof(/obj/item/book/manual))
contains += pick(subtypesof(/obj/item/book/manual))
contains += pick(subtypesof(/obj/item/book/manual))
..()
/datum/supply_packs/misc/tape
name = "Sticky Tape Crate"
contains = list(/obj/item/stack/tape_roll,
/obj/item/stack/tape_roll,
/obj/item/stack/tape_roll)
cost = 10
containername = "sticky tape crate"
containertype = /obj/structure/closet/crate/tape
/datum/supply_packs/misc/toner
name = "Toner Cartridges Crate"
contains = list(/obj/item/toner,
/obj/item/toner,
/obj/item/toner,
/obj/item/toner,
/obj/item/toner,
/obj/item/toner)
cost = 10
containername = "toner cartridges crate"
/datum/supply_packs/misc/artscrafts
name = "Arts and Crafts Supplies Crate"
contains = list(/obj/item/storage/fancy/crayons,
/obj/item/camera,
/obj/item/camera_film,
/obj/item/camera_film,
/obj/item/storage/photo_album,
/obj/item/stack/packageWrap,
/obj/item/reagent_containers/glass/paint/red,
/obj/item/reagent_containers/glass/paint/green,
/obj/item/reagent_containers/glass/paint/blue,
/obj/item/reagent_containers/glass/paint/yellow,
/obj/item/reagent_containers/glass/paint/violet,
/obj/item/reagent_containers/glass/paint/black,
/obj/item/reagent_containers/glass/paint/white,
/obj/item/reagent_containers/glass/paint/remover,
/obj/item/poster/random_official,
/obj/item/stack/wrapping_paper,
/obj/item/stack/wrapping_paper,
/obj/item/stack/wrapping_paper)
cost = 10
containername = "arts and crafts crate"
/datum/supply_packs/misc/posters
name = "Corporate Posters Crate"
contains = list(/obj/item/poster/random_official,
/obj/item/poster/random_official,
/obj/item/poster/random_official,
/obj/item/poster/random_official,
/obj/item/poster/random_official)
cost = 8
containername = "corporate posters crate"
///////////// Janitor Supplies
/datum/supply_packs/misc/janitor
name = "Janitorial Supplies Crate"
contains = list(/obj/item/reagent_containers/glass/bucket,
/obj/item/reagent_containers/glass/bucket,
/obj/item/reagent_containers/glass/bucket,
/obj/item/mop,
/obj/item/caution,
/obj/item/caution,
/obj/item/caution,
/obj/item/storage/bag/trash,
/obj/item/reagent_containers/spray/cleaner,
/obj/item/reagent_containers/glass/rag,
/obj/item/grenade/chem_grenade/cleaner,
/obj/item/grenade/chem_grenade/cleaner,
/obj/item/grenade/chem_grenade/cleaner)
cost = 10
containername = "janitorial supplies crate"
announce_beacons = list("Janitor" = list("Janitorial"))
/datum/supply_packs/misc/janitor/janicart
name = "Janitorial Cart and Galoshes Crate"
contains = list(/obj/structure/janitorialcart,
/obj/item/clothing/shoes/galoshes)
cost = 10
containertype = /obj/structure/largecrate
containername = "janitorial cart crate"
/datum/supply_packs/misc/janitor/janitank
name = "Janitor Watertank Backpack"
contains = list(/obj/item/watertank/janitor)
cost = 10
containertype = /obj/structure/closet/crate/secure
containername = "janitor watertank crate"
access = ACCESS_JANITOR
/datum/supply_packs/misc/janitor/lightbulbs
name = "Replacement Lights Crate"
contains = list(/obj/item/storage/box/lights/mixed,
/obj/item/storage/box/lights/mixed,
/obj/item/storage/box/lights/mixed)
cost = 10
containername = "replacement lights crate"
/datum/supply_packs/misc/noslipfloor
name = "High-traction Floor Tiles"
contains = list(/obj/item/stack/tile/noslip/loaded)
cost = 20
containername = "high-traction floor tiles"
///////////// Costumes
/datum/supply_packs/misc/costume
name = "Standard Costume Crate"
contains = list(/obj/item/storage/backpack/clown,
/obj/item/clothing/shoes/clown_shoes,
/obj/item/clothing/mask/gas/clown_hat,
/obj/item/clothing/under/rank/clown,
/obj/item/bikehorn,
/obj/item/storage/backpack/mime,
/obj/item/clothing/under/mime,
/obj/item/clothing/shoes/black,
/obj/item/clothing/gloves/color/white,
/obj/item/clothing/mask/gas/mime,
/obj/item/clothing/head/beret,
/obj/item/clothing/suit/suspenders,
/obj/item/reagent_containers/food/drinks/bottle/bottleofnothing,
/obj/item/reagent_containers/food/drinks/bottle/bottleofbanana
)
cost = 10
containertype = /obj/structure/closet/crate/secure
containername = "standard costumes"
access = ACCESS_THEATRE
/datum/supply_packs/misc/wizard
name = "Wizard Costume Crate"
contains = list(/obj/item/twohanded/staff,
/obj/item/clothing/suit/wizrobe/fake,
/obj/item/clothing/shoes/sandal,
/obj/item/clothing/head/wizard/fake)
cost = 20
containername = "wizard costume crate"
/datum/supply_packs/misc/mafia
name = "Mafia Supply Crate"
contains = list(/obj/item/clothing/suit/browntrenchcoat,
/obj/item/clothing/suit/blacktrenchcoat,
/obj/item/clothing/head/fedora/whitefedora,
/obj/item/clothing/head/fedora/brownfedora,
/obj/item/clothing/head/fedora,
/obj/item/clothing/under/flappers,
/obj/item/clothing/under/mafia,
/obj/item/clothing/under/mafia/vest,
/obj/item/clothing/under/mafia/white,
/obj/item/clothing/under/mafia/sue,
/obj/item/clothing/under/mafia/tan,
/obj/item/gun/projectile/shotgun/toy/tommygun,
/obj/item/gun/projectile/shotgun/toy/tommygun)
cost = 15
containername = "mafia supply crate"
/datum/supply_packs/misc/sunglasses
name = "Sunglasses Crate"
contains = list(/obj/item/clothing/glasses/sunglasses,
/obj/item/clothing/glasses/sunglasses,
/obj/item/clothing/glasses/sunglasses)
cost = 30
containername = "sunglasses crate"
/datum/supply_packs/misc/randomised
var/num_contained = 3 //number of items picked to be contained in a randomised crate
contains = list(/obj/item/clothing/head/collectable/chef,
/obj/item/clothing/head/collectable/paper,
/obj/item/clothing/head/collectable/tophat,
/obj/item/clothing/head/collectable/captain,
/obj/item/clothing/head/collectable/beret,
/obj/item/clothing/head/collectable/welding,
/obj/item/clothing/head/collectable/flatcap,
/obj/item/clothing/head/collectable/pirate,
/obj/item/clothing/head/collectable/kitty,
/obj/item/clothing/head/crown/fancy,
/obj/item/clothing/head/collectable/rabbitears,
/obj/item/clothing/head/collectable/wizard,
/obj/item/clothing/head/collectable/hardhat,
/obj/item/clothing/head/collectable/HoS,
/obj/item/clothing/head/collectable/thunderdome,
/obj/item/clothing/head/collectable/swat,
/obj/item/clothing/head/collectable/slime,
/obj/item/clothing/head/collectable/police,
/obj/item/clothing/head/collectable/slime,
/obj/item/clothing/head/collectable/xenom,
/obj/item/clothing/head/collectable/petehat)
name = "Collectible Hats Crate"
cost = 200
containername = "collectable hats crate! Brought to you by Bass.inc!"
/datum/supply_packs/misc/randomised/New()
manifest += "Contains any [num_contained] of:"
..()
/datum/supply_packs/misc/foamforce
name = "Foam Force Crate"
contains = list(/obj/item/gun/projectile/shotgun/toy,
/obj/item/gun/projectile/shotgun/toy,
/obj/item/gun/projectile/shotgun/toy,
/obj/item/gun/projectile/shotgun/toy,
/obj/item/gun/projectile/shotgun/toy,
/obj/item/gun/projectile/shotgun/toy,
/obj/item/gun/projectile/shotgun/toy,
/obj/item/gun/projectile/shotgun/toy)
cost = 10
containername = "foam force crate"
/datum/supply_packs/misc/foamforce/bonus
name = "Foam Force Pistols Crate"
contains = list(/obj/item/gun/projectile/automatic/toy/pistol,
/obj/item/gun/projectile/automatic/toy/pistol,
/obj/item/ammo_box/magazine/toy/pistol,
/obj/item/ammo_box/magazine/toy/pistol)
cost = 40
containername = "foam force pistols crate"
contraband = 1
/datum/supply_packs/misc/bigband
name = "Big band instrument collection"
contains = list(/obj/item/instrument/violin,
/obj/item/instrument/guitar,
/obj/item/instrument/eguitar,
/obj/item/instrument/glockenspiel,
/obj/item/instrument/accordion,
/obj/item/instrument/saxophone,
/obj/item/instrument/trombone,
/obj/item/instrument/recorder,
/obj/item/instrument/harmonica,
/obj/item/instrument/xylophone,
/obj/structure/piano)
cost = 50
containername = "Big band musical instruments collection"
/datum/supply_packs/misc/randomised/contraband
num_contained = 5
contains = list(/obj/item/storage/pill_bottle/random_drug_bottle,
/obj/item/poster/random_contraband,
/obj/item/storage/fancy/cigarettes/dromedaryco,
/obj/item/storage/fancy/cigarettes/cigpack_shadyjims)
name = "Contraband Crate"
cost = 30
containername = "crate" //let's keep it subtle, eh?
contraband = 1
/datum/supply_packs/misc/formalwear //This is a very classy crate.
name = "Formal Wear Crate"
contains = list(/obj/item/clothing/under/blacktango,
/obj/item/clothing/under/assistantformal,
/obj/item/clothing/under/assistantformal,
/obj/item/clothing/under/lawyer/bluesuit,
/obj/item/clothing/suit/storage/lawyer/bluejacket,
/obj/item/clothing/under/lawyer/purpsuit,
/obj/item/clothing/suit/storage/lawyer/purpjacket,
/obj/item/clothing/under/lawyer/black,
/obj/item/clothing/suit/storage/lawyer/blackjacket,
/obj/item/clothing/accessory/waistcoat,
/obj/item/clothing/accessory/blue,
/obj/item/clothing/accessory/red,
/obj/item/clothing/accessory/black,
/obj/item/clothing/head/bowlerhat,
/obj/item/clothing/head/fedora,
/obj/item/clothing/head/flatcap,
/obj/item/clothing/head/beret,
/obj/item/clothing/head/that,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/under/suit_jacket/charcoal,
/obj/item/clothing/under/suit_jacket/navy,
/obj/item/clothing/under/suit_jacket/burgundy,
/obj/item/clothing/under/suit_jacket/checkered,
/obj/item/clothing/under/suit_jacket/tan,
/obj/item/lipstick/random)
cost = 30 //Lots of very expensive items. You gotta pay up to look good!
containername = "formal-wear crate"
/datum/supply_packs/misc/teamcolors //For team sports like space polo
name = "Team Jerseys Crate"
// 4 red jerseys, 4 blue jerseys, and 1 beach ball
contains = list(/obj/item/clothing/under/color/red/jersey,
/obj/item/clothing/under/color/red/jersey,
/obj/item/clothing/under/color/red/jersey,
/obj/item/clothing/under/color/red/jersey,
/obj/item/clothing/under/color/blue/jersey,
/obj/item/clothing/under/color/blue/jersey,
/obj/item/clothing/under/color/blue/jersey,
/obj/item/clothing/under/color/blue/jersey,
/obj/item/beach_ball)
cost = 15
containername = "team jerseys crate"
/datum/supply_packs/misc/polo //For space polo! Or horsehead Quiditch
name = "Polo Supply Crate"
// 6 brooms, 6 horse masks for the brooms, and 1 beach ball
contains = list(/obj/item/twohanded/staff/broom,
/obj/item/twohanded/staff/broom,
/obj/item/twohanded/staff/broom,
/obj/item/twohanded/staff/broom,
/obj/item/twohanded/staff/broom,
/obj/item/twohanded/staff/broom,
/obj/item/clothing/mask/horsehead,
/obj/item/clothing/mask/horsehead,
/obj/item/clothing/mask/horsehead,
/obj/item/clothing/mask/horsehead,
/obj/item/clothing/mask/horsehead,
/obj/item/clothing/mask/horsehead,
/obj/item/beach_ball)
cost = 20
containername = "polo supply crate"
/datum/supply_packs/misc/boxing //For non log spamming cargo brawls!
name = "Boxing Supply Crate"
// 4 boxing gloves
contains = list(/obj/item/clothing/gloves/boxing/blue,
/obj/item/clothing/gloves/boxing/green,
/obj/item/clothing/gloves/boxing/yellow,
/obj/item/clothing/gloves/boxing)
cost = 15
containername = "boxing supply crate"
/datum/supply_packs/misc/vending/clothingvendor
name = "Service Clothing Vendors Crate"
cost = 20
contains = list(/obj/item/vending_refill/bardrobe,
/obj/item/vending_refill/chefdrobe,
/obj/item/vending_refill/hydrodrobe)
containername = "service clothing vendor crate"
/datum/supply_packs/misc/vending/clothingvendor/cargo
name = "Cargo Clothing Vendors Crate"
cost = 20
contains = list(/obj/item/vending_refill/cargodrobe)
containername = "cargo clothing vendor crate"
///////////// Station Goals
/datum/supply_packs/misc/station_goal
name = "Empty Station Goal Crate"
cost = 10
special = TRUE
containername = "empty station goal crate"
containertype = /obj/structure/closet/crate/engineering
/datum/supply_packs/misc/station_goal/bsa
name = "Bluespace Artillery Parts"
cost = 150
contains = list(/obj/item/circuitboard/machine/bsa/front,
/obj/item/circuitboard/machine/bsa/middle,
/obj/item/circuitboard/machine/bsa/back,
/obj/item/circuitboard/computer/bsa_control
)
containername = "bluespace artillery parts crate"
/datum/supply_packs/misc/station_goal/bluespace_tap
name = "Bluespace Harvester Parts"
cost = 150
contains = list(
/obj/item/circuitboard/machine/bluespace_tap,
/obj/item/paper/bluespace_tap
)
containername = "bluespace harvester parts crate"
/datum/supply_packs/misc/station_goal/dna_vault
name = "DNA Vault Parts"
cost = 120
contains = list(
/obj/item/circuitboard/machine/dna_vault
)
containername = "dna vault parts crate"
/datum/supply_packs/misc/station_goal/dna_probes
name = "DNA Vault Samplers"
cost = 30
contains = list(/obj/item/dna_probe,
/obj/item/dna_probe,
/obj/item/dna_probe,
/obj/item/dna_probe,
/obj/item/dna_probe
)
containername = "dna samplers crate"
/datum/supply_packs/misc/station_goal/shield_sat
name = "Shield Generator Satellite"
cost = 30
contains = list(
/obj/machinery/satellite/meteor_shield,
/obj/machinery/satellite/meteor_shield,
/obj/machinery/satellite/meteor_shield
)
containername = "shield sat crate"
/datum/supply_packs/misc/station_goal/shield_sat_control
name = "Shield System Control Board"
cost = 50
contains = list(
/obj/item/circuitboard/computer/sat_control
)
containername = "shield control board crate"
///////////// Bathroom Fixtures
/datum/supply_packs/misc/toilet
name = "Lavatory Crate"
cost = 10
contains = list(
/obj/item/bathroom_parts,
/obj/item/bathroom_parts/urinal
)
containername = "lavatory crate"
/datum/supply_packs/misc/hygiene
name = "Hygiene Station Crate"
cost = 10
contains = list(
/obj/item/bathroom_parts/sink,
/obj/item/mounted/shower
)
containername = "hygiene station crate"
/datum/supply_packs/misc/snow_machine
name = "Snow Machine Crate"
cost = 20
contains = list(
/obj/machinery/snow_machine
)
special = TRUE
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Vending /////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_packs/vending
name = "HEADER"
group = SUPPLY_VEND
/datum/supply_packs/vending/autodrobe
name = "Autodrobe Supply Crate"
contains = list(/obj/item/vending_refill/autodrobe)
cost = 15
containername = "autodrobe supply crate"
/datum/supply_packs/vending/clothes
name = "ClothesMate Supply Crate"
contains = list(/obj/item/vending_refill/clothing)
cost = 15
containername = "clothesmate supply crate"
/datum/supply_packs/vending/suit
name = "Suitlord Supply Crate"
contains = list(/obj/item/vending_refill/suitdispenser)
cost = 15
containername = "suitlord supply crate"
/datum/supply_packs/vending/hat
name = "Hatlord Supply Crate"
contains = list(/obj/item/vending_refill/hatdispenser)
cost = 15
containername = "hatlord supply crate"
/datum/supply_packs/vending/shoes
name = "Shoelord Supply Crate"
contains = list(/obj/item/vending_refill/shoedispenser)
cost = 15
containername = "shoelord supply crate"
/datum/supply_packs/vending/pets
name = "Pet Supply Crate"
contains = list(/obj/item/vending_refill/crittercare)
cost = 15
containername = "pet supply crate"
/datum/supply_packs/vending/bartending
name = "Booze-o-mat and Coffee Supply Crate"
cost = 20
contains = list(/obj/item/vending_refill/boozeomat,
/obj/item/vending_refill/coffee)
containername = "bartending supply crate"
announce_beacons = list("Bar" = list("Bar"))
/datum/supply_packs/vending/cigarette
name = "Cigarette Supply Crate"
contains = list(/obj/item/vending_refill/cigarette)
cost = 15
containername = "cigarette supply crate"
containertype = /obj/structure/closet/crate
/datum/supply_packs/vending/dinnerware
name = "Dinnerware Supply Crate"
cost = 10
contains = list(/obj/item/vending_refill/dinnerware)
containername = "dinnerware supply crate"
/datum/supply_packs/vending/imported
name = "Imported Vending Machines"
cost = 40
contains = list(/obj/item/vending_refill/sustenance,
/obj/item/vending_refill/robotics,
/obj/item/vending_refill/sovietsoda,
/obj/item/vending_refill/engineering)
containername = "unlabeled supply crate"
/datum/supply_packs/vending/ptech
name = "PTech Supply Crate"
cost = 15
contains = list(/obj/item/vending_refill/cart)
containername = "ptech supply crate"
/datum/supply_packs/vending/snack
name = "Snack Supply Crate"
contains = list(/obj/item/vending_refill/snack)
cost = 15
containername = "snacks supply crate"
/datum/supply_packs/vending/cola
name = "Softdrinks Supply Crate"
contains = list(/obj/item/vending_refill/cola)
cost = 15
containername = "softdrinks supply crate"
/datum/supply_packs/vending/vendomat
name = "Vendomat Supply Crate"
cost = 10
contains = list(/obj/item/vending_refill/assist)
containername = "vendomat supply crate"
/datum/supply_packs/vending/chinese
name = "Chinese Supply Crate"
contains = list(/obj/item/vending_refill/chinese)
cost = 15
containername = "chinese supply crate"