mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-27 10:02:12 +00:00
1297 lines
42 KiB
Plaintext
1297 lines
42 KiB
Plaintext
/*
|
|
* Everything derived from the common cardboard box.
|
|
* Basically everything except the original is a kit (starts full).
|
|
*
|
|
* Contains:
|
|
* Empty box, starter boxes (survival/engineer),
|
|
* Latex glove and sterile mask boxes,
|
|
* Syringe, beaker, dna injector boxes,
|
|
* Blanks, flashbangs, and EMP grenade boxes,
|
|
* Tracking and chemical implant boxes,
|
|
* Prescription glasses and drinking glass boxes,
|
|
* Condiment bottle and silly cup boxes,
|
|
* Donkpocket and monkeycube boxes,
|
|
* ID and security PDA cart boxes,
|
|
* Handcuff, mousetrap, and pillbottle boxes,
|
|
* Snap-pops and matchboxes,
|
|
* Replacement light boxes.
|
|
* Action Figure Boxes
|
|
* Various paper bags.
|
|
*
|
|
* For syndicate call-ins see uplink_kits.dm
|
|
*/
|
|
|
|
/obj/item/storage/box
|
|
name = "box"
|
|
desc = "It's just an ordinary box."
|
|
icon_state = "box"
|
|
inhand_icon_state = "syringe_kit"
|
|
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
|
resistance_flags = FLAMMABLE
|
|
drop_sound = 'sound/items/handling/cardboardbox_drop.ogg'
|
|
pickup_sound = 'sound/items/handling/cardboardbox_pickup.ogg'
|
|
var/foldable = /obj/item/stack/sheet/cardboard
|
|
var/illustration = "writing"
|
|
|
|
/obj/item/storage/box/Initialize(mapload)
|
|
. = ..()
|
|
update_icon()
|
|
|
|
/obj/item/storage/box/suicide_act(mob/living/carbon/user)
|
|
var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD)
|
|
if(myhead)
|
|
user.visible_message("<span class='suicide'>[user] puts [user.p_their()] head into \the [src], and begins closing it! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
|
myhead.dismember()
|
|
myhead.forceMove(src)//force your enemies to kill themselves with your head collection box!
|
|
playsound(user, "desecration-01.ogg", 50, TRUE, -1)
|
|
return BRUTELOSS
|
|
user.visible_message("<span class='suicide'>[user] beating [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
|
return BRUTELOSS
|
|
|
|
/obj/item/storage/box/update_overlays()
|
|
. = ..()
|
|
if(illustration)
|
|
. += illustration
|
|
|
|
/obj/item/storage/box/attack_self(mob/user)
|
|
..()
|
|
|
|
if(!foldable)
|
|
return
|
|
if(contents.len)
|
|
to_chat(user, "<span class='warning'>You can't fold this box with items still inside!</span>")
|
|
return
|
|
if(!ispath(foldable))
|
|
return
|
|
|
|
to_chat(user, "<span class='notice'>You fold [src] flat.</span>")
|
|
var/obj/item/I = new foldable
|
|
qdel(src)
|
|
user.put_in_hands(I)
|
|
|
|
/obj/item/storage/box/attackby(obj/item/W, mob/user, params)
|
|
if(istype(W, /obj/item/stack/package_wrap))
|
|
return FALSE
|
|
return ..()
|
|
|
|
//Mime spell boxes
|
|
|
|
/obj/item/storage/box/mime
|
|
name = "invisible box"
|
|
desc = "Unfortunately not large enough to trap the mime."
|
|
foldable = null
|
|
icon_state = "box"
|
|
inhand_icon_state = null
|
|
alpha = 0
|
|
|
|
/obj/item/storage/box/mime/attack_hand(mob/user)
|
|
..()
|
|
if(user.mind.miming)
|
|
alpha = 255
|
|
|
|
/obj/item/storage/box/mime/Moved(oldLoc, dir)
|
|
if (iscarbon(oldLoc))
|
|
alpha = 0
|
|
..()
|
|
|
|
//Disk boxes
|
|
|
|
/obj/item/storage/box/disks
|
|
name = "diskette box"
|
|
illustration = "disk_kit"
|
|
|
|
/obj/item/storage/box/disks/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/disk/data(src)
|
|
|
|
/obj/item/storage/box/disks_nanite
|
|
name = "nanite program disks box"
|
|
illustration = "disk_kit"
|
|
|
|
/obj/item/storage/box/disks_nanite/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/disk/nanite_program(src)
|
|
|
|
// Ordinary survival box
|
|
/obj/item/storage/box/survival
|
|
var/mask_type = /obj/item/clothing/mask/breath
|
|
var/internal_type = /obj/item/tank/internals/emergency_oxygen
|
|
var/medipen_type = /obj/item/reagent_containers/hypospray/medipen
|
|
|
|
/obj/item/storage/box/survival/PopulateContents()
|
|
new mask_type(src)
|
|
if(!isnull(medipen_type))
|
|
new medipen_type(src)
|
|
|
|
//SKYRAT EDIT CHANGE BEGIN - CUSTOMIZATION
|
|
if(isplasmaman(loc))
|
|
new /obj/item/tank/internals/plasmaman/belt(src)
|
|
else if(isvox(loc))
|
|
new /obj/item/tank/internals/nitrogen/belt/emergency(src)
|
|
else
|
|
new /obj/item/tank/internals/emergency_oxygen(src)
|
|
//SKYRAT EDIT END
|
|
|
|
/obj/item/storage/box/survival/radio/PopulateContents()
|
|
..() // we want the survival stuff too.
|
|
new /obj/item/radio/off(src)
|
|
|
|
// Mining survival box
|
|
/obj/item/storage/box/survival/mining
|
|
mask_type = /obj/item/clothing/mask/gas/explorer
|
|
|
|
/obj/item/storage/box/survival/mining/PopulateContents()
|
|
..()
|
|
new /obj/item/crowbar/red(src)
|
|
|
|
// Engineer survival box
|
|
/obj/item/storage/box/survival/engineer
|
|
internal_type = /obj/item/tank/internals/emergency_oxygen/engi
|
|
|
|
/obj/item/storage/box/survival/engineer/radio/PopulateContents()
|
|
..() // we want the regular items too.
|
|
new /obj/item/radio/off(src)
|
|
|
|
// Syndie survival box
|
|
/obj/item/storage/box/survival/syndie
|
|
mask_type = /obj/item/clothing/mask/gas/syndicate
|
|
internal_type = /obj/item/tank/internals/emergency_oxygen/engi
|
|
medipen_type = null
|
|
|
|
// Security survival box
|
|
/obj/item/storage/box/survival/security
|
|
mask_type = /obj/item/clothing/mask/gas/sechailer
|
|
|
|
/obj/item/storage/box/survival/security/radio/PopulateContents()
|
|
..() // we want the regular stuff too
|
|
new /obj/item/radio/off(src)
|
|
|
|
// Medical survival box
|
|
/obj/item/storage/box/survival/medical
|
|
mask_type = /obj/item/clothing/mask/breath/medical
|
|
|
|
/obj/item/storage/box/gloves
|
|
name = "box of latex gloves"
|
|
desc = "Contains sterile latex gloves."
|
|
illustration = "latex"
|
|
|
|
/obj/item/storage/box/gloves/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/clothing/gloves/color/latex(src)
|
|
|
|
/obj/item/storage/box/masks
|
|
name = "box of sterile masks"
|
|
desc = "This box contains sterile medical masks."
|
|
illustration = "sterile"
|
|
|
|
/obj/item/storage/box/masks/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/clothing/mask/surgical(src)
|
|
|
|
/obj/item/storage/box/syringes
|
|
name = "box of syringes"
|
|
desc = "A box full of syringes."
|
|
illustration = "syringe"
|
|
|
|
/obj/item/storage/box/syringes/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/reagent_containers/syringe(src)
|
|
|
|
/obj/item/storage/box/syringes/variety
|
|
name = "syringe variety box"
|
|
|
|
/obj/item/storage/box/syringes/variety/PopulateContents()
|
|
new /obj/item/reagent_containers/syringe(src)
|
|
new /obj/item/reagent_containers/syringe/lethal(src)
|
|
new /obj/item/reagent_containers/syringe/piercing(src)
|
|
new /obj/item/reagent_containers/syringe/bluespace(src)
|
|
|
|
/obj/item/storage/box/medipens
|
|
name = "box of medipens"
|
|
desc = "A box full of epinephrine MediPens."
|
|
illustration = "syringe"
|
|
|
|
/obj/item/storage/box/medipens/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/reagent_containers/hypospray/medipen(src)
|
|
|
|
/obj/item/storage/box/medipens/utility
|
|
name = "stimpack value kit"
|
|
desc = "A box with several stimpack medipens for the economical miner."
|
|
illustration = "syringe"
|
|
|
|
/obj/item/storage/box/medipens/utility/PopulateContents()
|
|
..() // includes regular medipens.
|
|
for(var/i in 1 to 5)
|
|
new /obj/item/reagent_containers/hypospray/medipen/stimpack(src)
|
|
|
|
/obj/item/storage/box/beakers
|
|
name = "box of beakers"
|
|
illustration = "beaker"
|
|
|
|
/obj/item/storage/box/beakers/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/reagent_containers/glass/beaker( src )
|
|
|
|
/obj/item/storage/box/beakers/bluespace
|
|
name = "box of bluespace beakers"
|
|
illustration = "beaker"
|
|
|
|
/obj/item/storage/box/beakers/bluespace/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/reagent_containers/glass/beaker/bluespace(src)
|
|
|
|
/obj/item/storage/box/beakers/variety
|
|
name = "beaker variety box"
|
|
|
|
/obj/item/storage/box/beakers/variety/PopulateContents()
|
|
new /obj/item/reagent_containers/glass/beaker(src)
|
|
new /obj/item/reagent_containers/glass/beaker/large(src)
|
|
new /obj/item/reagent_containers/glass/beaker/plastic(src)
|
|
new /obj/item/reagent_containers/glass/beaker/meta(src)
|
|
new /obj/item/reagent_containers/glass/beaker/noreact(src)
|
|
new /obj/item/reagent_containers/glass/beaker/bluespace(src)
|
|
|
|
/obj/item/storage/box/medigels
|
|
name = "box of medical gels"
|
|
desc = "A box full of medical gel applicators, with unscrewable caps and precision spray heads."
|
|
illustration = "medgel"
|
|
|
|
/obj/item/storage/box/medigels/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/reagent_containers/medigel( src )
|
|
|
|
/obj/item/storage/box/injectors
|
|
name = "box of DNA injectors"
|
|
desc = "This box contains injectors, it seems."
|
|
illustration = "dna"
|
|
|
|
/obj/item/storage/box/injectors/PopulateContents()
|
|
var/static/items_inside = list(
|
|
/obj/item/dnainjector/h2m = 3,
|
|
/obj/item/dnainjector/m2h = 3)
|
|
generate_items_inside(items_inside,src)
|
|
|
|
/obj/item/storage/box/flashbangs
|
|
name = "box of flashbangs (WARNING)"
|
|
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use.</B>"
|
|
icon_state = "secbox"
|
|
illustration = "flashbang"
|
|
|
|
/obj/item/storage/box/flashbangs/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/grenade/flashbang(src)
|
|
|
|
/obj/item/storage/box/stingbangs
|
|
name = "box of stingbangs (WARNING)"
|
|
desc = "<B>WARNING: These devices are extremely dangerous and can cause severe injuries or death in repeated use.</B>"
|
|
icon_state = "secbox"
|
|
illustration = "flashbang"
|
|
|
|
/obj/item/storage/box/stingbangs/PopulateContents()
|
|
for(var/i in 1 to 5)
|
|
new /obj/item/grenade/stingbang(src)
|
|
|
|
/obj/item/storage/box/flashes
|
|
name = "box of flashbulbs"
|
|
desc = "<B>WARNING: Flashes can cause serious eye damage, protective eyewear is required.</B>"
|
|
icon_state = "secbox"
|
|
illustration = "flash"
|
|
|
|
/obj/item/storage/box/flashes/PopulateContents()
|
|
for(var/i in 1 to 6)
|
|
new /obj/item/assembly/flash/handheld(src)
|
|
|
|
/obj/item/storage/box/wall_flash
|
|
name = "wall-mounted flash kit"
|
|
desc = "This box contains everything necessary to build a wall-mounted flash. <B>WARNING: Flashes can cause serious eye damage, protective eyewear is required.</B>"
|
|
icon_state = "secbox"
|
|
illustration = "flash"
|
|
|
|
/obj/item/storage/box/wall_flash/PopulateContents()
|
|
var/id = rand(1000, 9999)
|
|
// FIXME what if this conflicts with an existing one?
|
|
|
|
new /obj/item/wallframe/button(src)
|
|
new /obj/item/electronics/airlock(src)
|
|
var/obj/item/assembly/control/flasher/remote = new(src)
|
|
remote.id = id
|
|
var/obj/item/wallframe/flasher/frame = new(src)
|
|
frame.id = id
|
|
new /obj/item/assembly/flash/handheld(src)
|
|
new /obj/item/screwdriver(src)
|
|
|
|
|
|
/obj/item/storage/box/teargas
|
|
name = "box of tear gas grenades (WARNING)"
|
|
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness and skin irritation.</B>"
|
|
icon_state = "secbox"
|
|
illustration = "grenade"
|
|
|
|
/obj/item/storage/box/teargas/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/grenade/chem_grenade/teargas(src)
|
|
|
|
/obj/item/storage/box/emps
|
|
name = "box of emp grenades"
|
|
desc = "A box with 5 emp grenades."
|
|
illustration = "emp"
|
|
|
|
/obj/item/storage/box/emps/PopulateContents()
|
|
for(var/i in 1 to 5)
|
|
new /obj/item/grenade/empgrenade(src)
|
|
|
|
/obj/item/storage/box/trackimp
|
|
name = "boxed tracking implant kit"
|
|
desc = "Box full of scum-bag tracking utensils."
|
|
icon_state = "secbox"
|
|
illustration = "implant"
|
|
|
|
/obj/item/storage/box/trackimp/PopulateContents()
|
|
var/static/items_inside = list(
|
|
/obj/item/implantcase/tracking = 4,
|
|
/obj/item/implanter = 1,
|
|
/obj/item/implantpad = 1,
|
|
/obj/item/locator = 1)
|
|
generate_items_inside(items_inside,src)
|
|
|
|
/obj/item/storage/box/minertracker
|
|
name = "boxed tracking implant kit"
|
|
desc = "For finding those who have died on the accursed lavaworld."
|
|
illustration = "implant"
|
|
|
|
/obj/item/storage/box/minertracker/PopulateContents()
|
|
var/static/items_inside = list(
|
|
/obj/item/implantcase/tracking = 3,
|
|
/obj/item/implanter = 1,
|
|
/obj/item/implantpad = 1,
|
|
/obj/item/locator = 1)
|
|
generate_items_inside(items_inside,src)
|
|
|
|
/obj/item/storage/box/chemimp
|
|
name = "boxed chemical implant kit"
|
|
desc = "Box of stuff used to implant chemicals."
|
|
illustration = "implant"
|
|
|
|
/obj/item/storage/box/chemimp/PopulateContents()
|
|
var/static/items_inside = list(
|
|
/obj/item/implantcase/chem = 5,
|
|
/obj/item/implanter = 1,
|
|
/obj/item/implantpad = 1)
|
|
generate_items_inside(items_inside,src)
|
|
|
|
/obj/item/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."
|
|
illustration = "implant"
|
|
|
|
/obj/item/storage/box/exileimp/PopulateContents()
|
|
var/static/items_inside = list(
|
|
/obj/item/implantcase/exile = 5,
|
|
/obj/item/implanter = 1)
|
|
generate_items_inside(items_inside,src)
|
|
|
|
/obj/item/storage/box/bodybags
|
|
name = "body bags"
|
|
desc = "The label indicates that it contains body bags."
|
|
illustration = "bodybags"
|
|
|
|
/obj/item/storage/box/bodybags/PopulateContents()
|
|
..()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/bodybag(src)
|
|
|
|
/obj/item/storage/box/rxglasses
|
|
name = "box of prescription glasses"
|
|
desc = "This box contains nerd glasses."
|
|
illustration = "glasses"
|
|
|
|
/obj/item/storage/box/rxglasses/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/clothing/glasses/regular(src)
|
|
|
|
/obj/item/storage/box/drinkingglasses
|
|
name = "box of drinking glasses"
|
|
desc = "It has a picture of drinking glasses on it."
|
|
illustration = "drinkglass"
|
|
|
|
/obj/item/storage/box/drinkingglasses/PopulateContents()
|
|
for(var/i in 1 to 6)
|
|
new /obj/item/reagent_containers/food/drinks/drinkingglass(src)
|
|
|
|
/obj/item/storage/box/condimentbottles
|
|
name = "box of condiment bottles"
|
|
desc = "It has a large ketchup smear on it."
|
|
illustration = "condiment"
|
|
|
|
/obj/item/storage/box/condimentbottles/PopulateContents()
|
|
for(var/i in 1 to 6)
|
|
new /obj/item/reagent_containers/food/condiment(src)
|
|
|
|
/obj/item/storage/box/cups
|
|
name = "box of paper cups"
|
|
desc = "It has pictures of paper cups on the front."
|
|
illustration = "cup"
|
|
|
|
/obj/item/storage/box/cups/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/reagent_containers/food/drinks/sillycup( src )
|
|
|
|
/obj/item/storage/box/donkpockets
|
|
name = "box of donk-pockets"
|
|
desc = "<B>Instructions:</B> <I>Heat in microwave. Product will cool if not eaten within seven minutes.</I>"
|
|
icon_state = "donkpocketbox"
|
|
illustration=null
|
|
var/donktype = /obj/item/reagent_containers/food/snacks/donkpocket
|
|
|
|
/obj/item/storage/box/donkpockets/PopulateContents()
|
|
for(var/i in 1 to 6)
|
|
new donktype(src)
|
|
|
|
/obj/item/storage/box/donkpockets/ComponentInitialize()
|
|
. = ..()
|
|
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
|
STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/donkpocket))
|
|
|
|
/obj/item/storage/box/donkpockets/donkpocketspicy
|
|
name = "box of spicy-flavoured donk-pockets"
|
|
icon_state = "donkpocketboxspicy"
|
|
donktype = /obj/item/reagent_containers/food/snacks/donkpocket/spicy
|
|
|
|
/obj/item/storage/box/donkpockets/donkpocketteriyaki
|
|
name = "box of teriyaki-flavoured donk-pockets"
|
|
icon_state = "donkpocketboxteriyaki"
|
|
donktype = /obj/item/reagent_containers/food/snacks/donkpocket/teriyaki
|
|
|
|
/obj/item/storage/box/donkpockets/donkpocketpizza
|
|
name = "box of pizza-flavoured donk-pockets"
|
|
icon_state = "donkpocketboxpizza"
|
|
donktype = /obj/item/reagent_containers/food/snacks/donkpocket/pizza
|
|
|
|
/obj/item/storage/box/donkpockets/donkpocketgondola
|
|
name = "box of gondola-flavoured donk-pockets"
|
|
icon_state = "donkpocketboxgondola"
|
|
donktype = /obj/item/reagent_containers/food/snacks/donkpocket/gondola
|
|
|
|
/obj/item/storage/box/donkpockets/donkpocketberry
|
|
name = "box of berry-flavoured donk-pockets"
|
|
icon_state = "donkpocketboxberry"
|
|
donktype = /obj/item/reagent_containers/food/snacks/donkpocket/berry
|
|
|
|
/obj/item/storage/box/donkpockets/donkpockethonk
|
|
name = "box of banana-flavoured donk-pockets"
|
|
icon_state = "donkpocketboxbanana"
|
|
donktype = /obj/item/reagent_containers/food/snacks/donkpocket/honk
|
|
|
|
/obj/item/storage/box/monkeycubes
|
|
name = "monkey cube box"
|
|
desc = "Drymate brand monkey cubes. Just add water!"
|
|
icon_state = "monkeycubebox"
|
|
illustration = null
|
|
var/cube_type = /obj/item/food/monkeycube
|
|
|
|
/obj/item/storage/box/monkeycubes/ComponentInitialize()
|
|
. = ..()
|
|
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
|
STR.max_items = 7
|
|
STR.set_holdable(list(/obj/item/food/monkeycube))
|
|
|
|
/obj/item/storage/box/monkeycubes/PopulateContents()
|
|
for(var/i in 1 to 5)
|
|
new cube_type(src)
|
|
|
|
/obj/item/storage/box/monkeycubes/syndicate
|
|
desc = "Waffle Co. brand monkey cubes. Just add water and a dash of subterfuge!"
|
|
cube_type = /obj/item/food/monkeycube/syndicate
|
|
|
|
/obj/item/storage/box/gorillacubes
|
|
name = "gorilla cube box"
|
|
desc = "Waffle Co. brand gorilla cubes. Do not taunt."
|
|
icon_state = "monkeycubebox"
|
|
illustration = null
|
|
|
|
/obj/item/storage/box/gorillacubes/ComponentInitialize()
|
|
. = ..()
|
|
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
|
STR.max_items = 3
|
|
STR.set_holdable(list(/obj/item/food/monkeycube))
|
|
|
|
/obj/item/storage/box/gorillacubes/PopulateContents()
|
|
for(var/i in 1 to 3)
|
|
new /obj/item/food/monkeycube/gorilla(src)
|
|
|
|
/obj/item/storage/box/ids
|
|
name = "box of spare IDs"
|
|
desc = "Has so many empty IDs."
|
|
illustration = "id"
|
|
|
|
/obj/item/storage/box/ids/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/card/id(src)
|
|
|
|
//Some spare PDAs in a box
|
|
/obj/item/storage/box/pdas
|
|
name = "spare PDAs"
|
|
desc = "A box of spare PDA microcomputers."
|
|
illustration = "pda"
|
|
|
|
/obj/item/storage/box/pdas/PopulateContents()
|
|
for(var/i in 1 to 4)
|
|
new /obj/item/pda(src)
|
|
new /obj/item/cartridge/head(src)
|
|
|
|
var/newcart = pick( /obj/item/cartridge/engineering,
|
|
/obj/item/cartridge/security,
|
|
/obj/item/cartridge/medical,
|
|
/obj/item/cartridge/signal/toxins,
|
|
/obj/item/cartridge/quartermaster)
|
|
new newcart(src)
|
|
|
|
/obj/item/storage/box/silver_ids
|
|
name = "box of spare silver IDs"
|
|
desc = "Shiny IDs for important people."
|
|
illustration = "id"
|
|
|
|
/obj/item/storage/box/silver_ids/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/card/id/silver(src)
|
|
|
|
/obj/item/storage/box/prisoner
|
|
name = "box of prisoner IDs"
|
|
desc = "Take away their last shred of dignity, their name."
|
|
icon_state = "secbox"
|
|
illustration = "id"
|
|
|
|
/obj/item/storage/box/prisoner/PopulateContents()
|
|
..()
|
|
new /obj/item/card/id/prisoner/one(src)
|
|
new /obj/item/card/id/prisoner/two(src)
|
|
new /obj/item/card/id/prisoner/three(src)
|
|
new /obj/item/card/id/prisoner/four(src)
|
|
new /obj/item/card/id/prisoner/five(src)
|
|
new /obj/item/card/id/prisoner/six(src)
|
|
new /obj/item/card/id/prisoner/seven(src)
|
|
|
|
/obj/item/storage/box/seccarts
|
|
name = "box of PDA security cartridges"
|
|
desc = "A box full of PDA cartridges used by Security."
|
|
icon_state = "secbox"
|
|
illustration = "pda"
|
|
|
|
/obj/item/storage/box/seccarts/PopulateContents()
|
|
new /obj/item/cartridge/detective(src)
|
|
for(var/i in 1 to 6)
|
|
new /obj/item/cartridge/security(src)
|
|
|
|
/obj/item/storage/box/firingpins
|
|
name = "box of standard firing pins"
|
|
desc = "A box full of standard firing pins, to allow newly-developed firearms to operate."
|
|
icon_state = "secbox"
|
|
illustration = "firingpin"
|
|
|
|
/obj/item/storage/box/firingpins/PopulateContents()
|
|
for(var/i in 1 to 5)
|
|
new /obj/item/firing_pin(src)
|
|
|
|
/obj/item/storage/box/firingpins/paywall
|
|
name = "box of paywall firing pins"
|
|
desc = "A box full of paywall firing pins, to allow newly-developed firearms to operate behind a custom-set paywall."
|
|
illustration = "firingpin"
|
|
|
|
/obj/item/storage/box/firingpins/paywall/PopulateContents()
|
|
for(var/i in 1 to 5)
|
|
new /obj/item/firing_pin/paywall(src)
|
|
|
|
/obj/item/storage/box/lasertagpins
|
|
name = "box of laser tag firing pins"
|
|
desc = "A box full of laser tag firing pins, to allow newly-developed firearms to require wearing brightly coloured plastic armor before being able to be used."
|
|
illustration = "firingpin"
|
|
|
|
/obj/item/storage/box/lasertagpins/PopulateContents()
|
|
for(var/i in 1 to 3)
|
|
new /obj/item/firing_pin/tag/red(src)
|
|
new /obj/item/firing_pin/tag/blue(src)
|
|
|
|
/obj/item/storage/box/handcuffs
|
|
name = "box of spare handcuffs"
|
|
desc = "A box full of handcuffs."
|
|
icon_state = "secbox"
|
|
illustration = "handcuff"
|
|
|
|
/obj/item/storage/box/handcuffs/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/restraints/handcuffs(src)
|
|
|
|
/obj/item/storage/box/zipties
|
|
name = "box of spare zipties"
|
|
desc = "A box full of zipties."
|
|
icon_state = "secbox"
|
|
illustration = "handcuff"
|
|
|
|
/obj/item/storage/box/zipties/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/restraints/handcuffs/cable/zipties(src)
|
|
|
|
/obj/item/storage/box/alienhandcuffs
|
|
name = "box of spare handcuffs"
|
|
desc = "A box full of handcuffs."
|
|
icon_state = "alienbox"
|
|
illustration = "handcuff"
|
|
|
|
/obj/item/storage/box/alienhandcuffs/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/restraints/handcuffs/alien(src)
|
|
|
|
/obj/item/storage/box/fakesyndiesuit
|
|
name = "boxed space suit and helmet"
|
|
desc = "A sleek, sturdy box used to hold replica spacesuits."
|
|
icon_state = "syndiebox"
|
|
illustration = "syndiesuit"
|
|
|
|
/obj/item/storage/box/fakesyndiesuit/PopulateContents()
|
|
new /obj/item/clothing/head/syndicatefake(src)
|
|
new /obj/item/clothing/suit/syndicatefake(src)
|
|
|
|
/obj/item/storage/box/mousetraps
|
|
name = "box of Pest-B-Gon mousetraps"
|
|
desc = "<span class='alert'>Keep out of reach of children.</span>"
|
|
illustration = "mousetrap"
|
|
|
|
/obj/item/storage/box/mousetraps/PopulateContents()
|
|
for(var/i in 1 to 6)
|
|
new /obj/item/assembly/mousetrap(src)
|
|
|
|
/obj/item/storage/box/pillbottles
|
|
name = "box of pill bottles"
|
|
desc = "It has pictures of pill bottles on its front."
|
|
illustration = "pillbox"
|
|
|
|
/obj/item/storage/box/pillbottles/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/storage/pill_bottle(src)
|
|
|
|
/obj/item/storage/box/snappops
|
|
name = "snap pop box"
|
|
desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children."
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "spbox"
|
|
|
|
/obj/item/storage/box/snappops/ComponentInitialize()
|
|
. = ..()
|
|
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
|
STR.set_holdable(list(/obj/item/toy/snappop))
|
|
STR.max_items = 8
|
|
|
|
/obj/item/storage/box/snappops/PopulateContents()
|
|
SEND_SIGNAL(src, COMSIG_TRY_STORAGE_FILL_TYPE, /obj/item/toy/snappop)
|
|
|
|
/obj/item/storage/box/matches
|
|
name = "matchbox"
|
|
desc = "A small box of Almost But Not Quite Plasma Premium Matches."
|
|
icon = 'icons/obj/cigarettes.dmi'
|
|
icon_state = "matchbox"
|
|
inhand_icon_state = "zippo"
|
|
worn_icon_state = "lighter"
|
|
w_class = WEIGHT_CLASS_TINY
|
|
slot_flags = ITEM_SLOT_BELT
|
|
drop_sound = 'sound/items/handling/matchbox_drop.ogg'
|
|
pickup_sound = 'sound/items/handling/matchbox_pickup.ogg'
|
|
custom_price = 20
|
|
|
|
/obj/item/storage/box/matches/ComponentInitialize()
|
|
. = ..()
|
|
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
|
STR.max_items = 10
|
|
STR.set_holdable(list(/obj/item/match))
|
|
|
|
/obj/item/storage/box/matches/PopulateContents()
|
|
SEND_SIGNAL(src, COMSIG_TRY_STORAGE_FILL_TYPE, /obj/item/match)
|
|
|
|
/obj/item/storage/box/matches/attackby(obj/item/match/W as obj, mob/user as mob, params)
|
|
if(istype(W, /obj/item/match))
|
|
W.matchignite()
|
|
|
|
/obj/item/storage/box/lights
|
|
name = "box of replacement bulbs"
|
|
icon = 'icons/obj/storage.dmi'
|
|
illustration = "light"
|
|
desc = "This box is shaped on the inside so that only light tubes and bulbs fit."
|
|
inhand_icon_state = "syringe_kit"
|
|
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
|
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
|
|
|
|
/obj/item/storage/box/lights/ComponentInitialize()
|
|
. = ..()
|
|
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
|
STR.max_items = 21
|
|
STR.set_holdable(list(/obj/item/light/tube, /obj/item/light/bulb))
|
|
STR.max_combined_w_class = 21
|
|
STR.click_gather = FALSE //temp workaround to re-enable filling the light replacer with the box
|
|
|
|
/obj/item/storage/box/lights/bulbs/PopulateContents()
|
|
for(var/i in 1 to 21)
|
|
new /obj/item/light/bulb(src)
|
|
|
|
/obj/item/storage/box/lights/tubes
|
|
name = "box of replacement tubes"
|
|
illustration = "lighttube"
|
|
|
|
/obj/item/storage/box/lights/tubes/PopulateContents()
|
|
for(var/i in 1 to 21)
|
|
new /obj/item/light/tube(src)
|
|
|
|
/obj/item/storage/box/lights/mixed
|
|
name = "box of replacement lights"
|
|
illustration = "lightmixed"
|
|
|
|
/obj/item/storage/box/lights/mixed/PopulateContents()
|
|
for(var/i in 1 to 14)
|
|
new /obj/item/light/tube(src)
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/light/bulb(src)
|
|
|
|
|
|
/obj/item/storage/box/deputy
|
|
name = "box of deputy armbands"
|
|
desc = "To be issued to those authorized to act as deputy of security."
|
|
icon_state = "secbox"
|
|
illustration = "depband"
|
|
|
|
/obj/item/storage/box/deputy/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/clothing/accessory/armband/deputy(src)
|
|
|
|
/obj/item/storage/box/metalfoam
|
|
name = "box of metal foam grenades"
|
|
desc = "To be used to rapidly seal hull breaches."
|
|
illustration = "grenade"
|
|
|
|
/obj/item/storage/box/metalfoam/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/grenade/chem_grenade/metalfoam(src)
|
|
|
|
/obj/item/storage/box/smart_metal_foam
|
|
name = "box of smart metal foam grenades"
|
|
desc = "Used to rapidly seal hull breaches. This variety conforms to the walls of its area."
|
|
illustration = "grenade"
|
|
|
|
/obj/item/storage/box/smart_metal_foam/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new/obj/item/grenade/chem_grenade/smart_metal_foam(src)
|
|
|
|
/obj/item/storage/box/hug
|
|
name = "box of hugs"
|
|
desc = "A special box for sensitive people."
|
|
icon_state = "hugbox"
|
|
illustration = "heart"
|
|
foldable = null
|
|
|
|
/obj/item/storage/box/hug/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] clamps the box of hugs on [user.p_their()] jugular! Guess it wasn't such a hugbox after all..</span>")
|
|
return (BRUTELOSS)
|
|
|
|
/obj/item/storage/box/hug/attack_self(mob/user)
|
|
..()
|
|
user.changeNext_move(CLICK_CD_MELEE)
|
|
playsound(loc, "rustle", 50, TRUE, -5)
|
|
user.visible_message("<span class='notice'>[user] hugs \the [src].</span>","<span class='notice'>You hug \the [src].</span>")
|
|
|
|
/////clown box & honkbot assembly
|
|
/obj/item/storage/box/clown
|
|
name = "clown box"
|
|
desc = "A colorful cardboard box for the clown"
|
|
illustration = "clown"
|
|
|
|
/obj/item/storage/box/clown/attackby(obj/item/I, mob/user, params)
|
|
if((istype(I, /obj/item/bodypart/l_arm/robot)) || (istype(I, /obj/item/bodypart/r_arm/robot)))
|
|
if(contents.len) //prevent accidently deleting contents
|
|
to_chat(user, "<span class='warning'>You need to empty [src] out first!</span>")
|
|
return
|
|
if(!user.temporarilyRemoveItemFromInventory(I))
|
|
return
|
|
qdel(I)
|
|
to_chat(user, "<span class='notice'>You add some wheels to the [src]! You've got a honkbot assembly now! Honk!</span>")
|
|
var/obj/item/bot_assembly/honkbot/A = new
|
|
qdel(src)
|
|
user.put_in_hands(A)
|
|
else
|
|
return ..()
|
|
|
|
//////
|
|
/obj/item/storage/box/hug/medical/PopulateContents()
|
|
new /obj/item/stack/medical/bruise_pack(src)
|
|
new /obj/item/stack/medical/ointment(src)
|
|
new /obj/item/reagent_containers/hypospray/medipen(src)
|
|
|
|
// Clown survival box
|
|
/obj/item/storage/box/hug/survival/PopulateContents()
|
|
new /obj/item/clothing/mask/breath(src)
|
|
new /obj/item/reagent_containers/hypospray/medipen(src)
|
|
|
|
//SKYRAT EDIT CHANGE BEGIN - CUSTOMIZATION
|
|
if(isplasmaman(loc))
|
|
new /obj/item/tank/internals/plasmaman/belt(src)
|
|
else if(isvox(loc))
|
|
new /obj/item/tank/internals/nitrogen/belt/emergency(src)
|
|
else
|
|
new /obj/item/tank/internals/emergency_oxygen(src)
|
|
//SKYRAT EDIT END
|
|
|
|
/obj/item/storage/box/rubbershot
|
|
name = "box of rubber shots"
|
|
desc = "A box full of rubber shots, designed for riot shotguns."
|
|
icon_state = "rubbershot_box"
|
|
illustration = null
|
|
|
|
/obj/item/storage/box/rubbershot/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/ammo_casing/shotgun/rubbershot(src)
|
|
|
|
/obj/item/storage/box/lethalshot
|
|
name = "box of lethal shotgun shots"
|
|
desc = "A box full of lethal shots, designed for riot shotguns."
|
|
icon_state = "lethalshot_box"
|
|
illustration = null
|
|
|
|
/obj/item/storage/box/lethalshot/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/ammo_casing/shotgun/buckshot(src)
|
|
|
|
/obj/item/storage/box/beanbag
|
|
name = "box of beanbags"
|
|
desc = "A box full of beanbag shells."
|
|
icon_state = "rubbershot_box"
|
|
illustration = null
|
|
|
|
/obj/item/storage/box/beanbag/PopulateContents()
|
|
for(var/i in 1 to 6)
|
|
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
|
|
|
/obj/item/storage/box/actionfigure
|
|
name = "box of action figures"
|
|
desc = "The latest set of collectable action figures."
|
|
icon_state = "box"
|
|
|
|
/obj/item/storage/box/actionfigure/PopulateContents()
|
|
for(var/i in 1 to 4)
|
|
var/randomFigure = pick(subtypesof(/obj/item/toy/figure))
|
|
new randomFigure(src)
|
|
|
|
/obj/item/storage/box/papersack
|
|
name = "paper sack"
|
|
desc = "A sack neatly crafted out of paper."
|
|
icon_state = "paperbag_None"
|
|
inhand_icon_state = "paperbag_None"
|
|
illustration = null
|
|
resistance_flags = FLAMMABLE
|
|
foldable = null
|
|
/// A list of all available papersack reskins
|
|
var/list/papersack_designs = list()
|
|
|
|
/obj/item/storage/box/papersack/Initialize(mapload)
|
|
. = ..()
|
|
papersack_designs = sortList(list(
|
|
"None" = image(icon = src.icon, icon_state = "paperbag_None"),
|
|
"NanotrasenStandard" = image(icon = src.icon, icon_state = "paperbag_NanotrasenStandard"),
|
|
"SyndiSnacks" = image(icon = src.icon, icon_state = "paperbag_SyndiSnacks"),
|
|
"Heart" = image(icon = src.icon, icon_state = "paperbag_Heart"),
|
|
"SmileyFace" = image(icon = src.icon, icon_state = "paperbag_SmileyFace")
|
|
))
|
|
|
|
/obj/item/storage/box/papersack/update_icon_state()
|
|
if(contents.len == 0)
|
|
icon_state = "[inhand_icon_state]"
|
|
else
|
|
icon_state = "[inhand_icon_state]_closed"
|
|
|
|
/obj/item/storage/box/papersack/attackby(obj/item/W, mob/user, params)
|
|
if(istype(W, /obj/item/pen))
|
|
var/choice = show_radial_menu(user, src , papersack_designs, custom_check = CALLBACK(src, .proc/check_menu, user, W), radius = 36, require_near = TRUE)
|
|
if(!choice)
|
|
return FALSE
|
|
if(icon_state == "paperbag_[choice]")
|
|
return FALSE
|
|
switch(choice)
|
|
if("None")
|
|
desc = "A sack neatly crafted out of paper."
|
|
if("NanotrasenStandard")
|
|
desc = "A standard Nanotrasen paper lunch sack for loyal employees on the go."
|
|
if("SyndiSnacks")
|
|
desc = "The design on this paper sack is a remnant of the notorious 'SyndieSnacks' program."
|
|
if("Heart")
|
|
desc = "A paper sack with a heart etched onto the side."
|
|
if("SmileyFace")
|
|
desc = "A paper sack with a crude smile etched onto the side."
|
|
else
|
|
return FALSE
|
|
to_chat(user, "<span class='notice'>You make some modifications to [src] using your pen.</span>")
|
|
icon_state = "paperbag_[choice]"
|
|
inhand_icon_state = "paperbag_[choice]"
|
|
return FALSE
|
|
else if(W.get_sharpness())
|
|
if(!contents.len)
|
|
if(inhand_icon_state == "paperbag_None")
|
|
user.show_message("<span class='notice'>You cut eyeholes into [src].</span>", MSG_VISUAL)
|
|
new /obj/item/clothing/head/papersack(user.loc)
|
|
qdel(src)
|
|
return FALSE
|
|
else if(inhand_icon_state == "paperbag_SmileyFace")
|
|
user.show_message("<span class='notice'>You cut eyeholes into [src] and modify the design.</span>", MSG_VISUAL)
|
|
new /obj/item/clothing/head/papersack/smiley(user.loc)
|
|
qdel(src)
|
|
return FALSE
|
|
return ..()
|
|
|
|
/**
|
|
* check_menu: Checks if we are allowed to interact with a radial menu
|
|
*
|
|
* Arguments:
|
|
* * user The mob interacting with a menu
|
|
* * P The pen used to interact with a menu
|
|
*/
|
|
/obj/item/storage/box/papersack/proc/check_menu(mob/user, obj/item/pen/P)
|
|
if(!istype(user))
|
|
return FALSE
|
|
if(user.incapacitated())
|
|
return FALSE
|
|
if(contents.len)
|
|
to_chat(user, "<span class='warning'>You can't modify [src] with items still inside!</span>")
|
|
return FALSE
|
|
if(!P || !user.is_holding(P))
|
|
to_chat(user, "<span class='warning'>You need a pen to modify [src]!</span>")
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/obj/item/storage/box/papersack/meat
|
|
desc = "It's slightly moist and smells like a slaughterhouse."
|
|
|
|
/obj/item/storage/box/papersack/meat/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/food/meat/slab(src)
|
|
|
|
/obj/item/storage/box/emptysandbags
|
|
name = "box of empty sandbags"
|
|
illustration = "sandbag"
|
|
|
|
/obj/item/storage/box/emptysandbags/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/emptysandbag(src)
|
|
|
|
/obj/item/storage/box/rndboards
|
|
name = "\proper the liberator's legacy"
|
|
desc = "A box containing a gift for worthy golems."
|
|
illustration = "scicircuit"
|
|
|
|
/obj/item/storage/box/rndboards/PopulateContents()
|
|
new /obj/item/circuitboard/machine/protolathe(src)
|
|
new /obj/item/circuitboard/machine/destructive_analyzer(src)
|
|
new /obj/item/circuitboard/machine/circuit_imprinter(src)
|
|
new /obj/item/circuitboard/computer/rdconsole(src)
|
|
|
|
/obj/item/storage/box/silver_sulf
|
|
name = "box of silver sulfadiazine patches"
|
|
desc = "Contains patches used to treat burns."
|
|
illustration = "firepatch"
|
|
|
|
/obj/item/storage/box/silver_sulf/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/reagent_containers/pill/patch/aiuri(src)
|
|
|
|
/obj/item/storage/box/fountainpens
|
|
name = "box of fountain pens"
|
|
illustration = "fpen"
|
|
|
|
/obj/item/storage/box/fountainpens/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/pen/fountain(src)
|
|
|
|
/obj/item/storage/box/holy_grenades
|
|
name = "box of holy hand grenades"
|
|
desc = "Contains several grenades used to rapidly purge heresy."
|
|
illustration = "grenade"
|
|
|
|
/obj/item/storage/box/holy_grenades/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new/obj/item/grenade/chem_grenade/holy(src)
|
|
|
|
/obj/item/storage/box/stockparts/basic //for ruins where it's a bad idea to give access to an autolathe/protolathe, but still want to make stock parts accessible
|
|
name = "box of stock parts"
|
|
desc = "Contains a variety of basic stock parts."
|
|
|
|
/obj/item/storage/box/stockparts/basic/PopulateContents()
|
|
var/static/items_inside = list(
|
|
/obj/item/stock_parts/capacitor = 3,
|
|
/obj/item/stock_parts/scanning_module = 3,
|
|
/obj/item/stock_parts/manipulator = 3,
|
|
/obj/item/stock_parts/micro_laser = 3,
|
|
/obj/item/stock_parts/matter_bin = 3)
|
|
generate_items_inside(items_inside,src)
|
|
|
|
/obj/item/storage/box/stockparts/deluxe
|
|
name = "box of deluxe stock parts"
|
|
desc = "Contains a variety of deluxe stock parts."
|
|
icon_state = "syndiebox"
|
|
|
|
/obj/item/storage/box/stockparts/deluxe/PopulateContents()
|
|
var/static/items_inside = list(
|
|
/obj/item/stock_parts/capacitor/quadratic = 3,
|
|
/obj/item/stock_parts/scanning_module/triphasic = 3,
|
|
/obj/item/stock_parts/manipulator/femto = 3,
|
|
/obj/item/stock_parts/micro_laser/quadultra = 3,
|
|
/obj/item/stock_parts/matter_bin/bluespace = 3)
|
|
generate_items_inside(items_inside,src)
|
|
|
|
/obj/item/storage/box/dishdrive
|
|
name = "DIY Dish Drive Kit"
|
|
desc = "Contains everything you need to build your own Dish Drive!"
|
|
custom_premium_price = 1000
|
|
|
|
/obj/item/storage/box/dishdrive/PopulateContents()
|
|
var/static/items_inside = list(
|
|
/obj/item/stack/sheet/metal/five = 1,
|
|
/obj/item/stack/cable_coil/five = 1,
|
|
/obj/item/circuitboard/machine/dish_drive = 1,
|
|
/obj/item/stack/sheet/glass = 1,
|
|
/obj/item/stock_parts/manipulator = 1,
|
|
/obj/item/stock_parts/matter_bin = 2,
|
|
/obj/item/screwdriver = 1)
|
|
generate_items_inside(items_inside,src)
|
|
|
|
/obj/item/storage/box/material
|
|
name = "box of materials"
|
|
illustration = "implant"
|
|
|
|
/obj/item/storage/box/material/PopulateContents() //less uranium because radioactive
|
|
var/static/items_inside = list(
|
|
/obj/item/stack/sheet/metal/fifty=1,\
|
|
/obj/item/stack/sheet/glass/fifty=1,\
|
|
/obj/item/stack/sheet/rglass=50,\
|
|
/obj/item/stack/sheet/plasmaglass=50,\
|
|
/obj/item/stack/sheet/titaniumglass=50,\
|
|
/obj/item/stack/sheet/plastitaniumglass=50,\
|
|
/obj/item/stack/sheet/plasteel=50,\
|
|
/obj/item/stack/sheet/mineral/plastitanium=50,\
|
|
/obj/item/stack/sheet/mineral/titanium=50,\
|
|
/obj/item/stack/sheet/mineral/gold=50,\
|
|
/obj/item/stack/sheet/mineral/silver=50,\
|
|
/obj/item/stack/sheet/mineral/plasma=50,\
|
|
/obj/item/stack/sheet/mineral/uranium=20,\
|
|
/obj/item/stack/sheet/mineral/diamond=50,\
|
|
/obj/item/stack/sheet/bluespace_crystal=50,\
|
|
/obj/item/stack/sheet/mineral/bananium=50,\
|
|
/obj/item/stack/sheet/mineral/wood=50,\
|
|
/obj/item/stack/sheet/plastic/fifty=1,\
|
|
/obj/item/stack/sheet/runed_metal/fifty=1
|
|
)
|
|
generate_items_inside(items_inside,src)
|
|
|
|
/obj/item/storage/box/debugtools
|
|
name = "box of debug tools"
|
|
icon_state = "syndiebox"
|
|
|
|
/obj/item/storage/box/debugtools/PopulateContents()
|
|
var/static/items_inside = list(
|
|
/obj/item/flashlight/emp/debug=1,\
|
|
/obj/item/pda=1,\
|
|
/obj/item/modular_computer/tablet/preset/advanced=1,\
|
|
/obj/item/geiger_counter=1,\
|
|
/obj/item/construction/rcd/combat/admin=1,\
|
|
/obj/item/pipe_dispenser=1,\
|
|
/obj/item/card/emag=1,\
|
|
/obj/item/stack/spacecash/c1000=50,\
|
|
/obj/item/healthanalyzer/advanced=1,\
|
|
/obj/item/disk/tech_disk/debug=1,\
|
|
/obj/item/uplink/debug=1,\
|
|
/obj/item/uplink/nuclear/debug=1,\
|
|
/obj/item/storage/box/beakers/bluespace=1,\
|
|
/obj/item/storage/box/beakers/variety=1,\
|
|
/obj/item/storage/box/material=1
|
|
)
|
|
generate_items_inside(items_inside,src)
|
|
|
|
/obj/item/storage/box/plastic
|
|
name = "plastic box"
|
|
desc = "It's a solid, plastic shell box."
|
|
icon_state = "plasticbox"
|
|
foldable = null
|
|
illustration = "writing"
|
|
custom_materials = list(/datum/material/plastic = 1000) //You lose most if recycled.
|
|
|
|
|
|
/obj/item/storage/box/fireworks
|
|
name = "box of fireworks"
|
|
desc = "Contains an assortment of fireworks."
|
|
illustration = "sparkler"
|
|
|
|
/obj/item/storage/box/fireworks/PopulateContents()
|
|
for(var/i in 1 to 3)
|
|
new/obj/item/sparkler(src)
|
|
new/obj/item/grenade/firecracker(src)
|
|
new /obj/item/toy/snappop(src)
|
|
|
|
/obj/item/storage/box/fireworks/dangerous
|
|
|
|
/obj/item/storage/box/fireworks/dangerous/PopulateContents()
|
|
for(var/i in 1 to 3)
|
|
new/obj/item/sparkler(src)
|
|
new/obj/item/grenade/firecracker(src)
|
|
if(prob(20))
|
|
new /obj/item/grenade/frag(src)
|
|
else
|
|
new /obj/item/toy/snappop(src)
|
|
|
|
/obj/item/storage/box/firecrackers
|
|
name = "box of firecrackers"
|
|
desc = "A box filled with illegal firecracker. You wonder who still makes these."
|
|
icon_state = "syndiebox"
|
|
illustration = "firecracker"
|
|
|
|
/obj/item/storage/box/firecrackers/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new/obj/item/grenade/firecracker(src)
|
|
|
|
/obj/item/storage/box/sparklers
|
|
name = "box of sparklers"
|
|
desc = "A box of NT brand sparklers, burns hot even in the cold of space-winter."
|
|
illustration = "sparkler"
|
|
|
|
/obj/item/storage/box/sparklers/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new/obj/item/sparkler(src)
|
|
|
|
/obj/item/storage/box/gum
|
|
name = "bubblegum packet"
|
|
desc = "The packaging is entirely in japanese, apparently. You can't make out a single word of it."
|
|
icon_state = "bubblegum_generic"
|
|
w_class = WEIGHT_CLASS_TINY
|
|
illustration = null
|
|
foldable = null
|
|
custom_price = 120
|
|
|
|
/obj/item/storage/box/gum/ComponentInitialize()
|
|
. = ..()
|
|
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
|
STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/chewable/bubblegum))
|
|
STR.max_items = 4
|
|
|
|
/obj/item/storage/box/gum/PopulateContents()
|
|
for(var/i in 1 to 4)
|
|
new/obj/item/reagent_containers/food/snacks/chewable/bubblegum(src)
|
|
|
|
/obj/item/storage/box/gum/nicotine
|
|
name = "nicotine gum packet"
|
|
desc = "Designed to help with nicotine addiction and oral fixation all at once without destroying your lungs in the process. Mint flavored!"
|
|
icon_state = "bubblegum_nicotine"
|
|
custom_premium_price = 275
|
|
|
|
/obj/item/storage/box/gum/nicotine/PopulateContents()
|
|
for(var/i in 1 to 4)
|
|
new/obj/item/reagent_containers/food/snacks/chewable/bubblegum/nicotine(src)
|
|
|
|
/obj/item/storage/box/gum/happiness
|
|
name = "HP+ gum packet"
|
|
desc = "A seemingly homemade packaging with an odd smell. It has a weird drawing of a smiling face sticking out its tongue."
|
|
icon_state = "bubblegum_happiness"
|
|
custom_price = 300
|
|
custom_premium_price = 300
|
|
|
|
/obj/item/storage/box/gum/happiness/Initialize()
|
|
. = ..()
|
|
if (prob(25))
|
|
desc += "You can faintly make out the word 'Hemopagopril' was once scribbled on it."
|
|
|
|
/obj/item/storage/box/gum/happiness/PopulateContents()
|
|
for(var/i in 1 to 4)
|
|
new/obj/item/reagent_containers/food/snacks/chewable/bubblegum/happiness(src)
|
|
|
|
/obj/item/storage/box/gum/bubblegum
|
|
name = "bubblegum gum packet"
|
|
desc = "The packaging is entirely in Demonic, apparently. You feel like even opening this would be a sin."
|
|
icon_state = "bubblegum_bubblegum"
|
|
|
|
/obj/item/storage/box/gum/bubblegum/PopulateContents()
|
|
for(var/i in 1 to 4)
|
|
new/obj/item/reagent_containers/food/snacks/chewable/bubblegum/bubblegum(src)
|
|
|
|
/obj/item/storage/box/shipping
|
|
name = "box of shipping supplies"
|
|
desc = "Contains several scanners and labelers for shipping things. Wrapping Paper not included."
|
|
illustration = "shipping"
|
|
|
|
/obj/item/storage/box/shipping/PopulateContents()
|
|
var/static/items_inside = list(
|
|
/obj/item/dest_tagger=1,\
|
|
/obj/item/sales_tagger=1,\
|
|
/obj/item/export_scanner=1,\
|
|
/obj/item/stack/package_wrap/small=2,\
|
|
/obj/item/stack/wrapping_paper/small=1
|
|
)
|
|
generate_items_inside(items_inside,src)
|
|
|
|
/obj/item/storage/box/skillchips
|
|
name = "box of skillchips"
|
|
desc = "Contains one copy of every skillchip"
|
|
|
|
/obj/item/storage/box/skillchips/PopulateContents()
|
|
var/list/skillchips = subtypesof(/obj/item/skillchip)
|
|
|
|
for(var/skillchip in skillchips)
|
|
new skillchip(src)
|
|
|
|
/obj/item/storage/box/skillchips/science
|
|
name = "box of science job skillchips"
|
|
desc = "Contains spares of every science job skillchip."
|
|
|
|
/obj/item/storage/box/skillchips/science/PopulateContents()
|
|
new/obj/item/skillchip/job/roboticist(src)
|
|
new/obj/item/skillchip/job/roboticist(src)
|
|
|
|
/obj/item/storage/box/skillchips/engineering
|
|
name = "box of engineering job skillchips"
|
|
desc = "Contains spares of every engineering job skillchip."
|
|
|
|
/obj/item/storage/box/skillchips/engineering/PopulateContents()
|
|
new/obj/item/skillchip/job/engineer(src)
|
|
new/obj/item/skillchip/job/engineer(src)
|
|
|
|
/obj/item/storage/box/swab
|
|
name = "box of microbiological swabs"
|
|
desc = "Contains a number of sterile swabs for collecting microbiological samples."
|
|
illustration = "swab"
|
|
|
|
/obj/item/storage/box/swab/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/swab(src)
|
|
|
|
/obj/item/storage/box/petridish
|
|
name = "box of petridishes"
|
|
desc = "This box purports to contain a number of high rim petridishes."
|
|
illustration = "petridish"
|
|
|
|
/obj/item/storage/box/petridish/PopulateContents()
|
|
for(var/i in 1 to 7)
|
|
new /obj/item/petri_dish(src)
|
|
|
|
/obj/item/storage/box/plumbing
|
|
name = "box of plumbing supplies"
|
|
desc = "Contains a small supply of pipes, water recyclers, and metal to connect to the rest of the station."
|
|
|
|
/obj/item/storage/box/plumbing/PopulateContents()
|
|
var/list/items_inside = list(
|
|
/obj/item/stock_parts/water_recycler = 2,
|
|
/obj/item/stack/ducts/fifty = 1,
|
|
/obj/item/stack/sheet/metal/ten = 1,
|
|
)
|
|
generate_items_inside(items_inside, src)
|
|
|
|
/obj/item/storage/box/tail_pin
|
|
name = "pin the tail on the corgi supplies"
|
|
desc = "For ages 10 and up. ...Why is this even on a space station? Aren't you a little old for babby games?" //Intentional typo.
|
|
|
|
/obj/item/storage/box/tail_pin/PopulateContents()
|
|
for(var/i in 1 to 3)
|
|
new /obj/item/poster/tail_board(src)
|
|
new /obj/item/tail_pin(src)
|