/* * 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_appearance() /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_suicide("[user] puts [user.p_their()] head into \the [src] and begins closing it! It looks like [user.p_theyre()] trying to commit suicide!")) 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_suicide("[user] is beating [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) return BRUTELOSS /obj/item/storage/box/update_overlays() . = ..() if(illustration) . += illustration /obj/item/storage/box/attack_self(mob/user) ..() if(!foldable || (flags_1 & HOLOGRAM_1)) return if(contents.len) to_chat(user, span_warning("You can't fold this box with items still inside!")) return if(!ispath(foldable)) return to_chat(user, span_notice("You fold [src] flat.")) 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, list/modifiers) ..() 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) // Ordinary survival box /obj/item/storage/box/survival name = "survival box" desc = "A box with the bare essentials of ensuring the survival of you and others." icon_state = "internals" illustration = "emergencytank" 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 new /obj/item/oxygen_candle(src) //SKYRAT EDIT ADDITION if(!isnull(medipen_type)) new medipen_type(src) if(HAS_TRAIT(SSstation, STATION_TRAIT_PREMIUM_INTERNALS)) new /obj/item/flashlight/flare(src) new /obj/item/radio/off(src) /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 name = "extended-capacity survival box" desc = "A box with the bare essentials of ensuring the survival of you and others. This one is labelled to contain an extended-capacity tank." illustration = "extendedtank" 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 //why is this its own thing if it's just the engi box with a syndie mask and medipen? name = "extended-capacity survival box" desc = "A box with the bare essentials of ensuring the survival of you and others. This one is labelled to contain an extended-capacity tank." mask_type = /obj/item/clothing/mask/gas/syndicate internal_type = /obj/item/tank/internals/emergency_oxygen/engi medipen_type = null illustration = "extendedtank" // 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 = "epipen" /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 = "epipen" /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 = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." 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 = "WARNING: These devices are extremely dangerous and can cause severe injuries or death in repeated use." 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 = "WARNING: Flashes can cause serious eye damage, protective eyewear is required." 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. WARNING: Flashes can cause serious eye damage, protective eyewear is required." 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 = "WARNING: These devices are extremely dangerous and can cause blindness and skin irritation." 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 = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." icon_state = "donkpocketbox" illustration=null var/donktype = /obj/item/food/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/food/donkpocket)) /obj/item/storage/box/donkpockets/donkpocketspicy name = "box of spicy-flavoured donk-pockets" icon_state = "donkpocketboxspicy" donktype = /obj/item/food/donkpocket/spicy /obj/item/storage/box/donkpockets/donkpocketteriyaki name = "box of teriyaki-flavoured donk-pockets" icon_state = "donkpocketboxteriyaki" donktype = /obj/item/food/donkpocket/teriyaki /obj/item/storage/box/donkpockets/donkpocketpizza name = "box of pizza-flavoured donk-pockets" icon_state = "donkpocketboxpizza" donktype = /obj/item/food/donkpocket/pizza /obj/item/storage/box/donkpockets/donkpocketgondola name = "box of gondola-flavoured donk-pockets" icon_state = "donkpocketboxgondola" donktype = /obj/item/food/donkpocket/gondola /obj/item/storage/box/donkpockets/donkpocketberry name = "box of berry-flavoured donk-pockets" icon_state = "donkpocketboxberry" donktype = /obj/item/food/donkpocket/berry /obj/item/storage/box/donkpockets/donkpockethonk name = "box of banana-flavoured donk-pockets" icon_state = "donkpocketboxbanana" donktype = /obj/item/food/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/advanced(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/ordnance, /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/advanced/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/advanced/prisoner/one(src) new /obj/item/card/id/advanced/prisoner/two(src) new /obj/item/card/id/advanced/prisoner/three(src) new /obj/item/card/id/advanced/prisoner/four(src) new /obj/item/card/id/advanced/prisoner/five(src) new /obj/item/card/id/advanced/prisoner/six(src) new /obj/item/card/id/advanced/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 = "Keep out of reach of children." 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" illustration = "" /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 = PAYCHECK_ASSISTANT * 0.4 base_icon_state = "matchbox" illustration = null /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/matches/update_icon_state() . = ..() switch(length(contents)) if(10) icon_state = base_icon_state if(5 to 9) icon_state = "[base_icon_state]_almostfull" if(1 to 4) icon_state = "[base_icon_state]_almostempty" if(0) icon_state = "[base_icon_state]_e" /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_suicide("[user] clamps the box of hugs on [user.p_their()] jugular! Guess it wasn't such a hugbox after all..")) 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_notice("[user] hugs \the [src]."),span_notice("You hug \the [src].")) /////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_warning("You need to empty [src] out first!")) return if(!user.temporarilyRemoveItemFromInventory(I)) return qdel(I) to_chat(user, span_notice("You add some wheels to the [src]! You've got a honkbot assembly now! Honk!")) 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 new /obj/item/oxygen_candle(src) //SKYRAT EDIT ADDITION if(HAS_TRAIT(SSstation, STATION_TRAIT_PREMIUM_INTERNALS)) new /obj/item/flashlight/flare(src) new /obj/item/radio/off(src) /obj/item/storage/box/hug/plushes name = "tactical cuddle kit" desc = "A lovely little box filled with soft, cute plushies, perfect for calming down people who have just suffered a traumatic event. Legend has it there's a special part of hell \ for Medical Officers who just take the box for themselves." /// the plushies that aren't of things trying to kill you var/list/static/approved_by_corporate = list(/obj/item/toy/plush/carpplushie, // well, maybe they can be something that tries to kill you a little bit /obj/item/toy/plush/slimeplushie, /obj/item/toy/plush/lizard_plushie, /obj/item/toy/plush/snakeplushie, /obj/item/toy/plush/plasmamanplushie, /obj/item/toy/plush/beeplushie, /obj/item/toy/plush/moth, /obj/item/toy/plush/pkplush) /obj/item/storage/box/hug/plushes/PopulateContents() for(var/i in 1 to 7) var/plush_path = pick(approved_by_corporate) new plush_path(src) /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 = sort_list(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" return ..() /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_notice("You make some modifications to [src] using your pen.")) 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_notice("You cut eyeholes into [src]."), 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_notice("You cut eyeholes into [src] and modify the design."), 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_warning("You can't modify [src] with items still inside!")) return FALSE if(!P || !user.is_holding(P)) to_chat(user, span_warning("You need a pen to modify [src]!")) 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/offstation(src) new /obj/item/circuitboard/machine/destructive_analyzer(src) new /obj/item/circuitboard/machine/circuit_imprinter/offstation(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 = PAYCHECK_EASY * 3 /obj/item/storage/box/dishdrive/PopulateContents() var/static/items_inside = list( /obj/item/stack/sheet/iron/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, /obj/item/wrench = 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/iron/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,\ //SKYRAT EDIT REMOVAL /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 = PAYCHECK_EASY /obj/item/storage/box/gum/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.set_holdable(list(/obj/item/food/bubblegum)) STR.max_items = 4 /obj/item/storage/box/gum/PopulateContents() for(var/i in 1 to 4) new/obj/item/food/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 = PAYCHECK_EASY * 1.5 /obj/item/storage/box/gum/nicotine/PopulateContents() for(var/i in 1 to 4) new/obj/item/food/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 = PAYCHECK_HARD * 3 custom_premium_price = PAYCHECK_HARD * 3 /obj/item/storage/box/gum/happiness/Initialize(mapload) . = ..() 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/food/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/food/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 iron 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/iron/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) /obj/item/storage/box/emergencytank name = "emergency oxygen tank box" desc = "A box of emergency oxygen tanks." illustration = "emergencytank" /obj/item/storage/box/emergencytank/PopulateContents() ..() for(var/i in 1 to 7) new /obj/item/tank/internals/emergency_oxygen(src) //in case anyone ever wants to do anything with spawning them, apart from crafting the box /obj/item/storage/box/engitank name = "extended-capacity emergency oxygen tank box" desc = "A box of extended-capacity emergency oxygen tanks." illustration = "extendedtank" /obj/item/storage/box/engitank/PopulateContents() ..() for(var/i in 1 to 7) new /obj/item/tank/internals/emergency_oxygen/engi(src) //in case anyone ever wants to do anything with spawning them, apart from crafting the box /obj/item/storage/box/stabilized //every single stabilized extract from xenobiology name = "box of stabilized extracts" icon_state = "syndiebox" /obj/item/storage/box/stabilized/PopulateContents() var/static/items_inside = list( /obj/item/slimecross/stabilized/grey=1,\ /obj/item/slimecross/stabilized/orange=1,\ /obj/item/slimecross/stabilized/purple=1,\ /obj/item/slimecross/stabilized/blue=1,\ /obj/item/slimecross/stabilized/metal=1,\ /obj/item/slimecross/stabilized/yellow=1,\ /obj/item/slimecross/stabilized/darkpurple=1,\ /obj/item/slimecross/stabilized/darkblue=1,\ /obj/item/slimecross/stabilized/silver=1,\ /obj/item/slimecross/stabilized/bluespace=1,\ /obj/item/slimecross/stabilized/sepia=1,\ /obj/item/slimecross/stabilized/cerulean=1,\ /obj/item/slimecross/stabilized/pyrite=1,\ /obj/item/slimecross/stabilized/red=1,\ /obj/item/slimecross/stabilized/green=1,\ /obj/item/slimecross/stabilized/pink=1,\ /obj/item/slimecross/stabilized/gold=1,\ /obj/item/slimecross/stabilized/oil=1,\ /obj/item/slimecross/stabilized/black=1,\ /obj/item/slimecross/stabilized/lightpink=1,\ /obj/item/slimecross/stabilized/adamantine=1,\ /obj/item/slimecross/stabilized/rainbow=1,\ ) generate_items_inside(items_inside,src) /obj/item/storage/box/ingredients //This box is for the randomly chosen version the chef used to spawn with, it shouldn't actually exist. name = "ingredients box" illustration = "fruit" var/theme_name /obj/item/storage/box/ingredients/Initialize(mapload) . = ..() if(theme_name) name = "[name] ([theme_name])" desc = "A box containing supplementary ingredients for the aspiring chef. The box's theme is '[theme_name]'." inhand_icon_state = "syringe_kit" /obj/item/storage/box/ingredients/wildcard theme_name = "wildcard" /obj/item/storage/box/ingredients/wildcard/PopulateContents() for(var/i in 1 to 7) var/randomFood = pick(/obj/item/food/grown/chili, /obj/item/food/grown/tomato, /obj/item/food/grown/carrot, /obj/item/food/grown/potato, /obj/item/food/grown/potato/sweet, /obj/item/food/grown/apple, /obj/item/food/chocolatebar, /obj/item/food/grown/cherries, /obj/item/food/grown/banana, /obj/item/food/grown/cabbage, /obj/item/food/grown/soybeans, /obj/item/food/grown/corn, /obj/item/food/grown/mushroom/plumphelmet, /obj/item/food/grown/mushroom/chanterelle) new randomFood(src) /obj/item/storage/box/ingredients/fiesta theme_name = "fiesta" /obj/item/storage/box/ingredients/fiesta/PopulateContents() new /obj/item/food/tortilla(src) for(var/i in 1 to 2) new /obj/item/food/grown/corn(src) new /obj/item/food/grown/soybeans(src) new /obj/item/food/grown/chili(src) /obj/item/storage/box/ingredients/italian theme_name = "italian" /obj/item/storage/box/ingredients/italian/PopulateContents() for(var/i in 1 to 3) new /obj/item/food/grown/tomato(src) new /obj/item/food/meatball(src) new /obj/item/reagent_containers/food/drinks/bottle/wine(src) /obj/item/storage/box/ingredients/vegetarian theme_name = "vegetarian" /obj/item/storage/box/ingredients/vegetarian/PopulateContents() for(var/i in 1 to 2) new /obj/item/food/grown/carrot(src) new /obj/item/food/grown/eggplant(src) new /obj/item/food/grown/potato(src) new /obj/item/food/grown/apple(src) new /obj/item/food/grown/corn(src) new /obj/item/food/grown/tomato(src) /obj/item/storage/box/ingredients/american theme_name = "american" /obj/item/storage/box/ingredients/american/PopulateContents() for(var/i in 1 to 2) new /obj/item/food/grown/potato(src) new /obj/item/food/grown/tomato(src) new /obj/item/food/grown/corn(src) new /obj/item/food/meatball(src) /obj/item/storage/box/ingredients/fruity theme_name = "fruity" /obj/item/storage/box/ingredients/fruity/PopulateContents() for(var/i in 1 to 2) new /obj/item/food/grown/apple(src) new /obj/item/food/grown/citrus/orange(src) new /obj/item/food/grown/citrus/lemon(src) new /obj/item/food/grown/citrus/lime(src) new /obj/item/food/grown/watermelon(src) /obj/item/storage/box/ingredients/sweets theme_name = "sweets" /obj/item/storage/box/ingredients/sweets/PopulateContents() for(var/i in 1 to 2) new /obj/item/food/grown/cherries(src) new /obj/item/food/grown/banana(src) new /obj/item/food/chocolatebar(src) new /obj/item/food/grown/cocoapod(src) new /obj/item/food/grown/apple(src) /obj/item/storage/box/ingredients/delights theme_name = "delights" /obj/item/storage/box/ingredients/delights/PopulateContents() for(var/i in 1 to 2) new /obj/item/food/grown/potato/sweet(src) new /obj/item/food/grown/bluecherries(src) new /obj/item/food/grown/vanillapod(src) new /obj/item/food/grown/cocoapod(src) new /obj/item/food/grown/berries(src) /obj/item/storage/box/ingredients/grains theme_name = "grains" /obj/item/storage/box/ingredients/grains/PopulateContents() for(var/i in 1 to 3) new /obj/item/food/grown/oat(src) new /obj/item/food/grown/wheat(src) new /obj/item/food/grown/cocoapod(src) new /obj/item/reagent_containers/honeycomb(src) new /obj/item/seeds/poppy(src) /obj/item/storage/box/ingredients/carnivore theme_name = "carnivore" /obj/item/storage/box/ingredients/carnivore/PopulateContents() new /obj/item/food/meat/slab/bear(src) new /obj/item/food/meat/slab/spider(src) new /obj/item/food/spidereggs(src) new /obj/item/food/meat/slab/penguin(src) new /obj/item/food/meat/slab/xeno(src) new /obj/item/food/meat/slab/corgi(src) new /obj/item/food/meatball(src) /obj/item/storage/box/ingredients/exotic theme_name = "exotic" /obj/item/storage/box/ingredients/exotic/PopulateContents() for(var/i in 1 to 2) new /obj/item/food/fishmeat/carp(src) new /obj/item/food/grown/soybeans(src) new /obj/item/food/grown/cabbage(src) new /obj/item/food/grown/chili(src) /obj/item/storage/box/ingredients/seafood theme_name = "seafood" /obj/item/storage/box/ingredients/seafood/PopulateContents() for(var/i in 1 to 2) new /obj/item/food/fishmeat/carp(src) new /obj/item/food/fishmeat/armorfish(src) new /obj/item/food/fishmeat/moonfish(src) new /obj/item/food/fishmeat/gunner_jellyfish(src) /obj/item/storage/box/ingredients/random theme_name = "random" desc = "This box should not exist, contact the proper authorities." /obj/item/storage/box/ingredients/random/Initialize(mapload) .=..() var/chosen_box = pick(subtypesof(/obj/item/storage/box/ingredients) - /obj/item/storage/box/ingredients/random) new chosen_box(loc) return INITIALIZE_HINT_QDEL /obj/item/storage/box/hero name = "Courageous Tomb Raider - 1940's." desc = "This legendary figure of still dubious historical accuracy is thought to have been a world-famous archeologist who embarked on countless adventures in far away lands, along with his trademark whip and fedora hat." /obj/item/storage/box/hero/PopulateContents() new /obj/item/clothing/head/fedora/curator(src) new /obj/item/clothing/suit/curator(src) new /obj/item/clothing/under/rank/civilian/curator/treasure_hunter(src) new /obj/item/clothing/shoes/workboots/mining(src) new /obj/item/melee/curator_whip(src) /obj/item/storage/box/hero/astronaut name = "First Man on the Moon - 1960's." desc = "One small step for a man, one giant leap for mankind. Relive the beginnings of space exploration with this fully functional set of vintage EVA equipment." /obj/item/storage/box/hero/astronaut/PopulateContents() new /obj/item/clothing/suit/space/nasavoid(src) new /obj/item/clothing/head/helmet/space/nasavoid(src) new /obj/item/tank/internals/oxygen(src) new /obj/item/gps(src) /obj/item/storage/box/hero/scottish name = "Braveheart, the Scottish rebel - 1300's." desc = "Seemingly a legendary figure in the battle for Scottish independence, this historical figure is closely associated with blue facepaint, big swords, strange man skirts, and his ever enduring catchphrase: 'FREEDOM!!'" /obj/item/storage/box/hero/scottish/PopulateContents() new /obj/item/clothing/under/costume/kilt(src) new /obj/item/claymore/weak/ceremonial(src) new /obj/item/toy/crayon/spraycan(src) new /obj/item/clothing/shoes/sandal(src) /obj/item/storage/box/hero/carphunter name = "Carp Hunter, Wildlife Expert - 2506." desc = "Despite his nickname, this wildlife expert was mainly known as a passionate environmentalist and conservationist, often coming in contact with dangerous wildlife to teach about the beauty of nature." /obj/item/storage/box/hero/carphunter/PopulateContents() new /obj/item/clothing/suit/space/hardsuit/carp/old(src) new /obj/item/clothing/mask/gas/carp(src) new /obj/item/knife/hunting(src) new /obj/item/storage/box/papersack/meat(src) /obj/item/storage/box/holy/clock name = "Forgotten kit" /obj/item/storage/box/holy/clock/PopulateContents() new /obj/item/clothing/head/helmet/chaplain/clock(src) new /obj/item/clothing/suit/armor/riot/chaplain/clock(src) /obj/item/storage/box/holy name = "Templar Kit" /obj/item/storage/box/holy/PopulateContents() new /obj/item/clothing/head/helmet/chaplain(src) new /obj/item/clothing/suit/armor/riot/chaplain(src) /obj/item/storage/box/holy/student name = "Profane Scholar Kit" /obj/item/storage/box/holy/student/PopulateContents() new /obj/item/clothing/suit/armor/riot/chaplain/studentuni(src) new /obj/item/clothing/head/helmet/chaplain/cage(src) /obj/item/storage/box/holy/sentinel name = "Stone Sentinel Kit" /obj/item/storage/box/holy/sentinel/PopulateContents() new /obj/item/clothing/suit/armor/riot/chaplain/ancient(src) new /obj/item/clothing/head/helmet/chaplain/ancient(src) /obj/item/storage/box/holy/witchhunter name = "Witchhunter Kit" /obj/item/storage/box/holy/witchhunter/PopulateContents() new /obj/item/clothing/suit/armor/riot/chaplain/witchhunter(src) new /obj/item/clothing/head/helmet/chaplain/witchunter_hat(src) /obj/item/storage/box/holy/adept name = "Divine Adept Kit" /obj/item/storage/box/holy/adept/PopulateContents() new /obj/item/clothing/suit/armor/riot/chaplain/adept(src) new /obj/item/clothing/head/helmet/chaplain/adept(src) /obj/item/storage/box/holy/follower name = "Followers of the Chaplain Kit" /obj/item/storage/box/holy/follower/PopulateContents() new /obj/item/clothing/suit/hooded/chaplain_hoodie/leader(src) new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) new /obj/item/clothing/suit/hooded/chaplain_hoodie(src)