diff --git a/code/game/objects/structures/crates_lockers/largecrate_supplies.dm b/code/game/objects/structures/crates_lockers/largecrate_supplies.dm index 64d569009b6..b9486e4f09e 100644 --- a/code/game/objects/structures/crates_lockers/largecrate_supplies.dm +++ b/code/game/objects/structures/crates_lockers/largecrate_supplies.dm @@ -218,10 +218,16 @@ supplies = list(/obj/item/storage/box/explosive_mines = 5) /obj/structure/largecrate/supply/explosives/grenades - name = "\improper M40 HDEP grenade case (x50)" - desc = "A case containing two twenty-five M40 HDEP grenade boxes." + name = "\improper M40 HEDP grenade case (x50)" + desc = "A case containing two twenty-five M40 HEDP grenade boxes." supplies = list(/obj/item/storage/box/nade_box = 2) +/obj/structure/largecrate/supply/explosives/grenades/less + name = "\improper M40 HEDP grenade case (x25)" + desc = "A case containing one twenty-five M40 HEDP grenade box." + icon_state = "case" + supplies = list(/obj/item/storage/box/nade_box = 1) + /obj/structure/largecrate/supply/explosives/mortar_he name = "80mm HE mortar shell case (x25)" desc = "A case containing twenty-five 80mm HE mortar shells." @@ -295,6 +301,13 @@ desc = "A crate containing a P.A.C.M.A.N. generator, some fuel, and some cable coil to get your power up and going." supplies = list(/obj/structure/machinery/power/port_gen/pacman = 1, /obj/item/stack/sheet/mineral/phoron/medium_stack = 1, /obj/item/stack/cable_coil/yellow = 3) +/obj/structure/largecrate/supply/motiondetectors + name = "\improper motion detectors crate" + desc = "A crate containing two motiondetectors." + icon_state = "case" + supplies = list(/obj/item/device/motiondetector = 2) + + /obj/structure/largecrate/supply/medicine name = "medical crate" desc = "A crate containing medical supplies." diff --git a/code/game/objects/structures/gun_rack.dm b/code/game/objects/structures/gun_rack.dm new file mode 100644 index 00000000000..ac32b0162d6 --- /dev/null +++ b/code/game/objects/structures/gun_rack.dm @@ -0,0 +1,56 @@ +/obj/structure/gun_rack + name = "gun rack" + desc = "ARMAT-produced gun rack for storage of long guns. While initial model was supposed to be extremely modifiable, USCM comissioned racks with fixed slots which only fit M41A rifles. Some say they were cheaper, and some say the main reason was marine's ability to easily break anything more complex than a tungsten ball." + icon = 'icons/obj/structures/gun_racks.dmi' + icon_state = "m41a" + density = TRUE + var/allowed_type + var/max_stored = 5 + var/initial_stored = 5 + +/obj/structure/gun_rack/Initialize() + . = ..() + if(!allowed_type) + icon_state = "m41a_0" + return + + if(initial_stored) + var/i = 0 + while(i < initial_stored) + contents += new allowed_type(src) + i++ + update_icon() + +/obj/structure/gun_rack/attackby(obj/item/O, mob/user) + if(istype(O, allowed_type) && contents.len < max_stored) + user.drop_inv_item_to_loc(O, src) + contents += O + update_icon() + +/obj/structure/gun_rack/attack_hand(mob/living/user) + if(!contents.len) + to_chat(user, SPAN_WARNING("[src] is empty.")) + return + + var/obj/stored_obj = contents[contents.len] + contents -= stored_obj + user.put_in_hands(stored_obj) + to_chat(user, SPAN_NOTICE("You grab [stored_obj] from [src].")) + playsound(src, "gunequip", 25, TRUE) + update_icon() + +/obj/structure/gun_rack/update_icon() + if(contents.len) + icon_state = "[initial(icon_state)]_[contents.len]" + else + icon_state = "[initial(icon_state)]_0" + +/obj/structure/gun_rack/m41 + allowed_type = /obj/item/weapon/gun/rifle/m41aMK1 + +/obj/structure/gun_rack/type71 + icon_state = "type71" + desc = "Some off-branded gun rack. Per SOF and UPPA regulations, weapons should be stored in secure safes and only given out when necessary. Of course, most (but not all!) units overlook this regulation, only storing their firearms in safes when inspection arrives." + max_stored = 6 + initial_stored = 6 + allowed_type = /obj/item/weapon/gun/rifle/type71 diff --git a/code/modules/cm_marines/equipment/guncases.dm b/code/modules/cm_marines/equipment/guncases.dm index 8ab83116f60..6b2c99553b3 100644 --- a/code/modules/cm_marines/equipment/guncases.dm +++ b/code/modules/cm_marines/equipment/guncases.dm @@ -13,9 +13,9 @@ /obj/item/storage/box/guncase/update_icon() if(LAZYLEN(contents)) - icon_state = "guncase" + icon_state = initial(icon_state) else - icon_state = "guncase_e" + icon_state = "[initial(icon_state)]_e" /obj/item/storage/box/guncase/Initialize() . = ..() @@ -142,13 +142,12 @@ /obj/item/storage/box/guncase/flamer name = "\improper M240 incinerator case" desc = "A gun case containing the M240A1 incinerator unit. It does come loaded, but you'll still have to find extra tanks as you go." - storage_slots = 4 + storage_slots = 3 can_hold = list(/obj/item/weapon/gun/flamer, /obj/item/ammo_magazine/flamer_tank, /obj/item/attachable/attached_gun/extinguisher) /obj/item/storage/box/guncase/flamer/fill_preset_inventory() new /obj/item/weapon/gun/flamer(src) new /obj/item/ammo_magazine/flamer_tank(src) - new /obj/item/ammo_magazine/flamer_tank(src) new /obj/item/attachable/attached_gun/extinguisher(src) //------------ @@ -201,6 +200,7 @@ /obj/item/storage/box/guncase/pumpshotgun name = "\improper M37A2 Pump Shotgun case" desc = "A gun case containing the M37A2 Pump Shotgun." + icon_state = "guncase_red" storage_slots = 4 can_hold = list(/obj/item/weapon/gun/shotgun/pump, /obj/item/ammo_magazine/shotgun/buckshot, /obj/item/ammo_magazine/shotgun/flechette, /obj/item/ammo_magazine/shotgun/slugs) @@ -216,6 +216,13 @@ if(3) new /obj/item/ammo_magazine/shotgun/slugs(src) +/obj/item/storage/box/guncase/pumpshotgun/special + storage_slots = 2 + +/obj/item/storage/box/guncase/pumpshotgun/special/fill_preset_inventory() + new /obj/item/weapon/gun/shotgun/pump(src) + new /obj/item/ammo_magazine/shotgun/buckshot/special(src) + /obj/item/storage/box/guncase/mk45_automag name = "\improper MK-45 Automagnum case" desc = "A gun case containing the MK-45 'High-Power' Automagnum sidearm. While this weapon was rejected as a replacement for the M44 Combat Revolver, it is often back-issued to troops who prefer its powerful bullets over more common sidearms." @@ -323,12 +330,6 @@ /obj/item/pamphlet/trait/vulture, ) -/obj/item/storage/box/guncase/vulture/update_icon() - if(LAZYLEN(contents)) - icon_state = "guncase_blue" - else - icon_state = "guncase_blue_e" - /obj/item/storage/box/guncase/vulture/fill_preset_inventory() var/obj/item/weapon/gun/boltaction/vulture/rifle = new(src) new /obj/item/ammo_magazine/rifle/boltaction/vulture(src) diff --git a/colonialmarines.dme b/colonialmarines.dme index 9b86ad28e6f..38cce11cb25 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -1250,6 +1250,7 @@ #include "code\game\objects\structures\flora.dm" #include "code\game\objects\structures\girders.dm" #include "code\game\objects\structures\grille.dm" +#include "code\game\objects\structures\gun_rack.dm" #include "code\game\objects\structures\ice_caves.dm" #include "code\game\objects\structures\inflatable.dm" #include "code\game\objects\structures\janicart.dm" diff --git a/icons/obj/items/storage.dmi b/icons/obj/items/storage.dmi index 6edbf5b6c7d..42f91cbab07 100644 Binary files a/icons/obj/items/storage.dmi and b/icons/obj/items/storage.dmi differ diff --git a/icons/obj/structures/gun_racks.dmi b/icons/obj/structures/gun_racks.dmi new file mode 100644 index 00000000000..e452fa3c68d Binary files /dev/null and b/icons/obj/structures/gun_racks.dmi differ diff --git a/maps/map_files/chapaev/chapaev.dmm b/maps/map_files/chapaev/chapaev.dmm index 6ff87b77279..7a493f30b4a 100644 --- a/maps/map_files/chapaev/chapaev.dmm +++ b/maps/map_files/chapaev/chapaev.dmm @@ -1532,14 +1532,10 @@ }, /area/golden_arrow/engineering) "pw" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/rifle/type71, -/obj/item/weapon/gun/rifle/type71{ - pixel_y = 10 - }, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/gun_rack/type71, /turf/open/floor/strata{ icon_state = "floor2" }, @@ -1558,11 +1554,14 @@ }, /area/golden_arrow/squad_one) "pz" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/rifle/type71, -/obj/item/weapon/gun/rifle/type71{ - pixel_y = 10 +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/ammo_magazine/minigun{ + name = "GSh-7.62 rotating ammo drum (7.62x51mm)"; + desc = "A huge ammo drum for a huge gun. Your platoon got issued with magazines first which happened several months ago. When will the miniguns come, you wonder?"; + pixel_y = 8; + pixel_x = 6 }, +/obj/item/reagent_container/food/drinks/dry_ramen, /turf/open/floor/strata{ icon_state = "floor2" }, @@ -1801,6 +1800,17 @@ icon_state = "floor3" }, /area/golden_arrow/cryo_cells) +"rv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/supply/ammo/type71, +/obj/structure/largecrate/supply/ammo/type71{ + pixel_x = 3; + pixel_y = 8 + }, +/turf/open/floor/strata{ + icon_state = "floor2" + }, +/area/golden_arrow/squad_one) "rE" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -2969,14 +2979,10 @@ }, /area/golden_arrow/prep_hallway) "CU" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/rifle/type71, -/obj/item/weapon/gun/rifle/type71{ - pixel_y = 10 - }, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/gun_rack/type71, /turf/open/floor/strata{ icon_state = "floor2" }, @@ -4299,6 +4305,10 @@ /obj/item/clothing/accessory/armband{ pixel_x = 6 }, +/obj/item/tool/screwdriver{ + pixel_y = 8; + pixel_x = -9 + }, /turf/open/floor/strata{ dir = 4; icon_state = "floor3" @@ -4358,6 +4368,24 @@ icon_state = "floor3" }, /area/golden_arrow/medical) +"RM" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/attachable/bayonet/upp, +/obj/effect/decal/cleanable/blood/drip{ + layer = 6; + plane = 2.8; + pixel_y = 20 + }, +/obj/effect/decal/cleanable/blood/drip{ + layer = 6; + plane = 2.8; + pixel_y = 16; + pixel_x = -7 + }, +/turf/open/floor/strata{ + icon_state = "floor2" + }, +/area/golden_arrow/squad_one) "RN" = ( /obj/structure/machinery/camera/autoname/golden_arrow{ name = "ship-grade camera"; @@ -4392,10 +4420,20 @@ }, /area/golden_arrow/medical) "Sf" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/rifle/type71, -/obj/item/weapon/gun/rifle/type71{ - pixel_y = 10 +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/ammo_magazine/handful/shotgun/heavy/flechette{ + current_rounds = 1; + pixel_y = 6; + pixel_x = 7 + }, +/obj/item/ammo_magazine/handful/shotgun/heavy{ + pixel_y = 5; + current_rounds = 1 + }, +/obj/item/ammo_magazine/handful/shotgun/heavy/beanbag{ + pixel_y = 5; + pixel_x = -8; + current_rounds = 1 }, /turf/open/floor/strata{ icon_state = "floor2" @@ -4495,16 +4533,23 @@ /turf/closed/wall/strata_outpost/reinforced/hull, /area/golden_arrow/supply) "Tw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/largecrate/supply/ammo/type71, -/obj/structure/largecrate/supply/ammo/type71{ - pixel_x = 4; - pixel_y = 8 +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/reagent_container/food/drinks/cans/boda{ + pixel_x = -6; + pixel_y = 11 + }, +/obj/item/reagent_container/food/drinks/cans/boda{ + pixel_x = 2; + pixel_y = 11 + }, +/obj/item/reagent_container/food/drinks/cans/boda{ + pixel_x = -3; + pixel_y = 24 }, /turf/open/floor/strata{ icon_state = "floor2" }, -/area/golden_arrow/squad_one) +/area/golden_arrow/squad_two) "Tx" = ( /obj/structure/machinery/cryopod, /obj/structure/machinery/camera/autoname/golden_arrow{ @@ -12375,11 +12420,11 @@ tZ tZ tZ ei -uS +RM dU dU dU -IW +rv ww vW vW @@ -12387,11 +12432,11 @@ PL Rm mv NU -Lm +Tw Hp Hp Hp -bw +bR IS IS IS @@ -12831,7 +12876,7 @@ TB VP TB ww -pz +IW dU MH dU @@ -12843,7 +12888,7 @@ es Rm vW NU -Sf +bw Hp Jt Hp @@ -12983,7 +13028,7 @@ uA zU Ar ww -Tw +uS mT Mm TF @@ -12995,7 +13040,7 @@ zb vQ sy NU -bR +Lm OL bc hV diff --git a/maps/map_files/golden_arrow/golden_arrow.dmm b/maps/map_files/golden_arrow/golden_arrow.dmm index fa093c5b8a9..9225f4301d7 100644 --- a/maps/map_files/golden_arrow/golden_arrow.dmm +++ b/maps/map_files/golden_arrow/golden_arrow.dmm @@ -454,6 +454,14 @@ dir = 1 }, /obj/structure/pipes/vents/scrubber, +/obj/structure/surface/table/almayer, +/obj/item/ammo_box/magazine/mk1, +/obj/item/ammo_magazine/rifle/m41aMK1/heap{ + desc = "A long rectangular box of rounds that is only compatible with the older M41A MK1. Holds up to 99 rounds. This one contained High-Explosive Armor-Piercing bullets. It also has some... notches on the side..?"; + current_rounds = 0; + pixel_y = 6; + pixel_x = 13 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -569,6 +577,13 @@ icon_state = "plate" }, /area/golden_arrow/prep_hallway) +"cV" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/guncase/pumpshotgun/special, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/golden_arrow/squad_one) "cZ" = ( /obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access, /turf/open/floor/almayer{ @@ -2474,14 +2489,14 @@ }, /area/golden_arrow/supply) "ot" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/rifle/m41aMK1{ - pixel_y = 7 +/obj/structure/largecrate/supply/ammo{ + name = "sentry crate"; + fill_from_loc = 1 }, -/obj/item/weapon/gun/rifle/m41aMK1, -/obj/item/weapon/gun/rifle/m41aMK1{ - pixel_y = -7 +/obj/item/ammo_magazine/sentry{ + layer = 3.01 }, +/obj/item/defenses/handheld/sentry, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -3259,6 +3274,14 @@ pixel_x = 7; pixel_y = 9 }, +/obj/item/prop/helmetgarb/spent_slug{ + pixel_y = 9; + pixel_x = 8 + }, +/obj/item/prop/helmetgarb/spent_slug{ + pixel_y = 9; + pixel_x = 8 + }, /turf/open/floor/plating/plating_catwalk, /area/golden_arrow/squad_two) "tA" = ( @@ -4069,14 +4092,15 @@ /turf/open/floor/almayer, /area/golden_arrow/synthcloset) "yL" = ( -/obj/structure/closet/coffin/woodencrate, -/obj/item/storage/box/m94, -/obj/item/storage/box/m94, -/obj/item/storage/box/m94, /obj/structure/sign/safety/rewire{ pixel_x = 14; pixel_y = 29 }, +/obj/structure/gun_rack/m41, +/obj/item/ashtray/plastic{ + pixel_y = 14; + pixel_x = 8 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -4500,6 +4524,10 @@ layer = 3.01 }, /obj/item/defenses/handheld/sentry, +/obj/structure/largecrate/supply/ammo{ + name = "sentry crate"; + fill_from_loc = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -4760,16 +4788,15 @@ /turf/open/floor/plating/plating_catwalk, /area/golden_arrow/prep_hallway) "CC" = ( -/obj/structure/surface/rack, -/obj/item/ammo_magazine/flamer_tank, -/obj/item/ammo_magazine/flamer_tank, -/obj/item/weapon/gun/flamer{ - current_mag = null; - pixel_y = 4 +/obj/structure/surface/table/almayer, +/obj/item/storage/box/guncase/flamer, +/obj/item/explosive/grenade/smokebomb{ + pixel_y = 14; + pixel_x = -5 }, -/obj/item/device/motiondetector, -/obj/item/attachable/attached_gun/extinguisher/pyro{ - layer = 3.01 +/obj/item/explosive/grenade/smokebomb{ + pixel_y = 11; + pixel_x = -9 }, /turf/open/floor/almayer{ icon_state = "plate" @@ -4879,6 +4906,19 @@ icon_state = "plate" }, /area/golden_arrow/platoon_sergeant) +"Di" = ( +/obj/structure/surface/table/almayer, +/obj/item/prop/helmetgarb/spent_slug{ + pixel_y = -9; + pixel_x = 8; + name = "spent snailshot"; + layer = 2.7 + }, +/obj/item/storage/box/guncase/pumpshotgun/special, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/golden_arrow/squad_two) "Dl" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin{ @@ -4990,7 +5030,11 @@ /turf/open/floor/almayer, /area/golden_arrow/briefing) "Ei" = ( -/obj/structure/machinery/space_heater, +/obj/structure/surface/table/almayer, +/obj/item/storage/box/guncase/flamer, +/obj/item/trash/cigbutt/cigarbutt{ + pixel_y = 18 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -6109,13 +6153,11 @@ }, /area/golden_arrow/platoon_sergeant) "Kp" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/rifle/m41aMK1{ - pixel_y = 7 - }, -/obj/item/weapon/gun/rifle/m41aMK1, -/obj/item/weapon/gun/rifle/m41aMK1{ - pixel_y = -7 +/obj/structure/largecrate/supply/motiondetectors, +/obj/structure/largecrate/supply/explosives/grenades/less{ + icon_state = "case"; + pixel_y = 10; + pixel_x = 3 }, /turf/open/floor/almayer{ icon_state = "plate" @@ -6311,6 +6353,19 @@ /obj/docking_port/stationary/marine_dropship/golden_arrow_hangar, /turf/open/floor/plating, /area/golden_arrow/hangar) +"Lh" = ( +/obj/structure/sign/poster{ + pixel_y = -8; + pixel_x = -25; + icon_state = "poster15"; + name = "pulse rifle pinup"; + desc = "The Armat Battlefield Systems Model 41 Derivative 'A' Pulse Rifle Mark One. The only pinup you'll ever need." + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/golden_arrow/squad_two) "Ll" = ( /obj/structure/ship_ammo/minirocket/incendiary, /turf/open/floor/almayer{ @@ -6691,12 +6746,14 @@ "ND" = ( /obj/structure/sign/safety/rewire{ pixel_x = 14; - pixel_y = 29 + pixel_y = 29; + layer = 3 }, -/obj/item/ammo_magazine/sentry{ - layer = 3.01 +/obj/structure/gun_rack/m41, +/obj/item/reagent_container/food/drinks/cans/souto/blue{ + pixel_y = 22; + pixel_x = 9 }, -/obj/item/defenses/handheld/sentry, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -7000,16 +7057,12 @@ }, /area/golden_arrow/cryo_cells) "Pm" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/shotgun/pump/special{ - pixel_y = 8 +/obj/structure/largecrate/supply/explosives/grenades/less{ + icon_state = "case" }, -/obj/item/storage/box/nade_box{ - pixel_x = 4; - pixel_y = -2 +/obj/structure/largecrate/supply/motiondetectors{ + pixel_y = 10 }, -/obj/item/ammo_magazine/shotgun/buckshot/special, -/obj/item/device/motiondetector, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -7056,6 +7109,10 @@ icon_state = "plate" }, /area/golden_arrow/hangar) +"Px" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/golden_arrow/squad_two) "Py" = ( /obj/structure/machinery/landinglight/ds1{ dir = 4 @@ -7066,16 +7123,9 @@ }, /area/golden_arrow/hangar) "PA" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/shotgun/pump/special{ - pixel_y = 10 - }, -/obj/item/storage/box/nade_box{ - pixel_x = 2; - pixel_y = -4 - }, -/obj/item/ammo_magazine/shotgun/buckshot/special, -/obj/item/device/motiondetector, +/obj/structure/closet/crate/supply, +/obj/item/storage/box/m94, +/obj/item/storage/box/m94, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -8526,17 +8576,6 @@ }, /area/golden_arrow/supply) "WK" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/flamer{ - current_mag = null; - pixel_y = 4 - }, -/obj/item/ammo_magazine/flamer_tank, -/obj/item/ammo_magazine/flamer_tank, -/obj/item/device/motiondetector, -/obj/item/attachable/attached_gun/extinguisher/pyro{ - layer = 3.01 - }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -8997,6 +9036,8 @@ dir = 1 }, /obj/structure/pipes/vents/scrubber, +/obj/structure/surface/table/almayer, +/obj/item/ammo_box/magazine/mk1, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -15861,9 +15902,9 @@ Cr Cr Qw ot -CC +Lh +pB Pm -ot Qw Cr Cr @@ -16014,8 +16055,8 @@ pt Qw ND Fg -Fg -gd +Px +CC Qw Cr Cr @@ -16167,7 +16208,7 @@ Me Zl DE DR -gd +Di Qw Cr Cr @@ -19661,9 +19702,9 @@ XI wp ZC yL +xf cT -cT -Bu +cV Ty Cr Cr @@ -19812,7 +19853,7 @@ aQ XI wp ZC -Kp +Bu WK PA Kp