diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 48de32b475..1b9fad9771 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1327,7 +1327,7 @@ var/list/WALLITEMS = list( "/obj/machinery/status_display", "/obj/machinery/requests_console", "/obj/machinery/light_switch", "/obj/effect/sign", "/obj/machinery/newscaster", "/obj/machinery/firealarm", "/obj/structure/noticeboard", "/obj/machinery/door_control", "/obj/machinery/computer/security/telescreen", "/obj/machinery/embedded_controller/radio/simple_vent_controller", - "/obj/item/weapon/secstorage/ssafe", "/obj/machinery/door_timer", "/obj/machinery/flasher", "/obj/machinery/keycard_auth", + "/obj/item/weapon/storage/secure/safe", "/obj/machinery/door_timer", "/obj/machinery/flasher", "/obj/machinery/keycard_auth", "/obj/structure/mirror", "/obj/structure/closet/fireaxecabinet", "/obj/machinery/computer/security/telescreen/entertainment" ) /proc/gotwallitem(loc, dir) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 417224bfa5..f098b15b2d 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -28,7 +28,7 @@ /datum/supply_packs/specialops name = "Special Ops supplies" - contains = list(/obj/item/weapon/storage/emp_kit, + contains = list(/obj/item/weapon/storage/box/emps, /obj/item/weapon/grenade/smokebomb, /obj/item/weapon/grenade/smokebomb, /obj/item/weapon/grenade/smokebomb, @@ -55,7 +55,7 @@ /datum/supply_packs/monkey name = "Monkey crate" - contains = list (/obj/item/weapon/storage/monkeycube_box) + contains = list (/obj/item/weapon/storage/box/monkeycubes) cost = 20 containertype = /obj/structure/closet/crate/freezer containername = "Monkey crate" @@ -91,7 +91,7 @@ /datum/supply_packs/party name = "Party equipment" - contains = list(/obj/item/weapon/storage/drinkingglasses, + contains = list(/obj/item/weapon/storage/box/drinkingglasses, /obj/item/weapon/reagent_containers/food/drinks/shaker, /obj/item/weapon/reagent_containers/food/drinks/bottle/patron, /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, @@ -158,9 +158,9 @@ /datum/supply_packs/lightbulbs name = "Replacement lights" - contains = list(/obj/item/weapon/storage/lightbox/mixed, - /obj/item/weapon/storage/lightbox/mixed, - /obj/item/weapon/storage/lightbox/mixed) + contains = list(/obj/item/weapon/storage/box/lights/mixed, + /obj/item/weapon/storage/box/lights/mixed, + /obj/item/weapon/storage/box/lights/mixed) cost = 10 containertype = /obj/structure/closet/crate containername = "Replacement lights" @@ -280,7 +280,7 @@ /obj/item/weapon/reagent_containers/glass/bottle/antitoxin, /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline, /obj/item/weapon/reagent_containers/glass/bottle/stoxin, - /obj/item/weapon/storage/syringes) + /obj/item/weapon/storage/box/syringes) cost = 10 containertype = /obj/structure/closet/crate/medical containername = "Medical crate" @@ -297,8 +297,8 @@ /obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat, /obj/item/weapon/reagent_containers/glass/bottle/brainrot, /obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion, - /obj/item/weapon/storage/syringes, - /obj/item/weapon/storage/beakerbox, + /obj/item/weapon/storage/box/syringes, + /obj/item/weapon/storage/box/beakers, /obj/item/weapon/reagent_containers/glass/bottle/mutagen) cost = 25 containertype = /obj/structure/closet/crate/secure/weapon @@ -503,8 +503,8 @@ /obj/item/weapon/gun/energy/laser, /obj/item/weapon/gun/energy/taser, /obj/item/weapon/gun/energy/taser, - /obj/item/weapon/storage/flashbang_kit, - /obj/item/weapon/storage/flashbang_kit) + /obj/item/weapon/storage/box/flashbangs, + /obj/item/weapon/storage/box/flashbangs) cost = 30 containertype = /obj/structure/closet/crate/secure/weapon containername = "Weapons crate" @@ -543,9 +543,9 @@ /obj/item/weapon/shield/riot, /obj/item/weapon/shield/riot, /obj/item/weapon/shield/riot, - /obj/item/weapon/storage/flashbang_kit, - /obj/item/weapon/storage/flashbang_kit, - /obj/item/weapon/storage/flashbang_kit, + /obj/item/weapon/storage/box/flashbangs, + /obj/item/weapon/storage/box/flashbangs, + /obj/item/weapon/storage/box/flashbangs, /obj/item/weapon/handcuffs, /obj/item/weapon/handcuffs, /obj/item/weapon/handcuffs, @@ -657,7 +657,7 @@ /datum/supply_packs/randomised/contraband num_contained = 5 contains = list(/obj/item/weapon/contraband/poster, - /obj/item/weapon/cigpacket/dromedaryco, + /obj/item/weapon/storage/fancy/cigarettes/dromedaryco, /obj/item/weapon/lipstick/random) name = "Contraband crate" cost = 30 diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm index f3fd55b667..02ac1dc39a 100644 --- a/code/defines/obj/hydro.dm +++ b/code/defines/obj/hydro.dm @@ -43,6 +43,8 @@ user << "-Plant Production: \blue [production]" if(potency != -1) user << "-Plant Potency: \blue [potency]" + return + ..() // Fallthrough to item/attackby() so that bags can pick seeds up /obj/item/seeds/chiliseed name = "pack of chili seeds" diff --git a/code/game/gamemodes/factions.dm b/code/game/gamemodes/factions.dm index fe03788dd0..f96ea20d92 100644 --- a/code/game/gamemodes/factions.dm +++ b/code/game/gamemodes/factions.dm @@ -124,7 +124,7 @@ /obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow; /obj/item/weapon/melee/energy/sword:4:Energy Sword; /obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle; -/obj/item/weapon/storage/emp_kit:3:5 EMP Grenades; +/obj/item/weapon/storage/box/emps:3:5 EMP Grenades; Whitespace:Seperator; Stealthy and Inconspicuous Weapons; /obj/item/weapon/pen/paralysis:3:Paralysis Pen; @@ -141,7 +141,7 @@ Whitespace:Seperator; Devices and Tools; /obj/item/weapon/card/emag:3:Cryptographic Sequencer; /obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox; -/obj/item/weapon/storage/syndie_kit/space:3:Space Suit; +/obj/item/weapon/storage/box/syndie_kit/space:3:Space Suit; /obj/item/clothing/glasses/thermal/syndi:3:Thermal Imaging Glasses; /obj/item/device/encryptionkey/binary:3:Binary Translator Key; /obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module; @@ -151,8 +151,8 @@ Devices and Tools; /obj/item/weapon/circuitboard/teleporter:20:Teleporter Circuit Board; Whitespace:Seperator; Implants; -/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant; -/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); +/obj/item/weapon/storage/box/syndie_kit/imp_freedom:3:Freedom Implant; +/obj/item/weapon/storage/box/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); Whitespace:Seperator; (Pointless) Badassery; /obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"} diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 47180fadea..ded6a9a5f0 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -34,7 +34,7 @@ /obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow; /obj/item/weapon/melee/energy/sword:4:Energy Sword; /obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle; -/obj/item/weapon/storage/emp_kit:3:5 EMP Grenades; +/obj/item/weapon/storage/box/emps:3:5 EMP Grenades; Whitespace:Seperator; Stealthy and Inconspicuous Weapons; /obj/item/weapon/pen/paralysis:3:Paralysis Pen; @@ -51,7 +51,7 @@ Whitespace:Seperator; Devices and Tools; /obj/item/weapon/card/emag:3:Cryptographic Sequencer; /obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox; -/obj/item/weapon/storage/syndie_kit/space:3:Space Suit; +/obj/item/weapon/storage/box/syndie_kit/space:3:Space Suit; /obj/item/clothing/glasses/thermal/syndi:3:Thermal Imaging Glasses; /obj/item/device/encryptionkey/binary:3:Binary Translator Key; /obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module; @@ -61,8 +61,8 @@ Devices and Tools; /obj/item/weapon/circuitboard/teleporter:20:Teleporter Circuit Board; Whitespace:Seperator; Implants; -/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant; -/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); +/obj/item/weapon/storage/box/syndie_kit/imp_freedom:3:Freedom Implant; +/obj/item/weapon/storage/box/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); Whitespace:Seperator; (Pointless) Badassery; /obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"} diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index c05cf6ccc2..a514f31f9d 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -28,9 +28,9 @@ H.equip_to_slot_or_del(new /obj/item/clothing/head/caphat(H), slot_head) H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(H), slot_glasses) if(H.backbag == 1) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/id_kit(H), slot_r_hand) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H), slot_r_hand) else - H.equip_to_slot_or_del(new /obj/item/weapon/storage/id_kit(H.back), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack) var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 @@ -79,7 +79,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(H), slot_head) if(H.backbag == 1) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/id_kit(H), slot_r_hand) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H), slot_r_hand) else - H.equip_to_slot_or_del(new /obj/item/weapon/storage/id_kit(H.back), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack) return 1 \ No newline at end of file diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 013b4edc27..e1abaa02ed 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -164,11 +164,11 @@ if(H.backbag == 1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(H), slot_r_hand) H.equip_to_slot_or_del(new /obj/item/weapon/crowbar(H), slot_l_hand) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/satchel(H), slot_l_store) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/bag/ore(H), slot_l_store) else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(H.back), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/crowbar(H), slot_in_backpack) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/satchel(H), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/bag/ore(H), slot_in_backpack) return 1 @@ -199,7 +199,7 @@ H.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(H), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/stamp/clown(H), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/toy/crayon/rainbow(H), slot_in_backpack) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/crayonbox(H), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/fancy/crayons(H), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/toy/waterflower(H), slot_in_backpack) H.mutations.Add(CLUMSY) return 1 diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index 80d4174fd4..c75cda5dba 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -42,7 +42,7 @@ updateUsrDialog() else if(processing) user << "\red The biogenerator is currently processing." - else if(istype(O, /obj/item/weapon/plantbag)) + else if(istype(O, /obj/item/weapon/storage/bag/plants)) var/i = 0 for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in contents) i++ diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index a694e80a27..49b1b5cd11 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -377,13 +377,12 @@ /* * Diskette Box */ -/obj/item/weapon/storage/diskbox + +/obj/item/weapon/storage/box/disks name = "Diskette Box" icon_state = "disk_kit" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap -/obj/item/weapon/storage/diskbox/New() +/obj/item/weapon/storage/box/disks/New() ..() new /obj/item/weapon/disk/data(src) new /obj/item/weapon/disk/data(src) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 9f784c1a38..d980b469f9 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -12,14 +12,14 @@ var/enemy_mp = 20 var/gameover = 0 var/blocked = 0 //Player cannot attack/heal while set - var/list/prizes = list( /obj/item/weapon/storage/snappopbox = 2, + var/list/prizes = list( /obj/item/weapon/storage/box/snappops = 2, /obj/item/toy/blink = 2, /obj/item/clothing/under/syndicate/tacticool = 2, /obj/item/toy/sword = 2, /obj/item/toy/gun = 2, /obj/item/toy/crossbow = 2, /obj/item/clothing/suit/syndicatefake = 2, - /obj/item/weapon/storage/crayonbox = 2, + /obj/item/weapon/storage/fancy/crayons = 2, /obj/item/toy/spinningtoy = 2, /obj/item/toy/prize/ripley = 1, /obj/item/toy/prize/fireripley = 1, diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm index 4aedd180b3..f0ac50d09f 100644 --- a/code/game/machinery/hydroponics.dm +++ b/code/game/machinery/hydroponics.dm @@ -729,15 +729,13 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) del(O) updateicon() - else if (istype(O, /obj/item/weapon/plantbag)) + else if (istype(O, /obj/item/weapon/storage/bag/plants)) attack_hand(user) - var/obj/item/weapon/plantbag/S = O + var/obj/item/weapon/storage/bag/plants/S = O for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in locate(user.x,user.y,user.z)) - if (S.contents.len < S.capacity) - S.contents += G; - else - user << "\blue The plant bag is full." + if(!S.can_be_inserted(G)) return + S.handle_item_insertion(G, 1) else if ( istype(O, /obj/item/weapon/pestspray) ) var/obj/item/pestkiller/myPKiller = O diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm index 414f879ddc..dad6aef13b 100644 --- a/code/game/machinery/kitchen/smartfridge.dm +++ b/code/game/machinery/kitchen/smartfridge.dm @@ -83,7 +83,7 @@ user.visible_message("[user] has added \the [O] to \the [src].", \ "You add \the [O] to \the [src].") - else if(istype(O, /obj/item/weapon/plantbag)) + else if(istype(O, /obj/item/weapon/storage/bag/plants)) var/plants_loaded = 0 for(var/obj/G in O.contents) if(accept_check(G)) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 548641f99e..130993612e 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -600,7 +600,7 @@ name = "Cigarette machine" //OCD had to be uppercase to look nice with the new formating desc = "If you want to get cancer, might as well do it in style" icon_state = "cigs" - product_paths = "/obj/item/weapon/cigpacket;/obj/item/weapon/storage/matchbox;/obj/item/weapon/lighter/random" + product_paths = "/obj/item/weapon/storage/fancy/cigarettes;/obj/item/weapon/storage/box/matches;/obj/item/weapon/lighter/random" product_amounts = "10;10;4" product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" vend_delay = 34 @@ -675,7 +675,7 @@ desc = "A plant nutrients vendor" icon_state = "nutri" icon_deny = "nutri-deny" - product_paths = "/obj/item/nutrient/ez;/obj/item/nutrient/l4z;/obj/item/nutrient/rh;/obj/item/weapon/pestspray;/obj/item/weapon/reagent_containers/syringe;/obj/item/weapon/plantbag" + product_paths = "/obj/item/nutrient/ez;/obj/item/nutrient/l4z;/obj/item/nutrient/rh;/obj/item/weapon/pestspray;/obj/item/weapon/reagent_containers/syringe;/obj/item/weapon/storage/bag/plants" product_amounts = "35;25;15;20;5;5" product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" product_hidden = "/obj/item/weapon/reagent_containers/glass/bottle/ammonia;/obj/item/weapon/reagent_containers/glass/bottle/diethylamine" diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index 57708a31c4..da461662f8 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -118,15 +118,14 @@ return M.get_log_html() -/obj/item/weapon/storage/mechatrackingbox - +/obj/item/weapon/storage/box/mechabeacons + name = "Exosuit Tracking Beacons" New() - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) ..() - return + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index cccaee943e..5c4005c8e7 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -164,22 +164,36 @@ user.put_in_active_hand(src) return +// Due to storage type consolidation this should get used more now. +// I have cleaned it up a little, but it could probably use more. -Sayu /obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W,/obj/item/weapon/storage)) var/obj/item/weapon/storage/S = W if(S.use_to_pickup) - if(!S.can_be_inserted(src)) - return if(S.collection_mode) //Mode is set to collect all items on a tile and we clicked on a valid one. if(isturf(src.loc)) - for(var/obj/item/I in src.loc) - if(I != src) //We'll do the one we clicked on last. - if(!S.can_be_inserted(I)) - continue - S.handle_item_insertion(I, 1) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. - S.handle_item_insertion(src) + var/list/rejections = list() + var/success = 0 + var/failure = 0 + for(var/obj/item/I in src.loc) + if(I.type in rejections) // To limit bag spamming: any given type only complains once + continue + if(!S.can_be_inserted(I)) // Note can_be_inserted still makes noise when the answer is no + rejections += I.type // therefore full bags are still a little spammy + failure = 1 + continue + success = 1 + S.handle_item_insertion(I, 1) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. + if(success && !failure) + user << "You put everything in [S]." + else if(success) + user << "You put some things in [S]." + else + user << "You fail to pick anything up with [S]." + + else if(S.can_be_inserted(src)) + S.handle_item_insertion(src) return diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index ed2145c566..1c6fe70e8c 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -12,24 +12,19 @@ del(src) -/obj/item/weapon/storage/body_bag_box +/obj/item/weapon/storage/box/bodybags name = "body bags" desc = "This box contains body bags." icon_state = "bodybags" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) ..() - return + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) /obj/structure/closet/body_bag diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index f0c15f744a..d59a745f7a 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -1151,41 +1151,27 @@ var/global/list/obj/item/device/pda/PDAs = list() else usr << "You do not have a PDA. You should make an issue report about this." - - - //Some spare PDAs in a box - -/obj/item/weapon/storage/PDAbox +/obj/item/weapon/storage/box/PDAs name = "spare PDAs" desc = "A box of spare PDA microcomputers." icon = 'icons/obj/pda.dmi' icon_state = "pdabox" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap -/obj/item/weapon/storage/PDAbox/New() - ..() - new /obj/item/device/pda(src) - new /obj/item/device/pda(src) - new /obj/item/device/pda(src) - new /obj/item/device/pda(src) - - var/newcart = pick(1,2,3,4,5) - switch(newcart) - if(1) - new /obj/item/weapon/cartridge/engineering(src) - if(2) - new /obj/item/weapon/cartridge/security(src) - if(3) - new /obj/item/weapon/cartridge/medical(src) - if(4) - new /obj/item/weapon/cartridge/signal/toxins(src) - if(5) - new /obj/item/weapon/cartridge/quartermaster(src) - - new /obj/item/weapon/cartridge/head(src) + New() + ..() + new /obj/item/device/pda(src) + new /obj/item/device/pda(src) + new /obj/item/device/pda(src) + new /obj/item/device/pda(src) + new /obj/item/weapon/cartridge/head(src) + var/newcart = pick( /obj/item/weapon/cartridge/engineering, + /obj/item/weapon/cartridge/security, + /obj/item/weapon/cartridge/medical, + /obj/item/weapon/cartridge/signal/toxins, + /obj/item/weapon/cartridge/quartermaster) + new newcart(src) // Pass along the pulse to atoms in contents, largely added so pAIs are vulnerable to EMP /obj/item/device/pda/emp_act(severity) diff --git a/code/game/objects/items/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm index 7d5a3f7e64..e0511bab69 100644 --- a/code/game/objects/items/devices/uplinks.dm +++ b/code/game/objects/items/devices/uplinks.dm @@ -59,12 +59,18 @@ A list of items and costs is stored under the datum of every game mode, alongsid continue path_obj = text2path(path_text) - item = new path_obj() - name = O[3] - del item - dat += "[name] ([cost])
" - category_items++ + // Because we're using strings, this comes up if item paths change. + // Failure to handle this error borks uplinks entirely. -Sayu + if(!path_obj) + error("Syndicate item is not a valid path: [path_text]") + else + item = new path_obj() + name = O[3] + del item + + dat += "[name] ([cost])
" + category_items++ dat += "Random Item (??)
" dat += "
" @@ -81,7 +87,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid if(uses > 9) randomItems.Add("/obj/item/toy/syndicateballoon")//Syndicate Balloon - randomItems.Add("/obj/item/weapon/storage/syndie_kit/imp_uplink") //Uplink Implanter + randomItems.Add("/obj/item/weapon/storage/box/syndie_kit/imp_uplink") //Uplink Implanter randomItems.Add("/obj/item/weapon/storage/box/syndicate") //Syndicate bundle //if(uses > 8) //Nothing... yet. @@ -104,15 +110,15 @@ A list of items and costs is stored under the datum of every game mode, alongsid randomItems.Add("/obj/item/device/chameleon") //Chameleon Projector if(uses > 2) - randomItems.Add("/obj/item/weapon/storage/emp_kit") //EMP Grenades + randomItems.Add("/obj/item/weapon/storage/box/emps") //EMP Grenades randomItems.Add("/obj/item/weapon/pen/paralysis") //Paralysis Pen randomItems.Add("/obj/item/weapon/cartridge/syndicate") //Detomatix Cartridge randomItems.Add("/obj/item/clothing/under/chameleon") //Chameleon Jumpsuit randomItems.Add("/obj/item/weapon/card/id/syndicate") //Agent ID Card randomItems.Add("/obj/item/weapon/card/emag") //Cryptographic Sequencer - randomItems.Add("/obj/item/weapon/storage/syndie_kit/space") //Syndicate Space Suit + randomItems.Add("/obj/item/weapon/storage/box/syndie_kit/space") //Syndicate Space Suit randomItems.Add("/obj/item/device/encryptionkey/binary") //Binary Translator Key - randomItems.Add("/obj/item/weapon/storage/syndie_kit/imp_freedom") //Freedom Implant + randomItems.Add("/obj/item/weapon/storage/box/syndie_kit/imp_freedom") //Freedom Implant randomItems.Add("/obj/item/clothing/glasses/thermal/syndi") //Thermal Imaging Goggles if(uses > 1) @@ -142,7 +148,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid switch(buyItem) //Ok, this gets a little messy, sorry. if("/obj/item/weapon/circuitboard/teleporter") uses -= 20 - if("/obj/item/toy/syndicateballoon" , "/obj/item/weapon/storage/syndie_kit/imp_uplink" , "/obj/item/weapon/storage/box/syndicate") + if("/obj/item/toy/syndicateballoon" , "/obj/item/weapon/storage/box/syndie_kit/imp_uplink" , "/obj/item/weapon/storage/box/syndicate") uses -= 10 if("/obj/item/weapon/aiModule/syndicate" , "/obj/item/device/radio/beacon/syndicate") uses -= 7 @@ -152,9 +158,9 @@ A list of items and costs is stored under the datum of every game mode, alongsid uses -= 5 if("/obj/item/weapon/melee/energy/sword" , "/obj/item/clothing/mask/gas/voice" , "/obj/item/device/chameleon") uses -= 4 - if("/obj/item/weapon/storage/emp_kit" , "/obj/item/weapon/pen/paralysis" , "/obj/item/weapon/cartridge/syndicate" , "/obj/item/clothing/under/chameleon" , \ - "/obj/item/weapon/card/emag" , "/obj/item/weapon/storage/syndie_kit/space" , "/obj/item/device/encryptionkey/binary" , \ - "/obj/item/weapon/storage/syndie_kit/imp_freedom" , "/obj/item/clothing/glasses/thermal/syndi") + if("/obj/item/weapon/storage/box/emps" , "/obj/item/weapon/pen/paralysis" , "/obj/item/weapon/cartridge/syndicate" , "/obj/item/clothing/under/chameleon" , \ + "/obj/item/weapon/card/emag" , "/obj/item/weapon/storage/box/syndie_kit/space" , "/obj/item/device/encryptionkey/binary" , \ + "/obj/item/weapon/storage/box/syndie_kit/imp_freedom" , "/obj/item/clothing/glasses/thermal/syndi") uses -= 3 if("/obj/item/ammo_magazine/a357" , "/obj/item/clothing/shoes/syndigaloshes" , "/obj/item/weapon/plastique", "/obj/item/weapon/card/id/syndicate") uses -= 2 @@ -172,7 +178,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid feedback_add_details("traitor_uplink_items_bought","TP") if("/obj/item/toy/syndicateballoon") feedback_add_details("traitor_uplink_items_bought","BS") - if("/obj/item/weapon/storage/syndie_kit/imp_uplink") + if("/obj/item/weapon/storage/box/syndie_kit/imp_uplink") feedback_add_details("traitor_uplink_items_bought","UI") if("/obj/item/weapon/storage/box/syndicate") feedback_add_details("traitor_uplink_items_bought","BU") @@ -192,7 +198,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid feedback_add_details("traitor_uplink_items_bought","VC") if("/obj/item/device/chameleon") feedback_add_details("traitor_uplink_items_bought","CP") - if("/obj/item/weapon/storage/emp_kit") + if("/obj/item/weapon/storage/box/emps") feedback_add_details("traitor_uplink_items_bought","EM") if("/obj/item/weapon/pen/paralysis") feedback_add_details("traitor_uplink_items_bought","PP") @@ -204,11 +210,11 @@ A list of items and costs is stored under the datum of every game mode, alongsid feedback_add_details("traitor_uplink_items_bought","AC") if("/obj/item/weapon/card/emag") feedback_add_details("traitor_uplink_items_bought","EC") - if("/obj/item/weapon/storage/syndie_kit/space") + if("/obj/item/weapon/storage/box/syndie_kit/space") feedback_add_details("traitor_uplink_items_bought","SS") if("/obj/item/device/encryptionkey/binary") feedback_add_details("traitor_uplink_items_bought","BT") - if("/obj/item/weapon/storage/syndie_kit/imp_freedom") + if("/obj/item/weapon/storage/box/syndie_kit/imp_freedom") feedback_add_details("traitor_uplink_items_bought","FI") if("/obj/item/clothing/glasses/thermal/syndi") feedback_add_details("traitor_uplink_items_bought","TM") diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 6e4bec6db2..ba755b336f 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -128,9 +128,9 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \ */ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ new/datum/stack_recipe("box", /obj/item/weapon/storage/box), \ - new/datum/stack_recipe("light tubes", /obj/item/weapon/storage/lightbox/tubes), \ - new/datum/stack_recipe("light bulbs", /obj/item/weapon/storage/lightbox/bulbs), \ - new/datum/stack_recipe("mouse traps", /obj/item/weapon/storage/mousetraps), \ + new/datum/stack_recipe("light tubes", /obj/item/weapon/storage/box/lights/tubes), \ + new/datum/stack_recipe("light bulbs", /obj/item/weapon/storage/box/lights/bulbs), \ + new/datum/stack_recipe("mouse traps", /obj/item/weapon/storage/box/mousetraps), \ new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3), \ new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg), \ new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \ diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index b94acb367e..fdcc6747b6 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -11,12 +11,16 @@ var/perunit = 3750 var/sheettype = null //this is used for girders in the creation of walls/false walls -/obj/item/stack/sheet/attackby(obj/item/weapon/W as obj, mob/user as mob) - if (istype(W, /obj/item/weapon/sheetsnatcher)) - var/obj/item/weapon/sheetsnatcher/S = W + +// Since the sheetsnatcher was consolidated into weapon/storage/bag we now use +// item/attackby() properly, making this unnecessary + +/*/obj/item/stack/sheet/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/weapon/storage/bag/sheetsnatcher)) + var/obj/item/weapon/storage/bag/sheetsnatcher/S = W if(!S.mode) S.add(src,user) else for (var/obj/item/stack/sheet/stack in locate(src.x,src.y,src.z)) S.add(stack,user) - ..() \ No newline at end of file + ..()*/ \ No newline at end of file diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index 47ceab0d8d..5ffed7b6d1 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -181,7 +181,7 @@ RSF if (istype(A, /obj/structure/table) && matter >= 1) user << "Dispensing Dice Pack..." playsound(src.loc, 'sound/machines/click.ogg', 10, 1) - new /obj/item/weapon/storage/dice( A.loc ) + new /obj/item/weapon/storage/pill_bottle/dice( A.loc ) if (isrobot(user)) var/mob/living/silicon/robot/engy = user engy.cell.charge -= 200 @@ -195,7 +195,7 @@ RSF if (istype(A, /turf/simulated/floor) && matter >= 1) user << "Dispensing Dice Pack..." playsound(src.loc, 'sound/machines/click.ogg', 10, 1) - new /obj/item/weapon/storage/dice( A ) + new /obj/item/weapon/storage/pill_bottle/dice( A ) if (isrobot(user)) var/mob/living/silicon/robot/engy = user engy.cell.charge -= 200 diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 9931c07200..dff332f2a6 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -6,9 +6,10 @@ MATCHES CIGARETTES CIGARS SMOKING PIPES -CIG PACKET CHEAP LIGHTERS ZIPPO + +CIGARETTE PACKETS ARE IN FANCY.DM */ /////////// @@ -307,70 +308,7 @@ ZIPPO icon_off = "cobpipeoff" smoketime = 400 -//////////// -//CIG PACK// -//////////// -/obj/item/weapon/cigpacket - name = "cigarette packet" - desc = "The most popular brand of Space Cigarettes, sponsors of the Space Olympics." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cigpacket" - item_state = "cigpacket" - w_class = 1 - throwforce = 2 - flags = TABLEPASS - slot_flags = SLOT_BELT - var/cigcount = 6 -/obj/item/weapon/cigpacket/New() - ..() - flags |= NOREACT - create_reagents(15 * cigcount)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one - -/obj/item/weapon/cigpacket/Del() - ..() - del(reagents) - -/obj/item/weapon/cigpacket/update_icon() - icon_state = "[initial(icon_state)][cigcount]" - desc = "There are [cigcount] cig\s left!" - return - -/obj/item/weapon/cigpacket/attack_hand(mob/user as mob) - if(user.r_hand == src || user.l_hand == src) - if(cigcount == 0) - user << "You're out of cigs, shit! How you gonna get through the rest of the day..." - return - else - var/obj/item/clothing/mask/cigarette/W = new /obj/item/clothing/mask/cigarette(user) - reagents.trans_to(W, (reagents.total_volume/cigcount)) - user.put_in_active_hand(W) - reagents.maximum_volume = 15 * cigcount - cigcount-- - update_icon() - else - return ..() - -/obj/item/weapon/cigpacket/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - if(!istype(M, /mob)) - return - - if(M == user && user.zone_sel.selecting == "mouth" && cigcount > 0 && !user.wear_mask) - var/obj/item/clothing/mask/cigarette/W = new /obj/item/clothing/mask/cigarette(user) - reagents.trans_to(W, (reagents.total_volume/cigcount)) - user.equip_to_slot_if_possible(W, slot_wear_mask) - reagents.maximum_volume = 15 * cigcount - cigcount-- - user << "You take a cigarette out of the pack." - update_icon() - else - ..() - -/obj/item/weapon/cigpacket/dromedaryco - name = "DromedaryCo packet" - desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\"" - icon_state = "Dpacket" - item_state = "Dpacket" ///////// //ZIPPO// diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm index 2f3e696041..e4f69ee631 100644 --- a/code/game/objects/items/weapons/gift_wrappaper.dm +++ b/code/game/objects/items/weapons/gift_wrappaper.dm @@ -65,8 +65,8 @@ var/gift_type = pick(/obj/item/weapon/sord, /obj/item/weapon/storage/wallet, /obj/item/weapon/storage/photo_album, - /obj/item/weapon/storage/snappopbox, - /obj/item/weapon/storage/crayonbox, + /obj/item/weapon/storage/box/snappops, + /obj/item/weapon/storage/fancy/crayons, /obj/item/weapon/storage/backpack/holding, /obj/item/weapon/storage/belt/champion, /obj/item/weapon/soap/deluxe, diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm index d7ed4ea053..21d32ae006 100644 --- a/code/game/objects/items/weapons/hydroponics.dm +++ b/code/game/objects/items/weapons/hydroponics.dm @@ -1,43 +1,11 @@ /* Hydroponic stuff * Contains: - * Plant Bags * Sunflowers * Nettle * Deathnettle * Corbcob */ -/* - * Plant Bags - */ -/obj/item/weapon/plantbag - icon = 'icons/obj/hydroponics.dmi' - icon_state = "plantbag" - name = "Plant Bag" - var/mode = 1; //0 = pick one at a time, 1 = pick all on tile - var/capacity = 50; //the number of plant pieces it can carry. - flags = FPRINT | TABLEPASS - slot_flags = SLOT_BELT - w_class = 1 - -/obj/item/weapon/plantbag/attack_self(mob/user as mob) - for (var/obj/item/O in contents) - contents -= O - O.loc = user.loc - user << "\blue You empty the plant bag." - return - -/obj/item/weapon/plantbag/verb/toggle_mode() - set name = "Switch Bagging Method" - set category = "Object" - - mode = !mode - switch (mode) - if(1) - usr << "The bag now picks up all plants in a tile at once." - if(0) - usr << "The bag now picks up one plant at a time." - /* * Sunflower diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm new file mode 100644 index 0000000000..ebaebdcabe --- /dev/null +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -0,0 +1,223 @@ +/* + * These absorb the functionality of the plant bag, ore satchel, etc. + * They use the use_to_pickup, quick_gather, and quick_empty functions + * that were already defined in weapon/storage, but which had been + * re-implemented in other classes. + * + * Contains: + * Trash Bag + * Mining Satchel + * Plant Bag + * Sheet Snatcher + * + * -Sayu + */ + +// Generic non-item +/obj/item/weapon/storage/bag + allow_quick_gather = 1 + allow_quick_empty = 1 + display_contents_with_number = 0 // UNStABLE AS FuCK, turn on when it stops crashing clients + use_to_pickup = 1 + slot_flags = SLOT_BELT + flags = FPRINT | TABLEPASS + +// ----------------------------- +// Trash bag +// ----------------------------- +/obj/item/weapon/storage/bag/trash + name = "trash bag" + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!" + icon = 'icons/obj/trash.dmi' + icon_state = "trashbag0" + item_state = "trashbag" + + w_class = 4 + max_w_class = 2 + storage_slots = 21 + can_hold = list() // any + cant_hold = list("/obj/item/weapon/disk/nuclear") + + +/obj/item/weapon/storage/bag/trash/update_icon() + if(contents.len == 0) + icon_state = "trashbag0" + else if(contents.len < 12) + icon_state = "trashbag1" + else if(contents.len < 21) + icon_state = "trashbag2" + else icon_state = "trashbag3" + +// ----------------------------- +// Mining Satchel +// ----------------------------- + +/obj/item/weapon/storage/bag/ore + name = "Mining Satchel" + desc = "This little bugger can be used to store and transport ores." + icon = 'icons/obj/mining.dmi' + icon_state = "satchel" + slot_flags = SLOT_BELT | SLOT_POCKET + w_class = 3 + storage_slots = 50 + max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class + max_w_class = 3 + can_hold = list("/obj/item/weapon/ore") + + +// ----------------------------- +// Plant bag +// ----------------------------- + +/obj/item/weapon/storage/bag/plants + icon = 'icons/obj/hydroponics.dmi' + icon_state = "plantbag" + name = "Plant Bag" + storage_slots = 50; //the number of plant pieces it can carry. + max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class + max_w_class = 3 + w_class = 1 + can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/grown","/obj/item/seeds","/obj/item/weapon/grown") + + +// ----------------------------- +// Sheet Snatcher +// ----------------------------- +// Because it stacks stacks, this doesn't operate normally. +// However, making it a storage/bag allows us to reuse existing code in some places. -Sayu + +/obj/item/weapon/storage/bag/sheetsnatcher + icon = 'icons/obj/mining.dmi' + icon_state = "sheetsnatcher" + name = "Sheet Snatcher" + desc = "A patented Nanotrasen storage system designed for any kind of mineral sheet." + + var/capacity = 300; //the number of sheets it can carry. + w_class = 3 + + 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/sheet) || istype(W,/obj/item/stack/sheet/mineral/sandstone) || istype(W,/obj/item/stack/sheet/wood)) + if(!stop_messages) + usr << "The snatcher does not accept [W]." + return 0 //I don't care, but the existing code rejects them for not being "sheets" *shrug* -Sayu + var/current = 0 + for(var/obj/item/stack/sheet/S in contents) + current += S.amount + if(capacity == current)//If it's full, you're done + if(!stop_messages) + usr << "\red The snatcher is full." + 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/sheet/S = W + if(!istype(S)) return 0 + + var/amount + var/inserted = 0 + var/current = 0 + for(var/obj/item/stack/sheet/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/sheet/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.u_equip(S) + usr.update_icons() //update our overlays + if (usr.client && usr.s_active != src) + usr.client.screen -= S + S.dropped(usr) + if(!S.amount) + del S + else + S.loc = src + + 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 + + //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/sheet/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.standard_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/sheet/S in contents) + while(S.amount) + var/obj/item/stack/sheet/N = new S.type(location) + var/stacksize = min(S.amount,N.max_amount) + N.amount = stacksize + S.amount -= stacksize + if(!S.amount) + del 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/sheet/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 + + if(S.amount > S.max_amount) + var/obj/item/stack/sheet/temp = new S.type(src) + temp.amount = S.amount - S.max_amount + S.amount = S.max_amount + + return ..(S,new_location) + +// ----------------------------- +// Sheet Snatcher (Cyborg) +// ----------------------------- + +/obj/item/weapon/storage/bag/sheetsnatcher/borg + name = "Sheet Snatcher 9000" + desc = "" + capacity = 500//Borgs get more because >specialization \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index a0a6d167df..8f383c2460 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -90,7 +90,7 @@ "/obj/item/weapon/reagent_containers/syringe", "/obj/item/weapon/reagent_containers/glass/dispenser", "/obj/item/weapon/lighter/zippo", - "/obj/item/weapon/cigpacket", + "/obj/item/weapon/storage/fancy/cigarettes", "/obj/item/weapon/storage/pill_bottle", "/obj/item/stack/medical", "/obj/item/device/flashlight/pen" diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 52c5f56324..b89cfd6a7f 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -1,3 +1,24 @@ +/* + * Everything derived from the common cardboard box. + * Basically everything except the original is a kit (starts full). + * + * Contains: + * Empty box, starter boxes (survival/engineer), + * Latex glove and sterile mask boxes, + * Syringe, beaker, dna injector boxes, + * Blanks, flashbangs, and EMP grenade boxes, + * Tracking and chemical implant boxes, + * Prescription glasses and drinking glass boxes, + * Condiment bottle and silly cup boxes, + * Donkpocket and monkeycube boxes, + * ID and security PDA cart boxes, + * Handcuff, mousetrap, and pillbottle boxes, + * Snap-pops and matchboxes, + * Replacement light boxes. + * + * For syndicate call-ins see uplink_kits.dm + */ + /obj/item/weapon/storage/box name = "box" desc = "It's just an ordinary box." @@ -23,61 +44,386 @@ new /obj/item/weapon/tank/emergency_oxygen/engi( src ) return -/obj/item/weapon/storage/box/syndicate/ + +/obj/item/weapon/storage/box/gloves + name = "box of latex gloves" + desc = "Contains white gloves." New() ..() - switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 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 + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) - if ("stealth") - new /obj/item/weapon/gun/energy/crossbow(src) - new /obj/item/weapon/pen/paralysis(src) - new /obj/item/device/chameleon(src) - return +/obj/item/weapon/storage/box/masks + name = "sterile masks" + desc = "This box contains masks of sterility." + icon_state = "sterile" - 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) - return + New() + ..() + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) - if ("guns") - new /obj/item/weapon/gun/projectile(src) - new /obj/item/ammo_magazine/a357(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/weapon/plastique(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) - return +/obj/item/weapon/storage/box/syringes + name = "syringes" + desc = "A box full of syringes." + desc = "A biohazard alert warning is printed on the box" + icon_state = "syringe" - 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 + New() + ..() + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) - if ("hacker") - new /obj/item/weapon/aiModule/syndicate(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/device/encryptionkey/binary(src) - return +/obj/item/weapon/storage/box/beakers + name = "beaker box" + icon_state = "beaker" - 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/weapon/card/emag(src) - return \ No newline at end of file + New() + ..() + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + +/obj/item/weapon/storage/box/injectors + name = "\improper DNA injectors" + desc = "This box contains injectors it seems." + + New() + ..() + new /obj/item/weapon/dnainjector/h2m(src) + new /obj/item/weapon/dnainjector/h2m(src) + new /obj/item/weapon/dnainjector/h2m(src) + new /obj/item/weapon/dnainjector/m2h(src) + new /obj/item/weapon/dnainjector/m2h(src) + new /obj/item/weapon/dnainjector/m2h(src) + + +/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." + + New() + ..() + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + + + +/obj/item/weapon/storage/box/flashbangs + name = "box of flashbangs (WARNING)" + desc = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." + icon_state = "flashbang" + + New() + ..() + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + +/obj/item/weapon/storage/box/emps + name = "emp grenades" + desc = "A box with 5 emp grenades." + icon_state = "flashbang" + + New() + ..() + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + + +/obj/item/weapon/storage/box/trackimp + name = "tracking implant kit" + desc = "Box full of scum-bag tracking utensils." + icon_state = "implant" + + New() + ..() + new /obj/item/weapon/implantcase/tracking(src) + new /obj/item/weapon/implantcase/tracking(src) + new /obj/item/weapon/implantcase/tracking(src) + 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) + +/obj/item/weapon/storage/box/chemimp + name = "chemical implant kit" + desc = "Box of stuff used to implant chemicals." + icon_state = "implant" + + New() + ..() + new /obj/item/weapon/implantcase/chem(src) + new /obj/item/weapon/implantcase/chem(src) + new /obj/item/weapon/implantcase/chem(src) + new /obj/item/weapon/implantcase/chem(src) + new /obj/item/weapon/implantcase/chem(src) + new /obj/item/weapon/implanter(src) + new /obj/item/weapon/implantpad(src) + + +/obj/item/weapon/storage/box/rxglasses + name = "prescription glasses" + desc = "This box contains nerd glasses." + icon_state = "glasses" + + New() + ..() + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + +/obj/item/weapon/storage/box/drinkingglasses + name = "box of drinking glasses" + desc = "It has a picture of drinking glasses on it." + + New() + ..() + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + + +/obj/item/weapon/storage/box/condimentbottles + name = "box of condiment bottles" + desc = "It has a large ketchup smear on it." + + New() + ..() + new /obj/item/weapon/reagent_containers/food/condiment(src) + new /obj/item/weapon/reagent_containers/food/condiment(src) + new /obj/item/weapon/reagent_containers/food/condiment(src) + new /obj/item/weapon/reagent_containers/food/condiment(src) + new /obj/item/weapon/reagent_containers/food/condiment(src) + new /obj/item/weapon/reagent_containers/food/condiment(src) + + + +/obj/item/weapon/storage/box/cups + name = "box of paper cups" + desc = "It has pictures of paper cups on the front." + New() + ..() + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + + +/obj/item/weapon/storage/box/donkpockets + name = "box of donk-pockets" + desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." + icon_state = "donk_kit" + + New() + ..() + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + +/obj/item/weapon/storage/box/monkeycubes + name = "monkey cube box" + desc = "Drymate brand monkey cubes. Just add water!" + icon = 'icons/obj/food.dmi' + icon_state = "monkeycubebox" + storage_slots = 7 + can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/monkeycube") + New() + ..() + for(var/i = 1; i <= 5; i++) + new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src) + + +/obj/item/weapon/storage/box/ids + name = "spare IDs" + desc = "Has so many empty IDs." + icon_state = "id" + + New() + ..() + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + +/obj/item/weapon/storage/box/seccarts + name = "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" + + New() + ..() + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + + +/obj/item/weapon/storage/box/handcuffs + name = "spare handcuffs" + desc = "A box full of handcuffs." + icon_state = "handcuff" + + New() + ..() + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + +/obj/item/weapon/storage/box/mousetraps + name = "box of Pest-B-Gon Mousetraps" + desc = "WARNING: Keep out of reach of children." + icon_state = "mousetraps" + + New() + ..() + new /obj/item/device/assembly/mousetrap( src ) + new /obj/item/device/assembly/mousetrap( src ) + new /obj/item/device/assembly/mousetrap( src ) + new /obj/item/device/assembly/mousetrap( src ) + new /obj/item/device/assembly/mousetrap( src ) + new /obj/item/device/assembly/mousetrap( src ) + +/obj/item/weapon/storage/box/pillbottles + name = "box of pill bottles" + desc = "It has pictures of pill bottles on its front." + + New() + ..() + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + + +/obj/item/weapon/storage/box/snappops + name = "snap pop box" + desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children." + icon = 'icons/obj/toy.dmi' + icon_state = "spbox" + storage_slots = 8 + can_hold = list("/obj/item/toy/snappop") + New() + ..() + for(var/i=1; i <= storage_slots; i++) + new /obj/item/toy/snappop(src) + +/obj/item/weapon/storage/box/matches + name = "matchbox" + desc = "A small box of Almost But Not Quite Plasma Premium Matches." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "matchbox" + item_state = "zippo" + storage_slots = 10 + w_class = 1 + flags = TABLEPASS + slot_flags = SLOT_BELT + + New() + ..() + for(var/i=1; i <= storage_slots; i++) + new /obj/item/weapon/match(src) + + attackby(obj/item/weapon/match/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/match) && W.lit == 0) + W.lit = 1 + W.icon_state = "match_lit" + processing_objects.Add(W) + W.update_icon() + return + + +/obj/item/weapon/storage/box/lights + name = "replacement bulbs" + icon = 'icons/obj/storage.dmi' + icon_state = "light" + desc = "This box is shaped on the inside so that only light tubes and bulbs fit." + item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap + storage_slots=21 + can_hold = list("/obj/item/weapon/light/tube", "/obj/item/weapon/light/bulb") + max_combined_w_class = 21 + 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 = 0; i < 21; i++) + new /obj/item/weapon/light/bulb(src) + +/obj/item/weapon/storage/box/lights/tubes + name = "replacement tubes" + icon_state = "lighttube" + +/obj/item/weapon/storage/box/lights/tubes/New() + ..() + for(var/i = 0; i < 21; i++) + new /obj/item/weapon/light/tube(src) + +/obj/item/weapon/storage/box/lights/mixed + name = "replacement lights" + icon_state = "lightmixed" + +/obj/item/weapon/storage/box/lights/mixed/New() + ..() + for(var/i = 0; i < 14; i++) + new /obj/item/weapon/light/tube(src) + for(var/i = 0; i < 7; i++) + new /obj/item/weapon/light/bulb(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index ab7ba168d2..3c60005f75 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -3,11 +3,14 @@ * .. Sorry for the shitty path name, I couldnt think of a better one. * * WARNING: var/icon_type is used for both examine text and sprite name. Please look at the procs below and adjust your sprite names accordingly + * TODO: Cigarette boxes should be ported to this standard * * Contains: * Donut Box * Egg Box * Candle Box + * Crayon Box + * Cigarette Box */ /obj/item/weapon/storage/fancy/ @@ -94,3 +97,107 @@ for(var/i=1; i <= storage_slots; i++) new /obj/item/candle(src) return + +/* + * Crayon Box + */ + +/obj/item/weapon/storage/fancy/crayons + name = "box of crayons" + desc = "A box of crayons for all your rune drawing needs." + icon = 'icons/obj/crayons.dmi' + icon_state = "crayonbox" + w_class = 2.0 + storage_slots = 6 + icon_type = "crayon" + can_hold = list( + "/obj/item/toy/crayon" + ) + +/obj/item/weapon/storage/fancy/crayons/New() + ..() + new /obj/item/toy/crayon/red(src) + new /obj/item/toy/crayon/orange(src) + new /obj/item/toy/crayon/yellow(src) + new /obj/item/toy/crayon/green(src) + new /obj/item/toy/crayon/blue(src) + new /obj/item/toy/crayon/purple(src) + update_icon() + +/obj/item/weapon/storage/fancy/crayons/update_icon() + overlays = list() //resets list + overlays += image('icons/obj/crayons.dmi',"crayonbox") + for(var/obj/item/toy/crayon/crayon in contents) + overlays += image('icons/obj/crayons.dmi',crayon.colourName) + +/obj/item/weapon/storage/fancy/crayons/attackby(obj/item/W as obj, mob/user as mob) + if(istype(W,/obj/item/toy/crayon)) + switch(W:colourName) + if("mime") + 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." + return + ..() + +//////////// +//CIG PACK// +//////////// +/obj/item/weapon/storage/fancy/cigarettes + name = "cigarette packet" + desc = "The most popular brand of Space Cigarettes, sponsors of the Space Olympics." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cigpacket" + item_state = "cigpacket" + w_class = 1 + throwforce = 2 + flags = TABLEPASS + slot_flags = SLOT_BELT + storage_slots = 6 + can_hold = list("/obj/item/clothing/mask/cigarette") + icon_type = "cigarette" + +/obj/item/weapon/storage/fancy/cigarettes/New() + ..() + flags |= NOREACT + for(var/i = 1 to storage_slots) + new /obj/item/clothing/mask/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 + +/obj/item/weapon/storage/fancy/cigarettes/Del() + del(reagents) + ..() + + +/obj/item/weapon/storage/fancy/cigarettes/update_icon() + icon_state = "[initial(icon_state)][contents.len]" + desc = "There are [contents.len] cig\s left!" + return + +/obj/item/weapon/storage/fancy/cigarettes/remove_from_storage(obj/item/W as obj, atom/new_location) + var/obj/item/clothing/mask/cigarette/C = W + if(!istype(C)) return // what + reagents.trans_to(C, (reagents.total_volume/contents.len)) + ..() + +/obj/item/weapon/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!istype(M, /mob)) + return + + if(M == user && user.zone_sel.selecting == "mouth" && contents.len > 0 && !user.wear_mask) + var/obj/item/clothing/mask/cigarette/W = new /obj/item/clothing/mask/cigarette(user) + reagents.trans_to(W, (reagents.total_volume/contents.len)) + user.equip_to_slot_if_possible(W, slot_wear_mask) + reagents.maximum_volume = 15 * contents.len + contents.len-- + user << "You take a cigarette out of the pack." + update_icon() + else + ..() + +/obj/item/weapon/storage/fancy/cigarettes/dromedaryco + name = "\improper DromedaryCo packet" + desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\"" + icon_state = "Dpacket" + item_state = "Dpacket" diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index c4dde85013..a5874f0985 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -1,8 +1,8 @@ /* First aid storage * Contains: * First Aid Kits - * Syringe Kit * Pill Bottles + * Dice Pack (in a pill bottle) */ /* @@ -93,27 +93,6 @@ new /obj/item/device/healthanalyzer( src ) return -/* - * Syringe Kit - */ -/obj/item/weapon/storage/syringes - name = "syringes" - desc = "A box full of syringes." - desc = "A biohazard alert warning is printed on the box" - icon_state = "syringe" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - ..() - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - return - /* * Pill Bottles */ @@ -124,8 +103,9 @@ icon = 'icons/obj/chemical.dmi' item_state = "contsolid" w_class = 2.0 - can_hold = list("/obj/item/weapon/reagent_containers/pill") - var/mode = 1 // pickup mode + can_hold = list("/obj/item/weapon/reagent_containers/pill","/obj/item/weapon/dice") + allow_quick_gather = 1 + use_to_pickup = 1 /obj/item/weapon/storage/pill_bottle/MouseDrop(obj/over_object as obj) //Quick pillbottle fix. -Agouri @@ -150,18 +130,6 @@ return return - -/obj/item/weapon/storage/pill_bottle/verb/toggle_mode() - set name = "Switch Pill Bottle Method" - set category = "Object" - - mode = !mode - switch (mode) - if(1) - usr << "The pill bottle now picks up all pills in a tile at once." - if(0) - usr << "The pill bottle now picks up one pill at a time." - /obj/item/weapon/storage/pill_bottle/kelotane name = "Pill bottle (kelotane)" desc = "Contains pills used to treat burns." @@ -204,3 +172,13 @@ new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) + +/obj/item/weapon/storage/pill_bottle/dice + name = "pack of dice" + desc = "It's a small container with dice inside." + + New() + ..() + new /obj/item/weapon/dice( src ) + new /obj/item/weapon/dice/d20( src ) + diff --git a/code/game/objects/items/weapons/storage/kit.dm b/code/game/objects/items/weapons/storage/kit.dm deleted file mode 100644 index 34dfe45823..0000000000 --- a/code/game/objects/items/weapons/storage/kit.dm +++ /dev/null @@ -1,346 +0,0 @@ - -/obj/item/weapon/storage/lglo_kit - name = "Latex Gloves" - desc = "Contains white gloves." - icon_state = "latex" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - ..() - return - -/obj/item/weapon/storage/blankbox - name = "box of blank shells" - desc = "It has a picture of a gun and several warning symbols on the front." - icon_state = "box" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - ..() - return - -/obj/item/weapon/storage/beakerbox - name = "Beaker Box" - icon_state = "beaker" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - ..() - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - -/obj/item/weapon/storage/flashbang_kit - name = "flashbangs (WARNING)" - desc = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." - icon_state = "flashbang" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - ..() - return - -/obj/item/weapon/storage/emp_kit - name = "emp grenades" - desc = "A box with 5 emp grenades." - icon_state = "flashbang" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - ..() - return - -/obj/item/weapon/storage/stma_kit - name = "Sterile Masks" - desc = "This box contains masks of sterility." - icon_state = "sterile" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - ..() - return - -/obj/item/weapon/storage/gl_kit - name = "Prescription Glasses" - desc = "This box contains nerd glasses." - icon_state = "glasses" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - ..() - return - -/obj/item/weapon/storage/trackimp_kit - name = "Tracking Implant Kit" - desc = "Box full of scum-bag tracking utensils." - icon_state = "implant" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/implantcase/tracking(src) - new /obj/item/weapon/implantcase/tracking(src) - new /obj/item/weapon/implantcase/tracking(src) - 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) - ..() - return - -/obj/item/weapon/storage/chemimp_kit - name = "Chemical Implant Kit" - desc = "Box of stuff used to implant chemicals." - icon_state = "implant" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implanter(src) - new /obj/item/weapon/implantpad(src) - ..() - return - -/obj/item/weapon/storage/injectbox - name = "DNA-Injectors" - desc = "This box contains injectors it seems." - icon_state = "box" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/dnainjector/h2m(src) - new /obj/item/weapon/dnainjector/h2m(src) - new /obj/item/weapon/dnainjector/h2m(src) - new /obj/item/weapon/dnainjector/m2h(src) - new /obj/item/weapon/dnainjector/m2h(src) - new /obj/item/weapon/dnainjector/m2h(src) - ..() - return - -/obj/item/weapon/storage/id_kit - name = "Spare IDs" - desc = "Has so many empty IDs." - icon_state = "id" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - ..() - return - -/obj/item/weapon/storage/handcuff_kit - name = "Spare Handcuffs" - desc = "A box full of handcuffs." - icon_state = "handcuff" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - ..() - return - -/obj/item/weapon/storage/seccart_kit - name = "Spare R.O.B.U.S.T. Cartridges" - desc = "A box full of R.O.B.U.S.T. Cartridges, used by Security." - icon = 'icons/obj/pda.dmi' - icon_state = "pdabox" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - ..() - return - -/obj/item/weapon/storage/donkpocket_kit - name = "box of donk-pockets" - desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." - icon_state = "donk_kit" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - ..() - return - -/obj/item/weapon/storage/condimentbottles - name = "box of condiment bottles" - desc = "It has a large ketchup smear on it." - icon_state = "box" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/reagent_containers/food/condiment(src) - new /obj/item/weapon/reagent_containers/food/condiment(src) - new /obj/item/weapon/reagent_containers/food/condiment(src) - new /obj/item/weapon/reagent_containers/food/condiment(src) - new /obj/item/weapon/reagent_containers/food/condiment(src) - new /obj/item/weapon/reagent_containers/food/condiment(src) - ..() - return - -/obj/item/weapon/storage/drinkingglasses - name = "box of drinking glasses" - desc = "It has a picture of drinking glasses on it." - icon_state = "box" - item_state = "syringe_kit" - - New() - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - ..() - return - -/obj/item/weapon/storage/cupbox - name = "box of paper cups" - desc = "It has pictures of paper cups on the front." - icon_state = "box" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - New() - ..() - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - -/obj/item/weapon/storage/dice - name = "pack of dice" - desc = "It's a small container with dice inside." - icon_state = "pill_canister" - icon = 'icons/obj/chemical.dmi' - item_state = "contsolid" - w_class = 2.0 - can_hold = list("/obj/item/weapon/dice") - - New() - new /obj/item/weapon/dice( src ) - new /obj/item/weapon/dice/d20( src ) - ..() - return - -/obj/item/weapon/storage/pillbottlebox - name = "box of pill bottles" - desc = "It has pictures of pill bottles on its front." - icon_state = "pillbox" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - ..() - return - -/obj/item/weapon/storage/mousetraps - name = "box of Pest-B-Gon Mousetraps" - desc = "WARNING: Keep out of reach of children." - icon_state = "mousetraps" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/device/assembly/mousetrap( src ) - new /obj/item/device/assembly/mousetrap( src ) - new /obj/item/device/assembly/mousetrap( src ) - new /obj/item/device/assembly/mousetrap( src ) - new /obj/item/device/assembly/mousetrap( src ) - new /obj/item/device/assembly/mousetrap( src ) - ..() - return \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm new file mode 100644 index 0000000000..c023cd247c --- /dev/null +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -0,0 +1,242 @@ +/* + * Absorbs /obj/item/weapon/secstorage. + * Reimplements it only slightly to use existing storage functionality. + * + * Contains: + * Secure Briefcase + * Wall Safe + */ + +// ----------------------------- +// Generic Item +// ----------------------------- +/obj/item/weapon/storage/secure + name = "secstorage" + var/icon_locking = "secureb" + var/icon_sparking = "securespark" + var/icon_opened = "secure0" + var/locked = 1 + var/code = "" + var/l_code = null + var/l_set = 0 + var/l_setshort = 0 + var/l_hacking = 0 + var/emagged = 0 + var/open = 0 + w_class = 3.0 + max_w_class = 2 + max_combined_w_class = 14 + + examine() + set src in oview(1) + ..() + usr << text("The service panel is [src.open ? "open" : "closed"].") + + attackby(obj/item/weapon/W as obj, mob/user as mob) + if(locked) + if ( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && (!src.emagged)) + emagged = 1 + src.overlays += image('icons/obj/storage.dmi', icon_sparking) + sleep(6) + src.overlays = null + overlays += image('icons/obj/storage.dmi', icon_locking) + locked = 0 + if(istype(W, /obj/item/weapon/melee/energy/blade)) + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() + spark_system.set_up(5, 0, src.loc) + spark_system.start() + playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) + playsound(src.loc, "sparks", 50, 1) + user << "You slice through the lock on [src]." + else + user << "You short out the lock on [src]." + return + + if (istype(W, /obj/item/weapon/screwdriver)) + if (do_after(user, 20)) + src.open =! src.open + user.show_message(text("\blue You [] the service panel.", (src.open ? "open" : "close"))) + return + if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking)) + user.show_message(text("\red Now attempting to reset internal memory, please hold."), 1) + src.l_hacking = 1 + if (do_after(usr, 100)) + if (prob(40)) + src.l_setshort = 1 + src.l_set = 0 + user.show_message(text("\red Internal memory reset. Please give it a few seconds to reinitialize."), 1) + sleep(80) + src.l_setshort = 0 + src.l_hacking = 0 + else + user.show_message(text("\red Unable to reset internal memory."), 1) + src.l_hacking = 0 + else src.l_hacking = 0 + return + //At this point you have exhausted all the special things to do when locked + // ... but it's still locked. + return + + // -> storage/attackby() what with handle insertion, etc + ..() + + + MouseDrop(over_object, src_location, over_location) + if (locked) + src.add_fingerprint(usr) + return + ..() + + + attack_self(mob/user as mob) + user.set_machine(src) + var/dat = text("[]
\n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED")) + var/message = "Code" + if ((src.l_set == 0) && (!src.emagged) && (!src.l_setshort)) + dat += text("

\n5-DIGIT PASSCODE NOT SET.
ENTER NEW PASSCODE.
") + if (src.emagged) + dat += text("

\nLOCKING SYSTEM ERROR - 1701") + if (src.l_setshort) + dat += text("

\nALERT: MEMORY SYSTEM ERROR - 6040 201") + message = text("[]", src.code) + if (!src.locked) + message = "*****" + dat += text("


\n>[]
\n1-2-3
\n4-5-6
\n7-8-9
\nR-0-E
\n
", message, src, src, src, src, src, src, src, src, src, src, src, src) + user << browse(dat, "window=caselock;size=300x280") + + Topic(href, href_list) + ..() + if ((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1)) + return + if (href_list["type"]) + if (href_list["type"] == "E") + if ((src.l_set == 0) && (length(src.code) == 5) && (!src.l_setshort) && (src.code != "ERROR")) + src.l_code = src.code + src.l_set = 1 + else if ((src.code == src.l_code) && (src.emagged == 0) && (src.l_set == 1)) + src.locked = 0 + src.overlays = null + overlays += image('icons/obj/storage.dmi', icon_opened) + src.code = null + else + src.code = "ERROR" + else + if ((href_list["type"] == "R") && (src.emagged == 0) && (!src.l_setshort)) + src.locked = 1 + src.overlays = null + src.code = null + src.close(usr) + else + src.code += text("[]", href_list["type"]) + if (length(src.code) > 5) + src.code = "ERROR" + src.add_fingerprint(usr) + for(var/mob/M in viewers(1, src.loc)) + if ((M.client && M.machine == src)) + src.attack_self(M) + return + return + +// ----------------------------- +// Secure Briefcase +// ----------------------------- +/obj/item/weapon/storage/secure/briefcase + name = "secure briefcase" + icon = 'icons/obj/storage.dmi' + icon_state = "secure" + item_state = "sec-case" + desc = "A large briefcase with a digital locking system." + flags = FPRINT | TABLEPASS + force = 8.0 + throw_speed = 1 + throw_range = 4 + w_class = 4.0 + + New() + ..() + new /obj/item/weapon/paper(src) + new /obj/item/weapon/pen(src) + + attack_hand(mob/user as mob) + if ((src.loc == user) && (src.locked == 1)) + usr << "\red [src] is locked and cannot be opened!" + else if ((src.loc == user) && (!src.locked)) + playsound(src.loc, "rustle", 50, 1, -5) + if (user.s_active) + user.s_active.close(user) //Close and re-open + src.show_to(user) + else + ..() + for(var/mob/M in range(1)) + if (M.s_active == src) + src.close(M) + src.orient2hud(user) + src.add_fingerprint(user) + return + + //I consider this worthless but it isn't my code so whatever. Remove or uncomment. + /*attack(mob/M as mob, mob/living/user as mob) + if ((CLUMSY in user.mutations) && prob(50)) + user << "\red The [src] slips out of your hand and hits your head." + user.take_organ_damage(10) + user.Paralyse(2) + return + + M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") + user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") + + log_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + + var/t = user:zone_sel.selecting + if (t == "head") + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if (H.stat < 2 && H.health < 50 && prob(90)) + // ******* Check + if (istype(H, /obj/item/clothing/head) && H.flags & 8 && prob(80)) + H << "\red The helmet protects you from being hit hard in the head!" + return + var/time = rand(2, 6) + if (prob(75)) + H.Paralyse(time) + else + H.Stun(time) + if(H.stat != 2) H.stat = 1 + for(var/mob/O in viewers(H, null)) + O.show_message(text("\red [] has been knocked unconscious!", H), 1, "\red You hear someone fall.", 2) + else + H << text("\red [] tried to knock you unconcious!",user) + H.eye_blurry += 3 + + return*/ + +// ----------------------------- +// Secure Safe +// ----------------------------- + +/obj/item/weapon/storage/secure/safe + name = "secure safe" + icon = 'icons/obj/storage.dmi' + icon_state = "safe" + icon_opened = "safe0" + icon_locking = "safeb" + icon_sparking = "safespark" + flags = FPRINT | TABLEPASS + force = 8.0 + w_class = 8.0 + max_w_class = 8 + anchored = 1.0 + density = 0 + cant_hold = list("/obj/item/weapon/storage/secure/briefcase") + + 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) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index aaa9f7ab5f..982be4d081 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -1,6 +1,14 @@ +// To clarify: +// For use_to_pickup and allow_quick_gather functionality, +// see item/attackby() (/game/objects/items.dm) +// Do not remove this functionality without good reason, cough reagent_containers cough. +// -Sayu + + /obj/item/weapon/storage - icon = 'icons/obj/storage.dmi' name = "storage" + icon = 'icons/obj/storage.dmi' + w_class = 3.0 var/list/can_hold = new/list() //List of objects which this item can store (if set, it can't store anything else) var/list/cant_hold = new/list() //List of objects which this item can't store (in effect only if can_hold isn't set) var/max_w_class = 2 //Max size of objects that this object can store (in effect only if can_hold isn't set) @@ -13,7 +21,6 @@ var/allow_quick_empty //Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor. var/allow_quick_gather //Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile. var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile - w_class = 3.0 var/foldable = null // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard /obj/item/weapon/storage/MouseDrop(obj/over_object as obj) @@ -172,7 +179,7 @@ return //This proc return 1 if the item can be picked up and 0 if it can't. -//Set the stop_messages to stop it from printing emssages +//Set the stop_messages to stop it from printing messages /obj/item/weapon/storage/proc/can_be_inserted(obj/item/W as obj, stop_messages = 0) if(!istype(W)) return //Not an item @@ -180,7 +187,7 @@ return 0 //Means the item is already in the storage item if(contents.len >= storage_slots) if(!stop_messages) - usr << "\red The [src] is full, make some space." + usr << "[src] is full, make some space." return 0 //Storage item is full if(can_hold.len) @@ -191,18 +198,18 @@ break if(!ok) if(!stop_messages) - usr << "\red This [src] cannot hold [W]." + usr << "[src] cannot hold [W]." return 0 for(var/A in cant_hold) //Check for specific items which this container can't hold. if(istype(W, text2path(A) )) if(!stop_messages) - usr << "\red This [src] cannot hold [W]." + usr << "[src] cannot hold [W]." return 0 if (W.w_class > max_w_class) if(!stop_messages) - usr << "\red This [W] is too big for this [src]" + usr << "[W] is too big for this [src]." return 0 var/sum_w_class = W.w_class @@ -211,13 +218,13 @@ if(sum_w_class > max_combined_w_class) if(!stop_messages) - usr << "\red The [src] is full, make some space." + usr << "[src] is full, make some space." return 0 if(W.w_class >= src.w_class && (istype(W, /obj/item/weapon/storage))) if(!istype(src, /obj/item/weapon/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm. if(!stop_messages) - usr << "\red The [src] cannot hold [W] as it's a storage item of the same size." + usr << "[src] cannot hold [W] as it's a storage item of the same size." return 0 //To prevent the stacking of same sized storage items. return 1 @@ -241,11 +248,11 @@ if(!prevent_warning && !istype(W, /obj/item/weapon/gun/energy/crossbow)) for(var/mob/M in viewers(usr, null)) if (M == usr) - usr << "\blue You put the [W] into [src]." + usr << "You put the [W] into [src]." else if (M in range(1)) //If someone is standing close enough, they can tell what it is... - M.show_message("\blue [usr] puts [W] into [src].") + M.show_message("[usr] puts [W] into [src].") else if (W && W.w_class >= 3.0) //Otherwise they can only see large or normal items from a distance... - M.show_message("\blue [usr] puts [W] into [src].") + M.show_message("[usr] puts [W] into [src].") src.orient2hud(usr) if(usr.s_active) @@ -360,9 +367,9 @@ collection_mode = !collection_mode switch (collection_mode) if(1) - usr << "The [src] now picks up all ore in a tile at once." + usr << "[src] now picks up all items in a tile at once." if(0) - usr << "The [src] now picks up one ore at a time." + usr << "[src] now picks up one item at a time." /obj/item/weapon/storage/verb/quick_empty() @@ -433,7 +440,7 @@ if ( !found ) // User is too far away return // Now make the cardboard - user << "\blue You fold [src] flat." + user << "You fold [src] flat." new src.foldable(get_turf(src)) del(src) //BubbleWrap END diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 1ef400a972..d8c52b956f 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -1,20 +1,78 @@ -/obj/item/weapon/storage/syndie_kit +/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))) + 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 + + if ("stealth") + new /obj/item/weapon/gun/energy/crossbow(src) + new /obj/item/weapon/pen/paralysis(src) + new /obj/item/device/chameleon(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) + return + + if ("guns") + new /obj/item/weapon/gun/projectile(src) + new /obj/item/ammo_magazine/a357(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/weapon/plastique(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) + 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) + return + + if ("hacker") + new /obj/item/weapon/aiModule/syndicate(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/device/encryptionkey/binary(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/weapon/card/emag(src) + return + +/obj/item/weapon/storage/box/syndie_kit name = "Box" desc = "A sleek, sturdy box" icon_state = "box_of_doom" - item_state = "syringe_kit" -/obj/item/weapon/storage/syndie_kit/imp_freedom +/obj/item/weapon/storage/box/syndie_kit/imp_freedom name = "Freedom Implant (with injector)" -/obj/item/weapon/storage/syndie_kit/imp_freedom/New() - var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) +/obj/item/weapon/storage/box/syndie_kit/imp_freedom/New() + ..() + var/obj/item/weapon/implanter/O = new(src) O.imp = new /obj/item/weapon/implant/freedom(O) O.update() - ..() return -/*/obj/item/weapon/storage/syndie_kit/imp_compress +/*/obj/item/weapon/storage/box/syndie_kit/imp_compress name = "Compressed Matter Implant (with injector)" /obj/item/weapon/storage/syndie_kit/imp_compress/New() @@ -33,21 +91,21 @@ ..() return*/ -/obj/item/weapon/storage/syndie_kit/imp_uplink +/obj/item/weapon/storage/box/syndie_kit/imp_uplink name = "Uplink Implant (with injector)" -/obj/item/weapon/storage/syndie_kit/imp_uplink/New() - var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) +/obj/item/weapon/storage/box/syndie_kit/imp_uplink/New() + ..() + var/obj/item/weapon/implanter/O = new(src) O.imp = new /obj/item/weapon/implant/uplink(O) O.update() - ..() return -/obj/item/weapon/storage/syndie_kit/space +/obj/item/weapon/storage/box/syndie_kit/space name = "Space Suit and Helmet" -/obj/item/weapon/storage/syndie_kit/space/New() +/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) - ..() return diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index b9ebc56d10..86d0f1825b 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -105,9 +105,9 @@ new /obj/item/weapon/melee/baton(src) new /obj/item/weapon/melee/baton(src) new /obj/item/weapon/melee/baton(src) - new /obj/item/weapon/storage/flashbang_kit(src) - new /obj/item/weapon/storage/flashbang_kit(src) - new /obj/item/weapon/storage/flashbang_kit(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/clothing/head/helmet/thunderdome(src) new /obj/item/clothing/head/helmet/thunderdome(src) new /obj/item/clothing/head/helmet/thunderdome(src) @@ -133,9 +133,9 @@ new /obj/item/weapon/melee/baton(src) new /obj/item/weapon/melee/baton(src) new /obj/item/weapon/melee/baton(src) - new /obj/item/weapon/storage/flashbang_kit(src) - new /obj/item/weapon/storage/flashbang_kit(src) - new /obj/item/weapon/storage/flashbang_kit(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/clothing/head/helmet/thunderdome(src) new /obj/item/clothing/head/helmet/thunderdome(src) new /obj/item/clothing/head/helmet/thunderdome(src) diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 32d5d782cb..ee02050241 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -50,7 +50,7 @@ new /obj/item/weapon/caution(src) new /obj/item/weapon/caution(src) new /obj/item/weapon/caution(src) - new /obj/item/weapon/trashbag(src) + new /obj/item/weapon/storage/bag/trash(src) new /obj/item/device/lightreplacer(src) new /obj/item/clothing/gloves/black(src) new /obj/item/clothing/head/soft/purple(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index bf75af4cbd..cf2db4fa7b 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -17,7 +17,7 @@ new /obj/item/clothing/suit/apron(src) if(2) new /obj/item/clothing/suit/apron/overalls(src) - new /obj/item/weapon/plantbag(src) + new /obj/item/weapon/storage/bag/plants(src) new /obj/item/clothing/under/rank/hydroponics(src) new /obj/item/device/analyzer/plant_analyzer(src) new /obj/item/clothing/head/greenbandana(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 030d8dc9c3..c1774723f9 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -13,7 +13,7 @@ New() ..() sleep(2) - new /obj/item/weapon/storage/syringes(src) + new /obj/item/weapon/storage/box/syringes(src) new /obj/item/weapon/reagent_containers/dropper(src) new /obj/item/weapon/reagent_containers/dropper(src) new /obj/item/weapon/reagent_containers/glass/beaker(src) @@ -157,8 +157,8 @@ New() ..() sleep(2) - new /obj/item/weapon/storage/pillbottlebox(src) - new /obj/item/weapon/storage/pillbottlebox(src) + new /obj/item/weapon/storage/box/pillbottles(src) + new /obj/item/weapon/storage/box/pillbottles(src) return /obj/structure/closet/secure_closet/medical_wall diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 38db6d73aa..db74b4965f 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -48,8 +48,8 @@ new /obj/item/weapon/cartridge/hop(src) new /obj/item/device/radio/headset/heads/hop(src) new /obj/item/clothing/shoes/brown(src) - new /obj/item/weapon/storage/id_kit(src) - new /obj/item/weapon/storage/id_kit( src ) + new /obj/item/weapon/storage/box/ids(src) + new /obj/item/weapon/storage/box/ids( src ) new /obj/item/weapon/gun/energy/gun(src) new /obj/item/device/flash(src) new /obj/item/clothing/glasses/sunglasses(src) @@ -83,7 +83,7 @@ new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/weapon/shield/riot(src) new /obj/item/weapon/storage/lockbox/loyalty(src) - new /obj/item/weapon/storage/flashbang_kit(src) + new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/storage/belt/security(src) new /obj/item/device/flash(src) new /obj/item/weapon/melee/baton(src) @@ -117,7 +117,7 @@ // new /obj/item/weapon/cartridge/security(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/clothing/glasses/sunglasses/sechud(src) - new /obj/item/weapon/storage/flashbang_kit(src) + new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/storage/belt/security(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/melee/baton(src) diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 349ca4cc13..509a64662f 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -35,8 +35,8 @@ new /obj/item/ammo_magazine/a12mm(src) new /obj/item/ammo_magazine/a12mm(src) new /obj/item/ammo_magazine/a12mm(src) - new /obj/item/weapon/storage/handcuff_kit(src) - new /obj/item/weapon/storage/flashbang_kit(src) + new /obj/item/weapon/storage/box/handcuffs(src) + new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/gun/energy/gun(src) new /obj/item/weapon/gun/energy/gun(src) new /obj/item/weapon/gun/energy/gun(src) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index d801b48642..7d5f5b603f 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -7,7 +7,7 @@ flags = OPENCONTAINER //copypaste sorry var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite - var/obj/item/weapon/trashbag/mybag = null + var/obj/item/weapon/storage/bag/trash/mybag = null /obj/structure/stool/bed/chair/janicart/New() handle_rotation() @@ -33,7 +33,7 @@ user << "This pimpin' ride is out of water!" else if(istype(W, /obj/item/key)) user << "Hold [W] in one of your hands while you drive this pimpin' ride." - else if(istype(W, /obj/item/weapon/trashbag)) + else if(istype(W, /obj/item/weapon/storage/bag/trash)) user << "You hook the trashbag onto the pimpin' ride." user.drop_item() W.loc = src diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 9214a71a16..a4dc1af9ce 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -711,7 +711,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(M), slot_l_store) M.equip_to_slot_or_del(new /obj/item/weapon/cloaking_device(M), slot_r_store) - var/obj/item/weapon/secstorage/sbriefcase/sec_briefcase = new(M) + var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = new(M) for(var/obj/item/briefcase_item in sec_briefcase) del(briefcase_item) for(var/i=3, i>0, i--) diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index dfed555ea1..132573e2a5 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -144,7 +144,7 @@ var/global/sent_strike_team = 0 equip_to_slot_or_del(new /obj/item/ammo_magazine/a357(src), slot_in_backpack) equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(src), slot_in_backpack) - equip_to_slot_or_del(new /obj/item/weapon/storage/flashbang_kit(src), slot_in_backpack) + equip_to_slot_or_del(new /obj/item/weapon/storage/box/flashbangs(src), slot_in_backpack) equip_to_slot_or_del(new /obj/item/device/flashlight(src), slot_in_backpack) if (!leader_selected) equip_to_slot_or_del(new /obj/item/weapon/plastique(src), slot_in_backpack) diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm index 5a7112015e..068f8f87db 100644 --- a/code/modules/clothing/spacesuits/rig.dm +++ b/code/modules/clothing/spacesuits/rig.dm @@ -41,7 +41,7 @@ item_state = "eng_hardsuit" slowdown = 2 armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 60) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/satchel,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd) //Chief Engineer's rig diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index bf48605160..f234a3d661 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -66,7 +66,7 @@ item_state = "det_suit" blood_overlay_type = "coat" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/cigpacket,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder) + allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder) armor = list(melee = 50, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) //Engineering diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index f3872473e7..f5cdb7b382 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -88,7 +88,7 @@ item_state = "judge" flags = FPRINT | TABLEPASS | ONESIZEFITSALL body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - allowed = list(/obj/item/weapon/cigpacket,/obj/item/weapon/spacecash) + allowed = list(/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/spacecash) flags_inv = HIDEJUMPSUIT diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 00423435b7..8992817ffe 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -332,14 +332,14 @@ proc/check_panel(mob/M) var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/item/ammo_magazine/a357,\ /obj/item/weapon/gun/energy/crossbow, /obj/item/weapon/melee/energy/sword,\ - /obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/emp_kit,\ + /obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/box/emps,\ /obj/item/weapon/cartridge/syndicate, /obj/item/clothing/under/chameleon,\ /obj/item/clothing/shoes/syndigaloshes, /obj/item/weapon/card/id/syndicate,\ /obj/item/clothing/mask/gas/voice, /obj/item/clothing/glasses/thermal,\ /obj/item/device/chameleon, /obj/item/weapon/card/emag,\ /obj/item/weapon/storage/toolbox/syndicate, /obj/item/weapon/aiModule,\ /obj/item/device/radio/headset/syndicate, /obj/item/weapon/plastique,\ - /obj/item/device/powersink, /obj/item/weapon/storage/syndie_kit,\ + /obj/item/device/powersink, /obj/item/weapon/storage/box/syndie_kit,\ /obj/item/toy/syndicateballoon, /obj/item/weapon/gun/energy/laser/captain,\ /obj/item/weapon/hand_tele, /obj/item/weapon/rcd, /obj/item/weapon/tank/jetpack,\ /obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\ diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index be1513a477..84ea779898 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -31,7 +31,7 @@ new /obj/item/clothing/gloves/black(src) new /obj/item/clothing/shoes/black(src) new /obj/item/device/analyzer(src) - new /obj/item/weapon/storage/satchel(src) + new /obj/item/weapon/storage/bag/ore(src) new /obj/item/device/flashlight/lantern(src) new /obj/item/weapon/shovel(src) new /obj/item/weapon/pickaxe(src) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 8f6c496642..72fb4a92da 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -382,8 +382,8 @@ commented out in r5061, I left it because of the shroom thingies user << "\blue You dug a hole." gets_dug() - if(istype(W,/obj/item/weapon/storage/satchel)) - var/obj/item/weapon/storage/satchel/S = W + if(istype(W,/obj/item/weapon/storage/bag/ore)) + var/obj/item/weapon/storage/bag/ore/S = W if(S.collection_mode) for(var/obj/item/weapon/ore/O in src.contents) O.attackby(W,user) @@ -453,11 +453,11 @@ commented out in r5061, I left it because of the shroom thingies if(istype(M,/mob/living/silicon/robot)) var/mob/living/silicon/robot/R = M if(istype(R.module, /obj/item/weapon/robot_module/miner)) - if(istype(R.module_state_1,/obj/item/weapon/storage/satchel)) + if(istype(R.module_state_1,/obj/item/weapon/storage/bag/ore)) src.attackby(R.module_state_1,R) - else if(istype(R.module_state_2,/obj/item/weapon/storage/satchel)) + else if(istype(R.module_state_2,/obj/item/weapon/storage/bag/ore)) src.attackby(R.module_state_2,R) - else if(istype(R.module_state_3,/obj/item/weapon/storage/satchel)) + else if(istype(R.module_state_3,/obj/item/weapon/storage/bag/ore)) src.attackby(R.module_state_3,R) else return \ No newline at end of file diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 1487582395..4800991b6f 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -81,174 +81,3 @@ usr << "\blue You empty the box" src.updateUsrDialog() return - -/**********************Sheet Snatcher**************************/ -//Stolen satchel code, making it a box just wouldn't work well for this -Sieve - -/obj/item/weapon/sheetsnatcher - icon = 'icons/obj/mining.dmi' - icon_state = "sheetsnatcher" - name = "Sheet Snatcher" - desc = "A patented Nanotrasen storage system designed for any kind of mineral sheet." - var/mode = 1; //0 = pick one at a time, 1 = pick all on tile - var/capacity = 300; //the number of sheets it can carry. - flags = FPRINT | TABLEPASS - w_class = 3 - var/metal = 0//Holder values, to have a count of how much of each type is in the snatcher - var/glass = 0 - var/gold = 0 - var/silver = 0 - var/diamond = 0 - var/plasma = 0 - var/uranium = 0 - var/clown = 0 - var/euranium = 0 - var/plasteel = 0 - var/rglass = 0 - -/obj/item/weapon/sheetsnatcher/attack_self(mob/user as mob)//Credit goes to carn on this one - var/location = get_turf(src) //fetches the turf containing the object. (so stuff spawns on the floor) - while(metal) - var/obj/item/stack/sheet/metal/S = new (location) - var/stacksize = min(metal,50) //maximum stack size is 50! - S.amount = stacksize - metal -= stacksize - while(glass) - var/obj/item/stack/sheet/glass/S = new (location) - var/stacksize = min(glass,50) - S.amount = stacksize - glass -= stacksize - while(gold) - var/obj/item/stack/sheet/mineral/gold/S = new (location) - var/stacksize = min(gold,50) - S.amount = stacksize - gold -= stacksize - while(silver) - var/obj/item/stack/sheet/mineral/silver/S = new (location) - var/stacksize = min(silver,50) - S.amount = stacksize - silver -= stacksize - while(diamond) - var/obj/item/stack/sheet/mineral/diamond/S = new (location) - var/stacksize = min(diamond,50) - S.amount = stacksize - diamond -= stacksize - while(plasma) - var/obj/item/stack/sheet/mineral/plasma/S = new (location) - var/stacksize = min(plasma,50) - S.amount = stacksize - plasma -= stacksize - while(uranium) - var/obj/item/stack/sheet/mineral/uranium/S = new (location) - var/stacksize = min(uranium,50) - S.amount = stacksize - uranium -= stacksize - while(clown) - var/obj/item/stack/sheet/mineral/clown/S = new (location) - var/stacksize = min(clown,50) - S.amount = stacksize - clown -= stacksize - while(euranium) - var/obj/item/stack/sheet/mineral/enruranium/S = new (location) - var/stacksize = min(euranium,50) - S.amount = stacksize - euranium -= stacksize - while(plasteel) - var/obj/item/stack/sheet/plasteel/S = new (location) - var/stacksize = min(plasteel,50) - S.amount = stacksize - plasteel -= stacksize - while(rglass) - var/obj/item/stack/sheet/rglass/S = new (location) - var/stacksize = min(rglass,50) - S.amount = stacksize - rglass -= stacksize - if(!metal && !glass && !gold && !silver && !diamond && !plasma && !uranium && !clown && !euranium && !plasteel && !rglass) - user << "\blue You empty the snatch." - return - - -/obj/item/weapon/sheetsnatcher/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if (istype(W, /obj/item/stack/sheet)) - var/obj/item/stack/sheet/O = W - src.add(O,user) - return - -/obj/item/weapon/sheetsnatcher/verb/toggle_mode() - set name = "Switch Sheet Snatcher Method" - set category = "Object" - - mode = !mode - switch (mode) - if(1) - usr << "The snatcher now picks up all sheets on a tile at once." - if(0) - usr << "The snatcher now picks up one sheet at a time." - -/obj/item/weapon/sheetsnatcher/proc/add(var/obj/item/stack/sheet/S as obj, mob/user as mob)//Handles sheets, adds them to the holder values - if((S.name == "Sandstone Bricks") || (S.name == "Wood Planks"))//Does not pick up sandstone or wood, as they are not true sheets - return - var/current = metal+glass+gold+silver+diamond+plasma+uranium+clown+euranium+plasteel+rglass - if(capacity == current)//If it's full, you're done - user << "\red The snatcher is full." - return - if(capacity < current + S.amount)//If the stack will fill it up - var/diff = capacity - current - switch(S.name) - if("metal") - metal += diff - if("glass") - glass += diff - if("silver") - silver += diff - if("gold") - gold += diff - if("diamond") - diamond += diff - if("solid plasma") - plasma += diff - if("uranium") - uranium += diff - if("bananium") - clown += diff - if("enriched uranium") - euranium += diff - if("plasteel") - plasteel += diff - if("reinforced glass") - rglass += diff - S.amount -= diff - user << "\blue You add the [S.name] to the [name]" - else - switch(S.name) - if("metal") - metal += S.amount - if("glass") - glass += S.amount - if("silver") - silver += S.amount - if("gold") - gold += S.amount - if("diamond") - diamond += S.amount - if("solid plasma") - plasma += S.amount - if("uranium") - uranium += S.amount - if("bananium") - clown += S.amount - if("enriched uranium") - euranium += S.amount - if("plasteel") - plasteel += S.amount - if("reinforced glass") - rglass += S.amount - user << "\blue You add the [S.name] to the [name]" - del (S) - return - -/obj/item/weapon/sheetsnatcher/borg - name = "Sheet Snatcher 9000" - desc = "" - capacity = 500//Borgs get more because >specialization \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 9cf49ce607..f9f4eb0420 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -104,39 +104,28 @@ Proc: RefreshInfectionImage() Des: Removes all infection images from aliens and places an infection image on all infected mobs for aliens. ----------------------------------------*/ /obj/item/alien_embryo/proc/RefreshInfectionImage() - spawn(0) - for (var/mob/living/carbon/alien/alien in player_list) - if (alien.client) - for(var/image/I in alien.client.images) - if(dd_hasprefix_case(I.icon_state, "infected")) - del(I) - - for (var/mob/living/carbon/alien/alien in player_list) - if (alien.client) - for (var/mob/living/carbon/C in mob_list) - if(C) - if (C.status_flags & XENO_HOST) - var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]") - alien.client.images += I - for (var/mob/living/simple_animal/corgi/C in mob_list) - if(C) - if (C.status_flags & XENO_HOST) - var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]") - alien.client.images += I - return + for(var/mob/living/carbon/alien/alien in player_list) + if(alien.client) + for(var/image/I in alien.client.images) + if(dd_hasprefix_case(I.icon_state, "infected")) + del(I) + for(var/mob/living/L in mob_list) + if(iscorgi(L) || iscarbon(L)) + if(L.status_flags & XENO_HOST) + var/I = image('icons/mob/alien.dmi', loc = L, icon_state = "infected[stage]") + alien.client.images += I /*---------------------------------------- Proc: AddInfectionImages(C) Des: Checks if the passed mob (C) is infected with the alien egg, then gives each alien client an infected image at C. ----------------------------------------*/ /obj/item/alien_embryo/proc/AddInfectionImages(var/mob/living/C) - if (C) - for (var/mob/living/carbon/alien/alien in player_list) - if (alien.client) - if (C.status_flags & XENO_HOST) + if(C) + for(var/mob/living/carbon/alien/alien in player_list) + if(alien.client) + if(C.status_flags & XENO_HOST) var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]") alien.client.images += I - return /*---------------------------------------- Proc: RemoveInfectionImage(C) @@ -144,11 +133,10 @@ Des: Removes the alien infection image from all aliens in the world located in p ----------------------------------------*/ /obj/item/alien_embryo/proc/RemoveInfectionImages(var/mob/living/C) - if (C) - for (var/mob/living/carbon/alien/alien in player_list) - if (alien.client) + if(C) + for(var/mob/living/carbon/alien/alien in player_list) + if(alien.client) for(var/image/I in alien.client.images) if(I.loc == C) if(dd_hasprefix_case(I.icon_state, "infected")) - del(I) - return + del(I) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 2817ab4957..c51a0054c2 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -151,7 +151,7 @@ New() ..() src.modules += new /obj/item/weapon/soap/nanotrasen(src) - src.modules += new /obj/item/weapon/trashbag(src) + src.modules += new /obj/item/weapon/storage/bag/trash(src) src.modules += new /obj/item/weapon/mop(src) src.modules += new /obj/item/device/lightreplacer(src) src.emag = new /obj/item/weapon/reagent_containers/spray(src) @@ -203,9 +203,9 @@ ..() src.modules += new /obj/item/borg/sight/meson(src) src.emag = new /obj/item/borg/stun(src) - src.modules += new /obj/item/weapon/storage/satchel(src) + src.modules += new /obj/item/weapon/storage/bag/ore(src) src.modules += new /obj/item/weapon/pickaxe/borgdrill(src) - src.modules += new /obj/item/weapon/sheetsnatcher/borg(src) + src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) // src.modules += new /obj/item/weapon/shovel(src) Uneeded due to buffed drill return diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 6ee2a8aae4..8bdf169c89 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -716,43 +716,3 @@ force = 5 playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) update() - - - -// a box of replacement light items - -/obj/item/weapon/storage/lightbox - name = "replacement bulbs" - icon = 'icons/obj/storage.dmi' - icon_state = "light" - desc = "This box is shaped on the inside so that only light tubes and bulbs fit." - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - storage_slots=21 - can_hold = list("/obj/item/weapon/light/tube", "/obj/item/weapon/light/bulb") - max_combined_w_class = 21 - -/obj/item/weapon/storage/lightbox/bulbs/New() - ..() - for(var/i = 0; i < 21; i++) - new /obj/item/weapon/light/bulb(src) - -/obj/item/weapon/storage/lightbox/tubes - name = "replacement tubes" - icon_state = "lighttube" - -/obj/item/weapon/storage/lightbox/tubes/New() - ..() - for(var/i = 0; i < 21; i++) - new /obj/item/weapon/light/tube(src) - -/obj/item/weapon/storage/lightbox/mixed - name = "replacement lights" - icon_state = "lightmixed" - -/obj/item/weapon/storage/lightbox/mixed/New() - ..() - for(var/i = 0; i < 14; i++) - new /obj/item/weapon/light/tube(src) - for(var/i = 0; i < 7; i++) - new /obj/item/weapon/light/bulb(src) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 2cf39a6713..1580f50b8c 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -800,7 +800,7 @@ return 1 //Fill machine with the plantbag! - if(istype(O, /obj/item/weapon/plantbag)) + if(istype(O, /obj/item/weapon/storage/bag/plants)) for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in O.contents) O.contents -= G diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 13d023336f..0828e545fc 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -30,9 +30,13 @@ /obj/item/weapon/reagent_containers/attack(mob/M as mob, mob/user as mob, def_zone) return +// this prevented pills, food, and other things from being picked up by bags. +// possibly intentional, but removing it allows us to not duplicate functionality. +// -Sayu (storage conslidation) +/* /obj/item/weapon/reagent_containers/attackby(obj/item/I as obj, mob/user as mob) return - +*/ /obj/item/weapon/reagent_containers/afterattack(obj/target, mob/user , flag) return diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 5464fd6010..41445ef886 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -118,6 +118,10 @@ usr << "\blue \The [src] was bitten multiple times!" /obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/storage)) + ..() // -> item/attackby() + if(istype(W,/obj/item/weapon/storage)) + ..() // -> item/attackby() if((slices_num <= 0 || !slices_num) || !slice_path) return 1 var/inaccurate = 0 diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm index 97d38d4fcc..e75c7f5d74 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm @@ -49,7 +49,7 @@ usr << msg return - if (istype(O, /obj/item/weapon/plantbag)) + /*if (istype(O, /obj/item/weapon/storage/bag/plants)) var/obj/item/weapon/plantbag/S = O if (S.mode == 1) for(var/obj/item/G in get_turf(src)) @@ -64,11 +64,11 @@ if (S.contents.len < S.capacity) S.contents += src; else - user << "\blue The plant bag is full." + user << "\blue The plant bag is full."*/ return -/obj/item/seeds/attackby(var/obj/item/O as obj, var/mob/user as mob) - if (istype(O, /obj/item/weapon/plantbag)) +/*/obj/item/seeds/attackby(var/obj/item/O as obj, var/mob/user as mob) + if (istype(O, /obj/item/weapon/storage/bag/plants)) var/obj/item/weapon/plantbag/S = O if (S.mode == 1) for(var/obj/item/G in get_turf(src)) @@ -84,7 +84,7 @@ S.contents += src; else user << "\blue The plant bag is full." - return + return*/ /obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) ..() diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 3524b04b8c..a0e65ac616 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -25,7 +25,7 @@ /obj/item/weapon/grenade/chem_grenade, /obj/machinery/bot/medbot, /obj/machinery/computer/pandemic, - /obj/item/weapon/secstorage/ssafe, + /obj/item/weapon/storage/secure/safe, /obj/machinery/disposal ) diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index a489a8add4..3845e36b78 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -15,25 +15,6 @@ if(!icon_state) icon_state = "pill[rand(1,20)]" - attackby(obj/item/weapon/W as obj, mob/user as mob) - if (istype(W, /obj/item/weapon/storage/pill_bottle)) - var/obj/item/weapon/storage/pill_bottle/P = W - if (P.mode == 1) - for (var/obj/item/weapon/reagent_containers/pill/O in locate(src.x,src.y,src.z)) - if(P.contents.len < P.storage_slots) - O.loc = P - P.orient2hud(user) - else - user << "\blue The pill bottle is full." - return - user << "\blue You pick up all the pills." - else - if (P.contents.len < P.storage_slots) - loc = P - P.orient2hud(user) - else - user << "\blue The pill bottle is full." - return attack_self(mob/user as mob) return attack(mob/M as mob, mob/user as mob, def_zone) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 807ca36e07..41ec2eeb65 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -137,7 +137,7 @@ if(istype(target, /obj/item/weapon/implantcase/chem)) return - if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/cigpacket)) + if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/storage/fancy/cigarettes)) user << "\red You cannot directly fill this object." return if(target.reagents.total_volume >= target.reagents.maximum_volume) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index a6501a9749..e1fb5fd950 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -45,7 +45,7 @@ if(stat & BROKEN || !I || !user) return - if(isrobot(user) && !istype(I, /obj/item/weapon/trashbag)) + if(isrobot(user) && !istype(I, /obj/item/weapon/storage/bag/trash)) return src.add_fingerprint(user) if(mode<=0) // It's off @@ -91,7 +91,7 @@ user << "You can't place that item inside the disposal unit." return - if(istype(I, /obj/item/weapon/trashbag)) + if(istype(I, /obj/item/weapon/storage/bag/trash)) user << "\blue You empty the bag." for(var/obj/item/O in I.contents) O.loc = src diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index d9eec60a02..7f3dea0f7a 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -102,7 +102,8 @@ user.attack_log += text("\[[time_stamp()]\] Has used [src.name] on \ref[target]") - if (istype(target, /obj/item) && !(istype(target, /obj/item/weapon/storage))) + + if (istype(target, /obj/item) && !(istype(target, /obj/item/weapon/storage) && !istype(target,/obj/item/weapon/storage/box))) var/obj/item/O = target if (src.amount > 1) var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up! @@ -111,6 +112,9 @@ user.client.screen -= O P.wrapped = O O.loc = P + var/i = round(O.w_class) + if(i in list(1,2,3,4,5)) + P.icon_state = "deliverycrate[i]" P.add_fingerprint(usr) O.add_fingerprint(usr) src.add_fingerprint(usr) diff --git a/code/unused/asteroiddevice.dm b/code/unused/asteroiddevice.dm index bd94bcd83d..f9c6aa9185 100644 --- a/code/unused/asteroiddevice.dm +++ b/code/unused/asteroiddevice.dm @@ -80,7 +80,7 @@ new /obj/item/device/flashlight(src) new /obj/item/weapon/reagent_containers/food/drinks/beer(src) new /obj/item/weapon/reagent_containers/food/snacks/chips(src) - new /obj/item/weapon/cigpacket(src) + new /obj/item/weapon/storage/fancy/cigarettes(src) var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src) P.reagents.add_reagent("nutriment", 500) P.name = "Cyanide pill" diff --git a/maps/RandomZLevels/blackmarketpackers.dmm b/maps/RandomZLevels/blackmarketpackers.dmm index eb9345f8b7..befb7a24ed 100644 --- a/maps/RandomZLevels/blackmarketpackers.dmm +++ b/maps/RandomZLevels/blackmarketpackers.dmm @@ -34,7 +34,7 @@ "aH" = (/obj/item/weapon/handcuffs,/obj/item/weapon/handcuffs,/obj/structure/closet/crate,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aI" = (/obj/item/weapon/scalpel,/obj/structure/closet/crate,/obj/item/weapon/tank/anesthetic,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aJ" = (/obj/item/bodybag,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) -"aK" = (/obj/item/weapon/storage/syringes,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) +"aK" = (/obj/item/weapon/storage/box/syringes,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aM" = (/obj/machinery/optable,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aN" = (/obj/machinery/computer/operating,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) @@ -140,7 +140,7 @@ "cJ" = (/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) "cK" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/BMPship2) "cL" = (/obj/structure/table,/obj/item/weapon/butch,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) -"cM" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit,/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) +"cM" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) "cN" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) "cO" = (/obj/machinery/processor,/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) "cP" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) @@ -249,7 +249,7 @@ "eO" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/awaymission/BMPship1) "eP" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/awaymission/BMPship1) "eQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/awaymission/BMPship1) -"eR" = (/obj/structure/rack,/obj/item/weapon/storage/lightbox,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/awaymission/BMPship1) +"eR" = (/obj/structure/rack,/obj/item/weapon/storage/box/lights,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/awaymission/BMPship1) "eS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "hydrofloor"},/area/awaymission/BMPship1) "eT" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship1) "eU" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/awaymission/BMPship1) @@ -445,7 +445,7 @@ "iC" = (/obj/item/clothing/gloves/fyellow,/turf/simulated/floor/plating/airless/asteroid,/area/awaymission) "iD" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/awaymission) "iE" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission) -"iF" = (/obj/item/weapon/storage/matchbox,/obj/item/weapon/cigpacket/dromedaryco,/turf/simulated/floor/plating,/area/awaymission/BMPship3) +"iF" = (/obj/item/weapon/storage/matchbox,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/simulated/floor/plating,/area/awaymission/BMPship3) "iG" = (/obj/item/weapon/contraband/poster,/turf/simulated/floor/plating,/area/awaymission/BMPship3) "iH" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/awaymission/BMPship3) "iI" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plating,/area/awaymission/BMPship3) diff --git a/maps/RandomZLevels/stationCollision.dm b/maps/RandomZLevels/stationCollision.dm index 1b2fe2a7d8..3bc32eab3b 100644 --- a/maps/RandomZLevels/stationCollision.dm +++ b/maps/RandomZLevels/stationCollision.dm @@ -149,10 +149,10 @@ var/sc_safecode5 = "[rand(0,9)]" /* * Captain's safe */ -/obj/item/weapon/secstorage/ssafe/sc_ssafe +/obj/item/weapon/storage/secure/safe/sc_ssafe name = "Captain's secure safe" -/obj/item/weapon/secstorage/ssafe/sc_ssafe/New() +/obj/item/weapon/storage/secure/safe/sc_ssafe/New() ..() l_code = "[sc_safecode1][sc_safecode2][sc_safecode3][sc_safecode4][sc_safecode5]" l_set = 1 diff --git a/maps/RandomZLevels/stationCollision.dmm b/maps/RandomZLevels/stationCollision.dmm index 69ebd5c742..48f71a827b 100644 --- a/maps/RandomZLevels/stationCollision.dmm +++ b/maps/RandomZLevels/stationCollision.dmm @@ -317,7 +317,7 @@ "ge" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock) "gf" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock) "gg" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/awaymission/northblock) -"gh" = (/obj/item/weapon/secstorage/ssafe/sc_ssafe{pixel_x = 4; pixel_y = -26},/turf/simulated/floor{icon_state = "grimy"},/area/awaymission/northblock) +"gh" = (/obj/item/weapon/storage/secure/safe/sc_ssafe{pixel_x = 4; pixel_y = -26},/turf/simulated/floor{icon_state = "grimy"},/area/awaymission/northblock) "gi" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/captain,/obj/item/clothing/under/rank/captain,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/energy/laser/retro/sc_retro,/turf/simulated/floor{icon_state = "grimy"},/area/awaymission/northblock) "gj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/midblock) "gk" = (/obj/structure/closet/wardrobe,/turf/simulated/floor,/area/awaymission/midblock) diff --git a/maps/tgstation.2.1.0.dmm b/maps/tgstation.2.1.0.dmm index 74dfa75fe2..a945b34859 100644 --- a/maps/tgstation.2.1.0.dmm +++ b/maps/tgstation.2.1.0.dmm @@ -189,7 +189,7 @@ "adG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/carpet,/area/security/hos) "adH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/carpet,/area/security/hos) "adI" = (/obj/machinery/power/apc{dir = 4; name = "Head of Security Office APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/carpet,/area/security/hos) -"adJ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/flashbang_kit,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/range) +"adJ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/range) "adK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 0; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/range) "adL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/security/range) "adM" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/security/range) @@ -231,7 +231,7 @@ "aew" = (/obj/structure/table,/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 10},/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 6},/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 2},/obj/machinery/light/small,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "aex" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "aey" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) -"aez" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/storage/body_bag_box,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) +"aez" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "aeA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/prison) "aeB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor{icon_state = "red"},/area/security/prison) "aeC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "red"},/area/security/prison) @@ -283,8 +283,8 @@ "afw" = (/obj/machinery/recharger,/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/warden) "afx" = (/obj/structure/rack,/obj/item/weapon/storage/lockbox/loyalty,/turf/simulated/floor{icon_state = "red"},/area/security/warden) "afy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/warden) -"afz" = (/obj/structure/rack,/obj/item/weapon/storage/chemimp_kit{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/trackimp_kit,/turf/simulated/floor{icon_state = "red"},/area/security/warden) -"afA" = (/obj/structure/rack,/obj/item/weapon/storage/seccart_kit{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/handcuff_kit,/obj/item/weapon/storage/flashbang_kit{pixel_x = -2; pixel_y = -2},/turf/simulated/floor{icon_state = "red"},/area/security/warden) +"afz" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/turf/simulated/floor{icon_state = "red"},/area/security/warden) +"afA" = (/obj/structure/rack,/obj/item/weapon/storage/box/seccarts{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/turf/simulated/floor{icon_state = "red"},/area/security/warden) "afB" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/closet/wardrobe/red,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) "afC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/security/main) "afD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/security/main) @@ -786,7 +786,7 @@ "apf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "apg" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/light{dir = 8},/obj/structure/filingcabinet,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "aph" = (/turf/simulated/floor/carpet,/area/security/detectives_office) -"api" = (/obj/structure/table/woodentable,/obj/item/weapon/cigpacket,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/carpet,/area/security/detectives_office) +"api" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/cigarettes,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/carpet,/area/security/detectives_office) "apj" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor/carpet,/area/security/detectives_office) "apk" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/handcuffs,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "apl" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/requests_console{department = "Law office"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/wood,/area/lawoffice) @@ -1906,7 +1906,7 @@ "aKH" = (/obj/structure/closet/gmcloset{icon_closed = "black"; icon_state = "black"; name = "formal wardrobe"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aKI" = (/obj/structure/kitchenspike,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aKJ" = (/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) -"aKK" = (/obj/structure/closet/crate{desc = "It's a storage unit for kitchen clothes and equipment."; name = "Kitchen Crate"},/obj/item/clothing/head/chefhat,/obj/item/clothing/under/rank/chef,/obj/item/weapon/storage/mousetraps{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/mousetraps,/obj/item/clothing/under/waiter,/obj/item/clothing/under/waiter,/obj/machinery/light/small{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) +"aKK" = (/obj/structure/closet/crate{desc = "It's a storage unit for kitchen clothes and equipment."; name = "Kitchen Crate"},/obj/item/clothing/head/chefhat,/obj/item/clothing/under/rank/chef,/obj/item/weapon/storage/box/mousetraps{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/box/mousetraps,/obj/item/clothing/under/waiter,/obj/item/clothing/under/waiter,/obj/machinery/light/small{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aKL" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/hydroponics) "aKM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hydroponics) "aKN" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/hydroponics) @@ -1922,7 +1922,7 @@ "aKX" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/entry) "aKY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aKZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"aLa" = (/obj/structure/table/woodentable,/obj/item/weapon/cigpacket{cigcount = 4; pixel_y = 2},/obj/item/weapon/lighter{pixel_x = 4; pixel_y = 2},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) +"aLa" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/item/weapon/lighter{pixel_x = 4; pixel_y = 2},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "aLb" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/hallway/secondary/entry) "aLc" = (/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/entry) "aLd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/hallway/primary/port) @@ -2088,7 +2088,7 @@ "aOh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/central) "aOi" = (/obj/structure/table/reinforced,/obj/item/device/aicard,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/bridge) "aOj" = (/obj/machinery/computer/security,/turf/simulated/floor{icon_state = "red"},/area/bridge) -"aOk" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/PDAbox{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/id_kit,/turf/simulated/floor{icon_state = "red"},/area/bridge) +"aOk" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/ids,/turf/simulated/floor{icon_state = "red"},/area/bridge) "aOl" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/secstorage/sbriefcase,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/bridge) "aOm" = (/obj/structure/window/reinforced/tinted{dir = 5},/turf/simulated/floor/plating,/area/bridge) "aOn" = (/obj/machinery/computer/communications,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/bridge) @@ -2145,7 +2145,7 @@ "aPm" = (/obj/structure/table,/obj/item/weapon/cable_coil/random,/obj/item/weapon/cable_coil/random,/turf/simulated/floor,/area/storage/art) "aPn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/storage/art) "aPo" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Art Storage"; pixel_x = 27; pixel_y = 2},/turf/simulated/floor,/area/storage/art) -"aPp" = (/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/storage/lightbox/mixed,/turf/simulated/floor/plating,/area/storage/emergency2) +"aPp" = (/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency2) "aPq" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/storage/emergency2) "aPr" = (/obj/machinery/power/apc{dir = 1; name = "Port Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/emergency2) "aPs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/storage/emergency2) @@ -2320,7 +2320,7 @@ "aSF" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/pie,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aSG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aSH" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/weapon/packageWrap,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"aSI" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"aSI" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "aSJ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "aSK" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/table,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aSL" = (/obj/machinery/processor,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) @@ -2944,7 +2944,7 @@ "beF" = (/obj/structure/closet/secure_closet/chemical,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "beG" = (/obj/machinery/power/apc{dir = 1; name = "Chemistry APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "beH" = (/obj/machinery/camera{c_tag = "Chemistry"; dir = 2; network = "SS13"},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"beI" = (/obj/structure/table,/obj/item/weapon/storage/beakerbox{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"beI" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "beJ" = (/obj/machinery/chem_master,/turf/simulated/floor{dir = 5; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "beK" = (/turf/simulated/wall,/area/medical/chemistry) "beL" = (/obj/machinery/newscaster{pixel_x = -28; pixel_y = 0},/obj/structure/table,/obj/item/weapon/folder/white,/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/medical/medbay) @@ -2956,7 +2956,7 @@ "beR" = (/obj/machinery/computer/crew,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "beS" = (/obj/machinery/computer/med_data,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "beT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"beU" = (/obj/structure/table,/obj/item/weapon/storage/body_bag_box,/obj/item/weapon/pen,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"beU" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "beV" = (/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "beW" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "beX" = (/obj/machinery/power/apc{dir = 1; name = "Morgue APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) @@ -3037,7 +3037,7 @@ "bgu" = (/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/storage/emergency) "bgv" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/storage/emergency) "bgw" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/storage/emergency) -"bgx" = (/obj/item/weapon/storage/lightbox/mixed,/turf/simulated/floor/plating,/area/storage/emergency) +"bgx" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency) "bgy" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bgz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/assembly/chargebay) "bgA" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/assembly/chargebay) @@ -3202,7 +3202,7 @@ "bjD" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bjE" = (/obj/machinery/door/airlock/maintenance{name = "Captain's Office Maintenance"; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/crew_quarters/captain) "bjF" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/turf/simulated/floor,/area/hallway/primary/central) -"bjG" = (/obj/structure/table,/obj/item/weapon/storage/syringes,/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bjG" = (/obj/structure/table,/obj/item/weapon/storage/box/syringes,/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bjH" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bjI" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Chemistry Desk"; req_access_txt = "33"},/turf/simulated/floor/plating,/area/medical/chemistry) "bjJ" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -3275,7 +3275,7 @@ "bkY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/chemistry) "bkZ" = (/obj/structure/table,/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bla" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"blb" = (/obj/structure/table,/obj/item/weapon/storage/beakerbox{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{dir = 2; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"blb" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{dir = 2; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "blc" = (/obj/machinery/chem_master,/turf/simulated/floor{dir = 6; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bld" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/light,/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay) "ble" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; range = 6; req_access_txt = "5"},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -3499,7 +3499,7 @@ "bpo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bpp" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bpq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/genetics) -"bpr" = (/obj/structure/table,/obj/item/weapon/storage/gl_kit,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bpr" = (/obj/structure/table,/obj/item/weapon/storage/box/rxglasses,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bps" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bpt" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bpu" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) @@ -3575,7 +3575,7 @@ "bqM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bqN" = (/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bqO" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) -"bqP" = (/obj/structure/table,/obj/item/weapon/storage/diskbox{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bqP" = (/obj/structure/table,/obj/item/weapon/storage/box/disks{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bqQ" = (/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bqR" = (/obj/machinery/door/window/westleft{name = "Monkey Pen"; req_access_txt = "9"},/turf/simulated/floor,/area/medical/genetics) "bqS" = (/mob/living/carbon/monkey,/turf/simulated/floor,/area/medical/genetics) @@ -3583,7 +3583,7 @@ "bqU" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/assembly/chargebay) "bqV" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/assembly/chargebay) "bqW" = (/obj/machinery/recharge_station,/turf/simulated/floor{icon_state = "bot"},/area/assembly/chargebay) -"bqX" = (/obj/structure/table,/obj/item/weapon/storage/body_bag_box,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/assembly/robotics) +"bqX" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/assembly/robotics) "bqY" = (/obj/machinery/optable{name = "Robotics Operating Table"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bqZ" = (/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bra" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/assembly/robotics) @@ -3632,7 +3632,7 @@ "brR" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "17"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/teleporter) "brS" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central) "brT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) -"brU" = (/obj/structure/table,/obj/item/weapon/storage/stma_kit{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/lglo_kit{pixel_x = 3; pixel_y = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"brU" = (/obj/structure/table,/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "brV" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "brW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "brX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -3861,7 +3861,7 @@ "bwm" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/medical/sleeper) "bwn" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/medical/sleeper) "bwo" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) -"bwp" = (/obj/structure/table,/obj/item/weapon/storage/gl_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/body_bag_box,/obj/item/weapon/pen,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/device/radio/intercom{pixel_x = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bwp" = (/obj/structure/table,/obj/item/weapon/storage/box/rxglasses{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/device/radio/intercom{pixel_x = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bwq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bwr" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bws" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -4126,8 +4126,8 @@ "bBr" = (/obj/structure/closet/l3closet/general,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bBs" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bBt" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/camera{c_tag = "Medbay Storage"; dir = 2; network = "SS13"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bBu" = (/obj/structure/table,/obj/item/weapon/storage/body_bag_box{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/gl_kit,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bBv" = (/obj/structure/table,/obj/item/weapon/storage/beakerbox{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/syringes,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bBu" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/rxglasses,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bBv" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bBw" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "whiteredcorner"},/area/medical/medbay) "bBx" = (/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) "bBy" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/no_raisin,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) @@ -4178,7 +4178,7 @@ "bCr" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bCs" = (/obj/structure/closet/jcloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor,/area/janitor) "bCt" = (/obj/structure/closet/l3closet/janitor,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/janitor) -"bCu" = (/obj/item/weapon/storage/lightbox/mixed,/obj/item/weapon/storage/lightbox/mixed,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Custodial Closet"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/janitor) +"bCu" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Custodial Closet"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/janitor) "bCv" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/janitor) "bCw" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/janitor) "bCx" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor,/area/janitor) @@ -4334,7 +4334,7 @@ "bFr" = (/obj/structure/table,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/requests_console{department = "Janitorial"; departmentType = 1; pixel_y = -29},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor,/area/janitor) "bFs" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light,/turf/simulated/floor,/area/janitor) "bFt" = (/obj/structure/stool/bed/chair/janicart,/turf/simulated/floor,/area/janitor) -"bFu" = (/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/storage/mousetraps,/obj/item/weapon/storage/mousetraps,/turf/simulated/floor,/area/janitor) +"bFu" = (/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/mousetraps,/turf/simulated/floor,/area/janitor) "bFv" = (/turf/simulated/floor,/area/janitor) "bFw" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/janitor) "bFx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/janitor) @@ -4891,12 +4891,12 @@ "bQc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bQd" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQe" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bQf" = (/obj/structure/stool/bed/chair,/obj/item/weapon/cigpacket,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bQf" = (/obj/structure/stool/bed/chair,/obj/item/weapon/storage/fancy/cigarettes,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQg" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQh" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQi" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQj" = (/obj/item/device/flashlight,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bQk" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/lightbox/mixed,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bQk" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) "bQm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) "bQn" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) @@ -5259,7 +5259,7 @@ "bXg" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Atmospherics Central"; dir = 4; network = "SS13"},/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_off"; name = "Port to Filter"; on = 0},/turf/simulated/floor,/area/atmos) "bXh" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/obj/structure/stool,/turf/simulated/floor,/area/atmos) "bXi" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 8; icon_state = "freezer_0"; tag = ""},/turf/simulated/floor,/area/atmos) -"bXj" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bXj" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bXk" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bXl" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bXm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/virology) @@ -5313,7 +5313,7 @@ "bYi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) "bYj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) "bYk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) -"bYl" = (/obj/structure/table,/obj/item/weapon/storage/beakerbox{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/syringes,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"bYl" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "bYm" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bYn" = (/obj/machinery/computer/pandemic,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "bYo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/virology) @@ -5435,8 +5435,8 @@ "caA" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "caB" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "caC" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"caD" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/beakerbox{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"caE" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/storage/syringes,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"caD" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"caE" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "caF" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "caG" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "caH" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) @@ -5629,7 +5629,7 @@ "cem" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "cen" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 4; network = "SS13"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "ceo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cep" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/cigpacket,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cep" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "ceq" = (/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/pill/kelotane{pixel_x = -3; pixel_y = -8},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cer" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "ces" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/atmos) @@ -5727,7 +5727,7 @@ "cgg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/status_display,/turf/simulated/wall,/area/engine/engineering) "cgh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "cgi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/engine/engineering) -"cgj" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/storage/lightbox/mixed,/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/engine/engineering) +"cgj" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/engine/engineering) "cgk" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engine/engineering) "cgl" = (/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/engine/engineering) "cgm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/engine/engineering) @@ -6316,7 +6316,7 @@ "crx" = (/obj/machinery/computer/secure_data,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cry" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "crz" = (/turf/space,/area/shuttle/escape_pod3/centcom) -"crA" = (/obj/structure/table,/obj/item/weapon/storage/handcuff_kit,/obj/item/device/flash,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) +"crA" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/flash,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "crB" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "crC" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) "crD" = (/obj/machinery/vending/cola,/turf/simulated/shuttle/floor,/area/centcom/evac) @@ -6346,7 +6346,7 @@ "csb" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor,/area/centcom/evac) "csc" = (/turf/space,/area/shuttle/escape_pod5/centcom) "csd" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area) -"cse" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cse" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "csf" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "csg" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (EAST)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) "csh" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) @@ -6504,7 +6504,7 @@ "cvd" = (/obj/machinery/door/window/northright,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cve" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cvf" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/item/weapon/lighter/zippo,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"cvg" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/item/weapon/cigpacket,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"cvg" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cvh" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cvi" = (/obj/item/stack/sheet/glass{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cvj" = (/obj/item/stack/sheet/metal{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -6598,7 +6598,7 @@ "cwT" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) "cwU" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) "cwV" = (/obj/machinery/computer/card/centcom,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) -"cwW" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/kitchen/rollingpin,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/living) +"cwW" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/kitchen/rollingpin,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/living) "cwX" = (/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "QMLoaddoor"; name = "Supply Shuttle Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/plating,/area/supply/dock) "cwY" = (/obj/machinery/vending/medical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "cwZ" = (/obj/machinery/chem_master,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) @@ -6826,7 +6826,7 @@ "cBn" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cBo" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cBp" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) -"cBq" = (/obj/structure/rack,/obj/item/weapon/secstorage/sbriefcase,/obj/item/weapon/cigpacket,/obj/item/weapon/lighter/zippo,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) +"cBq" = (/obj/structure/rack,/obj/item/weapon/secstorage/sbriefcase,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter/zippo,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cBr" = (/obj/structure/bookcase{name = "bookcase (Reports)"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cBs" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/control) "cBt" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/evac) @@ -6980,7 +6980,7 @@ "cEl" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cEm" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cEn" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) -"cEo" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) +"cEo" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cEp" = (/obj/structure/rack,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cEq" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cEr" = (/obj/structure/rack,/obj/item/toy/gun,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) @@ -7072,7 +7072,7 @@ "cFZ" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "cGa" = (/obj/machinery/door/airlock/command{name = "Thunderdome"},/turf/unsimulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/tdome) "cGb" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) -"cGc" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/lighter/zippo,/obj/item/weapon/cigpacket,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) +"cGc" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cGd" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/item/weapon/reagent_containers/food/drinks/cola,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cGe" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cGf" = (/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) @@ -7082,7 +7082,7 @@ "cGj" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cGk" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cGl" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) -"cGm" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) +"cGm" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "cGn" = (/obj/structure/table,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "cGo" = (/obj/structure/table/reinforced{dir = 4; icon_state = "reinf_tabledir"},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "cGp" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) @@ -7150,7 +7150,7 @@ "cHz" = (/obj/machinery/computer/pod{id = "thunderdome"; name = "Thunderdome Blast Door Control"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cHA" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cHB" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"cHC" = (/obj/structure/table,/obj/item/weapon/storage/handcuff_kit,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) +"cHC" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cHD" = (/obj/structure/table,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cHE" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cHF" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) @@ -7383,7 +7383,7 @@ "cLY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/tcommsat/computer) "cLZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/tcommsat/computer) "cMa" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) -"cMb" = (/obj/structure/table,/obj/item/weapon/cigpacket,/turf/simulated/floor,/area/tcommsat/computer) +"cMb" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor,/area/tcommsat/computer) "cMc" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/tcommsat/computer) "cMd" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) "cMe" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) @@ -7633,7 +7633,7 @@ "cQO" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/turf/simulated/floor/plating,/area/djstation) "cQP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/djstation) "cQQ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plating,/area/djstation) -"cQR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/item/weapon/storage/lightbox/mixed,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/djstation) +"cQR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/item/weapon/storage/box/lights/mixed,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/djstation) "cQS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/djstation) "cQT" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/obj/item/clothing/mask/breath,/turf/simulated/floor/plating,/area/djstation) "cQU" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"},/turf/simulated/floor/plating,/area/djstation) @@ -7969,7 +7969,7 @@ "cXm" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/arrival) "cXn" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/derelict/arrival) "cXo" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "dark"},/area/derelict/medical/chapel) -"cXp" = (/obj/item/weapon/storage/lightbox/mixed,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) +"cXp" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "cXq" = (/obj/item/weapon/disk/data/demo,/turf/simulated/floor/plating/airless,/area) "cXr" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area) "cXs" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/derelict/arrival) @@ -8356,7 +8356,7 @@ "deJ" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) "deK" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/north_outpost) "deL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/mine/north_outpost) -"deM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/item/weapon/storage/lightbox/bulbs,/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plating,/area/mine/north_outpost) +"deM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/item/weapon/storage/box/lights/bulbs,/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plating,/area/mine/north_outpost) "deN" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/north_outpost) "deO" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) "deP" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/airless,/area/mine/abandoned) @@ -8390,7 +8390,7 @@ "dfr" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor,/area/mine/abandoned) "dfs" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) "dft" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor,/area/mine/north_outpost) -"dfu" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit,/turf/simulated/floor,/area/mine/north_outpost) +"dfu" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor,/area/mine/north_outpost) "dfv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/north_outpost) "dfw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/mine/north_outpost) "dfx" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/mine/north_outpost) @@ -8585,7 +8585,7 @@ "dje" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/eva) "djf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/eva) "djg" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor,/area/mine/west_outpost) -"djh" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit,/turf/simulated/floor,/area/mine/west_outpost) +"djh" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor,/area/mine/west_outpost) "dji" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) "djj" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/west_outpost) "djk" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/west_outpost) @@ -8604,7 +8604,7 @@ "djx" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/west_outpost) "djy" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/mine/west_outpost) "djz" = (/obj/structure/ore_box,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/west_outpost) -"djA" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) +"djA" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "djB" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = "MINE"},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "djC" = (/obj/item/weapon/cigbutt,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "djD" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor,/area/mine/living_quarters) @@ -8709,7 +8709,7 @@ "dly" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/west_outpost) "dlz" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/west_outpost) "dlA" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/mine/west_outpost) -"dlB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/item/weapon/storage/lightbox/bulbs,/turf/simulated/floor/plating,/area/mine/west_outpost) +"dlB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/item/weapon/storage/box/lights/bulbs,/turf/simulated/floor/plating,/area/mine/west_outpost) "dlC" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) "dlD" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor,/area/mine/living_quarters) "dlE" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/living_quarters) @@ -8761,7 +8761,7 @@ "dmy" = (/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "dmz" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "dmA" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) -"dmB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/lightbox/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters) +"dmB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters) "dmC" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/mine/living_quarters) "dmD" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters) "dmE" = (/turf/simulated/floor/plating,/area/mine/living_quarters) diff --git a/tgstation.dme b/tgstation.dme index 842650dc47..fe8111656f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -514,16 +514,17 @@ #include "code\game\objects\items\weapons\secstorage\secstorage.dm" #include "code\game\objects\items\weapons\secstorage\ssafe.dm" #include "code\game\objects\items\weapons\storage\backpack.dm" +#include "code\game\objects\items\weapons\storage\bags.dm" #include "code\game\objects\items\weapons\storage\belt.dm" #include "code\game\objects\items\weapons\storage\bible.dm" #include "code\game\objects\items\weapons\storage\boxes.dm" #include "code\game\objects\items\weapons\storage\briefcase.dm" #include "code\game\objects\items\weapons\storage\fancy.dm" #include "code\game\objects\items\weapons\storage\firstaid.dm" -#include "code\game\objects\items\weapons\storage\kit.dm" #include "code\game\objects\items\weapons\storage\lockbox.dm" #include "code\game\objects\items\weapons\storage\mining_satchel.dm" #include "code\game\objects\items\weapons\storage\misc.dm" +#include "code\game\objects\items\weapons\storage\secure.dm" #include "code\game\objects\items\weapons\storage\storage.dm" #include "code\game\objects\items\weapons\storage\toolbox.dm" #include "code\game\objects\items\weapons\storage\uplink_kits.dm"