From e57eddbb32d756560dacc97a951aee591b01c220 Mon Sep 17 00:00:00 2001 From: carlarctg <53100513+carlarctg@users.noreply.github.com> Date: Fri, 6 Dec 2024 19:56:52 -0300 Subject: [PATCH] Adds rare chance for surgery trays to become medical toolboxes (#88276) ## About The Pull Request Surgery trays now have a small chance to become medical toolboxes. Autopsy trays can become coroner toolboxes. ![image](https://github.com/user-attachments/assets/a6f6182b-5840-4494-8326-ea88f76e195b) They work basically the same, just that they can't be rolled around and don't slow you down when walking around. Medical toolboxes are fairly weak, but coroner toolboxes are pretty strong. Added a 1 in 1.000.000 chance for a toolbox to have four latches. ## Why It's Good For The Game > Surgery trays now have a small chance to become medical toolboxes. Autopsy trays can become coroner toolboxes. > They work basically the same, just that they can't be rolled around and don't slow you down when walking around. The idea of going to the surgery room and finding a _medical toolbox_ instead of a surgery tray is inexplicably amusing to me. > Medical toolboxes are fairly weak, but coroner toolboxes are pretty strong. Healers and hurters! > Added a 1 in 1.000.000 chance for a toolbox to have four latches. peak absurdity is reached ~~next pr will include brown toolboxes, which clip to your belt~~ credit 2 @SmArtKar for sprites ## Changelog :cl: carlarc, smartkar add: Surgery trays now have a small chance to become medical toolboxes. Autopsy trays can become coroner toolboxes. add: Added a 1 in 1.000.000 chance for a toolbox to have four latches. /:cl: --- .../icemoon_underground_syndidome.dmm | 2 +- .../SpaceRuins/dangerous_research.dmm | 2 +- _maps/RandomRuins/SpaceRuins/interdyne.dmm | 2 +- _maps/RandomRuins/SpaceRuins/meatderelict.dmm | 2 +- _maps/RandomRuins/SpaceRuins/the_outlet.dmm | 2 +- _maps/deathmatch/species_warfare.dmm | 4 +- _maps/map_files/Birdshot/birdshot.dmm | 6 +- .../map_files/Deltastation/DeltaStation2.dmm | 6 +- .../map_files/IceBoxStation/IceBoxStation.dmm | 6 +- _maps/map_files/MetaStation/MetaStation.dmm | 8 +- .../map_files/NebulaStation/NebulaStation.dmm | 14 +- _maps/map_files/generic/CentCom.dmm | 2 +- _maps/map_files/tramstation/tramstation.dmm | 6 +- _maps/map_files/wawastation/wawastation.dmm | 10 +- _maps/modular_generic/station_l_morgue.dmm | 2 +- _maps/shuttles/emergency_birdshot.dmm | 2 +- _maps/shuttles/emergency_donut.dmm | 2 +- _maps/shuttles/emergency_fish.dmm | 2 +- _maps/shuttles/emergency_humpback.dmm | 2 +- _maps/shuttles/emergency_lance.dmm | 4 +- _maps/shuttles/emergency_mini.dmm | 2 +- _maps/shuttles/emergency_nature.dmm | 2 +- _maps/shuttles/emergency_nebula.dmm | 2 +- _maps/shuttles/emergency_northstar.dmm | 2 +- _maps/shuttles/emergency_russiafightpit.dmm | 2 +- _maps/shuttles/emergency_shadow.dmm | 2 +- _maps/shuttles/emergency_tram.dmm | 2 +- _maps/shuttles/emergency_tranquility.dmm | 2 +- _maps/shuttles/hunter_mi13_foodtruck.dmm | 2 +- _maps/shuttles/ruin_cyborg_mothership.dmm | 2 +- _maps/shuttles/whiteship_birdshot.dmm | 2 +- _maps/shuttles/whiteship_box.dmm | 2 +- _maps/shuttles/whiteship_delta.dmm | 2 +- _maps/templates/lazy_templates/ninja_den.dmm | 2 +- _maps/templates/lazy_templates/nukie_base.dmm | 2 +- _maps/virtual_domains/meta_central.dmm | 2 +- code/game/objects/items/storage/toolbox.dm | 47 ++++++ code/game/objects/items/surgery_tray.dm | 134 ++++++++++++------ .../inhands/equipment/toolbox_lefthand.dmi | Bin 1946 -> 2298 bytes .../inhands/equipment/toolbox_righthand.dmi | Bin 2324 -> 1300 bytes icons/obj/storage/toolbox.dmi | Bin 1986 -> 2300 bytes 41 files changed, 197 insertions(+), 102 deletions(-) diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm index 228c55292fb..e41c2db6863 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm @@ -3503,7 +3503,7 @@ /area/ruin/syndibiodome) "Pw" = ( /obj/structure/table/reinforced/plastitaniumglass, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/effect/turf_decal/siding/wideplating/dark{ dir = 5 }, diff --git a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm index 52a288e64e6..42fa98704a3 100644 --- a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm +++ b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm @@ -98,7 +98,7 @@ /turf/open/floor/iron/white, /area/ruin/space/has_grav/dangerous_research/medical) "aZ" = ( -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/structure/table, /turf/open/floor/plating/rust, /area/ruin/space/has_grav/dangerous_research/medical) diff --git a/_maps/RandomRuins/SpaceRuins/interdyne.dmm b/_maps/RandomRuins/SpaceRuins/interdyne.dmm index 9c802b0be43..46e22d19fb6 100644 --- a/_maps/RandomRuins/SpaceRuins/interdyne.dmm +++ b/_maps/RandomRuins/SpaceRuins/interdyne.dmm @@ -1015,7 +1015,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/interdyne) "PD" = ( -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/structure/table/reinforced/rglass, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/interdyne) diff --git a/_maps/RandomRuins/SpaceRuins/meatderelict.dmm b/_maps/RandomRuins/SpaceRuins/meatderelict.dmm index 3e4bece11e8..a4f95abdf0e 100644 --- a/_maps/RandomRuins/SpaceRuins/meatderelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/meatderelict.dmm @@ -484,7 +484,7 @@ /obj/effect/turf_decal/siding/blue{ dir = 6 }, -/obj/item/surgery_tray/full/deployed, +/obj/effect/spawner/surgery_tray/full/deployed, /turf/open/indestructible/white, /area/ruin/space/has_grav/powered/biooutpost) "kh" = ( diff --git a/_maps/RandomRuins/SpaceRuins/the_outlet.dmm b/_maps/RandomRuins/SpaceRuins/the_outlet.dmm index 719088322f2..922715ca8d7 100644 --- a/_maps/RandomRuins/SpaceRuins/the_outlet.dmm +++ b/_maps/RandomRuins/SpaceRuins/the_outlet.dmm @@ -701,7 +701,7 @@ /area/ruin/space/has_grav/the_outlet/employeesection) "rF" = ( /obj/structure/table/reinforced/rglass, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/item/reagent_containers/syringe/lethal/execution, /turf/open/floor/iron/freezer, /area/ruin/space/has_grav/the_outlet/researchrooms) diff --git a/_maps/deathmatch/species_warfare.dmm b/_maps/deathmatch/species_warfare.dmm index e80485c2b5e..66e7e9b2275 100644 --- a/_maps/deathmatch/species_warfare.dmm +++ b/_maps/deathmatch/species_warfare.dmm @@ -23,7 +23,7 @@ dir = 1 }, /obj/structure/table/glass, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /turf/open/indestructible/white, /area/deathmatch) "bX" = ( @@ -228,7 +228,7 @@ "iM" = ( /obj/effect/turf_decal/tile/blue/half/contrasted, /obj/structure/table/glass, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /turf/open/indestructible/white, /area/deathmatch) "iV" = ( diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index f18d092fd15..5777c1c5872 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -130,7 +130,7 @@ /obj/effect/turf_decal/siding/white, /obj/machinery/light/small/directional/south, /obj/structure/table/reinforced, -/obj/item/surgery_tray/full/morgue, +/obj/effect/spawner/surgery_tray/full/morgue, /turf/open/floor/iron/small, /area/station/medical/morgue) "adL" = ( @@ -10716,7 +10716,7 @@ /obj/machinery/camera/autoname/directional/north, /obj/structure/sign/poster/official/random/directional/north, /obj/machinery/status_display/ai/directional/west, -/obj/item/surgery_tray/full/deployed, +/obj/effect/spawner/surgery_tray/full/deployed, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) "dZk" = ( @@ -34878,7 +34878,7 @@ /area/station/tcommsat/server) "lPO" = ( /obj/structure/table, -/obj/item/surgery_tray/full{ +/obj/effect/spawner/surgery_tray/full{ pixel_y = -5 }, /obj/item/wirecutters{ diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 08d3aa51e9b..b2dcab7f2a5 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -75220,7 +75220,7 @@ /area/station/service/abandoned_gambling_den/gaming) "sOp" = ( /obj/structure/table/glass, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/structure/window/reinforced/spawner/directional/west, /obj/item/clothing/gloves/latex, /obj/item/clothing/suit/apron/surgical, @@ -79128,7 +79128,7 @@ dir = 4 }, /obj/structure/table/reinforced, -/obj/item/surgery_tray/full/morgue, +/obj/effect/spawner/surgery_tray/full/morgue, /obj/effect/turf_decal/tile/dark_blue/half/contrasted{ dir = 4 }, @@ -94584,7 +94584,7 @@ /area/station/cargo/storage) "xES" = ( /obj/structure/table/glass, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/item/clothing/gloves/latex, /obj/item/clothing/suit/apron/surgical, /obj/effect/turf_decal/tile/neutral/fourcorners, diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index c0c55d2f95f..5c5129c900a 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -18953,7 +18953,7 @@ pixel_x = -4; pixel_y = 3 }, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 }, @@ -25910,7 +25910,7 @@ /area/station/science/xenobiology) "hvt" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/surgery_tray/full/morgue, +/obj/effect/spawner/surgery_tray/full/morgue, /obj/structure/table/reinforced, /obj/machinery/requests_console/auto_name/directional/north, /obj/effect/turf_decal/bot_white, @@ -42635,7 +42635,7 @@ pixel_x = -4; pixel_y = 3 }, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 1bc583699ef..0063ca41fdd 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -9670,7 +9670,7 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/status_display/evac/directional/west, /obj/machinery/digital_clock/directional/south, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) "dyr" = ( @@ -12775,7 +12775,7 @@ /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 }, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/item/clothing/gloves/latex, /obj/item/clothing/suit/apron/surgical, /turf/open/floor/iron/white, @@ -15055,7 +15055,7 @@ /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/status_display/evac/directional/west, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) "fpj" = ( @@ -61156,7 +61156,7 @@ dir = 8 }, /obj/machinery/light/small/directional/north, -/obj/item/surgery_tray/full/morgue, +/obj/effect/spawner/surgery_tray/full/morgue, /turf/open/floor/iron/dark/smooth_edge{ dir = 8 }, diff --git a/_maps/map_files/NebulaStation/NebulaStation.dmm b/_maps/map_files/NebulaStation/NebulaStation.dmm index ab7a83e643c..d75920f3ca7 100644 --- a/_maps/map_files/NebulaStation/NebulaStation.dmm +++ b/_maps/map_files/NebulaStation/NebulaStation.dmm @@ -423,7 +423,7 @@ "adt" = ( /obj/machinery/defibrillator_mount/directional/south, /obj/structure/table/glass, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/effect/turf_decal/box/white/corners{ dir = 4 }, @@ -545,7 +545,7 @@ id = "cmoprivacy2"; req_access = list("cmo") }, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /turf/open/floor/iron/white/herringbone, /area/station/command/heads_quarters/cmo) "aer" = ( @@ -56574,7 +56574,7 @@ "isM" = ( /obj/machinery/defibrillator_mount/directional/south, /obj/structure/table/glass, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/effect/turf_decal/box/white/corners{ dir = 1 }, @@ -62233,7 +62233,7 @@ /obj/structure/table/reinforced, /obj/effect/turf_decal/trimline/red/corner, /obj/effect/turf_decal/siding/thinplating_new/dark/corner, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /turf/open/floor/iron/dark/side{ dir = 9 }, @@ -62788,7 +62788,7 @@ /obj/structure/table/glass, /obj/structure/window/reinforced/spawner/directional/north, /obj/machinery/digital_clock/directional/east, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /turf/open/floor/iron/dark/small, /area/station/science/robotics/augments) "jqo" = ( @@ -64543,7 +64543,7 @@ /area/station/engineering/supermatter/room/upper) "jBX" = ( /obj/structure/table/reinforced, -/obj/item/surgery_tray/full/morgue, +/obj/effect/spawner/surgery_tray/full/morgue, /obj/effect/turf_decal/siding/dark/corner{ dir = 8 }, @@ -120903,7 +120903,7 @@ /area/station/maintenance/fore/lesser) "rUg" = ( /obj/structure/table/reinforced, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/machinery/status_display/ai/directional/east, /obj/effect/turf_decal/trimline/dark_red/filled/corner{ dir = 1 diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index e730dea04bc..4aab72d4be6 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -9929,7 +9929,7 @@ /area/centcom/central_command_areas/armory) "Vh" = ( /obj/structure/table/reinforced, -/obj/item/surgery_tray/full{ +/obj/effect/spawner/surgery_tray/full{ pixel_y = 10; pixel_x = 2 }, diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 86f4db1976b..528a6dff60e 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -38898,7 +38898,7 @@ pixel_y = 8 }, /obj/structure/window/reinforced/spawner/directional/north, -/obj/item/surgery_tray/full/morgue, +/obj/effect/spawner/surgery_tray/full/morgue, /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/dark, /area/station/medical/morgue) @@ -62281,7 +62281,7 @@ /obj/structure/table/glass, /obj/effect/turf_decal/trimline/blue/filled/line, /obj/item/radio/intercom/directional/south, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /turf/open/floor/iron/white, /area/station/medical/surgery/fore) "uPv" = ( @@ -70986,7 +70986,7 @@ dir = 1 }, /obj/item/radio/intercom/directional/north, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /turf/open/floor/iron/white, /area/station/medical/surgery/aft) "yct" = ( diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index dafa2c4d1a0..25fd6043663 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -2165,9 +2165,7 @@ /area/station/commons/fitness/recreation) "aJM" = ( /obj/machinery/light/small/directional/north, -/obj/item/surgery_tray/full/morgue{ - is_portable = 0 - }, +/obj/effect/spawner/surgery_tray/full/morgue/deployed, /turf/open/floor/iron/dark/textured, /area/station/medical/morgue) "aJP" = ( @@ -34388,7 +34386,7 @@ "mhI" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, -/obj/item/surgery_tray/full/deployed, +/obj/effect/spawner/surgery_tray/full/deployed, /obj/effect/turf_decal/tile/blue/full, /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/white, @@ -38134,7 +38132,7 @@ /turf/open/floor/glass/reinforced, /area/station/security/prison) "nvT" = ( -/obj/item/surgery_tray/full/deployed, +/obj/effect/spawner/surgery_tray/full/deployed, /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, @@ -58322,7 +58320,7 @@ /turf/open/openspace, /area/station/hallway/secondary/exit/departure_lounge) "uxw" = ( -/obj/item/surgery_tray/full/deployed, +/obj/effect/spawner/surgery_tray/full/deployed, /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/airalarm/directional/west, /obj/effect/decal/cleanable/dirt/dust, diff --git a/_maps/modular_generic/station_l_morgue.dmm b/_maps/modular_generic/station_l_morgue.dmm index 4b4eb63458d..3b5adf14d41 100644 --- a/_maps/modular_generic/station_l_morgue.dmm +++ b/_maps/modular_generic/station_l_morgue.dmm @@ -361,7 +361,7 @@ dir = 4 }, /obj/structure/table/reinforced/plastitaniumglass, -/obj/item/surgery_tray/full/morgue, +/obj/effect/spawner/surgery_tray/full/morgue, /obj/structure/railing{ dir = 4 }, diff --git a/_maps/shuttles/emergency_birdshot.dmm b/_maps/shuttles/emergency_birdshot.dmm index cdf903f0345..1cf44657848 100644 --- a/_maps/shuttles/emergency_birdshot.dmm +++ b/_maps/shuttles/emergency_birdshot.dmm @@ -749,7 +749,7 @@ /area/shuttle/escape) "Ko" = ( /obj/structure/table/optable, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/item/clothing/mask/surgical, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/mineral/titanium/white, diff --git a/_maps/shuttles/emergency_donut.dmm b/_maps/shuttles/emergency_donut.dmm index f81c084e90b..27f9cd7f1ac 100644 --- a/_maps/shuttles/emergency_donut.dmm +++ b/_maps/shuttles/emergency_donut.dmm @@ -317,7 +317,7 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "ed" = ( -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/item/clothing/suit/apron/surgical, /obj/item/clothing/mask/surgical, /obj/structure/table/optable, diff --git a/_maps/shuttles/emergency_fish.dmm b/_maps/shuttles/emergency_fish.dmm index b99aa01b096..43ec2aa1620 100644 --- a/_maps/shuttles/emergency_fish.dmm +++ b/_maps/shuttles/emergency_fish.dmm @@ -844,7 +844,7 @@ /area/shuttle/escape) "VD" = ( /obj/structure/table/glass, -/obj/item/surgery_tray/full{ +/obj/effect/spawner/surgery_tray/full{ pixel_y = 6 }, /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ diff --git a/_maps/shuttles/emergency_humpback.dmm b/_maps/shuttles/emergency_humpback.dmm index 195f342cd3c..89ab755acbf 100644 --- a/_maps/shuttles/emergency_humpback.dmm +++ b/_maps/shuttles/emergency_humpback.dmm @@ -418,7 +418,7 @@ /area/shuttle/escape) "zn" = ( /obj/structure/table, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /turf/open/floor/iron/showroomfloor, /area/shuttle/escape) "zr" = ( diff --git a/_maps/shuttles/emergency_lance.dmm b/_maps/shuttles/emergency_lance.dmm index c17d1767b13..d83294d00ac 100644 --- a/_maps/shuttles/emergency_lance.dmm +++ b/_maps/shuttles/emergency_lance.dmm @@ -968,8 +968,8 @@ /obj/item/book/manual/wiki/surgery{ pixel_x = -15 }, -/obj/item/surgery_tray/full, -/obj/item/surgery_tray/full{ +/obj/effect/spawner/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full{ pixel_x = 5 }, /obj/effect/turf_decal/tile/dark_blue/half/contrasted{ diff --git a/_maps/shuttles/emergency_mini.dmm b/_maps/shuttles/emergency_mini.dmm index 73c5f42b38f..89579283e93 100644 --- a/_maps/shuttles/emergency_mini.dmm +++ b/_maps/shuttles/emergency_mini.dmm @@ -227,7 +227,7 @@ "W" = ( /obj/structure/table, /obj/item/clothing/suit/apron/surgical, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) "X" = ( diff --git a/_maps/shuttles/emergency_nature.dmm b/_maps/shuttles/emergency_nature.dmm index 0f793c71475..16e1b107212 100644 --- a/_maps/shuttles/emergency_nature.dmm +++ b/_maps/shuttles/emergency_nature.dmm @@ -497,7 +497,7 @@ /area/shuttle/escape) "sF" = ( /obj/effect/turf_decal/trimline/blue/filled/line, -/obj/item/surgery_tray/full{ +/obj/effect/spawner/surgery_tray/full{ pixel_y = 5 }, /obj/structure/rack, diff --git a/_maps/shuttles/emergency_nebula.dmm b/_maps/shuttles/emergency_nebula.dmm index 7b729f72167..39359e5c29e 100644 --- a/_maps/shuttles/emergency_nebula.dmm +++ b/_maps/shuttles/emergency_nebula.dmm @@ -2447,7 +2447,7 @@ "XV" = ( /obj/structure/table/reinforced, /obj/item/radio/intercom/directional/east, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/machinery/defibrillator_mount/directional/south, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, diff --git a/_maps/shuttles/emergency_northstar.dmm b/_maps/shuttles/emergency_northstar.dmm index 798a4d9671a..672dd9b58e2 100644 --- a/_maps/shuttles/emergency_northstar.dmm +++ b/_maps/shuttles/emergency_northstar.dmm @@ -127,7 +127,7 @@ "nC" = ( /obj/structure/table/reinforced/rglass, /obj/item/defibrillator/loaded, -/obj/item/surgery_tray/full{ +/obj/effect/spawner/surgery_tray/full{ pixel_y = 13 }, /obj/effect/turf_decal/tile/blue/anticorner{ diff --git a/_maps/shuttles/emergency_russiafightpit.dmm b/_maps/shuttles/emergency_russiafightpit.dmm index 33baf94c7ec..a00f6804bbc 100644 --- a/_maps/shuttles/emergency_russiafightpit.dmm +++ b/_maps/shuttles/emergency_russiafightpit.dmm @@ -438,7 +438,7 @@ "iJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/item/clothing/gloves/fingerless, /turf/open/floor/iron, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_shadow.dmm b/_maps/shuttles/emergency_shadow.dmm index 5afa72919cb..f5c2cd049f1 100644 --- a/_maps/shuttles/emergency_shadow.dmm +++ b/_maps/shuttles/emergency_shadow.dmm @@ -1000,7 +1000,7 @@ "Sb" = ( /obj/structure/table, /obj/structure/window/reinforced/spawner/directional/west, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/item/clothing/suit/apron/surgical, /obj/item/clothing/mask/surgical, /obj/item/clothing/gloves/latex/nitrile{ diff --git a/_maps/shuttles/emergency_tram.dmm b/_maps/shuttles/emergency_tram.dmm index 5ec40d242d6..38b2608865b 100644 --- a/_maps/shuttles/emergency_tram.dmm +++ b/_maps/shuttles/emergency_tram.dmm @@ -203,7 +203,7 @@ /area/shuttle/escape) "aX" = ( /obj/structure/table/optable, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/item/clothing/mask/surgical, /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_tranquility.dmm b/_maps/shuttles/emergency_tranquility.dmm index ae3924becbc..0de15be89cb 100644 --- a/_maps/shuttles/emergency_tranquility.dmm +++ b/_maps/shuttles/emergency_tranquility.dmm @@ -2530,7 +2530,7 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/table, /obj/item/lazarus_injector, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/item/clothing/gloves/latex/nitrile{ pixel_y = 4 }, diff --git a/_maps/shuttles/hunter_mi13_foodtruck.dmm b/_maps/shuttles/hunter_mi13_foodtruck.dmm index 34e6bb730ca..4dca72eaae8 100644 --- a/_maps/shuttles/hunter_mi13_foodtruck.dmm +++ b/_maps/shuttles/hunter_mi13_foodtruck.dmm @@ -15,7 +15,7 @@ /area/shuttle/hunter/mi13_foodtruck) "af" = ( /obj/structure/table/reinforced/plastitaniumglass, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/structure/sign/poster/contraband/hacking_guide/directional/south, /turf/open/floor/circuit/red/off, /area/shuttle/hunter/mi13_foodtruck) diff --git a/_maps/shuttles/ruin_cyborg_mothership.dmm b/_maps/shuttles/ruin_cyborg_mothership.dmm index ea07e4354de..a0cb642c086 100644 --- a/_maps/shuttles/ruin_cyborg_mothership.dmm +++ b/_maps/shuttles/ruin_cyborg_mothership.dmm @@ -709,7 +709,7 @@ /area/shuttle/ruin/cyborg_mothership) "Oq" = ( /obj/structure/table, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/effect/turf_decal/bot, /obj/structure/sink/directional/east, /obj/item/toy/figure/borg{ diff --git a/_maps/shuttles/whiteship_birdshot.dmm b/_maps/shuttles/whiteship_birdshot.dmm index 49f9a2e6a70..e076c841605 100644 --- a/_maps/shuttles/whiteship_birdshot.dmm +++ b/_maps/shuttles/whiteship_birdshot.dmm @@ -146,7 +146,7 @@ pixel_y = 3 }, /obj/item/reagent_containers/blood, -/obj/item/surgery_tray/full{ +/obj/effect/spawner/surgery_tray/full{ pixel_x = 2; pixel_y = 9 }, diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index ed2e2a17b90..9a20e38ebcd 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -104,7 +104,7 @@ }, /obj/machinery/airalarm/directional/north, /obj/effect/mapping_helpers/airalarm/all_access, -/obj/item/surgery_tray/full{ +/obj/effect/spawner/surgery_tray/full{ pixel_y = 4 }, /obj/item/clothing/suit/apron/surgical, diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index f75f87001b5..e7981b169b8 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -1621,7 +1621,7 @@ /area/shuttle/abandoned/medbay) "dO" = ( /obj/structure/table, -/obj/item/surgery_tray/full{ +/obj/effect/spawner/surgery_tray/full{ pixel_y = 4 }, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/templates/lazy_templates/ninja_den.dmm b/_maps/templates/lazy_templates/ninja_den.dmm index 324ebc32093..6ac2503a4dd 100644 --- a/_maps/templates/lazy_templates/ninja_den.dmm +++ b/_maps/templates/lazy_templates/ninja_den.dmm @@ -1652,7 +1652,7 @@ /area/centcom/central_command_areas/holding) "Mz" = ( /obj/structure/closet, -/obj/item/surgery_tray/full, +/obj/effect/spawner/surgery_tray/full, /obj/machinery/iv_drip, /obj/item/emergency_bed, /obj/item/storage/medkit/regular, diff --git a/_maps/templates/lazy_templates/nukie_base.dmm b/_maps/templates/lazy_templates/nukie_base.dmm index 60c5b1dcb58..bb1d8bd4126 100644 --- a/_maps/templates/lazy_templates/nukie_base.dmm +++ b/_maps/templates/lazy_templates/nukie_base.dmm @@ -111,7 +111,7 @@ dir = 5 }, /obj/structure/table/reinforced/plasmarglass, -/obj/item/surgery_tray/full{ +/obj/effect/spawner/surgery_tray/full{ pixel_y = -11 }, /obj/item/storage/belt/medical, diff --git a/_maps/virtual_domains/meta_central.dmm b/_maps/virtual_domains/meta_central.dmm index 2fc87ae17c8..3fc4ed7f21e 100644 --- a/_maps/virtual_domains/meta_central.dmm +++ b/_maps/virtual_domains/meta_central.dmm @@ -4780,7 +4780,7 @@ "NO" = ( /obj/machinery/airalarm/directional/west, /obj/structure/broken_flooring/singular/always_floorplane/directional/east, -/obj/item/surgery_tray/full/deployed, +/obj/effect/spawner/surgery_tray/full/deployed, /turf/open/floor/plating, /area/virtual_domain) "NR" = ( diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 12bdfb54b63..9b5604f5fd7 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -34,6 +34,8 @@ latches = "double_latch" if(prob(1)) latches = "triple_latch" + if(prob(0.1)) + latches = "quad_latch" // like winning the lottery, but worse update_appearance() atom_storage.open_sound = 'sound/items/handling/toolbox/toolbox_open.ogg' atom_storage.rustle_sound = 'sound/items/handling/toolbox/toolbox_rustle.ogg' @@ -291,6 +293,51 @@ new /obj/item/stack/pipe_cleaner_coil/white(src) new /obj/item/stack/pipe_cleaner_coil/brown(src) +/obj/item/storage/toolbox/medical + name = "medical toolbox" + desc = "A toolbox painted soft white and light blue. This is getting ridiculous." + icon_state = "medical" + inhand_icon_state = "toolbox_medical" + attack_verb_continuous = list("treats", "surgeries", "tends", "tends wounds on") + attack_verb_simple = list("treat", "surgery", "tend", "tend wounds on") + w_class = WEIGHT_CLASS_BULKY + material_flags = NONE + force = 5 // its for healing + wound_bonus = 25 // wounds are medical right? + /// Tray we steal the og contents from. + var/obj/item/surgery_tray/tray_type = /obj/item/surgery_tray + +/obj/item/storage/toolbox/medical/Initialize(mapload) + . = ..() + // what do any of these numbers fucking mean + atom_storage.max_total_storage = 20 + atom_storage.max_slots = 11 + +/obj/item/storage/toolbox/medical/PopulateContents() + var/atom/fake_tray = new tray_type(get_turf(src)) // not in src lest it fill storage that we need for its tools later + for(var/atom/movable/thingy in fake_tray) + thingy.forceMove(src) + qdel(fake_tray) + +/obj/item/storage/toolbox/medical/full + tray_type = /obj/item/surgery_tray/full + +/obj/item/storage/toolbox/medical/coroner + name = "coroner toolbox" + desc = "A toolbox painted soft white and dark grey. This is getting beyond ridiculous." + icon_state = "coroner" + inhand_icon_state = "toolbox_coroner" + attack_verb_continuous = list("dissects", "autopsies", "corones") + attack_verb_simple = list("dissect", "autopsy", "corone") + w_class = WEIGHT_CLASS_BULKY + material_flags = NONE + force = 17 // it's not for healing + tray_type = /obj/item/surgery_tray/full/morgue + +/obj/item/storage/toolbox/medical/coroner/Initialize(mapload) + . = ..() + AddElement(/datum/element/bane, mob_biotypes = MOB_UNDEAD, damage_multiplier = 1) //Just in case one of the tennants get uppity + /obj/item/storage/toolbox/ammobox name = "ammo canister" desc = "A metal canister designed to hold ammunition" diff --git a/code/game/objects/items/surgery_tray.dm b/code/game/objects/items/surgery_tray.dm index 4e84bd3ac35..9485be4c358 100644 --- a/code/game/objects/items/surgery_tray.dm +++ b/code/game/objects/items/surgery_tray.dm @@ -1,3 +1,4 @@ + /** * Surgery Trays * A storage object that displays tools in its contents based on tier, better tools are more visible. @@ -16,11 +17,17 @@ /// If true we're currently portable var/is_portable = TRUE + /// List of contents to populate with in populatecontents() + var/list/starting_items = list() + /// Fills the tray with items it should contain on creation /obj/item/surgery_tray/proc/populate_contents() + for(var/obj in starting_items) + new obj(src) + update_appearance(UPDATE_ICON) return -/obj/item/surgery_tray/Initialize(mapload) +/obj/item/surgery_tray/Initialize(mapload, effect_spawner = FALSE) . = ..() AddElement(/datum/element/drag_pickup) create_storage(storage_type = /datum/storage/surgery_tray) @@ -159,57 +166,100 @@ is_portable = FALSE /obj/item/surgery_tray/full + starting_items = list( + /obj/item/blood_filter, + /obj/item/bonesetter, + /obj/item/cautery, + /obj/item/circular_saw, + /obj/item/clothing/mask/surgical, + /obj/item/hemostat, + /obj/item/razor/surgery, + /obj/item/retractor, + /obj/item/scalpel, + /obj/item/stack/medical/bone_gel, + /obj/item/stack/sticky_tape/surgical, + /obj/item/surgical_drapes, + /obj/item/surgicaldrill, + ) /obj/item/surgery_tray/full/deployed is_portable = FALSE -/obj/item/surgery_tray/full/populate_contents() - new /obj/item/blood_filter(src) - new /obj/item/bonesetter(src) - new /obj/item/cautery(src) - new /obj/item/circular_saw(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/hemostat(src) - new /obj/item/razor/surgery(src) - new /obj/item/retractor(src) - new /obj/item/scalpel(src) - new /obj/item/stack/medical/bone_gel(src) - new /obj/item/stack/sticky_tape/surgical(src) - new /obj/item/surgical_drapes(src) - new /obj/item/surgicaldrill(src) - update_appearance(UPDATE_OVERLAYS) - /obj/item/surgery_tray/full/morgue name = "autopsy tray" desc = "A Deforest brand surgery tray, made for use in morgues. It is a folding model, \ meaning the wheels on the bottom can be extended outwards, making it a cart." + starting_items = list( + /obj/item/blood_filter, + /obj/item/bonesetter, + /obj/item/cautery/cruel, + /obj/item/circular_saw, + /obj/item/clothing/mask/surgical, + /obj/item/hemostat/cruel, + /obj/item/razor/surgery, + /obj/item/retractor/cruel, + /obj/item/scalpel/cruel, + /obj/item/stack/medical/bone_gel, + /obj/item/stack/sticky_tape/surgical, + /obj/item/surgical_drapes, + /obj/item/surgicaldrill, + ) -/obj/item/surgery_tray/full/morgue/populate_contents() - new /obj/item/blood_filter(src) - new /obj/item/bonesetter(src) - new /obj/item/cautery/cruel(src) - new /obj/item/circular_saw(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/hemostat/cruel(src) - new /obj/item/razor/surgery(src) - new /obj/item/retractor/cruel(src) - new /obj/item/scalpel/cruel(src) - new /obj/item/stack/medical/bone_gel(src) - new /obj/item/stack/sticky_tape/surgical(src) - new /obj/item/surgical_drapes(src) - new /obj/item/surgicaldrill(src) +/obj/item/surgery_tray/full/morgue/deployed + is_portable = FALSE /// Surgery tray with advanced tools for debug /obj/item/surgery_tray/full/advanced + starting_items = list( + /obj/item/scalpel/advanced, + /obj/item/retractor/advanced, + /obj/item/cautery/advanced, + /obj/item/surgical_drapes, + /obj/item/reagent_containers/medigel/sterilizine, + /obj/item/bonesetter, + /obj/item/blood_filter, + /obj/item/stack/medical/bone_gel, + /obj/item/stack/sticky_tape/surgical, + /obj/item/clothing/mask/surgical, + ) -/obj/item/surgery_tray/full/advanced/populate_contents() - new /obj/item/scalpel/advanced(src) - new /obj/item/retractor/advanced(src) - new /obj/item/cautery/advanced(src) - new /obj/item/surgical_drapes(src) - new /obj/item/reagent_containers/medigel/sterilizine(src) - new /obj/item/bonesetter(src) - new /obj/item/blood_filter(src) - new /obj/item/stack/medical/bone_gel(src) - new /obj/item/stack/sticky_tape/surgical(src) - new /obj/item/clothing/mask/surgical(src) +/obj/effect/spawner/surgery_tray + name = "surgery tray spawner" + icon = 'icons/obj/medical/medicart.dmi' + icon_state = "tray" + /// Tray to usually spawn in. + var/tray_to_spawn = /obj/item/surgery_tray + /// Toolbox to sometimes replace the above tray with. + var/rare_toolbox_replacement = /obj/item/storage/toolbox/medical + /// Chance for replacement + var/toolbox_chance = 1 + +/obj/effect/spawner/surgery_tray/Initialize(mapload) + . = ..() + if(prob(toolbox_chance)) + new rare_toolbox_replacement(loc) + return + new tray_to_spawn(loc, TRUE) + +/obj/effect/spawner/surgery_tray/full + name = "full surgery tray spawner" + icon_state = "tray" + tray_to_spawn = /obj/item/surgery_tray/full + rare_toolbox_replacement = /obj/item/storage/toolbox/medical/full + +/obj/effect/spawner/surgery_tray/full/deployed + name = "full deployed tray spawner" + icon_state = "medicart" + tray_to_spawn = /obj/item/surgery_tray/full + +/obj/effect/spawner/surgery_tray/full/morgue + name = "full autopsy tray spawner" + icon_state = "tray" + tray_to_spawn = /obj/item/surgery_tray/full/morgue + rare_toolbox_replacement = /obj/item/storage/toolbox/medical/coroner + toolbox_chance = 3 // tray is rarer, so toolbox is more common + +/obj/effect/spawner/surgery_tray/full/morgue/deployed + name = "full deployed autopsy tray spawner" + icon_state = "medicart" + tray_to_spawn = /obj/item/surgery_tray/full/morgue/deployed diff --git a/icons/mob/inhands/equipment/toolbox_lefthand.dmi b/icons/mob/inhands/equipment/toolbox_lefthand.dmi index e3aca82d9e839d78a9b61e3b6146a77995d6cdfc..3dbd5ea013d4297076faebb415f96793ab6ee577 100644 GIT binary patch literal 2298 zcma)-c{CgN7RSA6X{l7AIp5E{=l*i8IoZj{ zsK`i2NXT8bw{aHxcVEt4DehEIcAyLL#B!-Z)97Pk+Dk zC+_AETh4nbCHHFo?Vi5ZlcBP4a=(prw8y)=yg%i$3y-uv9`gdI22w&{KnrI8VU7w%prd~T!p@z*d`1nai+I(iGQW}~I;M)^=IKzHFQ=}CW?BKUiDZe z zv7WZSP8z-NQn`1_DuCBlw0k{(9sfR~C?@4iSBdjS3V) z{buIMIY(jJF(F)mh|Y+}Tki(36J&E{bksQiR1RgWg#_pG2C(gqRt$&%ljX5*j{& z>-~3I3J}!n`45akw54TW3M=RmVw>VX^(1!m4<<+_Pkc7BO$)4Xe)fQz3RnK$N%YM*YK29b*O2%~LX@wxxW!o2q zsVPm-+ze`#v8EsH_aW_jPxXST?!3_-6amoKmbqw99J?53W1pYKo@#v@bKqFAsPOOn zbKy?vs!#yfEm)GukiljIYQ^>P3n1qa8A%NCf(qA4CHPEHdfrMEL5CD zK}80C0MIVapLb^M^EC1{&YXsQkQ}jp+<63$eQ~bnj2`&)nLJ;ZFHW$3+kS;<=vS)@ zr(u928rX}H20=KJVqgrVGUPnwUo+tI-vjv;|MIlR?i$5>wBEyCNQnKy!t3b}4}PWF zNfeg~N_0i%xhe)>FHm+f1!2t#eQvE=#YpBkD%eL5u(we@%Bst=gQClraaAZUegoy|6a8d4d>}9J0U) zB|zn==!g!B8=R)_;2iCpvW+*Wzd3u{}y+z(nQJWWz*&Q;kE+=fjp;sX=~N3 z!{Rns_zaJwdqJ^BL6|4eD-EFbqSj5awGUSw=RfYX!~9gnj(@?ItFR+_I-W&ad_^K; zYouC*YljIY^NlijKFr}bmOjbkN@2)X!atM9Kvh-M+@Ew# zx>ww(1!LOC%Mn=s+c)C0tv1kPJX20}t@=u-d(RJj%hnYK&%1{sWIHa32Vk?mHrXvv zl+Y7OD?JAQC8TC6yeACRhig*P=Hl1)>4_U65RVbf3j}^%;JC0TH7D-E88h*`*L?c3 zu^*}QN_xr$sgfs)Ptn|ZpTA=sdCUNEp$gWO7JW~&yP_k`D0w}V!%De>@Cl&knjy+Z zT3=Yu{KFb4Rz@EuEH>2xV`F38Pb`kerTv(vToJFWF zRrgNMh{3ksw%GK`L&`t5I;nsR&pk0)z-x_B)hMq`#KO~e}2xG?jb z?zPV0&nCLCW|(sMH2*oJ6hI*qED*H)g=g!td7NJBorWD z%`8D5&nofRtW93h7&_8wkC{du-Pwjz&? ztvcT*nQ5H+4B`u_IZNA}IbOkp?Y02=lMQj{JLdu|d|&hWbLdbA1jF9$e8cr;o4yud sG3oW@Rc|xMa>naO8JSmC{~Ou5{}k%@hN8%3?hEG2woWz;R=@n?-{8`NK>z>% delta 1838 zcmV+}2hsTY5t7k|JA1^@s69f5Dx0002GdQ@0+L}hbha%pgMX>V=-0C=2@k5bYtlz?IQB_f|__T^fr@xGuh2#@_e}#rOa=IcxWGx zoIJ_nW-F2r6`R={_98JFJHsCn7+B9Tg}$eno~cL_`mn@A(tmpB^`dt_4qc0uJuvyI zfuL6d0q(|89Lq#@KBDqkMYFXX;)^G3Esd)1;-^H6=rOBEG_Kz-5DVniqwMQnoErkDpsHZ7@}E{)WJ zkXT>bl7+sE`9^P;JMM;iXTF(l?%m%HE;A&V^PPL{oS8dG*pp=d000000000000000 zBbkX6Xz6o{`BuNT{F{}r*NGi(nyAh6xIJdD-S^ztdVj2cy#7|SH6~fiT9eK@Vh4Qe zp^Qe*}vsiQ~D`-0|wz_80Jdr#eUe98z^P0uFTEN z<>58zpGen$5Xm=hyDh)>BOf2@7!62ttFOE~wCzi*HXV8BSaH{T^PktoI!*&Z1ouAs zi){H*hsHi`>KL&$vw_!rnc-@%<{pjPqC&^ zwJv?B)2~1D-Y9v*inEp4!&%C6&^FtqYQ%5?96NNp*bmz#Cq&FxUFqs#QC?@WZOU3* z{NnxjJ^S9@xOu|yAx?-FE4QjfBdQ0p(86SxOaB|sRO}!5LU!q;KSfB7aU6g2c<~uL z{fB=iJ6UgVaVi`dZn&;;sCsg#lxMtDGt$b>AJEHR>zPlQq4B_|? zC&Y`DTiZgeT{S_qKC$ZF)U~zm=6BA0dZZ?dIy_@=;)l6vZOl@u3Nzal_w4w;U+-%D z%^d#HbNRvp^Tqyu>hrH=XMXlz?L1<}>cZf}?<&`FeaceS>UZB;%;!HkTkOC3m-Xy3 z-&(n49?|ZAsqZ?ZmHMtTsiIvamS$#$K7i$Xz4a?lb(j00000000000001!odgJf005vLMxArET~+JT zmwFxh^Vg!}5i8ELs@7-RdfjqxL^zqkoU>r(+_xuU$V8aU_SV|(vpt_Z-+I2)`h>N^ zepl;n<@6h;i#(padOmylV?VB)M>v^|>^e~FAHDnNM120?y*GW|qpH@YPTg<$hsK?C zmfGO%(^anJ`jn+utkoxea5R74fnCM^-_BpnE(iHd{r&vmD0#$+(^subM>=@$V7`0z?#3rWI6lM)@nYrH zwvcOAO;D{*thzUq=g;JK@Beb+<_X7#I3ZrF+}aj$9p`;VpWw1IGn?Ok#~sD~*^P~C zIbW~6M$A}UcznmsqVQeiTCPu7%33}3fAx3f_kI4pV*iC-zK}igqql445i?d728}mP zuF>y+Yj@3NPrdtH#VhRhC05(QU8n0@%k?S0`d+JPRQGNl{faU>J3Exf`g;8^W0WfSEJ++E6%j4)TTL z*$;fmZwTAVmoH}v3k$XL2q)9ty?cxOnHwUd*Q)T|o4)T+RqIoy?%Vx`GBx^;%JbXG zQqFQab?Q{Uw6s+0FE1}=Cr+HGokz@AT^QVbWV*_=T%WRW*5B?8=oxTI`06*AZf|n% zx#hQSyw1eRC5j6dE)=i6#cJEhlP5c0bCT-QSH1p9#q{$P6i7w`LP8o464HQ>kOqW= cG$17OA6gMPWd&XyO8@`>07*qoM6N<$g5Ji$FaQ7m diff --git a/icons/mob/inhands/equipment/toolbox_righthand.dmi b/icons/mob/inhands/equipment/toolbox_righthand.dmi index a7b538a1300028d466913d050c4120554ee9b33f..13dc226fcea31c91b55dbc133a3f2e042c01d415 100644 GIT binary patch literal 1300 zcmXw&e>~H99LK*bbB}4dT-QAkQ60+peU(V2Zfl{o31OpKnK>R~jb$P?Qpy?k*i=KV zt)m;3ADI&^jI4528DTp=Cd{M7@*`9hyRR$n$LIZiKR%y7-p|kD^?JOsaTqilW)1@Y z0PcGfc>?SstN9fKtd8%BdcgK4?pP2?uh%2|UBY6$WKDs)c01bG*pPmq;R5lg5QvvI z66ONbI#`ovBst-yi?Gc&d;r1#PAO3i*B@ke&%GJQM4l2gTyojrl9+(9$IId>#wt91 zKe_9;r>(8+=p&?$kB?q2D2<1jo14SoaFR2iP$=a6N)Y;Xaj~$lkbR?&xEeI@C1m8E zy1F`ajfl-=Z;MF7U@#kxP&_?7qd2E?z~36sPhbK8p9uvSygW_`3Z)~X5+f60&eCJ3 z@c@uqoZI~j*5K}T$csUT(H z+@{z$d%gq8XrmswBYZ#-bFy%`0lED(Cr(4vWE#)k(zRG1ciRU`?YLeD)7F66c!fZv zsmZ$8Pg313fnBJr4&BfHG?$p#Fkby4#c;8?(dc%~`DFlrV0@8>f|851gE4{ThrUjK zm3uf{jWgW<9#eLA*{ojw_k4p-Sh?nOmU86Ac^>!ZB-ByX0B4M6HCm!*{Ahzq_C*yF{)$+NP-Pir(O7(*9svkn# z9>qm1qBp8tiFfd>2qViHTRSIlxbURx<6}r)#e|>$GBINlIQ(>)Yq-h+gWu4-C-*s~ zzq;w=m?%PD!P_^U%)L(*kl(zVJ>sEiOA%>?ynTy~4_s3F1vjyur024{i6ytWl-^0l z=@q})u$uB`*zsid8nSME8Mfd>`rd_|vPelj%bUNhmm_Esw{WHgE2Yei(ye*^sZ1k- z&sbo_vNykL@1ULb!&K7QLae7aPzHP696Hc$$sHJqmr#4Oc&Mw*-Hf=wfO|cY+Npml zwk~n}Mwis0BpoH%m{IE$C$2ae?tFe&Q#>6z>B{$hbsGB8Zhp(mo-vlN)#RSAHE%pe z_N$}QWd`#L6Tt21izA>-KD>Ss{XVm^EahOQHQ6W{P8rMlZMoH&uO||>v|p=%*3+h! z79*~CX&Y_?nf3dhTF`|IFKavI>ZU7p&{WXW4Q1Hm0)sTWI_CkWA2aUvRb7r|IDYiZ z$C|8xW~5oO%10w^Jl3cPUFG&@c0Ye5net^gS}G@*bur!Utv}-z3bDcvD%17L@*)Q; zp~@b_4YQ88|Bs`WhBR85Qk%9a^3|HIU}<~r2*PRx18QxjiZY~D4w+1^ERO3~jBnSl zI8x7tsTfdB@~pBXd+agYdqWw5M_3b*Rv)@<{$~fuH^VFoLf;k5e5<(mVAw58MDX`j z-0R8OJug!&wY@g0fKA|x|pS^F$X z;_gwkLZvY?LWHV>d1+Dhfs1mTxc5y&o=|##fB<}&SAcz!LHMXhh-4M)i^3qQ4ihi_ E2iypJ5dZ)H literal 2324 zcmb`JX;czw8ppxB%1tq|o2F=#nKV8*AIhGqK7Pzyxq}?u=n&y(E zj+RPpw77y;E^sT2RB*usmjW{tH&jSuxF6=+bEcU&eV7mL^PKbk&v`%m&i{G;&)u^~ zXYfY7jQ{`u>~g~KyrPdP&TEj0q8h}b`xLD)#?2G!cpc++D<}*bgboD&qR1)fof-*d znzz|Yf6=Rl$g8fXGsDt6cBq+P{k|B_7%nU)Jc=@3vdq9)40K*wz%^(;?La3*1wzxv zwr?l=_deLXHE%$F+3jGARpTCV3WL z=&=Df%RHz5-ZA1x(ZZ$UFKZ0ONw5%;lya*m=IeepzBiVbLv9Id+y#-BcAKbY$>($F znUYwE4sI~dEDYR|4gi3*x;P$niz3eqqXRF5>$B!D*ELJ-=eLDz`@10PF429-NZygF z7oU92-RkI*C6{aIh*QuYw)wlsyT)2&Mp~XfryE;W=5yB)<+W~xN3&E8yxjb2sqDVZ z;`A%pV@xDLh#}BKI^H659$6GAB(rB5B4e6&^H&f6JwFZ@z`X}ha!}UPG>nVW1S;PK z?bzW60Pa)*fi~OQ|N8Heo9nEaS~mQljChizQIkFW%C&(m4G(E9?0WGjrXDfBP7~q_$a^Yd@C?x(lDe)v zrYH%8X&FGnAkj+(y-`n$853&_Js;?=ua%3ElU16Fi;LZ6Cr-|x zKIn?R|rTX%aP*UFzfag`YRT|f09Bty67wdtvgy5Z9ZTs=tzd6k(ek8YL1e_5gtFKJAJ>Qf|IL&u)$O%6D zAUCO&Qo`iNe5xxQZQm?`qNia7FUvo z4&S;?AM73!lJAH%^_Iv#x301e@@;UIf8!Vr!r;-gPjdGR^u;NoW4H zibEab(T;t$X97Z1SS5=bxM+e4&RsI#>sSUGQ3`}N&Bh>hAwg8aT>5GEDPxVR*x8Gj zx$#-7q1r&1trB|QMa=I+tjjSfBkW15&BDNomOCHa*(=?4QgVvlmKvwV;$+E4tXZs={O&K+1IMR|r}q z=n`>c^iRC!-2IPv%fnIBu4bD}v99@u{I~X`)e1`p`~jy94huCCD0`hdWan8;e)VE5 z(bqw>YCGtD=bNf6BO|cdfbK|~Pk&kZ6GAU*=OTdjh@w3lnpxQpa*WH~HOF*?GN#Yu z`sh?tlP4DlF(~5LvA}ZSWJK`-&$LT=Q6*m(x3w(!luu^%=ci~vYFw@Vv-UbvvC|`I zG>5!CGz5gRiDJJoC@@5<&#y|+3z`bJkfE@kW_IBZe1kviyg!L2gRlDe6=#SpqyJ^T zwe?mlShF)kG3>d=Q+93$L{g>FnChob+bM}xrEq+JZrUn?dd{z28Vyy&Bp?ooxFcL4 z(ty}g{l(_J<~q^mnrpFtnJIFbE--17dQh)emGs(0l+xyUqW@NKCe;8^k-EHet#){l z(QjV$!H2UV*@rTspo7s2?!)&ttq7y_b%n$xCR#ShZ-L62&?7=q&*(Z-5AiGgMlEDm zC%^7}DuG}GPsS-vldawiT6~Eg_3zzJuL`BI zae)gzahlYDGO7@D-`qoQ1JVycLp;!$sh@6X7Kw7WwB^2PAD`94WHd^Y)7R8dRS~Swrl~Y>WI;4Htu> zSq49$6kO;GCi B6{-LL diff --git a/icons/obj/storage/toolbox.dmi b/icons/obj/storage/toolbox.dmi index 9ca99565f3174d4f52f2d7dd7c58d978e83d87a9..49385d5b73cf2a90b028d6fbd3931e1db29fdd28 100644 GIT binary patch delta 2076 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