diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm index 0edbc65bcd9..d0e9e62daea 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 7a77e1b5f71..7cab651db9a 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 b6aedaa02a0..b9b89ba56bb 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 a2bed469c13..15aa4dd8ff3 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 d8a156f127d..930421cb442 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 d6c17866e5b..91a416186e0 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 62abc66ed7d..f0369fc9801 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 0daaeef7930..ee32405e068 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 9013d60b94b..cb423ae1cad 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)" - desc = "A small box capable of holding seven shotgun shells." - icon_state = "slug_box" -/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 + 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/box/buck - name = "ammunition box (Buckshot)" - desc = "A small box capable of holding seven shotgun shells." - icon_state = "buckshot_box" +/obj/item/storage/fancy/shell/update_icon_state() + icon_state = "open" -/obj/item/storage/box/buck/populate_contents() - for(var/I in 1 to 7) - new /obj/item/ammo_casing/shotgun/buckshot(src) +/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/box/dragonsbreath - name = "ammunition box (Dragonsbreath)" - desc = "A small box capable of holding seven shotgun shells." - icon_state = "dragonsbreath_box" +/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 -/obj/item/storage/box/dragonsbreath/populate_contents() - for(var/I in 1 to 7) - new /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath(src) + . += "shell_box_front" // need to add another overlay to prevent from other overlays from showing on top -/obj/item/storage/box/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) - -/obj/item/storage/box/beanbag - name = "ammunition box (Beanbag shells)" - desc = "A small box capable of holding seven shotgun shells." - icon_state = "beanbag_box" - -/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 - 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) - -/obj/item/storage/box/tranquilizer +/obj/item/storage/fancy/shell/tranquilizer name = "ammunition box (Tranquilizer darts)" desc = "A small box capable of holding seven shotgun shells." - icon_state = "tranq_box" + icon_state = "tranqbox" + shell_type = /obj/item/ammo_casing/shotgun/tranquilizer -/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/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/holy +/obj/item/storage/fancy/shell/buck + name = "ammunition box (Buckshot)" + desc = "A small box capable of holding seven shotgun shells." + icon_state = "buckbox" + shell_type = /obj/item/ammo_casing/shotgun/buckshot + +/obj/item/storage/fancy/shell/dragonsbreath + name = "ammunition box (Dragonsbreath)" + desc = "A small box capable of holding seven shotgun shells." + icon_state = "dragonsbox" + shell_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath + +/obj/item/storage/fancy/shell/stun + name = "ammunition box (Stun shells)" + desc = "A small box capable of holding seven shotgun shells." + icon_state = "stunbox" + shell_type = /obj/item/ammo_casing/shotgun/stunslug + +/obj/item/storage/fancy/shell/beanbag + name = "ammunition box (Beanbag shells)" + desc = "A small box capable of holding seven shotgun shells." + icon_state = "beanbox" + shell_type = /obj/item/ammo_casing/shotgun/beanbag + +/obj/item/storage/fancy/shell/rubbershot + name = "ammunition box (Rubbershot shells)" + desc = "A small box capable of holding seven shotgun shells." + icon_state = "rubberbox" + shell_type = /obj/item/ammo_casing/shotgun/rubbershot + +/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 f95c3cbc575..1adad3d58c9 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 a9f0326fc75..e0c018cb6d6 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 00000000000..615e189a919 Binary files /dev/null and b/icons/obj/shell_boxes.dmi differ