/* * 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 boxes * * Handcuff, mousetrap, and pillbottle boxes * * Snap-pops * * Replacement light boxes. * * Kitchen utensil box * * Random preserved snack box * * For syndicate call-ins see uplink_kits.dm * * Firing pin boxes - Testing and Normal. one for sec, one for science. * * Flag boxes (various national/corporate flag collections) */ /obj/item/storage/box name = "box" desc = "It's just an ordinary box." icon = 'icons/obj/storage/boxes.dmi' icon_state = "box" item_state = "box" contained_sprite = TRUE color = COLOR_CARDBOARD var/label = "label" var/illustration = "writing" // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard var/foldable = /obj/item/stack/material/cardboard ///Boolean, if set, can be crushed into a trash item when empty var/trash = null var/maxHealth = 20 //health is already defined use_sound = 'sound/items/storage/box.ogg' drop_sound = 'sound/items/drop/cardboardbox.ogg' pickup_sound = 'sound/items/pickup/cardboardbox.ogg' var/chewable = TRUE /obj/item/storage/box/condition_hints(mob/user, distance, is_adjacent) . += ..() if (health < maxHealth) if (health >= (maxHealth * 0.5)) . += SPAN_WARNING("It is slightly torn.") else . += SPAN_DANGER("It is full of tears and holes.") /obj/item/storage/box/mechanics_hints(mob/user, distance, is_adjacent) . += ..() if(foldable) . += "Left-click on this when empty to fold it into a sheet." if(ispath(src.trash)) . += "This can be crumpled up into a trash item when empty, or forcibly crumpled on harm intent. " /obj/item/storage/box/update_icon() . = ..() if(label) var/image/label_img = image(icon, label) label_img.appearance_flags |= RESET_COLOR AddOverlays(label_img) if(illustration) var/image/illustration_img = image(icon, illustration) illustration_img.appearance_flags |= RESET_COLOR AddOverlays(illustration_img) /obj/item/storage/box/Initialize() . = ..() health = maxHealth update_icon() /obj/item/storage/box/proc/damage(var/severity) health -= severity check_health() /obj/item/storage/box/proc/check_health() if (health <= 0) qdel(src) /obj/item/storage/box/attack_generic(mob/user, damage, attack_message, environment_smash, armor_penetration, attack_flags, damage_type) if(!chewable) return if(istype(user, /mob/living)) var/mob/living/L = user if (istype(L, /mob/living/carbon/alien/diona) || istype(L, /mob/living/simple_animal) || istype(L, /mob/living/carbon/human))//Monkey-like things do attack_generic, not crew if(contents.len && !locate(/obj/item/reagent_containers/food) in src) // you can tear open empty boxes for nesting material, or for food to_chat(user, SPAN_WARNING("There's no food in that box!")) return if (!damage || damage <= 0) return user.do_attack_animation(src) if ((health-damage) <= 0) L.visible_message(SPAN_DANGER("[L] tears open the [src], spilling its contents everywhere!"), SPAN_DANGER("You tear open the [src], spilling its contents everywhere!")) spill() else shake_animation() var/toplay = pick(list('sound/effects/creatures/nibble1.ogg','sound/effects/creatures/nibble2.ogg')) playsound(loc, toplay, 30, 1) damage(damage) ..() // BubbleWrap - A box can be folded up to make card /obj/item/storage/box/attack_self(mob/user as mob) if(..()) return if(ispath(src.foldable) || ispath(src.trash)) var/found = 0 for(var/mob/M in range(1)) if(M.s_active == src) src.close(M) // Close any open UI windows first if(M == user) found = 1 if(!found) // User is too far away return if(ispath(src.foldable)) if(contents.len) return to_chat(user, SPAN_NOTICE("You fold \the [src] flat.")) //make cardboard playsound(src.loc, 'sound/items/storage/boxfold.ogg', 30, 1) var/obj/item/foldable = new src.foldable() qdel(src) user.put_in_hands(foldable) //try to put it inhands if possible if(ispath(src.trash) && user.a_intent == I_HURT) if(!contents.len) to_chat(user, SPAN_NOTICE("You crumple up \the [src].")) else user.visible_message(SPAN_DANGER("You crush \the [src], spilling its contents everywhere!"), SPAN_DANGER("[user] crushes \the [src], spilling its contents everywhere!")) spill() playsound(src.loc, 'sound/items/pickup/wrapper.ogg', 30, 1) var/obj/item/trash = new src.trash() qdel(src) user.put_in_hands(trash) /obj/item/storage/box/attackby(obj/item/attacking_item, mob/user) if(istype(attacking_item, /obj/item/stack/packageWrap)) var/total_storage_space = attacking_item.get_storage_cost() for(var/obj/item/I in contents) total_storage_space += I.get_storage_cost() if(total_storage_space <= max_storage_space) var/question = tgui_input_list(user, "Will you want to wrap \the [src] or store the item inside?", "Wrap or Store", list("Wrap", "Store")) if(question == "Wrap") return else if(question == "Store") return ..() else ..() /obj/item/storage/box/large name = "large box" icon_state = "largebox" label = "label_large" illustration = "writing_large" max_storage_space = DEFAULT_LARGEBOX_STORAGE /obj/item/storage/box/blank label = null illustration = null /obj/item/storage/box/survival name = "emergency survival box" desc = "A faithful box that will remain with you, no matter where you go, and probably save you." color = COLOR_REDBOX label = null illustration = "survival" max_storage_space = DEFAULT_BOX_STORAGE can_hold = list( /obj/item/clothing/mask, /obj/item/tank/emergency_oxygen, /obj/item/flashlight/flare, /obj/item/stack/medical, /obj/item/reagent_containers/hypospray/autoinjector, /obj/item/reagent_containers/inhaler, /obj/item/oxycandle, /obj/item/extinguisher/mini, /obj/item/radio, /obj/item/flashlight, /obj/item/reagent_containers/food/drinks/flask, /obj/item/storage/box/fancy/cigarettes, /obj/item/flame/lighter, /obj/item/disk/nuclear, /obj/item/crowbar, /obj/item/airbubble ) starts_with = list( /obj/item/clothing/mask/breath = 1, /obj/item/tank/emergency_oxygen = 1, /obj/item/oxycandle = 1, /obj/item/flashlight/flare/glowstick/red = 1, /obj/item/stack/medical/bruise_pack = 1, /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 1 ) /obj/item/storage/box/survival/engineer illustration = "survivaleng" starts_with = list( /obj/item/clothing/mask/breath = 1, /obj/item/tank/emergency_oxygen/engi = 1, /obj/item/oxycandle = 1, /obj/item/flashlight/flare = 1, /obj/item/stack/medical/bruise_pack = 1, /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 1 ) /obj/item/storage/box/survival/vaurca icon_state = "redbox" illustration = "survivalvox" starts_with = list(/obj/item/clothing/mask/breath = 1, /obj/item/reagent_containers/inhaler/phoron_special = 1) /obj/item/storage/box/gloves name = "box of sterile gloves" desc = "Contains sterile gloves." color = COLOR_IAC illustration = "latex" max_storage_space = DEFAULT_BOX_STORAGE starts_with = list(/obj/item/clothing/gloves/latex = 2, /obj/item/clothing/gloves/latex/nitrile = 2, /obj/item/clothing/gloves/latex/nitrile/unathi = 1, /obj/item/clothing/gloves/latex/nitrile/tajara = 1, /obj/item/clothing/gloves/latex/nitrile/vaurca = 1) /obj/item/storage/box/masks name = "box of surgical masks" desc = "This box contains masks of surgicality." color = COLOR_IAC illustration = "sterile" starts_with = list(/obj/item/clothing/mask/surgical = 4, /obj/item/clothing/mask/surgical/w = 3) /obj/item/storage/box/syringes name = "box of syringes" desc = "A box full of syringes." color = COLOR_IAC illustration = "syringe" starts_with = list(/obj/item/reagent_containers/syringe = 20) /obj/item/storage/box/syringegun name = "box of syringe gun cartridges" desc = "A box full of compressed gas cartridges." illustration = "syringe" starts_with = list(/obj/item/syringe_cartridge = 7) /obj/item/storage/box/beakers name = "box of beakers" color = COLOR_IAC illustration = "beaker" starts_with = list(/obj/item/reagent_containers/glass/beaker = 7) /obj/item/storage/box/injectors name = "box of DNA injectors" desc = "This box contains injectors it seems." illustration = "dna" starts_with = list(/obj/item/dnainjector/h2m = 3, /obj/item/dnainjector/m2h = 3) // Ammunition /obj/item/storage/box/ammo name = "ammo box" desc = "A box with several compact tungsten slugs, aimed for use in gauss carbines." icon_state = "ammobox" item_state = "ammobox" label = null illustration = null drop_sound = 'sound/items/drop/ammobox.ogg' pickup_sound = 'sound/items/pickup/ammobox.ogg' foldable = null chewable = FALSE /obj/item/storage/box/ammo/tungstenslugs name = "box of compact tungsten slugs" desc = "A box with several compact tungsten slugs, aimed for use in gauss carbines." starts_with = list(/obj/item/ammo_casing/gauss/carbine = 4) /obj/item/storage/box/ammo/sniperammo name = "box of 14.5mm shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." starts_with = list(/obj/item/ammo_casing/a145 = 7) /obj/item/storage/box/ammo/ammo10mm name = "box of 10mm shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." starts_with = list(/obj/item/ammo_casing/c10mm = 10) /obj/item/storage/box/ammo/governmentammo name = "box of .45-70 Govt. rounds" desc = "It has a picture of a rifle shell and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." starts_with = list(/obj/item/ammo_casing/govt = 8) // Shells /obj/item/storage/box/shells name = "empty shotgun shell box" desc = "It has a picture of a shotgun shell and several warning symbols on the front." color = COLOR_DARK_GUNMETAL icon_state = "shellbox" label = "label_shell" illustration = "blankshot" drop_sound = 'sound/items/drop/ammobox.ogg' pickup_sound = 'sound/items/pickup/ammobox.ogg' /obj/item/storage/box/shells/tranquilizer name = "box of tranquilizer darts" desc = "It has a picture of a tranquilizer dart and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." illustration = "incendiaryshot" starts_with = list(/obj/item/ammo_casing/tranq = 8) /obj/item/storage/box/shells/blanks name = "box of blank shells" desc = "It has a picture of a shotgun shell and several warning symbols on the front." illustration = "blankshot" starts_with = list(/obj/item/ammo_casing/shotgun/blank = 8) /obj/item/storage/box/shells/beanbags name = "box of beanbag shells" desc = "It has a picture of a shotgun shell and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." illustration = "beanshot" starts_with = list(/obj/item/ammo_casing/shotgun/beanbag = 8) /obj/item/storage/box/shells/slugs name = "box of shotgun slugs" desc = "It has a picture of a shotgun shell and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." illustration = "lethalslug" starts_with = list(/obj/item/ammo_casing/shotgun = 8) /obj/item/storage/box/shells/buckshot name = "box of shotgun shells" desc = "It has a picture of a shotgun shell and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." illustration = "lethalshell" starts_with = list(/obj/item/ammo_casing/shotgun/pellet = 8) /obj/item/storage/box/shells/flashshells name = "box of illumination shells" desc = "It has a picture of a shotgun shell and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." illustration = "illumshot" starts_with = list(/obj/item/ammo_casing/shotgun/flash = 8) /obj/item/storage/box/shells/stunshells name = "box of stun shells" desc = "It has a picture of a shotgun shell and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." illustration = "stunshot" starts_with = list(/obj/item/ammo_casing/shotgun/stunshell = 8) /obj/item/storage/box/shells/practiceshells name = "box of practice shells" desc = "It has a picture of a shotgun shell and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." illustration = "blankshot" starts_with = list(/obj/item/ammo_casing/shotgun/practice = 8) /obj/item/storage/box/shells/haywireshells name = "box of haywire shells" desc = "It has a picture of a shotgun shell and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." illustration = "empshot" starts_with = list(/obj/item/ammo_casing/shotgun/emp = 8) /obj/item/storage/box/shells/incendiaryshells name = "box of incendiary shells" desc = "It has a picture of a shotgun shell and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." illustration = "incendiaryshot" starts_with = list(/obj/item/ammo_casing/shotgun/incendiary = 8) /obj/item/storage/box/shells/trackingslugs name = "box of tracking slugs" desc = "It has a picture of a shotgun shell and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." illustration = "trackingshot" starts_with = list(/obj/item/ammo_casing/shotgun/tracking = 4) /obj/item/storage/box/shells/wallgunammo name = "box of wall gun slugs" desc = "It has a picture of a shotgun shell and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." illustration = "lethalslug" starts_with = list(/obj/item/ammo_casing/shotgun/moghes = 8) // Tactical boxes /obj/item/storage/box/tactical name = "tactical equipment box" color = COLOR_GUNMETAL label = "label_sec" /obj/item/storage/box/tactical/flashbangs name = "box of flashbangs" desc = "A box containing 7 antipersonnel flashbang grenades.
WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." illustration = "flashbang" starts_with = list(/obj/item/grenade/flashbang = 7) /obj/item/storage/box/tactical/stingers name = "box of stinger grenades" desc = "A box containing 7 antipersonnel stinger grenades.
WARNING: These devices are extremely dangerous and can cause injury." illustration = "stinger" starts_with = list(/obj/item/grenade/stinger = 7) /obj/item/storage/box/tactical/teargas name = "box of pepperspray grenades" desc = "A box containing 7 tear gas grenades. A gas mask is printed on the label.
WARNING: Exposure carries risk of serious injury or death. Keep away from persons with lung conditions." illustration = "grenade" starts_with = list(/obj/item/grenade/chem_grenade/teargas = 6) /obj/item/storage/box/tactical/smokebombs name = "box of smoke grenades" desc = "A box full of smoke grenades, used by special law enforcement teams and military organisations. Provides cover, confusion, and distraction." illustration = "grenade" starts_with = list(/obj/item/grenade/smokebomb = 7) /obj/item/storage/box/tactical/emps name = "box of emp grenades" desc = "A box containing 5 military grade EMP grenades.
WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur." illustration = "emp" starts_with = list(/obj/item/grenade/empgrenade = 5) /obj/item/storage/box/tactical/smokes name = "box of smoke bombs" desc = "A box containing 5 smoke bombs." illustration = "grenade" starts_with = list(/obj/item/grenade/smokebomb = 5) /obj/item/storage/box/tactical/anti_photons name = "box of anti-photon grenades" desc = "A box containing 5 experimental photon disruption grenades." illustration = "grenade" starts_with = list(/obj/item/grenade/anti_photon = 5) /obj/item/storage/box/tactical/frags name = "box of frag grenades" desc = "A box containing 5 military grade fragmentation grenades.
WARNING: Live explosives. Misuse may result in serious injury or death." illustration = "grenade" starts_with = list(/obj/item/grenade/frag = 5) /obj/item/storage/box/tactical/napalm name = "box of napalm grenades" desc = "A box containing 3 napalm grenades." illustration = "grenade" starts_with = list(/obj/item/grenade/napalm = 3) /obj/item/storage/box/tactical/cardox name = "box of cardox grenades" desc = "A box containing 5 experimental cardox grenades." illustration = "grenade" starts_with = list(/obj/item/grenade/chem_grenade/large/phoroncleaner = 5) /obj/item/storage/box/tactical/trackimp name = "boxed tracking implant kit" desc = "Box full of scum-bag tracking utensils." illustration = "implant" starts_with = list(/obj/item/implantcase/tracking = 4, /obj/item/implanter = 1, /obj/item/implantpad = 1, /obj/item/locator = 1) /obj/item/storage/box/handcuffs name = "box of spare handcuffs" desc = "A box full of handcuffs." illustration = "handcuff" starts_with = list(/obj/item/handcuffs = 7) // Firing pins /obj/item/storage/box/firingpins name = "box of firing pins" desc = "A box of NT brand Firearm authentication pins; Needed to operate most weapons." illustration = "firingpin" starts_with = list(/obj/item/firing_pin = 7) /obj/item/storage/box/securitypins name = "box of wireless-control firing pins" desc = "A box of NT brand Firearm authentication pins; Needed to operate most weapons. These firing pins are wireless-control enabled." illustration = "firingpin" starts_with = list(/obj/item/firing_pin/wireless = 7) /obj/item/storage/box/testpins name = "box of firing pins" desc = "A box of NT brand Testing Authentication pins; allows guns to fire in designated firing ranges." illustration = "firingpin" starts_with = list(/obj/item/firing_pin/test_range = 7) /obj/item/storage/box/loyaltypins name = "box of firing pins" desc = "A box of specialised \"loyalty\" authentication pins produced by NanoTrasen; these check to see if the user of the gun it's installed in has been implanted with a mind shield implant. Often used in ERTs." illustration = "firingpin" starts_with = list(/obj/item/firing_pin/implant/loyalty = 7) /obj/item/storage/box/loyaltypins/fill() ..() new /obj/item/firing_pin/implant/loyalty(src) new /obj/item/firing_pin/implant/loyalty(src) new /obj/item/firing_pin/implant/loyalty(src) new /obj/item/firing_pin/implant/loyalty(src) /obj/item/storage/box/firingpinsRD name = "box of assorted firing pins" desc = "A box of varied assortment of firing pins. Appears to have R&D stickers on all sides of the box. Also seems to have a smiley face sticker on the top of it." illustration = "firingpin" starts_with = list(/obj/item/firing_pin = 2, /obj/item/firing_pin/access = 2, /obj/item/firing_pin/implant/loyalty = 2, /obj/item/firing_pin/psionic = 1, /obj/item/firing_pin/dna = 1) /obj/item/storage/box/unique/freezer/organcooler/psireceiver name = "psionic receivers cooler" desc = "A cooling box for psionic receivers, which can be surgically implanted to act as a replacement for an underdeveloped or non-existent zona bovinae. This one has a large sticker on the side reading FOR RESEARCH USE ONLY." color = COLOR_PURPLE_GRAY illustration = "implant" starts_with = list(/obj/item/organ/internal/augment/bioaug/psi = 4) can_hold = list( /obj/item/organ/internal/augment/bioaug/psi ) storage_slots = 4 /obj/item/storage/box/tethers name = "box of tethering devices" desc = "A box containing eight electro-tethers, used primarily to keep track of partners during expeditions." color = COLOR_PURPLE_GRAY starts_with = list(/obj/item/tethering_device = 8) make_exact_fit = TRUE /obj/item/storage/box/chemimp name = "boxed chemical implant kit" desc = "Box of stuff used to implant chemicals." color = COLOR_PURPLE_GRAY illustration = "implant" starts_with = list(/obj/item/implantcase/chem = 4, /obj/item/implanter = 1, /obj/item/implantpad = 1) /obj/item/storage/box/chemimp/fill() ..() new /obj/item/implantcase/chem(src) new /obj/item/implantcase/chem(src) new /obj/item/implantcase/chem(src) new /obj/item/implantcase/chem(src) new /obj/item/implantcase/chem(src) new /obj/item/implanter(src) new /obj/item/implantpad(src) /obj/item/storage/box/rxglasses name = "box of prescription glasses" desc = "This box contains nerd glasses." illustration = "glasses" starts_with = list(/obj/item/clothing/glasses/regular = 7) /obj/item/storage/box/drinkingglasses name = "box of drinking glasses" desc = "It has a picture of drinking glasses on it." color = COLOR_BLUE_GRAY illustration = "drinkglass" starts_with = list(/obj/item/reagent_containers/food/drinks/drinkingglass = 6) /obj/item/storage/box/cdeathalarm_kit name = "death alarm kit" desc = "Box of stuff used to implant death alarms." color = COLOR_GUNMETAL illustration = "implant" starts_with = list(/obj/item/implanter = 1, /obj/item/implantcase/death_alarm = 6, /obj/item/implantpad = 1) /obj/item/storage/box/large/condimentbottles name = "box of condiment bottles" desc = "It has a large ketchup smear on it." color = COLOR_YELLOW_GRAY illustration = "condiment" starts_with = list(/obj/item/reagent_containers/food/condiment = 6) /obj/item/storage/box/cups name = "box of paper cups" illustration = "cup" desc = "It has pictures of paper cups on the front." starts_with = list(/obj/item/reagent_containers/food/drinks/sillycup = 7) /obj/item/storage/box/janitorgloves name = "janitorial gloves box" desc = "A box full of janitorial gloves of all shapes and sizes." color = COLOR_PURPLE_GRAY make_exact_fit = TRUE can_hold = list( /obj/item/clothing/gloves/janitor ) starts_with = list( /obj/item/clothing/gloves/janitor = 1, /obj/item/clothing/gloves/janitor/tajara = 1, /obj/item/clothing/gloves/janitor/unathi = 1, /obj/item/clothing/gloves/janitor/vaurca = 1 ) /obj/item/storage/box/unique //unique sprite/properties name = "unique box" desc = "A unique box. How is it unique? You have no idea." color = COLOR_WHITE label = null illustration = null chewable = FALSE /obj/item/storage/box/unique/monkeycubes name = "monkey cube box" desc = "Drymate brand monkey cubes. Just add water!" desc_extended = "The manufacture of a cubed animal produces subjects that are similar but have marked differences compared to their ordinary cousins. Higher brain functions are all but destroyed \ and the life expectancy of the cubed animal is greatly reduced, with most expiring only a few days after introduction with water." icon_state = "monkeycubebox" can_hold = list(/obj/item/reagent_containers/food/snacks/monkeycube) starts_with = list(/obj/item/reagent_containers/food/snacks/monkeycube/wrapped = 5) /obj/item/storage/box/unique/monkeycubes/farwacubes name = "farwa cube box" desc = "Drymate brand farwa cubes, shipped from Adhomai. Just add water!" starts_with = list(/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/farwacube = 5) /obj/item/storage/box/unique/monkeycubes/stokcubes name = "stok cube box" desc = "Drymate brand stok cubes, shipped from Moghes. Just add water!" starts_with = list(/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/stokcube = 5) /obj/item/storage/box/unique/monkeycubes/neaeracubes name = "neaera cube box" desc = "Drymate brand neaera cubes, shipped from Nralakk IV. Just add water!" starts_with = list(/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube = 5) /obj/item/storage/box/unique/monkeycubes/vkrexicubes name = "vkrexi cube box" desc = "Drymate brand vkrexi cubes. Just add water!" starts_with = list(/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/vkrexicube = 5) /obj/item/storage/box/unique/sharps name = "sharps disposal box" desc = "A plastic box for disposal of used needles and other sharp, potentially-contaminated tools. There is a large biohazard sign on the front." illustration = null icon_state = "sharpsbox" use_sound = 'sound/items/storage/briefcase.ogg' max_storage_space = DEFAULT_BOX_STORAGE foldable = null /obj/item/storage/box/unique/freezer name = "portable freezer" desc = "This nifty shock-resistant device will keep your 'groceries' nice and non-spoiled." icon_state = "portafreezer" item_state = "medicalpack" max_w_class = WEIGHT_CLASS_NORMAL max_storage_space = DEFAULT_LARGEBOX_STORAGE use_to_pickup = FALSE // for picking up broken bulbs, not that most people will try chewable = FALSE /obj/item/storage/box/unique/freezer/organcooler name = "organ cooler" desc = "A sealed, cooled container to keep organs from decaying." icon_state = "organcooler" item_state = "redbox" max_w_class = WEIGHT_CLASS_NORMAL foldable = FALSE w_class = WEIGHT_CLASS_BULKY can_hold = list( /obj/item/organ, /obj/item/reagent_containers/food, /obj/item/reagent_containers/glass, /obj/item/gun ) storage_slots = 2 /obj/item/storage/box/unique/donkpockets name = "box of donk-pockets" desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." icon_state = "donkpocketbox" item_state = "redbox" starts_with = list(/obj/item/reagent_containers/food/snacks/donkpocket = 6) /obj/item/storage/box/unique/donkpockets/sinpockets name = "box of donk-pockets" desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." illustration = null starts_with = list(/obj/item/reagent_containers/food/snacks/donkpocket/sinpocket = 6) /obj/item/storage/box/unique/donkpockets/sinpockets/antagonist_hints(mob/user, distance, is_adjacent) . += ..() . += "Crush bottom of each package to initiate chemical heating. Wait for 20 seconds before consumption." . += "Product will cool if not eaten within seven minutes." /obj/item/storage/box/unique/donkpockets/gwok name = "box of teriyaki Gwok-pockets" icon_state = "donkpocketboxteriyaki" item_state = "redbox" illustration = null starts_with = list(/obj/item/reagent_containers/food/snacks/donkpocket/teriyaki = 6) /obj/item/storage/box/unique/donkpockets/gwok/takoyaki name = "box of takoyaki Gwok-pockets" starts_with = list(/obj/item/reagent_containers/food/snacks/donkpocket/takoyaki = 6) /obj/item/storage/box/ids name = "box of spare IDs" desc = "Has so many empty IDs." color = COLOR_PALE_BLUE_GRAY illustration = "id" starts_with = list(/obj/item/card/id = 7) /obj/item/storage/box/zipties name = "box of zipties" desc = "A box full of zipties." color = COLOR_GUNMETAL illustration = "handcuff" starts_with = list(/obj/item/handcuffs/ziptie = 7) /obj/item/storage/box/mousetraps name = "box of Pest-B-Gon mousetraps" desc = "WARNING: Keep out of reach of children." illustration = "mousetraps" starts_with = list(/obj/item/assembly/mousetrap = 6) /obj/item/storage/box/pillbottles name = "box of pill bottles" desc = "It has pictures of pill bottles on its front." color = COLOR_IAC illustration = "pillbox" starts_with = list(/obj/item/storage/pill_bottle = 7) /obj/item/storage/box/spraybottles name = "box of spray bottles" desc = "It has pictures of spray bottles on its front." illustration = "spray" starts_with = list(/obj/item/reagent_containers/spray = 7) /obj/item/storage/box/unique/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" can_hold = list(/obj/item/toy/snappop) starts_with = list(/obj/item/toy/snappop = 8) /obj/item/storage/box/unique/snappops/syndi starts_with = list(/obj/item/toy/snappop/syndi = 8) /obj/item/storage/box/unique/snappops/syndi/antagonist_hints(mob/user, distance, is_adjacent) . += ..() . += "These snap pops have an extra compound added that will deploy a tiny smokescreen when snapped." /obj/item/storage/box/partypopper name = "party popper box" desc = "Six cones of confetti conflagarating fun!" color = COLOR_PALE_PINK illustration = "partypopper" starts_with = list(/obj/item/toy/partypopper = 6) /obj/item/storage/box/autoinjectors name = "box of empty injectors" desc = "Contains empty autoinjectors." color = COLOR_IAC illustration = "epipen" starts_with = list(/obj/item/reagent_containers/hypospray/autoinjector = 7) /obj/item/storage/box/lights name = "box of replacement bulbs" illustration = "light" desc = "This box is shaped on the inside so that only light tubes and bulbs fit." color = COLOR_DARK_BLUE_GRAY use_to_pickup = TRUE // for picking up broken bulbs, not that most people will try make_exact_fit = TRUE /obj/item/storage/box/lights/bulbs starts_with = list(/obj/item/light/bulb = 21) /obj/item/storage/box/lights/tubes name = "box of replacement tubes" illustration = "lighttube" starts_with = list(/obj/item/light/tube = 21) /obj/item/storage/box/lights/mixed name = "box of replacement lights" illustration = "lightmixed" starts_with = list(/obj/item/light/tube = 14, /obj/item/light/bulb = 7) /obj/item/storage/box/lights/coloredmixed name = "box of colored lights" illustration = "lightmixed" /obj/item/storage/box/lights/coloredmixed/fill() // too lazy for this one ..() var/static/list/tube_colors = list( /obj/item/light/tube/colored/red, /obj/item/light/tube/colored/green, /obj/item/light/tube/colored/blue, /obj/item/light/tube/colored/magenta, /obj/item/light/tube/colored/yellow, /obj/item/light/tube/colored/cyan ) var/static/list/bulbs_colors = list( /obj/item/light/bulb/colored/red, /obj/item/light/bulb/colored/green, /obj/item/light/bulb/colored/blue, /obj/item/light/bulb/colored/magenta, /obj/item/light/bulb/colored/yellow, /obj/item/light/bulb/colored/cyan ) for(var/i = 0, i < 14, i++) var/type = pick(tube_colors) new type(src) for(var/i = 0, i < 7, i++) var/type = pick(bulbs_colors) new type(src) /obj/item/storage/box/lights/colored/red name = "box of red lights" illustration = "lightmixed" color = COLOR_RED_GRAY starts_with = list(/obj/item/light/tube/colored/red = 14, /obj/item/light/bulb/colored/red = 7) /obj/item/storage/box/lights/colored/green name = "box of green lights" illustration = "lightmixed" color = COLOR_GREEN_GRAY starts_with = list(/obj/item/light/tube/colored/green = 14, /obj/item/light/bulb/colored/green = 7) /obj/item/storage/box/lights/colored/blue name = "box of blue lights" illustration = "lightmixed" color = COLOR_BLUE_GRAY starts_with = list(/obj/item/light/tube/colored/blue = 14, /obj/item/light/bulb/colored/blue = 7) /obj/item/storage/box/lights/colored/cyan name = "box of cyan lights" illustration = "lightmixed" color = COLOR_LIGHT_CYAN starts_with = list(/obj/item/light/tube/colored/cyan = 14, /obj/item/light/bulb/colored/cyan = 7) /obj/item/storage/box/lights/colored/yellow name = "box of yellow lights" illustration = "lightmixed" color = COLOR_YELLOW_GRAY starts_with = list(/obj/item/light/tube/colored/yellow = 14, /obj/item/light/bulb/colored/yellow = 7) /obj/item/storage/box/lights/colored/magenta name = "box of magenta lights" illustration = "lightmixed" color = COLOR_PALE_PINK starts_with = list(/obj/item/light/tube/colored/magenta = 14, /obj/item/light/bulb/colored/magenta = 7) /obj/item/storage/box/kitchen name = "galley supplies" illustration = "knife" color = COLOR_GRAY80 desc = "Contains an assortment of utensils and containers useful in the preparation of food and drinks." /obj/item/storage/box/kitchen/fill() new /obj/item/material/knife(src)//Should always have a knife var/list/utensils = list( /obj/item/material/kitchen/rollingpin, /obj/item/reagent_containers/glass/beaker, /obj/item/material/kitchen/utensil/fork, /obj/item/reagent_containers/food/condiment/enzyme, /obj/item/material/kitchen/utensil/spoon, /obj/item/material/kitchen/utensil/knife, /obj/item/reagent_containers/food/drinks/shaker ) for (var/i = 0,i<6,i++) var/type = pick(utensils) new type(src) /obj/item/storage/box/snack name = "rations box" illustration = "snack" desc = "Contains a random assortment of preserved foods. Guaranteed to remain edible* in room-temperature longterm storage for centuries!" /obj/item/storage/box/snack/fill() var/list/snacks = list( /obj/item/reagent_containers/food/snacks/koisbar_clean, /obj/item/reagent_containers/food/snacks/candy, /obj/item/reagent_containers/food/snacks/candy/koko, /obj/item/reagent_containers/food/snacks/candy_corn, /obj/item/reagent_containers/food/snacks/chips, /obj/item/reagent_containers/food/snacks/chocolatebar, /obj/item/reagent_containers/food/snacks/chocolateegg, /obj/item/reagent_containers/food/snacks/popcorn, /obj/item/reagent_containers/food/snacks/sosjerky, /obj/item/reagent_containers/food/snacks/no_raisin, /obj/item/reagent_containers/food/snacks/spacetwinkie, /obj/item/reagent_containers/food/snacks/cheesiehonkers, /obj/item/reagent_containers/food/snacks/syndicake, /obj/item/reagent_containers/food/snacks/fortunecookie, /obj/item/reagent_containers/food/snacks/poppypretzel, /obj/item/reagent_containers/food/snacks/cracker, /obj/item/reagent_containers/food/snacks/liquidfood, /obj/item/reagent_containers/food/snacks/skrellsnacks, /obj/item/reagent_containers/food/snacks/tastybread, /obj/item/reagent_containers/food/snacks/meatsnack, /obj/item/reagent_containers/food/snacks/maps, /obj/item/reagent_containers/food/snacks/nathisnack, /obj/item/reagent_containers/food/snacks/adhomian_can, /obj/item/reagent_containers/food/snacks/tuna, /obj/item/storage/box/fancy/gum, /obj/item/storage/box/fancy/cookiesnack, /obj/item/storage/box/fancy/admints, /obj/item/storage/box/fancy/vkrexitaffy ) for (var/i = 0,i<7,i++) var/type = pick(snacks) new type(src) /obj/item/storage/box/stims name = "stimpack value kit" desc = "A box with several stimpack medipens for the economical miner." illustration = "syringe" starts_with = list(/obj/item/reagent_containers/hypospray/autoinjector/stimpack = 4) /obj/item/storage/box/inhalers name = "inhaler kit" desc = "A box filled with several inhalers and empty inhaler cartridges." illustration = "inhalers" starts_with = list(/obj/item/personal_inhaler = 2, /obj/item/reagent_containers/personal_inhaler_cartridge = 6) /obj/item/storage/box/inhalers_large name = "combat inhaler kit" desc = "A box filled with a combat inhaler and several large empty inhaler cartridges." illustration = "inhalers" starts_with = list(/obj/item/personal_inhaler/combat = 1, /obj/item/reagent_containers/personal_inhaler_cartridge/large = 6) /obj/item/storage/box/inhalers_auto name = "autoinhaler kit" desc = "A box filled with a combat inhaler and several large empty inhaler cartridges." illustration = "inhalers" starts_with = list(/obj/item/reagent_containers/inhaler = 8) /obj/item/storage/box/clams name = "box of Ras'val clam" desc = "A box filled with clams from the Ras'val sea, imported by Njadra'Akhar Enterprises." starts_with = list(/obj/item/reagent_containers/food/snacks/clam = 5) /obj/item/storage/box/large/produce name = "produce box" desc = "A large box of random, leftover produce." color = COLOR_GREEN_GRAY icon_state = "largebox" illustration = "fruit" starts_with = list(/obj/random_produce/box = 15) make_exact_fit = TRUE /obj/item/storage/box/large/produce/adhomai name = "adhomian produce box" desc = "A large box of produce originating from the frigid world of Adhomai." starts_with = list(/obj/random_produce/box/adhomai = 15) /obj/item/storage/box/large/produce/nralakk name = "nralakk produce box" desc = "A large box of produce originating from the Nralakk Federation." starts_with = list(/obj/random_produce/box/nralakk = 15) /obj/item/storage/box/large/produce/moghes name = "moghresian produce box" desc = "A large box of produce originating from Moghes, home of the Izweski Hegemony." starts_with = list(/obj/random_produce/box/moghes = 15) /obj/item/storage/box/large/candy name = "candy box" desc = "A large box of assorted small candy." icon_state = "largebox" illustration = "writing_large" make_exact_fit = TRUE /obj/item/storage/box/large/candy/fill() var/list/assorted_list = list( /obj/item/reagent_containers/food/snacks/cb01 = 1, /obj/item/reagent_containers/food/snacks/cb02 = 1, /obj/item/reagent_containers/food/snacks/cb03 = 1, /obj/item/reagent_containers/food/snacks/cb04 = 1, /obj/item/reagent_containers/food/snacks/cb05 = 1, /obj/item/reagent_containers/food/snacks/cb06 = 1, /obj/item/reagent_containers/food/snacks/cb07 = 1, /obj/item/reagent_containers/food/snacks/cb08 = 1, /obj/item/reagent_containers/food/snacks/cb09 = 1, /obj/item/reagent_containers/food/snacks/cb10 = 1 ) for(var/i in 1 to 24) var/chosen_candy = pickweight(assorted_list) new chosen_candy(src) /obj/item/storage/box/crabmeat name = "box of crab legs" desc = "A box filled with high-quality crab legs. Shipped on-board by popular demand!" starts_with = list(/obj/item/reagent_containers/food/snacks/crabmeat = 5) /obj/item/storage/box/toothpaste name = "dental hygiene box" desc = "A box filled with dental hygiene products for taking care of those pearly whites." color = COLOR_BLUE_GRAY starts_with = list(/obj/item/reagent_containers/food/snacks/crabmeat = 5) can_hold = list(/obj/item/reagent_containers/toothpaste, /obj/item/reagent_containers/toothbrush, /obj/item/reagent_containers/food/drinks/flask/vacuumflask/mouthwash, ) starts_with = list(/obj/item/reagent_containers/toothpaste = 1, /obj/item/reagent_containers/toothbrush = 1, /obj/item/reagent_containers/food/drinks/flask/vacuumflask/mouthwash = 1, ) /obj/item/storage/box/toothpaste/green starts_with = list(/obj/item/reagent_containers/toothpaste = 1, /obj/item/reagent_containers/toothbrush/green = 1, /obj/item/reagent_containers/food/drinks/flask/vacuumflask/mouthwash = 1, ) /obj/item/storage/box/toothpaste/red starts_with = list(/obj/item/reagent_containers/toothpaste = 1, /obj/item/reagent_containers/toothbrush/red = 1, /obj/item/reagent_containers/food/drinks/flask/vacuumflask/mouthwash = 1, ) /obj/item/storage/box/holobadge name = "holobadge box" desc = "A box claiming to contain holobadges." starts_with = list(/obj/item/clothing/accessory/badge/holo = 4, /obj/item/clothing/accessory/badge/holo/cord = 2) /obj/item/storage/box/sol_visa name = "Sol Alliance visa recommendations box" desc = "A box full of Sol Aliance visa recommendation slips." illustration = "paper" starts_with = list(/obj/item/clothing/accessory/badge/sol_visa = 6) /obj/item/storage/box/ceti_visa name = "TCAF recruitment papers box" desc = "A box full of papers that signify one as a recruit of the Tau Ceti Armed Forces." illustration = "paper" starts_with = list(/obj/item/clothing/accessory/badge/tcaf_papers = 6) /obj/item/storage/box/hadii_card name = "honorary party member card box" desc = "A box full of Hadiist party member cards." illustration = "paper" starts_with = list(/obj/item/clothing/accessory/badge/hadii_card = 6) /obj/item/storage/box/hadii_manifesto name = "hadiist manifesto box" desc = "A box filled with copies of the Hadiist Manifesto" illustration = "paper" starts_with = list(/obj/item/versebook/pra = 6) /obj/item/storage/box/dpra_manifesto name = "al'mariist manifesto box" desc = "A box filled with copies of 'In Defense of Al'mari's Legacy'." illustration = "paper" starts_with = list(/obj/item/versebook/dpra = 6) /obj/item/storage/box/nka_manifesto name = "royalist manifesto card box" desc = "A box filled with copies of 'The New Kingdom'." illustration = "paper" starts_with = list(/obj/item/versebook/nka = 6) /obj/item/storage/box/suns_flags name = "s'rand'marr Worship flag box" desc = "A box filled with flags of the S'rend'marr faith." illustration = "flags" starts_with = list( /obj/item/flag/srendarr = 1, /obj/item/flag/messa = 1 ) /obj/item/storage/box/matake_flags name = "ma'ta'ke pantheon flag box" desc = "A box filled to the brim with the various flags of the Ma'ta'ke Pantheon." illustration = "flags" starts_with = list( /obj/item/flag/matake = 1, /obj/item/flag/marryam = 1, /obj/item/flag/rredouane = 1, /obj/item/flag/shumaila = 1, /obj/item/flag/kraszar = 1, /obj/item/flag/dhrarmela = 1, /obj/item/flag/azubarre = 1 ) /// Parent object of various national flag boxes. Original intention for random cargo spawn. /obj/item/storage/box/large/flags name = "national flag box - PARENT ITEM DO NOT USE" desc = "A box filled to the brim with various flags." illustration = "flagslg" make_exact_fit = TRUE can_hold = list( /obj/item/flag ) /obj/item/storage/box/large/flags/sol name = "Solarian Alliance flag box" desc = "A box filled to the brim with various national flags." starts_with = list( /obj/item/flag/sol = 6, /obj/item/flag/sol/l = 4, /obj/item/flag/venus = 2, /obj/item/flag/venus/l = 1, /obj/item/flag/luna = 2, /obj/item/flag/luna/l = 1, /obj/item/flag/callisto = 2, /obj/item/flag/callisto/l = 1, /obj/item/flag/mars = 2, /obj/item/flag/mars/l = 1, /obj/item/flag/pluto = 2, /obj/item/flag/pluto/l = 1, /obj/item/flag/visegrad = 2, /obj/item/flag/visegrad/l = 1, /obj/item/flag/nhp = 2, /obj/item/flag/nhp/l = 1, /obj/item/flag/silversun = 2, /obj/item/flag/silversun/l = 1, /obj/item/flag/sancolette = 2, /obj/item/flag/sancolette/l = 1, /obj/item/flag/nsrm = 2, /obj/item/flag/nsrm/l = 1, /obj/item/flag/ssrm = 2, /obj/item/flag/ssrm/l = 1 ) /obj/item/storage/box/large/flags/biesel name = "Republic of Biesel flag box" desc = "A box filled to the brim with various national flags." starts_with = list( /obj/item/flag/biesel = 6, /obj/item/flag/biesel/l = 4, /obj/item/flag/valkyrie = 2, /obj/item/flag/valkyrie/l = 1, /obj/item/flag/portantillia = 2, /obj/item/flag/portantillia/l = 1, /obj/item/flag/mictlan = 2, /obj/item/flag/mictlan/l = 1, /obj/item/flag/newgibson = 2, /obj/item/flag/newgibson/l = 1 ) /obj/item/storage/box/large/flags/coc name = "Coalition of Colonies flag box" desc = "A box filled to the brim with various national flags." starts_with = list( /obj/item/flag/coalition = 6, /obj/item/flag/coalition/l = 4, /obj/item/flag/xanu = 2, /obj/item/flag/xanu/l = 1, /obj/item/flag/gadpathur = 2, /obj/item/flag/gadpathur/l = 1, /obj/item/flag/vysoka = 2, /obj/item/flag/vysoka/l = 1, /obj/item/flag/himeo = 2, /obj/item/flag/himeo/l = 1, /obj/item/flag/konyang = 2, /obj/item/flag/konyang/l = 1, /obj/item/flag/assunzione = 2, /obj/item/flag/assunzione/l = 1, /obj/item/flag/burzsia = 2, /obj/item/flag/burzsia/l = 1, /obj/item/flag/scarab = 3, /obj/item/flag/scarab/l = 2 ) /obj/item/storage/box/large/flags/galataea name = "Technocracy of Galatea flag box" desc = "A box filled to the brim with various national flags." starts_with = list( /obj/item/flag/galatea_government = 4, /obj/item/flag/galatea_government/l = 3, /obj/item/flag/galatea = 2, /obj/item/flag/galatea/l = 1, /obj/item/flag/tsukuyomi = 2, /obj/item/flag/tsukuyomi/l = 1, /obj/item/flag/svarog = 2, /obj/item/flag/svarog/l = 1, /obj/item/flag/empyrean = 2, /obj/item/flag/empyrean/l = 1 ) /obj/item/storage/box/large/flags/dominia name = "Empire of Dominia flag box" desc = "A box filled to the brim with various national flags." starts_with = list( /obj/item/flag/dominia = 8, /obj/item/flag/dominia/l = 6, /obj/item/flag/strelitz = 4, /obj/item/flag/volvalaad = 4, /obj/item/flag/caladius = 2, /obj/item/flag/zhao = 4, /obj/item/flag/zhurong = 3, /obj/item/flag/zhurong/l = 2, /obj/item/flag/imperial_frontier = 3, /obj/item/flag/imperial_frontier/l = 2 ) /obj/item/storage/box/large/flags/elyra name = "Serene Republic of Elyra flag box" desc = "A box filled to the brim with various national flags." starts_with = list( /obj/item/flag/elyra = 6, /obj/item/flag/elyra/l = 4, /obj/item/flag/persepolis = 2, /obj/item/flag/persepolis/l = 1, /obj/item/flag/damascus = 2, /obj/item/flag/damascus/l = 1, /obj/item/flag/medina = 2, /obj/item/flag/medina/l = 1, /obj/item/flag/newsuez = 2, /obj/item/flag/newsuez/l = 1, /obj/item/flag/aemaq = 2, /obj/item/flag/aemaq/l = 1 ) /obj/item/storage/box/large/flags/diona name = "Diona flag box" desc = "A box filled to the brim with various national flags." starts_with = list( /obj/item/flag/consortium = 6, /obj/item/flag/consortium/l = 4, /obj/item/flag/ekane = 2, /obj/item/flag/ekane/l = 1, /obj/item/flag/narrows = 2, /obj/item/flag/narrows/l = 1 ) /obj/item/storage/box/large/flags/unathi name = "Unathi flag box" desc = "A box filled to the brim with various national flags." starts_with = list( /obj/item/flag/hegemony = 6, /obj/item/flag/hegemony/l = 4, /obj/item/flag/ouerea/old = 4, /obj/item/flag/ouerea/old/l = 3, /obj/item/flag/fishingleague = 2 ) /obj/item/storage/box/large/flags/skrell name = "Skrell flag box" desc = "A box filled to the brim with various waterproof national flags." starts_with = list( /obj/item/flag/nralakk = 8, /obj/item/flag/nralakk/l = 6, /obj/item/flag/traverse = 2, /obj/item/flag/traverse/l = 1 ) /obj/item/storage/box/large/flags/tajara name = "Tajaran collected flag box" desc = "A box filled to the brim with various national flags. Whoever chose the selection for this one was either brave or stupid or both." starts_with = list( /obj/item/flag/dpra = 4, /obj/item/flag/dpra/l = 3, /obj/item/flag/pra = 4, /obj/item/flag/pra/l = 3, /obj/item/flag/nka = 4, /obj/item/flag/nka/l = 3, /obj/item/flag/ftc = 4, /obj/item/flag/ftc/l = 3 ) /obj/item/storage/box/large/flags/vaurca name = "Vaurca flag box" desc = "A box filled to the brim with various hive flags." starts_with = list( /obj/item/flag/sedantis = 4, /obj/item/flag/sedantis/l = 3, /obj/item/flag/zora = 4, /obj/item/flag/zora/l = 3, /obj/item/flag/klax = 4, /obj/item/flag/klax/l = 3, /obj/item/flag/cthur = 4, /obj/item/flag/cthur/l = 3 ) /obj/item/storage/box/large/flags/goldendeep name = "Golden Deep flag box" desc = "A box filled to the brim with various national flags. It's made from a bit sturdier board than most boxes." starts_with = list( /obj/item/flag/goldendeep = 8, /obj/item/flag/goldendeep/l = 6, // GD might not have a lot of flags but a single gold ingot included to broadcast their flagrant absurd wealth is kind of funny. /obj/item/stack/material/gold ) /obj/item/storage/box/large/flags/corporate name = "Corporate flag box" desc = "A box filled to the brim with various corporate flags, flying in service to the almighty credit." starts_with = list( /obj/item/flag/scc = 4, /obj/item/flag/scc/l = 3, /obj/item/flag/heph = 4, /obj/item/flag/heph/l = 3, /obj/item/flag/idris = 4, /obj/item/flag/idris/l = 3, /obj/item/flag/heph = 4, /obj/item/flag/heph/l = 3, /obj/item/flag/nanotrasen = 4, /obj/item/flag/nanotrasen/l = 3, /obj/item/flag/orion_express = 4, /obj/item/flag/orion_express/l = 3, /obj/item/flag/pmcg = 4, /obj/item/flag/pmcg/l = 3, /obj/item/flag/zavodskoi = 4, /obj/item/flag/zavodskoi/l = 3, /obj/item/flag/zenghu = 4, /obj/item/flag/zenghu/l = 3, /obj/item/flag/eridani = 4, /obj/item/flag/eridani/l = 3 ) /// Random misc flags- either non-national or no longer in use or controversial or straight-up contraband. Randomized contents from Initialize(). /obj/item/storage/box/large/flags/misc name = "miscellaneous flag box" desc = "A box filled to the brim with various disorganized flags that might provoke a variety of reactions." /** * We don't want this box to always have every possible misc flag every time it spawns. Mix it up each time. */ /obj/item/storage/box/large/flags/misc/fill() ..() var/list/flag_options = list( /obj/item/flag/red_coalition = 1, /obj/item/flag/trinaryperfection = 2, /obj/item/flag/trinaryperfection/l = 1, /obj/item/flag/traditionalist = rand(1,2), /obj/item/flag/traditionalist/l = 1, /obj/item/flag/exclusionist = 1, /obj/item/flag/glaorr = 1, /obj/item/flag/glaorr/l = 1, /obj/item/flag/ouerea = rand(1,2), /obj/item/flag/ouerea/l = 1, /obj/item/flag/sol/old = rand(1,2), /obj/item/flag/sol/old/l = 1, /obj/item/flag/old_visegrad = rand(1,2), /obj/item/flag/old_visegrad/l = 1, /obj/item/flag/fisanduh = rand(1,2), /obj/item/flag/fisanduh/l = 1, /obj/item/flag/hiskyn = rand(1,2), /obj/item/flag/tarwa = rand(1,2), /obj/item/flag/izharshan = rand(1,2) ) for(var/i in 1 to rand(5,8)) var/flag = pickweight(flag_options) new flag(src) /obj/item/storage/box/dominia_honor name = "dominian honor codex box" desc = "A box full of dominian honor codices." illustration = "paper" starts_with = list(/obj/item/book/manual/dominia_honor = 6) /obj/item/storage/box/tcaf_pamphlet name = "tau ceti armed forces pamphlets box" desc = "A box full of tau ceti armed forces pamphlets." illustration = "paper" starts_with = list(/obj/item/book/manual/tcaf_pamphlet = 6) /obj/item/storage/box/fountainpens name = "box of fountain pens" illustration = "fpen" starts_with = list(/obj/item/pen/fountain = 7) /obj/item/storage/box/aggression illustration = "implant" max_storage_space = DEFAULT_BOX_STORAGE starts_with = list(/obj/item/implantcase/aggression = 6, /obj/item/implanter = 1, /obj/item/implantpad = 1) /obj/item/storage/box/aggression/antagonist_hints(mob/user, distance, is_adjacent) . += ..() . += "This box contains various implants that will make their owners increasingly aggressive." /obj/item/storage/box/encryption_key name = "box" illustration = "circuit" starts_with = list(/obj/item/encryptionkey/rev = 8) /obj/item/storage/box/encryption_key/antagonist_hints(mob/user, distance, is_adjacent) . += ..() . += "This box contains encryption keys that gives the user a safe channel to chatter in. Access the safe comms with :x." /obj/item/storage/box/unique/dynamite name = "wooden crate" desc = "An ordinary wooden crate." icon_state = "dynamite" foldable = null use_sound = 'sound/effects/doorcreaky.ogg' drop_sound = 'sound/items/drop/wooden.ogg' pickup_sound = 'sound/items/pickup/wooden.ogg' w_class = WEIGHT_CLASS_BULKY starts_with = list(/obj/item/grenade/dynamite = 6) /obj/item/storage/box/unique/dynamite/throw_impact(atom/hit_atom) ..() spill() /obj/item/storage/box/closet_teleporter illustration = "scicircuit" starts_with = list(/obj/item/closet_teleporter = 2) /obj/item/storage/box/closet_teleporter/fill() var/obj/item/closet_teleporter/CT_1 = new /obj/item/closet_teleporter(src) var/obj/item/closet_teleporter/CT_2 = new /obj/item/closet_teleporter(src) CT_1.linked_teleporter = CT_2 CT_2.linked_teleporter = CT_1 /obj/item/storage/box/folders name = "box of folders" desc = "A box full of folders." illustration = "paper" starts_with = list(/obj/item/folder = 5) /obj/item/storage/box/folders/blue starts_with = list(/obj/item/folder/sec = 5) /obj/item/storage/box/unique/papersack name = "paper sack" desc = "A sack neatly crafted out of paper." icon = 'icons/obj/storage/paperbag.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand.dmi', slot_r_hand_str = 'icons/mob/items/righthand.dmi', ) item_state = "papersack" icon_state = "paperbag_None" use_sound = 'sound/items/bureaucracy/papercrumple.ogg' drop_sound = 'sound/items/drop/paper.ogg' pickup_sound = 'sound/items/storage/wrapper.ogg' foldable = null max_w_class = WEIGHT_CLASS_NORMAL max_storage_space = 8 use_to_pickup = TRUE chewable = TRUE var/opened = TRUE var/static/list/papersack_designs var/choice = "None" /obj/item/storage/box/unique/papersack/update_icon() . = ..() if(length(contents) == 0) icon_state = "paperbag_[choice]" else if(length(contents) < 8) icon_state = "paperbag_[choice]-food" /obj/item/storage/box/unique/papersack/attackby(obj/item/attacking_item, mob/user) if(attacking_item.tool_behaviour == TOOL_PEN) if(!papersack_designs) papersack_designs = sortList(list( "None" = image(icon = src.icon, icon_state = "paperbag_None"), "NanoTrasenStandard" = image(icon = src.icon, icon_state = "paperbag_NanoTrasenStandard"), "Idris" = image(icon = src.icon, icon_state = "paperbag_Idris"), "Heart" = image(icon = src.icon, icon_state = "paperbag_Heart"), "SmileyFace" = image(icon = src.icon, icon_state = "paperbag_SmileyFace") )) var/selected = show_radial_menu(user, src, papersack_designs, radius = 42, tooltips = TRUE) if(!selected) return choice = selected 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("Idris") desc = "A premium paper bag produced by Idris Incorporated." 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 to_chat(user, SPAN_NOTICE("You make some modifications to [src] using your pen.")) update_icon() return else if(attacking_item.tool_behaviour == TOOL_SCREWDRIVER) if(length(contents) == 0) to_chat(user, SPAN_NOTICE("You begin poking holes in \the [src].")) if(attacking_item.use_tool(src, user, 30)) if(choice == "SmileyFace") var/obj/item/clothing/head/papersack/smiley/S = new() user.put_in_hands(S) else var/obj/item/clothing/head/papersack/PS = new() user.put_in_hands(PS) qdel(src) else to_chat(user, SPAN_WARNING("\The [src] needs to be empty before you can do that!")) else ..() // Flares /obj/item/storage/box/large/flares name = "flares box" desc = "A box full of flares." illustration = "flare" foldable = FALSE max_storage_space = DEFAULT_BOX_STORAGE can_hold = list( /obj/item/flashlight/flare ) starts_with = list( /obj/item/flashlight/flare = 12 ) // Magnetic Locks /obj/item/storage/box/magnetic_locks name = "magnetic lock box" desc = "A box full of magnetic locks." w_class = WEIGHT_CLASS_BULKY max_w_class = WEIGHT_CLASS_NORMAL foldable = FALSE max_storage_space = DEFAULT_BOX_STORAGE can_hold = list( /obj/item/magnetic_lock ) starts_with = list( /obj/item/magnetic_lock = 4 ) // Power Cells /obj/item/storage/box/cell name = "power cell box" desc = "A box full of power cells." color = COLOR_TOOLS foldable = FALSE make_exact_fit = TRUE can_hold = list( /obj/item/cell ) starts_with = list( /obj/item/cell = 3 ) // High-capacity Power Cells /obj/item/storage/box/cell/high name = "high-capacity power cell box" desc = "A box full of high-capacity power cells." color = COLOR_TOOLS starts_with = list( /obj/item/cell/high = 3 ) /obj/item/storage/box/large/condiment name = "condiment box" desc = "A large box of condiments, syrups, flavorings." color = COLOR_REDBOX illustration = "condimentlg" starts_with = list( /obj/item/reagent_containers/food/condiment/enzyme = 1, /obj/item/reagent_containers/food/condiment/shaker/peppermill = 2, /obj/item/reagent_containers/food/condiment/shaker/salt = 2, /obj/item/reagent_containers/food/condiment/shaker/spacespice = 2, /obj/item/reagent_containers/food/condiment/shaker/sprinkles = 1, /obj/item/reagent_containers/food/condiment/sugar = 1, /obj/item/reagent_containers/food/condiment/shaker/pumpkinspice = 1, /obj/item/reagent_containers/glass/bottle/syrup/chocolate = 1, /obj/item/reagent_containers/glass/bottle/syrup/pumpkin = 1, /obj/item/reagent_containers/glass/bottle/syrup/vanilla = 1, /obj/item/reagent_containers/glass/bottle/syrup/caramel = 1, ) /obj/item/storage/box/cleaner_tablets name = "\improper Idris cleaner tablets box" desc = "A box of advanced formula chemical tablets designed by Idris Incorporated." color = COLOR_GREEN_GRAY desc_extended = "A new generation of cleaning chemicals, according to Idris at least. The instructions on the box reads: \"Dissolve tablet fully in container of water\". A warning label mentions that you should not consume the tablets nor drink the mixture after dissolving them." illustration = "soapbucket" starts_with = list( /obj/item/reagent_containers/pill/cleaner_tablet = 16 ) make_exact_fit = TRUE /obj/item/storage/box/led_collars name = "box of LED collars" desc = "A box containing eight LED collars, usually worn around the neck of the voidsuit." starts_with = list(/obj/item/clothing/accessory/led_collar = 8) make_exact_fit = TRUE /obj/item/storage/box/traps/punji name = "box of punji traps" desc = "A box containing 5 punji traps." starts_with = list(/obj/item/trap/punji = 5) /obj/item/storage/box/landmines/standstill name = "box of standstill landmines" desc = "A box containing 5 standstill landmines." starts_with = list(/obj/item/landmine/standstill = 5) /obj/item/storage/box/landmines/door_rigging name = "box of door rigging landmines" desc = "A box containing 5 door rigging landmines." starts_with = list(/obj/item/landmine/frag/door_rigging = 5) /obj/item/storage/box/landmines/claymore name = "box of claymore landmines" desc = "A box containing 5 claymore landmines, relative detonators, and a spare one to trigger them all." starts_with = list( /obj/item/landmine/claymore = 5, /obj/item/assembly/signaler = 6 ) /obj/item/storage/box/unique/tea name = "sencha cha-tin" desc = "A tin bearing the logo of the Konyang-cha tea company. This one contains a bag of sencha, a type of green tea. Instructions are printed on the back: Steep one leaf with 25 units of hot water per cup in a teapot." desc_extended = "A subsidiary of Gwok Group, the Konyang-cha tea company is the spur's foremost vendor of artisanal loose leaf tea, \ selling blends sourced from independent Konyanger farmers. Popular both on Konyang and off-world, it is considered a symbol of Konyang's culture." icon = 'icons/obj/item/reagent_containers/teaware.dmi' icon_state = "can" item_state = "can" drop_sound = 'sound/items/drop/metal_pot.ogg' pickup_sound = 'sound/items/drop/metal_pot.ogg' contained_sprite = TRUE make_exact_fit = TRUE can_hold = list( /obj/item/reagent_containers/food/snacks/grown/konyang_tea ) starts_with = list( /obj/item/reagent_containers/food/snacks/grown/konyang_tea = 12 ) foldable = null /obj/item/storage/box/unique/tea/tieguanyin name = "tieguanyin cha-tin" desc = "A tin bearing the logo of the Konyang-cha tea company. This one contains a bag of tieguanyin, a type of oolong tea. Instructions are printed on the back: Steep one leaf with 25 units of hot water per cup in a teapot." icon_state = "can_tie" starts_with = list( /obj/item/reagent_containers/food/snacks/grown/konyang_tea/tieguanyin = 12 ) /obj/item/storage/box/unique/tea/jaekseol name = "jaekseol cha-tin" desc = "A tin bearing the logo of the Konyang-cha tea company. This one contains a bag of jaekseol, a type of black tea. Instructions are printed on the back: Steep one leaf with 25 units of hot water per cup in a teapot." icon_state = "can_jaek" starts_with = list( /obj/item/reagent_containers/food/snacks/grown/konyang_tea/jaekseol = 12 ) /obj/item/storage/box/unique/tea/messa name = "adhomian tin" desc = "A tin labeled in Siik'maas. It is adorned by a blue sun, the symbol of the goddess Messa." icon_state = "can_messa" starts_with = list( /obj/item/reagent_containers/food/snacks/grown/messas_tear_tea = 12 ) desc_extended = "Messa's tears are a medicinal herb found across Adhomai and its many Twin Suns churches. \ Its leaves, while traditionally used for treating burns, are a common choice for making traditional teas." /obj/item/storage/box/unique/tea/messa/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() if(GLOB.all_languages[LANGUAGE_SIIK_MAAS] in user.languages) . += SPAN_NOTICE("The label says: \"Dried Messa's Tear leaves\" and then provides instructions: Steep one leaf with 25 units of hot water per cup in a teapot.") /obj/item/storage/box/unique/tea/rasnif name = "ras'nif tea tin" desc = "A tin with the flag of the People's Republic of Adhomai printed on it, labeled in both Siik'maas and Ceti Basic. It instructs the user to mix one packet with 25 units of hot water." icon_state = "can_pra" can_hold = list( /obj/item/reagent_containers/food/condiment/small/packet ) starts_with = list( /obj/item/reagent_containers/food/condiment/small/packet/tea/rasnif = 12 ) desc_extended = "A herbal tea made with Hro'zamal Ras'nifs powder. \ Despite the popularity of its carbonated counterpart, Ras'nif tea remains a popular drink among Hro'zamal settlers." /obj/item/storage/box/telefreedom_kit name = "telefreedom kit" desc = "A box containing a telefreedom full kit." starts_with = list(/obj/item/implant/telefreedom = 4, /obj/item/implanter = 1, //Telepad construction items /obj/item/circuitboard/telesci_pad = 1, /obj/item/bluespace_crystal/artificial = 2, /obj/item/stock_parts/capacitor = 1, /obj/item/stock_parts/console_screen = 1, ) /obj/item/storage/box/telefreedom_kit/fill() . = ..() new /obj/item/stack/cable_coil(src, 6) new /obj/item/stack/material/steel(src, 2) /obj/item/storage/box/sawn_doublebarrel_shotgun name = "sawn-off Double-barrel shotgun kit" desc = "A box containing a sawn-off double-barrel shotgun, an holster and some ammo." starts_with = list(/obj/item/gun/projectile/shotgun/doublebarrel/sawn = 1, /obj/item/ammo_casing/shotgun/pellet = 6, /obj/item/clothing/accessory/holster/thigh = 1) /obj/item/storage/box/stressball name = "box of stress balls" desc = "A box containing a number of randomly-coloured stress balls." starts_with = list( /obj/item/toy/stressball = 6 ) /obj/item/storage/box/mms_inhaler name = "mms inhaler kit" desc = "A box filled with an inhaler and cartridges containing Mercury Monolithium Sucrose." illustration = "inhalers" starts_with = list( /obj/item/personal_inhaler = 1, /obj/item/reagent_containers/personal_inhaler_cartridge/mms = 3 ) /obj/item/storage/box/ambrosia name = "ambrosia box" starts_with = list( /obj/item/reagent_containers/food/snacks/grown/ambrosiavulgaris/dried = 4 ) /obj/item/storage/box/reishi name = "reishi box" starts_with = list( /obj/item/reagent_containers/food/snacks/grown/mushroom/reishi/dried = 4 ) /obj/item/storage/box/wulumunusha name = "wulumunusha box" starts_with = list( /obj/item/reagent_containers/food/snacks/grown/wulumunusha/dried = 4 ) /obj/item/storage/box/ale name = "pack of ale" desc = "A box containing a six pack of ale." illustration = "soda" starts_with = list( /obj/item/reagent_containers/food/drinks/bottle/small/ale = 6 ) /obj/item/storage/box/beer name = "pack of beer" desc = "A box containing a six pack of beer." illustration = "soda" starts_with = list( /obj/item/reagent_containers/food/drinks/bottle/small/beer = 6 ) /obj/item/storage/box/skrellbeerdyn name = "pack of dyn beer" desc = "A box containing a six pack of dyn beer." illustration = "soda" starts_with = list( /obj/item/reagent_containers/food/drinks/bottle/small/skrellbeerdyn = 6 ) /obj/item/storage/box/xuizijuice name = "pack of xuizi juice" desc = "A box containing a six pack of xuizi juice." illustration = "soda" starts_with = list( /obj/item/reagent_containers/food/drinks/bottle/small/xuizijuice = 6 ) /obj/item/storage/box/khlibnyz name = "pack of khlibnyz" desc = "A box containing a six pack of khlibnyz." illustration = "soda" starts_with = list( /obj/item/reagent_containers/food/drinks/bottle/small/khlibnyz = 6 ) /obj/item/storage/box/cola name = "pack of cola" desc = "A box containing a six pack of cola." illustration = "soda" starts_with = list( /obj/item/reagent_containers/food/drinks/bottle/cola = 6 ) /obj/item/storage/box/space_mountain_wind name = "pack of space mountain wind" desc = "A box containing a six pack of space mountain wind." illustration = "soda" starts_with = list( /obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind = 6 ) /obj/item/storage/box/space_up name = "pack of space-up" desc = "A box containing a six pack of space-up." illustration = "soda" starts_with = list( /obj/item/reagent_containers/food/drinks/bottle/space_up = 6 ) /obj/item/storage/box/hrozamal_soda name = "pack of hrozamal soda" desc = "A box containing a six pack of hrozamal soda." illustration = "soda" starts_with = list( /obj/item/reagent_containers/food/drinks/bottle/hrozamal_soda = 6 ) /obj/item/storage/box/midynhr_water name = "pack of midynhr water" desc = "A box containing a six pack of midynhr water." illustration = "soda" starts_with = list( /obj/item/reagent_containers/food/drinks/bottle/small/midynhr_water = 6 ) /obj/item/storage/box/burukutu name = "pack of burukutu" desc = "A box containing a six pack of burukutu." illustration = "soda" starts_with = list( /obj/item/reagent_containers/food/drinks/bottle/small/burukutu = 6 ) /obj/item/storage/box/crutch_pair starts_with = list( /obj/item/cane/crutch = 2 ) /obj/item/storage/box/forearm_crutch_pair starts_with = list( /obj/item/cane/crutch/forearm = 2 )