diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm index 0edbc65bcd982..d0e9e62daeaa0 100644 --- a/_maps/map_files/generic/centcomm.dmm +++ b/_maps/map_files/generic/centcomm.dmm @@ -9965,7 +9965,7 @@ /area/centcom/suppy) "Jq" = ( /obj/structure/table/wood, -/obj/item/storage/box/beanbag, +/obj/item/storage/fancy/shell/beanbag, /obj/item/gun/projectile/revolver/doublebarrel, /turf/simulated/floor/plasteel{ icon_state = "bar" diff --git a/_maps/map_files/shuttles/admin_armory.dmm b/_maps/map_files/shuttles/admin_armory.dmm index 7a77e1b5f7133..7cab651db9a76 100644 --- a/_maps/map_files/shuttles/admin_armory.dmm +++ b/_maps/map_files/shuttles/admin_armory.dmm @@ -53,11 +53,11 @@ /area/shuttle/administration) "df" = ( /obj/structure/rack, -/obj/item/storage/box/buck{ +/obj/item/storage/fancy/shell/buck{ pixel_x = -3; pixel_y = 3 }, -/obj/item/storage/box/buck, +/obj/item/storage/fancy/shell/buck, /obj/structure/window/reinforced, /turf/simulated/floor/mineral/plastitanium/red, /area/shuttle/administration) @@ -356,11 +356,11 @@ /area/shuttle/administration) "xF" = ( /obj/structure/rack, -/obj/item/storage/box/buck{ +/obj/item/storage/fancy/shell/buck{ pixel_x = -3; pixel_y = 3 }, -/obj/item/storage/box/buck, +/obj/item/storage/fancy/shell/buck, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 4 @@ -555,11 +555,11 @@ /area/shuttle/administration) "FT" = ( /obj/structure/rack, -/obj/item/storage/box/buck{ +/obj/item/storage/fancy/shell/buck{ pixel_x = -3; pixel_y = 3 }, -/obj/item/storage/box/buck, +/obj/item/storage/fancy/shell/buck, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 8 diff --git a/_maps/map_files/stations/boxstation.dmm b/_maps/map_files/stations/boxstation.dmm index b6aedaa02a0db..b9b89ba56bb07 100644 --- a/_maps/map_files/stations/boxstation.dmm +++ b/_maps/map_files/stations/boxstation.dmm @@ -628,28 +628,27 @@ /turf/simulated/floor/plasteel, /area/station/security/permabrig) "adP" = ( -/obj/structure/rack, -/obj/item/storage/box/rubbershot{ +/obj/item/storage/fancy/shell/rubbershot{ pixel_x = -3; pixel_y = -3 }, -/obj/item/storage/box/rubbershot{ +/obj/item/storage/fancy/shell/rubbershot{ pixel_x = -3; pixel_y = -3 }, -/obj/item/storage/box/rubbershot{ +/obj/item/storage/fancy/shell/rubbershot{ pixel_x = -3; pixel_y = -3 }, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = -3; pixel_y = 3 }, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = -3; pixel_y = 3 }, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = -3; pixel_y = 3 }, @@ -660,6 +659,7 @@ /obj/structure/window/reinforced{ dir = 4 }, +/obj/structure/shelf/security, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -1780,14 +1780,14 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/rack, -/obj/item/storage/box/tranquilizer{ +/obj/item/storage/fancy/shell/tranquilizer{ pixel_x = 3; pixel_y = -3 }, /obj/structure/window/reinforced{ dir = 8 }, +/obj/structure/shelf/security, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" diff --git a/_maps/map_files/stations/cerestation.dmm b/_maps/map_files/stations/cerestation.dmm index a2bed469c13a6..15aa4dd8ff3db 100644 --- a/_maps/map_files/stations/cerestation.dmm +++ b/_maps/map_files/stations/cerestation.dmm @@ -15250,49 +15250,48 @@ /turf/simulated/floor/grass, /area/station/science/genetics) "bLm" = ( -/obj/structure/rack, /obj/structure/window/reinforced{ dir = 1; layer = 2.9 }, -/obj/item/storage/box/rubbershot{ +/obj/item/storage/fancy/shell/rubbershot{ pixel_x = -3; pixel_y = 3 }, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot{ +/obj/item/storage/fancy/shell/rubbershot, +/obj/item/storage/fancy/shell/rubbershot{ pixel_x = 3; pixel_y = -3 }, /obj/structure/window/reinforced{ dir = 8 }, +/obj/item/storage/fancy/shell/tranquilizer{ + pixel_x = 7; + pixel_y = -5 + }, +/obj/structure/shelf/security, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" }, /area/station/security/armory/secure) "bLr" = ( -/obj/structure/rack, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = -3; pixel_y = 3 }, -/obj/item/storage/box/beanbag, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag, +/obj/item/storage/fancy/shell/beanbag{ pixel_x = -3; pixel_y = 3 }, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = -3; pixel_y = 3 }, -/obj/item/storage/box/beanbag, -/obj/item/storage/box/beanbag, -/obj/item/storage/box/tranquilizer{ - pixel_x = 3; - pixel_y = -3 - }, +/obj/item/storage/fancy/shell/beanbag, +/obj/item/storage/fancy/shell/beanbag, /obj/structure/window/reinforced{ dir = 4 }, @@ -15300,6 +15299,7 @@ dir = 1; layer = 2.9 }, +/obj/structure/shelf/security, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm index d8a156f127d44..930421cb442be 100644 --- a/_maps/map_files/stations/deltastation.dmm +++ b/_maps/map_files/stations/deltastation.dmm @@ -18852,6 +18852,7 @@ /obj/item/grenade/barrier, /obj/item/grenade/barrier, /obj/structure/rack, +/obj/item/storage/fancy/shell/tranquilizer, /turf/simulated/floor/plasteel, /area/station/security/armory/secure) "bhk" = ( @@ -75226,32 +75227,31 @@ /turf/simulated/floor/plasteel, /area/station/maintenance/starboard2) "kii" = ( -/obj/structure/rack, -/obj/item/storage/box/rubbershot{ +/obj/item/storage/fancy/shell/rubbershot{ pixel_x = -3; pixel_y = -3 }, -/obj/item/storage/box/rubbershot{ +/obj/item/storage/fancy/shell/rubbershot{ pixel_x = -3; pixel_y = -3 }, -/obj/item/storage/box/rubbershot{ +/obj/item/storage/fancy/shell/rubbershot{ pixel_x = -3; pixel_y = -3 }, -/obj/item/storage/box/tranquilizer, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = 3; pixel_y = 3 }, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = 3; pixel_y = 3 }, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = 3; pixel_y = 3 }, +/obj/structure/shelf/security, /turf/simulated/floor/plasteel, /area/station/security/armory/secure) "kiC" = ( diff --git a/_maps/map_files/stations/emeraldstation.dmm b/_maps/map_files/stations/emeraldstation.dmm index d6c17866e5b24..91a416186e0d8 100644 --- a/_maps/map_files/stations/emeraldstation.dmm +++ b/_maps/map_files/stations/emeraldstation.dmm @@ -1612,13 +1612,12 @@ /turf/simulated/floor/plating, /area/station/maintenance/asmaint) "aqN" = ( -/obj/structure/rack, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = 3; pixel_y = 3 }, -/obj/item/storage/box/beanbag, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag, +/obj/item/storage/fancy/shell/beanbag{ pixel_y = -3; pixel_x = -3 }, @@ -1626,6 +1625,8 @@ dir = 1; layer = 2.9 }, +/obj/item/storage/fancy/shell/tranquilizer, +/obj/structure/shelf/security, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -11139,7 +11140,6 @@ }, /area/station/hallway/secondary/garden) "cbf" = ( -/obj/structure/dispenser/oxygen, /obj/machinery/firealarm/directional/north, /obj/machinery/camera{ c_tag = "Brig Secure Armory North" @@ -40587,13 +40587,12 @@ /turf/simulated/floor/plating, /area/station/maintenance/aft2) "hAf" = ( -/obj/structure/rack, -/obj/item/storage/box/rubbershot{ +/obj/item/storage/fancy/shell/rubbershot{ pixel_x = 3; pixel_y = 3 }, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot{ +/obj/item/storage/fancy/shell/rubbershot, +/obj/item/storage/fancy/shell/rubbershot{ pixel_x = -3; pixel_y = -3 }, @@ -40604,6 +40603,7 @@ dir = 1; layer = 2.9 }, +/obj/structure/shelf/security, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -121847,8 +121847,6 @@ }, /area/station/public/construction) "wwv" = ( -/obj/structure/rack, -/obj/item/storage/box/tranquilizer, /obj/structure/window/reinforced{ dir = 1; layer = 2.9 @@ -121856,6 +121854,7 @@ /obj/structure/window/reinforced{ dir = 8 }, +/obj/structure/dispenser/oxygen, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" diff --git a/_maps/map_files/stations/metastation.dmm b/_maps/map_files/stations/metastation.dmm index 62abc66ed7d61..f0369fc980196 100644 --- a/_maps/map_files/stations/metastation.dmm +++ b/_maps/map_files/stations/metastation.dmm @@ -66558,8 +66558,7 @@ }, /area/station/medical/virology) "mRy" = ( -/obj/structure/rack, -/obj/item/storage/box/tranquilizer, +/obj/item/storage/fancy/shell/tranquilizer, /obj/structure/cable{ d1 = 1; d2 = 4; @@ -66570,6 +66569,7 @@ d2 = 4; icon_state = "2-4" }, +/obj/structure/shelf/security, /turf/simulated/floor/plasteel{ icon_state = "darkred" }, @@ -78190,28 +78190,28 @@ }, /area/station/engineering/atmos/control) "rJh" = ( -/obj/structure/rack, /obj/machinery/requests_console/directional/north, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = 2; pixel_y = 3 }, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = 2; pixel_y = 3 }, -/obj/item/storage/box/beanbag{ +/obj/item/storage/fancy/shell/beanbag{ pixel_x = 2; pixel_y = 3 }, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, +/obj/item/storage/fancy/shell/rubbershot, +/obj/item/storage/fancy/shell/rubbershot, +/obj/item/storage/fancy/shell/rubbershot, +/obj/structure/shelf/security, /turf/simulated/floor/plasteel{ icon_state = "darkred" }, diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 0daaeef79308f..ee32405e06803 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -272,7 +272,7 @@ /obj/item/melee/baseball_bat/homerun = 50, /obj/item/rcd/combat = 50, /obj/item/weaponcrafting/gunkit/universal_gun_kit/sol_gov = 50, - /obj/item/storage/box/buck = 30, //Only seven shots, make them count + /obj/item/storage/fancy/shell/buck = 30, //Only eight shots, make them count /obj/item/mod/module/noslip = 40, /obj/item/clothing/mask/holo_cigar = 50 ) @@ -389,7 +389,7 @@ /obj/item/mod/construction/plating/research = 30, /obj/item/assembly/signaler/anomaly/random = 20, /obj/item/gun/energy/gun = 50, - /obj/item/storage/box/dragonsbreath = 30, + /obj/item/storage/fancy/shell/dragonsbreath = 30, /obj/item/storage/box/turbine_kit = 20, /obj/item/mod/module/firefighting_tank = 40, /obj/item/mod/module/jetpack/advanced = 40 diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 9013d60b94b2a..cb423ae1cad22 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -703,77 +703,83 @@ //////////////// /* Ammo Boxes */ //////////////// -/obj/item/storage/box/slug - name = "ammunition box (Slug)" + +/obj/item/storage/fancy/shell + icon = 'icons/obj/shell_boxes.dmi' + storage_slots = 8 + appearance_flags = parent_type::appearance_flags | KEEP_TOGETHER + can_hold = list(/obj/item/ammo_casing/shotgun) + /// What shell do we fill the box with + var/shell_type + +/obj/item/storage/fancy/shell/update_icon_state() + icon_state = "open" + +/obj/item/storage/fancy/shell/populate_contents() + if(!shell_type) + return + for(var/i in 1 to storage_slots) + new shell_type(src) + +/obj/item/storage/fancy/shell/update_overlays() + . = ..() + var/list/cached_contents = contents + for(var/index in 1 to length(cached_contents)) + var/obj/shell = cached_contents[index] + var/image/I = image(icon, src, initial(shell.icon_state)) + I.pixel_x = 3 * (round((index - 1) / 2)) + I.pixel_y = -4 * ((index + 1) % 2) + . += I + + . += "shell_box_front" // need to add another overlay to prevent from other overlays from showing on top + +/obj/item/storage/fancy/shell/tranquilizer + name = "ammunition box (Tranquilizer darts)" desc = "A small box capable of holding seven shotgun shells." - icon_state = "slug_box" + icon_state = "tranqbox" + shell_type = /obj/item/ammo_casing/shotgun/tranquilizer -/obj/item/storage/box/slug/populate_contents() - for(var/I in 1 to 7) - new /obj/item/ammo_casing/shotgun(src) +/obj/item/storage/fancy/shell/slug + name = "ammunition box (Slug)" + desc = "A small box capable of holding seven shotgun shells." + icon_state = "slugbox" + shell_type = /obj/item/ammo_casing/shotgun -/obj/item/storage/box/buck +/obj/item/storage/fancy/shell/buck name = "ammunition box (Buckshot)" desc = "A small box capable of holding seven shotgun shells." - icon_state = "buckshot_box" - -/obj/item/storage/box/buck/populate_contents() - for(var/I in 1 to 7) - new /obj/item/ammo_casing/shotgun/buckshot(src) + icon_state = "buckbox" + shell_type = /obj/item/ammo_casing/shotgun/buckshot -/obj/item/storage/box/dragonsbreath +/obj/item/storage/fancy/shell/dragonsbreath name = "ammunition box (Dragonsbreath)" desc = "A small box capable of holding seven shotgun shells." - icon_state = "dragonsbreath_box" + icon_state = "dragonsbox" + shell_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath -/obj/item/storage/box/dragonsbreath/populate_contents() - for(var/I in 1 to 7) - new /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath(src) - -/obj/item/storage/box/stun +/obj/item/storage/fancy/shell/stun name = "ammunition box (Stun shells)" desc = "A small box capable of holding seven shotgun shells." - icon_state = "stun_box" - -/obj/item/storage/box/stun/populate_contents() - for(var/I in 1 to 7) - new /obj/item/ammo_casing/shotgun/stunslug(src) + icon_state = "stunbox" + shell_type = /obj/item/ammo_casing/shotgun/stunslug -/obj/item/storage/box/beanbag +/obj/item/storage/fancy/shell/beanbag name = "ammunition box (Beanbag shells)" desc = "A small box capable of holding seven shotgun shells." - icon_state = "beanbag_box" + icon_state = "beanbox" + shell_type = /obj/item/ammo_casing/shotgun/beanbag -/obj/item/storage/box/beanbag/populate_contents() - for(var/I in 1 to 7) - new /obj/item/ammo_casing/shotgun/beanbag(src) - -/obj/item/storage/box/rubbershot +/obj/item/storage/fancy/shell/rubbershot name = "ammunition box (Rubbershot shells)" desc = "A small box capable of holding seven shotgun shells." - icon_state = "rubbershot_box" - -/obj/item/storage/box/rubbershot/populate_contents() - for(var/I in 1 to 7) - new /obj/item/ammo_casing/shotgun/rubbershot(src) + icon_state = "rubberbox" + shell_type = /obj/item/ammo_casing/shotgun/rubbershot -/obj/item/storage/box/tranquilizer - name = "ammunition box (Tranquilizer darts)" - desc = "A small box capable of holding seven shotgun shells." - icon_state = "tranq_box" - -/obj/item/storage/box/tranquilizer/populate_contents() - for(var/I in 1 to 7) - new /obj/item/ammo_casing/shotgun/tranquilizer(src) - -/obj/item/storage/box/holy +/obj/item/storage/fancy/shell/holy name = "ammunition box (Holy Water darts)" desc = "A small box capable of holding seven shotgun shells." icon_state = "hshell_box" - -/obj/item/storage/box/holy/populate_contents() - for(var/I in 1 to 7) - new /obj/item/ammo_casing/shotgun/holy(src) + shell_type = /obj/item/ammo_casing/shotgun/holy //////////////// /* Donk Boxes */ diff --git a/code/modules/supply/supply_packs/pack_security.dm b/code/modules/supply/supply_packs/pack_security.dm index f95c3cbc57567..1adad3d58c9e1 100644 --- a/code/modules/supply/supply_packs/pack_security.dm +++ b/code/modules/supply/supply_packs/pack_security.dm @@ -278,15 +278,15 @@ /datum/supply_packs/security/armory/tranqammo name = "Tranquilizer Shell Crate" - contains = list(/obj/item/storage/box/tranquilizer, - /obj/item/storage/box/tranquilizer) + contains = list(/obj/item/storage/fancy/shell/tranquilizer, + /obj/item/storage/fancy/shell/tranquilizer) cost = 400 containername = "tranquilizer shell crate" /datum/supply_packs/security/armory/holyammo name = "Holy Water Shell Crate" - contains = list(/obj/item/storage/box/holy, - /obj/item/storage/box/holy) + contains = list(/obj/item/storage/fancy/shell/holy, + /obj/item/storage/fancy/shell/holy) cost = 400 containername = "holy water shell crate" diff --git a/icons/obj/boxes.dmi b/icons/obj/boxes.dmi index a9f0326fc7529..e0c018cb6d632 100644 Binary files a/icons/obj/boxes.dmi and b/icons/obj/boxes.dmi differ diff --git a/icons/obj/shell_boxes.dmi b/icons/obj/shell_boxes.dmi new file mode 100644 index 0000000000000..615e189a91917 Binary files /dev/null and b/icons/obj/shell_boxes.dmi differ