merge conflict fix

This commit is contained in:
Kyep
2018-04-25 23:48:44 -07:00
1399 changed files with 26746 additions and 28406 deletions
@@ -1,4 +1,4 @@
/obj/item/weapon/storage/toolbox/green
/obj/item/storage/toolbox/green
name = "artistic toolbox"
desc = "A metal container designed to hold various tools. This variety holds art supplies."
icon_state = "green"
@@ -7,7 +7,7 @@
lefthand_file = 'icons/goonstation/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/goonstation/mob/inhands/items_righthand.dmi'
/obj/item/weapon/storage/toolbox/green/memetic
/obj/item/storage/toolbox/green/memetic
name = "artistic toolbox"
desc = "His Grace."
force = 5
@@ -20,7 +20,7 @@
var/activated = 0
var/mindless_override = 0
/obj/item/weapon/storage/toolbox/green/memetic/attack_hand(mob/living/carbon/user)
/obj/item/storage/toolbox/green/memetic/attack_hand(mob/living/carbon/user)
if(!activated)
if(ishuman(user) && !user.HasDisease(new /datum/disease/memetic_madness(0)))
activated = 1
@@ -38,10 +38,10 @@
return
..()
/obj/item/weapon/storage/toolbox/green/memetic/attackby(obj/item/I, mob/user)
/obj/item/storage/toolbox/green/memetic/attackby(obj/item/I, mob/user)
if(activated)
if(istype(I, /obj/item/weapon/grab/))
var/obj/item/weapon/grab/G = I
if(istype(I, /obj/item/grab/))
var/obj/item/grab/G = I
if(!G.affecting)
return
if(!user.HasDisease(new /datum/disease/memetic_madness(0)))
@@ -73,7 +73,7 @@
..()
/obj/item/weapon/storage/toolbox/green/memetic/proc/consume(mob/M)
/obj/item/storage/toolbox/green/memetic/proc/consume(mob/M)
if(!M)
return
hunger = 0
@@ -84,11 +84,11 @@
M.ghostize()
if(M == original_owner)
qdel(M)
var/obj/item/weapon/storage/toolbox/green/fake_toolbox = new(get_turf(src))
var/obj/item/storage/toolbox/green/fake_toolbox = new(get_turf(src))
fake_toolbox.desc = "It looks a lot duller than it used to."
qdel(src)
/obj/item/weapon/storage/toolbox/green/memetic/Destroy()
/obj/item/storage/toolbox/green/memetic/Destroy()
for(var/mob/living/carbon/human/H in src)
H.forceMove(get_turf(src))
visible_message("<span class='warning'>[H] bursts out of [src]!</span>")
@@ -118,7 +118,7 @@
severity = BIOHAZARD
disease_flags = CURABLE
spread_flags = NON_CONTAGIOUS
var/obj/item/weapon/storage/toolbox/green/memetic/progenitor = null
var/obj/item/storage/toolbox/green/memetic/progenitor = null
/datum/disease/memetic_madness/Destroy()
progenitor = null
@@ -3,7 +3,7 @@
* Backpack
*/
/obj/item/weapon/storage/backpack
/obj/item/storage/backpack
name = "backpack"
desc = "You wear this on your back and put items into it."
icon_state = "backpack"
@@ -22,7 +22,7 @@
"Vox" = 'icons/mob/species/vox/back.dmi'
)
/obj/item/weapon/storage/backpack/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
/obj/item/storage/backpack/attackby(obj/item/W as obj, mob/user as mob, params)
playsound(src.loc, "rustle", 50, 1, -5)
return ..()
@@ -30,7 +30,7 @@
* Backpack Types
*/
/obj/item/weapon/storage/backpack/holding
/obj/item/storage/backpack/holding
name = "Bag of Holding"
desc = "A backpack that opens into a localized pocket of Blue Space."
origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5"
@@ -38,14 +38,15 @@
max_w_class = WEIGHT_CLASS_HUGE
max_combined_w_class = 35
burn_state = FIRE_PROOF
cant_hold = list(/obj/item/weapon/storage/backpack/holding)
flags_2 = NO_MAT_REDEMPTION_2
cant_hold = list(/obj/item/storage/backpack/holding)
/obj/item/weapon/storage/backpack/holding/New()
/obj/item/storage/backpack/holding/New()
..()
return
/obj/item/weapon/storage/backpack/holding/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/storage/backpack/holding))
/obj/item/storage/backpack/holding/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/storage/backpack/holding))
var/response = alert(user, "Are you sure you want to put the bag of holding inside another bag of holding?","Are you sure you want to die?","Yes","No")
if(response == "Yes")
user.visible_message("<span class='warning'>[user] grins as \he begins to put a Bag of Holding into a Bag of Holding!</span>", "<span class='warning'>You begin to put the Bag of Holding into the Bag of Holding!</span>")
@@ -63,12 +64,12 @@
else
. = ..()
/obj/item/weapon/storage/backpack/holding/singularity_act(current_size)
/obj/item/storage/backpack/holding/singularity_act(current_size)
var/dist = max((current_size - 2),1)
explosion(src.loc,(dist),(dist*2),(dist*4))
return
/obj/item/weapon/storage/backpack/santabag
/obj/item/storage/backpack/santabag
name = "Santa's Gift Bag"
desc = "Space Santa uses this to deliver toys to all the nice children in space on Christmas! Wow, it's pretty big!"
icon_state = "giftbag0"
@@ -77,75 +78,75 @@
max_w_class = WEIGHT_CLASS_NORMAL
max_combined_w_class = 400 // can store a ton of shit!
/obj/item/weapon/storage/backpack/cultpack
/obj/item/storage/backpack/cultpack
name = "trophy rack"
desc = "It's useful for both carrying extra gear and proudly declaring your insanity."
icon_state = "cultpack"
/obj/item/weapon/storage/backpack/clown
/obj/item/storage/backpack/clown
name = "Giggles Von Honkerton"
desc = "It's a backpack made by Honk! Co."
icon_state = "clownpack"
item_state = "clownpack"
/obj/item/weapon/storage/backpack/mime
/obj/item/storage/backpack/mime
name = "Parcel Parceaux"
desc = "A silent backpack made for those silent workers. Silence Co."
icon_state = "mimepack"
item_state = "mimepack"
/obj/item/weapon/storage/backpack/medic
/obj/item/storage/backpack/medic
name = "medical backpack"
desc = "It's a backpack especially designed for use in a sterile environment."
icon_state = "medicalpack"
item_state = "medicalpack"
/obj/item/weapon/storage/backpack/security
/obj/item/storage/backpack/security
name = "security backpack"
desc = "It's a very robust backpack."
icon_state = "securitypack"
item_state = "securitypack"
/obj/item/weapon/storage/backpack/captain
/obj/item/storage/backpack/captain
name = "captain's backpack"
desc = "It's a special backpack made exclusively for Nanotrasen officers."
icon_state = "captainpack"
item_state = "captainpack"
burn_state = FIRE_PROOF
/obj/item/weapon/storage/backpack/industrial
/obj/item/storage/backpack/industrial
name = "industrial backpack"
desc = "It's a tough backpack for the daily grind of station life."
icon_state = "engiepack"
item_state = "engiepack"
burn_state = FIRE_PROOF
/obj/item/weapon/storage/backpack/botany
/obj/item/storage/backpack/botany
name = "botany backpack"
desc = "It's a backpack made of all-natural fibers."
icon_state = "botpack"
item_state = "botpack"
/obj/item/weapon/storage/backpack/chemistry
/obj/item/storage/backpack/chemistry
name = "chemistry backpack"
desc = "A backpack specially designed to repel stains and hazardous liquids."
icon_state = "chempack"
item_state = "chempack"
/obj/item/weapon/storage/backpack/genetics
/obj/item/storage/backpack/genetics
name = "genetics backpack"
desc = "A bag designed to be super tough, just in case someone hulks out on you."
icon_state = "genepack"
item_state = "genepack"
/obj/item/weapon/storage/backpack/science
/obj/item/storage/backpack/science
name = "science backpack"
desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma."
icon_state = "toxpack"
item_state = "toxpack"
burn_state = FIRE_PROOF
/obj/item/weapon/storage/backpack/virology
/obj/item/storage/backpack/virology
name = "virology backpack"
desc = "A backpack made of hypo-allergenic fibers. It's designed to help prevent the spread of disease. Smells like monkey."
icon_state = "viropack"
@@ -155,85 +156,85 @@
* Satchel Types
*/
/obj/item/weapon/storage/backpack/satchel
/obj/item/storage/backpack/satchel
name = "leather satchel"
desc = "It's a very fancy satchel made with fine leather."
icon_state = "satchel"
burn_state = FIRE_PROOF
/obj/item/weapon/storage/backpack/satcheldeluxe
/obj/item/storage/backpack/satcheldeluxe
name = "leather satchel"
desc = "An NT Deluxe satchel, with the finest quality leather and the company logo in a thin gold stitch"
icon_state = "nt_deluxe"
/obj/item/weapon/storage/backpack/satchel/withwallet
/obj/item/storage/backpack/satchel/withwallet
New()
..()
new /obj/item/weapon/storage/wallet/random( src )
new /obj/item/storage/wallet/random( src )
/obj/item/weapon/storage/backpack/satchel_norm
/obj/item/storage/backpack/satchel_norm
name = "satchel"
desc = "A deluxe NT Satchel, made of the highest quality leather."
icon_state = "satchel-norm"
/obj/item/weapon/storage/backpack/satchel_eng
/obj/item/storage/backpack/satchel_eng
name = "industrial satchel"
desc = "A tough satchel with extra pockets."
icon_state = "satchel-eng"
burn_state = FIRE_PROOF
/obj/item/weapon/storage/backpack/satchel_med
/obj/item/storage/backpack/satchel_med
name = "medical satchel"
desc = "A sterile satchel used in medical departments."
icon_state = "satchel-med"
/obj/item/weapon/storage/backpack/satchel_vir
/obj/item/storage/backpack/satchel_vir
name = "virologist satchel"
desc = "A sterile satchel with virologist colours."
icon_state = "satchel-vir"
/obj/item/weapon/storage/backpack/satchel_chem
/obj/item/storage/backpack/satchel_chem
name = "chemist satchel"
desc = "A sterile satchel with chemist colours."
icon_state = "satchel-chem"
/obj/item/weapon/storage/backpack/satchel_gen
/obj/item/storage/backpack/satchel_gen
name = "geneticist satchel"
desc = "A sterile satchel with geneticist colours."
icon_state = "satchel-gen"
/obj/item/weapon/storage/backpack/satchel_tox
/obj/item/storage/backpack/satchel_tox
name = "scientist satchel"
desc = "Useful for holding research materials."
icon_state = "satchel-tox"
burn_state = FIRE_PROOF
/obj/item/weapon/storage/backpack/satchel_sec
/obj/item/storage/backpack/satchel_sec
name = "security satchel"
desc = "A robust satchel for security related needs."
icon_state = "satchel-sec"
/obj/item/weapon/storage/backpack/satchel_hyd
/obj/item/storage/backpack/satchel_hyd
name = "hydroponics satchel"
desc = "A green satchel for plant related work."
icon_state = "satchel-hyd"
/obj/item/weapon/storage/backpack/satchel_cap
/obj/item/storage/backpack/satchel_cap
name = "captain's satchel"
desc = "An exclusive satchel for Nanotrasen officers."
icon_state = "satchel-cap"
burn_state = FIRE_PROOF
/obj/item/weapon/storage/backpack/satchel_flat
/obj/item/storage/backpack/satchel_flat
name = "smuggler's satchel"
desc = "A very slim satchel that can easily fit into tight spaces."
icon_state = "satchel-flat"
w_class = WEIGHT_CLASS_NORMAL //Can fit in backpacks itself.
max_combined_w_class = 15
level = 1
cant_hold = list(/obj/item/weapon/storage/backpack/satchel_flat) //muh recursive backpacks
cant_hold = list(/obj/item/storage/backpack/satchel_flat) //muh recursive backpacks
/obj/item/weapon/storage/backpack/satchel_flat/hide(var/intact)
/obj/item/storage/backpack/satchel_flat/hide(var/intact)
if(intact)
invisibility = 101
anchored = 1 //otherwise you can start pulling, cover it, and drag around an invisible backpack.
@@ -243,16 +244,16 @@
anchored = 0
icon_state = initial(icon_state)
/obj/item/weapon/storage/backpack/satchel_flat/New()
/obj/item/storage/backpack/satchel_flat/New()
..()
new /obj/item/stack/tile/plasteel(src)
new /obj/item/weapon/crowbar(src)
new /obj/item/crowbar(src)
/*
* Duffelbags - My thanks to MrSnapWalk for the original icon and Neinhaus for the job variants - Dave.
*/
/obj/item/weapon/storage/backpack/duffel
/obj/item/storage/backpack/duffel
name = "duffelbag"
desc = "A large grey duffelbag designed to hold more items than a regular bag."
icon_state = "duffel"
@@ -260,7 +261,7 @@
max_combined_w_class = 30
slowdown = 1
/obj/item/weapon/storage/backpack/duffel/syndie
/obj/item/storage/backpack/duffel/syndie
name = "suspicious looking duffelbag"
desc = "A large duffelbag for holding extra tactical supplies."
icon_state = "duffel-syndi"
@@ -269,22 +270,22 @@
silent = 1
slowdown = 0
/obj/item/weapon/storage/backpack/duffel/syndie/med
/obj/item/storage/backpack/duffel/syndie/med
name = "suspicious duffelbag"
desc = "A black and red duffelbag with a red and white cross sewn onto it."
icon_state = "duffel-syndimed"
item_state = "duffel-syndimed"
/obj/item/weapon/storage/backpack/duffel/syndie/ammo
/obj/item/storage/backpack/duffel/syndie/ammo
name = "suspicious duffelbag"
desc = "A black and red duffelbag with a patch depicting shotgun shells sewn onto it."
icon_state = "duffel-syndiammo"
item_state = "duffel-syndiammo"
/obj/item/weapon/storage/backpack/duffel/syndie/ammo/loaded
/obj/item/storage/backpack/duffel/syndie/ammo/loaded
desc = "A large duffelbag, packed to the brim with Bulldog shotgun ammo."
/obj/item/weapon/storage/backpack/duffel/syndie/ammo/loaded/New()
/obj/item/storage/backpack/duffel/syndie/ammo/loaded/New()
..()
new /obj/item/ammo_box/magazine/m12g(src)
new /obj/item/ammo_box/magazine/m12g(src)
@@ -296,147 +297,147 @@
new /obj/item/ammo_box/magazine/m12g/stun(src)
new /obj/item/ammo_box/magazine/m12g/dragon(src)
/obj/item/weapon/storage/backpack/duffel/syndie/surgery
/obj/item/storage/backpack/duffel/syndie/surgery
name = "surgery duffelbag"
desc = "A suspicious looking duffelbag for holding surgery tools."
icon_state = "duffel-syndimed"
item_state = "duffel-syndimed"
/obj/item/weapon/storage/backpack/duffel/syndie/surgery/New()
/obj/item/storage/backpack/duffel/syndie/surgery/New()
..()
new /obj/item/weapon/scalpel(src)
new /obj/item/weapon/hemostat(src)
new /obj/item/weapon/retractor(src)
new /obj/item/weapon/circular_saw(src)
new /obj/item/weapon/surgicaldrill(src)
new /obj/item/weapon/cautery(src)
new /obj/item/weapon/bonegel(src)
new /obj/item/weapon/bonesetter(src)
new /obj/item/weapon/FixOVein(src)
new /obj/item/scalpel(src)
new /obj/item/hemostat(src)
new /obj/item/retractor(src)
new /obj/item/circular_saw(src)
new /obj/item/surgicaldrill(src)
new /obj/item/cautery(src)
new /obj/item/bonegel(src)
new /obj/item/bonesetter(src)
new /obj/item/FixOVein(src)
new /obj/item/clothing/suit/straight_jacket(src)
new /obj/item/clothing/mask/muzzle(src)
new /obj/item/device/mmi/syndie(src)
new /obj/item/mmi/syndie(src)
/obj/item/weapon/storage/backpack/duffel/syndie/surgery_fake //for maint spawns
/obj/item/storage/backpack/duffel/syndie/surgery_fake //for maint spawns
name = "surgery duffelbag"
desc = "A suspicious looking duffelbag for holding surgery tools."
icon_state = "duffel-syndimed"
item_state = "duffel-syndimed"
/obj/item/weapon/storage/backpack/duffel/syndie/surgery_fake/New()
/obj/item/storage/backpack/duffel/syndie/surgery_fake/New()
..()
new /obj/item/weapon/scalpel(src)
new /obj/item/weapon/hemostat(src)
new /obj/item/weapon/retractor(src)
new /obj/item/weapon/cautery(src)
new /obj/item/weapon/bonegel(src)
new /obj/item/weapon/bonesetter(src)
new /obj/item/weapon/FixOVein(src)
new /obj/item/scalpel(src)
new /obj/item/hemostat(src)
new /obj/item/retractor(src)
new /obj/item/cautery(src)
new /obj/item/bonegel(src)
new /obj/item/bonesetter(src)
new /obj/item/FixOVein(src)
if(prob(50))
new /obj/item/weapon/circular_saw(src)
new /obj/item/weapon/surgicaldrill(src)
new /obj/item/circular_saw(src)
new /obj/item/surgicaldrill(src)
/obj/item/weapon/storage/backpack/duffel/captain
/obj/item/storage/backpack/duffel/captain
name = "captain's duffelbag"
desc = "A duffelbag designed to hold large quantities of condoms."
icon_state = "duffel-captain"
item_state = "duffel-captain"
burn_state = FIRE_PROOF
/obj/item/weapon/storage/backpack/duffel/security
/obj/item/storage/backpack/duffel/security
name = "security duffelbag"
desc = "A duffelbag built with robust fabric!"
icon_state = "duffel-security"
item_state = "duffel-security"
/obj/item/weapon/storage/backpack/duffel/virology
/obj/item/storage/backpack/duffel/virology
name = "virology duffelbag"
desc = "A white duffelbag designed to contain biohazards."
icon_state = "duffel-viro"
item_state = "duffel-viro"
/obj/item/weapon/storage/backpack/duffel/science
/obj/item/storage/backpack/duffel/science
name = "scientist duffelbag"
desc = "A duffelbag designed to hold the secrets of space."
icon_state = "duffel-toxins"
item_state = "duffel-toxins"
/obj/item/weapon/storage/backpack/duffel/genetics
/obj/item/storage/backpack/duffel/genetics
name = "geneticist duffelbag"
desc = "A duffelbag designed to hold gibbering monkies."
icon_state = "duffel-gene"
item_state = "duffel-gene"
/obj/item/weapon/storage/backpack/duffel/chemistry
/obj/item/storage/backpack/duffel/chemistry
name = "chemist duffelbag"
desc = "A duffelbag designed to hold corrosive substances."
icon_state = "duffel-chemistry"
item_state = "duffel-chemistry"
/obj/item/weapon/storage/backpack/duffel/medical
/obj/item/storage/backpack/duffel/medical
name = "medical duffelbag"
desc = "A duffelbag designed to hold medicine."
icon_state = "duffel-med"
item_state = "duffel-med"
/obj/item/weapon/storage/backpack/duffel/engineering
/obj/item/storage/backpack/duffel/engineering
name = "industrial duffelbag"
desc = "A duffelbag designed to hold tools."
icon_state = "duffel-eng"
item_state = "duffel-eng"
burn_state = FIRE_PROOF
/obj/item/weapon/storage/backpack/duffel/atmos
/obj/item/storage/backpack/duffel/atmos
name = "atmospherics duffelbag"
desc = "A duffelbag designed to hold tools. This one is specially designed for atmospherics."
icon_state = "duffel-atmos"
item_state = "duffel-atmos"
burn_state = FIRE_PROOF
/obj/item/weapon/storage/backpack/duffel/hydro
/obj/item/storage/backpack/duffel/hydro
name = "hydroponics duffelbag"
desc = "A duffelbag designed to hold seeds and fauna."
icon_state = "duffel-hydro"
item_state = "duffel-hydro"
/obj/item/weapon/storage/backpack/duffel/clown
/obj/item/storage/backpack/duffel/clown
name = "smiles von wiggleton"
desc = "A duffelbag designed to hold bananas and bike horns."
icon_state = "duffel-clown"
item_state = "duffel-clown"
//ERT backpacks.
/obj/item/weapon/storage/backpack/ert
/obj/item/storage/backpack/ert
name = "emergency response team backpack"
desc = "A spacious backpack with lots of pockets, used by members of the Nanotrasen Emergency Response Team."
icon_state = "ert_commander"
item_state = "backpack"
//Commander
/obj/item/weapon/storage/backpack/ert/commander
/obj/item/storage/backpack/ert/commander
name = "emergency response team commander backpack"
desc = "A spacious backpack with lots of pockets, worn by the commander of a Nanotrasen Emergency Response Team."
//Security
/obj/item/weapon/storage/backpack/ert/security
/obj/item/storage/backpack/ert/security
name = "emergency response team security backpack"
desc = "A spacious backpack with lots of pockets, worn by security members of a Nanotrasen Emergency Response Team."
icon_state = "ert_security"
//Engineering
/obj/item/weapon/storage/backpack/ert/engineer
/obj/item/storage/backpack/ert/engineer
name = "emergency response team engineer backpack"
desc = "A spacious backpack with lots of pockets, worn by engineering members of a Nanotrasen Emergency Response Team."
icon_state = "ert_engineering"
//Medical
/obj/item/weapon/storage/backpack/ert/medical
/obj/item/storage/backpack/ert/medical
name = "emergency response team medical backpack"
desc = "A spacious backpack with lots of pockets, worn by medical members of a Nanotrasen Emergency Response Team."
icon_state = "ert_medical"
//Janitorial
/obj/item/weapon/storage/backpack/ert/janitor
/obj/item/storage/backpack/ert/janitor
name = "emergency response team janitor backpack"
desc = "A spacious backpack with lots of pockets, worn by janitorial members of a Nanotrasen Emergency Response Team."
icon_state = "ert_janitor"
+43 -43
View File
@@ -16,7 +16,7 @@
*/
// Generic non-item
/obj/item/weapon/storage/bag
/obj/item/storage/bag
allow_quick_gather = 1
allow_quick_empty = 1
display_contents_with_number = 1 // should work fine now
@@ -26,7 +26,7 @@
// -----------------------------
// Trash bag
// -----------------------------
/obj/item/weapon/storage/bag/trash
/obj/item/storage/bag/trash
name = "trash bag"
desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"
icon = 'icons/obj/janitor.dmi'
@@ -37,14 +37,14 @@
max_w_class = WEIGHT_CLASS_SMALL
storage_slots = 30
can_hold = list() // any
cant_hold = list(/obj/item/weapon/disk/nuclear)
cant_hold = list(/obj/item/disk/nuclear)
/obj/item/weapon/storage/bag/trash/suicide_act(mob/user)
/obj/item/storage/bag/trash/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] puts the [src.name] over their head and starts chomping at the insides! Disgusting!</span>")
playsound(loc, 'sound/items/eatfood.ogg', 50, 1, -1)
return (TOXLOSS)
/obj/item/weapon/storage/bag/trash/update_icon()
/obj/item/storage/bag/trash/update_icon()
if(contents.len == 0)
w_class = WEIGHT_CLASS_TINY
icon_state = "[initial(icon_state)]"
@@ -58,30 +58,30 @@
w_class = WEIGHT_CLASS_BULKY
icon_state = "[initial(icon_state)]3"
/obj/item/weapon/storage/bag/trash/cyborg
/obj/item/storage/bag/trash/cyborg
/obj/item/weapon/storage/bag/trash/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J)
/obj/item/storage/bag/trash/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J)
J.put_in_cart(src, user)
J.mybag=src
J.update_icon()
/obj/item/weapon/storage/bag/trash/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J)
/obj/item/storage/bag/trash/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J)
return
/obj/item/weapon/storage/bag/trash/bluespace
/obj/item/storage/bag/trash/bluespace
name = "trash bag of holding"
desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage."
icon_state = "bluetrashbag"
origin_tech = "materials=4;bluespace=4;engineering=4;plasmatech=3"
max_combined_w_class = 60
storage_slots = 60
flags_2 = NO_MAT_REDEMPTION_2
// -----------------------------
// Plastic Bag
// -----------------------------
/obj/item/weapon/storage/bag/plasticbag
/obj/item/storage/bag/plasticbag
name = "plastic bag"
desc = "It's a very flimsy, very noisy alternative to a bag."
icon = 'icons/obj/trash.dmi'
@@ -94,9 +94,9 @@
storage_slots = 7
display_contents_with_number = 0 //or else this will lead to stupid behavior.
can_hold = list() // any
cant_hold = list(/obj/item/weapon/disk/nuclear)
cant_hold = list(/obj/item/disk/nuclear)
/obj/item/weapon/storage/bag/plasticbag/mob_can_equip(M as mob, slot)
/obj/item/storage/bag/plasticbag/mob_can_equip(M as mob, slot)
if(slot==slot_head && contents.len)
to_chat(M, "<span class='warning'>You need to empty the bag first!</span>")
@@ -104,13 +104,13 @@
return ..()
/obj/item/weapon/storage/bag/plasticbag/equipped(var/mob/user, var/slot)
/obj/item/storage/bag/plasticbag/equipped(var/mob/user, var/slot)
if(slot==slot_head)
storage_slots = 0
processing_objects.Add(src)
return
/obj/item/weapon/storage/bag/plasticbag/process()
/obj/item/storage/bag/plasticbag/process()
if(is_equipped())
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
@@ -127,7 +127,7 @@
// Mining Satchel
// -----------------------------
/obj/item/weapon/storage/bag/ore
/obj/item/storage/bag/ore
name = "mining satchel"
desc = "This little bugger can be used to store and transport ores."
icon = 'icons/obj/mining.dmi'
@@ -138,13 +138,13 @@
storage_slots = 50
max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class
max_w_class = WEIGHT_CLASS_NORMAL
can_hold = list(/obj/item/weapon/ore)
can_hold = list(/obj/item/ore)
/obj/item/weapon/storage/bag/ore/cyborg
/obj/item/storage/bag/ore/cyborg
name = "cyborg mining satchel"
flags = NODROP
/obj/item/weapon/storage/bag/ore/holding //miners, your messiah has arrived
/obj/item/storage/bag/ore/holding //miners, your messiah has arrived
name = "mining satchel of holding"
desc = "A revolution in convenience, this satchel allows for infinite ore storage. It's been outfitted with anti-malfunction safety measures."
storage_slots = INFINITY
@@ -152,7 +152,7 @@
origin_tech = "bluespace=4;materials=3;engineering=3"
icon_state = "satchel_bspace"
/obj/item/weapon/storage/bag/ore/holding/cyborg
/obj/item/storage/bag/ore/holding/cyborg
name = "cyborg mining satchel of holding"
flags = NODROP
@@ -160,7 +160,7 @@
// Plant bag
// -----------------------------
/obj/item/weapon/storage/bag/plants
/obj/item/storage/bag/plants
name = "plant bag"
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "plantbag"
@@ -168,16 +168,16 @@
max_combined_w_class = 100 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class
max_w_class = WEIGHT_CLASS_NORMAL
w_class = WEIGHT_CLASS_TINY
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown,/obj/item/weapon/reagent_containers/food/snacks/ash_flora)
can_hold = list(/obj/item/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/grown,/obj/item/reagent_containers/food/snacks/ash_flora)
burn_state = FLAMMABLE
/obj/item/weapon/storage/bag/plants/portaseeder
/obj/item/storage/bag/plants/portaseeder
name = "portable seed extractor"
desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant."
icon_state = "portaseeder"
origin_tech = "biotech=3;engineering=2"
/obj/item/weapon/storage/bag/plants/portaseeder/verb/dissolve_contents()
/obj/item/storage/bag/plants/portaseeder/verb/dissolve_contents()
set name = "Activate Seed Extraction"
set category = "Object"
set desc = "Activate to convert your plants into plantable seeds."
@@ -197,7 +197,7 @@
// Because it stacks stacks, this doesn't operate normally.
// However, making it a storage/bag allows us to reuse existing code in some places. -Sayu
/obj/item/weapon/storage/bag/sheetsnatcher
/obj/item/storage/bag/sheetsnatcher
icon = 'icons/obj/mining.dmi'
icon_state = "sheetsnatcher"
name = "Sheet Snatcher"
@@ -209,8 +209,8 @@
allow_quick_empty = 1 // this function is superceded
New()
..()
//verbs -= /obj/item/weapon/storage/verb/quick_empty
//verbs += /obj/item/weapon/storage/bag/sheetsnatcher/quick_empty
//verbs -= /obj/item/storage/verb/quick_empty
//verbs += /obj/item/storage/bag/sheetsnatcher/quick_empty
can_be_inserted(obj/item/W as obj, stop_messages = 0)
if(!istype(W,/obj/item/stack/sheet) || istype(W,/obj/item/stack/sheet/mineral/sandstone) || istype(W,/obj/item/stack/sheet/wood))
@@ -328,7 +328,7 @@
// Sheet Snatcher (Cyborg)
// -----------------------------
/obj/item/weapon/storage/bag/sheetsnatcher/borg
/obj/item/storage/bag/sheetsnatcher/borg
name = "Sheet Snatcher 9000"
desc = ""
capacity = 500//Borgs get more because >specialization
@@ -338,7 +338,7 @@
// Cash Bag
// -----------------------------
/obj/item/weapon/storage/bag/cash
/obj/item/storage/bag/cash
icon = 'icons/obj/storage.dmi'
icon_state = "cashbag"
name = "Cash bag"
@@ -347,13 +347,13 @@
max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * cash.w_class
max_w_class = WEIGHT_CLASS_NORMAL
w_class = WEIGHT_CLASS_TINY
can_hold = list(/obj/item/weapon/coin,/obj/item/stack/spacecash)
can_hold = list(/obj/item/coin,/obj/item/stack/spacecash)
// -----------------------------
// Book bag
// -----------------------------
/obj/item/weapon/storage/bag/books
/obj/item/storage/bag/books
name = "book bag"
desc = "A bag for books."
icon = 'icons/obj/library.dmi'
@@ -363,13 +363,13 @@
max_combined_w_class = 21
max_w_class = WEIGHT_CLASS_NORMAL
w_class = WEIGHT_CLASS_BULKY //Bigger than a book because physics
can_hold = list(/obj/item/weapon/book, /obj/item/weapon/storage/bible, /obj/item/weapon/tome, /obj/item/weapon/spellbook)
can_hold = list(/obj/item/book, /obj/item/storage/bible, /obj/item/tome, /obj/item/spellbook)
burn_state = FLAMMABLE
/*
* Trays - Agouri
*/
/obj/item/weapon/storage/bag/tray
/obj/item/storage/bag/tray
name = "tray"
icon = 'icons/obj/food/food.dmi'
icon_state = "tray"
@@ -382,7 +382,7 @@
flags = CONDUCT
materials = list(MAT_METAL=3000)
/obj/item/weapon/storage/bag/tray/attack(mob/living/M as mob, mob/living/user as mob)
/obj/item/storage/bag/tray/attack(mob/living/M as mob, mob/living/user as mob)
..()
// Drop all the things. All of them.
var/list/obj/item/oldContents = contents.Copy()
@@ -405,22 +405,22 @@
if(prob(10))
M.Weaken(2)
/obj/item/weapon/storage/bag/tray/proc/rebuild_overlays()
/obj/item/storage/bag/tray/proc/rebuild_overlays()
overlays.Cut()
for(var/obj/item/I in contents)
overlays += image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1)
/obj/item/weapon/storage/bag/tray/remove_from_storage(obj/item/W as obj, atom/new_location)
/obj/item/storage/bag/tray/remove_from_storage(obj/item/W as obj, atom/new_location)
..()
rebuild_overlays()
/obj/item/weapon/storage/bag/tray/handle_item_insertion(obj/item/I, prevent_warning = 0)
/obj/item/storage/bag/tray/handle_item_insertion(obj/item/I, prevent_warning = 0)
overlays += image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1)
..()
/obj/item/weapon/storage/bag/tray/cyborg
/obj/item/storage/bag/tray/cyborg
/obj/item/weapon/storage/bag/tray/cyborg/afterattack(atom/target, mob/user as mob)
/obj/item/storage/bag/tray/cyborg/afterattack(atom/target, mob/user as mob)
if( isturf(target) || istype(target,/obj/structure/table) )
var foundtable = istype(target,/obj/structure/table/)
if( !foundtable ) //it must be a turf!
@@ -464,7 +464,7 @@
* Chemistry bag
*/
/obj/item/weapon/storage/bag/chemistry
/obj/item/storage/bag/chemistry
name = "chemistry bag"
icon = 'icons/obj/chemical.dmi'
icon_state = "bag"
@@ -472,13 +472,13 @@
storage_slots = 50
max_combined_w_class = 200
w_class = WEIGHT_CLASS_TINY
can_hold = list(/obj/item/weapon/reagent_containers/food/pill,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/glass/bottle)
can_hold = list(/obj/item/reagent_containers/food/pill,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/glass/bottle)
burn_state = FLAMMABLE
/*
* Biowaste bag (mostly for xenobiologists)
*/
/obj/item/weapon/storage/bag/bio
/obj/item/storage/bag/bio
name = "bio bag"
icon = 'icons/obj/chemical.dmi'
icon_state = "biobag"
@@ -486,5 +486,5 @@
storage_slots = 25
max_combined_w_class = 200
w_class = WEIGHT_CLASS_TINY
can_hold = list(/obj/item/slime_extract,/obj/item/weapon/reagent_containers/food/snacks/monkeycube,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/blood,/obj/item/weapon/reagent_containers/hypospray/autoinjector)
can_hold = list(/obj/item/slime_extract,/obj/item/reagent_containers/food/snacks/monkeycube,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/blood,/obj/item/reagent_containers/hypospray/autoinjector)
burn_state = FLAMMABLE
+215 -215
View File
@@ -1,4 +1,4 @@
/obj/item/weapon/storage/belt
/obj/item/storage/belt
name = "belt"
desc = "Can hold various things."
icon = 'icons/obj/clothing/belts.dmi'
@@ -9,7 +9,7 @@
var/use_item_overlays = 0 // Do we have overlays for items held inside the belt?
/obj/item/weapon/storage/belt/update_icon()
/obj/item/storage/belt/update_icon()
if(use_item_overlays)
overlays.Cut()
for(var/obj/item/I in contents)
@@ -17,11 +17,11 @@
..()
/obj/item/weapon/storage/belt/proc/can_use()
/obj/item/storage/belt/proc/can_use()
return is_equipped()
/obj/item/weapon/storage/belt/MouseDrop(obj/over_object as obj, src_location, over_location)
/obj/item/storage/belt/MouseDrop(obj/over_object as obj, src_location, over_location)
var/mob/M = usr
if(!istype(over_object, /obj/screen))
return ..()
@@ -37,75 +37,75 @@
src.add_fingerprint(usr)
return
/obj/item/weapon/storage/belt/deserialize(list/data)
/obj/item/storage/belt/deserialize(list/data)
..()
update_icon()
/obj/item/weapon/storage/belt/utility
/obj/item/storage/belt/utility
name = "tool-belt" //Carn: utility belt is nicer, but it bamboozles the text parsing.
desc = "Can hold various tools."
icon_state = "utilitybelt"
item_state = "utility"
use_item_overlays = 1
can_hold = list(
/obj/item/weapon/crowbar,
/obj/item/weapon/screwdriver,
/obj/item/weapon/weldingtool,
/obj/item/weapon/wirecutters,
/obj/item/weapon/wrench,
/obj/item/device/multitool,
/obj/item/device/flashlight,
/obj/item/crowbar,
/obj/item/screwdriver,
/obj/item/weldingtool,
/obj/item/wirecutters,
/obj/item/wrench,
/obj/item/multitool,
/obj/item/flashlight,
/obj/item/stack/cable_coil,
/obj/item/device/t_scanner,
/obj/item/device/analyzer,
/obj/item/t_scanner,
/obj/item/analyzer,
/obj/item/taperoll/engineering,
/obj/item/weapon/extinguisher/mini)
/obj/item/extinguisher/mini)
/obj/item/weapon/storage/belt/utility/full/New()
/obj/item/storage/belt/utility/full/New()
..()
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
new /obj/item/weapon/weldingtool(src)
new /obj/item/weapon/crowbar(src)
new /obj/item/weapon/wirecutters(src)
new /obj/item/screwdriver(src)
new /obj/item/wrench(src)
new /obj/item/weldingtool(src)
new /obj/item/crowbar(src)
new /obj/item/wirecutters(src)
new /obj/item/stack/cable_coil(src, 30, pick(COLOR_RED, COLOR_YELLOW, COLOR_ORANGE))
update_icon()
/obj/item/weapon/storage/belt/utility/full/multitool/New()
/obj/item/storage/belt/utility/full/multitool/New()
..()
new /obj/item/device/multitool(src)
new /obj/item/multitool(src)
update_icon()
/obj/item/weapon/storage/belt/utility/atmostech/New()
/obj/item/storage/belt/utility/atmostech/New()
..()
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
new /obj/item/weapon/weldingtool(src)
new /obj/item/weapon/crowbar(src)
new /obj/item/weapon/wirecutters(src)
new /obj/item/device/t_scanner(src)
new /obj/item/weapon/extinguisher/mini(src)
new /obj/item/screwdriver(src)
new /obj/item/wrench(src)
new /obj/item/weldingtool(src)
new /obj/item/crowbar(src)
new /obj/item/wirecutters(src)
new /obj/item/t_scanner(src)
new /obj/item/extinguisher/mini(src)
update_icon()
/obj/item/weapon/storage/belt/utility/chief
/obj/item/storage/belt/utility/chief
name = "Chief Engineer's toolbelt"
desc = "Holds tools, looks snazzy"
icon_state = "utilitybelt_ce"
item_state = "utility_ce"
/obj/item/weapon/storage/belt/utility/chief/full/New()
/obj/item/storage/belt/utility/chief/full/New()
..()
new /obj/item/weapon/screwdriver/power(src)
new /obj/item/weapon/crowbar/power(src)
new /obj/item/weapon/weldingtool/experimental(src)//This can be changed if this is too much
new /obj/item/device/multitool(src)
new /obj/item/screwdriver/power(src)
new /obj/item/crowbar/power(src)
new /obj/item/weldingtool/experimental(src)//This can be changed if this is too much
new /obj/item/multitool(src)
new /obj/item/stack/cable_coil(src, 30, pick(COLOR_RED, COLOR_YELLOW, COLOR_ORANGE))
new /obj/item/weapon/extinguisher/mini(src)
new /obj/item/device/analyzer(src)
new /obj/item/extinguisher/mini(src)
new /obj/item/analyzer(src)
update_icon()
//much roomier now that we've managed to remove two tools
/obj/item/weapon/storage/belt/medical
/obj/item/storage/belt/medical
use_to_pickup = 1 //Allow medical belt to pick up medicine
name = "medical belt"
desc = "Can hold various medical equipment."
@@ -113,64 +113,64 @@
item_state = "medical"
use_item_overlays = 1
can_hold = list(
/obj/item/device/healthanalyzer,
/obj/item/weapon/dnainjector,
/obj/item/weapon/reagent_containers/dropper,
/obj/item/weapon/reagent_containers/glass/beaker,
/obj/item/weapon/reagent_containers/glass/bottle,
/obj/item/weapon/reagent_containers/food/pill,
/obj/item/weapon/reagent_containers/syringe,
/obj/item/weapon/lighter/zippo,
/obj/item/weapon/storage/fancy/cigarettes,
/obj/item/weapon/storage/pill_bottle,
/obj/item/healthanalyzer,
/obj/item/dnainjector,
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/glass/beaker,
/obj/item/reagent_containers/glass/bottle,
/obj/item/reagent_containers/food/pill,
/obj/item/reagent_containers/syringe,
/obj/item/lighter/zippo,
/obj/item/storage/fancy/cigarettes,
/obj/item/storage/pill_bottle,
/obj/item/stack/medical,
/obj/item/device/flashlight/pen,
/obj/item/flashlight/pen,
/obj/item/clothing/mask/surgical,
/obj/item/clothing/gloves/color/latex,
/obj/item/weapon/reagent_containers/hypospray/autoinjector,
/obj/item/device/rad_laser,
/obj/item/device/sensor_device,
/obj/item/weapon/wrench/medical,
/obj/item/reagent_containers/hypospray/autoinjector,
/obj/item/rad_laser,
/obj/item/sensor_device,
/obj/item/wrench/medical,
)
/obj/item/weapon/storage/belt/medical/response_team
/obj/item/storage/belt/medical/response_team
/obj/item/weapon/storage/belt/medical/response_team/New()
/obj/item/storage/belt/medical/response_team/New()
..()
new /obj/item/weapon/reagent_containers/food/pill/salbutamol(src)
new /obj/item/weapon/reagent_containers/food/pill/salbutamol(src)
new /obj/item/weapon/reagent_containers/food/pill/charcoal(src)
new /obj/item/weapon/reagent_containers/food/pill/charcoal(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/reagent_containers/food/pill/salbutamol(src)
new /obj/item/reagent_containers/food/pill/salbutamol(src)
new /obj/item/reagent_containers/food/pill/charcoal(src)
new /obj/item/reagent_containers/food/pill/charcoal(src)
new /obj/item/reagent_containers/food/pill/salicylic(src)
new /obj/item/reagent_containers/food/pill/salicylic(src)
new /obj/item/reagent_containers/food/pill/salicylic(src)
update_icon()
/obj/item/weapon/storage/belt/botany
/obj/item/storage/belt/botany
name = "botanist belt"
desc = "Can hold various botanical supplies."
icon_state = "botanybelt"
item_state = "botany"
use_item_overlays = 1
can_hold = list(
/obj/item/device/plant_analyzer,
/obj/item/weapon/cultivator,
/obj/item/weapon/hatchet,
/obj/item/weapon/reagent_containers/glass/bottle,
// /obj/item/weapon/reagent_containers/syringe,
// /obj/item/weapon/reagent_containers/glass/beaker,
/obj/item/weapon/lighter/zippo,
/obj/item/weapon/storage/fancy/cigarettes,
/obj/item/weapon/shovel/spade,
/obj/item/device/flashlight/pen,
/obj/item/plant_analyzer,
/obj/item/cultivator,
/obj/item/hatchet,
/obj/item/reagent_containers/glass/bottle,
// /obj/item/reagent_containers/syringe,
// /obj/item/reagent_containers/glass/beaker,
/obj/item/lighter/zippo,
/obj/item/storage/fancy/cigarettes,
/obj/item/shovel/spade,
/obj/item/flashlight/pen,
/obj/item/seeds,
/obj/item/weapon/wirecutters,
/obj/item/weapon/wrench,
/obj/item/wirecutters,
/obj/item/wrench,
)
/obj/item/weapon/storage/belt/security
/obj/item/storage/belt/security
name = "security belt"
desc = "Can hold security gear like handcuffs and flashes."
icon_state = "securitybelt"
@@ -179,38 +179,38 @@
max_w_class = WEIGHT_CLASS_NORMAL
use_item_overlays = 1
can_hold = list(
/obj/item/weapon/grenade/flashbang,
/obj/item/weapon/grenade/chem_grenade/teargas,
/obj/item/weapon/reagent_containers/spray/pepper,
/obj/item/weapon/restraints/handcuffs,
/obj/item/device/flash,
/obj/item/grenade/flashbang,
/obj/item/grenade/chem_grenade/teargas,
/obj/item/reagent_containers/spray/pepper,
/obj/item/restraints/handcuffs,
/obj/item/flash,
/obj/item/clothing/glasses,
/obj/item/ammo_casing/shotgun,
/obj/item/ammo_box,
/obj/item/weapon/reagent_containers/food/snacks/donut,
/obj/item/weapon/kitchen/knife/combat,
/obj/item/weapon/melee/baton,
/obj/item/weapon/melee/classic_baton,
/obj/item/device/flashlight/seclite,
/obj/item/reagent_containers/food/snacks/donut,
/obj/item/kitchen/knife/combat,
/obj/item/melee/baton,
/obj/item/melee/classic_baton,
/obj/item/flashlight/seclite,
/obj/item/taperoll/police,
/obj/item/weapon/melee/classic_baton/telescopic,
/obj/item/weapon/restraints/legcuffs/bola)
/obj/item/melee/classic_baton/telescopic,
/obj/item/restraints/legcuffs/bola)
/obj/item/weapon/storage/belt/security/sec/New()
/obj/item/storage/belt/security/sec/New()
..()
new /obj/item/device/flashlight/seclite(src)
new /obj/item/flashlight/seclite(src)
update_icon()
/obj/item/weapon/storage/belt/security/response_team/New()
/obj/item/storage/belt/security/response_team/New()
..()
new /obj/item/weapon/kitchen/knife/combat(src)
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/device/flash(src)
new /obj/item/weapon/melee/classic_baton/telescopic(src)
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/kitchen/knife/combat(src)
new /obj/item/melee/baton/loaded(src)
new /obj/item/flash(src)
new /obj/item/melee/classic_baton/telescopic(src)
new /obj/item/grenade/flashbang(src)
update_icon()
/obj/item/weapon/storage/belt/soulstone
/obj/item/storage/belt/soulstone
name = "soul stone belt"
desc = "Designed for ease of access to the shards during a fight, as to not let a single enemy spirit slip away"
icon_state = "soulstonebelt"
@@ -218,21 +218,21 @@
storage_slots = 6
use_item_overlays = 1
can_hold = list(
"/obj/item/device/soulstone"
"/obj/item/soulstone"
)
/obj/item/weapon/storage/belt/soulstone/full/New()
/obj/item/storage/belt/soulstone/full/New()
..()
new /obj/item/device/soulstone(src)
new /obj/item/device/soulstone(src)
new /obj/item/device/soulstone(src)
new /obj/item/device/soulstone(src)
new /obj/item/device/soulstone(src)
new /obj/item/device/soulstone(src)
new /obj/item/soulstone(src)
new /obj/item/soulstone(src)
new /obj/item/soulstone(src)
new /obj/item/soulstone(src)
new /obj/item/soulstone(src)
new /obj/item/soulstone(src)
update_icon()
/obj/item/weapon/storage/belt/champion
/obj/item/storage/belt/champion
name = "championship belt"
desc = "Proves to the world that you are the strongest!"
icon_state = "championbelt"
@@ -243,38 +243,38 @@
"/obj/item/clothing/mask/luchador"
)
/obj/item/weapon/storage/belt/military
/obj/item/storage/belt/military
name = "military belt"
desc = "A syndicate belt designed to be used by boarding parties. Its style is modelled after the hardsuits they wear."
icon_state = "militarybelt"
item_state = "military"
max_w_class = WEIGHT_CLASS_SMALL
/obj/item/weapon/storage/belt/military/abductor
/obj/item/storage/belt/military/abductor
name = "agent belt"
desc = "A belt used by abductor agents."
icon = 'icons/obj/abductor.dmi'
icon_state = "belt"
item_state = "security"
/obj/item/weapon/storage/belt/military/abductor/full/New()
/obj/item/storage/belt/military/abductor/full/New()
..()
new /obj/item/weapon/screwdriver/abductor(src)
new /obj/item/weapon/wrench/abductor(src)
new /obj/item/weapon/weldingtool/abductor(src)
new /obj/item/weapon/crowbar/abductor(src)
new /obj/item/weapon/wirecutters/abductor(src)
new /obj/item/device/multitool/abductor(src)
new /obj/item/screwdriver/abductor(src)
new /obj/item/wrench/abductor(src)
new /obj/item/weldingtool/abductor(src)
new /obj/item/crowbar/abductor(src)
new /obj/item/wirecutters/abductor(src)
new /obj/item/multitool/abductor(src)
new /obj/item/stack/cable_coil(src, 30, COLOR_WHITE)
/obj/item/weapon/storage/belt/military/assault
/obj/item/storage/belt/military/assault
name = "assault belt"
desc = "A tactical assault belt."
icon_state = "assaultbelt"
item_state = "assault"
storage_slots = 6
/obj/item/weapon/storage/belt/janitor
/obj/item/storage/belt/janitor
name = "janibelt"
desc = "A belt used to hold most janitorial supplies."
icon_state = "janibelt"
@@ -283,25 +283,25 @@
max_w_class = WEIGHT_CLASS_BULKY // Set to this so the light replacer can fit.
use_item_overlays = 1
can_hold = list(
/obj/item/weapon/grenade/chem_grenade/cleaner,
/obj/item/device/lightreplacer,
/obj/item/device/flashlight,
/obj/item/weapon/reagent_containers/spray,
/obj/item/weapon/soap,
/obj/item/weapon/holosign_creator
/obj/item/grenade/chem_grenade/cleaner,
/obj/item/lightreplacer,
/obj/item/flashlight,
/obj/item/reagent_containers/spray,
/obj/item/soap,
/obj/item/holosign_creator
)
/obj/item/weapon/storage/belt/janitor/full/New()
/obj/item/storage/belt/janitor/full/New()
..()
new /obj/item/device/lightreplacer(src)
new /obj/item/weapon/holosign_creator(src)
new /obj/item/weapon/reagent_containers/spray(src)
new /obj/item/weapon/soap(src)
new /obj/item/weapon/grenade/chem_grenade/cleaner(src)
new /obj/item/weapon/grenade/chem_grenade/cleaner(src)
new /obj/item/lightreplacer(src)
new /obj/item/holosign_creator(src)
new /obj/item/reagent_containers/spray(src)
new /obj/item/soap(src)
new /obj/item/grenade/chem_grenade/cleaner(src)
new /obj/item/grenade/chem_grenade/cleaner(src)
update_icon()
/obj/item/weapon/storage/belt/lazarus
/obj/item/storage/belt/lazarus
name = "trainer's belt"
desc = "For the mining master, holds your lazarus capsules."
icon_state = "lazarusbelt"
@@ -310,29 +310,29 @@
max_w_class = WEIGHT_CLASS_TINY
max_combined_w_class = 6
storage_slots = 6
can_hold = list(/obj/item/device/mobcapsule)
can_hold = list(/obj/item/mobcapsule)
/obj/item/weapon/storage/belt/lazarus/New()
/obj/item/storage/belt/lazarus/New()
..()
update_icon()
/obj/item/weapon/storage/belt/lazarus/update_icon()
/obj/item/storage/belt/lazarus/update_icon()
..()
icon_state = "[initial(icon_state)]_[contents.len]"
/obj/item/weapon/storage/belt/lazarus/attackby(obj/item/W, mob/user)
/obj/item/storage/belt/lazarus/attackby(obj/item/W, mob/user)
var/amount = contents.len
. = ..()
if(amount != contents.len)
update_icon()
/obj/item/weapon/storage/belt/lazarus/remove_from_storage(obj/item/W as obj, atom/new_location)
/obj/item/storage/belt/lazarus/remove_from_storage(obj/item/W as obj, atom/new_location)
..()
update_icon()
/obj/item/weapon/storage/belt/bandolier
/obj/item/storage/belt/bandolier
name = "bandolier"
desc = "A bandolier for holding shotgun ammunition."
icon_state = "bandolier"
@@ -342,11 +342,11 @@
/obj/item/ammo_casing/shotgun
)
/obj/item/weapon/storage/belt/bandolier/New()
/obj/item/storage/belt/bandolier/New()
..()
update_icon()
/obj/item/weapon/storage/belt/bandolier/full/New()
/obj/item/storage/belt/bandolier/full/New()
..()
new /obj/item/ammo_casing/shotgun/beanbag(src)
new /obj/item/ammo_casing/shotgun/beanbag(src)
@@ -358,22 +358,22 @@
new /obj/item/ammo_casing/shotgun/beanbag(src)
update_icon()
/obj/item/weapon/storage/belt/bandolier/update_icon()
/obj/item/storage/belt/bandolier/update_icon()
..()
icon_state = "[initial(icon_state)]_[contents.len]"
/obj/item/weapon/storage/belt/bandolier/attackby(obj/item/W, mob/user)
/obj/item/storage/belt/bandolier/attackby(obj/item/W, mob/user)
var/amount = contents.len
. = ..()
if(amount != contents.len)
update_icon()
/obj/item/weapon/storage/belt/bandolier/remove_from_storage(obj/item/W as obj, atom/new_location)
/obj/item/storage/belt/bandolier/remove_from_storage(obj/item/W as obj, atom/new_location)
..()
update_icon()
/obj/item/weapon/storage/belt/holster
/obj/item/storage/belt/holster
name = "shoulder holster"
desc = "A holster to conceal a carried handgun. WARNING: Badasses only."
icon_state = "holster"
@@ -381,11 +381,11 @@
storage_slots = 1
max_w_class = WEIGHT_CLASS_NORMAL
can_hold = list(
/obj/item/weapon/gun/projectile/automatic/pistol,
/obj/item/weapon/gun/projectile/revolver/detective
/obj/item/gun/projectile/automatic/pistol,
/obj/item/gun/projectile/revolver/detective
)
/obj/item/weapon/storage/belt/wands
/obj/item/storage/belt/wands
name = "wand belt"
desc = "A belt designed to hold various rods of power. A veritable fanny pack of exotic magic."
icon_state = "soulstonebelt"
@@ -393,25 +393,25 @@
storage_slots = 6
use_item_overlays = 1
can_hold = list(
/obj/item/weapon/gun/magic/wand
/obj/item/gun/magic/wand
)
/obj/item/weapon/storage/belt/wands/full/New()
/obj/item/storage/belt/wands/full/New()
..()
new /obj/item/weapon/gun/magic/wand/death(src)
new /obj/item/weapon/gun/magic/wand/resurrection(src)
new /obj/item/weapon/gun/magic/wand/polymorph(src)
new /obj/item/weapon/gun/magic/wand/teleport(src)
new /obj/item/weapon/gun/magic/wand/door(src)
new /obj/item/weapon/gun/magic/wand/fireball(src)
new /obj/item/gun/magic/wand/death(src)
new /obj/item/gun/magic/wand/resurrection(src)
new /obj/item/gun/magic/wand/polymorph(src)
new /obj/item/gun/magic/wand/teleport(src)
new /obj/item/gun/magic/wand/door(src)
new /obj/item/gun/magic/wand/fireball(src)
for(var/obj/item/weapon/gun/magic/wand/W in contents) //All wands in this pack come in the best possible condition
for(var/obj/item/gun/magic/wand/W in contents) //All wands in this pack come in the best possible condition
W.max_charges = initial(W.max_charges)
W.charges = W.max_charges
update_icon()
/obj/item/weapon/storage/belt/fannypack
/obj/item/storage/belt/fannypack
name = "fannypack"
desc = "A dorky fannypack for keeping small items in."
icon_state = "fannypack_leather"
@@ -419,57 +419,57 @@
storage_slots = 3
max_w_class = WEIGHT_CLASS_SMALL
/obj/item/weapon/storage/belt/fannypack/black
/obj/item/storage/belt/fannypack/black
name = "black fannypack"
icon_state = "fannypack_black"
item_state = "fannypack_black"
/obj/item/weapon/storage/belt/fannypack/red
/obj/item/storage/belt/fannypack/red
name = "red fannypack"
icon_state = "fannypack_red"
item_state = "fannypack_red"
/obj/item/weapon/storage/belt/fannypack/purple
/obj/item/storage/belt/fannypack/purple
name = "purple fannypack"
icon_state = "fannypack_purple"
item_state = "fannypack_purple"
/obj/item/weapon/storage/belt/fannypack/blue
/obj/item/storage/belt/fannypack/blue
name = "blue fannypack"
icon_state = "fannypack_blue"
item_state = "fannypack_blue"
/obj/item/weapon/storage/belt/fannypack/orange
/obj/item/storage/belt/fannypack/orange
name = "orange fannypack"
icon_state = "fannypack_orange"
item_state = "fannypack_orange"
/obj/item/weapon/storage/belt/fannypack/white
/obj/item/storage/belt/fannypack/white
name = "white fannypack"
icon_state = "fannypack_white"
item_state = "fannypack_white"
/obj/item/weapon/storage/belt/fannypack/green
/obj/item/storage/belt/fannypack/green
name = "green fannypack"
icon_state = "fannypack_green"
item_state = "fannypack_green"
/obj/item/weapon/storage/belt/fannypack/pink
/obj/item/storage/belt/fannypack/pink
name = "pink fannypack"
icon_state = "fannypack_pink"
item_state = "fannypack_pink"
/obj/item/weapon/storage/belt/fannypack/cyan
/obj/item/storage/belt/fannypack/cyan
name = "cyan fannypack"
icon_state = "fannypack_cyan"
item_state = "fannypack_cyan"
/obj/item/weapon/storage/belt/fannypack/yellow
/obj/item/storage/belt/fannypack/yellow
name = "yellow fannypack"
icon_state = "fannypack_yellow"
item_state = "fannypack_yellow"
/obj/item/weapon/storage/belt/rapier
/obj/item/storage/belt/rapier
name = "rapier sheath"
desc = "Can hold rapiers."
icon_state = "sheath"
@@ -477,9 +477,9 @@
storage_slots = 1
w_class = WEIGHT_CLASS_BULKY
max_w_class = WEIGHT_CLASS_BULKY
can_hold = list(/obj/item/weapon/melee/rapier)
can_hold = list(/obj/item/melee/rapier)
/obj/item/weapon/storage/belt/rapier/update_icon()
/obj/item/storage/belt/rapier/update_icon()
icon_state = "[initial(icon_state)]"
item_state = "[initial(item_state)]"
if(contents.len)
@@ -490,9 +490,9 @@
L.update_inv_belt()
..()
/obj/item/weapon/storage/belt/rapier/New()
/obj/item/storage/belt/rapier/New()
..()
new /obj/item/weapon/melee/rapier(src)
new /obj/item/melee/rapier(src)
update_icon()
// -------------------------------------
@@ -500,7 +500,7 @@
// -------------------------------------
/obj/item/weapon/storage/belt/bluespace
/obj/item/storage/belt/bluespace
name = "Belt of Holding"
desc = "The greatest in pants-supporting technology."
icon_state = "holdingbelt"
@@ -512,7 +512,7 @@
origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5"
can_hold = list()
/obj/item/weapon/storage/belt/bluespace/owlman
/obj/item/storage/belt/bluespace/owlman
name = "Owlman's utility belt"
desc = "Sometimes people choose justice. Sometimes, justice chooses you..."
icon_state = "securitybelt"
@@ -523,8 +523,8 @@
origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5"
allow_quick_empty = 1
can_hold = list(
/obj/item/weapon/grenade/smokebomb,
/obj/item/weapon/restraints/legcuffs/bola
/obj/item/grenade/smokebomb,
/obj/item/restraints/legcuffs/bola
)
flags = NODROP
@@ -534,34 +534,34 @@
/obj/item/weapon/storage/belt/bluespace/owlman/New()
/obj/item/storage/belt/bluespace/owlman/New()
..()
new /obj/item/weapon/grenade/smokebomb(src)
new /obj/item/weapon/grenade/smokebomb(src)
new /obj/item/weapon/grenade/smokebomb(src)
new /obj/item/weapon/grenade/smokebomb(src)
new /obj/item/weapon/restraints/legcuffs/bola(src)
new /obj/item/weapon/restraints/legcuffs/bola(src)
new /obj/item/grenade/smokebomb(src)
new /obj/item/grenade/smokebomb(src)
new /obj/item/grenade/smokebomb(src)
new /obj/item/grenade/smokebomb(src)
new /obj/item/restraints/legcuffs/bola(src)
new /obj/item/restraints/legcuffs/bola(src)
processing_objects.Add(src)
cooldown = world.time
/obj/item/weapon/storage/belt/bluespace/owlman/process()
/obj/item/storage/belt/bluespace/owlman/process()
if(cooldown < world.time - 600)
smokecount = 0
var/obj/item/weapon/grenade/smokebomb/S
var/obj/item/grenade/smokebomb/S
for(S in src)
smokecount++
bolacount = 0
var/obj/item/weapon/restraints/legcuffs/bola/B
var/obj/item/restraints/legcuffs/bola/B
for(B in src)
bolacount++
if(smokecount < 4)
while(smokecount < 4)
new /obj/item/weapon/grenade/smokebomb(src)
new /obj/item/grenade/smokebomb(src)
smokecount++
if(bolacount < 2)
while(bolacount < 2)
new /obj/item/weapon/restraints/legcuffs/bola(src)
new /obj/item/restraints/legcuffs/bola(src)
bolacount++
cooldown = world.time
update_icon()
@@ -572,10 +572,10 @@
if(H.s_active && H.s_active == src)
H.s_active.show_to(H)
/obj/item/weapon/storage/belt/bluespace/attack(mob/M as mob, mob/user as mob, def_zone)
/obj/item/storage/belt/bluespace/attack(mob/M as mob, mob/user as mob, def_zone)
return
/obj/item/weapon/storage/belt/bluespace/admin
/obj/item/storage/belt/bluespace/admin
name = "Admin's Tool-belt"
desc = "Holds everything for those that run everything."
icon_state = "soulstonebelt"
@@ -588,25 +588,25 @@
New()
..()
new /obj/item/weapon/crowbar(src)
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/weldingtool/hugetank(src)
new /obj/item/weapon/wirecutters(src)
new /obj/item/weapon/wrench(src)
new /obj/item/device/multitool(src)
new /obj/item/crowbar(src)
new /obj/item/screwdriver(src)
new /obj/item/weldingtool/hugetank(src)
new /obj/item/wirecutters(src)
new /obj/item/wrench(src)
new /obj/item/multitool(src)
new /obj/item/stack/cable_coil(src)
new /obj/item/weapon/restraints/handcuffs(src)
new /obj/item/weapon/dnainjector/xraymut(src)
new /obj/item/weapon/dnainjector/firemut(src)
new /obj/item/weapon/dnainjector/telemut(src)
new /obj/item/weapon/dnainjector/hulkmut(src)
// new /obj/item/weapon/spellbook(src) // for smoke effects, door openings, etc
// new /obj/item/weapon/magic/spellbook(src)
new /obj/item/restraints/handcuffs(src)
new /obj/item/dnainjector/xraymut(src)
new /obj/item/dnainjector/firemut(src)
new /obj/item/dnainjector/telemut(src)
new /obj/item/dnainjector/hulkmut(src)
// new /obj/item/spellbook(src) // for smoke effects, door openings, etc
// new /obj/item/magic/spellbook(src)
// new/obj/item/weapon/reagent_containers/hypospray/admin(src)
// new/obj/item/reagent_containers/hypospray/admin(src)
/obj/item/weapon/storage/belt/bluespace/sandbox
/obj/item/storage/belt/bluespace/sandbox
name = "Sandbox Mode Toolbelt"
desc = "Holds whatever, you can spawn your own damn stuff."
w_class = 10 // permit holding other storage items
@@ -617,13 +617,13 @@
New()
..()
new /obj/item/weapon/crowbar(src)
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/weldingtool/hugetank(src)
new /obj/item/weapon/wirecutters(src)
new /obj/item/weapon/wrench(src)
new /obj/item/device/multitool(src)
new /obj/item/crowbar(src)
new /obj/item/screwdriver(src)
new /obj/item/weldingtool/hugetank(src)
new /obj/item/wirecutters(src)
new /obj/item/wrench(src)
new /obj/item/multitool(src)
new /obj/item/stack/cable_coil(src)
new /obj/item/device/analyzer(src)
new /obj/item/device/healthanalyzer(src)
new /obj/item/analyzer(src)
new /obj/item/healthanalyzer(src)
@@ -1,4 +1,4 @@
/obj/item/weapon/storage/bible
/obj/item/storage/bible
name = "bible"
desc = "Apply to head repeatedly."
icon_state ="bible"
@@ -14,21 +14,21 @@
return (user.dust())
/obj/item/weapon/storage/bible/booze
/obj/item/storage/bible/booze
name = "bible"
desc = "To be applied to the head repeatedly."
icon_state ="bible"
/obj/item/weapon/storage/bible/booze/New()
/obj/item/storage/bible/booze/New()
..()
new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src)
new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src)
new /obj/item/reagent_containers/food/drinks/cans/beer(src)
new /obj/item/reagent_containers/food/drinks/cans/beer(src)
new /obj/item/stack/spacecash(src)
new /obj/item/stack/spacecash(src)
new /obj/item/stack/spacecash(src)
//BS12 EDIT
// All cult functionality moved to Null Rod
/obj/item/weapon/storage/bible/proc/bless(mob/living/carbon/M as mob)
/obj/item/storage/bible/proc/bless(mob/living/carbon/M as mob)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/heal_amt = 10
@@ -37,17 +37,12 @@
H.UpdateDamageIcon()
return
/obj/item/weapon/storage/bible/attack(mob/living/M as mob, mob/living/user as mob)
/obj/item/storage/bible/attack(mob/living/M as mob, mob/living/user as mob)
var/chaplain = 0
if(user.mind && (user.mind.assigned_role == "Chaplain"))
chaplain = 1
M.create_attack_log("<font color='orange'>Has been attacked with [src.name] by [user.name] ([user.ckey])</font>")
user.create_attack_log("<font color='red'>Used the [src.name] to attack [M.name] ([M.ckey])</font>")
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
add_attack_logs(user, M, "Hit with [src]")
if(!iscarbon(user))
M.LAssailant = null
else
@@ -94,7 +89,7 @@
playsound(src.loc, "punch", 25, 1, -1)
return
/obj/item/weapon/storage/bible/afterattack(atom/A, mob/user as mob, proximity)
/obj/item/storage/bible/afterattack(atom/A, mob/user as mob, proximity)
if(!proximity)
return
if(istype(A, /turf/simulated/floor))
@@ -115,6 +110,6 @@
A.reagents.del_reagent("unholywater")
A.reagents.add_reagent("holywater",unholy2clean)
/obj/item/weapon/storage/bible/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
/obj/item/storage/bible/attackby(obj/item/W as obj, mob/user as mob, params)
playsound(src.loc, "rustle", 50, 1, -5)
..()
File diff suppressed because it is too large Load Diff
@@ -1,4 +1,4 @@
/obj/item/weapon/storage/briefcase
/obj/item/storage/briefcase
name = "briefcase"
desc = "It's made of AUTHENTIC faux-leather and has a price-tag still attached. Its owner must be a real professional."
icon_state = "briefcase"
@@ -15,5 +15,5 @@
burn_state = FLAMMABLE
burntime = 20
/obj/item/weapon/storage/briefcase/New()
/obj/item/storage/briefcase/New()
..()
@@ -13,19 +13,19 @@
* Cigarette Box
*/
/obj/item/weapon/storage/fancy/
/obj/item/storage/fancy/
icon = 'icons/obj/food/food.dmi'
icon_state = "donutbox6"
name = "donut box"
burn_state = FLAMMABLE
var/icon_type = "donut"
/obj/item/weapon/storage/fancy/update_icon(var/itemremoved = 0)
/obj/item/storage/fancy/update_icon(var/itemremoved = 0)
var/total_contents = src.contents.len - itemremoved
src.icon_state = "[src.icon_type]box[total_contents]"
return
/obj/item/weapon/storage/fancy/examine(mob/user)
/obj/item/storage/fancy/examine(mob/user)
if(!..(user, 1))
return
@@ -42,43 +42,43 @@
* Donut Box
*/
/obj/item/weapon/storage/fancy/donut_box
/obj/item/storage/fancy/donut_box
icon = 'icons/obj/food/food.dmi'
icon_state = "donutbox6"
icon_type = "donut"
name = "donut box"
storage_slots = 6
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut)
can_hold = list(/obj/item/reagent_containers/food/snacks/donut)
/obj/item/weapon/storage/fancy/donut_box/New()
/obj/item/storage/fancy/donut_box/New()
..()
for(var/i = 1 to storage_slots)
new /obj/item/weapon/reagent_containers/food/snacks/donut(src)
new /obj/item/reagent_containers/food/snacks/donut(src)
/*
* Egg Box
*/
/obj/item/weapon/storage/fancy/egg_box
/obj/item/storage/fancy/egg_box
icon = 'icons/obj/food/food.dmi'
icon_state = "eggbox"
icon_type = "egg"
name = "egg box"
storage_slots = 12
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/egg)
can_hold = list(/obj/item/reagent_containers/food/snacks/egg)
/obj/item/weapon/storage/fancy/egg_box/New()
/obj/item/storage/fancy/egg_box/New()
..()
for(var/i=1; i <= storage_slots; i++)
new /obj/item/weapon/reagent_containers/food/snacks/egg(src)
new /obj/item/reagent_containers/food/snacks/egg(src)
return
/*
* Candle Box
*/
/obj/item/weapon/storage/fancy/candle_box
/obj/item/storage/fancy/candle_box
name = "Candle pack"
desc = "A pack of red candles."
icon = 'icons/obj/candle.dmi'
@@ -90,17 +90,17 @@
slot_flags = SLOT_BELT
/obj/item/weapon/storage/fancy/candle_box/full/New()
/obj/item/storage/fancy/candle_box/full/New()
..()
for(var/i=1; i <= storage_slots; i++)
new /obj/item/candle(src)
return
/obj/item/weapon/storage/fancy/candle_box/eternal
/obj/item/storage/fancy/candle_box/eternal
name = "Eternal Candle pack"
desc = "A pack of red candles made with a special wax."
/obj/item/weapon/storage/fancy/candle_box/eternal/New()
/obj/item/storage/fancy/candle_box/eternal/New()
..()
for(var/i=1; i <= storage_slots; i++)
new /obj/item/candle/eternal(src)
@@ -110,7 +110,7 @@
* Crayon Box
*/
/obj/item/weapon/storage/fancy/crayons
/obj/item/storage/fancy/crayons
name = "box of crayons"
desc = "A box of crayons for all your rune drawing needs."
icon = 'icons/obj/crayons.dmi'
@@ -122,7 +122,7 @@
/obj/item/toy/crayon
)
/obj/item/weapon/storage/fancy/crayons/New()
/obj/item/storage/fancy/crayons/New()
..()
new /obj/item/toy/crayon/red(src)
new /obj/item/toy/crayon/orange(src)
@@ -132,13 +132,13 @@
new /obj/item/toy/crayon/purple(src)
update_icon()
/obj/item/weapon/storage/fancy/crayons/update_icon()
/obj/item/storage/fancy/crayons/update_icon()
overlays = list() //resets list
overlays += image('icons/obj/crayons.dmi',"crayonbox")
for(var/obj/item/toy/crayon/crayon in contents)
overlays += image('icons/obj/crayons.dmi',crayon.colourName)
/obj/item/weapon/storage/fancy/crayons/attackby(obj/item/W as obj, mob/user as mob, params)
/obj/item/storage/fancy/crayons/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/toy/crayon))
switch(W:colourName)
if("mime")
@@ -152,7 +152,7 @@
////////////
//CIG PACK//
////////////
/obj/item/weapon/storage/fancy/cigarettes
/obj/item/storage/fancy/cigarettes
name = "cigarette packet"
desc = "The most popular brand of Space Cigarettes, sponsors of the Space Olympics."
icon = 'icons/obj/cigarettes.dmi'
@@ -164,17 +164,17 @@
storage_slots = 6
max_combined_w_class = 6
can_hold = list(/obj/item/clothing/mask/cigarette,
/obj/item/weapon/lighter,
/obj/item/weapon/match)
/obj/item/lighter,
/obj/item/match)
cant_hold = list(/obj/item/clothing/mask/cigarette/cigar,
/obj/item/clothing/mask/cigarette/pipe,
/obj/item/weapon/lighter/zippo)
/obj/item/lighter/zippo)
icon_type = "cigarette"
var/list/unlaced_cigarettes = list() // Cigarettes that haven't received reagents yet
var/default_reagents = list("nicotine" = 15) // List of reagents to pre-generate for each cigarette
var/cigarette_type = /obj/item/clothing/mask/cigarette
/obj/item/weapon/storage/fancy/cigarettes/New()
/obj/item/storage/fancy/cigarettes/New()
..()
create_reagents(30 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one
reagents.set_reacting(FALSE)
@@ -185,26 +185,26 @@
reagents.add_reagent(R, default_reagents[R])
/obj/item/weapon/storage/fancy/cigarettes/Destroy()
/obj/item/storage/fancy/cigarettes/Destroy()
QDEL_NULL(reagents)
return ..()
/obj/item/weapon/storage/fancy/cigarettes/update_icon()
/obj/item/storage/fancy/cigarettes/update_icon()
icon_state = "[initial(icon_state)][contents.len]"
return
/obj/item/weapon/storage/fancy/cigarettes/proc/lace_cigarette(var/obj/item/clothing/mask/cigarette/C as obj)
/obj/item/storage/fancy/cigarettes/proc/lace_cigarette(var/obj/item/clothing/mask/cigarette/C as obj)
if(istype(C) && (C in unlaced_cigarettes)) // Only transfer reagents to each cigarette once
reagents.trans_to(C, (reagents.total_volume/unlaced_cigarettes.len))
unlaced_cigarettes -= C
reagents.maximum_volume = 30 * unlaced_cigarettes.len
/obj/item/weapon/storage/fancy/cigarettes/remove_from_storage(obj/item/W as obj, atom/new_location)
/obj/item/storage/fancy/cigarettes/remove_from_storage(obj/item/W as obj, atom/new_location)
lace_cigarette(W)
..()
/obj/item/weapon/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
/obj/item/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
if(!istype(M, /mob))
return
@@ -225,15 +225,15 @@
else
..()
/obj/item/weapon/storage/fancy/cigarettes/can_be_inserted(obj/item/W as obj, stop_messages = 0)
if(istype(W, /obj/item/weapon/match))
var/obj/item/weapon/match/M = W
/obj/item/storage/fancy/cigarettes/can_be_inserted(obj/item/W as obj, stop_messages = 0)
if(istype(W, /obj/item/match))
var/obj/item/match/M = W
if(M.lit == 1)
if(!stop_messages)
to_chat(usr, "<span class='notice'>Putting a lit [W] in [src] probably isn't a good idea.</span>")
return 0
if(istype(W, /obj/item/weapon/lighter))
var/obj/item/weapon/lighter/L = W
if(istype(W, /obj/item/lighter))
var/obj/item/lighter/L = W
if(L.lit == 1)
if(!stop_messages)
to_chat(usr, "<span class='notice'>Putting [W] in [src] while lit probably isn't a good idea.</span>")
@@ -241,70 +241,70 @@
//if we get this far, handle the insertion checks as normal
.=..()
/obj/item/weapon/storage/fancy/cigarettes/dromedaryco
/obj/item/storage/fancy/cigarettes/dromedaryco
name = "\improper DromedaryCo packet"
desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\""
icon_state = "Dpacket"
item_state = "cigpacket"
/obj/item/weapon/storage/fancy/cigarettes/syndicate
/obj/item/storage/fancy/cigarettes/syndicate
name = "\improper Syndicate Cigarettes"
desc = "A packet of six evil-looking cigarettes, A label on the packaging reads, \"Donk Co\""
icon_state = "robustpacket"
item_state = "cigpacket"
/obj/item/weapon/storage/fancy/cigarettes/syndicate/New()
/obj/item/storage/fancy/cigarettes/syndicate/New()
..()
var/new_name = pick("evil", "suspicious", "ominous", "donk-flavored", "robust", "sneaky")
name = "[new_name] cigarette packet"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate
/obj/item/storage/fancy/cigarettes/cigpack_syndicate
name = "cigarette packet"
desc = "An obscure brand of cigarettes."
icon_state = "syndiepacket"
item_state = "cigpacket"
default_reagents = list("nicotine" = 15, "omnizine" = 15)
/obj/item/weapon/storage/fancy/cigarettes/cigpack_med
/obj/item/storage/fancy/cigarettes/cigpack_med
name = "Medical Marijuana Packet"
desc = "A prescription packet containing six marijuana cigarettes."
icon_state = "medpacket"
item_state = "cigpacket"
default_reagents = list("thc" = 15)
/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift
/obj/item/storage/fancy/cigarettes/cigpack_uplift
name = "\improper Uplift Smooth packet"
desc = "Your favorite brand, now menthol flavored."
icon_state = "upliftpacket"
item_state = "cigpacket"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust
/obj/item/storage/fancy/cigarettes/cigpack_robust
name = "\improper Robust packet"
desc = "Smoked by the robust."
icon_state = "robustpacket"
item_state = "cigpacket"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold
/obj/item/storage/fancy/cigarettes/cigpack_robustgold
name = "\improper Robust Gold packet"
desc = "Smoked by the truly robust."
icon_state = "robustgpacket"
item_state = "cigpacket"
default_reagents = list("nicotine" = 15, "gold" = 1)
/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp
/obj/item/storage/fancy/cigarettes/cigpack_carp
name = "\improper Carp Classic packet"
desc = "Since 2313."
icon_state = "carppacket"
item_state = "cigpacket"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori
/obj/item/storage/fancy/cigarettes/cigpack_midori
name = "\improper Midori Tabako packet"
desc = "You can't understand the runes, but the packet smells funny."
icon_state = "midoripacket"
item_state = "cigpacket"
/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims
/obj/item/storage/fancy/cigarettes/cigpack_shadyjims
name ="\improper Shady Jim's Super Slims"
desc = "Is your weight slowing you down? Having trouble running away from gravitational singularities? Can't stop stuffing your mouth? Smoke Shady Jim's Super Slims and watch all that fat burn away. Guaranteed results!"
icon_state = "shadyjimpacket"
@@ -315,14 +315,14 @@
"atrazine" = 1,
"toxin" = 1.5)
/obj/item/weapon/storage/fancy/cigarettes/cigpack_random
/obj/item/storage/fancy/cigarettes/cigpack_random
name ="\improper Embellished Enigma packet"
desc = "For the true connoisseur of exotic flavors."
icon_state = "shadyjimpacket"
item_state = "cigpacket"
cigarette_type = /obj/item/clothing/mask/cigarette/random
/obj/item/weapon/storage/fancy/rollingpapers
/obj/item/storage/fancy/rollingpapers
name = "rolling paper pack"
desc = "A pack of Nanotrasen brand rolling papers."
w_class = WEIGHT_CLASS_TINY
@@ -330,14 +330,14 @@
icon_state = "cig_paper_pack"
storage_slots = 10
icon_type = "rolling paper"
can_hold = list(/obj/item/weapon/rollingpaper)
can_hold = list(/obj/item/rollingpaper)
/obj/item/weapon/storage/fancy/rollingpapers/New()
/obj/item/storage/fancy/rollingpapers/New()
..()
for(var/i in 1 to storage_slots)
new /obj/item/weapon/rollingpaper(src)
new /obj/item/rollingpaper(src)
/obj/item/weapon/storage/fancy/rollingpapers/update_icon()
/obj/item/storage/fancy/rollingpapers/update_icon()
overlays.Cut()
if(!contents.len)
overlays += "[icon_state]_empty"
@@ -346,38 +346,38 @@
* Vial Box
*/
/obj/item/weapon/storage/fancy/vials
/obj/item/storage/fancy/vials
icon = 'icons/obj/vialbox.dmi'
icon_state = "vialbox6"
icon_type = "vial"
name = "vial storage box"
storage_slots = 6
can_hold = list(/obj/item/weapon/reagent_containers/glass/beaker/vial)
can_hold = list(/obj/item/reagent_containers/glass/beaker/vial)
/obj/item/weapon/storage/fancy/vials/New()
/obj/item/storage/fancy/vials/New()
..()
for(var/i=1; i <= storage_slots; i++)
new /obj/item/weapon/reagent_containers/glass/beaker/vial(src)
new /obj/item/reagent_containers/glass/beaker/vial(src)
return
/obj/item/weapon/storage/lockbox/vials
/obj/item/storage/lockbox/vials
name = "secure vial storage box"
desc = "A locked box for keeping things away from children."
icon = 'icons/obj/vialbox.dmi'
icon_state = "vialbox0"
item_state = "syringe_kit"
max_w_class = WEIGHT_CLASS_NORMAL
can_hold = list(/obj/item/weapon/reagent_containers/glass/beaker/vial)
can_hold = list(/obj/item/reagent_containers/glass/beaker/vial)
max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item.
storage_slots = 6
req_access = list(access_virology)
/obj/item/weapon/storage/lockbox/vials/New()
/obj/item/storage/lockbox/vials/New()
..()
update_icon()
/obj/item/weapon/storage/lockbox/vials/update_icon(var/itemremoved = 0)
/obj/item/storage/lockbox/vials/update_icon(var/itemremoved = 0)
var/total_contents = src.contents.len - itemremoved
src.icon_state = "vialbox[total_contents]"
src.overlays.Cut()
@@ -389,7 +389,7 @@
overlays += image(icon, src, "ledb")
return
/obj/item/weapon/storage/lockbox/vials/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
/obj/item/storage/lockbox/vials/attackby(obj/item/W as obj, mob/user as mob, params)
..()
update_icon()
@@ -397,19 +397,19 @@
///Aquatic Starter Kit
/obj/item/weapon/storage/firstaid/aquatic_kit
/obj/item/storage/firstaid/aquatic_kit
name = "aquatic starter kit"
desc = "It's a starter kit box for an aquarium."
icon_state = "AquaticKit"
throw_speed = 2
throw_range = 8
/obj/item/weapon/storage/firstaid/aquatic_kit/full
/obj/item/storage/firstaid/aquatic_kit/full
desc = "It's a starter kit for an acquarium; includes 1 tank brush, 1 egg scoop, 1 fish net, and 1 container of fish food."
/obj/item/weapon/storage/firstaid/aquatic_kit/full/New()
/obj/item/storage/firstaid/aquatic_kit/full/New()
..()
new /obj/item/weapon/egg_scoop(src)
new /obj/item/weapon/fish_net(src)
new /obj/item/weapon/tank_brush(src)
new /obj/item/weapon/fishfood(src)
new /obj/item/egg_scoop(src)
new /obj/item/fish_net(src)
new /obj/item/tank_brush(src)
new /obj/item/fishfood(src)
@@ -8,7 +8,7 @@
/*
* First Aid Kits
*/
/obj/item/weapon/storage/firstaid
/obj/item/storage/firstaid
name = "first-aid kit"
desc = "It's an emergency medical kit for those serious boo-boos."
icon_state = "firstaid"
@@ -23,7 +23,7 @@
var/treatment_virus = "spaceacillin"
/obj/item/weapon/storage/firstaid/fire
/obj/item/storage/firstaid/fire
name = "fire first-aid kit"
desc = "A medical kit that contains several medical patches and pills for treating burns. Contains one epinephrine syringe for emergency use and a health analyzer."
icon_state = "ointment"
@@ -35,35 +35,35 @@
icon_state = pick("ointment","firefirstaid")
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/device/healthanalyzer( src )
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
new /obj/item/weapon/reagent_containers/food/pill/salicylic( src )
new /obj/item/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/healthanalyzer( src )
new /obj/item/reagent_containers/hypospray/autoinjector( src )
new /obj/item/reagent_containers/food/pill/salicylic( src )
return
/obj/item/weapon/storage/firstaid/fire/empty
/obj/item/storage/firstaid/fire/empty
empty = 1
/obj/item/weapon/storage/firstaid/regular
/obj/item/storage/firstaid/regular
desc = "A general medical kit that contains medical patches for both brute damage and burn damage. Also contains an epinephrine syringe for emergency use and a health analyzer"
icon_state = "firstaid"
New()
..()
if(empty) return
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic( src )
new /obj/item/weapon/reagent_containers/food/pill/salicylic( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/device/healthanalyzer( src )
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
new /obj/item/reagent_containers/food/pill/patch/styptic( src )
new /obj/item/reagent_containers/food/pill/patch/styptic( src )
new /obj/item/reagent_containers/food/pill/salicylic( src )
new /obj/item/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/healthanalyzer( src )
new /obj/item/reagent_containers/hypospray/autoinjector( src )
return
/obj/item/weapon/storage/firstaid/toxin
/obj/item/storage/firstaid/toxin
name = "toxin first aid kit"
desc = "A medical kit designed to counter poisoning by common toxins. Contains three pills and syringes, and a health analyzer to determine the health of the patient."
icon_state = "antitoxin"
@@ -75,19 +75,19 @@
icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3")
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/device/healthanalyzer( src )
new /obj/item/reagent_containers/syringe/charcoal( src )
new /obj/item/reagent_containers/syringe/charcoal( src )
new /obj/item/reagent_containers/syringe/charcoal( src )
new /obj/item/reagent_containers/food/pill/charcoal( src )
new /obj/item/reagent_containers/food/pill/charcoal( src )
new /obj/item/reagent_containers/food/pill/charcoal( src )
new /obj/item/healthanalyzer( src )
return
/obj/item/weapon/storage/firstaid/toxin/empty
/obj/item/storage/firstaid/toxin/empty
empty = 1
/obj/item/weapon/storage/firstaid/o2
/obj/item/storage/firstaid/o2
name = "oxygen deprivation first aid kit"
desc = "A first aid kit that contains four pills of salbutamol, which is able to counter injuries caused by suffocation. Also contains a health analyzer to determine the health of the patient."
icon_state = "o2"
@@ -96,17 +96,17 @@
New()
..()
if(empty) return
new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
new /obj/item/device/healthanalyzer( src )
new /obj/item/reagent_containers/food/pill/salbutamol( src )
new /obj/item/reagent_containers/food/pill/salbutamol( src )
new /obj/item/reagent_containers/food/pill/salbutamol( src )
new /obj/item/reagent_containers/food/pill/salbutamol( src )
new /obj/item/healthanalyzer( src )
return
/obj/item/weapon/storage/firstaid/o2/empty
/obj/item/storage/firstaid/o2/empty
empty = 1
/obj/item/weapon/storage/firstaid/brute
/obj/item/storage/firstaid/brute
name = "brute trauma treatment kit"
desc = "A medical kit that contains several medical patches and pills for treating brute injuries. Contains one epinephrine syringe for emergency use and a health analyzer."
icon_state = "brute"
@@ -118,25 +118,25 @@
icon_state = pick("brute","brute2")
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/device/healthanalyzer(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector(src)
new /obj/item/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/healthanalyzer(src)
new /obj/item/reagent_containers/hypospray/autoinjector(src)
new /obj/item/stack/medical/bruise_pack(src)
return
/obj/item/weapon/storage/firstaid/brute/empty
/obj/item/storage/firstaid/brute/empty
empty = 1
/obj/item/weapon/storage/firstaid/adv
/obj/item/storage/firstaid/adv
name = "advanced first-aid kit"
desc = "Contains advanced medical treatments."
icon_state = "advfirstaid"
item_state = "firstaid-advanced"
/obj/item/weapon/storage/firstaid/adv/New()
/obj/item/storage/firstaid/adv/New()
..()
if(empty)
return
@@ -145,13 +145,13 @@
new /obj/item/stack/medical/bruise_pack/advanced(src)
new /obj/item/stack/medical/ointment/advanced(src)
new /obj/item/stack/medical/ointment/advanced(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector(src)
new /obj/item/device/healthanalyzer(src)
new /obj/item/reagent_containers/hypospray/autoinjector(src)
new /obj/item/healthanalyzer(src)
/obj/item/weapon/storage/firstaid/adv/empty
/obj/item/storage/firstaid/adv/empty
empty = 1
/obj/item/weapon/storage/firstaid/tactical
/obj/item/storage/firstaid/tactical
name = "first-aid kit"
icon_state = "bezerk"
desc = "I hope you've got insurance."
@@ -162,55 +162,55 @@
treatment_tox = "charcoal"
req_one_access =list(access_syndicate)
/obj/item/weapon/storage/firstaid/tactical/New()
/obj/item/storage/firstaid/tactical/New()
..()
if(empty) return
new /obj/item/weapon/reagent_containers/hypospray/combat(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/synthflesh(src) // Because you ain't got no time to look at what damage dey taking yo
new /obj/item/weapon/reagent_containers/food/pill/patch/synthflesh(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/synthflesh(src)
new /obj/item/weapon/reagent_containers/food/pill/patch/synthflesh(src)
new /obj/item/weapon/defibrillator/compact/combat/loaded(src)
new /obj/item/reagent_containers/hypospray/combat(src)
new /obj/item/reagent_containers/food/pill/patch/synthflesh(src) // Because you ain't got no time to look at what damage dey taking yo
new /obj/item/reagent_containers/food/pill/patch/synthflesh(src)
new /obj/item/reagent_containers/food/pill/patch/synthflesh(src)
new /obj/item/reagent_containers/food/pill/patch/synthflesh(src)
new /obj/item/defibrillator/compact/combat/loaded(src)
new /obj/item/clothing/glasses/hud/health/night(src)
return
/obj/item/weapon/storage/firstaid/tactical/empty
/obj/item/storage/firstaid/tactical/empty
empty =1
/obj/item/weapon/storage/firstaid/surgery
/obj/item/storage/firstaid/surgery
name = "field surgery kit"
icon_state = "duffel-med"
desc = "A kit for surgery in the field."
max_w_class = WEIGHT_CLASS_BULKY
max_combined_w_class = 21
storage_slots = 10
can_hold = list(/obj/item/roller,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel, /obj/item/weapon/scalpel, /obj/item/weapon/hemostat,
/obj/item/weapon/cautery, /obj/item/weapon/retractor, /obj/item/weapon/FixOVein, /obj/item/weapon/surgicaldrill, /obj/item/weapon/circular_saw)
can_hold = list(/obj/item/roller,/obj/item/bonesetter,/obj/item/bonegel, /obj/item/scalpel, /obj/item/hemostat,
/obj/item/cautery, /obj/item/retractor, /obj/item/FixOVein, /obj/item/surgicaldrill, /obj/item/circular_saw)
/obj/item/weapon/storage/firstaid/surgery/New()
/obj/item/storage/firstaid/surgery/New()
..()
new /obj/item/roller(src)
new /obj/item/weapon/bonesetter(src)
new /obj/item/weapon/bonegel(src)
new /obj/item/weapon/scalpel(src)
new /obj/item/weapon/hemostat(src)
new /obj/item/weapon/cautery(src)
new /obj/item/weapon/retractor(src)
new /obj/item/weapon/FixOVein(src)
new /obj/item/weapon/surgicaldrill(src)
new /obj/item/weapon/circular_saw(src)
new /obj/item/bonesetter(src)
new /obj/item/bonegel(src)
new /obj/item/scalpel(src)
new /obj/item/hemostat(src)
new /obj/item/cautery(src)
new /obj/item/retractor(src)
new /obj/item/FixOVein(src)
new /obj/item/surgicaldrill(src)
new /obj/item/circular_saw(src)
/*
* Pill Bottles
*/
/obj/item/weapon/storage/pill_bottle
/obj/item/storage/pill_bottle
name = "pill bottle"
desc = "It's an airtight container for storing medication."
icon_state = "pill_canister"
icon = 'icons/obj/chemical.dmi'
item_state = "contsolid"
w_class = WEIGHT_CLASS_SMALL
can_hold = list(/obj/item/weapon/reagent_containers/food/pill, /obj/item/weapon/dice, /obj/item/weapon/paper)
can_hold = list(/obj/item/reagent_containers/food/pill, /obj/item/dice, /obj/item/paper)
allow_quick_gather = 1
use_to_pickup = 1
storage_slots = 14
@@ -218,11 +218,11 @@
var/base_name = ""
var/label_text = ""
/obj/item/weapon/storage/pill_bottle/New()
/obj/item/storage/pill_bottle/New()
..()
base_name = name
/obj/item/weapon/storage/pill_bottle/MouseDrop(obj/over_object as obj) //Quick pillbottle fix. -Agouri
/obj/item/storage/pill_bottle/MouseDrop(obj/over_object as obj) //Quick pillbottle fix. -Agouri
if(ishuman(usr)) //Can monkeys even place items in the pocket slots? Leaving this in just in case~
var/mob/M = usr
if(!( istype(over_object, /obj/screen) ))
@@ -244,8 +244,8 @@
return
return
/obj/item/weapon/storage/pill_bottle/attackby(var/obj/item/I, mob/user as mob, params)
if(istype(I, /obj/item/weapon/pen) || istype(I, /obj/item/device/flashlight/pen))
/obj/item/storage/pill_bottle/attackby(var/obj/item/I, mob/user as mob, params)
if(istype(I, /obj/item/pen) || istype(I, /obj/item/flashlight/pen))
var/tmp_label = sanitize(input(user, "Enter a label for [name]","Label",label_text))
if(length(tmp_label) > MAX_NAME_LEN)
to_chat(user, "<span class='warning'>The label can be at most [MAX_NAME_LEN] characters long.</span>")
@@ -256,37 +256,37 @@
else
..()
/obj/item/weapon/storage/pill_bottle/proc/update_name_label()
/obj/item/storage/pill_bottle/proc/update_name_label()
if(label_text == "")
name = base_name
else
name = "[base_name] ([label_text])"
/obj/item/weapon/storage/pill_bottle/charcoal
/obj/item/storage/pill_bottle/charcoal
name = "Pill bottle (Charcoal)"
desc = "Contains pills used to counter toxins."
New()
..()
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/reagent_containers/food/pill/charcoal( src )
new /obj/item/reagent_containers/food/pill/charcoal( src )
new /obj/item/reagent_containers/food/pill/charcoal( src )
new /obj/item/reagent_containers/food/pill/charcoal( src )
new /obj/item/reagent_containers/food/pill/charcoal( src )
new /obj/item/reagent_containers/food/pill/charcoal( src )
new /obj/item/reagent_containers/food/pill/charcoal( src )
/obj/item/weapon/storage/pill_bottle/painkillers
/obj/item/storage/pill_bottle/painkillers
name = "Pill Bottle (Salicylic Acid)"
desc = "Contains various pills for minor pain relief."
/obj/item/weapon/storage/pill_bottle/painkillers/New()
/obj/item/storage/pill_bottle/painkillers/New()
..()
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
new /obj/item/reagent_containers/food/pill/salicylic(src)
new /obj/item/reagent_containers/food/pill/salicylic(src)
new /obj/item/reagent_containers/food/pill/salicylic(src)
new /obj/item/reagent_containers/food/pill/salicylic(src)
new /obj/item/reagent_containers/food/pill/salicylic(src)
new /obj/item/reagent_containers/food/pill/salicylic(src)
new /obj/item/reagent_containers/food/pill/salicylic(src)
new /obj/item/reagent_containers/food/pill/salicylic(src)
@@ -1,23 +1,23 @@
//A storage item intended to be used by other items to provide storage functionality.
//Types that use this should consider overriding emp_act() and hear_talk(), unless they shield their contents somehow.
/obj/item/weapon/storage/internal
/obj/item/storage/internal
var/obj/item/master_item
/obj/item/weapon/storage/internal/New(obj/item/MI)
/obj/item/storage/internal/New(obj/item/MI)
master_item = MI
loc = master_item
name = master_item.name
verbs -= /obj/item/verb/verb_pickup //make sure this is never picked up.
..()
/obj/item/weapon/storage/internal/Destroy()
/obj/item/storage/internal/Destroy()
master_item = null
return ..()
/obj/item/weapon/storage/internal/attack_hand()
/obj/item/storage/internal/attack_hand()
return //make sure this is never picked up
/obj/item/weapon/storage/internal/mob_can_equip()
/obj/item/storage/internal/mob_can_equip()
return 0 //make sure this is never picked up
//Helper procs to cleanly implement internal storages - storage items that provide inventory slots for other items.
@@ -29,7 +29,7 @@
//items that use internal storage have the option of calling this to emulate default storage MouseDrop behaviour.
//returns 1 if the master item's parent's MouseDrop() should be called, 0 otherwise. It's strange, but no other way of
//doing it without the ability to call another proc's parent, really.
/obj/item/weapon/storage/internal/proc/handle_mousedrop(mob/user as mob, obj/over_object as obj)
/obj/item/storage/internal/proc/handle_mousedrop(mob/user as mob, obj/over_object as obj)
if(ishuman(user)) //so monkeys can take off their backpacks -- Urist
if(istype(user.loc,/obj/mecha)) // stops inventory actions in a mech
@@ -62,7 +62,7 @@
//items that use internal storage have the option of calling this to emulate default storage attack_hand behaviour.
//returns 1 if the master item's parent's attack_hand() should be called, 0 otherwise.
//It's strange, but no other way of doing it without the ability to call another proc's parent, really.
/obj/item/weapon/storage/internal/proc/handle_attack_hand(mob/user as mob)
/obj/item/storage/internal/proc/handle_attack_hand(mob/user as mob)
if(ishuman(user))
var/mob/living/carbon/human/H = user
@@ -85,5 +85,5 @@
src.close(M)
return 1
/obj/item/weapon/storage/internal/Adjacent(var/atom/neighbor)
/obj/item/storage/internal/Adjacent(var/atom/neighbor)
return master_item.Adjacent(neighbor)
@@ -1,4 +1,4 @@
/obj/item/weapon/storage/lockbox
/obj/item/storage/lockbox
name = "lockbox"
desc = "A locked box."
icon_state = "lockbox+l"
@@ -14,8 +14,8 @@
var/icon_closed = "lockbox"
var/icon_broken = "lockbox+b"
/obj/item/weapon/storage/lockbox/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))
/obj/item/storage/lockbox/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/card/id) || istype(W, /obj/item/pda))
if(broken)
to_chat(user, "<span class='warning'>It appears to be broken.</span>")
return
@@ -33,7 +33,7 @@
else
to_chat(user, "<span class='warning'>Access denied.</span>")
return
else if((istype(W, /obj/item/weapon/card/emag) || (istype(W, /obj/item/weapon/melee/energy/blade)) && !broken))
else if((istype(W, /obj/item/card/emag) || (istype(W, /obj/item/melee/energy/blade)) && !broken))
emag_act(user)
return
if(!locked)
@@ -43,21 +43,21 @@
return
/obj/item/weapon/storage/lockbox/show_to(mob/user as mob)
/obj/item/storage/lockbox/show_to(mob/user as mob)
if(locked)
to_chat(user, "<span class='warning'>It's locked!</span>")
else
..()
return
/obj/item/weapon/storage/lockbox/can_be_inserted(obj/item/W as obj, stop_messages = 0)
/obj/item/storage/lockbox/can_be_inserted(obj/item/W as obj, stop_messages = 0)
if(!locked)
return ..()
if(!stop_messages)
to_chat(usr, "<span class='notice'>[src] is locked!</span>")
return 0
/obj/item/weapon/storage/lockbox/emag_act(user as mob)
/obj/item/storage/lockbox/emag_act(user as mob)
if(!broken)
broken = 1
locked = 0
@@ -67,38 +67,38 @@
origin_tech = null //wipe out any origin tech if it's unlocked in any way so you can't double-dip tech levels at R&D.
return
/obj/item/weapon/storage/lockbox/hear_talk(mob/living/M as mob, msg)
/obj/item/storage/lockbox/hear_talk(mob/living/M as mob, msg)
/obj/item/weapon/storage/lockbox/hear_message(mob/living/M as mob, msg)
/obj/item/storage/lockbox/hear_message(mob/living/M as mob, msg)
/obj/item/weapon/storage/lockbox/large
/obj/item/storage/lockbox/large
name = "Large lockbox"
desc = "A large lockbox"
max_w_class = WEIGHT_CLASS_BULKY
max_combined_w_class = 4 //The sum of the w_classes of all the items in this storage item.
storage_slots = 1
/obj/item/weapon/storage/lockbox/mindshield
/obj/item/storage/lockbox/mindshield
name = "Lockbox (Mindshield Implants)"
req_access = list(access_security)
/obj/item/weapon/storage/lockbox/mindshield/New()
/obj/item/storage/lockbox/mindshield/New()
..()
new /obj/item/weapon/implantcase/mindshield(src)
new /obj/item/weapon/implantcase/mindshield(src)
new /obj/item/weapon/implantcase/mindshield(src)
new /obj/item/weapon/implanter/mindshield(src)
new /obj/item/implantcase/mindshield(src)
new /obj/item/implantcase/mindshield(src)
new /obj/item/implantcase/mindshield(src)
new /obj/item/implanter/mindshield(src)
/obj/item/weapon/storage/lockbox/clusterbang
/obj/item/storage/lockbox/clusterbang
name = "lockbox (clusterbang)"
desc = "You have a bad feeling about opening this."
req_access = list(access_security)
/obj/item/weapon/storage/lockbox/clusterbang/New()
/obj/item/storage/lockbox/clusterbang/New()
..()
new /obj/item/weapon/grenade/clusterbuster(src)
new /obj/item/grenade/clusterbuster(src)
/obj/item/weapon/storage/lockbox/medal
/obj/item/storage/lockbox/medal
name = "medal box"
desc = "A locked box used to store medals of honor."
icon_state = "medalbox+l"
@@ -112,7 +112,7 @@
icon_closed = "medalbox"
icon_broken = "medalbox+b"
/obj/item/weapon/storage/lockbox/medal/New()
/obj/item/storage/lockbox/medal/New()
..()
new /obj/item/clothing/accessory/medal/gold/heroism(src)
new /obj/item/clothing/accessory/medal/silver/security(src)
@@ -1,5 +1,5 @@
/*
* Absorbs /obj/item/weapon/secstorage.
* Absorbs /obj/item/secstorage.
* Reimplements it only slightly to use existing storage functionality.
*
* Contains:
@@ -10,7 +10,7 @@
// -----------------------------
// Generic Item
// -----------------------------
/obj/item/weapon/storage/secure
/obj/item/storage/secure
name = "secstorage"
var/icon_locking = "secureb"
var/icon_sparking = "securespark"
@@ -27,22 +27,22 @@
max_w_class = WEIGHT_CLASS_SMALL
max_combined_w_class = 14
/obj/item/weapon/storage/secure/examine(mob/user)
/obj/item/storage/secure/examine(mob/user)
if(..(user, 1))
to_chat(user, text("The service panel is [open ? "open" : "closed"]."))
/obj/item/weapon/storage/secure/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
/obj/item/storage/secure/attackby(obj/item/W as obj, mob/user as mob, params)
if(locked)
if((istype(W, /obj/item/weapon/melee/energy/blade)) && (!emagged))
if((istype(W, /obj/item/melee/energy/blade)) && (!emagged))
emag_act(user, W)
if(istype(W, /obj/item/weapon/screwdriver))
if(istype(W, /obj/item/screwdriver))
if(do_after(user, 20 * W.toolspeed, target = src))
open = !open
user.show_message("<span class='notice'>You [open ? "open" : "close"] the service panel.</span>", 1)
return
if((istype(W, /obj/item/device/multitool)) && (open == 1) && (!l_hacking))
if((istype(W, /obj/item/multitool)) && (open == 1) && (!l_hacking))
user.show_message("<span class='danger'>Now attempting to reset internal memory, please hold.</span>", 1)
l_hacking = 1
if(do_after(usr, 100 * W.toolspeed, target = src))
@@ -65,7 +65,7 @@
return ..()
/obj/item/weapon/storage/secure/emag_act(user as mob, weapon as obj)
/obj/item/storage/secure/emag_act(user as mob, weapon as obj)
if(!emagged)
emagged = 1
overlays += image('icons/obj/storage.dmi', icon_sparking)
@@ -73,7 +73,7 @@
overlays = null
overlays += image('icons/obj/storage.dmi', icon_locking)
locked = 0
if(istype(weapon, /obj/item/weapon/melee/energy/blade))
if(istype(weapon, /obj/item/melee/energy/blade))
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
spark_system.set_up(5, 0, src.loc)
spark_system.start()
@@ -85,14 +85,14 @@
return
/obj/item/weapon/storage/secure/MouseDrop(over_object, src_location, over_location)
/obj/item/storage/secure/MouseDrop(over_object, src_location, over_location)
if(locked)
add_fingerprint(usr)
to_chat(usr, "<span class='warning'>It's locked!</span>")
return 0
..()
/obj/item/weapon/storage/secure/attack_self(mob/user as mob)
/obj/item/storage/secure/attack_self(mob/user as mob)
user.set_machine(src)
var/dat = text("<TT><B>[]</B><BR>\n\nLock Status: []", src, (locked ? "LOCKED" : "UNLOCKED"))
var/message = "Code"
@@ -120,7 +120,7 @@
<A href='?src=[UID()];type=E'>E</A><BR>\n</TT>"}
user << browse(dat, "window=caselock;size=300x280")
/obj/item/weapon/storage/secure/Topic(href, href_list)
/obj/item/storage/secure/Topic(href, href_list)
..()
if(usr.incapacitated() || (get_dist(src, usr) > 1))
return
@@ -153,23 +153,23 @@
return
return
/obj/item/weapon/storage/secure/can_be_inserted(obj/item/W as obj, stop_messages = 0)
/obj/item/storage/secure/can_be_inserted(obj/item/W as obj, stop_messages = 0)
if(!locked)
return ..()
if(!stop_messages)
to_chat(usr, "<span class='notice'>[src] is locked!</span>")
return 0
/obj/item/weapon/storage/secure/hear_talk(mob/living/M as mob, msg)
/obj/item/storage/secure/hear_talk(mob/living/M as mob, msg)
return
/obj/item/weapon/storage/secure/hear_message(mob/living/M as mob, msg)
/obj/item/storage/secure/hear_message(mob/living/M as mob, msg)
return
// -----------------------------
// Secure Briefcase
// -----------------------------
/obj/item/weapon/storage/secure/briefcase
/obj/item/storage/secure/briefcase
name = "secure briefcase"
desc = "A large briefcase with a digital locking system."
icon = 'icons/obj/storage.dmi'
@@ -185,12 +185,12 @@
max_combined_w_class = 21
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
/obj/item/weapon/storage/secure/briefcase/New()
/obj/item/storage/secure/briefcase/New()
..()
handle_item_insertion(new /obj/item/weapon/paper, 1)
handle_item_insertion(new /obj/item/weapon/pen, 1)
handle_item_insertion(new /obj/item/paper, 1)
handle_item_insertion(new /obj/item/pen, 1)
/obj/item/weapon/storage/secure/briefcase/attack_hand(mob/user as mob)
/obj/item/storage/secure/briefcase/attack_hand(mob/user as mob)
if((loc == user) && (locked == 1))
to_chat(usr, "<span class='warning'>[src] is locked and cannot be opened!</span>")
else if((loc == user) && !locked)
@@ -208,27 +208,27 @@
return
//Syndie variant of Secure Briefcase. Contains space cash, slightly more robust.
/obj/item/weapon/storage/secure/briefcase/syndie
/obj/item/storage/secure/briefcase/syndie
force = 15
/obj/item/weapon/storage/secure/briefcase/syndie/New()
/obj/item/storage/secure/briefcase/syndie/New()
..()
for(var/i = 0, i < storage_slots - 2, i++)
handle_item_insertion(new /obj/item/stack/spacecash/c1000, 1)
/obj/item/weapon/storage/secure/briefcase/reaper/New()
/obj/item/storage/secure/briefcase/reaper/New()
..()
handle_item_insertion(new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow, 1)
handle_item_insertion(new /obj/item/weapon/gun/projectile/revolver/mateba, 1)
handle_item_insertion(new /obj/item/gun/energy/kinetic_accelerator/crossbow, 1)
handle_item_insertion(new /obj/item/gun/projectile/revolver/mateba, 1)
handle_item_insertion(new /obj/item/ammo_box/a357, 1)
handle_item_insertion(new /obj/item/weapon/grenade/plastic/c4, 1)
handle_item_insertion(new /obj/item/grenade/plastic/c4, 1)
// -----------------------------
// Secure Safe
// -----------------------------
/obj/item/weapon/storage/secure/safe
/obj/item/storage/secure/safe
name = "secure safe"
icon = 'icons/obj/storage.dmi'
icon_state = "safe"
@@ -240,12 +240,12 @@
max_w_class = 8
anchored = 1
density = 0
cant_hold = list(/obj/item/weapon/storage/secure/briefcase)
cant_hold = list(/obj/item/storage/secure/briefcase)
/obj/item/weapon/storage/secure/safe/New()
/obj/item/storage/secure/safe/New()
..()
handle_item_insertion(new /obj/item/weapon/paper, 1)
handle_item_insertion(new /obj/item/weapon/pen, 1)
handle_item_insertion(new /obj/item/paper, 1)
handle_item_insertion(new /obj/item/pen, 1)
/obj/item/weapon/storage/secure/safe/attack_hand(mob/user as mob)
/obj/item/storage/secure/safe/attack_hand(mob/user as mob)
return attack_self(user)
@@ -5,7 +5,7 @@
// -Sayu
/obj/item/weapon/storage
/obj/item/storage
name = "storage"
icon = 'icons/obj/storage.dmi'
w_class = WEIGHT_CLASS_NORMAL
@@ -24,7 +24,7 @@
var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile
var/use_sound = "rustle" //sound played when used. null for no sound.
/obj/item/weapon/storage/MouseDrop(obj/over_object as obj)
/obj/item/storage/MouseDrop(obj/over_object as obj)
if(ishuman(usr)) //so monkeys can take off their backpacks -- Urist
var/mob/M = usr
@@ -40,7 +40,7 @@
if((istype(over_object, /obj/structure/table) || istype(over_object, /turf/simulated/floor)) \
&& contents.len && loc == usr && !usr.stat && !usr.restrained() && usr.canmove && over_object.Adjacent(usr) \
&& !istype(src, /obj/item/weapon/storage/lockbox))
&& !istype(src, /obj/item/storage/lockbox))
var/turf/T = get_turf(over_object)
if(istype(over_object, /turf/simulated/floor))
if(get_turf(usr) != T)
@@ -83,23 +83,23 @@
return
/obj/item/weapon/storage/proc/return_inv()
/obj/item/storage/proc/return_inv()
var/list/L = list( )
L += src.contents
for(var/obj/item/weapon/storage/S in src)
for(var/obj/item/storage/S in src)
L += S.return_inv()
for(var/obj/item/weapon/gift/G in src)
for(var/obj/item/gift/G in src)
L += G.gift
if(istype(G.gift, /obj/item/weapon/storage))
if(istype(G.gift, /obj/item/storage))
L += G.gift:return_inv()
for(var/obj/item/weapon/folder/F in src)
for(var/obj/item/folder/F in src)
L += F.contents
return L
/obj/item/weapon/storage/proc/show_to(mob/user as mob)
/obj/item/storage/proc/show_to(mob/user as mob)
if(user.s_active != src)
for(var/obj/item/I in src)
if(I.on_found(user))
@@ -115,7 +115,7 @@
user.s_active = src
return
/obj/item/weapon/storage/proc/hide_from(mob/user as mob)
/obj/item/storage/proc/hide_from(mob/user as mob)
if(!user.client)
return
@@ -126,7 +126,7 @@
user.s_active = null
return
/obj/item/weapon/storage/proc/open(mob/user as mob)
/obj/item/storage/proc/open(mob/user as mob)
if(src.use_sound)
playsound(src.loc, src.use_sound, 50, 1, -5)
@@ -135,7 +135,7 @@
user.s_active.close(user)
show_to(user)
/obj/item/weapon/storage/proc/close(mob/user as mob)
/obj/item/storage/proc/close(mob/user as mob)
src.hide_from(user)
user.s_active = null
@@ -143,7 +143,7 @@
//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right.
//The numbers are calculated from the bottom-left The bottom-left slot being 1,1.
/obj/item/weapon/storage/proc/orient_objs(tx, ty, mx, my)
/obj/item/storage/proc/orient_objs(tx, ty, mx, my)
var/cx = tx
var/cy = ty
src.boxes.screen_loc = "[tx]:,[ty] to [mx],[my]"
@@ -159,7 +159,7 @@
return
//This proc draws out the inventory and places the items on it. It uses the standard position.
/obj/item/weapon/storage/proc/standard_orient_objs(var/rows, var/cols, var/list/obj/item/display_contents)
/obj/item/storage/proc/standard_orient_objs(var/rows, var/cols, var/list/obj/item/display_contents)
var/cx = 4
var/cy = 2+rows
src.boxes.screen_loc = "4:16,2:16 to [4+cols]:16,[2+rows]:16"
@@ -200,7 +200,7 @@
number = 1
//This proc determins the size of the inventory to be displayed. Please touch it only if you know what you're doing.
/obj/item/weapon/storage/proc/orient2hud(mob/user as mob)
/obj/item/storage/proc/orient2hud(mob/user as mob)
var/adjusted_contents = contents.len
@@ -230,7 +230,7 @@
//This proc return 1 if the item can be picked up and 0 if it can't.
//Set the stop_messages to stop it from printing messages
/obj/item/weapon/storage/proc/can_be_inserted(obj/item/W as obj, stop_messages = 0)
/obj/item/storage/proc/can_be_inserted(obj/item/W as obj, stop_messages = 0)
if(!istype(W) || (W.flags & ABSTRACT)) return //Not an item
if(src.loc == W)
@@ -265,8 +265,8 @@
to_chat(usr, "<span class='notice'>[src] is full, make some space.</span>")
return 0
if(W.w_class >= src.w_class && (istype(W, /obj/item/weapon/storage)))
if(!istype(src, /obj/item/weapon/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm.
if(W.w_class >= src.w_class && (istype(W, /obj/item/storage)))
if(!istype(src, /obj/item/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm.
if(!stop_messages)
to_chat(usr, "<span class='notice'>[src] cannot hold [W] as it's a storage item of the same size.</span>")
return 0 //To prevent the stacking of same sized storage items.
@@ -280,7 +280,7 @@
//This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted. That's done by can_be_inserted()
//The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once,
//such as when picking up all the items on a tile with one click.
/obj/item/weapon/storage/proc/handle_item_insertion(obj/item/W as obj, prevent_warning = 0)
/obj/item/storage/proc/handle_item_insertion(obj/item/W as obj, prevent_warning = 0)
if(!istype(W))
return 0
if(usr)
@@ -297,7 +297,7 @@
W.dropped(usr)
add_fingerprint(usr)
if(!prevent_warning && !istype(W, /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow))
if(!prevent_warning && !istype(W, /obj/item/gun/energy/kinetic_accelerator/crossbow))
for(var/mob/M in viewers(usr, null))
if(M == usr)
to_chat(usr, "<span class='notice'>You put the [W] into [src].</span>")
@@ -314,11 +314,11 @@
return 1
//Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target
/obj/item/weapon/storage/proc/remove_from_storage(obj/item/W as obj, atom/new_location, burn = 0)
/obj/item/storage/proc/remove_from_storage(obj/item/W as obj, atom/new_location, burn = 0)
if(!istype(W)) return 0
if(istype(src, /obj/item/weapon/storage/fancy))
var/obj/item/weapon/storage/fancy/F = src
if(istype(src, /obj/item/storage/fancy))
var/obj/item/storage/fancy/F = src
F.update_icon(1)
for(var/mob/M in range(1, src.loc))
@@ -352,12 +352,12 @@
W.fire_act()
return 1
/obj/item/weapon/storage/empty_object_contents(burn, loc)
/obj/item/storage/empty_object_contents(burn, loc)
for(var/obj/item/Item in contents)
remove_from_storage(Item, loc, burn)
//This proc is called when you want to place an item into the storage item.
/obj/item/weapon/storage/attackby(obj/item/W as obj, mob/user as mob, params)
/obj/item/storage/attackby(obj/item/W as obj, mob/user as mob, params)
..()
if(isrobot(user))
@@ -371,7 +371,7 @@
return 1
/obj/item/weapon/storage/attack_hand(mob/user as mob)
/obj/item/storage/attack_hand(mob/user as mob)
playsound(src.loc, "rustle", 50, 1, -5)
if(ishuman(user))
@@ -398,7 +398,7 @@
src.add_fingerprint(user)
return
/obj/item/weapon/storage/verb/toggle_gathering_mode()
/obj/item/storage/verb/toggle_gathering_mode()
set name = "Switch Gathering Method"
set category = "Object"
@@ -410,7 +410,7 @@
to_chat(usr, "[src] now picks up one item at a time.")
/obj/item/weapon/storage/verb/quick_empty()
/obj/item/storage/verb/quick_empty()
set name = "Empty Contents"
set category = "Object"
@@ -422,19 +422,19 @@
for(var/obj/item/I in contents)
remove_from_storage(I, T)
/obj/item/weapon/storage/New()
/obj/item/storage/New()
can_hold = typecacheof(can_hold)
cant_hold = typecacheof(cant_hold)
if(allow_quick_empty)
verbs += /obj/item/weapon/storage/verb/quick_empty
verbs += /obj/item/storage/verb/quick_empty
else
verbs -= /obj/item/weapon/storage/verb/quick_empty
verbs -= /obj/item/storage/verb/quick_empty
if(allow_quick_gather)
verbs += /obj/item/weapon/storage/verb/toggle_gathering_mode
verbs += /obj/item/storage/verb/toggle_gathering_mode
else
verbs -= /obj/item/weapon/storage/verb/toggle_gathering_mode
verbs -= /obj/item/storage/verb/toggle_gathering_mode
src.boxes = new /obj/screen/storage( )
src.boxes.name = "storage"
@@ -449,7 +449,7 @@
src.closer.plane = HUD_PLANE
orient2hud()
/obj/item/weapon/storage/Destroy()
/obj/item/storage/Destroy()
for(var/obj/O in contents)
O.mouse_opacity = initial(O.mouse_opacity)
@@ -457,27 +457,27 @@
QDEL_NULL(closer)
return ..()
/obj/item/weapon/storage/emp_act(severity)
/obj/item/storage/emp_act(severity)
if(!istype(src.loc, /mob/living))
for(var/obj/O in contents)
O.emp_act(severity)
..()
/obj/item/weapon/storage/hear_talk(mob/living/M as mob, msg)
/obj/item/storage/hear_talk(mob/living/M as mob, msg)
..()
for(var/obj/O in contents)
O.hear_talk(M, msg)
/obj/item/weapon/storage/hear_message(mob/living/M as mob, msg)
/obj/item/storage/hear_message(mob/living/M as mob, msg)
..()
for(var/obj/O in contents)
O.hear_message(M, msg)
/obj/item/weapon/storage/attack_self(mob/user)
/obj/item/storage/attack_self(mob/user)
//Clicking on itself will empty it, if it has the verb to do that.
if(user.is_in_active_hand(src))
if(verbs.Find(/obj/item/weapon/storage/verb/quick_empty))
if(verbs.Find(/obj/item/storage/verb/quick_empty))
quick_empty()
//Returns the storage depth of an atom. This is the number of storage items the atom is contained in before reaching toplevel (the area).
@@ -489,7 +489,7 @@
while(cur_atom && !(cur_atom in container.contents))
if(isarea(cur_atom))
return -1
if(istype(cur_atom.loc, /obj/item/weapon/storage))
if(istype(cur_atom.loc, /obj/item/storage))
depth++
cur_atom = cur_atom.loc
@@ -507,7 +507,7 @@
while(cur_atom && !isturf(cur_atom))
if(isarea(cur_atom))
return -1
if(istype(cur_atom.loc, /obj/item/weapon/storage))
if(istype(cur_atom.loc, /obj/item/storage))
depth++
cur_atom = cur_atom.loc
@@ -516,7 +516,7 @@
return depth
/obj/item/weapon/storage/serialize()
/obj/item/storage/serialize()
var data = ..()
var/list/content_list = list()
data["content"] = content_list
@@ -532,7 +532,7 @@
content_list[content_list.len] = AM.serialize()
return data
/obj/item/weapon/storage/deserialize(list/data)
/obj/item/storage/deserialize(list/data)
if(isnum(data["slots"]))
storage_slots = data["slots"]
if(isnum(data["max_w_class"]))
@@ -1,4 +1,4 @@
/obj/item/weapon/storage/toolbox
/obj/item/storage/toolbox
name = "toolbox"
desc = "Danger. Very robust."
icon = 'icons/obj/storage.dmi'
@@ -15,51 +15,51 @@
attack_verb = list("robusted")
hitsound = 'sound/weapons/smash.ogg'
/obj/item/weapon/storage/toolbox/emergency
/obj/item/storage/toolbox/emergency
name = "emergency toolbox"
icon_state = "red"
item_state = "toolbox_red"
/obj/item/weapon/storage/toolbox/emergency/New()
/obj/item/storage/toolbox/emergency/New()
..()
new /obj/item/weapon/crowbar/red(src)
new /obj/item/weapon/weldingtool/mini(src)
new /obj/item/weapon/extinguisher/mini(src)
new /obj/item/crowbar/red(src)
new /obj/item/weldingtool/mini(src)
new /obj/item/extinguisher/mini(src)
if(prob(50))
new /obj/item/device/flashlight(src)
new /obj/item/flashlight(src)
else
new /obj/item/device/flashlight/flare(src)
new /obj/item/device/radio(src)
new /obj/item/flashlight/flare(src)
new /obj/item/radio(src)
/obj/item/weapon/storage/toolbox/mechanical
/obj/item/storage/toolbox/mechanical
name = "mechanical toolbox"
icon_state = "blue"
item_state = "toolbox_blue"
/obj/item/weapon/storage/toolbox/mechanical/New()
/obj/item/storage/toolbox/mechanical/New()
..()
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
new /obj/item/weapon/weldingtool(src)
new /obj/item/weapon/crowbar(src)
new /obj/item/device/analyzer(src)
new /obj/item/weapon/wirecutters(src)
new /obj/item/screwdriver(src)
new /obj/item/wrench(src)
new /obj/item/weldingtool(src)
new /obj/item/crowbar(src)
new /obj/item/analyzer(src)
new /obj/item/wirecutters(src)
/obj/item/weapon/storage/toolbox/mechanical/greytide
/obj/item/storage/toolbox/mechanical/greytide
flags = NODROP
/obj/item/weapon/storage/toolbox/electrical
/obj/item/storage/toolbox/electrical
name = "electrical toolbox"
icon_state = "yellow"
item_state = "toolbox_yellow"
/obj/item/weapon/storage/toolbox/electrical/New()
/obj/item/storage/toolbox/electrical/New()
..()
var/pickedcolor = pick(COLOR_RED, COLOR_YELLOW, COLOR_GREEN, COLOR_BLUE, COLOR_PINK, COLOR_ORANGE, COLOR_CYAN, COLOR_WHITE)
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wirecutters(src)
new /obj/item/device/t_scanner(src)
new /obj/item/weapon/crowbar(src)
new /obj/item/screwdriver(src)
new /obj/item/wirecutters(src)
new /obj/item/t_scanner(src)
new /obj/item/crowbar(src)
new /obj/item/stack/cable_coil(src, 30, pickedcolor)
new /obj/item/stack/cable_coil(src, 30, pickedcolor)
if(prob(5))
@@ -67,7 +67,7 @@
else
new /obj/item/stack/cable_coil(src, 30, pickedcolor)
/obj/item/weapon/storage/toolbox/syndicate
/obj/item/storage/toolbox/syndicate
name = "suspicious looking toolbox"
icon_state = "syndicate"
item_state = "toolbox_syndi"
@@ -76,38 +76,39 @@
force = 15.0
throwforce = 18.0
/obj/item/weapon/storage/toolbox/syndicate/New()
/obj/item/storage/toolbox/syndicate/New()
..()
new /obj/item/weapon/screwdriver(src, "red")
new /obj/item/weapon/wrench(src)
new /obj/item/weapon/weldingtool/largetank(src)
new /obj/item/weapon/crowbar/red(src)
new /obj/item/weapon/wirecutters(src, "red")
new /obj/item/device/multitool(src)
new /obj/item/screwdriver(src, "red")
new /obj/item/wrench(src)
new /obj/item/weldingtool/largetank(src)
new /obj/item/crowbar/red(src)
new /obj/item/wirecutters(src, "red")
new /obj/item/multitool(src)
new /obj/item/clothing/gloves/combat(src)
/obj/item/weapon/storage/toolbox/syndicate/trapped/New()
/obj/item/storage/toolbox/syndicate/trapped/New()
..()
new /obj/item/weapon/grenade/chem_grenade/explosion/mine_armed(src)
/obj/item/weapon/storage/toolbox/drone
/obj/item/storage/toolbox/drone
name = "mechanical toolbox"
icon_state = "blue"
item_state = "toolbox_blue"
/obj/item/weapon/storage/toolbox/drone/New()
/obj/item/storage/toolbox/drone/New()
..()
var/pickedcolor = pick(pick(COLOR_RED, COLOR_YELLOW, COLOR_GREEN, COLOR_BLUE, COLOR_PINK, COLOR_ORANGE, COLOR_CYAN, COLOR_WHITE))
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
new /obj/item/weapon/weldingtool(src)
new /obj/item/weapon/crowbar(src)
new /obj/item/screwdriver(src)
new /obj/item/wrench(src)
new /obj/item/weldingtool(src)
new /obj/item/crowbar(src)
new /obj/item/stack/cable_coil(src, 30, pickedcolor)
new /obj/item/weapon/wirecutters(src)
new /obj/item/device/multitool(src)
new /obj/item/wirecutters(src)
new /obj/item/multitool(src)
/obj/item/weapon/storage/toolbox/brass
/obj/item/storage/toolbox/brass
name = "brass box"
desc = "A huge brass box with several indentations in its surface."
icon_state = "brassbox"
@@ -118,10 +119,10 @@
storage_slots = 28
attack_verb = list("robusted", "crushed", "smashed")
/obj/item/weapon/storage/toolbox/brass/prefilled/New()
/obj/item/storage/toolbox/brass/prefilled/New()
..()
new /obj/item/weapon/screwdriver/brass(src)
new /obj/item/weapon/wirecutters/brass(src)
new /obj/item/weapon/wrench/brass(src)
new /obj/item/weapon/crowbar/brass(src)
new /obj/item/weapon/weldingtool/experimental/brass(src)
new /obj/item/screwdriver/brass(src)
new /obj/item/wirecutters/brass(src)
new /obj/item/wrench/brass(src)
new /obj/item/crowbar/brass(src)
new /obj/item/weldingtool/experimental/brass(src)
@@ -1,142 +1,142 @@
/obj/item/weapon/storage/box/syndicate/
/obj/item/storage/box/syndicate/
New()
..()
switch(pickweight(list("bloodyspai" = 1, "thief" = 1, "bond" = 1, "sabotage" = 1, "payday" = 1, "implant" = 1, "hacker" = 1, "darklord" = 1, "gadgets" = 1)))
if("bloodyspai")
new /obj/item/weapon/twohanded/garrote(src)
new /obj/item/weapon/pinpointer/advpinpointer(src)
new /obj/item/twohanded/garrote(src)
new /obj/item/pinpointer/advpinpointer(src)
new /obj/item/clothing/mask/gas/voice(src)
new /obj/item/clothing/under/chameleon(src)
new /obj/item/weapon/card/id/syndicate(src)
new /obj/item/weapon/storage/box/syndie_kit/emp(src)
new /obj/item/device/camera_bug(src)
new /obj/item/card/id/syndicate(src)
new /obj/item/storage/box/syndie_kit/emp(src)
new /obj/item/camera_bug(src)
return
if("thief")
new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow(src)
new /obj/item/device/chameleon(src)
new /obj/item/gun/energy/kinetic_accelerator/crossbow(src)
new /obj/item/chameleon(src)
new /obj/item/clothing/gloves/color/black/thief(src)
new /obj/item/weapon/card/id/syndicate(src)
new /obj/item/card/id/syndicate(src)
return
if("bond")
new /obj/item/weapon/gun/projectile/automatic/pistol(src)
new /obj/item/weapon/suppressor(src)
new /obj/item/gun/projectile/automatic/pistol(src)
new /obj/item/suppressor(src)
new /obj/item/ammo_box/magazine/m10mm/hp(src)
new /obj/item/device/encryptionkey/syndicate(src)
new /obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate(src)
new /obj/item/weapon/implanter/krav_maga(src)
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/alliescocktail(src)
new /obj/item/encryptionkey/syndicate(src)
new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(src)
new /obj/item/implanter/krav_maga(src)
new /obj/item/reagent_containers/food/drinks/drinkingglass/alliescocktail(src)
return
if("sabotage")
new /obj/item/device/powersink(src)
new /obj/item/weapon/grenade/syndieminibomb(src)
new /obj/item/weapon/card/emag(src)
new /obj/item/weapon/grenade/clusterbuster/n2o(src)
new /obj/item/weapon/storage/box/syndie_kit/space(src)
new /obj/item/powersink(src)
new /obj/item/grenade/syndieminibomb(src)
new /obj/item/card/emag(src)
new /obj/item/grenade/clusterbuster/n2o(src)
new /obj/item/storage/box/syndie_kit/space(src)
new /obj/item/clothing/gloves/color/yellow(src)
new /obj/item/weapon/rcd/preloaded(src)
new /obj/item/rcd/preloaded(src)
return
if("payday")
new /obj/item/weapon/gun/projectile/revolver(src)
new /obj/item/gun/projectile/revolver(src)
new /obj/item/ammo_box/a357(src)
new /obj/item/weapon/card/emag(src)
new /obj/item/weapon/grenade/plastic/x4(src)
new /obj/item/weapon/card/id/syndicate(src)
new /obj/item/card/emag(src)
new /obj/item/grenade/plastic/x4(src)
new /obj/item/card/id/syndicate(src)
new /obj/item/clothing/gloves/color/latex/nitrile(src)
new /obj/item/clothing/mask/gas/clown_hat(src)
return
if("implant")
new /obj/item/weapon/implanter/uplink(src)
new /obj/item/weapon/implanter/adrenalin(src)
new /obj/item/weapon/implanter/storage(src)
new /obj/item/weapon/implanter/freedom(src)
new /obj/item/implanter/uplink(src)
new /obj/item/implanter/adrenalin(src)
new /obj/item/implanter/storage(src)
new /obj/item/implanter/freedom(src)
return
if("hacker")
new /obj/item/weapon/aiModule/syndicate(src)
new /obj/item/device/encryptionkey/binary(src)
new /obj/item/weapon/aiModule/toyAI(src)
new /obj/item/aiModule/syndicate(src)
new /obj/item/encryptionkey/binary(src)
new /obj/item/aiModule/toyAI(src)
return
if("darklord")
new /obj/item/weapon/melee/energy/sword/saber/red(src)
new /obj/item/weapon/melee/energy/sword/saber/red(src)
new /obj/item/weapon/dnainjector/telemut/darkbundle(src)
new /obj/item/melee/energy/sword/saber/red(src)
new /obj/item/melee/energy/sword/saber/red(src)
new /obj/item/dnainjector/telemut/darkbundle(src)
new /obj/item/clothing/suit/hooded/chaplain_hoodie(src)
new /obj/item/weapon/card/id/syndicate(src)
new /obj/item/card/id/syndicate(src)
return
if("gadgets")
new /obj/item/clothing/gloves/color/yellow/power(src)
new /obj/item/weapon/pen/sleepy(src)
new /obj/item/pen/sleepy(src)
new /obj/item/clothing/glasses/thermal/syndi(src)
new /obj/item/device/flashlight/emp(src)
new /obj/item/flashlight/emp(src)
new /obj/item/clothing/shoes/syndigaloshes(src)
new /obj/item/weapon/stamp/chameleon(src)
new /obj/item/device/multitool/ai_detect(src)
new /obj/item/stamp/chameleon(src)
new /obj/item/multitool/ai_detect(src)
return
/obj/item/weapon/storage/box/syndie_kit
/obj/item/storage/box/syndie_kit
name = "Box"
desc = "A sleek, sturdy box"
icon_state = "box_of_doom"
/obj/item/weapon/storage/box/syndie_kit/space
/obj/item/storage/box/syndie_kit/space
name = "Boxed Space Suit and Helmet"
can_hold = list(/obj/item/clothing/suit/space/syndicate/black/red, /obj/item/clothing/head/helmet/space/syndicate/black/red)
max_w_class = WEIGHT_CLASS_NORMAL
/obj/item/weapon/storage/box/syndie_kit/space/New()
/obj/item/storage/box/syndie_kit/space/New()
..()
new /obj/item/clothing/suit/space/syndicate/black/red(src)
new /obj/item/clothing/head/helmet/space/syndicate/black/red(src)
return
/obj/item/weapon/storage/box/syndie_kit/hardsuit
/obj/item/storage/box/syndie_kit/hardsuit
name = "Boxed Blood Red Suit and Helmet"
can_hold = list(/obj/item/clothing/suit/space/hardsuit/syndi, /obj/item/clothing/head/helmet/space/hardsuit/syndi)
max_w_class = WEIGHT_CLASS_NORMAL
/obj/item/weapon/storage/box/syndie_kit/hardsuit/New()
/obj/item/storage/box/syndie_kit/hardsuit/New()
..()
new /obj/item/clothing/suit/space/hardsuit/syndi(src)
new /obj/item/clothing/head/helmet/space/hardsuit/syndi(src)
return
/obj/item/weapon/storage/box/syndie_kit/elite_hardsuit
/obj/item/storage/box/syndie_kit/elite_hardsuit
name = "Boxed Elite Syndicate Hardsuit and Helmet"
can_hold = list(/obj/item/clothing/suit/space/hardsuit/syndi/elite, /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite)
max_w_class = WEIGHT_CLASS_NORMAL
/obj/item/weapon/storage/box/syndie_kit/elite_hardsuit/New()
/obj/item/storage/box/syndie_kit/elite_hardsuit/New()
..()
new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src)
new /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite(src)
/obj/item/weapon/storage/box/syndie_kit/shielded_hardsuit
/obj/item/storage/box/syndie_kit/shielded_hardsuit
name = "Boxed Shielded Syndicate Hardsuit and Helmet"
can_hold = list(/obj/item/clothing/suit/space/hardsuit/shielded/syndi, /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi)
max_w_class = WEIGHT_CLASS_BULKY
/obj/item/weapon/storage/box/syndie_kit/shielded_hardsuit/New()
/obj/item/storage/box/syndie_kit/shielded_hardsuit/New()
..()
new /obj/item/clothing/suit/space/hardsuit/shielded/syndi(src)
new /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi(src)
/obj/item/weapon/storage/box/syndie_kit/conversion
/obj/item/storage/box/syndie_kit/conversion
name = "box (CK)"
/obj/item/weapon/storage/box/syndie_kit/conversion/New()
/obj/item/storage/box/syndie_kit/conversion/New()
..()
new /obj/item/weapon/conversion_kit(src)
new /obj/item/conversion_kit(src)
new /obj/item/ammo_box/a357(src)
return
/obj/item/weapon/storage/box/syndie_kit/boolets
/obj/item/storage/box/syndie_kit/boolets
name = "Shotgun shells"
New()
@@ -148,60 +148,60 @@
new /obj/item/ammo_casing/shotgun/fakebeanbag(src)
new /obj/item/ammo_casing/shotgun/fakebeanbag(src)
/obj/item/weapon/storage/box/syndie_kit/emp
/obj/item/storage/box/syndie_kit/emp
name = "boxed EMP kit"
/obj/item/weapon/storage/box/syndie_kit/emp/New()
/obj/item/storage/box/syndie_kit/emp/New()
..()
new /obj/item/weapon/grenade/empgrenade(src)
new /obj/item/weapon/grenade/empgrenade(src)
new /obj/item/weapon/implanter/emp/(src)
new /obj/item/grenade/empgrenade(src)
new /obj/item/grenade/empgrenade(src)
new /obj/item/implanter/emp/(src)
/obj/item/weapon/storage/box/syndie_kit/throwing_weapons
/obj/item/storage/box/syndie_kit/throwing_weapons
name = "boxed throwing kit"
can_hold = list(/obj/item/weapon/throwing_star, /obj/item/weapon/restraints/legcuffs/bola/tactical)
can_hold = list(/obj/item/throwing_star, /obj/item/restraints/legcuffs/bola/tactical)
max_combined_w_class = 16
max_w_class = WEIGHT_CLASS_NORMAL
/obj/item/weapon/storage/box/syndie_kit/throwing_weapons/New()
/obj/item/storage/box/syndie_kit/throwing_weapons/New()
..()
new /obj/item/weapon/throwing_star(src)
new /obj/item/weapon/throwing_star(src)
new /obj/item/weapon/throwing_star(src)
new /obj/item/weapon/throwing_star(src)
new /obj/item/weapon/throwing_star(src)
new /obj/item/weapon/restraints/legcuffs/bola/tactical(src)
new /obj/item/weapon/restraints/legcuffs/bola/tactical(src)
new /obj/item/throwing_star(src)
new /obj/item/throwing_star(src)
new /obj/item/throwing_star(src)
new /obj/item/throwing_star(src)
new /obj/item/throwing_star(src)
new /obj/item/restraints/legcuffs/bola/tactical(src)
new /obj/item/restraints/legcuffs/bola/tactical(src)
/obj/item/weapon/storage/box/syndie_kit/sarin
/obj/item/storage/box/syndie_kit/sarin
name = "Sarin Gas Grenades"
New()
..()
new /obj/item/weapon/grenade/chem_grenade/saringas(src)
new /obj/item/weapon/grenade/chem_grenade/saringas(src)
new /obj/item/weapon/grenade/chem_grenade/saringas(src)
new /obj/item/weapon/grenade/chem_grenade/saringas(src)
new /obj/item/grenade/chem_grenade/saringas(src)
new /obj/item/grenade/chem_grenade/saringas(src)
new /obj/item/grenade/chem_grenade/saringas(src)
new /obj/item/grenade/chem_grenade/saringas(src)
/obj/item/weapon/storage/box/syndie_kit/bioterror
/obj/item/storage/box/syndie_kit/bioterror
name = "bioterror syringe box"
New()
..()
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
new /obj/item/reagent_containers/syringe/bioterror(src)
new /obj/item/reagent_containers/syringe/bioterror(src)
new /obj/item/reagent_containers/syringe/bioterror(src)
new /obj/item/reagent_containers/syringe/bioterror(src)
new /obj/item/reagent_containers/syringe/bioterror(src)
new /obj/item/reagent_containers/syringe/bioterror(src)
new /obj/item/reagent_containers/syringe/bioterror(src)
return
/obj/item/weapon/storage/box/syndie_kit/caneshotgun
/obj/item/storage/box/syndie_kit/caneshotgun
name = "cane gun kit"
/obj/item/weapon/storage/box/syndie_kit/caneshotgun/New()
/obj/item/storage/box/syndie_kit/caneshotgun/New()
..()
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
@@ -209,48 +209,48 @@
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
new /obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/cane(src)
new /obj/item/gun/projectile/revolver/doublebarrel/improvised/cane(src)
/obj/item/weapon/storage/box/syndie_kit/atmosgasgrenades
/obj/item/storage/box/syndie_kit/atmosgasgrenades
name = "Atmos Grenades"
/obj/item/weapon/storage/box/syndie_kit/atmosgasgrenades/New()
/obj/item/storage/box/syndie_kit/atmosgasgrenades/New()
..()
new /obj/item/weapon/grenade/clusterbuster/plasma(src)
new /obj/item/weapon/grenade/clusterbuster/n2o(src)
new /obj/item/grenade/clusterbuster/plasma(src)
new /obj/item/grenade/clusterbuster/n2o(src)
/obj/item/weapon/storage/box/syndie_kit/missionary_set
/obj/item/storage/box/syndie_kit/missionary_set
name = "Missionary Starter Kit"
/obj/item/weapon/storage/box/syndie_kit/missionary_set/New()
/obj/item/storage/box/syndie_kit/missionary_set/New()
..()
new /obj/item/weapon/nullrod/missionary_staff(src)
new /obj/item/nullrod/missionary_staff(src)
new /obj/item/clothing/suit/hooded/chaplain_hoodie/missionary_robe(src)
var/obj/item/weapon/storage/bible/B = new /obj/item/weapon/storage/bible(src)
var/obj/item/storage/bible/B = new /obj/item/storage/bible(src)
if(prob(25)) //an omen of success to come?
B.deity_name = "Success"
B.icon_state = "greentext"
B.item_state = "greentext"
/obj/item/weapon/storage/box/syndie_kit/cutouts
/obj/item/storage/box/syndie_kit/cutouts
name = "Fortified Artistic Box"
/obj/item/weapon/storage/box/syndie_kit/cutouts/New()
/obj/item/storage/box/syndie_kit/cutouts/New()
..()
for(var/i in 1 to 3)
new/obj/item/cardboard_cutout/adaptive(src)
new/obj/item/toy/crayon/spraycan(src)
/obj/item/weapon/storage/box/syndie_kit/bonerepair
/obj/item/storage/box/syndie_kit/bonerepair
name = "bone repair kit"
desc = "A box containing one prototype field bone repair kit."
/obj/item/weapon/storage/box/syndie_kit/bonerepair/New()
/obj/item/storage/box/syndie_kit/bonerepair/New()
..()
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/nanocalcium(src)
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src)
new /obj/item/reagent_containers/hypospray/autoinjector/nanocalcium(src)
var/obj/item/paper/P = new /obj/item/paper(src)
P.name = "Bone repair guide"
P.desc = "For when you want to safely get off Mr Bones' Wild Ride."
P.info = {"
@@ -1,4 +1,4 @@
/obj/item/weapon/storage/wallet
/obj/item/storage/wallet
name = "leather wallet"
desc = "Made from genuine leather, it is of the highest quality."
storage_slots = 10
@@ -8,44 +8,44 @@
burn_state = FLAMMABLE
can_hold = list(
/obj/item/stack/spacecash,
/obj/item/weapon/card,
/obj/item/card,
/obj/item/clothing/mask/cigarette,
/obj/item/device/flashlight/pen,
/obj/item/flashlight/pen,
/obj/item/seeds,
/obj/item/stack/medical,
/obj/item/toy/crayon,
/obj/item/weapon/coin,
/obj/item/weapon/dice,
/obj/item/weapon/disk,
/obj/item/weapon/implanter,
/obj/item/weapon/lighter,
/obj/item/weapon/match,
/obj/item/weapon/paper,
/obj/item/weapon/pen,
/obj/item/weapon/photo,
/obj/item/weapon/reagent_containers/dropper,
/obj/item/weapon/screwdriver,
/obj/item/weapon/stamp)
/obj/item/coin,
/obj/item/dice,
/obj/item/disk,
/obj/item/implanter,
/obj/item/lighter,
/obj/item/match,
/obj/item/paper,
/obj/item/pen,
/obj/item/photo,
/obj/item/reagent_containers/dropper,
/obj/item/screwdriver,
/obj/item/stamp)
slot_flags = SLOT_ID
var/obj/item/weapon/card/id/front_id = null
var/obj/item/card/id/front_id = null
/obj/item/weapon/storage/wallet/remove_from_storage(obj/item/W as obj, atom/new_location)
/obj/item/storage/wallet/remove_from_storage(obj/item/W as obj, atom/new_location)
. = ..(W, new_location)
if(.)
if(W == front_id)
front_id = null
update_icon()
/obj/item/weapon/storage/wallet/handle_item_insertion(obj/item/W as obj, prevent_warning = 0)
/obj/item/storage/wallet/handle_item_insertion(obj/item/W as obj, prevent_warning = 0)
. = ..(W, prevent_warning)
if(.)
if(!front_id && istype(W, /obj/item/weapon/card/id))
if(!front_id && istype(W, /obj/item/card/id))
front_id = W
update_icon()
/obj/item/weapon/storage/wallet/update_icon()
/obj/item/storage/wallet/update_icon()
if(front_id)
switch(front_id.icon_state)
@@ -64,17 +64,17 @@
icon_state = "wallet"
/obj/item/weapon/storage/wallet/GetID()
/obj/item/storage/wallet/GetID()
return front_id
/obj/item/weapon/storage/wallet/GetAccess()
/obj/item/storage/wallet/GetAccess()
var/obj/item/I = GetID()
if(I)
return I.GetAccess()
else
return ..()
/obj/item/weapon/storage/wallet/random/New()
/obj/item/storage/wallet/random/New()
..()
var/item1_type = pick(/obj/item/stack/spacecash,
/obj/item/stack/spacecash/c10,
@@ -88,7 +88,7 @@
/obj/item/stack/spacecash/c100,
/obj/item/stack/spacecash/c500,
/obj/item/stack/spacecash/c1000)
var/item3_type = pick( /obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/gold, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron )
var/item3_type = pick( /obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/gold, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/iron )
spawn(2)
if(item1_type)
@@ -102,26 +102,26 @@
// Color Wallets //
//////////////////////////////////////
/obj/item/weapon/storage/wallet/color
/obj/item/storage/wallet/color
name = "cheap wallet"
desc = "A cheap wallet from the arcade."
storage_slots = 5 //smaller storage than normal wallets
/obj/item/weapon/storage/wallet/color/New()
/obj/item/storage/wallet/color/New()
..()
if(!item_color)
var/color_wallet = pick(subtypesof(/obj/item/weapon/storage/wallet/color))
var/color_wallet = pick(subtypesof(/obj/item/storage/wallet/color))
new color_wallet(src.loc)
qdel(src)
return
UpdateDesc()
/obj/item/weapon/storage/wallet/color/proc/UpdateDesc()
/obj/item/storage/wallet/color/proc/UpdateDesc()
name = "cheap [item_color] wallet"
desc = "A cheap, [item_color] wallet from the arcade."
icon_state = "[item_color]_wallet"
/obj/item/weapon/storage/wallet/color/update_icon()
/obj/item/storage/wallet/color/update_icon()
if(front_id)
switch(front_id.icon_state)
if("id")
@@ -138,20 +138,20 @@
return
icon_state = "[item_color]_wallet"
/obj/item/weapon/storage/wallet/color/blue
/obj/item/storage/wallet/color/blue
item_color = "blue"
/obj/item/weapon/storage/wallet/color/red
/obj/item/storage/wallet/color/red
item_color = "red"
/obj/item/weapon/storage/wallet/color/yellow
/obj/item/storage/wallet/color/yellow
item_color = "yellow"
/obj/item/weapon/storage/wallet/color/green
/obj/item/storage/wallet/color/green
item_color = "green"
/obj/item/weapon/storage/wallet/color/pink
/obj/item/storage/wallet/color/pink
item_color = "pink"
/obj/item/weapon/storage/waller/color/brown
/obj/item/storage/waller/color/brown
item_color = "brown"