diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
old mode 100755
new mode 100644
index 85799682069..a3fbd9c9f86
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -1,11 +1,41 @@
//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.
-//ANOTER NOTE: Contraband is obtainable through modified supplycomp circuitboards.
+//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.
-var/list/all_supply_groups = list("Operations","Security","Hospitality","Engineering","Medical / Science","Hydroponics","Organic")
+// Supply Groups
+var/const/supply_emergency = 1
+var/const/supply_security = 2
+var/const/supply_engineer = 3
+var/const/supply_medical = 4
+var/const/supply_science = 5
+var/const/supply_organic = 6
+var/const/supply_materials = 7
+var/const/supply_misc = 8
+
+var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engineer,supply_medical,supply_science,supply_organic,supply_materials,supply_misc)
+
+/proc/get_supply_group_name(var/cat)
+ switch(cat)
+ if(1)
+ return "Emergency"
+ if(2)
+ return "Security"
+ if(3)
+ return "Engineering"
+ if(4)
+ return "Medical"
+ if(5)
+ return "Science"
+ if(6)
+ return "Food & Livestock"
+ if(7)
+ return "Raw Materials"
+ if(8)
+ return "Miscellaneous"
+
/datum/supply_packs
var/name = null
@@ -13,23 +43,104 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
var/manifest = ""
var/amount = null
var/cost = null
- var/containertype = null
+ var/containertype = /obj/structure/closet/crate
var/containername = null
var/access = null
var/hidden = 0
var/contraband = 0
- var/group = "Operations"
+ var/group = supply_misc
+
/datum/supply_packs/New()
manifest += "
"
for(var/path in contains)
if(!path) continue
- var/atom/movable/AM = new path()
- manifest += "- [AM.name]
"
- AM.loc = null //just to make sure they're deleted by the garbage collector
+ var/atom/movable/AM = path
+ manifest += "- [initial(AM.name)]
"
manifest += "
"
-/datum/supply_packs/specialops
+////// 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"
+ contains = list(/obj/machinery/bot/floorbot,
+ /obj/machinery/bot/floorbot,
+ /obj/machinery/bot/medbot,
+ /obj/machinery/bot/medbot,
+ /obj/item/weapon/tank/air,
+ /obj/item/weapon/tank/air,
+ /obj/item/weapon/tank/air,
+ /obj/item/weapon/tank/air,
+ /obj/item/weapon/tank/air,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas)
+ cost = 35
+ containertype = /obj/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/weapon/tank/air,
+ /obj/item/weapon/tank/air,
+ /obj/item/weapon/tank/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/device/flashlight,
+ /obj/item/device/flashlight,
+ /obj/item/weapon/tank/oxygen/red,
+ /obj/item/weapon/tank/oxygen/red,
+ /obj/item/weapon/extinguisher,
+ /obj/item/weapon/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"
+ contains = list(/obj/item/weapon/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/weapon/scythe,
+ /obj/item/clothing/mask/gas,
+ /obj/item/weapon/grenade/chem_grenade/antiweed,
+ /obj/item/weapon/grenade/chem_grenade/antiweed)
+ cost = 15
+ containertype = /obj/structure/closet/crate/secure/hydrosec
+ containername = "weed control crate"
+ access = access_hydroponics
+
+/datum/supply_packs/emergency/specialops
name = "Special Ops supplies"
contains = list(/obj/item/weapon/storage/box/emps,
/obj/item/weapon/grenade/smokebomb,
@@ -39,11 +150,10 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/item/weapon/grenade/chem_grenade/incendiary)
cost = 20
containertype = /obj/structure/closet/crate
- containername = "Special Ops crate"
- group = "Security"
+ containername = "special ops crate"
hidden = 1
-/datum/supply_packs/syndicate
+/datum/supply_packs/emergency/syndicate
name = "ERROR_NULL_ENTRY"
contains = list(/obj/item/weapon/storage/box/syndicate)
cost = 140
@@ -51,471 +161,281 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
containername = "crate"
hidden = 1
-/datum/supply_packs/food
- name = "Food crate"
- contains = list(/obj/item/weapon/reagent_containers/food/snacks/flour,
- /obj/item/weapon/reagent_containers/food/snacks/flour,
- /obj/item/weapon/reagent_containers/food/snacks/flour,
- /obj/item/weapon/reagent_containers/food/snacks/flour,
- /obj/item/weapon/reagent_containers/food/drinks/milk,
- /obj/item/weapon/reagent_containers/food/drinks/milk,
- /obj/item/weapon/storage/fancy/egg_box,
- /obj/item/weapon/reagent_containers/food/snacks/grown/banana,
- /obj/item/weapon/reagent_containers/food/snacks/grown/banana)
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Security ////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_packs/security
+ name = "HEADER"
+ containertype = /obj/structure/closet/crate/secure/gear
+ access = access_security
+ group = supply_security
+
+
+/datum/supply_packs/security/supplies
+ name = "Security Supplies Crate"
+ contains = list(/obj/item/weapon/storage/box/flashbangs,
+ /obj/item/weapon/storage/box/teargas,
+ /obj/item/weapon/storage/box/flashes,
+ /obj/item/weapon/storage/box/handcuffs)
cost = 10
- containertype = /obj/structure/closet/crate/freezer
- containername = "Food crate"
- group = "Hospitality"
+ containername = "security supply crate"
-/datum/supply_packs/monkey
- name = "Monkey crate"
- contains = list (/obj/item/weapon/storage/box/monkeycubes)
- cost = 20
- containertype = /obj/structure/closet/crate/freezer
- containername = "Monkey crate"
- group = "Hydroponics"
+////// Armor: Basic
-/datum/supply_packs/farwa
- name = "Farwa crate"
- contains = list (/obj/item/weapon/storage/box/farwacubes)
- cost = 30
- containertype = /obj/structure/closet/crate/freezer
- containername = "Farwa crate"
- group = "Hydroponics"
-
-/datum/supply_packs/skrell
- name = "Neaera crate"
- contains = list (/obj/item/weapon/storage/box/neaeracubes)
- cost = 30
- containertype = /obj/structure/closet/crate/freezer
- containername = "Neaera crate"
- group = "Hydroponics"
-
-/datum/supply_packs/stok
- name = "Stok crate"
- contains = list (/obj/item/weapon/storage/box/stokcubes)
- cost = 30
- containertype = /obj/structure/closet/crate/freezer
- containername = "Stok crate"
- group = "Hydroponics"
-
-/datum/supply_packs/beanbagammo
- name = "Beanbag shells"
- contains = list(/obj/item/ammo_casing/shotgun/beanbag,
- /obj/item/ammo_casing/shotgun/beanbag,
- /obj/item/ammo_casing/shotgun/beanbag,
- /obj/item/ammo_casing/shotgun/beanbag,
- /obj/item/ammo_casing/shotgun/beanbag,
- /obj/item/ammo_casing/shotgun/beanbag,
- /obj/item/ammo_casing/shotgun/beanbag,
- /obj/item/ammo_casing/shotgun/beanbag,
- /obj/item/ammo_casing/shotgun/beanbag,
- /obj/item/ammo_casing/shotgun/beanbag)
+/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
- containertype = /obj/structure/closet/crate
- containername = "Beanbag shells"
- group = "Security"
+ containername = "helmet crate"
-/datum/supply_packs/toner
- name = "Toner Cartridges"
- contains = list(/obj/item/device/toner,
- /obj/item/device/toner,
- /obj/item/device/toner,
- /obj/item/device/toner,
- /obj/item/device/toner,
- /obj/item/device/toner)
+/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
- containertype = /obj/structure/closet/crate
- containername = "Toner Cartridges"
- group = "Operations"
+ containername = "armor crate"
-/datum/supply_packs/party
- name = "Party equipment"
- contains = list(/obj/item/weapon/storage/box/drinkingglasses,
- /obj/item/weapon/reagent_containers/food/drinks/shaker,
- /obj/item/weapon/reagent_containers/food/drinks/bottle/patron,
- /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager,
- /obj/item/weapon/storage/fancy/cigarettes/dromedaryco,
- /obj/item/weapon/lipstick/random,
- /obj/item/weapon/reagent_containers/food/drinks/cans/ale,
- /obj/item/weapon/reagent_containers/food/drinks/cans/ale,
- /obj/item/weapon/reagent_containers/food/drinks/cans/beer,
- /obj/item/weapon/reagent_containers/food/drinks/cans/beer,
- /obj/item/weapon/reagent_containers/food/drinks/cans/beer,
- /obj/item/weapon/reagent_containers/food/drinks/cans/beer)
- cost = 20
- containertype = /obj/structure/closet/crate
- containername = "Party equipment"
- group = "Hospitality"
+////// Weapons: Basic
-/datum/supply_packs/internals
- name = "Internals crate"
- contains = list(/obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/weapon/tank/air,
- /obj/item/weapon/tank/air,
- /obj/item/weapon/tank/air)
+/datum/supply_packs/security/baton
+ name = "Stun Batons Crate"
+ contains = list(/obj/item/weapon/melee/baton/loaded,
+ /obj/item/weapon/melee/baton/loaded,
+ /obj/item/weapon/melee/baton/loaded)
cost = 10
- containertype = /obj/structure/closet/crate/internals
- containername = "Internals crate"
- group = "Engineering"
+ containername = "stun baton crate"
-/datum/supply_packs/evacuation
- name = "Emergency equipment"
- contains = list(/obj/item/weapon/storage/toolbox/emergency,
- /obj/item/weapon/storage/toolbox/emergency,
- /obj/item/clothing/suit/storage/hazardvest,
- /obj/item/clothing/suit/storage/hazardvest,
- /obj/item/weapon/tank/emergency_oxygen,
- /obj/item/weapon/tank/emergency_oxygen,
- /obj/item/weapon/tank/emergency_oxygen,
- /obj/item/weapon/tank/emergency_oxygen,
- /obj/item/weapon/tank/emergency_oxygen,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas)
- cost = 35
- containertype = /obj/structure/closet/crate/internals
- containername = "Emergency Crate"
- group = "Engineering"
-
-/datum/supply_packs/inflatable
- name = "Inflatable barriers"
- contains = list(/obj/item/weapon/storage/briefcase/inflatable,
- /obj/item/weapon/storage/briefcase/inflatable,
- /obj/item/weapon/storage/briefcase/inflatable)
- cost = 20
- containertype = /obj/structure/closet/crate
- containername = "Inflatable Barrier Crate"
- group = "Engineering"
-
-/datum/supply_packs/janitor
- name = "Janitorial supplies"
- contains = list(/obj/item/weapon/reagent_containers/glass/bucket,
- /obj/item/weapon/reagent_containers/glass/bucket,
- /obj/item/weapon/reagent_containers/glass/bucket,
- /obj/item/weapon/mop,
- /obj/item/weapon/caution,
- /obj/item/weapon/caution,
- /obj/item/weapon/caution,
- /obj/item/weapon/storage/bag/trash,
- /obj/item/weapon/reagent_containers/spray/cleaner,
- /obj/item/weapon/reagent_containers/glass/rag,
- /obj/item/weapon/grenade/chem_grenade/cleaner,
- /obj/item/weapon/grenade/chem_grenade/cleaner,
- /obj/item/weapon/grenade/chem_grenade/cleaner)
- cost = 10
- containertype = /obj/structure/closet/crate
- containername = "Janitorial supplies"
- group = "Operations"
-
-/datum/supply_packs/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/lightbulbs
- name = "Replacement lights"
- contains = list(/obj/item/weapon/storage/box/lights/mixed,
- /obj/item/weapon/storage/box/lights/mixed,
- /obj/item/weapon/storage/box/lights/mixed)
- cost = 10
- containertype = /obj/structure/closet/crate
- containername = "Replacement lights"
- group = "Engineering"
-
-/datum/supply_packs/costume
- name = "Standard Costume crate"
- contains = list(/obj/item/weapon/storage/backpack/clown,
- /obj/item/clothing/shoes/clown_shoes,
- /obj/item/clothing/mask/gas/clown_hat,
- /obj/item/clothing/under/rank/clown,
- /obj/item/weapon/bikehorn,
- /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/weapon/reagent_containers/food/drinks/bottle/bottleofnothing)
- cost = 10
- containertype = /obj/structure/closet/crate/secure
- containername = "Standard Costumes"
- access = access_theatre
- group = "Operations"
-
-/datum/supply_packs/wizard
- name = "Wizard costume"
- contains = list(/obj/item/weapon/staff,
- /obj/item/clothing/suit/wizrobe/fake,
- /obj/item/clothing/shoes/sandal,
- /obj/item/clothing/head/wizard/fake)
- cost = 20
- containertype = /obj/structure/closet/crate
- containername = "Wizard costume crate"
- group = "Operations"
-
-/datum/supply_packs/mule
- name = "MULEbot Crate"
- contains = list(/obj/machinery/bot/mulebot)
- cost = 20
- containertype = /obj/structure/largecrate/mule
- containername = "MULEbot Crate"
- group = "Operations"
-
-/datum/supply_packs/cargotrain
- name = "Cargo Train Tug"
- contains = list(/obj/vehicle/train/cargo/engine)
- cost = 45
- containertype = /obj/structure/largecrate
- containername = "Cargo Train Tug Crate"
- group = "Operations"
-
-/datum/supply_packs/cargotrailer
- name = "Cargo Train Trolley"
- contains = list(/obj/vehicle/train/cargo/trolley)
+/datum/supply_packs/security/laser
+ name = "Lasers Crate"
+ contains = list(/obj/item/weapon/gun/energy/laser,
+ /obj/item/weapon/gun/energy/laser,
+ /obj/item/weapon/gun/energy/laser)
cost = 15
- containertype = /obj/structure/largecrate
- containername = "Cargo Train Trolley Crate"
- group = "Operations"
+ containername = "laser crate"
-/datum/supply_packs/hydroponics // -- Skie
- name = "Hydroponics Supply Crate"
- contains = list(/obj/item/weapon/reagent_containers/spray/plantbgone,
- /obj/item/weapon/reagent_containers/spray/plantbgone,
- /obj/item/weapon/reagent_containers/glass/bottle/ammonia,
- /obj/item/weapon/reagent_containers/glass/bottle/ammonia,
- /obj/item/weapon/hatchet,
- /obj/item/weapon/minihoe,
- /obj/item/device/analyzer/plant_analyzer,
- /obj/item/clothing/gloves/botanic_leather,
- /obj/item/clothing/suit/apron,
- /obj/item/weapon/minihoe,
- /obj/item/weapon/storage/box/botanydisk
- ) // Updated with new things
+/datum/supply_packs/security/taser
+ name = "Stun Guns Crate"
+ contains = list(/obj/item/weapon/gun/energy/advtaser,
+ /obj/item/weapon/gun/energy/advtaser,
+ /obj/item/weapon/gun/energy/advtaser)
cost = 15
- containertype = /obj/structure/closet/crate/hydroponics
- containername = "Hydroponics crate"
- access = access_hydroponics
- group = "Hydroponics"
+ containername = "stun gun crate"
-//////// livestock
-/datum/supply_packs/organic/cow
- name = "Cow Crate"
- cost = 30
- containertype = /obj/structure/largecrate/cow
- containername = "cow crate"
- group = "Organic"
+/datum/supply_packs/security/disabler
+ name = "Disabler Crate"
+ contains = list(/obj/item/weapon/gun/energy/disabler,
+ /obj/item/weapon/gun/energy/disabler,
+ /obj/item/weapon/gun/energy/disabler)
+ cost = 10
+ containername = "disabler crate"
-/datum/supply_packs/organic/goat
- name = "Goat Crate"
+///// Armory stuff
+
+/datum/supply_packs/security/armory
+ name = "HEADER"
+ containertype = /obj/structure/closet/crate/secure/weapon
+ access = access_armory
+
+///// 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/weapon/shield/riot,
+ /obj/item/weapon/shield/riot,
+ /obj/item/weapon/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/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 = "Combat Shotguns Crate"
+ contains = list(/obj/item/weapon/gun/projectile/shotgun/combat,
+ /obj/item/weapon/gun/projectile/shotgun/combat,
+ /obj/item/weapon/gun/projectile/shotgun/combat,
+ /obj/item/weapon/storage/belt/bandolier,
+ /obj/item/weapon/storage/belt/bandolier,
+ /obj/item/weapon/storage/belt/bandolier)
+ cost = 20
+ containername = "combat shotgun crate"
+
+/datum/supply_packs/security/armory/expenergy
+ name = "Energy Guns Crate"
+ contains = list(/obj/item/weapon/gun/energy/gun,
+ /obj/item/weapon/gun/energy/gun) // Only two guns to keep costs down
cost = 25
- containertype = /obj/structure/largecrate/goat
- containername = "goat crate"
- group = "Organic"
+ containertype = /obj/structure/closet/crate/secure/plasma
+ containername = "energy gun crate"
-/datum/supply_packs/organic/chicken
- name = "Chicken Crate"
+/datum/supply_packs/security/armory/eweapons
+ name = "Incendiary Weapons Crate"
+ contains = list(/obj/item/weapon/flamethrower/full,
+ /obj/item/weapon/tank/plasma,
+ /obj/item/weapon/tank/plasma,
+ /obj/item/weapon/tank/plasma,
+ /obj/item/weapon/grenade/chem_grenade/incendiary,
+ /obj/item/weapon/grenade/chem_grenade/incendiary,
+ /obj/item/weapon/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
+
+/////// Implants & etc
+
+/datum/supply_packs/security/armory/loyalty
+ name = "Loyalty Implants Crate"
+ contains = list (/obj/item/weapon/storage/lockbox/loyalty)
+ cost = 40
+ containername = "loyalty implant crate"
+
+/datum/supply_packs/security/armory/trackingimp
+ name = "Tracking Implants Crate"
+ contains = list (/obj/item/weapon/storage/box/trackimp)
cost = 20
- containertype = /obj/structure/largecrate/chick
- containername = "chicken crate"
- group = "Organic"
+ containername = "tracking implant crate"
-/datum/supply_packs/organic/corgi
- name = "Corgi Crate"
- cost = 50
- containertype = /obj/structure/largecrate/lisa
- containername = "corgi crate"
- group = "Organic"
-
-/datum/supply_packs/organic/cat
- name = "Cat crate"
- cost = 50 //Cats are worth as much as corgis.
- containertype = /obj/structure/largecrate/cat
- containername = "cat crate"
- group = "Organic"
-
-/datum/supply_packs/organic/fox
- name = "Fox Crate"
- cost = 55 //Foxes are cool.
- containertype = /obj/structure/closet/critter/fox
- containername = "fox crate"
- group = "Organic"
-
-/datum/supply_packs/seeds
- name = "Seeds Crate"
- contains = list(/obj/item/seeds/chiliseed,
- /obj/item/seeds/berryseed,
- /obj/item/seeds/cornseed,
- /obj/item/seeds/eggplantseed,
- /obj/item/seeds/tomatoseed,
- /obj/item/seeds/soyaseed,
- /obj/item/seeds/wheatseed,
- /obj/item/seeds/carrotseed,
- /obj/item/seeds/sunflowerseed,
- /obj/item/seeds/chantermycelium,
- /obj/item/seeds/potatoseed,
- /obj/item/seeds/sugarcaneseed)
- cost = 10
- containertype = /obj/structure/closet/crate/hydroponics
- containername = "Seeds crate"
- access = access_hydroponics
- group = "Hydroponics"
-
-/datum/supply_packs/weedcontrol
- name = "Weed Control Crate"
- contains = list(/obj/item/weapon/scythe,
- /obj/item/clothing/mask/gas,
- /obj/item/weapon/grenade/chem_grenade/antiweed,
- /obj/item/weapon/grenade/chem_grenade/antiweed)
+/datum/supply_packs/security/armory/chemimp
+ name = "Chemical Implants Crate"
+ contains = list (/obj/item/weapon/storage/box/chemimp)
cost = 20
- containertype = /obj/structure/closet/crate/secure/hydrosec
- containername = "Weed control crate"
- access = access_hydroponics
- group = "Hydroponics"
+ containername = "chemical implant crate"
-/datum/supply_packs/exoticseeds
- name = "Exotic Seeds Crate"
- contains = list(/obj/item/seeds/nettleseed,
- /obj/item/seeds/replicapod,
- /obj/item/seeds/replicapod,
- /obj/item/seeds/replicapod,
- /obj/item/seeds/plumpmycelium,
- /obj/item/seeds/libertymycelium,
- /obj/item/seeds/amanitamycelium,
- /obj/item/seeds/reishimycelium,
- /obj/item/seeds/bananaseed,
- /obj/item/seeds/eggyseed,
- /obj/item/seeds/bloodtomatoseed)
- cost = 15
- containertype = /obj/structure/closet/crate/hydroponics
- containername = "Exotic Seeds crate"
- access = access_hydroponics
- group = "Hydroponics"
+/datum/supply_packs/security/armory/exileimp
+ name = "Exile Implants Crate"
+ contains = list (/obj/item/weapon/storage/box/exileimp)
+ cost = 30
+ containername = "exile implant crate"
-/datum/supply_packs/medical
- name = "Medical crate"
- contains = list(/obj/item/weapon/storage/firstaid/regular,
- /obj/item/weapon/storage/firstaid/fire,
- /obj/item/weapon/storage/firstaid/toxin,
- /obj/item/weapon/storage/firstaid/o2,
- /obj/item/weapon/storage/firstaid/adv,
- /obj/item/weapon/reagent_containers/glass/bottle/antitoxin,
- /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,
- /obj/item/weapon/reagent_containers/glass/bottle/stoxin,
- /obj/item/weapon/storage/box/syringes,
- /obj/item/weapon/storage/box/autoinjectors)
- cost = 10
- containertype = /obj/structure/closet/crate/medical
- containername = "Medical crate"
- group = "Medical / Science"
+/datum/supply_packs/security/securitybarriers
+ name = "Security Barriers Crate"
+ contains = list(/obj/machinery/deployable/barrier,
+ /obj/machinery/deployable/barrier,
+ /obj/machinery/deployable/barrier,
+ /obj/machinery/deployable/barrier)
+ cost = 20
+ containername = "security barriers crate"
-/datum/supply_packs/virus
- name = "Virus crate"
-/* contains = list(/obj/item/weapon/reagent_containers/glass/bottle/flu_virion,
- /obj/item/weapon/reagent_containers/glass/bottle/cold,
- /obj/item/weapon/reagent_containers/glass/bottle/epiglottis_virion,
- /obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion,
- /obj/item/weapon/reagent_containers/glass/bottle/fake_gbs,
- /obj/item/weapon/reagent_containers/glass/bottle/magnitis,
- /obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat,
- /obj/item/weapon/reagent_containers/glass/bottle/brainrot,
- /obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion,
- /obj/item/weapon/storage/box/syringes,
- /obj/item/weapon/storage/box/beakers,
- /obj/item/weapon/reagent_containers/glass/bottle/mutagen)*/
- contains = list(/obj/item/weapon/virusdish/random,
- /obj/item/weapon/virusdish/random,
- /obj/item/weapon/virusdish/random,
- /obj/item/weapon/virusdish/random)
- cost = 25
- containertype = "/obj/structure/closet/crate/secure"
- containername = "Virus crate"
- access = access_cmo
- group = "Medical / Science"
+/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/metal50
- name = "50 Metal Sheets"
- contains = list(/obj/item/stack/sheet/metal)
- amount = 50
- cost = 10
- containertype = /obj/structure/closet/crate
- containername = "Metal sheets crate"
- group = "Engineering"
-/datum/supply_packs/glass50
- name = "50 Glass Sheets"
- contains = list(/obj/item/stack/sheet/glass)
- amount = 50
- cost = 10
- containertype = /obj/structure/closet/crate
- containername = "Glass sheets crate"
- group = "Engineering"
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Engineering /////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
-/datum/supply_packs/electrical
- name = "Electrical maintenance crate"
- contains = list(/obj/item/weapon/storage/toolbox/electrical,
- /obj/item/weapon/storage/toolbox/electrical,
- /obj/item/clothing/gloves/yellow,
- /obj/item/clothing/gloves/yellow,
- /obj/item/weapon/stock_parts/cell,
- /obj/item/weapon/stock_parts/cell,
- /obj/item/weapon/stock_parts/cell/high,
- /obj/item/weapon/stock_parts/cell/high)
- cost = 15
- containertype = /obj/structure/closet/crate
- containername = "Electrical maintenance crate"
- group = "Engineering"
+/datum/supply_packs/engineering
+ name = "HEADER"
+ group = supply_engineer
-/datum/supply_packs/mechanical
- name = "Mechanical maintenance crate"
- contains = list(/obj/item/weapon/storage/belt/utility/full,
- /obj/item/weapon/storage/belt/utility/full,
- /obj/item/weapon/storage/belt/utility/full,
- /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/hardhat)
- cost = 10
- containertype = /obj/structure/closet/crate
- containername = "Mechanical maintenance crate"
- group = "Engineering"
-/datum/supply_packs/watertank
- name = "Water tank crate"
- contains = list(/obj/structure/reagent_dispensers/watertank)
- cost = 8
- containertype = /obj/structure/largecrate
- containername = "water tank crate"
- group = "Hydroponics"
-
-/datum/supply_packs/fueltank
- name = "Fuel tank crate"
+/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"
- group = "Engineering"
-/datum/supply_packs/coolanttank
- name = "Coolant tank crate"
- contains = list(/obj/structure/reagent_dispensers/coolanttank)
- cost = 16
- containertype = /obj/structure/largecrate
- containername = "coolant tank crate"
- group = "Medical / Science"
+/datum/supply_packs/engineering/tools //the most robust crate
+ name = "Toolbox Crate"
+ contains = list(/obj/item/weapon/storage/toolbox/electrical,
+ /obj/item/weapon/storage/toolbox/electrical,
+ /obj/item/weapon/storage/toolbox/mechanical,
+ /obj/item/weapon/storage/toolbox/electrical,
+ /obj/item/weapon/storage/toolbox/mechanical,
+ /obj/item/weapon/storage/toolbox/mechanical)
+ cost = 10
+ containername = "electrical maintenance crate"
+/datum/supply_packs/engineering/powergamermitts
+ name = "Insulated Gloves Crate"
+ contains = list(/obj/item/clothing/gloves/yellow,
+ /obj/item/clothing/gloves/yellow,
+ /obj/item/clothing/gloves/yellow)
+ cost = 20 //Made of pure-grade bullshittinium
+ containername = "insulated gloves crate"
-/datum/supply_packs/solar
- name = "Solar Pack crate"
+/datum/supply_packs/engineering/power
+ name = "Powercell Crate"
+ contains = list(/obj/item/weapon/stock_parts/cell/high, //Changed to an extra high powercell because normal cells are useless
+ /obj/item/weapon/stock_parts/cell/high,
+ /obj/item/weapon/stock_parts/cell/high)
+ cost = 10
+ containername = "electrical maintenance crate"
+
+/datum/supply_packs/engineering/engiequipment
+ name = "Engineering Gear Crate"
+ contains = list(/obj/item/weapon/storage/belt/utility,
+ /obj/item/weapon/storage/belt/utility,
+ /obj/item/weapon/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)
+ 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,
@@ -541,48 +461,40 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/item/weapon/tracker_electronics,
/obj/item/weapon/paper/solar)
cost = 20
- containertype = /obj/structure/closet/crate
containername = "solar pack crate"
- group = "Engineering"
-/datum/supply_packs/engine
- name = "Emitter crate"
+/datum/supply_packs/engineering/engine
+ name = "Emitter Crate"
contains = list(/obj/machinery/power/emitter,
/obj/machinery/power/emitter)
cost = 10
containertype = /obj/structure/closet/crate/secure
- containername = "Emitter crate"
+ containername = "emitter crate"
access = access_ce
- group = "Engineering"
-/datum/supply_packs/engine/field_gen
- name = "Field Generator crate"
+/datum/supply_packs/engineering/engine/field_gen
+ name = "Field Generator Crate"
contains = list(/obj/machinery/field_generator,
/obj/machinery/field_generator)
- containertype = /obj/structure/closet/crate/secure
- containername = "Field Generator crate"
- access = access_ce
- group = "Engineering"
+ cost = 10
+ containername = "field generator crate"
-/datum/supply_packs/engine/sing_gen
- name = "Singularity Generator crate"
+/datum/supply_packs/engineering/engine/sing_gen
+ name = "Singularity Generator Crate"
contains = list(/obj/machinery/the_singularitygen)
- containertype = /obj/structure/closet/crate/secure
- containername = "Singularity Generator crate"
- access = access_ce
- group = "Engineering"
+ cost = 10
+ containername = "singularity generator crate"
-/datum/supply_packs/engine/collector
- name = "Collector 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)
- containername = "Collector crate"
- group = "Engineering"
+ cost = 10
+ containername = "collector crate"
-/datum/supply_packs/engine/PA
- name = "Particle Accelerator crate"
- cost = 40
+/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,
@@ -590,53 +502,195 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/structure/particle_accelerator/particle_emitter/right,
/obj/structure/particle_accelerator/power_box,
/obj/structure/particle_accelerator/end_cap)
- containertype = /obj/structure/closet/crate/secure
- containername = "Particle Accelerator crate"
- access = access_ce
- group = "Engineering"
+ cost = 25
+ containername = "particle accelerator crate"
-/datum/supply_packs/mecha_ripley
+/datum/supply_packs/engineering/engine/spacesuit
+ name = "Space Suit Crate"
+ contains = list(/obj/item/clothing/suit/space,
+ /obj/item/clothing/head/helmet/space,
+ /obj/item/clothing/mask/breath,)
+ cost = 80
+ containertype = /obj/structure/closet/crate/secure
+ containername = "space suit crate"
+ access = access_eva
+
+/datum/supply_packs/engineering/inflatable
+ name = "Inflatable barriers"
+ contains = list(/obj/item/weapon/storage/briefcase/inflatable,
+ /obj/item/weapon/storage/briefcase/inflatable,
+ /obj/item/weapon/storage/briefcase/inflatable)
+ cost = 20
+ containername = "Inflatable Barrier Crate"
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Medical /////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_packs/medical
+ name = "HEADER"
+ containertype = /obj/structure/closet/crate/medical
+ group = supply_medical
+
+
+/datum/supply_packs/medical/supplies
+ name = "Medical Supplies Crate"
+ contains = list(/obj/item/weapon/reagent_containers/glass/bottle/antitoxin,
+ /obj/item/weapon/reagent_containers/glass/bottle/antitoxin,
+ /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,
+ /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,
+ /obj/item/weapon/reagent_containers/glass/bottle/stoxin,
+ /obj/item/weapon/reagent_containers/glass/bottle/stoxin,
+ /obj/item/weapon/reagent_containers/glass/bottle/toxin,
+ /obj/item/weapon/reagent_containers/glass/bottle/toxin,
+ /obj/item/weapon/reagent_containers/glass/beaker/large,
+ /obj/item/weapon/reagent_containers/glass/beaker/large,
+ /obj/item/stack/medical/bruise_pack,
+ /obj/item/weapon/storage/box/beakers,
+ /obj/item/weapon/storage/box/syringes,
+ /obj/item/weapon/storage/box/bodybags)
+ 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/weapon/storage/firstaid/regular,
+ /obj/item/weapon/storage/firstaid/regular,
+ /obj/item/weapon/storage/firstaid/regular,
+ /obj/item/weapon/storage/firstaid/regular)
+ cost = 10
+ containername = "first aid kits crate"
+
+/datum/supply_packs/medical/firstaidadv
+ name = "Advaced First Aid Kits Crate"
+ contains = list(/obj/item/weapon/storage/firstaid/adv,
+ /obj/item/weapon/storage/firstaid/adv,
+ /obj/item/weapon/storage/firstaid/adv,
+ /obj/item/weapon/storage/firstaid/adv)
+ cost = 10
+ containername = "advaced first aid kits crate"
+
+/datum/supply_packs/medical/firstaidburns
+ name = "Burns Treatment Kits Crate"
+ contains = list(/obj/item/weapon/storage/firstaid/fire,
+ /obj/item/weapon/storage/firstaid/fire,
+ /obj/item/weapon/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/weapon/storage/firstaid/toxin,
+ /obj/item/weapon/storage/firstaid/toxin,
+ /obj/item/weapon/storage/firstaid/toxin)
+ cost = 10
+ containername = "toxin first aid kits crate"
+
+/datum/supply_packs/medical/firstaidoxygen
+ name = "Oxygen Deprivation Kits Crate"
+ contains = list(/obj/item/weapon/storage/firstaid/o2,
+ /obj/item/weapon/storage/firstaid/o2,
+ /obj/item/weapon/storage/firstaid/o2)
+ cost = 10
+ containername = "oxygen deprivation kits crate"
+
+
+/datum/supply_packs/medical/virus
+ name = "Virus Crate"
+ contains = list(/obj/item/weapon/virusdish/random,
+ /obj/item/weapon/virusdish/random,
+ /obj/item/weapon/virusdish/random,
+ /obj/item/weapon/virusdish/random)
+ cost = 25
+ containertype = /obj/structure/closet/crate/secure/plasma
+ containername = "virus crate"
+ access = access_cmo
+
+
+/datum/supply_packs/medical/bloodpacks
+ name = "Blood Pack Variety Crate"
+ contains = list(/obj/item/weapon/reagent_containers/blood/empty,
+ /obj/item/weapon/reagent_containers/blood/empty,
+ /obj/item/weapon/reagent_containers/blood/APlus,
+ /obj/item/weapon/reagent_containers/blood/AMinus,
+ /obj/item/weapon/reagent_containers/blood/BPlus,
+ /obj/item/weapon/reagent_containers/blood/BMinus,
+ /obj/item/weapon/reagent_containers/blood/OPlus,
+ /obj/item/weapon/reagent_containers/blood/OMinus)
+ 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_cmo
+
+/datum/supply_packs/medical/surgery
+ name = "Surgery crate"
+ contains = list(/obj/item/weapon/cautery,
+ /obj/item/weapon/surgicaldrill,
+ /obj/item/clothing/mask/breath/medical,
+ /obj/item/weapon/tank/anesthetic,
+ /obj/item/weapon/FixOVein,
+ /obj/item/weapon/hemostat,
+ /obj/item/weapon/scalpel,
+ /obj/item/weapon/bonegel,
+ /obj/item/weapon/retractor,
+ /obj/item/weapon/bonesetter,
+ /obj/item/weapon/circular_saw)
+ cost = 25
+ containertype = /obj/structure/closet/crate/secure
+ containername = "Surgery crate"
+ access = access_medical
+
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Science /////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_packs/science
+ name = "HEADER"
+ group = supply_science
+
+
+/datum/supply_packs/science/robotics
+ name = "Robotics Assembly Crate"
+ contains = list(/obj/item/device/assembly/prox_sensor,
+ /obj/item/device/assembly/prox_sensor,
+ /obj/item/device/assembly/prox_sensor,
+ /obj/item/weapon/storage/toolbox/electrical,
+ /obj/item/weapon/storage/box/flashes,
+ /obj/item/weapon/stock_parts/cell/high,
+ /obj/item/weapon/stock_parts/cell/high)
+ cost = 10
+ containertype = /obj/structure/closet/crate/secure
+ containername = "robotics assembly crate"
+ access = access_robotics
+
+/datum/supply_packs/science/robotics/mecha_ripley
name = "Circuit Crate (\"Ripley\" APLU)"
contains = list(/obj/item/weapon/book/manual/ripley_build_and_repair,
/obj/item/weapon/circuitboard/mecha/ripley/main, //TEMPORARY due to lack of circuitboard printer
/obj/item/weapon/circuitboard/mecha/ripley/peripherals) //TEMPORARY due to lack of circuitboard printer
cost = 30
containertype = /obj/structure/closet/crate/secure
- containername = "APLU \"Ripley\" Circuit Crate"
- access = access_robotics
- group = "Engineering"
+ containername = "\improper APLU \"Ripley\" circuit crate"
-/datum/supply_packs/mecha_odysseus
+/datum/supply_packs/science/robotics/mecha_odysseus
name = "Circuit Crate (\"Odysseus\")"
contains = list(/obj/item/weapon/circuitboard/mecha/odysseus/peripherals, //TEMPORARY due to lack of circuitboard printer
/obj/item/weapon/circuitboard/mecha/odysseus/main) //TEMPORARY due to lack of circuitboard printer
cost = 25
containertype = /obj/structure/closet/crate/secure
- containername = "\"Odysseus\" Circuit Crate"
- access = access_robotics
- group = "Engineering"
+ containername = "\improper \"Odysseus\" circuit crate"
-
-/datum/supply_packs/robotics
- name = "Robotics Assembly Crate"
- contains = list(/obj/item/device/assembly/prox_sensor,
- /obj/item/device/assembly/prox_sensor,
- /obj/item/device/assembly/prox_sensor,
- /obj/item/weapon/storage/toolbox/electrical,
- /obj/item/device/flash,
- /obj/item/device/flash,
- /obj/item/device/flash,
- /obj/item/device/flash,
- /obj/item/weapon/stock_parts/cell/high,
- /obj/item/weapon/stock_parts/cell/high)
- cost = 10
- containertype = /obj/structure/closet/crate/secure/gear
- containername = "Robotics Assembly"
- access = access_robotics
- group = "Engineering"
-
-/datum/supply_packs/plasma
- name = "Plasma assembly crate"
+/datum/supply_packs/science/plasma
+ name = "Plasma Assembly Crate"
contains = list(/obj/item/weapon/tank/plasma,
/obj/item/weapon/tank/plasma,
/obj/item/weapon/tank/plasma,
@@ -646,175 +700,16 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/item/device/assembly/prox_sensor,
/obj/item/device/assembly/prox_sensor,
/obj/item/device/assembly/prox_sensor,
- /obj/item/device/transfer_valve,
- /obj/item/device/transfer_valve,
- /obj/item/device/transfer_valve,
/obj/item/device/assembly/timer,
/obj/item/device/assembly/timer,
/obj/item/device/assembly/timer)
cost = 10
containertype = /obj/structure/closet/crate/secure/plasma
- containername = "Plasma assembly crate"
+ containername = "plasma assembly crate"
access = access_tox_storage
- group = "Medical / Science"
+ group = supply_science
-/datum/supply_packs/weapons
- name = "Weapons crate"
- contains = list(/obj/item/weapon/melee/baton/loaded,
- /obj/item/weapon/melee/baton/loaded,
- /obj/item/weapon/gun/energy/laser,
- /obj/item/weapon/gun/energy/laser,
- /obj/item/weapon/gun/energy/advtaser,
- /obj/item/weapon/gun/energy/advtaser,
- /obj/item/weapon/storage/box/flashbangs,
- /obj/item/weapon/storage/box/flashbangs)
- cost = 30
- containertype = /obj/structure/closet/crate/secure/weapon
- containername = "Weapons crate"
- access = access_security
- group = "Security"
-
-/datum/supply_packs/disabler
- name = "Disabler Crate"
- contains = list(/obj/item/weapon/gun/energy/disabler,
- /obj/item/weapon/gun/energy/disabler,
- /obj/item/weapon/gun/energy/disabler)
- cost = 10
- containertype = /obj/structure/closet/crate/secure/weapon
- containername = "disabler crate"
- access = access_security
- group = "Security"
-
-/datum/supply_packs/eweapons
- name = "Experimental weapons crate"
- contains = list(/obj/item/weapon/flamethrower/full,
- /obj/item/weapon/tank/plasma,
- /obj/item/weapon/tank/plasma,
- /obj/item/weapon/tank/plasma,
- /obj/item/weapon/grenade/chem_grenade/incendiary,
- /obj/item/weapon/grenade/chem_grenade/incendiary,
- /obj/item/weapon/grenade/chem_grenade/incendiary)
- cost = 25
- containertype = /obj/structure/closet/crate/secure/weapon
- containername = "Experimental weapons crate"
- access = access_heads
- group = "Security"
-
-/datum/supply_packs/armor
- name = "Armor crate"
- contains = list(/obj/item/clothing/head/helmet,
- /obj/item/clothing/head/helmet,
- /obj/item/clothing/suit/armor/vest,
- /obj/item/clothing/suit/armor/vest)
- cost = 15
- containertype = /obj/structure/closet/crate/secure
- containername = "Armor crate"
- access = access_security
- group = "Security"
-
-/datum/supply_packs/riot
- name = "Riot gear crate"
- contains = list(/obj/item/weapon/melee/baton/loaded,
- /obj/item/weapon/melee/baton/loaded,
- /obj/item/weapon/melee/baton/loaded,
- /obj/item/weapon/shield/riot,
- /obj/item/weapon/shield/riot,
- /obj/item/weapon/shield/riot,
- /obj/item/weapon/storage/box/flashbangs,
- /obj/item/weapon/storage/box/flashbangs,
- /obj/item/weapon/storage/box/flashbangs,
- /obj/item/weapon/restraints/handcuffs,
- /obj/item/weapon/restraints/handcuffs,
- /obj/item/weapon/restraints/handcuffs,
- /obj/item/clothing/head/helmet/riot,
- /obj/item/clothing/suit/armor/riot,
- /obj/item/clothing/head/helmet/riot,
- /obj/item/clothing/suit/armor/riot,
- /obj/item/clothing/head/helmet/riot,
- /obj/item/clothing/suit/armor/riot)
- cost = 60
- containertype = /obj/structure/closet/crate/secure
- containername = "Riot gear crate"
- access = access_armory
- group = "Security"
-
-/datum/supply_packs/loyalty
- name = "Loyalty implant crate"
- contains = list (/obj/item/weapon/storage/lockbox/loyalty)
- cost = 60
- containertype = /obj/structure/closet/crate/secure
- containername = "Loyalty implant crate"
- access = access_armory
- group = "Security"
-
-/datum/supply_packs/ballistic
- name = "Ballistic gear crate"
- contains = list(/obj/item/clothing/suit/armor/bulletproof,
- /obj/item/clothing/suit/armor/bulletproof,
- /obj/item/weapon/storage/belt/bandolier,
- /obj/item/weapon/storage/belt/bandolier,
- /obj/item/weapon/gun/projectile/shotgun/combat,
- /obj/item/weapon/gun/projectile/shotgun/combat)
- cost = 50
- containertype = /obj/structure/closet/crate/secure
- containername = "Ballistic gear crate"
- access = access_armory
- group = "Security"
-
-/datum/supply_packs/shotgunammo
- name = "Shotgun shells"
- contains = list(/obj/item/ammo_casing/shotgun,
- /obj/item/ammo_casing/shotgun,
- /obj/item/ammo_casing/shotgun,
- /obj/item/ammo_casing/shotgun,
- /obj/item/ammo_casing/shotgun,
- /obj/item/ammo_casing/shotgun,
- /obj/item/ammo_casing/shotgun,
- /obj/item/ammo_casing/shotgun,
- /obj/item/ammo_casing/shotgun,
- /obj/item/ammo_casing/shotgun)
- cost = 20
- containertype = /obj/structure/closet/crate/secure
- containername = "Shotgun shells"
- access = access_armory
- group = "Security"
-
-/datum/supply_packs/expenergy
- name = "Experimental energy gear crate"
- contains = list(/obj/item/clothing/suit/armor/laserproof,
- /obj/item/clothing/suit/armor/laserproof,
- /obj/item/weapon/gun/energy/gun,
- /obj/item/weapon/gun/energy/gun)
- cost = 50
- containertype = /obj/structure/closet/crate/secure
- containername = "Experimental energy gear crate"
- access = access_armory
- group = "Security"
-
-/datum/supply_packs/exparmor
- name = "Experimental armor crate"
- contains = list(/obj/item/clothing/suit/armor/laserproof,
- /obj/item/clothing/suit/armor/bulletproof,
- /obj/item/clothing/head/helmet/riot,
- /obj/item/clothing/suit/armor/riot)
- cost = 35
- containertype = /obj/structure/closet/crate/secure
- containername = "Experimental armor crate"
- access = access_armory
- group = "Security"
-
-/datum/supply_packs/securitybarriers
- name = "Security Barriers"
- contains = list(/obj/machinery/deployable/barrier,
- /obj/machinery/deployable/barrier,
- /obj/machinery/deployable/barrier,
- /obj/machinery/deployable/barrier)
- cost = 20
- containertype = /obj/structure/closet/crate/secure/gear
- containername = "Security Barriers crate"
- group = "Security"
-
-/datum/supply_packs/securitybarriers
+/datum/supply_packs/science/shieldwalls
name = "Shield Generators"
contains = list(/obj/machinery/shieldwallgen,
/obj/machinery/shieldwallgen,
@@ -822,11 +717,502 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/machinery/shieldwallgen)
cost = 20
containertype = /obj/structure/closet/crate/secure
- containername = "Shield Generators crate"
+ containername = "shield generators crate"
access = access_teleporter
- group = "Security"
-/datum/supply_packs/randomised
+
+/datum/supply_packs/science/transfer_valves
+ name = "Tank Transfer Valves"
+ contains = list(/obj/item/device/transfer_valve,
+ /obj/item/device/transfer_valve)
+ cost = 60
+ containertype = /obj/structure/closet/crate/secure
+ containername = "transfer valves crate"
+ access = access_rd
+
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// 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/weapon/reagent_containers/food/snacks/flour,
+ /obj/item/weapon/reagent_containers/food/snacks/flour,
+ /obj/item/weapon/reagent_containers/food/snacks/flour,
+ /obj/item/weapon/reagent_containers/food/snacks/flour,
+ /obj/item/weapon/reagent_containers/food/drinks/milk,
+ /obj/item/weapon/reagent_containers/food/drinks/soymilk,
+ /obj/item/weapon/storage/fancy/egg_box,
+ /obj/item/weapon/reagent_containers/food/condiment/enzyme,
+ /obj/item/weapon/reagent_containers/food/condiment/sugar,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/monkey,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/banana,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/banana,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/banana)
+ cost = 10
+ containername = "food crate"
+
+/datum/supply_packs/organic/pizza
+ name = "Pizza Crate"
+ contains = list(/obj/item/pizzabox/margherita,
+ /obj/item/pizzabox/mushroom,
+ /obj/item/pizzabox/meat,
+ /obj/item/pizzabox/vegetable)
+ cost = 60
+ containername = "Pizza crate"
+
+/datum/supply_packs/organic/monkey
+ name = "Monkey Crate"
+ contains = list (/obj/item/weapon/storage/box/monkeycubes)
+ cost = 20
+ containername = "monkey crate"
+
+/datum/supply_packs/organic/farwa
+ name = "Farwa crate"
+ contains = list (/obj/item/weapon/storage/box/farwacubes)
+ cost = 30
+ containername = "farwa crate"
+
+/datum/supply_packs/organic/skrell
+ name = "Neaera crate"
+ contains = list (/obj/item/weapon/storage/box/neaeracubes)
+ cost = 30
+ containername = "neaera crate"
+
+/datum/supply_packs/organic/stok
+ name = "Stok crate"
+ contains = list (/obj/item/weapon/storage/box/stokcubes)
+ cost = 30
+ containername = "stok crate"
+
+/datum/supply_packs/organic/party
+ name = "Party equipment"
+ contains = list(/obj/item/weapon/storage/box/drinkingglasses,
+ /obj/item/weapon/reagent_containers/food/drinks/shaker,
+ /obj/item/weapon/reagent_containers/food/drinks/bottle/patron,
+ /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager,
+ /obj/item/weapon/reagent_containers/food/drinks/cans/ale,
+ /obj/item/weapon/reagent_containers/food/drinks/cans/ale,
+ /obj/item/weapon/reagent_containers/food/drinks/cans/beer,
+ /obj/item/weapon/reagent_containers/food/drinks/cans/beer,
+ /obj/item/weapon/reagent_containers/food/drinks/cans/beer,
+ /obj/item/weapon/reagent_containers/food/drinks/cans/beer)
+ cost = 20
+ containername = "party equipment"
+
+//////// livestock
+/datum/supply_packs/organic/cow
+ name = "Cow Crate"
+ cost = 30
+ containertype = /obj/structure/closet/critter/cow
+ containername = "cow 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/corgi
+ name = "Corgi Crate"
+ cost = 50
+ containertype = /obj/structure/closet/critter/corgi
+ 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
+ containername = "cat crate"
+
+/datum/supply_packs/organic/pug
+ name = "Pug Crate"
+ cost = 50
+ containertype = /obj/structure/closet/critter/pug
+ containername = "pug crate"
+
+/datum/supply_packs/organic/fox
+ name = "Fox Crate"
+ cost = 55 //Foxes are cool.
+ containertype = /obj/structure/closet/critter/fox
+ containername = "fox crate"
+
+/datum/supply_packs/organic/butterfly
+ name = "Butterflies Crate"
+ cost = 50
+ containertype = /obj/structure/closet/critter/butterfly
+ containername = "butterflies crate"
+ contraband = 1
+
+////// hippy gear
+
+/datum/supply_packs/organic/hydroponics // -- Skie
+ name = "Hydroponics Supply Crate"
+ contains = list(/obj/item/weapon/reagent_containers/spray/plantbgone,
+ /obj/item/weapon/reagent_containers/spray/plantbgone,
+ /obj/item/weapon/reagent_containers/glass/bottle/ammonia,
+ /obj/item/weapon/reagent_containers/glass/bottle/ammonia,
+ /obj/item/weapon/hatchet,
+ /obj/item/weapon/minihoe,
+ /obj/item/device/analyzer/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"
+
+/datum/supply_packs/misc/hydroponics/hydrotank
+ name = "Hydroponics Watertank Backpack Crate"
+ contains = list(/obj/item/weapon/watertank)
+ cost = 10
+ containertype = /obj/structure/closet/crate/secure
+ containername = "hydroponics watertank crate"
+ access = access_hydroponics
+
+/datum/supply_packs/organic/hydroponics/seeds
+ name = "Seeds Crate"
+ contains = list(/obj/item/seeds/chiliseed,
+ /obj/item/seeds/berryseed,
+ /obj/item/seeds/cornseed,
+ /obj/item/seeds/eggplantseed,
+ /obj/item/seeds/tomatoseed,
+ /obj/item/seeds/soyaseed,
+ /obj/item/seeds/wheatseed,
+ /obj/item/seeds/carrotseed,
+ /obj/item/seeds/sunflowerseed,
+ /obj/item/seeds/chantermycelium,
+ /obj/item/seeds/potatoseed,
+ /obj/item/seeds/sugarcaneseed)
+ cost = 10
+ containername = "seeds crate"
+
+/datum/supply_packs/organic/hydroponics/exoticseeds
+ name = "Exotic Seeds Crate"
+ contains = list(/obj/item/seeds/nettleseed,
+ /obj/item/seeds/replicapod,
+ /obj/item/seeds/replicapod,
+ /obj/item/seeds/replicapod,
+ /obj/item/seeds/plumpmycelium,
+ /obj/item/seeds/libertymycelium,
+ /obj/item/seeds/amanitamycelium,
+ /obj/item/seeds/reishimycelium,
+ /obj/item/seeds/bananaseed,
+ /obj/item/seeds/eggyseed)
+ cost = 15
+ containername = "exotic seeds crate"
+
+/datum/supply_packs/organic/bee_keeper
+ name = "Beekeeping Crate"
+ contains = list(/obj/item/beezeez,
+ /obj/item/beezeez,
+ /obj/item/weapon/bee_net,
+ /obj/item/apiary,
+ /obj/item/queen_bee,
+ /obj/item/queen_bee,
+ /obj/item/queen_bee)
+ cost = 20
+ containertype = /obj/structure/closet/crate/hydroponics
+ containername = "Beekeeping crate"
+ access = access_hydroponics
+
+/datum/supply_packs/organic/vending
+ name = "Bartending Supply Crate"
+ contains = list(/obj/item/weapon/vending_refill/boozeomat,
+ /obj/item/weapon/vending_refill/boozeomat,
+ /obj/item/weapon/vending_refill/boozeomat,
+ /obj/item/weapon/vending_refill/coffee,
+ /obj/item/weapon/vending_refill/coffee,
+ /obj/item/weapon/vending_refill/coffee)
+ cost = 20
+ containername = "bartending supply crate"
+
+/datum/supply_packs/organic/foodcart
+ name = "Food Cart crate"
+ contains = list(/obj/structure/foodcart)
+ cost = 10
+ containertype = /obj/structure/largecrate
+ containername = "food cart crate"
+
+/datum/supply_packs/organic/vending/snack
+ name = "Snack Supply Crate"
+ contains = list(/obj/item/weapon/vending_refill/snack,
+ /obj/item/weapon/vending_refill/snack,
+ /obj/item/weapon/vending_refill/snack)
+ cost = 15
+ containername = "snacks supply crate"
+
+/datum/supply_packs/organic/vending/cola
+ name = "Softdrinks Supply Crate"
+ contains = list(/obj/item/weapon/vending_refill/cola,
+ /obj/item/weapon/vending_refill/cola,
+ /obj/item/weapon/vending_refill/cola)
+ cost = 15
+ containername = "softdrinks supply crate"
+
+/datum/supply_packs/organic/vending/cigarette
+ name = "Cigarette Supply Crate"
+ contains = list(/obj/item/weapon/vending_refill/cigarette,
+ /obj/item/weapon/vending_refill/cigarette,
+ /obj/item/weapon/vending_refill/cigarette)
+ cost = 15
+ containername = "cigarette supply crate"
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Materials ///////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_packs/materials
+ name = "HEADER"
+ group = supply_materials
+
+
+/datum/supply_packs/materials/metal50
+ name = "50 Metal Sheets"
+ contains = list(/obj/item/stack/sheet/metal)
+ amount = 50
+ cost = 10
+ containername = "metal sheets crate"
+
+/datum/supply_packs/materials/plasteel20
+ name = "20 Plasteel Sheets"
+ contains = list(/obj/item/stack/sheet/plasteel)
+ amount = 20
+ cost = 30
+ containername = "plasteel sheets crate"
+
+/datum/supply_packs/materials/plasteel50
+ name = "50 Plasteel Sheets"
+ contains = list(/obj/item/stack/sheet/plasteel)
+ amount = 50
+ cost = 50
+ containername = "plasteel sheets crate"
+
+/datum/supply_packs/materials/glass50
+ name = "50 Glass Sheets"
+ contains = list(/obj/item/stack/sheet/glass)
+ amount = 50
+ cost = 10
+ containername = "glass sheets crate"
+
+/datum/supply_packs/materials/cardboard50
+ name = "50 Cardboard Sheets"
+ contains = list(/obj/item/stack/sheet/cardboard)
+ amount = 50
+ cost = 10
+ containername = "cardboard sheets crate"
+
+/datum/supply_packs/materials/sandstone30
+ name = "30 Sandstone Blocks"
+ contains = list(/obj/item/stack/sheet/mineral/sandstone)
+ amount = 30
+ cost = 20
+ containername = "sandstone blocks crate"
+
+
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Miscellaneous ///////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_packs/misc
+ name = "HEADER"
+ group = supply_misc
+
+/datum/supply_packs/misc/mule
+ name = "MULEbot Crate"
+ contains = list(/obj/machinery/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/lasertag
+ name = "Laser Tag Crate"
+ contains = list(/obj/item/weapon/gun/energy/laser/redtag,
+ /obj/item/weapon/gun/energy/laser/redtag,
+ /obj/item/weapon/gun/energy/laser/redtag,
+ /obj/item/weapon/gun/energy/laser/bluetag,
+ /obj/item/weapon/gun/energy/laser/bluetag,
+ /obj/item/weapon/gun/energy/laser/bluetag,
+ /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/weapon/reagent_containers/food/drinks/bottle/holywater,
+ /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,
+ /obj/item/weapon/storage/bible/booze,
+ /obj/item/weapon/storage/bible/booze,
+ /obj/item/clothing/suit/chaplain_hoodie,
+ /obj/item/clothing/head/chaplain_hood,
+ /obj/item/clothing/suit/chaplain_hoodie,
+ /obj/item/clothing/head/chaplain_hood)
+ cost = 40
+ containername = "religious supplies crate"
+
+
+///////////// Paper Work
+
+/datum/supply_packs/misc/paper
+ name = "Bureaucracy Crate"
+ contains = list(/obj/structure/filingcabinet/chestdrawer,
+ /obj/item/device/camera_film,
+ /obj/item/weapon/hand_labeler,
+ /obj/item/weapon/paper_bin,
+ /obj/item/weapon/pen,
+ /obj/item/weapon/pen/blue,
+ /obj/item/weapon/pen/red,
+ /obj/item/weapon/folder/blue,
+ /obj/item/weapon/folder/red,
+ /obj/item/weapon/folder/yellow,
+ /obj/item/weapon/clipboard,
+ /obj/item/weapon/clipboard)
+ cost = 15
+ containername = "bureaucracy crate"
+
+/datum/supply_packs/misc/toner
+ name = "Toner Cartridges crate"
+ contains = list(/obj/item/device/toner,
+ /obj/item/device/toner,
+ /obj/item/device/toner,
+ /obj/item/device/toner,
+ /obj/item/device/toner,
+ /obj/item/device/toner)
+ cost = 10
+ containername = "toner cartridges crate"
+
+/datum/supply_packs/misc/artscrafts
+ name = "Arts and Crafts supplies"
+ contains = list(/obj/item/weapon/storage/fancy/crayons,
+ /obj/item/device/camera,
+ /obj/item/device/camera_film,
+ /obj/item/device/camera_film,
+ /obj/item/weapon/storage/photo_album,
+ /obj/item/weapon/packageWrap,
+ /obj/item/weapon/reagent_containers/glass/paint/red,
+ /obj/item/weapon/reagent_containers/glass/paint/green,
+ /obj/item/weapon/reagent_containers/glass/paint/blue,
+ /obj/item/weapon/reagent_containers/glass/paint/yellow,
+ /obj/item/weapon/reagent_containers/glass/paint/violet,
+ /obj/item/weapon/reagent_containers/glass/paint/black,
+ /obj/item/weapon/reagent_containers/glass/paint/white,
+ /obj/item/weapon/reagent_containers/glass/paint/remover,
+ /obj/item/weapon/contraband/poster,
+ /obj/item/weapon/wrapping_paper,
+ /obj/item/weapon/wrapping_paper,
+ /obj/item/weapon/wrapping_paper)
+ cost = 10
+ containername = "Arts and Crafts crate"
+
+///////////// Janitor Supplies
+
+/datum/supply_packs/misc/janitor
+ name = "Janitorial Supplies Crate"
+ contains = list(/obj/item/weapon/reagent_containers/glass/bucket,
+ /obj/item/weapon/reagent_containers/glass/bucket,
+ /obj/item/weapon/reagent_containers/glass/bucket,
+ /obj/item/weapon/mop,
+ /obj/item/weapon/caution,
+ /obj/item/weapon/caution,
+ /obj/item/weapon/caution,
+ /obj/item/weapon/storage/bag/trash,
+ /obj/item/weapon/reagent_containers/spray/cleaner,
+ /obj/item/weapon/reagent_containers/glass/rag,
+ /obj/item/weapon/grenade/chem_grenade/cleaner,
+ /obj/item/weapon/grenade/chem_grenade/cleaner,
+ /obj/item/weapon/grenade/chem_grenade/cleaner)
+ cost = 10
+ containername = "janitorial supplies crate"
+
+/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/weapon/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"
+ contains = list(/obj/item/weapon/storage/box/lights/mixed,
+ /obj/item/weapon/storage/box/lights/mixed,
+ /obj/item/weapon/storage/box/lights/mixed)
+ cost = 10
+ containername = "replacement lights"
+
+///////////// Costumes
+
+/datum/supply_packs/misc/costume
+ name = "Standard Costume Crate"
+ contains = list(/obj/item/weapon/storage/backpack/clown,
+ /obj/item/clothing/shoes/clown_shoes,
+ /obj/item/clothing/mask/gas/clown_hat,
+ /obj/item/clothing/under/rank/clown,
+ /obj/item/weapon/bikehorn,
+ /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/weapon/reagent_containers/food/drinks/bottle/bottleofnothing)
+ 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/weapon/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 =1,/obj/item/clothing/suit/blacktrenchcoat =1,/obj/item/clothing/head/fedora/whitefedora =1,
+ /obj/item/clothing/head/fedora/brownfedora =1,/obj/item/clothing/head/fedora =1,/obj/item/clothing/under/flappers =1,/obj/item/clothing/under/mafia =1,/obj/item/clothing/under/mafia/vest =1,/obj/item/clothing/under/mafia/white =1,
+ /obj/item/clothing/under/mafia/sue =1,/obj/item/clothing/under/mafia/tan =1, /obj/item/toy/crossbow/tommygun =2)
+ cost = 15
+ containername = "mafia supply 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,
@@ -850,360 +1236,61 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/item/clothing/head/collectable/petehat)
name = "Collectable hat crate!"
cost = 200
- containertype = /obj/structure/closet/crate
- containername = "Collectable hats crate! Brought to you by Bass.inc!"
- group = "Operations"
+ containername = "collectable hats crate! Brought to you by Bass.inc!"
-/datum/supply_packs/randomised/New()
+/datum/supply_packs/misc/randomised/New()
manifest += "Contains any [num_contained] of:"
..()
-/datum/supply_packs/artscrafts
- name = "Arts and Crafts supplies"
- contains = list(/obj/item/weapon/storage/fancy/crayons,
- /obj/item/device/camera,
- /obj/item/device/camera_film,
- /obj/item/device/camera_film,
- /obj/item/weapon/storage/photo_album,
- /obj/item/weapon/packageWrap,
- /obj/item/weapon/reagent_containers/glass/paint/red,
- /obj/item/weapon/reagent_containers/glass/paint/green,
- /obj/item/weapon/reagent_containers/glass/paint/blue,
- /obj/item/weapon/reagent_containers/glass/paint/yellow,
- /obj/item/weapon/reagent_containers/glass/paint/violet,
- /obj/item/weapon/reagent_containers/glass/paint/black,
- /obj/item/weapon/reagent_containers/glass/paint/white,
- /obj/item/weapon/reagent_containers/glass/paint/remover,
- /obj/item/weapon/contraband/poster,
- /obj/item/weapon/wrapping_paper,
- /obj/item/weapon/wrapping_paper,
- /obj/item/weapon/wrapping_paper)
- cost = 10
- containertype = "/obj/structure/closet/crate"
- containername = "Arts and Crafts crate"
- group = "Operations"
-
-/datum/supply_packs/randomised/contraband
- num_contained = 6
+/datum/supply_packs/misc/randomised/contraband
+ num_contained = 5
contains = list(/obj/item/weapon/storage/pill_bottle/zoom,
/obj/item/weapon/storage/pill_bottle/happy,
/obj/item/weapon/storage/pill_bottle/random_drug_bottle,
+ /obj/item/weapon/contraband/poster,
/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,
- /obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims,
- /obj/item/weapon/grenade/smokebomb,
- /obj/item/clothing/mask/cigarette/cigar/cohiba,
- /obj/item/weapon/reagent_containers/food/drinks/cans/ale,
- /obj/item/weapon/reagent_containers/food/drinks/bottle/patron,
- /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe,
- /obj/item/weapon/lipstick/random)
-
- name = "Contraband crate"
+ /obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims)
+ name = "Contraband Crate"
cost = 30
- containertype = /obj/structure/closet/crate
- containername = "Unlabeled crate"
+ containername = "crate" //let's keep it subtle, eh?
contraband = 1
- group = "Operations"
-/datum/supply_packs/boxes
- name = "Empty Box supplies"
- contains = list(/obj/item/weapon/storage/box,
- /obj/item/weapon/storage/box,
- /obj/item/weapon/storage/box,
- /obj/item/weapon/storage/box,
- /obj/item/weapon/storage/box,
- /obj/item/weapon/storage/box,
- /obj/item/weapon/storage/box,
- /obj/item/weapon/storage/box,
- /obj/item/weapon/storage/box,
- /obj/item/weapon/storage/box)
- cost = 10
- containertype = "/obj/structure/closet/crate"
- containername = "Empty Box crate"
- group = "Operations"
-
-/datum/supply_packs/surgery
- name = "Surgery crate"
- contains = list(/obj/item/weapon/cautery,
- /obj/item/weapon/surgicaldrill,
- /obj/item/clothing/mask/breath/medical,
- /obj/item/weapon/tank/anesthetic,
- /obj/item/weapon/FixOVein,
- /obj/item/weapon/hemostat,
- /obj/item/weapon/scalpel,
- /obj/item/weapon/bonegel,
- /obj/item/weapon/retractor,
- /obj/item/weapon/bonesetter,
- /obj/item/weapon/circular_saw)
- cost = 25
- containertype = "/obj/structure/closet/crate/secure"
- containername = "Surgery crate"
- access = access_medical
- group = "Medical / Science"
-
-/datum/supply_packs/sterile
- name = "Sterile equipment crate"
- contains = list(/obj/item/clothing/under/rank/medical/green,
- /obj/item/clothing/under/rank/medical/green,
- /obj/item/weapon/storage/box/masks,
- /obj/item/weapon/storage/box/gloves)
- cost = 15
- containertype = "/obj/structure/closet/crate"
- containername = "Sterile equipment crate"
- group = "Medical / Science"
-
-/datum/supply_packs/randomised/pizza
- num_contained = 5
- contains = list(/obj/item/pizzabox/margherita,
- /obj/item/pizzabox/mushroom,
- /obj/item/pizzabox/meat,
- /obj/item/pizzabox/vegetable)
- name = "Surprise pack of five dozen pizzas"
- cost = 15
- containertype = /obj/structure/closet/crate/freezer
- containername = "Pizza crate"
- group = "Hospitality"
-
-/datum/supply_packs/foodcart
- name = "Food Cart crate"
- contains = list(/obj/structure/foodcart)
- cost = 10
- containertype = /obj/structure/largecrate
- containername = "food cart crate"
- group = "Hospitality"
-
-/datum/supply_packs/formal_wear
- contains = list(/obj/item/clothing/head/that,
- /obj/item/clothing/suit/storage/lawyer/bluejacket,
- /obj/item/clothing/suit/storage/lawyer/purpjacket,
- /obj/item/clothing/under/suit_jacket,
- /obj/item/clothing/under/suit_jacket/female,
- /obj/item/clothing/under/suit_jacket/really_black,
- /obj/item/clothing/under/suit_jacket/red,
- /obj/item/clothing/shoes/black,
- /obj/item/clothing/shoes/black,
- /obj/item/clothing/suit/wcoat)
- name = "Formalwear closet"
- cost = 30
- containertype = /obj/structure/closet
- containername = "Formalwear for the best occasions."
- group = "Operations"
-/*
-/datum/supply_packs/rust_injector
- contains = list(/obj/machinery/power/rust_fuel_injector)
- name = "RUST fuel injector"
- cost = 50
- containertype = /obj/structure/closet/crate/secure/large
- containername = "RUST injector crate"
- group = "Engineering"
- access = access_engine
-/datum/supply_packs/rust_compressor
- contains = list(/obj/item/weapon/module/rust_fuel_compressor)
- name = "RUST fuel compressor circuitry"
- cost = 60
- containertype = /obj/structure/closet/crate/secure
- containername = "RUST fuel compressor circuitry"
- group = "Engineering"
- access = access_engine
-/datum/supply_packs/rust_assembly_port
- contains = list(/obj/item/weapon/module/rust_fuel_port)
- name = "RUST fuel assembly port circuitry"
- cost = 40
- containertype = /obj/structure/closet/crate/secure
- containername = "RUST fuel assembly port circuitry"
- group = "Engineering"
- access = access_engine
-/datum/supply_packs/rust_core
- contains = list(/obj/machinery/power/rust_core)
- name = "RUST Tokamak Core"
- cost = 75
- containertype = /obj/structure/closet/crate/secure/large
- containername = "RUST tokamak crate"
- group = "Engineering"
- access = access_engine
-*/
-/datum/supply_packs/shield_gen
- contains = list(/obj/item/weapon/circuitboard/shield_gen)
- name = "Experimental shield generator circuitry"
- cost = 50
- containertype = /obj/structure/closet/crate/secure
- containername = "Experimental shield generator"
- group = "Engineering"
- access = access_ce
-
-/datum/supply_packs/shield_cap
- contains = list(/obj/item/weapon/circuitboard/shield_cap)
- name = "Experimental shield capacitor circuitry"
- cost = 50
- containertype = /obj/structure/closet/crate/secure
- containername = "Experimental shield capacitor"
- group = "Engineering"
- access = access_ce
-
-/datum/supply_packs/eftpos
- contains = list(/obj/item/device/eftpos)
- name = "EFTPOS scanner"
- cost = 10
- containertype = /obj/structure/closet/crate
- containername = "EFTPOS crate"
- group = "Operations"
-
-/datum/supply_packs/teg
- contains = list(/obj/machinery/power/generator)
- name = "Mark I Thermoelectric Generator"
- cost = 75
- containertype = /obj/structure/closet/crate/secure/large
- containername = "Mk1 TEG crate"
- group = "Engineering"
- access = access_engine
-
-/datum/supply_packs/circulator
- contains = list(/obj/machinery/atmospherics/binary/circulator)
- name = "Binary atmospheric circulator"
- cost = 60
- containertype = /obj/structure/closet/crate/secure/large
- containername = "Atmospheric circulator crate"
- group = "Engineering"
- access = access_engine
-
-/datum/supply_packs/bee_keeper
- name = "Beekeeping Crate"
- contains = list(/obj/item/beezeez,
- /obj/item/beezeez,
- /obj/item/weapon/bee_net,
- /obj/item/apiary,
- /obj/item/queen_bee,
- /obj/item/queen_bee,
- /obj/item/queen_bee)
- cost = 20
- containertype = /obj/structure/closet/crate/hydroponics
- containername = "Beekeeping crate"
- access = access_hydroponics
- group = "Hydroponics"
-
-/datum/supply_packs/misc/lasertag
- name = "Laser Tag Crate"
- contains = list(/obj/item/weapon/gun/energy/laser/redtag,
- /obj/item/weapon/gun/energy/laser/redtag,
- /obj/item/weapon/gun/energy/laser/redtag,
- /obj/item/weapon/gun/energy/laser/bluetag,
- /obj/item/weapon/gun/energy/laser/bluetag,
- /obj/item/weapon/gun/energy/laser/bluetag,
- /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
- containertype = /obj/structure/closet/crate
- containername = "laser tag crate"
- group = "Operations"
-
-/datum/supply_packs/vending
- name = "Bartending Supply Crate"
- contains = list(/obj/item/weapon/vending_refill/boozeomat,
- /obj/item/weapon/vending_refill/boozeomat,
- /obj/item/weapon/vending_refill/boozeomat,
- /obj/item/weapon/vending_refill/coffee,
- /obj/item/weapon/vending_refill/coffee,
- /obj/item/weapon/vending_refill/coffee)
- cost = 15
- containertype = /obj/structure/closet/crate
- containername = "bartending supply crate"
- group = "Operations"
-
-/datum/supply_packs/vending/snack
- name = "Snack Supply Crate"
- contains = list(/obj/item/weapon/vending_refill/snack,
- /obj/item/weapon/vending_refill/snack,
- /obj/item/weapon/vending_refill/snack)
- cost = 15
- containertype = /obj/structure/closet/crate
- containername = "snacks supply crate"
- group = "Operations"
-
-/datum/supply_packs/vending/cola
- name = "Softdrinks Supply Crate"
- contains = list(/obj/item/weapon/vending_refill/cola,
- /obj/item/weapon/vending_refill/cola,
- /obj/item/weapon/vending_refill/cola)
- cost = 15
- containertype = /obj/structure/closet/crate
- containername = "softdrinks supply crate"
- group = "Operations"
-
-/datum/supply_packs/vending/cigarette
- name = "Cigarette Supply Crate"
- contains = list(/obj/item/weapon/vending_refill/cigarette,
- /obj/item/weapon/vending_refill/cigarette,
- /obj/item/weapon/vending_refill/cigarette)
- cost = 15
- containertype = /obj/structure/closet/crate
- containername = "cigarette supply crate"
- group = "Operations"
-
-/datum/supply_packs/autodrobe
- name = "Autodrobe Supply crate"
+/datum/supply_packs/misc/autodrobe
+ name = "Autodrobe Supply Crate"
contains = list(/obj/item/weapon/vending_refill/autodrobe,
- /obj/item/weapon/vending_refill/autodrobe,
/obj/item/weapon/vending_refill/autodrobe)
cost = 15
- containertype = /obj/structure/closet/crate
containername = "autodrobe supply crate"
- group = "Operations"
-/datum/supply_packs/clothingvendor
- name = "Clothing Vendor Supply crate"
- contains = list(/obj/item/weapon/vending_refill/hatdispenser,
- /obj/item/weapon/vending_refill/hatdispenser,
- /obj/item/weapon/vending_refill/hatdispenser,
- /obj/item/weapon/vending_refill/suitdispenser,
- /obj/item/weapon/vending_refill/suitdispenser,
- /obj/item/weapon/vending_refill/suitdispenser,
- /obj/item/weapon/vending_refill/shoedispenser,
- /obj/item/weapon/vending_refill/shoedispenser,
- /obj/item/weapon/vending_refill/shoedispenser)
- cost = 30
- containertype = /obj/structure/closet/crate
- containername = "clothing vendor supply crate"
- group = "Operations"
-
-/datum/supply_packs/mafia
- name = "Mafia Supply crate"
- contains = list(/obj/item/clothing/suit/browntrenchcoat =1,/obj/item/clothing/suit/blacktrenchcoat =1,/obj/item/clothing/head/fedora/whitefedora =1,
- /obj/item/clothing/head/fedora/brownfedora =1,/obj/item/clothing/head/fedora =1,/obj/item/clothing/under/flappers =1,/obj/item/clothing/under/mafia =1,/obj/item/clothing/under/mafia/vest =1,/obj/item/clothing/under/mafia/white =1,
- /obj/item/clothing/under/mafia/sue =1,/obj/item/clothing/under/mafia/tan =1, /obj/item/toy/crossbow/tommygun =2)
- cost = 15
- containertype = /obj/structure/closet/crate
- containername = "mafia supply crate"
- group = "Operations"
-
-/datum/supply_packs/fabric
- name = "Fabric crate"
- contains = list(/obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric,
- /obj/item/weapon/ore/fabric)
- cost = 30
- containertype = /obj/structure/closet/crate
- containername = "Fabric crate"
- group = "Operations"
\ No newline at end of file
+/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/weapon/lipstick/random)
+ cost = 30 //Lots of very expensive items. You gotta pay up to look good!
+ containername = "formal-wear crate"
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index c33150fae7e..35aca19bdf7 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -183,6 +183,20 @@
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/weapon/grenade/flashbang(src)
+/obj/item/weapon/storage/box/flashes
+ name = "box of flashbulbs"
+ desc = "WARNING: Flashes can cause serious eye damage, protective eyewear is required."
+ icon_state = "flashbang"
+
+ New()
+ ..()
+ new /obj/item/device/flash(src)
+ new /obj/item/device/flash(src)
+ new /obj/item/device/flash(src)
+ new /obj/item/device/flash(src)
+ new /obj/item/device/flash(src)
+ new /obj/item/device/flash(src)
+
/obj/item/weapon/storage/box/teargas
name = "box of tear gas grenades (WARNING)"
desc = "WARNING: These devices are extremely dangerous and can cause blindness and skin irritation."
@@ -242,6 +256,20 @@
new /obj/item/weapon/implanter(src)
new /obj/item/weapon/implantpad(src)
+/obj/item/weapon/storage/box/exileimp
+ name = "boxed exile implant kit"
+ desc = "Box of exile implants. It has a picture of a clown being booted through the Gateway."
+ icon_state = "implant"
+
+ New()
+ ..()
+ new /obj/item/weapon/implantcase/exile(src)
+ new /obj/item/weapon/implantcase/exile(src)
+ new /obj/item/weapon/implantcase/exile(src)
+ new /obj/item/weapon/implantcase/exile(src)
+ new /obj/item/weapon/implantcase/exile(src)
+ new /obj/item/weapon/implanter(src)
+
/obj/item/weapon/storage/box/deathimp
name = "death alarm implant kit"
desc = "Box of life sign monitoring implants."
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index 7a7accadd10..5ff118de801 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -381,6 +381,10 @@
new /obj/item/clothing/head/soft/grey(src)
if(prob(50))
new /obj/item/weapon/storage/backpack/duffel(src)
+ if(prob(40))
+ new /obj/item/clothing/under/assistantformal(src)
+ if(prob(40))
+ new /obj/item/clothing/under/assistantformal(src)
return
diff --git a/code/game/objects/structures/crates_lockers/crittercrate.dm b/code/game/objects/structures/crates_lockers/crittercrate.dm
index 2f01821abc9..cdbdacde644 100644
--- a/code/game/objects/structures/crates_lockers/crittercrate.dm
+++ b/code/game/objects/structures/crates_lockers/crittercrate.dm
@@ -6,6 +6,7 @@
icon_closed = "critter"
var/already_opened = 0
var/content_mob = null
+ var/amount = 1
/obj/structure/closet/critter/can_open()
if(welded)
@@ -21,19 +22,7 @@
return ..()
if(content_mob != null && already_opened == 0)
- if(content_mob == /mob/living/simple_animal/chick)
- var/num = rand(4, 6)
- for(var/i = 0, i < num, i++)
- new content_mob(loc)
- else if(content_mob == /mob/living/simple_animal/corgi)
- var/num = rand(0, 1)
- if(num) //No more matriarchy for cargo
- content_mob = /mob/living/simple_animal/corgi/Lisa
- new content_mob(loc)
- else if(content_mob == /mob/living/simple_animal/cat)
- if(prob(50))
- content_mob = /mob/living/simple_animal/cat/Proc
- else
+ for(var/i = 1, i <= amount, i++)
new content_mob(loc)
already_opened = 1
..()
@@ -53,7 +42,12 @@
/obj/structure/closet/critter/corgi
name = "corgi crate"
- content_mob = /mob/living/simple_animal/corgi //This statement is (not) false. See above.
+ content_mob = /mob/living/simple_animal/corgi
+
+/obj/structure/closet/critter/corgi/New()
+ if(prob(50))
+ content_mob = /mob/living/simple_animal/corgi/Lisa
+ ..()
/obj/structure/closet/critter/cow
name = "cow crate"
@@ -67,10 +61,28 @@
name = "chicken crate"
content_mob = /mob/living/simple_animal/chick
+/obj/structure/closet/critter/chick/New()
+ amount = rand(1, 3)
+ ..()
+
/obj/structure/closet/critter/cat
name = "cat crate"
content_mob = /mob/living/simple_animal/cat
+/obj/structure/closet/critter/cat/New()
+ if(prob(50))
+ content_mob = /mob/living/simple_animal/cat/Proc
+ ..()
+
+/obj/structure/closet/critter/pug
+ name = "pug crate"
+ content_mob = /mob/living/simple_animal/pug
+
/obj/structure/closet/critter/fox
name = "fox crate"
- content_mob = /mob/living/simple_animal/fox
\ No newline at end of file
+ content_mob = /mob/living/simple_animal/fox
+
+/obj/structure/closet/critter/butterfly
+ name = "butterflies crate"
+ content_mob = /mob/living/simple_animal/butterfly
+ amount = 50
\ No newline at end of file
diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm
index 6a649a098f8..57216de9efd 100644
--- a/code/game/supplyshuttle.dm
+++ b/code/game/supplyshuttle.dm
@@ -93,6 +93,7 @@ var/list/mechtoys = list(
/obj/machinery/computer/supplycomp
name = "Supply Shuttle Console"
+ desc = "Used to order supplies."
icon = 'icons/obj/computer.dmi'
icon_state = "supply"
req_access = list(access_cargo)
@@ -105,6 +106,7 @@ var/list/mechtoys = list(
/obj/machinery/computer/ordercomp
name = "Supply Ordering Console"
+ desc = "Used to order supplies from cargo staff."
icon = 'icons/obj/computer.dmi'
icon_state = "request"
circuit = "/obj/item/weapon/circuitboard/ordercomp"
@@ -271,8 +273,8 @@ var/list/mechtoys = list(
A:req_access += text2num(SP.access)
var/list/contains
- if(istype(SP,/datum/supply_packs/randomised))
- var/datum/supply_packs/randomised/SPR = SP
+ if(istype(SP,/datum/supply_packs/misc/randomised))
+ var/datum/supply_packs/misc/randomised/SPR = SP
contains = list()
if(SPR.contains.len)
for(var/j=1,j<=SPR.num_contained,j++)
@@ -347,17 +349,18 @@ var/list/mechtoys = list(
temp = "Supply points: [supply_controller.points]
"
temp += "Main Menu
"
temp += "Select a category
"
- for(var/supply_group_name in all_supply_groups )
- temp += "[supply_group_name]
"
+ for(var/cat in all_supply_groups )
+ temp += "[get_supply_group_name(cat)]
"
else
last_viewed_group = href_list["order"]
+ var/cat = text2num(last_viewed_group)
temp = "Supply points: [supply_controller.points]
"
temp += "Back to all categories
"
- temp += "Request from: [last_viewed_group]
"
- for(var/supply_name in supply_controller.supply_packs )
- var/datum/supply_packs/N = supply_controller.supply_packs[supply_name]
- if(N.hidden || N.contraband || N.group != last_viewed_group) continue //Have to send the type instead of a reference to
- temp += "[supply_name] Cost: [N.cost]
" //the obj because it would get caught by the garbage
+ temp += "Request from: [get_supply_group_name(cat)]
"
+ for(var/supply_type in supply_controller.supply_packs )
+ var/datum/supply_packs/N = supply_controller.supply_packs[supply_type]
+ if(N.hidden || N.contraband || N.group != cat) continue //Have to send the type instead of a reference to
+ temp += "[N.name] Cost: [N.cost]
" //the obj because it would get caught by the garbage
else if (href_list["doorder"])
if(world.time < reqtime)
@@ -542,17 +545,18 @@ var/list/mechtoys = list(
temp = "Supply points: [supply_controller.points]
"
temp += "Main Menu
"
temp += "Select a category
"
- for(var/supply_group_name in all_supply_groups )
- temp += "[supply_group_name]
"
+ for(var/cat in all_supply_groups )
+ temp += "[get_supply_group_name(cat)]
"
else
last_viewed_group = href_list["order"]
+ var/cat = text2num(last_viewed_group)
temp = "Supply points: [supply_controller.points]
"
temp += "Back to all categories
"
- temp += "Request from: [last_viewed_group]
"
- for(var/supply_name in supply_controller.supply_packs )
- var/datum/supply_packs/N = supply_controller.supply_packs[supply_name]
- if((N.hidden && !hacked) || (N.contraband && !can_order_contraband) || N.group != last_viewed_group) continue //Have to send the type instead of a reference to
- temp += "[supply_name] Cost: [N.cost]
" //the obj because it would get caught by the garbage
+ temp += "Request from: [get_supply_group_name(cat)]
"
+ for(var/supply_type in supply_controller.supply_packs )
+ var/datum/supply_packs/N = supply_controller.supply_packs[supply_type]
+ if((N.hidden && !hacked) || (N.contraband && !can_order_contraband) || N.group != cat) continue //Have to send the type instead of a reference to
+ temp += "[N.name] Cost: [N.cost]
" //the obj because it would get caught by the garbage
/*temp = "Supply points: [supply_controller.points]
Request what?
"
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 6972095334d..dcc01a18cab 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -175,6 +175,14 @@
)
//Lawyer
+/obj/item/clothing/suit/storage/lawyer/blackjacket
+ name = "Black Suit Jacket"
+ desc = "A snappy dress jacket."
+ icon_state = "suitjacket_black_open"
+ item_state = "suitjacket_black_open"
+ blood_overlay_type = "coat"
+ body_parts_covered = UPPER_TORSO|ARMS
+
/obj/item/clothing/suit/storage/lawyer/bluejacket
name = "Blue Suit Jacket"
desc = "A snappy dress jacket."
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 84ac2feac52..4e7296321da 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -228,6 +228,27 @@
item_state = "navy_suit"
_color = "navy_suit"
+/obj/item/clothing/under/suit_jacket/tan
+ name = "tan suit"
+ desc = "A tan suit with a yellow tie. Smart, but casual."
+ icon_state = "tan_suit"
+ item_state = "tan_suit"
+ _color = "tan_suit"
+
+/obj/item/clothing/under/suit_jacket/burgundy
+ name = "burgundy suit"
+ desc = "A burgundy suit and black tie. Somewhat formal."
+ icon_state = "burgundy_suit"
+ item_state = "burgundy_suit"
+ _color = "burgundy_suit"
+
+/obj/item/clothing/under/suit_jacket/charcoal
+ name = "charcoal suit"
+ desc = "A charcoal suit and red tie. Very professional."
+ icon_state = "charcoal_suit"
+ item_state = "charcoal_suit"
+ _color = "charcoal_suit"
+
/obj/item/clothing/under/blackskirt
name = "black skirt"
desc = "A black skirt, very fancy!"
@@ -587,6 +608,13 @@
_color = "pennywise"
body_parts_covered = UPPER_TORSO|LOWER_TORSO
+/obj/item/clothing/under/assistantformal
+ name = "assistant's formal uniform"
+ desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown."
+ icon_state = "assistant_formal"
+ item_state = "gy_suit"
+ _color = "assistant_formal"
+
/obj/item/clothing/under/blacktango
name = "black tango dress"
desc = "Filled with Latin fire."
diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
new file mode 100644
index 00000000000..4c4841a77e9
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
@@ -0,0 +1,21 @@
+/mob/living/simple_animal/butterfly
+ name = "butterfly"
+ desc = "A colorful butterfly, how'd it get up here?"
+ icon_state = "butterfly"
+ icon_living = "butterfly"
+ icon_dead = "butterfly_dead"
+ turns_per_move = 1
+ emote_see = list("flutters")
+ response_help = "shoos"
+ response_disarm = "brushes aside"
+ response_harm = "aquashes"
+ speak_chance = 0
+ maxHealth = 2
+ health = 2
+ harm_intent_damage = 1
+ friendly = "nudges"
+ pass_flags = PASSTABLE
+
+/mob/living/simple_animal/butterfly/New()
+ ..()
+ color = rgb(rand(0, 255), rand(0, 255), rand(0, 255))
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/friendly/pug.dm b/code/modules/mob/living/simple_animal/friendly/pug.dm
new file mode 100644
index 00000000000..62456ed8a8b
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/friendly/pug.dm
@@ -0,0 +1,42 @@
+//Corgi //best comment 2014
+/mob/living/simple_animal/pug
+ name = "\improper pug"
+ real_name = "pug"
+ desc = "It's a pug."
+ icon_state = "pug"
+ icon_living = "pug"
+ icon_dead = "pug_dead"
+ speak = list("YAP", "Woof!", "Bark!", "AUUUUUU")
+ speak_emote = list("barks", "woofs")
+ emote_hear = list("barks!", "woofs!", "yaps.","pants.")
+ emote_see = list("shakes its head.", "chases its tail.","shivers.")
+ speak_chance = 1
+ turns_per_move = 10
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/pug
+ meat_amount = 3
+ response_help = "pets"
+ response_disarm = "bops"
+ response_harm = "kicks"
+ see_in_dark = 5
+
+/mob/living/simple_animal/pug/Life()
+ ..()
+
+ if(!stat && !resting && !buckled)
+ if(prob(1))
+ emote("me", 1, pick("chases its tail."))
+ spawn(0)
+ for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2))
+ dir = i
+ sleep(1)
+
+/mob/living/simple_animal/pug/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
+ if(istype(O, /obj/item/weapon/newspaper))
+ if(!stat)
+ user.visible_message("[user] baps [name] on the nose with the rolled up [O]")
+ spawn(0)
+ for(var/i in list(1,2,4,8,4,2,1,2))
+ dir = i
+ sleep(1)
+ else
+ ..()
diff --git a/code/modules/reagents/reagent_containers/food/snacks/meat.dm b/code/modules/reagents/reagent_containers/food/snacks/meat.dm
index d0c0e707c36..8809ddc6468 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/meat.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/meat.dm
@@ -35,3 +35,7 @@
/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
name = "Corgi meat"
desc = "Tastes like... well you know..."
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/pug
+ name = "Pug meat"
+ desc = "Tastes like... well you know..."
\ No newline at end of file
diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi
index f3d08f645c3..0e83c2a3e63 100644
Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index f9244eace02..b111df54f9d 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index 3f158f68f3f..a3bab9d2eda 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index c8a10b1c4da..943095ad7b0 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
index 574b1817f97..1afe63ffb70 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ
diff --git a/paradise.dme b/paradise.dme
index 8b128080271..4b51a8b5927 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1331,6 +1331,7 @@
#include "code\modules\mob\living\simple_animal\tribbles.dm"
#include "code\modules\mob\living\simple_animal\vox.dm"
#include "code\modules\mob\living\simple_animal\worm.dm"
+#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm"
#include "code\modules\mob\living\simple_animal\friendly\cat.dm"
#include "code\modules\mob\living\simple_animal\friendly\corgi.dm"
#include "code\modules\mob\living\simple_animal\friendly\crab.dm"
@@ -1338,6 +1339,7 @@
#include "code\modules\mob\living\simple_animal\friendly\fox.dm"
#include "code\modules\mob\living\simple_animal\friendly\lizard.dm"
#include "code\modules\mob\living\simple_animal\friendly\mouse.dm"
+#include "code\modules\mob\living\simple_animal\friendly\pug.dm"
#include "code\modules\mob\living\simple_animal\friendly\slime.dm"
#include "code\modules\mob\living\simple_animal\friendly\spiderbot.dm"
#include "code\modules\mob\living\simple_animal\friendly\tomato.dm"