mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-26 18:12:40 +00:00
1175 lines
42 KiB
Plaintext
1175 lines
42 KiB
Plaintext
/*
|
|
* Everything derived from the common cardboard box.
|
|
* Basically everything except the original is a kit (starts full).
|
|
*
|
|
* Contains:
|
|
* Empty box, starter boxes (survival/engineer),
|
|
* Latex glove and sterile mask boxes,
|
|
* Syringe, beaker, dna injector boxes,
|
|
* Blanks, flashbangs, and EMP grenade boxes,
|
|
* Tracking and chemical implant boxes,
|
|
* Prescription glasses and drinking glass boxes,
|
|
* Condiment bottle and silly cup boxes,
|
|
* Donkpocket and monkeycube boxes,
|
|
* ID 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.
|
|
*/
|
|
|
|
/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
|
|
var/illustration = "writing"
|
|
var/foldable = /obj/item/stack/material/cardboard // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard
|
|
var/trash = null // if set, can be crushed into a trash item when empty
|
|
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/Initialize()
|
|
. = ..()
|
|
health = maxHealth
|
|
if(foldable)
|
|
desc_info += "You can fold this into a sheet. "
|
|
if(ispath(src.trash))
|
|
desc_info += "This can be crumpled up into a trash item when empty, or forcibly crumpled on harm intent. "
|
|
if(illustration)
|
|
add_overlay(illustration)
|
|
|
|
/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(var/mob/user)
|
|
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
|
|
var/damage
|
|
if (!L.mob_size)
|
|
damage = 3//A safety incase i forgot to set a mob_size on something
|
|
else
|
|
damage = L.mob_size//he bigger you are, the faster it tears
|
|
|
|
if (!damage || damage <= 0)
|
|
return
|
|
|
|
user.do_attack_animation(src)
|
|
if ((health-damage) <= 0)
|
|
L.visible_message("<span class='danger'>[L] tears open the [src], spilling its contents everywhere!</span>", "<span class='danger'>You tear open the [src], spilling its contents everywhere!</span>")
|
|
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)
|
|
..()
|
|
|
|
/obj/item/storage/box/examine(var/mob/user)
|
|
..()
|
|
if (health < maxHealth)
|
|
if (health >= (maxHealth * 0.5))
|
|
to_chat(user, SPAN_WARNING("It is slightly torn."))
|
|
else
|
|
to_chat(user, SPAN_DANGER("It is full of tears and holes."))
|
|
|
|
// 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/W, mob/user)
|
|
if(istype(W, /obj/item/stack/packageWrap))
|
|
var/total_storage_space = W.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 = alert(user, "Will you want to wrap \the [src] or store the item inside?", "Wrap or Store", "Wrap", "Store")
|
|
if(question == "Wrap")
|
|
return
|
|
else if(question == "Store")
|
|
return ..()
|
|
else
|
|
..()
|
|
|
|
/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."
|
|
icon_state = "redbox"
|
|
illustration = "survival"
|
|
max_storage_space = 14
|
|
can_hold = list(
|
|
/obj/item/clothing/mask,
|
|
/obj/item/tank/emergency_oxygen,
|
|
/obj/item/device/flashlight/flare,
|
|
/obj/item/stack/medical,
|
|
/obj/item/reagent_containers/hypospray/autoinjector,
|
|
/obj/item/reagent_containers/inhaler,
|
|
/obj/item/device/oxycandle,
|
|
/obj/item/extinguisher/mini,
|
|
/obj/item/device/radio,
|
|
/obj/item/device/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/device/oxycandle = 1,
|
|
/obj/item/device/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/device/oxycandle = 1,
|
|
/obj/item/device/flashlight/flare = 1,
|
|
/obj/item/stack/medical/bruise_pack = 1,
|
|
/obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 1
|
|
)
|
|
|
|
/obj/item/storage/box/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."
|
|
illustration = "latex"
|
|
max_storage_space = 14
|
|
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."
|
|
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."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
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."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
illustration = "syringe"
|
|
starts_with = list(/obj/item/syringe_cartridge = 7)
|
|
|
|
/obj/item/storage/box/beakers
|
|
name = "box of beakers"
|
|
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."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
illustration = "dna"
|
|
starts_with = list(/obj/item/dnainjector/h2m = 3, /obj/item/dnainjector/m2h = 3)
|
|
|
|
/obj/item/storage/box/tungstenslugs
|
|
name = "box of compact tungsten slugs"
|
|
desc = "A box with several compact tungsten slugs, aimed for use in gauss carbines."
|
|
icon_state = "ammobox"
|
|
item_state = "ammobox"
|
|
illustration = null
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/gauss/carbine = 4)
|
|
|
|
/obj/item/storage/box/blanks
|
|
name = "box of blank shells"
|
|
desc = "It has a picture of a shotgun shell and several warning symbols on the front."
|
|
icon_state = "shellbox"
|
|
item_state = "shellbox"
|
|
illustration = "blankshot"
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/shotgun/blank = 8)
|
|
|
|
/obj/item/storage/box/beanbags
|
|
name = "box of beanbag shells"
|
|
desc = "It has a picture of a shotgun shell and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "shellbox"
|
|
item_state = "shellbox"
|
|
illustration = "beanshot"
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/shotgun/beanbag = 8)
|
|
|
|
/obj/item/storage/box/shotgunammo
|
|
name = "box of shotgun slugs"
|
|
desc = "It has a picture of a shotgun shell and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "shellbox"
|
|
item_state = "shellbox"
|
|
illustration = "lethalslug"
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/shotgun = 8)
|
|
|
|
/obj/item/storage/box/shotgunshells
|
|
name = "box of shotgun shells"
|
|
desc = "It has a picture of a shotgun shell and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "shellbox"
|
|
item_state = "shellbox"
|
|
illustration = "lethalshell"
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/shotgun/pellet = 8)
|
|
|
|
/obj/item/storage/box/flashshells
|
|
name = "box of illumination shells"
|
|
desc = "It has a picture of a shotgun shell and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "shellbox"
|
|
item_state = "shellbox"
|
|
illustration = "illumshot"
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/shotgun/flash = 8)
|
|
|
|
/obj/item/storage/box/stunshells
|
|
name = "box of stun shells"
|
|
desc = "It has a picture of a shotgun shell and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "shellbox"
|
|
item_state = "shellbox"
|
|
illustration = "stunshot"
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/shotgun/stunshell = 8)
|
|
|
|
/obj/item/storage/box/practiceshells
|
|
name = "box of practice shells"
|
|
desc = "It has a picture of a shotgun shell and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "shellbox"
|
|
item_state = "shellbox"
|
|
illustration = "blankshot"
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/shotgun/practice = 8)
|
|
|
|
/obj/item/storage/box/haywireshells
|
|
name = "box of haywire shells"
|
|
desc = "It has a picture of a shotgun shell and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "shellbox"
|
|
item_state = "shellbox"
|
|
illustration = "empshot"
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/shotgun/emp = 8)
|
|
|
|
/obj/item/storage/box/incendiaryshells
|
|
name = "box of incendiary shells"
|
|
desc = "It has a picture of a shotgun shell and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "shellbox"
|
|
item_state = "shellbox"
|
|
illustration = "incendiaryshot"
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/shotgun/incendiary = 8)
|
|
|
|
/obj/item/storage/box/trackingslugs
|
|
name = "box of tracking slugs"
|
|
desc = "It has a picture of a shotgun shell and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "shellbox"
|
|
item_state = "shellbox"
|
|
illustration = "trackingshot"
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/shotgun/tracking = 4)
|
|
|
|
/obj/item/storage/box/sniperammo
|
|
name = "box of 14.5mm shells"
|
|
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "ammobox"
|
|
item_state = "ammobox"
|
|
illustration = null
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/a145 = 7)
|
|
|
|
/obj/item/storage/box/ammo10mm
|
|
name = "box of 10mm shells"
|
|
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "ammobox"
|
|
item_state = "ammobox"
|
|
illustration = null
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
starts_with = list(/obj/item/ammo_casing/c10mm = 10)
|
|
|
|
/obj/item/storage/box/flashbangs
|
|
name = "box of flashbangs"
|
|
desc = "A box containing 7 antipersonnel flashbang grenades.<br> WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
illustration = "flashbang"
|
|
starts_with = list(/obj/item/grenade/flashbang = 7)
|
|
|
|
/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/device/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/device/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/device/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/device/firing_pin/implant/loyalty = 7)
|
|
|
|
/obj/item/storage/box/loyaltypins/fill()
|
|
..()
|
|
new /obj/item/device/firing_pin/implant/loyalty(src)
|
|
new /obj/item/device/firing_pin/implant/loyalty(src)
|
|
new /obj/item/device/firing_pin/implant/loyalty(src)
|
|
new /obj/item/device/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/device/firing_pin = 2, /obj/item/device/firing_pin/access = 2, /obj/item/device/firing_pin/implant/loyalty = 2, /obj/item/device/firing_pin/clown = 1, /obj/item/device/firing_pin/dna = 1)
|
|
|
|
/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."
|
|
starts_with = list(/obj/item/tethering_device = 8)
|
|
|
|
/obj/item/storage/box/tethers/fill()
|
|
..()
|
|
make_exact_fit()
|
|
|
|
/obj/item/storage/box/teargas
|
|
name = "box of pepperspray grenades"
|
|
desc = "A box containing 7 tear gas grenades. A gas mask is printed on the label.<br> WARNING: Exposure carries risk of serious injury or death. Keep away from persons with lung conditions."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
illustration = "grenade"
|
|
starts_with = list(/obj/item/grenade/chem_grenade/teargas = 6)
|
|
|
|
/obj/item/storage/box/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."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
illustration = "grenade"
|
|
starts_with = list(/obj/item/grenade/smokebomb = 7)
|
|
|
|
/obj/item/storage/box/emps
|
|
name = "box of emp grenades"
|
|
desc = "A box containing 5 military grade EMP grenades.<br> WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
illustration = "emp"
|
|
starts_with = list(/obj/item/grenade/empgrenade = 5)
|
|
|
|
/obj/item/storage/box/smokes
|
|
name = "box of smoke bombs"
|
|
desc = "A box containing 5 smoke bombs."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
illustration = "grenade"
|
|
starts_with = list(/obj/item/grenade/smokebomb = 5)
|
|
|
|
/obj/item/storage/box/anti_photons
|
|
name = "box of anti-photon grenades"
|
|
desc = "A box containing 5 experimental photon disruption grenades."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
illustration = "grenade"
|
|
starts_with = list(/obj/item/grenade/anti_photon = 5)
|
|
|
|
/obj/item/storage/box/frags
|
|
name = "box of frag grenades"
|
|
desc = "A box containing 5 military grade fragmentation grenades.<br> WARNING: Live explosives. Misuse may result in serious injury or death."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
illustration = "grenade"
|
|
starts_with = list(/obj/item/grenade/frag = 5)
|
|
|
|
/obj/item/storage/box/cardox
|
|
name = "box of cardox grenades"
|
|
desc = "A box containing 5 experimental cardox grenades."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
illustration = "grenade"
|
|
starts_with = list(/obj/item/grenade/chem_grenade/large/phoroncleaner = 5)
|
|
|
|
/obj/item/storage/box/trackimp
|
|
name = "boxed tracking implant kit"
|
|
desc = "Box full of scum-bag tracking utensils."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
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/chemimp
|
|
name = "boxed chemical implant kit"
|
|
desc = "Box of stuff used to implant chemicals."
|
|
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."
|
|
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."
|
|
illustration = "implant"
|
|
starts_with = list(/obj/item/implanter = 1, /obj/item/implantcase/death_alarm = 6)
|
|
|
|
/obj/item/storage/box/condimentbottles
|
|
name = "box of condiment bottles"
|
|
desc = "It has a large ketchup smear on it."
|
|
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/donkpockets
|
|
name = "box of donk-pockets"
|
|
desc = "<B>Instructions:</B> <I>Heat in microwave. Product will cool if not eaten within seven minutes.</I>"
|
|
icon_state = "donkpocketbox"
|
|
item_state = "redbox"
|
|
illustration = null
|
|
starts_with = list(/obj/item/reagent_containers/food/snacks/donkpocket = 6)
|
|
|
|
/obj/item/storage/box/sinpockets
|
|
name = "box of donk-pockets"
|
|
desc = "<B>Instructions:</B> <I>Heat in microwave. Product will cool if not eaten within seven minutes.</I>"
|
|
icon_state = "donkpocketbox"
|
|
item_state = "redbox"
|
|
illustration = null
|
|
starts_with = list(/obj/item/reagent_containers/food/snacks/donkpocket/sinpocket = 6)
|
|
desc_antag = "Crush bottom of package to initiate chemical heating. Wait for 20 seconds before consumption. Product will cool if not eaten within seven minutes."
|
|
|
|
/obj/item/storage/box/janitorgloves
|
|
name = "janitorial gloves box"
|
|
desc = "A box full of janitorial gloves of all shapes and sizes."
|
|
max_storage_space = 4
|
|
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/monkeycubes
|
|
name = "monkey cube box"
|
|
desc = "Drymate brand monkey cubes. Just add water!"
|
|
icon = 'icons/obj/food.dmi'
|
|
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/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/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/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/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/ids
|
|
name = "box of spare IDs"
|
|
desc = "Has so many empty IDs."
|
|
illustration = "id"
|
|
starts_with = list(/obj/item/card/id = 7)
|
|
|
|
/obj/item/storage/box/handcuffs
|
|
name = "box of spare handcuffs"
|
|
desc = "A box full of handcuffs."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
illustration = "handcuff"
|
|
starts_with = list(/obj/item/handcuffs = 7)
|
|
|
|
/obj/item/storage/box/zipties
|
|
name = "box of zipties"
|
|
desc = "A box full of zipties."
|
|
illustration = "handcuff"
|
|
starts_with = list(/obj/item/handcuffs/ziptie = 7)
|
|
|
|
/obj/item/storage/box/mousetraps
|
|
name = "box of Pest-B-Gon mousetraps"
|
|
desc = "<B><span class='warning'>WARNING:</span></B> <I>Keep out of reach of children</I>."
|
|
illustration = "mousetraps"
|
|
starts_with = list(/obj/item/device/assembly/mousetrap = 6)
|
|
|
|
/obj/item/storage/box/pillbottles
|
|
name = "box of pill bottles"
|
|
desc = "It has pictures of pill bottles on its front."
|
|
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/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/snappops/syndi
|
|
desc_antag = "These snap pops have an extra compound added that will deploy a tiny smokescreen when snapped."
|
|
starts_with = list(/obj/item/toy/snappop/syndi = 8)
|
|
|
|
/obj/item/storage/box/partypopper
|
|
name = "party popper box"
|
|
desc = "Six cones of confetti conflagarating fun!"
|
|
illustration = "partypopper"
|
|
starts_with = list(/obj/item/toy/partypopper = 6)
|
|
|
|
/obj/item/storage/box/autoinjectors
|
|
name = "box of empty injectors"
|
|
desc = "Contains empty autoinjectors."
|
|
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."
|
|
use_to_pickup = 1 // for picking up broken bulbs, not that most people will try
|
|
|
|
/obj/item/storage/box/lights/Initialize() // TODO-STORAGE: Initialize()?
|
|
. = ..()
|
|
make_exact_fit()
|
|
|
|
/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"
|
|
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"
|
|
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"
|
|
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"
|
|
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"
|
|
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"
|
|
starts_with = list(/obj/item/light/tube/colored/magenta = 14, /obj/item/light/bulb/colored/magenta = 7)
|
|
|
|
/obj/item/storage/box/freezer
|
|
name = "portable freezer"
|
|
desc = "This nifty shock-resistant device will keep your 'groceries' nice and non-spoiled."
|
|
icon = 'icons/obj/storage.dmi'
|
|
item_icons = list(
|
|
slot_l_hand_str = 'icons/mob/items/lefthand_medical.dmi',
|
|
slot_r_hand_str = 'icons/mob/items/righthand_medical.dmi',
|
|
)
|
|
icon_state = "portafreezer"
|
|
item_state = "medicalpack"
|
|
max_w_class = ITEMSIZE_NORMAL
|
|
max_storage_space = 21
|
|
use_to_pickup = FALSE // for picking up broken bulbs, not that most people will try
|
|
chewable = FALSE
|
|
|
|
/obj/item/storage/box/freezer/organcooler
|
|
name = "organ cooler"
|
|
desc = "A sealed, cooled container to keep organs from decaying."
|
|
icon_state = "organcooler"
|
|
item_state = "advfirstaid"
|
|
max_w_class = ITEMSIZE_NORMAL
|
|
foldable = FALSE
|
|
w_class = ITEMSIZE_LARGE
|
|
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/kitchen
|
|
name = "kitchen supplies"
|
|
illustration = "knife"
|
|
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."
|
|
icon_state = "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."
|
|
icon_state = "secbox"
|
|
item_state = "secbox"
|
|
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/produce
|
|
name = "produce box"
|
|
desc = "A large box of random, leftover produce."
|
|
icon_state = "largebox"
|
|
illustration = "fruit"
|
|
starts_with = list(/obj/random_produce/box = 15)
|
|
|
|
/obj/item/storage/box/produce/fill()
|
|
. = ..()
|
|
make_exact_fit()
|
|
|
|
|
|
/obj/item/storage/box/candy
|
|
name = "candy box"
|
|
desc = "A large box of assorted small candy."
|
|
icon_state = "largebox"
|
|
illustration = "writing_large"
|
|
|
|
/obj/item/storage/box/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)
|
|
|
|
make_exact_fit()
|
|
|
|
|
|
/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/tranquilizer
|
|
name = "box of tranquilizer darts"
|
|
desc = "It has a picture of a tranquilizer dart and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "incendiaryshot_box"
|
|
starts_with = list(/obj/item/ammo_casing/tranq = 8)
|
|
|
|
/obj/item/storage/box/toothpaste
|
|
can_hold = list(/obj/item/reagent_containers/toothpaste,
|
|
/obj/item/reagent_containers/toothbrush)
|
|
|
|
starts_with = list(/obj/item/reagent_containers/toothpaste = 1,
|
|
/obj/item/reagent_containers/toothbrush = 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/storage/box/toothpaste/red
|
|
starts_with = list(/obj/item/reagent_containers/toothpaste = 1,
|
|
/obj/item/reagent_containers/toothbrush/red = 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 = "TCFL recruitment papers box"
|
|
desc = "A box full of papers that signify one as a recruit of the Tau Ceti Foreign Legion."
|
|
illustration = "paper"
|
|
starts_with = list(/obj/item/clothing/accessory/badge/tcfl_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 full of hadiist manifesto books."
|
|
illustration = "paper"
|
|
starts_with = list(/obj/item/book/manual/pra_manifesto = 6)
|
|
|
|
/obj/item/storage/box/dpra_manifesto
|
|
name = "al'mariist manifesto box"
|
|
desc = "A box full of al'mariist manifesto books."
|
|
illustration = "paper"
|
|
starts_with = list(/obj/item/book/manual/dpra_manifesto = 6)
|
|
|
|
/obj/item/storage/box/nka_manifesto
|
|
name = "royalist manifesto card box"
|
|
desc = "A box full of royalist manifesto books."
|
|
illustration = "paper"
|
|
starts_with = list(/obj/item/book/manual/nka_manifesto = 6)
|
|
|
|
/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/tcfl_pamphlet
|
|
name = "tau ceti foreign legion pamphlets box"
|
|
desc = "A box full of tau ceti foreign legion pamphlets."
|
|
illustration = "paper"
|
|
starts_with = list(/obj/item/book/manual/tcfl_pamphlet = 6)
|
|
|
|
/obj/item/storage/box/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."
|
|
icon_state = "redbox"
|
|
illustration = "biohazard"
|
|
max_storage_space = 20
|
|
chewable = FALSE
|
|
foldable = null
|
|
|
|
/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
|
|
desc_antag = "This box contains various implants that will make their owners increasingly aggressive."
|
|
illustration = "implant"
|
|
max_storage_space = 12
|
|
starts_with = list(/obj/item/implantcase/aggression = 6, /obj/item/implanter = 1, /obj/item/implantpad = 1)
|
|
|
|
/obj/item/storage/box/encryption_key
|
|
name = "box"
|
|
illustration = "circuit"
|
|
desc_antag = "This box contains encryption keys that gives the user a safe channel to chatter in. Access the safe comms with :x."
|
|
starts_with = list(/obj/item/device/encryptionkey/rev = 8)
|
|
|
|
/obj/item/storage/box/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'
|
|
chewable = FALSE
|
|
w_class = ITEMSIZE_LARGE
|
|
starts_with = list(/obj/item/grenade/dynamite = 6)
|
|
|
|
/obj/item/storage/box/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/googly
|
|
name = "googly eye box"
|
|
desc = "A box containing googly eyes."
|
|
illustration = "googlyeyes"
|
|
starts_with = list(/obj/item/sticker/googly_eye = 8)
|
|
|
|
/obj/item/storage/box/goldstar
|
|
name = "gold star box"
|
|
desc = "A box containing gold star stickers."
|
|
illustration = "goldstar"
|
|
starts_with = list(/obj/item/sticker/goldstar = 8)
|
|
|
|
/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/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/bureaucracy/papercrumple.ogg'
|
|
drop_sound = 'sound/items/drop/paper.ogg'
|
|
pickup_sound = 'sound/items/storage/wrapper.ogg'
|
|
foldable = null
|
|
max_w_class = ITEMSIZE_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/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/papersack/attackby(obj/item/O, mob/user)
|
|
if(O.ispen())
|
|
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(O.isscrewdriver())
|
|
if(length(contents) == 0)
|
|
to_chat(user, SPAN_NOTICE("You begin poking holes in \the [src]."))
|
|
if(O.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/flares
|
|
name = "flares box"
|
|
desc = "A box full of flares."
|
|
foldable = FALSE
|
|
max_storage_space = 4
|
|
can_hold = list(
|
|
/obj/item/device/flashlight/flare
|
|
)
|
|
starts_with = list(
|
|
/obj/item/device/flashlight/flare = 4
|
|
)
|
|
|
|
// Magnetic Locks
|
|
/obj/item/storage/box/magnetic_locks
|
|
name = "magnetic lock box"
|
|
desc = "A box full of magnetic locks."
|
|
w_class = ITEMSIZE_LARGE
|
|
max_w_class = ITEMSIZE_NORMAL
|
|
foldable = FALSE
|
|
max_storage_space = 16
|
|
can_hold = list(
|
|
/obj/item/device/magnetic_lock
|
|
)
|
|
starts_with = list(
|
|
/obj/item/device/magnetic_lock = 4
|
|
)
|
|
|
|
// Power Cells
|
|
/obj/item/storage/box/cell
|
|
name = "power cell box"
|
|
desc = "A box full of power cells."
|
|
foldable = FALSE
|
|
max_storage_space = 6
|
|
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."
|
|
starts_with = list(
|
|
/obj/item/cell/high = 3
|
|
) |