mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 19:47:47 +01:00
Merge branch 'master' of https://github.com/PolarisSS13/Polaris into steals_more_armor
This commit is contained in:
@@ -26,12 +26,12 @@
|
||||
/datum/poster/pol_6
|
||||
icon_state="polposter6"
|
||||
name = "Walk!"
|
||||
desc = "This poster depicts a man walking, presumably to encourage you to not run in the halls."
|
||||
desc = "This poster depicts a man walking, presumably to encourage you not to run in the halls."
|
||||
|
||||
/datum/poster/pol_7
|
||||
icon_state="polposter7"
|
||||
name = "Place your signs!"
|
||||
desc = "A safety poster reminding custodial stuff to place wet floor signs where needed. This reminder's rarely heeded."
|
||||
desc = "A safety poster reminding custodial staff to place wet floor signs where needed. This reminder's rarely heeded."
|
||||
|
||||
/datum/poster/pol_8
|
||||
icon_state="polposter8"
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
var/obj/item/weapon/reagent_containers/syringe/syringe
|
||||
|
||||
/obj/structure/closet/body_bag/cryobag/New()
|
||||
tank = new /obj/item/weapon/tank/emergency/oxygen(null) //It's in nullspace to prevent ejection when the bag is opened.
|
||||
tank = new /obj/item/weapon/tank/emergency/oxygen/double(null) //It's in nullspace to prevent ejection when the bag is opened.
|
||||
..()
|
||||
|
||||
/obj/structure/closet/body_bag/cryobag/Destroy()
|
||||
|
||||
@@ -287,17 +287,20 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
|
||||
to_chat(voice, "<span class='danger'>\icon[src] Connection timed out with remote host.</span>")
|
||||
qdel(voice)
|
||||
close_connection(reason = "Connection timed out")
|
||||
|
||||
//Clean up all references we might have to others
|
||||
communicating.Cut()
|
||||
voice_requests.Cut()
|
||||
voice_invites.Cut()
|
||||
node = null
|
||||
|
||||
//Clean up references that might point at us
|
||||
all_communicators -= src
|
||||
processing_objects -= src
|
||||
listening_objects.Remove(src)
|
||||
qdel(camera)
|
||||
camera = null
|
||||
if(exonet)
|
||||
exonet.remove_address()
|
||||
exonet = null
|
||||
qdel_null(camera)
|
||||
qdel_null(exonet)
|
||||
|
||||
return ..()
|
||||
|
||||
// Proc: update_icon()
|
||||
|
||||
@@ -92,77 +92,66 @@
|
||||
name = "security radio headset"
|
||||
desc = "This is used by your elite security force."
|
||||
icon_state = "sec_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_sec
|
||||
|
||||
/obj/item/device/radio/headset/headset_sec/alt
|
||||
name = "security bowman headset"
|
||||
desc = "This is used by your elite security force."
|
||||
icon_state = "sec_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_sec
|
||||
|
||||
/obj/item/device/radio/headset/headset_eng
|
||||
name = "engineering radio headset"
|
||||
desc = "When the engineers wish to chat like girls."
|
||||
icon_state = "eng_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_eng
|
||||
|
||||
/obj/item/device/radio/headset/headset_eng/alt
|
||||
name = "engineering bowman headset"
|
||||
desc = "When the engineers wish to chat like girls."
|
||||
icon_state = "eng_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_eng
|
||||
|
||||
/obj/item/device/radio/headset/headset_rob
|
||||
name = "robotics radio headset"
|
||||
desc = "Made specifically for the roboticists who cannot decide between departments."
|
||||
icon_state = "rob_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_rob
|
||||
|
||||
/obj/item/device/radio/headset/headset_med
|
||||
name = "medical radio headset"
|
||||
desc = "A headset for the trained staff of the medbay."
|
||||
icon_state = "med_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_med
|
||||
|
||||
/obj/item/device/radio/headset/headset_med/alt
|
||||
name = "medical bowman headset"
|
||||
desc = "A headset for the trained staff of the medbay."
|
||||
icon_state = "med_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_med
|
||||
|
||||
/obj/item/device/radio/headset/headset_sci
|
||||
name = "science radio headset"
|
||||
desc = "A sciency headset. Like usual."
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_sci
|
||||
|
||||
/obj/item/device/radio/headset/headset_medsci
|
||||
name = "medical research radio headset"
|
||||
desc = "A headset that is a result of the mating between medical and science."
|
||||
icon_state = "med_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_medsci
|
||||
|
||||
/obj/item/device/radio/headset/headset_com
|
||||
name = "command radio headset"
|
||||
desc = "A headset with a commanding channel."
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_com
|
||||
|
||||
/obj/item/device/radio/headset/headset_com/alt
|
||||
name = "command bowman headset"
|
||||
desc = "A headset with a commanding channel."
|
||||
icon_state = "com_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_com
|
||||
|
||||
|
||||
@@ -170,21 +159,18 @@
|
||||
name = "colony director's headset"
|
||||
desc = "The headset of the boss."
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/captain
|
||||
|
||||
/obj/item/device/radio/headset/heads/captain/alt
|
||||
name = "colony director's bowman headset"
|
||||
desc = "The headset of the boss."
|
||||
icon_state = "com_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/captain
|
||||
|
||||
/obj/item/device/radio/headset/heads/captain/sfr
|
||||
name = "SFR headset"
|
||||
desc = "A headset belonging to a Sif Free Radio DJ. SFR, best tunes in the wilderness."
|
||||
icon_state = "com_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/captain
|
||||
|
||||
/obj/item/device/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway.
|
||||
@@ -206,105 +192,91 @@
|
||||
name = "research director's headset"
|
||||
desc = "Headset of the researching God."
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/rd
|
||||
|
||||
/obj/item/device/radio/headset/heads/rd/alt
|
||||
name = "research director's bowman headset"
|
||||
desc = "Headset of the researching God."
|
||||
icon_state = "com_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/rd
|
||||
|
||||
/obj/item/device/radio/headset/heads/hos
|
||||
name = "head of security's headset"
|
||||
desc = "The headset of the man who protects your worthless lifes."
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/hos
|
||||
|
||||
/obj/item/device/radio/headset/heads/hos/alt
|
||||
name = "head of security's bowman headset"
|
||||
desc = "The headset of the man who protects your worthless lifes."
|
||||
icon_state = "com_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/hos
|
||||
|
||||
/obj/item/device/radio/headset/heads/ce
|
||||
name = "chief engineer's headset"
|
||||
desc = "The headset of the guy who is in charge of morons"
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/ce
|
||||
|
||||
/obj/item/device/radio/headset/heads/ce/alt
|
||||
name = "chief engineer's bowman headset"
|
||||
desc = "The headset of the guy who is in charge of morons"
|
||||
icon_state = "com_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/ce
|
||||
|
||||
/obj/item/device/radio/headset/heads/cmo
|
||||
name = "chief medical officer's headset"
|
||||
desc = "The headset of the highly trained medical chief."
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/cmo
|
||||
|
||||
/obj/item/device/radio/headset/heads/cmo/alt
|
||||
name = "chief medical officer's bowman headset"
|
||||
desc = "The headset of the highly trained medical chief."
|
||||
icon_state = "com_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/cmo
|
||||
|
||||
/obj/item/device/radio/headset/heads/hop
|
||||
name = "head of personnel's headset"
|
||||
desc = "The headset of the guy who will one day be Colony Director."
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/hop
|
||||
|
||||
/obj/item/device/radio/headset/heads/hop/alt
|
||||
name = "head of personnel's bowman headset"
|
||||
desc = "The headset of the guy who will one day be Colony Director."
|
||||
icon_state = "com_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/hop
|
||||
/*
|
||||
|
||||
/obj/item/device/radio/headset/headset_mine
|
||||
name = "mining radio headset"
|
||||
desc = "Headset used by miners. How useless. To access the mining channel, use :d."
|
||||
desc = "Headset used by miners. Has inbuilt short-band radio for when comms are down."
|
||||
icon_state = "mine_headset"
|
||||
item_state = "headset"
|
||||
keyslot2 = new /obj/item/device/encryptionkey/headset_mine
|
||||
*/
|
||||
adhoc_fallback = TRUE
|
||||
ks2type = /obj/item/device/encryptionkey/headset_cargo
|
||||
|
||||
/obj/item/device/radio/headset/headset_cargo
|
||||
name = "supply radio headset"
|
||||
desc = "A headset used by the QM and his slaves."
|
||||
icon_state = "cargo_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_cargo
|
||||
|
||||
/obj/item/device/radio/headset/headset_cargo/alt
|
||||
name = "supply bowman headset"
|
||||
desc = "A bowman headset used by the QM and his slaves."
|
||||
icon_state = "cargo_headset_alt"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_cargo
|
||||
|
||||
/obj/item/device/radio/headset/headset_service
|
||||
name = "service radio headset"
|
||||
desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean."
|
||||
icon_state = "srv_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_service
|
||||
|
||||
/obj/item/device/radio/headset/ert
|
||||
name = "emergency response team radio headset"
|
||||
desc = "The headset of the boss's boss."
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
centComm = 1
|
||||
// freerange = 1
|
||||
ks2type = /obj/item/device/encryptionkey/ert
|
||||
@@ -313,7 +285,6 @@
|
||||
name = "emergency response team bowman headset"
|
||||
desc = "The headset of the boss's boss."
|
||||
icon_state = "com_headset_alt"
|
||||
item_state = "headset"
|
||||
// freerange = 1
|
||||
ks2type = /obj/item/device/encryptionkey/ert
|
||||
|
||||
@@ -324,7 +295,6 @@
|
||||
name = "internal affair's headset"
|
||||
desc = "The headset of your worst enemy."
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/hos
|
||||
|
||||
/obj/item/device/radio/headset/mmi_radio
|
||||
|
||||
@@ -266,15 +266,15 @@ REAGENT SCANNER
|
||||
if(0)
|
||||
to_chat(usr, "The scanner will now perform a basic analysis.")
|
||||
|
||||
/obj/item/device/healthanalyzer/advanced //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff
|
||||
name = "advanced health analyzer"
|
||||
/obj/item/device/healthanalyzer/improved //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff
|
||||
name = "improved health analyzer"
|
||||
desc = "A miracle of medical technology, this handheld scanner can produce an accurate and specific report of a patient's biosigns."
|
||||
advscan = 1
|
||||
origin_tech = list(TECH_MAGNET = 5, TECH_BIO = 6)
|
||||
icon_state = "health1"
|
||||
|
||||
/obj/item/device/healthanalyzer/enhanced //reports all of the above, as well as radiation severity and minor brain damage
|
||||
name = "enhanced health analyzer"
|
||||
/obj/item/device/healthanalyzer/advanced //reports all of the above, as well as radiation severity and minor brain damage
|
||||
name = "advanced health analyzer"
|
||||
desc = "An even more advanced handheld health scanner, complete with a full biosign monitor and on-board radiation and neurological analysis suites."
|
||||
advscan = 2
|
||||
origin_tech = list(TECH_MAGNET = 6, TECH_BIO = 7)
|
||||
|
||||
@@ -16,11 +16,12 @@
|
||||
|
||||
// var/obj/item/device/radio/bug/radio
|
||||
var/obj/machinery/camera/bug/camera
|
||||
var/camtype = /obj/machinery/camera/bug
|
||||
|
||||
/obj/item/device/camerabug/New()
|
||||
..()
|
||||
// radio = new(src)
|
||||
camera = new(src)
|
||||
camera = new camtype(src)
|
||||
|
||||
/obj/item/device/camerabug/attack_self(mob/user)
|
||||
if(user.a_intent == I_HURT)
|
||||
@@ -40,7 +41,7 @@
|
||||
linkedmonitor.unpair(src)
|
||||
linkedmonitor = null
|
||||
qdel(camera)
|
||||
camera = new(src)
|
||||
camera = new camtype(src)
|
||||
to_chat(usr, "<span class='notice'>You turn the [src] off and on again, delinking it from any monitors.")
|
||||
|
||||
/obj/item/brokenbug
|
||||
@@ -83,6 +84,7 @@
|
||||
w_class = ITEMSIZE_TINY
|
||||
slot_flags = SLOT_EARS
|
||||
origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1, TECH_ILLEGAL = 3)
|
||||
camtype = /obj/machinery/camera/bug/spy
|
||||
|
||||
/obj/item/device/camerabug/examine(mob/user)
|
||||
. = ..(user, 0)
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
return 1
|
||||
|
||||
/obj/item/borg/upgrade/jetpack
|
||||
name = "mining robot jetpack"
|
||||
name = "robot jetpack"
|
||||
desc = "A carbon dioxide jetpack suitable for low-gravity operations."
|
||||
icon_state = "cyborg_upgrade3"
|
||||
item_state = "cyborg_upgrade"
|
||||
@@ -149,7 +149,7 @@
|
||||
if(!T)
|
||||
T = locate() in R.module.modules
|
||||
if(!T)
|
||||
R.module.modules += new/obj/item/weapon/tank/jetpack/carbondioxide
|
||||
R.module.modules += new/obj/item/weapon/tank/jetpack/carbondioxide(R.module)
|
||||
for(var/obj/item/weapon/tank/jetpack/carbondioxide in R.module.modules)
|
||||
R.internals = src
|
||||
return 1
|
||||
@@ -174,7 +174,7 @@
|
||||
if(!T)
|
||||
T = locate() in R.module.modules
|
||||
if(!T)
|
||||
R.module.modules += new/obj/item/device/healthanalyzer/advanced
|
||||
R.module.modules += new/obj/item/device/healthanalyzer/advanced(R.module)
|
||||
return 1
|
||||
if(T)
|
||||
to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!")
|
||||
@@ -215,4 +215,4 @@
|
||||
R.add_language(LANGUAGE_SCHECHI, 1)
|
||||
R.add_language(LANGUAGE_ROOTLOCAL, 1)
|
||||
|
||||
return 1
|
||||
return 1
|
||||
|
||||
@@ -61,8 +61,7 @@ var/global/list/datum/stack_recipe/rods_recipes = list( \
|
||||
return
|
||||
|
||||
if (istype(W, /obj/item/weapon/tape_roll))
|
||||
var/obj/item/stack/medical/splint/ghetto/new_splint = new(user.loc)
|
||||
new_splint.loc = src.loc
|
||||
var/obj/item/stack/medical/splint/ghetto/new_splint = new(get_turf(user))
|
||||
new_splint.add_fingerprint(user)
|
||||
|
||||
user.visible_message("<span class='notice'>\The [user] constructs \a [new_splint] out of a [singular_name].</span>", \
|
||||
|
||||
@@ -8,13 +8,17 @@
|
||||
name = "stack of wood"
|
||||
type_to_spawn = /obj/item/stack/tile/wood
|
||||
|
||||
/obj/fiftyspawner/wood/sif
|
||||
name = "stack of alien wood"
|
||||
type_to_spawn = /obj/item/stack/tile/sifwood
|
||||
|
||||
/obj/fiftyspawner/carpet
|
||||
name = "stack of carpet"
|
||||
type_to_spawn = /obj/item/stack/tile/carpet
|
||||
|
||||
/obj/fiftyspawner/bluecarpet
|
||||
name = "stack of blue carpet"
|
||||
type_to_spawn = /obj/item/stack/tile/carpet/blue
|
||||
/obj/fiftyspawner/tealcarpet
|
||||
name = "stack of teal carpet"
|
||||
type_to_spawn = /obj/item/stack/tile/carpet/teal
|
||||
|
||||
/obj/fiftyspawner/floor
|
||||
name = "stack of floor tiles"
|
||||
|
||||
@@ -55,9 +55,24 @@
|
||||
flags = 0
|
||||
no_variants = FALSE
|
||||
|
||||
/obj/item/stack/tile/sifwood
|
||||
name = "alien wood tile"
|
||||
singular_name = "alien wood tile"
|
||||
desc = "An easy to fit wooden floor tile. It's blue!"
|
||||
icon_state = "tile-sifwood"
|
||||
force = 1.0
|
||||
throwforce = 1.0
|
||||
throw_speed = 5
|
||||
throw_range = 20
|
||||
flags = 0
|
||||
no_variants = FALSE
|
||||
|
||||
/obj/item/stack/tile/wood/fifty
|
||||
amount = 50
|
||||
|
||||
/obj/item/stack/tile/sifwood/fifty
|
||||
amount = 50
|
||||
|
||||
/obj/item/stack/tile/wood/cyborg
|
||||
name = "wood floor tile synthesizer"
|
||||
desc = "A device that makes wood floor tiles."
|
||||
@@ -81,11 +96,11 @@
|
||||
flags = 0
|
||||
no_variants = FALSE
|
||||
|
||||
/obj/item/stack/tile/carpet/blue
|
||||
name = "blue carpet"
|
||||
singular_name = "blue carpet"
|
||||
desc = "A piece of blue carpet. It is the same size as a normal floor tile!"
|
||||
icon_state = "tile-bluecarpet"
|
||||
/obj/item/stack/tile/carpet/teal
|
||||
name = "teal carpet"
|
||||
singular_name = "teal carpet"
|
||||
desc = "A piece of teal carpet. It is the same size as a normal floor tile!"
|
||||
icon_state = "tile-tealcarpet"
|
||||
no_variants = FALSE
|
||||
|
||||
// TODO - Add descriptions to these
|
||||
@@ -107,7 +122,7 @@
|
||||
/obj/item/stack/tile/floor
|
||||
name = "floor tile"
|
||||
singular_name = "floor tile"
|
||||
desc = "Those could work as a pretty decent throwing weapon" //why?
|
||||
desc = "A metal tile fit for covering a section of floor."
|
||||
icon_state = "tile"
|
||||
force = 6.0
|
||||
matter = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT / 4)
|
||||
|
||||
@@ -52,7 +52,9 @@
|
||||
/obj/item/weapon/implant/Destroy()
|
||||
if(part)
|
||||
part.implants.Remove(src)
|
||||
listening_objects.Remove(src)
|
||||
part = null
|
||||
imp_in = null
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/implant/attackby(obj/item/I, mob/user)
|
||||
@@ -82,7 +84,6 @@
|
||||
|
||||
/obj/item/weapon/implant/tracking/implanted(var/mob/source)
|
||||
processing_objects.Add(src)
|
||||
listening_objects |= src
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/implant/tracking/Destroy()
|
||||
|
||||
@@ -14,3 +14,34 @@
|
||||
var/datum/gender/T = gender_datums[user.get_visible_gender()]
|
||||
user.visible_message(span("danger", "\The [user] [T.is] strangling [T.himself] with \the [src]! It looks like [T.he] [T.is] trying to commit suicide."), span("danger", "You start to strangle yourself with \the [src]!"), span("danger", "You hear the sound of someone choking!"))
|
||||
return (OXYLOSS)
|
||||
|
||||
/obj/item/weapon/melee/umbrella
|
||||
name = "umbrella"
|
||||
desc = "To keep the rain off you. Use with caution on windy days."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "umbrella_closed"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
var/open = FALSE
|
||||
|
||||
/obj/item/weapon/melee/umbrella/New()
|
||||
..()
|
||||
color = "#"+get_random_colour()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/melee/umbrella/attack_self()
|
||||
src.toggle_umbrella()
|
||||
|
||||
/obj/item/weapon/melee/umbrella/proc/toggle_umbrella()
|
||||
open = !open
|
||||
icon_state = "umbrella_[open ? "open" : "closed"]"
|
||||
item_state = icon_state
|
||||
update_icon()
|
||||
if(ishuman(src.loc))
|
||||
var/mob/living/carbon/human/H = src.loc
|
||||
H.update_inv_l_hand(0)
|
||||
H.update_inv_r_hand()
|
||||
..()
|
||||
@@ -47,22 +47,18 @@
|
||||
max_storage_space = ITEMSIZE_COST_NORMAL * 14 // 56
|
||||
storage_cost = INVENTORY_STANDARD_SPACE + 1
|
||||
|
||||
New()
|
||||
..()
|
||||
/obj/item/weapon/storage/backpack/holding/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/storage/backpack/holding))
|
||||
user << "<span class='warning'>The Bluespace interfaces of the two devices conflict and malfunction.</span>"
|
||||
qdel(W)
|
||||
return
|
||||
. = ..()
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/storage/backpack/holding))
|
||||
user << "<span class='warning'>The Bluespace interfaces of the two devices conflict and malfunction.</span>"
|
||||
qdel(W)
|
||||
return
|
||||
..()
|
||||
|
||||
//Please don't clutter the parent storage item with stupid hacks.
|
||||
can_be_inserted(obj/item/W as obj, stop_messages = 0)
|
||||
if(istype(W, /obj/item/weapon/storage/backpack/holding))
|
||||
return 1
|
||||
return ..()
|
||||
//Please don't clutter the parent storage item with stupid hacks.
|
||||
/obj/item/weapon/storage/backpack/holding/can_be_inserted(obj/item/W as obj, stop_messages = 0)
|
||||
if(istype(W, /obj/item/weapon/storage/backpack/holding))
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/storage/backpack/santabag
|
||||
name = "\improper Santa's gift bag"
|
||||
@@ -197,9 +193,7 @@
|
||||
item_state_slots = list(slot_r_hand_str = "briefcase", slot_l_hand_str = "briefcase")
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/withwallet
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/storage/wallet/random( src )
|
||||
starts_with = list(/obj/item/weapon/storage/wallet/random)
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/norm
|
||||
name = "satchel"
|
||||
|
||||
@@ -68,6 +68,9 @@
|
||||
// -----------------------------
|
||||
// Mining Satchel
|
||||
// -----------------------------
|
||||
/*
|
||||
* Mechoid - Orebags are the most common quick-gathering thing, and also have tons of lag associated with it. Their checks are going to be hyper-simplified due to this, and their INCREDIBLY singular target contents.
|
||||
*/
|
||||
|
||||
/obj/item/weapon/storage/bag/ore
|
||||
name = "mining satchel"
|
||||
@@ -79,7 +82,80 @@
|
||||
max_storage_space = ITEMSIZE_COST_NORMAL * 25
|
||||
max_w_class = ITEMSIZE_NORMAL
|
||||
can_hold = list(/obj/item/weapon/ore)
|
||||
var/stored_ore = list()
|
||||
var/last_update = 0
|
||||
|
||||
/obj/item/weapon/storage/bag/ore/remove_from_storage(obj/item/W as obj, atom/new_location)
|
||||
if(!istype(W)) return 0
|
||||
|
||||
if(new_location)
|
||||
if(ismob(loc))
|
||||
W.dropped(usr)
|
||||
if(ismob(new_location))
|
||||
W.hud_layerise()
|
||||
else
|
||||
W.reset_plane_and_layer()
|
||||
W.forceMove(new_location)
|
||||
else
|
||||
W.forceMove(get_turf(src))
|
||||
|
||||
W.on_exit_storage(src)
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/storage/bag/ore/gather_all(turf/T as turf, mob/user as mob, var/silent = 0)
|
||||
var/success = 0
|
||||
var/failure = 0
|
||||
for(var/obj/item/weapon/ore/I in T) //Only ever grabs ores. Doesn't do any extraneous checks, as all ore is the same size. Tons of checks means it causes hanging for up to three seconds.
|
||||
if(contents.len >= max_storage_space)
|
||||
failure = 1
|
||||
break
|
||||
I.forceMove(src)
|
||||
success = 1
|
||||
if(success && !failure && !silent)
|
||||
to_chat(user, "<span class='notice'>You put everything in [src].</span>")
|
||||
else if(success && (!silent || (silent && contents.len >= max_storage_space)))
|
||||
to_chat(user, "<span class='notice'>You fill the [src].</span>")
|
||||
else if(!silent)
|
||||
to_chat(user, "<span class='notice'>You fail to pick anything up with \the [src].</span>")
|
||||
|
||||
/obj/item/weapon/storage/bag/ore/examine(mob/user)
|
||||
..()
|
||||
|
||||
if(!Adjacent(user)) //Can only check the contents of ore bags if you can physically reach them.
|
||||
return
|
||||
|
||||
if(istype(user, /mob/living))
|
||||
add_fingerprint(user)
|
||||
|
||||
if(!contents.len)
|
||||
to_chat(user, "It is empty.")
|
||||
return
|
||||
|
||||
if(world.time > last_update + 10)
|
||||
update_ore_count()
|
||||
last_update = world.time
|
||||
|
||||
to_chat(user, "<span class='notice'>It holds:</span>")
|
||||
for(var/ore in stored_ore)
|
||||
to_chat(user, "<span class='notice'>- [stored_ore[ore]] [ore]</span>")
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/bag/ore/open(mob/user as mob) //No opening it for the weird UI of having shit-tons of ore inside it.
|
||||
if(world.time > last_update + 10)
|
||||
update_ore_count()
|
||||
last_update = world.time
|
||||
examine(user)
|
||||
|
||||
/obj/item/weapon/storage/bag/ore/proc/update_ore_count() //Stolen from ore boxes.
|
||||
|
||||
stored_ore = list()
|
||||
|
||||
for(var/obj/item/weapon/ore/O in contents)
|
||||
if(stored_ore[O.name])
|
||||
stored_ore[O.name]++
|
||||
else
|
||||
stored_ore[O.name] = 1
|
||||
|
||||
// -----------------------------
|
||||
// Plant bag
|
||||
@@ -112,121 +188,116 @@
|
||||
storage_slots = 7
|
||||
|
||||
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
|
||||
|
||||
can_be_inserted(obj/item/W as obj, stop_messages = 0)
|
||||
if(!istype(W,/obj/item/stack/material))
|
||||
if(!stop_messages)
|
||||
usr << "The snatcher does not accept [W]."
|
||||
return 0
|
||||
var/current = 0
|
||||
for(var/obj/item/stack/material/S in contents)
|
||||
current += S.amount
|
||||
if(capacity == current)//If it's full, you're done
|
||||
if(!stop_messages)
|
||||
usr << "<span class='warning'>The snatcher is full.</span>"
|
||||
return 0
|
||||
return 1
|
||||
/obj/item/weapon/storage/bag/sheetsnatcher/can_be_inserted(obj/item/W as obj, stop_messages = 0)
|
||||
if(!istype(W,/obj/item/stack/material))
|
||||
if(!stop_messages)
|
||||
usr << "The snatcher does not accept [W]."
|
||||
return 0
|
||||
var/current = 0
|
||||
for(var/obj/item/stack/material/S in contents)
|
||||
current += S.amount
|
||||
if(capacity == current)//If it's full, you're done
|
||||
if(!stop_messages)
|
||||
usr << "<span class='warning'>The snatcher is full.</span>"
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
// Modified handle_item_insertion. Would prefer not to, but...
|
||||
handle_item_insertion(obj/item/W as obj, prevent_warning = 0)
|
||||
var/obj/item/stack/material/S = W
|
||||
if(!istype(S)) return 0
|
||||
/obj/item/weapon/storage/bag/sheetsnatcher/handle_item_insertion(obj/item/W as obj, prevent_warning = 0)
|
||||
var/obj/item/stack/material/S = W
|
||||
if(!istype(S)) return 0
|
||||
|
||||
var/amount
|
||||
var/inserted = 0
|
||||
var/current = 0
|
||||
for(var/obj/item/stack/material/S2 in contents)
|
||||
current += S2.amount
|
||||
if(capacity < current + S.amount)//If the stack will fill it up
|
||||
amount = capacity - current
|
||||
var/amount
|
||||
var/inserted = 0
|
||||
var/current = 0
|
||||
for(var/obj/item/stack/material/S2 in contents)
|
||||
current += S2.amount
|
||||
if(capacity < current + S.amount)//If the stack will fill it up
|
||||
amount = capacity - current
|
||||
else
|
||||
amount = S.amount
|
||||
|
||||
for(var/obj/item/stack/material/sheet in contents)
|
||||
if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects
|
||||
sheet.amount += amount // they should only be removed through procs in this file, which split them up.
|
||||
S.amount -= amount
|
||||
inserted = 1
|
||||
break
|
||||
|
||||
if(!inserted || !S.amount)
|
||||
usr.remove_from_mob(S)
|
||||
usr.update_icons() //update our overlays
|
||||
if (usr.client && usr.s_active != src)
|
||||
usr.client.screen -= S
|
||||
S.dropped(usr)
|
||||
if(!S.amount)
|
||||
qdel(S)
|
||||
else
|
||||
amount = S.amount
|
||||
S.loc = src
|
||||
|
||||
for(var/obj/item/stack/material/sheet in contents)
|
||||
if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects
|
||||
sheet.amount += amount // they should only be removed through procs in this file, which split them up.
|
||||
S.amount -= amount
|
||||
inserted = 1
|
||||
break
|
||||
|
||||
if(!inserted || !S.amount)
|
||||
usr.remove_from_mob(S)
|
||||
usr.update_icons() //update our overlays
|
||||
if (usr.client && usr.s_active != src)
|
||||
usr.client.screen -= S
|
||||
S.dropped(usr)
|
||||
if(!S.amount)
|
||||
qdel(S)
|
||||
else
|
||||
S.loc = src
|
||||
|
||||
orient2hud(usr)
|
||||
if(usr.s_active)
|
||||
usr.s_active.show_to(usr)
|
||||
update_icon()
|
||||
return 1
|
||||
orient2hud(usr)
|
||||
if(usr.s_active)
|
||||
usr.s_active.show_to(usr)
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
// Sets up numbered display to show the stack size of each stored mineral
|
||||
// NOTE: numbered display is turned off currently because it's broken
|
||||
orient2hud(mob/user as mob)
|
||||
var/adjusted_contents = contents.len
|
||||
/obj/item/weapon/storage/bag/sheetsnatcher/orient2hud(mob/user as mob)
|
||||
var/adjusted_contents = contents.len
|
||||
|
||||
//Numbered contents display
|
||||
var/list/datum/numbered_display/numbered_contents
|
||||
if(display_contents_with_number)
|
||||
numbered_contents = list()
|
||||
adjusted_contents = 0
|
||||
for(var/obj/item/stack/material/I in contents)
|
||||
adjusted_contents++
|
||||
var/datum/numbered_display/D = new/datum/numbered_display(I)
|
||||
D.number = I.amount
|
||||
numbered_contents.Add( D )
|
||||
|
||||
var/row_num = 0
|
||||
var/col_count = min(7,storage_slots) -1
|
||||
if (adjusted_contents > 7)
|
||||
row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width.
|
||||
src.slot_orient_objs(row_num, col_count, numbered_contents)
|
||||
return
|
||||
//Numbered contents display
|
||||
var/list/datum/numbered_display/numbered_contents
|
||||
if(display_contents_with_number)
|
||||
numbered_contents = list()
|
||||
adjusted_contents = 0
|
||||
for(var/obj/item/stack/material/I in contents)
|
||||
adjusted_contents++
|
||||
var/datum/numbered_display/D = new/datum/numbered_display(I)
|
||||
D.number = I.amount
|
||||
numbered_contents.Add( D )
|
||||
|
||||
var/row_num = 0
|
||||
var/col_count = min(7,storage_slots) -1
|
||||
if (adjusted_contents > 7)
|
||||
row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width.
|
||||
src.slot_orient_objs(row_num, col_count, numbered_contents)
|
||||
return
|
||||
|
||||
// Modified quick_empty verb drops appropriate sized stacks
|
||||
quick_empty()
|
||||
var/location = get_turf(src)
|
||||
for(var/obj/item/stack/material/S in contents)
|
||||
while(S.amount)
|
||||
var/obj/item/stack/material/N = new S.type(location)
|
||||
var/stacksize = min(S.amount,N.max_amount)
|
||||
N.amount = stacksize
|
||||
S.amount -= stacksize
|
||||
if(!S.amount)
|
||||
qdel(S) // todo: there's probably something missing here
|
||||
orient2hud(usr)
|
||||
if(usr.s_active)
|
||||
usr.s_active.show_to(usr)
|
||||
update_icon()
|
||||
/obj/item/weapon/storage/bag/sheetsnatcher/quick_empty()
|
||||
var/location = get_turf(src)
|
||||
for(var/obj/item/stack/material/S in contents)
|
||||
while(S.amount)
|
||||
var/obj/item/stack/material/N = new S.type(location)
|
||||
var/stacksize = min(S.amount,N.max_amount)
|
||||
N.amount = stacksize
|
||||
S.amount -= stacksize
|
||||
if(!S.amount)
|
||||
qdel(S) // todo: there's probably something missing here
|
||||
orient2hud(usr)
|
||||
if(usr.s_active)
|
||||
usr.s_active.show_to(usr)
|
||||
update_icon()
|
||||
|
||||
// Instead of removing
|
||||
remove_from_storage(obj/item/W as obj, atom/new_location)
|
||||
var/obj/item/stack/material/S = W
|
||||
if(!istype(S)) return 0
|
||||
/obj/item/weapon/storage/bag/sheetsnatcher/remove_from_storage(obj/item/W as obj, atom/new_location)
|
||||
var/obj/item/stack/material/S = W
|
||||
if(!istype(S)) return 0
|
||||
|
||||
//I would prefer to drop a new stack, but the item/attack_hand code
|
||||
// that calls this can't recieve a different object than you clicked on.
|
||||
//Therefore, make a new stack internally that has the remainder.
|
||||
// -Sayu
|
||||
//I would prefer to drop a new stack, but the item/attack_hand code
|
||||
// that calls this can't recieve a different object than you clicked on.
|
||||
//Therefore, make a new stack internally that has the remainder.
|
||||
// -Sayu
|
||||
|
||||
if(S.amount > S.max_amount)
|
||||
var/obj/item/stack/material/temp = new S.type(src)
|
||||
temp.amount = S.amount - S.max_amount
|
||||
S.amount = S.max_amount
|
||||
if(S.amount > S.max_amount)
|
||||
var/obj/item/stack/material/temp = new S.type(src)
|
||||
temp.amount = S.amount - S.max_amount
|
||||
S.amount = S.max_amount
|
||||
|
||||
return ..(S,new_location)
|
||||
return ..(S,new_location)
|
||||
|
||||
// -----------------------------
|
||||
// Sheet Snatcher (Cyborg)
|
||||
|
||||
@@ -59,23 +59,25 @@
|
||||
/obj/item/device/integrated_electronics/wirer,
|
||||
)
|
||||
|
||||
/obj/item/weapon/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/stack/cable_coil(src,30,pick("red","yellow","orange"))
|
||||
/obj/item/weapon/storage/belt/utility/full
|
||||
starts_with = list(
|
||||
/obj/item/weapon/screwdriver,
|
||||
/obj/item/weapon/wrench,
|
||||
/obj/item/weapon/weldingtool,
|
||||
/obj/item/weapon/crowbar,
|
||||
/obj/item/weapon/wirecutters,
|
||||
/obj/item/stack/cable_coil/random_belt
|
||||
)
|
||||
|
||||
/obj/item/weapon/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)
|
||||
/obj/item/weapon/storage/belt/utility/atmostech
|
||||
starts_with = list(
|
||||
/obj/item/weapon/screwdriver,
|
||||
/obj/item/weapon/wrench,
|
||||
/obj/item/weapon/weldingtool,
|
||||
/obj/item/weapon/crowbar,
|
||||
/obj/item/weapon/wirecutters,
|
||||
/obj/item/device/t_scanner
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/utility/chief
|
||||
name = "chief engineer's toolbelt"
|
||||
@@ -83,15 +85,16 @@
|
||||
icon_state = "utilitybelt_ce"
|
||||
item_state = "utility_ce"
|
||||
|
||||
/obj/item/weapon/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)
|
||||
new /obj/item/device/multitool(src)
|
||||
new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange"))
|
||||
new /obj/item/weapon/extinguisher/mini(src)
|
||||
new /obj/item/device/analyzer(src)
|
||||
/obj/item/weapon/storage/belt/utility/chief/full
|
||||
starts_with = list(
|
||||
/obj/item/weapon/screwdriver/power,
|
||||
/obj/item/weapon/crowbar/power,
|
||||
/obj/item/weapon/weldingtool/experimental,
|
||||
/obj/item/device/multitool,
|
||||
/obj/item/stack/cable_coil/random_belt,
|
||||
/obj/item/weapon/extinguisher/mini,
|
||||
/obj/item/device/analyzer
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/medical
|
||||
name = "medical belt"
|
||||
@@ -216,14 +219,8 @@
|
||||
/obj/item/device/soulstone
|
||||
)
|
||||
|
||||
/obj/item/weapon/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)
|
||||
/obj/item/weapon/storage/belt/soulstone/full
|
||||
starts_with = list(/obj/item/device/soulstone = 6)
|
||||
|
||||
/obj/item/weapon/storage/belt/utility/alien
|
||||
name = "alien belt"
|
||||
@@ -232,15 +229,16 @@
|
||||
icon_state = "belt"
|
||||
item_state = "security"
|
||||
|
||||
/obj/item/weapon/storage/belt/utility/alien/full/New()
|
||||
..()
|
||||
new /obj/item/weapon/screwdriver/alien(src)
|
||||
new /obj/item/weapon/wrench/alien(src)
|
||||
new /obj/item/weapon/weldingtool/alien(src)
|
||||
new /obj/item/weapon/crowbar/alien(src)
|
||||
new /obj/item/weapon/wirecutters/alien(src)
|
||||
new /obj/item/device/multitool/alien(src)
|
||||
new /obj/item/stack/cable_coil/alien(src)
|
||||
/obj/item/weapon/storage/belt/utility/alien/full
|
||||
starts_with = list(
|
||||
/obj/item/weapon/screwdriver/alien,
|
||||
/obj/item/weapon/wrench/alien,
|
||||
/obj/item/weapon/weldingtool/alien,
|
||||
/obj/item/weapon/crowbar/alien,
|
||||
/obj/item/weapon/wirecutters/alien,
|
||||
/obj/item/device/multitool/alien,
|
||||
/obj/item/stack/cable_coil/alien
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/medical/alien
|
||||
name = "alien belt"
|
||||
@@ -277,16 +275,17 @@
|
||||
/obj/item/weapon/surgical
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/medical/alien/New()
|
||||
..()
|
||||
new /obj/item/weapon/surgical/scalpel/alien(src)
|
||||
new /obj/item/weapon/surgical/hemostat/alien(src)
|
||||
new /obj/item/weapon/surgical/retractor/alien(src)
|
||||
new /obj/item/weapon/surgical/circular_saw/alien(src)
|
||||
new /obj/item/weapon/surgical/FixOVein/alien(src)
|
||||
new /obj/item/weapon/surgical/bone_clamp/alien(src)
|
||||
new /obj/item/weapon/surgical/cautery/alien(src)
|
||||
new /obj/item/weapon/surgical/surgicaldrill/alien(src)
|
||||
/obj/item/weapon/storage/belt/medical/alien
|
||||
starts_with = list(
|
||||
/obj/item/weapon/surgical/scalpel/alien,
|
||||
/obj/item/weapon/surgical/hemostat/alien,
|
||||
/obj/item/weapon/surgical/retractor/alien,
|
||||
/obj/item/weapon/surgical/circular_saw/alien,
|
||||
/obj/item/weapon/surgical/FixOVein/alien,
|
||||
/obj/item/weapon/surgical/bone_clamp/alien,
|
||||
/obj/item/weapon/surgical/cautery/alien,
|
||||
/obj/item/weapon/surgical/surgicaldrill/alien
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/champion
|
||||
name = "championship belt"
|
||||
|
||||
@@ -14,12 +14,13 @@
|
||||
icon_state ="bible"
|
||||
|
||||
/obj/item/weapon/storage/bible/booze/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src)
|
||||
new /obj/item/weapon/spacecash/c100(src)
|
||||
new /obj/item/weapon/spacecash/c100(src)
|
||||
new /obj/item/weapon/spacecash/c100(src)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,
|
||||
/obj/item/weapon/spacecash/c100,
|
||||
/obj/item/weapon/spacecash/c100,
|
||||
/obj/item/weapon/spacecash/c100
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/bible/afterattack(atom/A, mob/user as mob, proximity)
|
||||
if(!proximity) return
|
||||
|
||||
@@ -75,393 +75,250 @@
|
||||
name = "box of latex gloves"
|
||||
desc = "Contains white gloves."
|
||||
icon_state = "latex"
|
||||
|
||||
/obj/item/weapon/storage/box/gloves/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/clothing/gloves/sterile/latex(src)
|
||||
starts_with = list(/obj/item/clothing/gloves/sterile/latex = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/masks
|
||||
name = "box of sterile masks"
|
||||
desc = "This box contains masks of sterility."
|
||||
icon_state = "sterile"
|
||||
|
||||
/obj/item/weapon/storage/box/masks/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/clothing/mask/surgical(src)
|
||||
starts_with = list(/obj/item/clothing/mask/surgical = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/syringes
|
||||
name = "box of syringes"
|
||||
desc = "A box full of syringes."
|
||||
icon_state = "syringe"
|
||||
|
||||
/obj/item/weapon/storage/box/syringes/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/syringe = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/syringegun
|
||||
name = "box of syringe gun cartridges"
|
||||
desc = "A box full of compressed gas cartridges."
|
||||
icon_state = "syringe"
|
||||
|
||||
/obj/item/weapon/storage/box/syringegun/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/syringe_cartridge(src)
|
||||
starts_with = list(/obj/item/weapon/syringe_cartridge = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/beakers
|
||||
name = "box of beakers"
|
||||
icon_state = "beaker"
|
||||
|
||||
/obj/item/weapon/storage/box/beakers/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/glass/beaker = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/injectors
|
||||
name = "box of DNA injectors"
|
||||
desc = "This box contains injectors it seems."
|
||||
|
||||
/obj/item/weapon/storage/box/injectors/New()
|
||||
..()
|
||||
for(var/i = 1 to 3)
|
||||
new /obj/item/weapon/dnainjector/h2m(src)
|
||||
for(var/i = 1 to 3)
|
||||
new /obj/item/weapon/dnainjector/m2h(src)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/dnainjector/h2m = 3,
|
||||
/obj/item/weapon/dnainjector/m2h = 3
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/blanks
|
||||
name = "box of blank shells"
|
||||
desc = "It has a picture of a gun and several warning symbols on the front."
|
||||
icon_state = "blankshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/blank = 8)
|
||||
|
||||
/obj/item/weapon/storage/box/blanks/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/blank(src)
|
||||
|
||||
/obj/item/weapon/storage/box/blanks/large/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/blank(src)
|
||||
/obj/item/weapon/storage/box/blanks/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/blank = 16)
|
||||
|
||||
/obj/item/weapon/storage/box/beanbags
|
||||
name = "box of beanbag shells"
|
||||
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
||||
icon_state = "beanshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
|
||||
/obj/item/weapon/storage/box/beanbags/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/beanbag(src)
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 8)
|
||||
|
||||
/obj/item/weapon/storage/box/beanbags/large/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/beanbag(src)
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 16)
|
||||
|
||||
/obj/item/weapon/storage/box/shotgunammo
|
||||
name = "box of shotgun slugs"
|
||||
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
||||
icon_state = "lethalshellshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g = 8)
|
||||
|
||||
/obj/item/weapon/storage/box/shotgunammo/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g(src)
|
||||
|
||||
/obj/item/weapon/storage/box/shotgunammo/large/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g(src)
|
||||
/obj/item/weapon/storage/box/shotgunammo/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g = 16)
|
||||
|
||||
/obj/item/weapon/storage/box/shotgunshells
|
||||
name = "box of shotgun shells"
|
||||
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
||||
icon_state = "lethalslug_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/pellet = 8)
|
||||
|
||||
/obj/item/weapon/storage/box/shotgunshells/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/pellet(src)
|
||||
|
||||
/obj/item/weapon/storage/box/shotgunshells/large/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/pellet(src)
|
||||
/obj/item/weapon/storage/box/shotgunshells/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/pellet = 16)
|
||||
|
||||
/obj/item/weapon/storage/box/flashshells
|
||||
name = "box of illumination shells"
|
||||
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
||||
icon_state = "illumshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/flash = 8)
|
||||
|
||||
/obj/item/weapon/storage/box/flashshells/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/flash(src)
|
||||
|
||||
/obj/item/weapon/storage/box/flashshells/large/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/flash(src)
|
||||
/obj/item/weapon/storage/box/flashshells/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/flash = 16)
|
||||
|
||||
/obj/item/weapon/storage/box/stunshells
|
||||
name = "box of stun shells"
|
||||
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
||||
icon_state = "stunshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 8)
|
||||
|
||||
/obj/item/weapon/storage/box/stunshells/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/stunshell(src)
|
||||
|
||||
/obj/item/weapon/storage/box/stunshells/large/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/stunshell(src)
|
||||
/obj/item/weapon/storage/box/stunshells/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 16)
|
||||
|
||||
/obj/item/weapon/storage/box/practiceshells
|
||||
name = "box of practice shells"
|
||||
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
||||
icon_state = "blankshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/practice = 8)
|
||||
|
||||
/obj/item/weapon/storage/box/practiceshells/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/practice(src)
|
||||
|
||||
/obj/item/weapon/storage/box/practiceshells/large/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/practice(src)
|
||||
/obj/item/weapon/storage/box/practiceshells/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/practice = 16)
|
||||
|
||||
/obj/item/weapon/storage/box/empshells
|
||||
name = "box of emp shells"
|
||||
desc = "It has a picture of a gun and several warning symbols on the front."
|
||||
icon_state = "empshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/emp = 8)
|
||||
|
||||
/obj/item/weapon/storage/box/empshells/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/emp(src)
|
||||
|
||||
/obj/item/weapon/storage/box/empshells/large/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/ammo_casing/a12g/emp(src)
|
||||
/obj/item/weapon/storage/box/empshells/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/emp = 16)
|
||||
|
||||
/obj/item/weapon/storage/box/sniperammo
|
||||
name = "box of 14.5mm shells"
|
||||
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
||||
|
||||
/obj/item/weapon/storage/box/sniperammo/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/ammo_casing/a145(src)
|
||||
starts_with = list(/obj/item/ammo_casing/a145 = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/flashbangs
|
||||
name = "box of flashbangs (WARNING)"
|
||||
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use.</B>"
|
||||
icon_state = "flashbang"
|
||||
|
||||
/obj/item/weapon/storage/box/flashbangs/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/grenade/flashbang(src)
|
||||
starts_with = list(/obj/item/weapon/grenade/flashbang = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/emps
|
||||
name = "box of emp grenades"
|
||||
desc = "A box containing 5 military grade EMP grenades.<br> WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur."
|
||||
icon_state = "emp"
|
||||
|
||||
/obj/item/weapon/storage/box/emps/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/grenade/empgrenade(src)
|
||||
starts_with = list(/obj/item/weapon/grenade/empgrenade = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/empslite
|
||||
name = "box of low yield emp grenades"
|
||||
desc = "A box containing 5 low yield EMP grenades.<br> WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur."
|
||||
icon_state = "emp"
|
||||
|
||||
/obj/item/weapon/storage/box/empslite/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/grenade/empgrenade/low_yield(src)
|
||||
starts_with = list(/obj/item/weapon/grenade/empgrenade/low_yield = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/smokes
|
||||
name = "box of smoke bombs"
|
||||
desc = "A box containing 7 smoke bombs."
|
||||
icon_state = "flashbang"
|
||||
|
||||
/obj/item/weapon/storage/box/smokes/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/grenade/smokebomb(src)
|
||||
starts_with = list(/obj/item/weapon/grenade/smokebomb = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/anti_photons
|
||||
name = "box of anti-photon grenades"
|
||||
desc = "A box containing 7 experimental photon disruption grenades."
|
||||
icon_state = "flashbang"
|
||||
|
||||
/obj/item/weapon/storage/box/anti_photons/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/grenade/anti_photon(src)
|
||||
starts_with = list(/obj/item/weapon/grenade/anti_photon = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/frags
|
||||
name = "box of fragmentation grenades (WARNING)"
|
||||
desc = "A box containing 7 military grade fragmentation grenades.<br> WARNING: These devices are extremely dangerous and can cause limb loss or death in repeated use."
|
||||
icon_state = "frag"
|
||||
|
||||
/obj/item/weapon/storage/box/frags/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/grenade/explosive(src)
|
||||
starts_with = list(/obj/item/weapon/grenade/explosive = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/frags_half_box
|
||||
name = "box of fragmentation grenades (WARNING)"
|
||||
desc = "A box containing 4 military grade fragmentation grenades.<br> WARNING: These devices are extremely dangerous and can cause limb loss or death in repeated use."
|
||||
icon_state = "frag"
|
||||
|
||||
/obj/item/weapon/storage/box/frags_half_box/New()
|
||||
..()
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/weapon/grenade/explosive(src)
|
||||
starts_with = list(/obj/item/weapon/grenade/explosive = 4)
|
||||
|
||||
/obj/item/weapon/storage/box/metalfoam
|
||||
name = "box of metal foam grenades."
|
||||
desc = "A box containing 7 metal foam grenades."
|
||||
icon_state = "flashbang"
|
||||
|
||||
/obj/item/weapon/storage/box/metalfoam/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
starts_with = list(/obj/item/weapon/grenade/chem_grenade/metalfoam = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/teargas
|
||||
name = "box of teargas grenades"
|
||||
desc = "A box containing 7 teargas grenades."
|
||||
icon_state = "flashbang"
|
||||
|
||||
/obj/item/weapon/storage/box/teargas/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/grenade/chem_grenade/teargas(src)
|
||||
starts_with = list(/obj/item/weapon/grenade/chem_grenade/teargas = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/flare
|
||||
name = "box of flares"
|
||||
desc = "A box containing 4 flares."
|
||||
|
||||
/obj/item/weapon/storage/box/flare/New()
|
||||
..()
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/device/flashlight/flare(src)
|
||||
starts_with = list(/obj/item/device/flashlight/flare = 4)
|
||||
|
||||
/obj/item/weapon/storage/box/trackimp
|
||||
name = "boxed tracking implant kit"
|
||||
desc = "Box full of scum-bag tracking utensils."
|
||||
icon_state = "implant"
|
||||
|
||||
/obj/item/weapon/storage/box/trackimp/New()
|
||||
..()
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/weapon/implantcase/tracking(src)
|
||||
new /obj/item/weapon/implanter(src)
|
||||
new /obj/item/weapon/implantpad(src)
|
||||
new /obj/item/weapon/locator(src)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/implantcase/tracking = 4,
|
||||
/obj/item/weapon/implanter,
|
||||
/obj/item/weapon/implantpad,
|
||||
/obj/item/weapon/locator
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/chemimp
|
||||
name = "boxed chemical implant kit"
|
||||
desc = "Box of stuff used to implant chemicals."
|
||||
icon_state = "implant"
|
||||
|
||||
/obj/item/weapon/storage/box/chemimp/New()
|
||||
..()
|
||||
for(var/i = 1 to 5)
|
||||
new /obj/item/weapon/implantcase/chem(src)
|
||||
new /obj/item/weapon/implanter(src)
|
||||
new /obj/item/weapon/implantpad(src)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/implantcase/chem = 5,
|
||||
/obj/item/weapon/implanter,
|
||||
/obj/item/weapon/implantpad
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/camerabug
|
||||
name = "mobile camera pod box"
|
||||
desc = "A box containing some mobile camera pods."
|
||||
icon_state = "pda"
|
||||
|
||||
/obj/item/weapon/storage/box/camerabug/New()
|
||||
..()
|
||||
for(var/i = 1 to 6)
|
||||
new /obj/item/device/camerabug(src)
|
||||
new /obj/item/device/bug_monitor(src)
|
||||
starts_with = list(
|
||||
/obj/item/device/camerabug = 6,
|
||||
/obj/item/device/bug_monitor
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/rxglasses
|
||||
name = "box of prescription glasses"
|
||||
desc = "This box contains nerd glasses."
|
||||
icon_state = "glasses"
|
||||
|
||||
/obj/item/weapon/storage/box/rxglasses/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/clothing/glasses/regular(src)
|
||||
starts_with = list(/obj/item/clothing/glasses/regular = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/cdeathalarm_kit
|
||||
name = "death alarm kit"
|
||||
desc = "Box of stuff used to implant death alarms."
|
||||
icon_state = "implant"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
|
||||
/obj/item/weapon/storage/box/cdeathalarm_kit/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/implantcase/death_alarm(src)
|
||||
new /obj/item/weapon/implanter(src)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/implantcase/death_alarm = 7,
|
||||
/obj/item/weapon/implanter
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/condimentbottles
|
||||
name = "box of condiment bottles"
|
||||
desc = "It has a large ketchup smear on it."
|
||||
|
||||
/obj/item/weapon/storage/box/condimentbottles/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/condiment = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/cups
|
||||
name = "box of paper cups"
|
||||
desc = "It has pictures of paper cups on the front."
|
||||
|
||||
/obj/item/weapon/storage/box/cups/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/sillycup(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/drinks/sillycup = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/donkpockets
|
||||
name = "box of donk-pockets"
|
||||
desc = "<B>Instructions:</B> <I>Heat in microwave. Product will cool if not eaten within seven minutes.</I>"
|
||||
icon_state = "donk_kit"
|
||||
|
||||
/obj/item/weapon/storage/box/donkpockets/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donkpocket = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/sinpockets
|
||||
name = "box of sin-pockets"
|
||||
desc = "<B>Instructions:</B> <I>Crush bottom of package to initiate chemical heating. Wait for 20 seconds before consumption. Product will cool if not eaten within seven minutes.</I>"
|
||||
icon_state = "donk_kit"
|
||||
|
||||
/obj/item/weapon/storage/box/sinpockets/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes
|
||||
name = "monkey cube box"
|
||||
@@ -469,88 +326,51 @@
|
||||
icon = 'icons/obj/food.dmi'
|
||||
icon_state = "monkeycubebox"
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube)
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/New()
|
||||
..()
|
||||
if(type == /obj/item/weapon/storage/box/monkeycubes)
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped = 4)
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/farwacubes
|
||||
name = "farwa cube box"
|
||||
desc = "Drymate brand farwa cubes, shipped from Meralar. Just add water!"
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/farwacubes/New()
|
||||
..()
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube = 4)
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/stokcubes
|
||||
name = "stok cube box"
|
||||
desc = "Drymate brand stok cubes, shipped from Moghes. Just add water!"
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/stokcubes/New()
|
||||
..()
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube = 4)
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/neaeracubes
|
||||
name = "neaera cube box"
|
||||
desc = "Drymate brand neaera cubes, shipped from Jargon 4. Just add water!"
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/neaeracubes/New()
|
||||
..()
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube = 4)
|
||||
|
||||
/obj/item/weapon/storage/box/ids
|
||||
name = "box of spare IDs"
|
||||
desc = "Has so many empty IDs."
|
||||
icon_state = "id"
|
||||
|
||||
/obj/item/weapon/storage/box/ids/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/card/id(src)
|
||||
starts_with = list(/obj/item/weapon/card/id = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/seccarts
|
||||
name = "box of spare R.O.B.U.S.T. Cartridges"
|
||||
desc = "A box full of R.O.B.U.S.T. Cartridges, used by Security."
|
||||
icon_state = "pda"
|
||||
|
||||
/obj/item/weapon/storage/box/seccarts/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/cartridge/security(src)
|
||||
starts_with = list(/obj/item/weapon/cartridge/security = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/handcuffs
|
||||
name = "box of spare handcuffs"
|
||||
desc = "A box full of handcuffs."
|
||||
icon_state = "handcuff"
|
||||
|
||||
/obj/item/weapon/storage/box/handcuffs/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/handcuffs(src)
|
||||
starts_with = list(/obj/item/weapon/handcuffs = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/mousetraps
|
||||
name = "box of Pest-B-Gon mousetraps"
|
||||
desc = "<B><FONT color='red'>WARNING:</FONT></B> <I>Keep out of reach of children</I>."
|
||||
icon_state = "mousetraps"
|
||||
|
||||
/obj/item/weapon/storage/box/mousetraps/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/device/assembly/mousetrap(src)
|
||||
starts_with = list(/obj/item/device/assembly/mousetrap = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/pillbottles
|
||||
name = "box of pill bottles"
|
||||
desc = "It has pictures of pill bottles on its front."
|
||||
|
||||
/obj/item/weapon/storage/box/pillbottles/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/weapon/storage/pill_bottle(src)
|
||||
starts_with = list(/obj/item/weapon/storage/pill_bottle = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/snappops
|
||||
name = "snap pop box"
|
||||
@@ -558,11 +378,7 @@
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
icon_state = "spbox"
|
||||
can_hold = list(/obj/item/toy/snappop)
|
||||
|
||||
/obj/item/weapon/storage/box/snappops/New()
|
||||
..()
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/toy/snappop(src)
|
||||
starts_with = list(/obj/item/toy/snappop = 8)
|
||||
|
||||
/obj/item/weapon/storage/box/matches
|
||||
name = "matchbox"
|
||||
@@ -572,11 +388,7 @@
|
||||
w_class = ITEMSIZE_TINY
|
||||
slot_flags = SLOT_BELT
|
||||
can_hold = list(/obj/item/weapon/flame/match)
|
||||
|
||||
/obj/item/weapon/storage/box/matches/New()
|
||||
..()
|
||||
for(var/i=1 to 10)
|
||||
new /obj/item/weapon/flame/match(src)
|
||||
starts_with = list(/obj/item/weapon/flame/match = 10)
|
||||
|
||||
/obj/item/weapon/storage/box/matches/attackby(obj/item/weapon/flame/match/W as obj, mob/user as mob)
|
||||
if(istype(W) && !W.lit && !W.burnt)
|
||||
@@ -591,11 +403,7 @@
|
||||
name = "box of injectors"
|
||||
desc = "Contains autoinjectors."
|
||||
icon_state = "syringe"
|
||||
|
||||
/obj/item/weapon/storage/box/autoinjectors/New()
|
||||
..()
|
||||
for (var/i = 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/autoinjector(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/lights
|
||||
name = "box of replacement bulbs"
|
||||
@@ -608,30 +416,21 @@
|
||||
max_storage_space = ITEMSIZE_COST_SMALL * 24 //holds 24 items of w_class 2
|
||||
use_to_pickup = 1 // for picking up broken bulbs, not that most people will try
|
||||
|
||||
/obj/item/weapon/storage/box/lights/bulbs/New()
|
||||
..()
|
||||
for(var/i = 1 to 24)
|
||||
new /obj/item/weapon/light/bulb(src)
|
||||
/obj/item/weapon/storage/box/lights/bulbs
|
||||
starts_with = list(/obj/item/weapon/light/bulb = 24)
|
||||
|
||||
/obj/item/weapon/storage/box/lights/tubes
|
||||
name = "box of replacement tubes"
|
||||
icon_state = "lighttube"
|
||||
|
||||
/obj/item/weapon/storage/box/lights/tubes/New()
|
||||
..()
|
||||
for(var/i = 1 to 24)
|
||||
new /obj/item/weapon/light/tube(src)
|
||||
starts_with = list(/obj/item/weapon/light/tube = 24)
|
||||
|
||||
/obj/item/weapon/storage/box/lights/mixed
|
||||
name = "box of replacement lights"
|
||||
icon_state = "lightmixed"
|
||||
|
||||
/obj/item/weapon/storage/box/lights/mixed/New()
|
||||
..()
|
||||
for(var/i = 1 to 16)
|
||||
new /obj/item/weapon/light/tube(src)
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/weapon/light/bulb(src)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/light/tube = 16,
|
||||
/obj/item/weapon/light/bulb = 8
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/freezer
|
||||
name = "portable freezer"
|
||||
@@ -664,17 +463,9 @@
|
||||
/obj/item/weapon/storage/box/ambrosia
|
||||
name = "ambrosia seeds box"
|
||||
desc = "Contains the seeds you need to get a little high."
|
||||
|
||||
/obj/item/weapon/storage/box/ambrosia/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/seeds/ambrosiavulgarisseed(src)
|
||||
starts_with = list(/obj/item/seeds/ambrosiavulgarisseed = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/ambrosiadeus
|
||||
name = "ambrosia deus seeds box"
|
||||
desc = "Contains the seeds you need to get a proper healthy high."
|
||||
|
||||
/obj/item/weapon/storage/box/ambrosiadeus/New()
|
||||
..()
|
||||
for(var/i = 1 to 7)
|
||||
new /obj/item/seeds/ambrosiadeusseed(src)
|
||||
starts_with = list(/obj/item/seeds/ambrosiadeusseed = 7)
|
||||
|
||||
@@ -52,12 +52,7 @@
|
||||
/obj/item/weapon/reagent_containers/food/snacks/egg,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/boiledegg
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/fancy/egg_box/New()
|
||||
..()
|
||||
for(var/i=1 to storage_slots)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/egg(src)
|
||||
return
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/egg = 12)
|
||||
|
||||
/*
|
||||
* Candle Box
|
||||
@@ -72,12 +67,7 @@
|
||||
item_state = "candlebox5"
|
||||
throwforce = 2
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
/obj/item/weapon/storage/fancy/candle_box/New()
|
||||
..()
|
||||
for(var/i=1 to 5)
|
||||
new /obj/item/weapon/flame/candle(src)
|
||||
return
|
||||
starts_with = list(/obj/item/weapon/flame/candle = 5)
|
||||
|
||||
/*
|
||||
* Crayon Box
|
||||
@@ -93,31 +83,36 @@
|
||||
can_hold = list(
|
||||
/obj/item/weapon/pen/crayon
|
||||
)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/pen/crayon/red,
|
||||
/obj/item/weapon/pen/crayon/orange,
|
||||
/obj/item/weapon/pen/crayon/yellow,
|
||||
/obj/item/weapon/pen/crayon/green,
|
||||
/obj/item/weapon/pen/crayon/blue,
|
||||
/obj/item/weapon/pen/crayon/purple
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/fancy/crayons/New()
|
||||
..()
|
||||
new /obj/item/weapon/pen/crayon/red(src)
|
||||
new /obj/item/weapon/pen/crayon/orange(src)
|
||||
new /obj/item/weapon/pen/crayon/yellow(src)
|
||||
new /obj/item/weapon/pen/crayon/green(src)
|
||||
new /obj/item/weapon/pen/crayon/blue(src)
|
||||
new /obj/item/weapon/pen/crayon/purple(src)
|
||||
/obj/item/weapon/storage/fancy/crayons/initialize()
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/storage/fancy/crayons/update_icon()
|
||||
overlays = list() //resets list
|
||||
overlays += image('icons/obj/crayons.dmi',"crayonbox")
|
||||
var/mutable_appearance/ma = new(src)
|
||||
ma.plane = plane
|
||||
ma.layer = layer
|
||||
ma.overlays = list()
|
||||
for(var/obj/item/weapon/pen/crayon/crayon in contents)
|
||||
overlays += image('icons/obj/crayons.dmi',crayon.colourName)
|
||||
ma.overlays += image('icons/obj/crayons.dmi',crayon.colourName)
|
||||
appearance = ma
|
||||
|
||||
/obj/item/weapon/storage/fancy/crayons/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/weapon/pen/crayon))
|
||||
switch(W:colourName)
|
||||
if("mime")
|
||||
usr << "This crayon is too sad to be contained in this box."
|
||||
to_chat(usr,"This crayon is too sad to be contained in this box.")
|
||||
return
|
||||
if("rainbow")
|
||||
usr << "This crayon is too powerful to be contained in this box."
|
||||
to_chat(usr,"This crayon is too powerful to be contained in this box.")
|
||||
return
|
||||
..()
|
||||
|
||||
@@ -136,13 +131,12 @@
|
||||
storage_slots = 6
|
||||
can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/weapon/flame/lighter)
|
||||
icon_type = "cigarette"
|
||||
starts_with = list(/obj/item/clothing/mask/smokable/cigarette = 6)
|
||||
var/brand = "\improper Trans-Stellar Duty-free"
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/New()
|
||||
..()
|
||||
/obj/item/weapon/storage/fancy/cigarettes/initialize()
|
||||
. = ..()
|
||||
flags |= NOREACT
|
||||
for(var/i = 1 to storage_slots)
|
||||
new /obj/item/clothing/mask/smokable/cigarette(src)
|
||||
create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one
|
||||
flags |= OPENCONTAINER
|
||||
if(brand)
|
||||
@@ -201,10 +195,6 @@
|
||||
icon_state = "Bpacket"
|
||||
brand = "\improper Acme Co. cigarette"
|
||||
|
||||
// New()
|
||||
// ..()
|
||||
// fill_cigarre_package(src,list("fuel" = 15))
|
||||
|
||||
// New exciting ways to kill your lungs! - Earthcrusher //
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/luckystars
|
||||
@@ -248,12 +238,11 @@
|
||||
storage_slots = 7
|
||||
can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar)
|
||||
icon_type = "cigar"
|
||||
starts_with = list(/obj/item/clothing/mask/smokable/cigarette/cigar = 7)
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigar/New()
|
||||
..()
|
||||
/obj/item/weapon/storage/fancy/cigar/initialize()
|
||||
. = ..()
|
||||
flags |= NOREACT
|
||||
for(var/i = 1 to storage_slots)
|
||||
new /obj/item/clothing/mask/smokable/cigarette/cigar(src)
|
||||
create_reagents(15 * storage_slots)
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigar/update_icon()
|
||||
@@ -261,10 +250,10 @@
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigar/remove_from_storage(obj/item/W as obj, atom/new_location)
|
||||
var/obj/item/clothing/mask/smokable/cigarette/cigar/C = W
|
||||
if(!istype(C)) return
|
||||
reagents.trans_to_obj(C, (reagents.total_volume/contents.len))
|
||||
..()
|
||||
var/obj/item/clothing/mask/smokable/cigarette/cigar/C = W
|
||||
if(!istype(C)) return
|
||||
reagents.trans_to_obj(C, (reagents.total_volume/contents.len))
|
||||
..()
|
||||
|
||||
/*
|
||||
* Vial Box
|
||||
@@ -277,12 +266,7 @@
|
||||
name = "vial storage box"
|
||||
storage_slots = 6
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/glass/beaker/vial)
|
||||
|
||||
/obj/item/weapon/storage/fancy/vials/New()
|
||||
..()
|
||||
for(var/i=1 to 6)
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker/vial(src)
|
||||
return
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/glass/beaker/vial = 6)
|
||||
|
||||
/obj/item/weapon/storage/lockbox/vials
|
||||
name = "secure vial storage box"
|
||||
@@ -296,8 +280,8 @@
|
||||
storage_slots = 6
|
||||
req_access = list(access_virology)
|
||||
|
||||
/obj/item/weapon/storage/lockbox/vials/New()
|
||||
..()
|
||||
/obj/item/weapon/storage/lockbox/vials/initialize()
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/storage/lockbox/vials/update_icon(var/itemremoved = 0)
|
||||
@@ -330,19 +314,19 @@
|
||||
/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle
|
||||
)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/fancy/heartbox/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle(src)
|
||||
/obj/item/weapon/storage/fancy/heartbox/initialize()
|
||||
. = ..()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/fancy/heartbox/update_icon(var/itemremoved = 0)
|
||||
if (contents.len == 0)
|
||||
icon_state = "heartbox_empty"
|
||||
return
|
||||
@@ -13,158 +13,147 @@
|
||||
icon_state = "firstaid"
|
||||
throw_speed = 2
|
||||
throw_range = 8
|
||||
var/empty = 0
|
||||
max_storage_space = ITEMSIZE_COST_SMALL * 7 // 14
|
||||
var/list/icon_variety
|
||||
|
||||
/obj/item/weapon/storage/firstaid/initialize()
|
||||
. = ..()
|
||||
if(icon_variety)
|
||||
icon_state = pick(icon_variety)
|
||||
icon_variety = null
|
||||
|
||||
/obj/item/weapon/storage/firstaid/fire
|
||||
name = "fire first aid kit"
|
||||
desc = "It's an emergency medical kit for when the toxins lab <i>spontaneously</i> burns down."
|
||||
icon_state = "ointment"
|
||||
item_state_slots = list(slot_r_hand_str = "firstaid-ointment", slot_l_hand_str = "firstaid-ointment")
|
||||
|
||||
New()
|
||||
..()
|
||||
if (empty) return
|
||||
|
||||
icon_state = pick("ointment","firefirstaid")
|
||||
|
||||
new /obj/item/device/healthanalyzer( src )
|
||||
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
|
||||
new /obj/item/stack/medical/ointment( src )
|
||||
new /obj/item/stack/medical/ointment( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/kelotane( src ) //Replaced ointment with these since they actually work --Errorage
|
||||
return
|
||||
|
||||
icon_variety = list("ointment","firefirstaid")
|
||||
starts_with = list(
|
||||
/obj/item/device/healthanalyzer,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector,
|
||||
/obj/item/stack/medical/ointment,
|
||||
/obj/item/stack/medical/ointment,
|
||||
/obj/item/weapon/reagent_containers/pill/kelotane,
|
||||
/obj/item/weapon/reagent_containers/pill/kelotane,
|
||||
/obj/item/weapon/reagent_containers/pill/kelotane
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/firstaid/regular
|
||||
icon_state = "firstaid"
|
||||
|
||||
New()
|
||||
..()
|
||||
if (empty) return
|
||||
new /obj/item/stack/medical/bruise_pack(src)
|
||||
new /obj/item/stack/medical/bruise_pack(src)
|
||||
new /obj/item/stack/medical/bruise_pack(src)
|
||||
new /obj/item/stack/medical/ointment(src)
|
||||
new /obj/item/stack/medical/ointment(src)
|
||||
new /obj/item/device/healthanalyzer(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
|
||||
return
|
||||
starts_with = list(
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
/obj/item/stack/medical/ointment,
|
||||
/obj/item/stack/medical/ointment,
|
||||
/obj/item/device/healthanalyzer,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/firstaid/toxin
|
||||
name = "poison first aid kit" //IRL the term used would be poison first aid kit.
|
||||
desc = "Used to treat when one has a high amount of toxins in their body."
|
||||
icon_state = "antitoxin"
|
||||
item_state_slots = list(slot_r_hand_str = "firstaid-toxin", slot_l_hand_str = "firstaid-toxin")
|
||||
|
||||
New()
|
||||
..()
|
||||
if (empty) return
|
||||
|
||||
icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3")
|
||||
|
||||
new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/antitox( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/antitox( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/antitox( src )
|
||||
new /obj/item/device/healthanalyzer( src )
|
||||
return
|
||||
icon_variety = list("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3")
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/syringe/antitoxin,
|
||||
/obj/item/weapon/reagent_containers/syringe/antitoxin,
|
||||
/obj/item/weapon/reagent_containers/syringe/antitoxin,
|
||||
/obj/item/weapon/reagent_containers/pill/antitox,
|
||||
/obj/item/weapon/reagent_containers/pill/antitox,
|
||||
/obj/item/weapon/reagent_containers/pill/antitox,
|
||||
/obj/item/device/healthanalyzer
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/firstaid/o2
|
||||
name = "oxygen deprivation first aid kit"
|
||||
desc = "A box full of oxygen goodies."
|
||||
icon_state = "o2"
|
||||
item_state_slots = list(slot_r_hand_str = "firstaid-o2", slot_l_hand_str = "firstaid-o2")
|
||||
|
||||
New()
|
||||
..()
|
||||
if (empty) return
|
||||
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
|
||||
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
|
||||
new /obj/item/device/healthanalyzer( src )
|
||||
return
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/pill/dexalin,
|
||||
/obj/item/weapon/reagent_containers/pill/dexalin,
|
||||
/obj/item/weapon/reagent_containers/pill/dexalin,
|
||||
/obj/item/weapon/reagent_containers/pill/dexalin,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector,
|
||||
/obj/item/weapon/reagent_containers/syringe/inaprovaline,
|
||||
/obj/item/device/healthanalyzer
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/firstaid/adv
|
||||
name = "advanced first aid kit"
|
||||
desc = "Contains advanced medical treatments, for <b>serious</b> boo-boos."
|
||||
icon_state = "advfirstaid"
|
||||
item_state_slots = list(slot_r_hand_str = "firstaid-advanced", slot_l_hand_str = "firstaid-advanced")
|
||||
|
||||
/obj/item/weapon/storage/firstaid/adv/New()
|
||||
..()
|
||||
if (empty) return
|
||||
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
|
||||
new /obj/item/stack/medical/advanced/bruise_pack(src)
|
||||
new /obj/item/stack/medical/advanced/bruise_pack(src)
|
||||
new /obj/item/stack/medical/advanced/bruise_pack(src)
|
||||
new /obj/item/stack/medical/advanced/ointment(src)
|
||||
new /obj/item/stack/medical/advanced/ointment(src)
|
||||
new /obj/item/stack/medical/splint(src)
|
||||
return
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector,
|
||||
/obj/item/stack/medical/advanced/bruise_pack,
|
||||
/obj/item/stack/medical/advanced/bruise_pack,
|
||||
/obj/item/stack/medical/advanced/bruise_pack,
|
||||
/obj/item/stack/medical/advanced/ointment,
|
||||
/obj/item/stack/medical/advanced/ointment,
|
||||
/obj/item/stack/medical/splint
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/firstaid/combat
|
||||
name = "combat medical kit"
|
||||
desc = "Contains advanced medical treatments."
|
||||
icon_state = "bezerk"
|
||||
item_state_slots = list(slot_r_hand_str = "firstaid-advanced", slot_l_hand_str = "firstaid-advanced")
|
||||
|
||||
/obj/item/weapon/storage/firstaid/combat/New()
|
||||
..()
|
||||
if (empty) return
|
||||
new /obj/item/weapon/storage/pill_bottle/bicaridine(src)
|
||||
new /obj/item/weapon/storage/pill_bottle/dermaline(src)
|
||||
new /obj/item/weapon/storage/pill_bottle/dexalin_plus(src)
|
||||
new /obj/item/weapon/storage/pill_bottle/dylovene(src)
|
||||
new /obj/item/weapon/storage/pill_bottle/tramadol(src)
|
||||
new /obj/item/weapon/storage/pill_bottle/spaceacillin(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting(src)
|
||||
new /obj/item/stack/medical/splint(src)
|
||||
new /obj/item/device/healthanalyzer/advanced(src)
|
||||
return
|
||||
starts_with = list(
|
||||
/obj/item/weapon/storage/pill_bottle/bicaridine,
|
||||
/obj/item/weapon/storage/pill_bottle/dermaline,
|
||||
/obj/item/weapon/storage/pill_bottle/dexalin_plus,
|
||||
/obj/item/weapon/storage/pill_bottle/dylovene,
|
||||
/obj/item/weapon/storage/pill_bottle/tramadol,
|
||||
/obj/item/weapon/storage/pill_bottle/spaceacillin,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting,
|
||||
/obj/item/stack/medical/splint,
|
||||
/obj/item/device/healthanalyzer/advanced
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/firstaid/surgery
|
||||
name = "surgery kit"
|
||||
desc = "Contains tools for surgery."
|
||||
max_storage_space = ITEMSIZE_COST_NORMAL * 6 // Formally 21. Odd numbers should be avoided for a system based on exponents of 2.
|
||||
desc = "Contains tools for surgery. Has precise foam fitting for safe transport and automatically sterilizes the content between uses."
|
||||
icon_state = "surgerykit"
|
||||
item_state = "firstaid-surgery"
|
||||
max_w_class = ITEMSIZE_NORMAL
|
||||
|
||||
/obj/item/weapon/storage/firstaid/surgery/New()
|
||||
..()
|
||||
if (empty) return
|
||||
new /obj/item/weapon/surgical/bonesetter(src)
|
||||
new /obj/item/weapon/surgical/cautery(src)
|
||||
new /obj/item/weapon/surgical/circular_saw(src)
|
||||
new /obj/item/weapon/surgical/hemostat(src)
|
||||
new /obj/item/weapon/surgical/retractor(src)
|
||||
new /obj/item/weapon/surgical/scalpel(src)
|
||||
new /obj/item/weapon/surgical/surgicaldrill(src)
|
||||
new /obj/item/weapon/surgical/bonegel(src)
|
||||
new /obj/item/weapon/surgical/FixOVein(src)
|
||||
new /obj/item/stack/medical/advanced/bruise_pack(src)
|
||||
new /obj/item/device/healthanalyzer/enhanced(src)
|
||||
return
|
||||
can_hold = list(
|
||||
/obj/item/weapon/surgical/bonesetter,
|
||||
/obj/item/weapon/surgical/cautery,
|
||||
/obj/item/weapon/surgical/circular_saw,
|
||||
/obj/item/weapon/surgical/hemostat,
|
||||
/obj/item/weapon/surgical/retractor,
|
||||
/obj/item/weapon/surgical/scalpel,
|
||||
/obj/item/weapon/surgical/surgicaldrill,
|
||||
/obj/item/weapon/surgical/bonegel,
|
||||
/obj/item/weapon/surgical/FixOVein,
|
||||
/obj/item/stack/medical/advanced/bruise_pack,
|
||||
/obj/item/stack/nanopaste,
|
||||
/obj/item/device/healthanalyzer/advanced
|
||||
)
|
||||
|
||||
starts_with = list(
|
||||
/obj/item/weapon/surgical/bonesetter,
|
||||
/obj/item/weapon/surgical/cautery,
|
||||
/obj/item/weapon/surgical/circular_saw,
|
||||
/obj/item/weapon/surgical/hemostat,
|
||||
/obj/item/weapon/surgical/retractor,
|
||||
/obj/item/weapon/surgical/scalpel,
|
||||
/obj/item/weapon/surgical/surgicaldrill,
|
||||
/obj/item/weapon/surgical/bonegel,
|
||||
/obj/item/weapon/surgical/FixOVein,
|
||||
/obj/item/stack/medical/advanced/bruise_pack,
|
||||
/obj/item/device/healthanalyzer/advanced
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/firstaid/clotting
|
||||
name = "clotting kit"
|
||||
desc = "Contains chemicals to stop bleeding."
|
||||
max_storage_space = ITEMSIZE_COST_SMALL * 7
|
||||
|
||||
/obj/item/weapon/storage/firstaid/clotting/New()
|
||||
..()
|
||||
if (empty)
|
||||
return
|
||||
for(var/i = 1 to 8)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting(src)
|
||||
return
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting = 8)
|
||||
|
||||
/*
|
||||
* Pill Bottles
|
||||
@@ -187,167 +176,59 @@
|
||||
/obj/item/weapon/storage/pill_bottle/antitox
|
||||
name = "bottle of Dylovene pills"
|
||||
desc = "Contains pills used to counter toxins."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/antitox/New() //25u each
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/antitox(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/antitox(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/antitox(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/antitox(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/antitox(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/antitox(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/antitox(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/antitox = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/bicaridine
|
||||
name = "bottle of Bicaridine pills"
|
||||
desc = "Contains pills used to stabilize the severely injured."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/bicaridine/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/bicaridine = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/dexalin_plus
|
||||
name = "bottle of Dexalin Plus pills"
|
||||
desc = "Contains pills used to treat extreme cases of oxygen deprivation."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/dexalin_plus/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/dexalin_plus = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/dermaline
|
||||
name = "bottle of Dermaline pills"
|
||||
desc = "Contains pills used to treat burn wounds."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/dermaline/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/dermaline = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/dylovene
|
||||
name = "bottle of Dylovene pills"
|
||||
desc = "Contains pills used to treat toxic substances in the blood."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/dylovene/New() //15u each
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/dylovene = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/inaprovaline
|
||||
name = "bottle of Inaprovaline pills"
|
||||
desc = "Contains pills used to stabilize patients."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/inaprovaline/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/inaprovaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/inaprovaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/inaprovaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/inaprovaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/inaprovaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/inaprovaline(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/inaprovaline(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/inaprovaline = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/kelotane
|
||||
name = "bottle of kelotane pills"
|
||||
desc = "Contains pills used to treat burns."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/kelotane/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/kelotane(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/kelotane(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/kelotane(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/kelotane(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/kelotane(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/kelotane(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/kelotane(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/kelotane = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/spaceacillin
|
||||
name = "bottle of Spaceacillin pills"
|
||||
desc = "A theta-lactam antibiotic. Effective against many diseases likely to be encountered in space."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/spaceacillin/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/spaceacillin = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/tramadol
|
||||
name = "bottle of Tramadol pills"
|
||||
desc = "Contains pills used to relieve pain."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/tramadol/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/tramadol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/tramadol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/tramadol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/tramadol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/tramadol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/tramadol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/tramadol(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/tramadol = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/citalopram
|
||||
name = "bottle of Citalopram pills"
|
||||
desc = "Contains pills used to stabilize a patient's mood."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/citalopram/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/citalopram(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/citalopram(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/citalopram(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/citalopram(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/citalopram(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/citalopram(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/citalopram(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/citalopram = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/carbon
|
||||
name = "bottle of Carbon pills"
|
||||
desc = "Contains pills used to neutralise chemicals in the stomach."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/carbon/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/carbon(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/carbon(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/carbon(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/carbon(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/carbon(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/carbon(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/carbon(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/carbon = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/iron
|
||||
name = "bottle of Iron pills"
|
||||
desc = "Contains pills used to aid in blood regeneration."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/iron/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/iron(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/iron(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/iron(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/iron(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/iron(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/iron(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/iron(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/iron = 7)
|
||||
|
||||
@@ -77,36 +77,28 @@
|
||||
/obj/item/weapon/storage/lockbox/loyalty
|
||||
name = "lockbox of loyalty implants"
|
||||
req_access = list(access_security)
|
||||
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/implantcase/loyalty(src)
|
||||
new /obj/item/weapon/implantcase/loyalty(src)
|
||||
new /obj/item/weapon/implantcase/loyalty(src)
|
||||
new /obj/item/weapon/implanter/loyalty(src)
|
||||
|
||||
starts_with = list(
|
||||
/obj/item/weapon/implantcase/loyalty = 3,
|
||||
/obj/item/weapon/implanter/loyalty
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/lockbox/clusterbang
|
||||
name = "lockbox of clusterbangs"
|
||||
desc = "You have a bad feeling about opening this."
|
||||
req_access = list(access_security)
|
||||
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/flashbang/clusterbang(src)
|
||||
starts_with = list(/obj/item/weapon/grenade/flashbang/clusterbang)
|
||||
|
||||
/obj/item/weapon/storage/lockbox/medal
|
||||
name = "lockbox of medals"
|
||||
desc = "A lockbox filled with commemorative medals, it has the NanoTrasen logo stamped on it."
|
||||
req_access = list(access_heads)
|
||||
storage_slots = 7
|
||||
|
||||
New()
|
||||
..()
|
||||
new /obj/item/clothing/accessory/medal/conduct(src)
|
||||
new /obj/item/clothing/accessory/medal/bronze_heart(src)
|
||||
new /obj/item/clothing/accessory/medal/nobel_science(src)
|
||||
new /obj/item/clothing/accessory/medal/silver/valor(src)
|
||||
new /obj/item/clothing/accessory/medal/silver/security(src)
|
||||
new /obj/item/clothing/accessory/medal/gold/captain(src)
|
||||
new /obj/item/clothing/accessory/medal/gold/heroism(src)
|
||||
starts_with = list(
|
||||
/obj/item/clothing/accessory/medal/conduct,
|
||||
/obj/item/clothing/accessory/medal/bronze_heart,
|
||||
/obj/item/clothing/accessory/medal/nobel_science,
|
||||
/obj/item/clothing/accessory/medal/silver/valor,
|
||||
/obj/item/clothing/accessory/medal/silver/security,
|
||||
/obj/item/clothing/accessory/medal/gold/captain,
|
||||
/obj/item/clothing/accessory/medal/gold/heroism
|
||||
)
|
||||
|
||||
@@ -6,17 +6,14 @@
|
||||
icon = 'icons/obj/food.dmi'
|
||||
icon_state = "donutbox"
|
||||
name = "donut box"
|
||||
var/startswith = 6
|
||||
max_storage_space = ITEMSIZE_COST_SMALL * 6
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut)
|
||||
foldable = /obj/item/stack/material/cardboard
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donut/normal = 6)
|
||||
|
||||
/obj/item/weapon/storage/box/donut/New()
|
||||
..()
|
||||
for(var/i=1 to startswith)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/donut/normal(src)
|
||||
/obj/item/weapon/storage/box/donut/initialize()
|
||||
. = ..()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/box/donut/update_icon()
|
||||
overlays.Cut()
|
||||
@@ -26,4 +23,4 @@
|
||||
i++
|
||||
|
||||
/obj/item/weapon/storage/box/donut/empty
|
||||
startswith = 0
|
||||
empty = TRUE
|
||||
|
||||
@@ -184,15 +184,10 @@
|
||||
anchored = 1.0
|
||||
density = 0
|
||||
cant_hold = list(/obj/item/weapon/storage/secure/briefcase)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/paper,
|
||||
/obj/item/weapon/pen
|
||||
)
|
||||
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/paper(src)
|
||||
new /obj/item/weapon/pen(src)
|
||||
|
||||
attack_hand(mob/user as mob)
|
||||
return attack_self(user)
|
||||
|
||||
/obj/item/weapon/storage/secure/safe/HoS/New()
|
||||
..()
|
||||
//new /obj/item/weapon/storage/lockbox/clusterbang(src) This item is currently broken... and probably shouldnt exist to begin with (even though it's cool)
|
||||
/obj/item/weapon/storage/secure/safe/attack_hand(mob/user as mob)
|
||||
return attack_self(user)
|
||||
|
||||
@@ -36,6 +36,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.
|
||||
var/list/starts_with //Things to spawn on the box on spawn
|
||||
var/empty //Mapper override to spawn an empty version of a container that usually has stuff
|
||||
|
||||
/obj/item/weapon/storage/Destroy()
|
||||
close_all()
|
||||
@@ -576,12 +577,13 @@
|
||||
src.closer.hud_layerise()
|
||||
orient2hud()
|
||||
|
||||
if(LAZYLEN(starts_with))
|
||||
if(LAZYLEN(starts_with) && !empty)
|
||||
for(var/newtype in starts_with)
|
||||
var/count = starts_with[newtype] || 1 //Could have left it blank.
|
||||
while(count)
|
||||
count--
|
||||
new newtype(src)
|
||||
starts_with = null //Reduce list count.
|
||||
|
||||
calibrate_size()
|
||||
|
||||
|
||||
@@ -19,48 +19,50 @@
|
||||
name = "emergency toolbox"
|
||||
icon_state = "red"
|
||||
item_state_slots = list(slot_r_hand_str = "toolbox_red", slot_l_hand_str = "toolbox_red")
|
||||
|
||||
/obj/item/weapon/storage/toolbox/emergency/New()
|
||||
..()
|
||||
new /obj/item/weapon/crowbar/red(src)
|
||||
new /obj/item/weapon/extinguisher/mini(src)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/crowbar/red,
|
||||
/obj/item/weapon/extinguisher/mini,
|
||||
/obj/item/device/radio
|
||||
)
|
||||
/obj/item/weapon/storage/toolbox/emergency/initialize()
|
||||
if(prob(50))
|
||||
new /obj/item/device/flashlight(src)
|
||||
else
|
||||
new /obj/item/device/flashlight/flare(src)
|
||||
new /obj/item/device/radio(src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/storage/toolbox/mechanical
|
||||
name = "mechanical toolbox"
|
||||
icon_state = "blue"
|
||||
item_state_slots = list(slot_r_hand_str = "toolbox_blue", slot_l_hand_str = "toolbox_blue")
|
||||
|
||||
/obj/item/weapon/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)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/screwdriver,
|
||||
/obj/item/weapon/wrench,
|
||||
/obj/item/weapon/weldingtool,
|
||||
/obj/item/weapon/crowbar,
|
||||
/obj/item/device/analyzer,
|
||||
/obj/item/weapon/wirecutters
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/toolbox/electrical
|
||||
name = "electrical toolbox"
|
||||
icon_state = "yellow"
|
||||
item_state_slots = list(slot_r_hand_str = "toolbox_yellow", slot_l_hand_str = "toolbox_yellow")
|
||||
|
||||
/obj/item/weapon/storage/toolbox/electrical/New()
|
||||
..()
|
||||
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/stack/cable_coil/random(src,30)
|
||||
new /obj/item/stack/cable_coil/random(src,30)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/screwdriver,
|
||||
/obj/item/weapon/wirecutters,
|
||||
/obj/item/device/t_scanner,
|
||||
/obj/item/weapon/crowbar,
|
||||
/obj/item/stack/cable_coil/random_belt,
|
||||
/obj/item/stack/cable_coil/random_belt
|
||||
)
|
||||
/obj/item/weapon/storage/toolbox/electrical/initialize()
|
||||
. = ..()
|
||||
if(prob(5))
|
||||
new /obj/item/clothing/gloves/yellow(src)
|
||||
else
|
||||
new /obj/item/stack/cable_coil/random(src,30)
|
||||
calibrate_size()
|
||||
|
||||
/obj/item/weapon/storage/toolbox/syndicate
|
||||
name = "black and red toolbox"
|
||||
@@ -68,29 +70,26 @@
|
||||
item_state_slots = list(slot_r_hand_str = "toolbox_syndi", slot_l_hand_str = "toolbox_syndi")
|
||||
origin_tech = list(TECH_COMBAT = 1, TECH_ILLEGAL = 1)
|
||||
force = 14
|
||||
var/powertools = FALSE
|
||||
starts_with = list(
|
||||
/obj/item/clothing/gloves/yellow,
|
||||
/obj/item/weapon/screwdriver,
|
||||
/obj/item/weapon/wrench,
|
||||
/obj/item/weapon/weldingtool,
|
||||
/obj/item/weapon/crowbar,
|
||||
/obj/item/weapon/wirecutters,
|
||||
/obj/item/device/multitool
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/toolbox/syndicate/powertools
|
||||
powertools = TRUE
|
||||
|
||||
/obj/item/weapon/storage/toolbox/syndicate/New() // This is found in maint, so it should have the basics, plus some gloves.
|
||||
..() //all storage items need this to work properly!
|
||||
if(powertools)
|
||||
new /obj/item/clothing/gloves/yellow(src)
|
||||
new /obj/item/weapon/screwdriver/power(src)
|
||||
new /obj/item/weapon/weldingtool/experimental(src)
|
||||
new /obj/item/weapon/crowbar/power(src)
|
||||
new /obj/item/device/multitool(src)
|
||||
new /obj/item/stack/cable_coil/random(src,30)
|
||||
new /obj/item/device/analyzer(src)
|
||||
else
|
||||
new /obj/item/clothing/gloves/yellow(src)
|
||||
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/multitool(src)
|
||||
starts_with = list(
|
||||
/obj/item/clothing/gloves/yellow,
|
||||
/obj/item/weapon/screwdriver/power,
|
||||
/obj/item/weapon/weldingtool/experimental,
|
||||
/obj/item/weapon/crowbar/power,
|
||||
/obj/item/device/multitool,
|
||||
/obj/item/stack/cable_coil/random_belt,
|
||||
/obj/item/device/analyzer
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/toolbox/lunchbox
|
||||
max_storage_space = ITEMSIZE_COST_SMALL * 4 //slightly smaller than a toolbox
|
||||
@@ -103,8 +102,7 @@
|
||||
var/filled = FALSE
|
||||
attack_verb = list("lunched")
|
||||
|
||||
/obj/item/weapon/storage/toolbox/lunchbox/New()
|
||||
..()
|
||||
/obj/item/weapon/storage/toolbox/lunchbox/initialize()
|
||||
if(filled)
|
||||
var/list/lunches = lunchables_lunches()
|
||||
var/lunch = lunches[pick(lunches)]
|
||||
@@ -117,6 +115,7 @@
|
||||
var/list/drinks = lunchables_drinks()
|
||||
var/drink = drinks[pick(drinks)]
|
||||
new drink(src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/storage/toolbox/lunchbox/filled
|
||||
filled = TRUE
|
||||
|
||||
@@ -1,76 +1,66 @@
|
||||
/obj/item/weapon/storage/box/syndicate/
|
||||
New()
|
||||
..()
|
||||
switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1, "smoothoperator" = 1)))
|
||||
if("bloodyspai")
|
||||
new /obj/item/clothing/under/chameleon(src)
|
||||
new /obj/item/clothing/mask/gas/voice(src)
|
||||
new /obj/item/weapon/card/id/syndicate(src)
|
||||
new /obj/item/clothing/shoes/syndigaloshes(src)
|
||||
return
|
||||
/obj/item/weapon/storage/box/syndicate/initialize()
|
||||
switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1, "smoothoperator" = 1)))
|
||||
if("bloodyspai")
|
||||
new /obj/item/clothing/under/chameleon(src)
|
||||
new /obj/item/clothing/mask/gas/voice(src)
|
||||
new /obj/item/weapon/card/id/syndicate(src)
|
||||
new /obj/item/clothing/shoes/syndigaloshes(src)
|
||||
|
||||
if("stealth")
|
||||
new /obj/item/weapon/gun/energy/crossbow(src)
|
||||
new /obj/item/weapon/pen/reagent/paralysis(src)
|
||||
new /obj/item/device/chameleon(src)
|
||||
return
|
||||
if("stealth")
|
||||
new /obj/item/weapon/gun/energy/crossbow(src)
|
||||
new /obj/item/weapon/pen/reagent/paralysis(src)
|
||||
new /obj/item/device/chameleon(src)
|
||||
|
||||
if("screwed")
|
||||
new /obj/effect/spawner/newbomb/timer/syndicate(src)
|
||||
new /obj/effect/spawner/newbomb/timer/syndicate(src)
|
||||
new /obj/item/device/powersink(src)
|
||||
new /obj/item/clothing/suit/space/syndicate(src)
|
||||
new /obj/item/clothing/head/helmet/space/syndicate(src)
|
||||
new /obj/item/clothing/mask/gas/syndicate(src)
|
||||
new /obj/item/weapon/tank/emergency/oxygen/double(src)
|
||||
return
|
||||
if("screwed")
|
||||
new /obj/effect/spawner/newbomb/timer/syndicate(src)
|
||||
new /obj/effect/spawner/newbomb/timer/syndicate(src)
|
||||
new /obj/item/device/powersink(src)
|
||||
new /obj/item/clothing/suit/space/syndicate(src)
|
||||
new /obj/item/clothing/head/helmet/space/syndicate(src)
|
||||
new /obj/item/clothing/mask/gas/syndicate(src)
|
||||
new /obj/item/weapon/tank/emergency/oxygen/double(src)
|
||||
|
||||
if("guns")
|
||||
new /obj/item/weapon/gun/projectile/revolver(src)
|
||||
new /obj/item/ammo_magazine/s357(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
new /obj/item/weapon/plastique(src)
|
||||
new /obj/item/weapon/plastique(src)
|
||||
return
|
||||
if("guns")
|
||||
new /obj/item/weapon/gun/projectile/revolver(src)
|
||||
new /obj/item/ammo_magazine/s357(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
new /obj/item/weapon/plastique(src)
|
||||
new /obj/item/weapon/plastique(src)
|
||||
|
||||
if("murder")
|
||||
new /obj/item/weapon/melee/energy/sword(src)
|
||||
new /obj/item/clothing/glasses/thermal/syndi(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
new /obj/item/clothing/shoes/syndigaloshes(src)
|
||||
return
|
||||
if("murder")
|
||||
new /obj/item/weapon/melee/energy/sword(src)
|
||||
new /obj/item/clothing/glasses/thermal/syndi(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
new /obj/item/clothing/shoes/syndigaloshes(src)
|
||||
|
||||
if("freedom")
|
||||
var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src)
|
||||
O.imp = new /obj/item/weapon/implant/freedom(O)
|
||||
var/obj/item/weapon/implanter/U = new /obj/item/weapon/implanter(src)
|
||||
U.imp = new /obj/item/weapon/implant/uplink(U)
|
||||
return
|
||||
if("freedom")
|
||||
var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src)
|
||||
O.imp = new /obj/item/weapon/implant/freedom(O)
|
||||
var/obj/item/weapon/implanter/U = new /obj/item/weapon/implanter(src)
|
||||
U.imp = new /obj/item/weapon/implant/uplink(U)
|
||||
|
||||
if("hacker")
|
||||
new /obj/item/device/encryptionkey/syndicate(src)
|
||||
new /obj/item/weapon/aiModule/syndicate(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
new /obj/item/device/encryptionkey/binary(src)
|
||||
return
|
||||
if("hacker")
|
||||
new /obj/item/device/encryptionkey/syndicate(src)
|
||||
new /obj/item/weapon/aiModule/syndicate(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
new /obj/item/device/encryptionkey/binary(src)
|
||||
|
||||
if("lordsingulo")
|
||||
new /obj/item/device/radio/beacon/syndicate(src)
|
||||
new /obj/item/clothing/suit/space/syndicate(src)
|
||||
new /obj/item/clothing/head/helmet/space/syndicate(src)
|
||||
new /obj/item/clothing/mask/gas/syndicate(src)
|
||||
new /obj/item/weapon/tank/emergency/oxygen/double(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
return
|
||||
if("lordsingulo")
|
||||
new /obj/item/device/radio/beacon/syndicate(src)
|
||||
new /obj/item/clothing/suit/space/syndicate(src)
|
||||
new /obj/item/clothing/head/helmet/space/syndicate(src)
|
||||
new /obj/item/clothing/mask/gas/syndicate(src)
|
||||
new /obj/item/weapon/tank/emergency/oxygen/double(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
|
||||
if("smoothoperator")
|
||||
new /obj/item/weapon/storage/box/syndie_kit/g9mm(src)
|
||||
new /obj/item/weapon/storage/bag/trash(src)
|
||||
new /obj/item/weapon/soap/syndie(src)
|
||||
new /obj/item/bodybag(src)
|
||||
new /obj/item/clothing/under/suit_jacket(src)
|
||||
new /obj/item/clothing/shoes/laceup(src)
|
||||
return
|
||||
if("smoothoperator")
|
||||
new /obj/item/weapon/storage/box/syndie_kit/g9mm(src)
|
||||
new /obj/item/weapon/storage/bag/trash(src)
|
||||
new /obj/item/weapon/soap/syndie(src)
|
||||
new /obj/item/bodybag(src)
|
||||
new /obj/item/clothing/under/suit_jacket(src)
|
||||
new /obj/item/clothing/shoes/laceup(src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit
|
||||
name = "box"
|
||||
@@ -80,118 +70,97 @@
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_freedom
|
||||
name = "boxed freedom implant (with injector)"
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_freedom/New()
|
||||
..()
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_freedom/initialize()
|
||||
var/obj/item/weapon/implanter/O = new(src)
|
||||
O.imp = new /obj/item/weapon/implant/freedom(O)
|
||||
O.update()
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_compress
|
||||
name = "box (C)"
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_compress/New()
|
||||
new /obj/item/weapon/implanter/compressed(src)
|
||||
..()
|
||||
return
|
||||
starts_with = list(/obj/item/weapon/implanter/compressed)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_explosive
|
||||
name = "box (E)"
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_explosive/New()
|
||||
new /obj/item/weapon/implanter/explosive(src)
|
||||
..()
|
||||
return
|
||||
starts_with = list(/obj/item/weapon/implanter/explosive)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_uplink
|
||||
name = "boxed uplink implant (with injector)"
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_uplink/New()
|
||||
..()
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_uplink/initialize()
|
||||
var/obj/item/weapon/implanter/O = new(src)
|
||||
O.imp = new /obj/item/weapon/implant/uplink(O)
|
||||
O.update()
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/space
|
||||
name = "boxed space suit and helmet"
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/space/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/space/syndicate(src)
|
||||
new /obj/item/clothing/head/helmet/space/syndicate(src)
|
||||
new /obj/item/clothing/mask/gas/syndicate(src)
|
||||
new /obj/item/weapon/tank/emergency/oxygen/double(src)
|
||||
return
|
||||
starts_with = list(
|
||||
/obj/item/clothing/suit/space/syndicate,
|
||||
/obj/item/clothing/head/helmet/space/syndicate,
|
||||
/obj/item/clothing/mask/gas/syndicate,
|
||||
/obj/item/weapon/tank/emergency/oxygen/double
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/chameleon
|
||||
name = "chameleon kit"
|
||||
desc = "Comes with all the clothes you need to impersonate most people. Acting lessons sold seperately."
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/chameleon/New()
|
||||
..()
|
||||
new /obj/item/clothing/under/chameleon(src)
|
||||
new /obj/item/clothing/head/chameleon(src)
|
||||
new /obj/item/clothing/suit/chameleon(src)
|
||||
new /obj/item/clothing/shoes/chameleon(src)
|
||||
new /obj/item/weapon/storage/backpack/chameleon(src)
|
||||
new /obj/item/clothing/gloves/chameleon(src)
|
||||
new /obj/item/clothing/mask/chameleon(src)
|
||||
new /obj/item/clothing/glasses/chameleon(src)
|
||||
new /obj/item/clothing/accessory/chameleon(src)
|
||||
new /obj/item/weapon/gun/energy/chameleon(src)
|
||||
starts_with = list(
|
||||
/obj/item/clothing/under/chameleon,
|
||||
/obj/item/clothing/head/chameleon,
|
||||
/obj/item/clothing/suit/chameleon,
|
||||
/obj/item/clothing/shoes/chameleon,
|
||||
/obj/item/weapon/storage/backpack/chameleon,
|
||||
/obj/item/clothing/gloves/chameleon,
|
||||
/obj/item/clothing/mask/chameleon,
|
||||
/obj/item/clothing/glasses/chameleon,
|
||||
/obj/item/clothing/accessory/chameleon,
|
||||
/obj/item/weapon/gun/energy/chameleon
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/clerical
|
||||
name = "clerical kit"
|
||||
desc = "Comes with all you need to fake paperwork. Assumes you have passed basic writing lessons."
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/clerical/New()
|
||||
..()
|
||||
new /obj/item/weapon/stamp/chameleon(src)
|
||||
new /obj/item/weapon/pen/chameleon(src)
|
||||
new /obj/item/device/destTagger(src)
|
||||
new /obj/item/weapon/packageWrap(src)
|
||||
new /obj/item/weapon/hand_labeler(src)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/stamp/chameleon,
|
||||
/obj/item/weapon/pen/chameleon,
|
||||
/obj/item/device/destTagger,
|
||||
/obj/item/weapon/packageWrap,
|
||||
/obj/item/weapon/hand_labeler
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/spy
|
||||
name = "spy kit"
|
||||
desc = "For when you want to conduct voyeurism from afar."
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/spy/New()
|
||||
..()
|
||||
new /obj/item/device/camerabug/spy(src)
|
||||
new /obj/item/device/camerabug/spy(src)
|
||||
new /obj/item/device/camerabug/spy(src)
|
||||
new /obj/item/device/camerabug/spy(src)
|
||||
new /obj/item/device/camerabug/spy(src)
|
||||
new /obj/item/device/camerabug/spy(src)
|
||||
new /obj/item/device/bug_monitor/spy(src)
|
||||
starts_with = list(
|
||||
/obj/item/device/camerabug/spy = 6,
|
||||
/obj/item/device/bug_monitor/spy
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/g9mm
|
||||
name = "\improper Smooth operator"
|
||||
desc = "Compact 9mm with silencer kit."
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/g9mm/New()
|
||||
..()
|
||||
new /obj/item/weapon/gun/projectile/pistol(src)
|
||||
new /obj/item/weapon/silencer(src)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/gun/projectile/pistol,
|
||||
/obj/item/weapon/silencer
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/toxin
|
||||
name = "toxin kit"
|
||||
desc = "An apple will not be enough to keep the doctor away after this."
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/toxin/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker/vial/random/toxin(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/vial/random/toxin,
|
||||
/obj/item/weapon/reagent_containers/syringe
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/cigarette
|
||||
name = "\improper Tricky smokes"
|
||||
desc = "Comes with the following brands of cigarettes, in this order: 2xFlash, 2xSmoke, 1xMindBreaker, 1xTricordrazine. Avoid mixing them up."
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/cigarette/New()
|
||||
..()
|
||||
/obj/item/weapon/storage/box/syndie_kit/cigarette/initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/storage/fancy/cigarettes/pack
|
||||
|
||||
pack = new /obj/item/weapon/storage/fancy/cigarettes(src)
|
||||
fill_cigarre_package(pack, list("aluminum" = 5, "potassium" = 5, "sulfur" = 5))
|
||||
pack.desc += " 'F' has been scribbled on it."
|
||||
@@ -222,6 +191,8 @@
|
||||
|
||||
new /obj/item/weapon/flame/lighter/zippo(src)
|
||||
|
||||
calibrate_size()
|
||||
|
||||
/proc/fill_cigarre_package(var/obj/item/weapon/storage/fancy/cigarettes/C, var/list/reagents)
|
||||
for(var/reagent in reagents)
|
||||
C.reagents.add_reagent(reagent, reagents[reagent] * C.storage_slots)
|
||||
@@ -229,72 +200,52 @@
|
||||
/obj/item/weapon/storage/box/syndie_kit/ewar_voice
|
||||
name = "Electrowarfare and Voice Synthesiser kit"
|
||||
desc = "Kit for confounding organic and synthetic entities alike."
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/ewar_voice/New()
|
||||
..()
|
||||
new /obj/item/rig_module/electrowarfare_suite(src)
|
||||
new /obj/item/rig_module/voice(src)
|
||||
|
||||
starts_with = list(
|
||||
/obj/item/rig_module/electrowarfare_suite,
|
||||
/obj/item/rig_module/voice
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/money
|
||||
name = "suspicious briefcase"
|
||||
desc = "An ominous briefcase that has the unmistakeable smell of old, stale, cigarette smoke, and gives those who look at it a bad feeling."
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/money/New()
|
||||
..()
|
||||
new /obj/item/weapon/spacecash/c1000(src)
|
||||
new /obj/item/weapon/spacecash/c1000(src)
|
||||
new /obj/item/weapon/spacecash/c1000(src)
|
||||
new /obj/item/weapon/spacecash/c1000(src)
|
||||
new /obj/item/weapon/spacecash/c1000(src)
|
||||
new /obj/item/weapon/spacecash/c1000(src)
|
||||
new /obj/item/weapon/spacecash/c1000(src)
|
||||
new /obj/item/weapon/spacecash/c1000(src)
|
||||
new /obj/item/weapon/spacecash/c1000(src)
|
||||
new /obj/item/weapon/spacecash/c1000(src)
|
||||
starts_with = list(/obj/item/weapon/spacecash/c1000 = 10)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/combat_armor
|
||||
name = "combat armor kit"
|
||||
desc = "Contains a full set of combat armor."
|
||||
starts_with = list(
|
||||
/obj/item/clothing/head/helmet/combat,
|
||||
/obj/item/clothing/suit/armor/combat,
|
||||
/obj/item/clothing/gloves/arm_guard/combat,
|
||||
/obj/item/clothing/shoes/leg_guard/combat
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/combat_armor/New()
|
||||
..()
|
||||
new /obj/item/clothing/head/helmet/combat(src)
|
||||
new /obj/item/clothing/suit/armor/combat(src)
|
||||
new /obj/item/clothing/gloves/arm_guard/combat(src)
|
||||
new /obj/item/clothing/shoes/leg_guard/combat(src)
|
||||
return
|
||||
/obj/item/weapon/storage/box/syndie_kit/demolitions
|
||||
starts_with = list(
|
||||
/obj/item/weapon/syndie/c4explosive,
|
||||
/obj/item/weapon/screwdriver
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/demolitions/New()
|
||||
..()
|
||||
new /obj/item/weapon/syndie/c4explosive(src)
|
||||
new /obj/item/weapon/screwdriver(src)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/demolitions_heavy/New()
|
||||
..()
|
||||
new /obj/item/weapon/syndie/c4explosive/heavy(src)
|
||||
new /obj/item/weapon/screwdriver(src)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/demolitions_super_heavy/New()
|
||||
..()
|
||||
new /obj/item/weapon/syndie/c4explosive/heavy/super_heavy(src)
|
||||
new /obj/item/weapon/screwdriver(src)
|
||||
/obj/item/weapon/storage/box/syndie_kit/demolitions_heavy
|
||||
starts_with = list(
|
||||
/obj/item/weapon/syndie/c4explosive/heavy,
|
||||
/obj/item/weapon/screwdriver
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/demolitions_super_heavy
|
||||
starts_with = list(
|
||||
/obj/item/weapon/syndie/c4explosive/heavy/super_heavy,
|
||||
/obj/item/weapon/screwdriver
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/rifle
|
||||
name = "secure briefcase"
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/rifle/New()
|
||||
..()
|
||||
new /obj/item/sniper_rifle_part/barrel(src)
|
||||
new /obj/item/sniper_rifle_part/stock(src)
|
||||
new /obj/item/sniper_rifle_part/trigger_group(src)
|
||||
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/ammo_casing/a145(src)
|
||||
starts_with = list(
|
||||
/obj/item/sniper_rifle_part/barrel,
|
||||
/obj/item/sniper_rifle_part/stock,
|
||||
/obj/item/sniper_rifle_part/trigger_group,
|
||||
/obj/item/ammo_casing/a145 = 4
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/fuelrod
|
||||
name = "heavy briefcase"
|
||||
@@ -303,14 +254,12 @@
|
||||
description_antag = "This case will likely contain a charged fuel rod gun, and a few fuel rods to go with it. It can only hold the fuel rod gun, fuel rods, batteries, a screwdriver, and stock machine parts."
|
||||
force = 12 //Anti-rad lined i.e. Lead, probably gonna hurt a bit if you get bashed with it.
|
||||
can_hold = list(/obj/item/weapon/gun/magnetic/fuelrod, /obj/item/weapon/fuel_assembly, /obj/item/weapon/cell, /obj/item/weapon/stock_parts, /obj/item/weapon/screwdriver)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/fuelrod/New()
|
||||
..()
|
||||
new /obj/item/weapon/gun/magnetic/fuelrod(src)
|
||||
new /obj/item/weapon/fuel_assembly/deuterium(src)
|
||||
new /obj/item/weapon/fuel_assembly/deuterium(src)
|
||||
new /obj/item/weapon/fuel_assembly/tritium(src)
|
||||
new /obj/item/weapon/fuel_assembly/tritium(src)
|
||||
new /obj/item/weapon/fuel_assembly/phoron(src)
|
||||
new /obj/item/weapon/screwdriver(src)
|
||||
starts_with = list(
|
||||
/obj/item/weapon/gun/magnetic/fuelrod,
|
||||
/obj/item/weapon/fuel_assembly/deuterium,
|
||||
/obj/item/weapon/fuel_assembly/deuterium,
|
||||
/obj/item/weapon/fuel_assembly/tritium,
|
||||
/obj/item/weapon/fuel_assembly/tritium,
|
||||
/obj/item/weapon/fuel_assembly/phoron,
|
||||
/obj/item/weapon/screwdriver
|
||||
)
|
||||
|
||||
@@ -118,4 +118,4 @@
|
||||
name = "women's wallet"
|
||||
desc = "A stylish wallet typically used by women."
|
||||
icon_state = "girl_wallet"
|
||||
item_state_slots = list(slot_r_hand_str = "wowallet", slot_l_hand_str = "wowallet")
|
||||
item_state_slots = list(slot_r_hand_str = "wowallet", slot_l_hand_str = "wowallet")
|
||||
|
||||
@@ -13,20 +13,29 @@
|
||||
desc = "A small wrapped package."
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
|
||||
var/power = 1 /*Size of the explosion.*/
|
||||
var/devastate = 0
|
||||
var/heavy_impact = 1
|
||||
var/light_impact = 2
|
||||
var/flash_range = 5
|
||||
var/size = "small" /*Used for the icon, this one will make c-4small_0 for the off state.*/
|
||||
|
||||
/obj/item/weapon/syndie/c4explosive/heavy
|
||||
icon_state = "c-4large_0"
|
||||
item_state = "radio"
|
||||
desc = "A mysterious package, it's quite heavy."
|
||||
power = 2
|
||||
devastate = 1
|
||||
heavy_impact = 2
|
||||
light_impact = 5
|
||||
flash_range = 7
|
||||
size = "large"
|
||||
|
||||
/obj/item/weapon/syndie/c4explosive/heavy/super_heavy
|
||||
name = "large-sized package"
|
||||
desc = "A mysterious package, it's quite exceptionally heavy."
|
||||
power = 3
|
||||
devastate = 2
|
||||
heavy_impact = 5
|
||||
light_impact = 7
|
||||
flash_range = 7
|
||||
|
||||
/obj/item/weapon/syndie/c4explosive/New()
|
||||
var/K = rand(1,2000)
|
||||
@@ -43,7 +52,7 @@
|
||||
for(var/mob/O in hearers(src, null))
|
||||
O.show_message("\icon[src] <span class = 'warning'> The [src.name] beeps! </span>")
|
||||
sleep(50)
|
||||
explosion(get_turf(src), power, power*2, power*3, power*4, power*5)
|
||||
explosion(get_turf(src), devastate, heavy_impact, light_impact, flash_range)
|
||||
for(var/dirn in cardinal) //This is to guarantee that C4 at least breaks down all immediately adjacent walls and doors.
|
||||
var/turf/simulated/wall/T = get_step(src,dirn)
|
||||
if(locate(/obj/machinery/door/airlock) in T)
|
||||
|
||||
@@ -907,6 +907,21 @@ something, make sure it's not in one of the other lists.*/
|
||||
prob(25);/obj/item/device/radio/headset/headset_com/alt,
|
||||
prob(25);/obj/item/device/radio/headset)
|
||||
|
||||
/obj/random/coin
|
||||
name = "random coin"
|
||||
desc = "This is a coin spawn."
|
||||
icon = 'icons/misc/mark.dmi'
|
||||
icon_state = "rup"
|
||||
|
||||
/obj/random/coin/item_to_spawn()
|
||||
return pick(prob(5);/obj/item/weapon/coin/silver,
|
||||
prob(3);/obj/item/weapon/coin/iron,
|
||||
prob(4);/obj/item/weapon/coin/gold,
|
||||
prob(3);/obj/item/weapon/coin/phoron,
|
||||
prob(1);/obj/item/weapon/coin/uranium,
|
||||
prob(2);/obj/item/weapon/coin/platinum,
|
||||
prob(1);/obj/item/weapon/coin/diamond)
|
||||
|
||||
/obj/random/rigsuit
|
||||
name = "Random rigsuit"
|
||||
desc = "This is a random rigsuit."
|
||||
@@ -921,6 +936,20 @@ something, make sure it's not in one of the other lists.*/
|
||||
prob(3);/obj/item/weapon/rig/hazard,
|
||||
prob(1);/obj/item/weapon/rig/merc/empty)
|
||||
|
||||
/obj/random/landmine
|
||||
name = "Random Land Mine"
|
||||
desc = "This is a random land mine."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "uglymine"
|
||||
spawn_nothing_percentage = 25
|
||||
|
||||
/obj/random/landmine/item_to_spawn()
|
||||
return pick(prob(30);/obj/effect/mine,
|
||||
prob(25);/obj/effect/mine/frag,
|
||||
prob(25);/obj/effect/mine/emp,
|
||||
prob(10);/obj/effect/mine/stun,
|
||||
prob(10);/obj/effect/mine/incendiary,)
|
||||
|
||||
var/list/random_junk_
|
||||
var/list/random_useful_
|
||||
/proc/get_random_useful_type()
|
||||
@@ -1123,16 +1152,307 @@ var/list/multi_point_spawns
|
||||
)
|
||||
)
|
||||
|
||||
/obj/random/landmine
|
||||
name = "Random Land Mine"
|
||||
desc = "This is a random land mine."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "uglymine"
|
||||
spawn_nothing_percentage = 25
|
||||
/obj/random/multiple/minevault
|
||||
name = "random vault loot"
|
||||
desc = "Loot for mine vaults."
|
||||
icon = 'icons/misc/mark.dmi'
|
||||
icon_state = "rup"
|
||||
|
||||
/obj/random/landmine/item_to_spawn()
|
||||
return pick(prob(30);/obj/effect/mine,
|
||||
prob(25);/obj/effect/mine/frag,
|
||||
prob(25);/obj/effect/mine/emp,
|
||||
prob(10);/obj/effect/mine/stun,
|
||||
prob(10);/obj/effect/mine/incendiary,)
|
||||
/obj/random/multiple/minevault/item_to_spawn()
|
||||
return pick(
|
||||
prob(5);list(
|
||||
/obj/item/clothing/mask/smokable/pipe,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus,
|
||||
/obj/item/weapon/flame/lighter/zippo,
|
||||
/obj/structure/closet/crate/hydroponics
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/pickaxe/drill,
|
||||
/obj/item/clothing/suit/space/void/mining,
|
||||
/obj/item/clothing/head/helmet/space/void/mining,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/pickaxe/drill,
|
||||
/obj/item/clothing/suit/space/void/mining/alt,
|
||||
/obj/item/clothing/head/helmet/space/void/mining/alt,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/bluespace,
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/bluespace,
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/bluespace,
|
||||
/obj/structure/closet/crate/science
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/ore/diamond,
|
||||
/obj/item/weapon/ore/diamond,
|
||||
/obj/item/weapon/ore/diamond,
|
||||
/obj/item/weapon/ore/diamond,
|
||||
/obj/item/weapon/ore/diamond,
|
||||
/obj/item/weapon/ore/diamond,
|
||||
/obj/item/weapon/ore/diamond,
|
||||
/obj/item/weapon/ore/diamond,
|
||||
/obj/item/weapon/ore/diamond,
|
||||
/obj/item/weapon/ore/diamond,
|
||||
/obj/item/weapon/ore/gold,
|
||||
/obj/item/weapon/ore/gold,
|
||||
/obj/item/weapon/ore/gold,
|
||||
/obj/item/weapon/ore/gold,
|
||||
/obj/item/weapon/ore/gold,
|
||||
/obj/item/weapon/ore/gold,
|
||||
/obj/item/weapon/ore/gold,
|
||||
/obj/item/weapon/ore/gold,
|
||||
/obj/item/weapon/ore/gold,
|
||||
/obj/item/weapon/ore/gold,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/pickaxe/drill,
|
||||
/obj/item/clothing/glasses/material,
|
||||
/obj/structure/ore_box,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/noreact,
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/noreact,
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/noreact,
|
||||
/obj/structure/closet/crate/science
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/storage/secure/briefcase/money,
|
||||
/obj/structure/closet/crate/freezer/rations
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/clothing/accessory/tie/horrible,
|
||||
/obj/item/clothing/accessory/tie/horrible,
|
||||
/obj/item/clothing/accessory/tie/horrible,
|
||||
/obj/item/clothing/accessory/tie/horrible,
|
||||
/obj/item/clothing/accessory/tie/horrible,
|
||||
/obj/item/clothing/accessory/tie/horrible,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/weapon/melee/baton,
|
||||
/obj/item/weapon/melee/baton,
|
||||
/obj/item/weapon/melee/baton,
|
||||
/obj/item/weapon/melee/baton,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(5);list(
|
||||
/obj/item/clothing/under/shorts/red,
|
||||
/obj/item/clothing/under/shorts/blue,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/melee/baton/cattleprod,
|
||||
/obj/item/weapon/melee/baton/cattleprod,
|
||||
/obj/item/weapon/cell/high,
|
||||
/obj/item/weapon/cell/high,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/latexballon,
|
||||
/obj/item/latexballon,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/toy/syndicateballoon,
|
||||
/obj/item/toy/syndicateballoon,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/rig/industrial/equipped,
|
||||
/obj/item/weapon/storage/bag/ore,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/clothing/head/kitty,
|
||||
/obj/item/clothing/head/kitty,
|
||||
/obj/item/clothing/head/kitty,
|
||||
/obj/item/clothing/head/kitty,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/random/coin,
|
||||
/obj/random/coin,
|
||||
/obj/random/coin,
|
||||
/obj/random/coin,
|
||||
/obj/random/coin,
|
||||
/obj/structure/closet/crate/plastic
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/random/multiple/voidsuit,
|
||||
/obj/random/multiple/voidsuit,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/clothing/suit/space/syndicate/black/red,
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/red,
|
||||
/obj/item/clothing/suit/space/syndicate/black/red,
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/red,
|
||||
/obj/item/weapon/gun/projectile/automatic/mini_uzi,
|
||||
/obj/item/weapon/gun/projectile/automatic/mini_uzi,
|
||||
/obj/item/ammo_magazine/m45uzi,
|
||||
/obj/item/ammo_magazine/m45uzi,
|
||||
/obj/item/ammo_magazine/m45uzi/empty,
|
||||
/obj/item/ammo_magazine/m45uzi/empty,
|
||||
/obj/structure/closet/crate/plastic
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/clothing/suit/ianshirt,
|
||||
/obj/item/clothing/suit/ianshirt,
|
||||
/obj/item/weapon/bedsheet/ian,
|
||||
/obj/structure/closet/crate/plastic
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/clothing/suit/armor/vest,
|
||||
/obj/item/clothing/suit/armor/vest,
|
||||
/obj/item/weapon/gun/projectile/garand,
|
||||
/obj/item/weapon/gun/projectile/garand,
|
||||
/obj/item/ammo_magazine/m762garand,
|
||||
/obj/item/ammo_magazine/m762garand,
|
||||
/obj/structure/closet/crate/plastic
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/mecha/working/ripley/mining
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/mecha/working/hoverpod/combatpod
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/pickaxe/silver,
|
||||
/obj/item/weapon/storage/bag/ore,
|
||||
/obj/item/clothing/glasses/material,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/pickaxe/drill,
|
||||
/obj/item/weapon/storage/bag/ore,
|
||||
/obj/item/clothing/glasses/material,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/pickaxe/jackhammer,
|
||||
/obj/item/weapon/storage/bag/ore,
|
||||
/obj/item/clothing/glasses/material,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/pickaxe/diamond,
|
||||
/obj/item/weapon/storage/bag/ore,
|
||||
/obj/item/clothing/glasses/material,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/pickaxe/diamonddrill,
|
||||
/obj/item/weapon/storage/bag/ore,
|
||||
/obj/item/clothing/glasses/material,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/pickaxe/gold,
|
||||
/obj/item/weapon/storage/bag/ore,
|
||||
/obj/item/clothing/glasses/material,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/pickaxe/plasmacutter,
|
||||
/obj/item/weapon/storage/bag/ore,
|
||||
/obj/item/clothing/glasses/material,
|
||||
/obj/structure/closet/crate/engineering
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/material/sword/katana,
|
||||
/obj/item/weapon/material/sword/katana,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(2);list(
|
||||
/obj/item/weapon/material/sword,
|
||||
/obj/item/weapon/material/sword,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/clothing/mask/balaclava,
|
||||
/obj/item/weapon/material/star,
|
||||
/obj/item/weapon/material/star,
|
||||
/obj/item/weapon/material/star,
|
||||
/obj/item/weapon/material/star,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weed_extract,
|
||||
/obj/item/xenos_claw,
|
||||
/obj/structure/closet/crate/science
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/clothing/head/bearpelt,
|
||||
/obj/item/clothing/under/soviet,
|
||||
/obj/item/clothing/under/soviet,
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/rifle/ceremonial,
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/rifle/ceremonial,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/revolver/detective,
|
||||
/obj/item/weapon/gun/projectile/contender,
|
||||
/obj/item/weapon/gun/projectile/p92x,
|
||||
/obj/item/weapon/gun/projectile/derringer,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/melee/cultblade,
|
||||
/obj/item/clothing/suit/cultrobes,
|
||||
/obj/item/clothing/head/culthood,
|
||||
/obj/item/device/soulstone,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/vampiric,
|
||||
/obj/item/weapon/vampiric,
|
||||
/obj/structure/closet/crate/science
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/archaeological_find
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/melee/energy/sword,
|
||||
/obj/item/weapon/melee/energy/sword,
|
||||
/obj/item/weapon/melee/energy/sword,
|
||||
/obj/item/weapon/shield/energy,
|
||||
/obj/item/weapon/shield/energy,
|
||||
/obj/structure/closet/crate/science
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/storage/backpack/clown,
|
||||
/obj/item/clothing/under/rank/clown,
|
||||
/obj/item/clothing/shoes/clown_shoes,
|
||||
/obj/item/device/pda/clown,
|
||||
/obj/item/clothing/mask/gas/clown_hat,
|
||||
/obj/item/weapon/bikehorn,
|
||||
/obj/item/toy/waterflower,
|
||||
/obj/item/weapon/pen/crayon/rainbow,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/clothing/under/mime,
|
||||
/obj/item/clothing/shoes/black,
|
||||
/obj/item/device/pda/mime,
|
||||
/obj/item/clothing/gloves/white,
|
||||
/obj/item/clothing/mask/gas/mime,
|
||||
/obj/item/clothing/head/beret,
|
||||
/obj/item/clothing/suit/suspenders,
|
||||
/obj/item/weapon/pen/crayon/mime,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing,
|
||||
/obj/structure/closet/crate
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/storage/belt/champion,
|
||||
/obj/item/clothing/mask/luchador,
|
||||
/obj/item/clothing/mask/luchador/rudos,
|
||||
/obj/item/clothing/mask/luchador/tecnicos,
|
||||
/obj/structure/closet/crate
|
||||
)
|
||||
)
|
||||
@@ -10,6 +10,8 @@
|
||||
var/next_fuel_consumption = 0 // world.time of when next item in fuel list gets eatten to sustain the fire.
|
||||
var/grill = FALSE
|
||||
var/material/material
|
||||
var/set_temperature = T0C + 30 //K
|
||||
var/heating_power = 80000
|
||||
|
||||
/obj/structure/bonfire/New(newloc, material_name)
|
||||
..(newloc)
|
||||
@@ -186,9 +188,9 @@
|
||||
if(burning)
|
||||
var/state
|
||||
switch(get_fuel_amount())
|
||||
if(0 to 4)
|
||||
if(0 to 4.5)
|
||||
state = "bonfire_warm"
|
||||
if(5 to 10)
|
||||
if(4.6 to 10)
|
||||
state = "bonfire_hot"
|
||||
var/image/I = image(icon, state)
|
||||
I.appearance_flags = RESET_COLOR
|
||||
@@ -223,6 +225,23 @@
|
||||
if(!grill)
|
||||
burn()
|
||||
|
||||
if(burning)
|
||||
var/W = get_fuel_amount()
|
||||
if(W >= 5)
|
||||
var/datum/gas_mixture/env = loc.return_air()
|
||||
if(env && abs(env.temperature - set_temperature) > 0.1)
|
||||
var/transfer_moles = 0.25 * env.total_moles
|
||||
var/datum/gas_mixture/removed = env.remove(transfer_moles)
|
||||
|
||||
if(removed)
|
||||
var/heat_transfer = removed.get_thermal_energy_change(set_temperature)
|
||||
if(heat_transfer > 0)
|
||||
heat_transfer = min(heat_transfer , heating_power)
|
||||
|
||||
removed.add_thermal_energy(heat_transfer)
|
||||
|
||||
env.merge(removed)
|
||||
|
||||
/obj/structure/bonfire/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
ignite()
|
||||
|
||||
@@ -235,4 +254,163 @@
|
||||
M.pixel_y += 13
|
||||
else // Just unbuckled someone
|
||||
M.pixel_y -= 13
|
||||
update_icon()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/fireplace //more like a space heater than a bonfire. A cozier alternative to both.
|
||||
name = "fireplace"
|
||||
desc = "The sound of the crackling hearth reminds you of home."
|
||||
icon = 'icons/obj/structures.dmi'
|
||||
icon_state = "fireplace"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
var/burning = FALSE
|
||||
var/next_fuel_consumption = 0
|
||||
var/set_temperature = T0C + 20 //K
|
||||
var/heating_power = 40000
|
||||
|
||||
/obj/structure/fireplace/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/stack/material/wood) || istype(W, /obj/item/stack/material/log) )
|
||||
add_fuel(W, user)
|
||||
|
||||
else if(W.is_hot())
|
||||
ignite()
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/fireplace/attack_hand(mob/user)
|
||||
if(get_fuel_amount())
|
||||
remove_fuel(user)
|
||||
|
||||
/obj/structure/fireplace/proc/get_fuel_amount()
|
||||
var/F = 0
|
||||
for(var/A in contents)
|
||||
if(istype(A, /obj/item/stack/material/wood))
|
||||
F += 0.5
|
||||
if(istype(A, /obj/item/stack/material/log))
|
||||
F += 1.0
|
||||
return F
|
||||
|
||||
/obj/structure/fireplace/proc/remove_fuel(mob/user)
|
||||
if(get_fuel_amount())
|
||||
var/atom/movable/AM = pop(contents)
|
||||
AM.forceMove(get_turf(src))
|
||||
to_chat(user, "<span class='notice'>You take \the [AM] out of \the [src] before it has a chance to burn away.</span>")
|
||||
update_icon()
|
||||
|
||||
/obj/structure/fireplace/proc/add_fuel(atom/movable/new_fuel, mob/user)
|
||||
if(get_fuel_amount() >= 10)
|
||||
to_chat(user, "<span class='warning'>\The [src] already has enough fuel!</span>")
|
||||
return FALSE
|
||||
if(istype(new_fuel, /obj/item/stack/material/wood) || istype(new_fuel, /obj/item/stack/material/log) )
|
||||
var/obj/item/stack/F = new_fuel
|
||||
var/obj/item/stack/S = F.split(1)
|
||||
if(S)
|
||||
S.forceMove(src)
|
||||
to_chat(user, "<span class='warning'>You add \the [new_fuel] to \the [src].</span>")
|
||||
update_icon()
|
||||
return TRUE
|
||||
return FALSE
|
||||
else
|
||||
to_chat(user, "<span class='warning'>\The [src] needs raw wood to burn, \a [new_fuel] won't work.</span>")
|
||||
return FALSE
|
||||
|
||||
/obj/structure/fireplace/proc/consume_fuel(var/obj/item/stack/consumed_fuel)
|
||||
if(!istype(consumed_fuel))
|
||||
qdel(consumed_fuel) // Don't know, don't care.
|
||||
return FALSE
|
||||
|
||||
if(istype(consumed_fuel, /obj/item/stack/material/log))
|
||||
next_fuel_consumption = world.time + 2 MINUTES
|
||||
qdel(consumed_fuel)
|
||||
update_icon()
|
||||
return TRUE
|
||||
|
||||
else if(istype(consumed_fuel, /obj/item/stack/material/wood)) // One log makes two planks of wood.
|
||||
next_fuel_consumption = world.time + 1 MINUTE
|
||||
qdel(consumed_fuel)
|
||||
update_icon()
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/structure/fireplace/proc/check_oxygen()
|
||||
var/datum/gas_mixture/G = loc.return_air()
|
||||
if(G.gas["oxygen"] < 1)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/structure/fireplace/proc/extinguish()
|
||||
if(burning)
|
||||
burning = FALSE
|
||||
update_icon()
|
||||
processing_objects -= src
|
||||
visible_message("<span class='notice'>\The [src] stops burning.</span>")
|
||||
|
||||
/obj/structure/fireplace/proc/ignite()
|
||||
if(!burning && get_fuel_amount())
|
||||
burning = TRUE
|
||||
update_icon()
|
||||
processing_objects += src
|
||||
visible_message("<span class='warning'>\The [src] starts burning!</span>")
|
||||
|
||||
/obj/structure/fireplace/proc/burn()
|
||||
var/turf/current_location = get_turf(src)
|
||||
current_location.hotspot_expose(1000, 500)
|
||||
for(var/A in current_location)
|
||||
if(A == src)
|
||||
continue
|
||||
if(isobj(A))
|
||||
var/obj/O = A
|
||||
O.fire_act(null, 1000, 500)
|
||||
|
||||
/obj/structure/fireplace/update_icon()
|
||||
overlays.Cut()
|
||||
if(burning)
|
||||
var/state
|
||||
switch(get_fuel_amount())
|
||||
if(0 to 3.5)
|
||||
state = "fireplace_warm"
|
||||
if(3.6 to 6.5)
|
||||
state = "fireplace_hot"
|
||||
if(6.6 to 10)
|
||||
state = "fireplace_intense" //don't need to throw a corpse inside to make it burn hotter.
|
||||
var/image/I = image(icon, state)
|
||||
I.appearance_flags = RESET_COLOR
|
||||
overlays += I
|
||||
|
||||
var/light_strength = max(get_fuel_amount() / 2, 2)
|
||||
set_light(light_strength, light_strength, "#FF9933")
|
||||
else
|
||||
set_light(0)
|
||||
|
||||
/obj/structure/fireplace/process()
|
||||
if(!check_oxygen())
|
||||
extinguish()
|
||||
return
|
||||
if(world.time >= next_fuel_consumption)
|
||||
if(!consume_fuel(pop(contents)))
|
||||
extinguish()
|
||||
return
|
||||
|
||||
if(burning)
|
||||
var/W = get_fuel_amount()
|
||||
if(W >= 5)
|
||||
var/datum/gas_mixture/env = loc.return_air()
|
||||
if(env && abs(env.temperature - set_temperature) > 0.1)
|
||||
var/transfer_moles = 0.25 * env.total_moles
|
||||
var/datum/gas_mixture/removed = env.remove(transfer_moles)
|
||||
|
||||
if(removed)
|
||||
var/heat_transfer = removed.get_thermal_energy_change(set_temperature)
|
||||
if(heat_transfer > 0)
|
||||
heat_transfer = min(heat_transfer , heating_power)
|
||||
|
||||
removed.add_thermal_energy(heat_transfer)
|
||||
|
||||
env.merge(removed)
|
||||
|
||||
/obj/structure/fireplace/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
ignite()
|
||||
|
||||
/obj/structure/fireplace/water_act(amount)
|
||||
if(prob(amount * 10))
|
||||
extinguish()
|
||||
@@ -85,7 +85,7 @@
|
||||
new /obj/item/weapon/storage/backpack/industrial(src)
|
||||
else
|
||||
new /obj/item/weapon/storage/backpack/satchel/eng(src)
|
||||
new /obj/item/device/radio/headset/headset_cargo(src)
|
||||
new /obj/item/device/radio/headset/headset_mine(src)
|
||||
new /obj/item/clothing/under/rank/miner(src)
|
||||
new /obj/item/clothing/gloves/black(src)
|
||||
new /obj/item/clothing/shoes/black(src)
|
||||
|
||||
@@ -18,6 +18,10 @@
|
||||
return ..()
|
||||
|
||||
if(is_stump)
|
||||
if(istype(W,/obj/item/weapon/shovel))
|
||||
if(do_after(user, 5 SECONDS))
|
||||
visible_message("<span class='notice'>\The [user] digs up \the [src] stump with \the [W].</span>")
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
visible_message("<span class='danger'>\The [user] hits \the [src] with \the [W]!</span>")
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
/obj/machinery/holoplant
|
||||
name = "holoplant"
|
||||
desc = "One of those Ward-Takahashi holoplants! Give your space a bit of the comfort of being outdoors, by buying this blue buddy. A rugged case guarantees that your flower will outlive you, and variety of plant types won't let you to get bored along the way!"
|
||||
icon = 'icons/obj/holoplants.dmi'
|
||||
icon_state = "holopot"
|
||||
light_color = "#3C94C5"
|
||||
anchored = TRUE
|
||||
idle_power_usage = 0
|
||||
active_power_usage = 5
|
||||
var/interference = FALSE
|
||||
var/icon/plant = null
|
||||
var/global/list/possible_plants = list(
|
||||
"plant-1",
|
||||
"plant-10",
|
||||
"plant-09",
|
||||
"plant-15",
|
||||
"plant-13"
|
||||
)
|
||||
|
||||
/obj/machinery/holoplant/initialize()
|
||||
. = ..()
|
||||
activate()
|
||||
|
||||
/obj/machinery/holoplant/attack_hand(var/mob/living/user)
|
||||
if(!istype(user) || interference)
|
||||
return
|
||||
|
||||
if(!anchored)
|
||||
to_chat(user,"<span class='warning'>\The [src] must be anchored before activation!</span>")
|
||||
return
|
||||
|
||||
if(!plant)
|
||||
activate()
|
||||
else
|
||||
deactivate()
|
||||
|
||||
/obj/machinery/holoplant/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(default_unfasten_wrench(user, O, 10))
|
||||
deactivate()
|
||||
return
|
||||
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/holoplant/proc/activate()
|
||||
if(!anchored || stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
|
||||
plant = prepare_icon(emagged ? "emagged" : null)
|
||||
overlays += plant
|
||||
set_light(2)
|
||||
use_power = 2
|
||||
|
||||
/obj/machinery/holoplant/proc/deactivate()
|
||||
overlays -= plant
|
||||
qdel_null(plant)
|
||||
set_light(0)
|
||||
use_power = 0
|
||||
|
||||
/obj/machinery/holoplant/power_change()
|
||||
..()
|
||||
if(stat & NOPOWER)
|
||||
deactivate()
|
||||
else
|
||||
activate()
|
||||
|
||||
/obj/machinery/holoplant/proc/flicker()
|
||||
interference = TRUE
|
||||
spawn(0)
|
||||
overlays -= plant
|
||||
set_light(0)
|
||||
sleep(rand(2,4))
|
||||
overlays += plant
|
||||
set_light(2)
|
||||
sleep(rand(2,4))
|
||||
overlays -= plant
|
||||
set_light(0)
|
||||
sleep(rand(2,4))
|
||||
overlays += plant
|
||||
set_light(2)
|
||||
interference = FALSE
|
||||
|
||||
/obj/machinery/holoplant/proc/prepare_icon(var/state)
|
||||
if(!state)
|
||||
state = pick(possible_plants)
|
||||
var/plant_icon = icon(icon, state)
|
||||
return getHologramIcon(plant_icon, 0)
|
||||
|
||||
/obj/machinery/holoplant/emag_act()
|
||||
if(emagged)
|
||||
return
|
||||
|
||||
emagged = TRUE
|
||||
if(plant)
|
||||
deactivate()
|
||||
activate()
|
||||
|
||||
/obj/machinery/holoplant/Crossed(var/mob/living/L)
|
||||
if(!interference && plant && istype(L))
|
||||
flicker()
|
||||
|
||||
|
||||
/obj/machinery/holoplant/shipped
|
||||
anchored = FALSE
|
||||
/obj/machinery/holoplant/shipped/initialize()
|
||||
. = ..()
|
||||
@@ -294,6 +294,21 @@
|
||||
if(is_fulltile())
|
||||
mats.amount = 4
|
||||
qdel(src)
|
||||
else if(iscoil(W) && reinf && state == 0 && !istype(src, /obj/structure/window/reinforced/polarized))
|
||||
var/obj/item/stack/cable_coil/C = W
|
||||
if (C.use(1))
|
||||
playsound(src.loc, 'sound/effects/sparks1.ogg', 75, 1)
|
||||
user.visible_message( \
|
||||
"<span class='notice'>\The [user] begins to wire \the [src] for electrochromic tinting.</span>", \
|
||||
"<span class='notice'>You begin to wire \the [src] for electrochromic tinting.</span>", \
|
||||
"You hear sparks.")
|
||||
if(do_after(user, 20 * C.toolspeed, src) && state == 0)
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
var/obj/structure/window/reinforced/polarized/P = new(loc, dir)
|
||||
P.health = health
|
||||
P.state = state
|
||||
P.anchored = anchored
|
||||
qdel(src)
|
||||
else if(istype(W,/obj/item/frame) && anchored)
|
||||
var/obj/item/frame/F = W
|
||||
F.try_build(src)
|
||||
@@ -551,6 +566,28 @@
|
||||
desc = "Adjusts its tint with voltage. Might take a few good hits to shatter it."
|
||||
var/id
|
||||
|
||||
/obj/structure/window/reinforced/polarized/full
|
||||
dir = SOUTHWEST
|
||||
icon_state = "fwindow"
|
||||
maxhealth = 80
|
||||
|
||||
/obj/structure/window/reinforced/polarized/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(ismultitool(W) && !anchored) // Only allow programming if unanchored!
|
||||
var/obj/item/device/multitool/MT = W
|
||||
// First check if they have a windowtint button buffered
|
||||
if(istype(MT.connectable, /obj/machinery/button/windowtint))
|
||||
var/obj/machinery/button/windowtint/buffered_button = MT.connectable
|
||||
src.id = buffered_button.id
|
||||
to_chat(user, "<span class='notice'>\The [src] is linked to \the [buffered_button].</span>")
|
||||
return TRUE
|
||||
// Otherwise fall back to asking them
|
||||
var/t = sanitizeSafe(input(user, "Enter the ID for the window.", src.name, null), MAX_NAME_LEN)
|
||||
if (!t && user.get_active_hand() != W && in_range(src, user))
|
||||
src.id = t
|
||||
to_chat(user, "<span class='notice'>The new ID of \the [src] is [id]</span>")
|
||||
return TRUE
|
||||
. = ..()
|
||||
|
||||
/obj/structure/window/reinforced/polarized/proc/toggle()
|
||||
if(opacity)
|
||||
animate(src, color="#FFFFFF", time=5)
|
||||
@@ -593,3 +630,20 @@
|
||||
|
||||
/obj/machinery/button/windowtint/update_icon()
|
||||
icon_state = "light[active]"
|
||||
|
||||
/obj/machinery/button/windowtint/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(ismultitool(W))
|
||||
var/obj/item/device/multitool/MT = W
|
||||
if(!id)
|
||||
// If no ID is set yet (newly built button?) let them select an ID for first-time use!
|
||||
var/t = sanitizeSafe(input(user, "Enter an ID for \the [src].", src.name, null), MAX_NAME_LEN)
|
||||
if (t && user.get_active_hand() != W && in_range(src, user))
|
||||
src.id = t
|
||||
to_chat(user, "<span class='notice'>The new ID of \the [src] is [id]</span>")
|
||||
if(id)
|
||||
// It already has an ID (or they just set one), buffer it for copying to windows.
|
||||
to_chat(user, "<span class='notice'>You store \the [src] in \the [MT]'s buffer!</span>")
|
||||
MT.connectable = src
|
||||
MT.update_icon()
|
||||
return TRUE
|
||||
. = ..()
|
||||
|
||||
Reference in New Issue
Block a user