diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index ec07d4f853c..34c6987c332 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -505,19 +505,19 @@ pixel_y = 6 }, /obj/item/ammo_box/c10mm, -/obj/item/ammo_box/magazine/m10mm{ +/obj/item/ammo_box/magazine/m9mm{ pixel_x = -5; pixel_y = 5 }, -/obj/item/ammo_box/magazine/m10mm{ +/obj/item/ammo_box/magazine/m9mm{ pixel_x = -2; pixel_y = 2 }, -/obj/item/ammo_box/magazine/m10mm{ +/obj/item/ammo_box/magazine/m9mm{ pixel_x = 1; pixel_y = -1 }, -/obj/item/ammo_box/magazine/m10mm{ +/obj/item/ammo_box/magazine/m9mm{ pixel_x = 4; pixel_y = -4 }, @@ -2452,7 +2452,7 @@ /area/ruin/unpowered/syndicate_lava_base/main) "hM" = ( /obj/structure/table/wood, -/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m9mm, /obj/item/ammo_box/magazine/sniper_rounds, /obj/machinery/airalarm/syndicate{ pixel_y = 24 @@ -2478,7 +2478,7 @@ /area/ruin/unpowered/syndicate_lava_base/dormitories) "hQ" = ( /obj/structure/table/wood, -/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m9mm, /obj/machinery/airalarm/syndicate{ pixel_y = 24 }, @@ -3357,7 +3357,7 @@ /area/ruin/unpowered/syndicate_lava_base/bar) "jA" = ( /obj/structure/table/wood, -/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m9mm, /obj/item/ammo_box/magazine/sniper_rounds, /turf/open/floor/plasteel/grimy, /area/ruin/unpowered/syndicate_lava_base/dormitories) diff --git a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm index 9ba37d0e1b7..bb58578c7d2 100644 --- a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm +++ b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm @@ -696,11 +696,11 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/ammo_box/magazine/m10mm{ +/obj/item/ammo_box/magazine/m9mm_aps{ pixel_x = -3; pixel_y = 3 }, -/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m9mm_aps, /turf/open/floor/plasteel/airless/dark, /area/shuttle/caravan/freighter2) "hX" = ( @@ -1038,7 +1038,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/secure/weapon, -/obj/item/gun/ballistic/automatic/pistol/APS, +/obj/item/gun/ballistic/automatic/pistol/aps, /turf/open/floor/plasteel/airless/dark, /area/shuttle/caravan/freighter2) "js" = ( diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index bdd916d14a9..45f1d3a5927 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -343,12 +343,12 @@ "aW" = ( /obj/structure/closet/cardboard, /obj/effect/turf_decal/delivery, -/obj/item/ammo_box/magazine/pistolm9mm{ +/obj/item/ammo_box/magazine/m9mm{ pixel_x = -3; pixel_y = 3 }, -/obj/item/ammo_box/magazine/pistolm9mm, -/obj/item/ammo_box/magazine/pistolm9mm{ +/obj/item/ammo_box/magazine/m9mm, +/obj/item/ammo_box/magazine/m9mm{ pixel_x = 3; pixel_y = -3 }, diff --git a/_maps/RandomRuins/SpaceRuins/forgottenship.dmm b/_maps/RandomRuins/SpaceRuins/forgottenship.dmm index f5dd927eabb..f8d0de8e665 100644 --- a/_maps/RandomRuins/SpaceRuins/forgottenship.dmm +++ b/_maps/RandomRuins/SpaceRuins/forgottenship.dmm @@ -493,8 +493,8 @@ secure = 1 }, /obj/item/crowbar/red, -/obj/item/ammo_box/magazine/pistolm9mm, -/obj/item/ammo_box/magazine/pistolm9mm, +/obj/item/ammo_box/magazine/m9mm, +/obj/item/ammo_box/magazine/m9mm, /turf/open/floor/carpet/royalblack, /area/ruin/space/has_grav/syndicate_forgotten_ship) "bx" = ( diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm index 1e7ca9f9848..11e776a296e 100644 --- a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm @@ -1101,7 +1101,7 @@ /area/ruin/space/has_grav/listeningstation) "bD" = ( /obj/structure/table/wood, -/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m9mm, /obj/item/paper/fluff/ruins/listeningstation/briefing, /turf/open/floor/plasteel/grimy, /area/ruin/space/has_grav/listeningstation) diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 2aa95211057..d020477dbc1 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -1630,10 +1630,10 @@ /obj/structure/closet/secure_closet/personal/cabinet{ req_access_txt = "150" }, -/obj/item/ammo_box/magazine/m10mm{ +/obj/item/ammo_box/magazine/m9mm{ icon_state = "9x19p-8" }, -/obj/item/ammo_box/magazine/m10mm{ +/obj/item/ammo_box/magazine/m9mm{ icon_state = "9x19p-8" }, /obj/item/suppressor, diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 46931cc1b43..0928b43809f 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -65,6 +65,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define PASSMOB (1<<4) #define PASSCLOSEDTURF (1<<5) #define LETPASSTHROW (1<<6) +#define PASSMACHINE (1<<7) +#define PASSSTRUCTURE (1<<8) //Movement Types #define GROUND (1<<0) diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 101a8234bb6..00cf7d7899e 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -414,6 +414,12 @@ Class Procs: update_icon() updateUsrDialog() +/obj/machinery/CanAllowThrough(atom/movable/mover, turf/target) + . = ..() + + if(mover.pass_flags & PASSMACHINE) + return TRUE + /obj/machinery/proc/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/I) if(!(flags_1 & NODECONSTRUCT_1) && I.tool_behaviour == TOOL_SCREWDRIVER) I.play_tool_sound(src, 50) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index f5b7d2b2440..5c26e92b20d 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -146,6 +146,9 @@ /obj/machinery/door/CanAllowThrough(atom/movable/mover, turf/target) . = ..() + if(.) + return + if(istype(mover) && (mover.pass_flags & PASSGLASS)) return !opacity diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 054b415b041..34612848812 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -48,7 +48,7 @@ w_class = WEIGHT_CLASS_BULKY resistance_flags = FIRE_PROOF item_flags = NO_MAT_REDEMPTION - + /obj/item/storage/backpack/holding name = "bag of holding" desc = "A backpack that opens into a localized pocket of bluespace." @@ -587,9 +587,9 @@ new /obj/item/clothing/under/syndicate/soviet(src) new /obj/item/watertank/op(src) new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src) - new /obj/item/gun/ballistic/automatic/pistol/APS(src) - new /obj/item/ammo_box/magazine/pistolm9mm(src) - new /obj/item/ammo_box/magazine/pistolm9mm(src) + new /obj/item/gun/ballistic/automatic/pistol/aps(src) + new /obj/item/ammo_box/magazine/m9mm_aps/fire(src) + new /obj/item/ammo_box/magazine/m9mm_aps/fire(src) new /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka(src) new /obj/item/reagent_containers/hypospray/medipen/stimulants(src) new /obj/item/grenade/syndieminibomb(src) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 27cbb24615f..6f9a99df7a2 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -121,8 +121,8 @@ if("bond") new /obj/item/gun/ballistic/automatic/pistol(src) new /obj/item/suppressor(src) - new /obj/item/ammo_box/magazine/m10mm(src) - new /obj/item/ammo_box/magazine/m10mm(src) + new /obj/item/ammo_box/magazine/m9mm(src) + new /obj/item/ammo_box/magazine/m9mm(src) new /obj/item/clothing/under/chameleon(src) new /obj/item/card/id/syndicate(src) new /obj/item/reagent_containers/hypospray/medipen/stimulants(src) diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 90e411ebac1..c86f835dfdc 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -113,6 +113,12 @@ if(examine_status) . += examine_status +/obj/structure/CanAllowThrough(atom/movable/mover, turf/target) + . = ..() + + if(mover.pass_flags & PASSSTRUCTURE) + return TRUE + /obj/structure/proc/examine_status(mob/user) //An overridable proc, mostly for falsewalls. var/healthpercent = (obj_integrity/max_integrity) * 100 switch(healthpercent) diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 05f07ecdc46..ecc95c6eb45 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -12,7 +12,7 @@ new /obj/item/clothing/under/syndicate/skirt(src) new /obj/item/clothing/shoes/sneakers/black(src) new /obj/item/radio/headset/syndicate(src) - new /obj/item/ammo_box/magazine/m10mm(src) + new /obj/item/ammo_box/magazine/m9mm(src) new /obj/item/storage/belt/military(src) new /obj/item/crowbar/red(src) new /obj/item/clothing/glasses/night(src) @@ -23,7 +23,7 @@ /obj/structure/closet/syndicate/nuclear/PopulateContents() for(var/i in 1 to 5) - new /obj/item/ammo_box/magazine/m10mm(src) + new /obj/item/ammo_box/magazine/m9mm(src) new /obj/item/storage/box/flashbangs(src) new /obj/item/storage/box/teargas(src) new /obj/item/storage/backpack/duffelbag/syndie/med(src) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 4b5cb78c714..0f6c2424fa9 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -700,6 +700,10 @@ suit = /obj/item/clothing/suit/armor/vest/capcarapace/syndicate head = /obj/item/clothing/head/HoS/beret/syndicate ears = /obj/item/radio/headset/syndicate/alt/leader - l_pocket = /obj/item/gun/ballistic/automatic/pistol/APS + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + back = /obj/item/storage/backpack + r_pocket = /obj/item/kitchen/knife/combat/survival + belt = /obj/item/storage/belt/military/assault id = /obj/item/card/id/syndicate_command/captain_id - backpack_contents = list(/obj/item/documents/syndicate/red, /obj/item/paper/fluff/ruins/forgottenship/password) + backpack_contents = list(/obj/item/documents/syndicate/red, /obj/item/paper/fluff/ruins/forgottenship/password, /obj/item/gun/ballistic/automatic/pistol/aps) diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index af96a3b08c3..77c5f13489a 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -65,7 +65,7 @@ rapid = 3 casingtype = /obj/item/ammo_casing/c9mm loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged/officer, - /obj/item/gun/ballistic/automatic/pistol/APS) + /obj/item/gun/ballistic/automatic/pistol/aps) /mob/living/simple_animal/hostile/russian/ranged/officer/Aggro() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 7ec2c1e24b2..0155b62f03a 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -173,7 +173,7 @@ minimum_distance = 5 icon_state = "syndicate_pistol" icon_living = "syndicate_pistol" - casingtype = /obj/item/ammo_casing/c10mm + casingtype = /obj/item/ammo_casing/c9mm projectilesound = 'sound/weapons/gun/pistol/shot.ogg' loot = list(/obj/effect/gibspawner/human) dodging = FALSE diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index 01e37e4d6ff..a7e0cbeacc6 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -1,4 +1,4 @@ -// 10mm (Stechkin) +// 10mm /obj/item/ammo_casing/c10mm name = "10mm bullet casing" @@ -21,7 +21,7 @@ desc = "A 10mm incendiary bullet casing." projectile_type = /obj/projectile/bullet/incendiary/c10mm -// 9mm (Stechkin APS) +// 9mm (Makarov and Stechkin APS) /obj/item/ammo_casing/c9mm name = "9mm bullet casing" @@ -33,8 +33,13 @@ name = "9mm armor-piercing bullet casing" desc = "A 9mm armor-piercing bullet casing." projectile_type =/obj/projectile/bullet/c9mm_ap + +/obj/item/ammo_casing/c9mm/hp + name = "9mm hollow-point bullet casing" + desc = "A 10mm hollow-point bullet casing." + projectile_type = /obj/projectile/bullet/c9mm_hp -/obj/item/ammo_casing/c9mm/inc +/obj/item/ammo_casing/c9mm/fire name = "9mm incendiary bullet casing" desc = "A 9mm incendiary bullet casing." projectile_type = /obj/projectile/bullet/incendiary/c9mm diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index 31292cfac06..bd8134174b6 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -18,6 +18,11 @@ caliber = "a556" projectile_type = /obj/projectile/bullet/a556 +/obj/item/ammo_casing/a556/phasic + name = "5.56mm phasic bullet casing" + desc = "A 5.56mm phasic bullet casing." + projectile_type = /obj/projectile/bullet/a556/phasic + // 40mm (Grenade Launcher) /obj/item/ammo_casing/a40mm diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index 5c6220f59f2..2e439be6bab 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -23,3 +23,15 @@ desc = "A .45 bullet casing." caliber = ".45" projectile_type = /obj/projectile/bullet/c45 + +/obj/item/ammo_casing/c45/ap + name = ".45 armor-piercing bullet casing" + desc = "A .45 bullet casing." + caliber = ".45" + projectile_type = /obj/projectile/bullet/c45_ap + +/obj/item/ammo_casing/c45/inc + name = ".45 armor-piercing bullet casing" + desc = "A .45 bullet casing." + caliber = ".45" + projectile_type = /obj/projectile/bullet/incendiary/c45 diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm index 68cc44bdaef..5f3439b4d8d 100644 --- a/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -7,24 +7,6 @@ max_ammo = 8 multiple_sprites = AMMO_BOX_FULL_EMPTY -/obj/item/ammo_box/magazine/m10mm/fire - name = "pistol magazine (10mm incendiary)" - icon_state = "9x19pI" - desc = "A gun magazine. Loaded with rounds which ignite the target." - ammo_type = /obj/item/ammo_casing/c10mm/fire - -/obj/item/ammo_box/magazine/m10mm/hp - name = "pistol magazine (10mm HP)" - icon_state = "9x19pH" - desc= "A gun magazine. Loaded with hollow-point rounds, extremely effective against unarmored targets, but nearly useless against protective clothing." - ammo_type = /obj/item/ammo_casing/c10mm/hp - -/obj/item/ammo_box/magazine/m10mm/ap - name = "pistol magazine (10mm AP)" - icon_state = "9x19pA" - desc= "A gun magazine. Loaded with rounds which penetrate armour, but are less effective against normal targets." - ammo_type = /obj/item/ammo_casing/c10mm/ap - /obj/item/ammo_box/magazine/m45 name = "handgun magazine (.45)" icon_state = "45-8" @@ -39,17 +21,61 @@ else icon_state = "45-[ammo_count()]" -/obj/item/ammo_box/magazine/pistolm9mm +/obj/item/ammo_box/magazine/m9mm name = "pistol magazine (9mm)" icon_state = "9x19p-8" ammo_type = /obj/item/ammo_casing/c9mm caliber = "9mm" - max_ammo = 15 + max_ammo = 8 -/obj/item/ammo_box/magazine/pistolm9mm/update_icon() +/obj/item/ammo_box/magazine/m9mm/update_icon() ..() icon_state = "9x19p-[ammo_count() ? "8" : "0"]" +/obj/item/ammo_box/magazine/m9mm/fire + name = "pistol magazine (9mm incendiary)" + icon_state = "9x19pI" + desc = "A gun magazine. Loaded with rounds which ignite the target." + ammo_type = /obj/item/ammo_casing/c9mm/fire + +/obj/item/ammo_box/magazine/m9mm/hp + name = "pistol magazine (9mm HP)" + icon_state = "9x19pH" + desc= "A gun magazine. Loaded with hollow-point rounds, extremely effective against unarmored targets, but nearly useless against protective clothing." + ammo_type = /obj/item/ammo_casing/c9mm/hp + +/obj/item/ammo_box/magazine/m9mm/ap + name = "pistol magazine (9mm AP)" + icon_state = "9x19pA" + desc= "A gun magazine. Loaded with rounds which penetrate armour, but are less effective against normal targets." + ammo_type = /obj/item/ammo_casing/c9mm/ap + +/obj/item/ammo_box/magazine/m9mm_aps + name = "stechkin pistol magazine (9mm)" + icon_state = "9mmaps-15" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 15 + +/obj/item/ammo_box/magazine/m9mm_aps/update_icon() + . = ..() + icon_state = "9mmaps-[round(ammo_count(),5)]" + +/obj/item/ammo_box/magazine/m9mm_aps/fire + name = "stechkin pistol magazine (9mm incendiary)" + ammo_type = /obj/item/ammo_casing/c9mm/fire + max_ammo = 15 + +/obj/item/ammo_box/magazine/m9mm_aps/hp + name = "stechkin pistol magazine (9mm HP)" + ammo_type = /obj/item/ammo_casing/c9mm/hp + max_ammo = 15 + +/obj/item/ammo_box/magazine/m9mm_aps/ap + name = "stechkin pistol magazine (9mm AP)" + ammo_type = /obj/item/ammo_casing/c9mm/ap + max_ammo = 15 + /obj/item/ammo_box/magazine/m50 name = "handgun magazine (.50ae)" icon_state = "50ae" diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm index 4e8655bb1c0..52f0cd6e233 100644 --- a/code/modules/projectiles/boxes_magazines/external/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm @@ -20,3 +20,7 @@ caliber = "a556" max_ammo = 30 multiple_sprites = AMMO_BOX_FULL_EMPTY + +/obj/item/ammo_box/magazine/m556/phasic + name = "toploader magazine (5.56mm Phasic)" + ammo_type = /obj/item/ammo_casing/a556/phasic diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm index 55849a2b10b..4c399f1e4de 100644 --- a/code/modules/projectiles/boxes_magazines/external/smg.dm +++ b/code/modules/projectiles/boxes_magazines/external/smg.dm @@ -55,7 +55,7 @@ /obj/item/ammo_box/magazine/smgm9mm/fire name = "SMG Magazine (Incendiary 9mm)" - ammo_type = /obj/item/ammo_casing/c9mm/inc + ammo_type = /obj/item/ammo_casing/c9mm/fire /obj/item/ammo_box/magazine/smgm45 name = "SMG magazine (.45)" @@ -68,6 +68,14 @@ ..() icon_state = "c20r45-[round(ammo_count(),2)]" +/obj/item/ammo_box/magazine/smgm45/ap + name = "SMG magazine (Armour Piercing .45)" + ammo_type = /obj/item/ammo_casing/c45/ap + +/obj/item/ammo_box/magazine/smgm45/incen + name = "SMG magazine (Incendiary .45)" + ammo_type = /obj/item/ammo_casing/c45/inc + /obj/item/ammo_box/magazine/tommygunm45 name = "drum magazine (.45)" icon_state = "drum45" diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index d485ec85dd4..e856043572a 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -62,7 +62,7 @@ item_state = "c20r" mag_type = /obj/item/ammo_box/magazine/smgm45 fire_delay = 2 - burst_size = 2 + burst_size = 3 pin = /obj/item/firing_pin/implant/pindicate can_bayonet = TRUE knife_x_offset = 26 @@ -115,6 +115,7 @@ var/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel burst_size = 3 fire_delay = 2 + spread = 5 pin = /obj/item/firing_pin/implant/pindicate mag_display = TRUE empty_indicator = TRUE diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index ba5436c1bb7..e3cf79c3faf 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -1,9 +1,9 @@ /obj/item/gun/ballistic/automatic/pistol - name = "stechkin pistol" - desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors." + name = "makarov pistol" + desc = "A small, easily concealable 9mm handgun. Has a threaded barrel for suppressors." icon_state = "pistol" w_class = WEIGHT_CLASS_SMALL - mag_type = /obj/item/ammo_box/magazine/m10mm + mag_type = /obj/item/ammo_box/magazine/m9mm can_suppress = TRUE burst_size = 1 fire_delay = 0 @@ -42,7 +42,7 @@ rack_sound = 'sound/weapons/gun/pistol/rack.ogg' lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg' - + /obj/item/gun/ballistic/automatic/pistol/m1911/no_mag spawnwithmagazine = FALSE @@ -58,7 +58,7 @@ rack_sound = 'sound/weapons/gun/pistol/rack.ogg' lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg' - + /obj/item/gun/ballistic/automatic/pistol/deagle/gold desc = "A gold plated Desert Eagle folded over a million times by superior martian gunsmiths. Uses .50 AE ammo." icon_state = "deagleg" @@ -69,15 +69,16 @@ icon_state = "deaglecamo" item_state = "deagleg" -/obj/item/gun/ballistic/automatic/pistol/APS - name = "stechkin APS pistol" - desc = "The original Russian version of a widely used Syndicate sidearm. Uses 9mm ammo." +/obj/item/gun/ballistic/automatic/pistol/aps + name = "stechkin APS machine pistol" + desc = "An old Soviet machine pistol. It fires quickly, but kicks like a mule. Uses 9mm ammo. Has a threaded barrel for suppressors." icon_state = "aps" - w_class = WEIGHT_CLASS_SMALL - mag_type = /obj/item/ammo_box/magazine/pistolm9mm - can_suppress = FALSE + w_class = WEIGHT_CLASS_NORMAL + mag_type = /obj/item/ammo_box/magazine/m9mm_aps + can_suppress = TRUE burst_size = 3 - fire_delay = 2 + fire_delay = 1 + spread = 10 actions_types = list(/datum/action/item_action/toggle_firemode) /obj/item/gun/ballistic/automatic/pistol/stickman diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 56a6284a55c..9700012dd1b 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -59,7 +59,7 @@ damage = 15 irradiate = 300 range = 15 - pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF + pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser light_color = LIGHT_COLOR_GREEN diff --git a/code/modules/projectiles/projectile/bullets/pistol.dm b/code/modules/projectiles/projectile/bullets/pistol.dm index e24d9f6275c..eb7a2598af4 100644 --- a/code/modules/projectiles/projectile/bullets/pistol.dm +++ b/code/modules/projectiles/projectile/bullets/pistol.dm @@ -1,36 +1,41 @@ -// 9mm (Stechkin APS) +// 9mm (Makarov and Stechkin APS) /obj/projectile/bullet/c9mm name = "9mm bullet" - damage = 20 + damage = 30 /obj/projectile/bullet/c9mm_ap name = "9mm armor-piercing bullet" - damage = 15 + damage = 27 armour_penetration = 40 +/obj/projectile/bullet/c9mm_hp + name = "9mm hollow-point bullet" + damage = 40 + armour_penetration = -50 + /obj/projectile/bullet/incendiary/c9mm name = "9mm incendiary bullet" - damage = 10 - fire_stacks = 1 + damage = 15 + fire_stacks = 2 -// 10mm (Stechkin) +// 10mm /obj/projectile/bullet/c10mm name = "10mm bullet" - damage = 30 + damage = 40 /obj/projectile/bullet/c10mm_ap name = "10mm armor-piercing bullet" - damage = 27 + damage = 37 armour_penetration = 40 /obj/projectile/bullet/c10mm_hp name = "10mm hollow-point bullet" - damage = 40 + damage = 60 armour_penetration = -50 /obj/projectile/bullet/incendiary/c10mm name = "10mm incendiary bullet" - damage = 15 + damage = 20 fire_stacks = 2 diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index ea60a4219a7..0e3a732f6c3 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -3,6 +3,14 @@ /obj/projectile/bullet/a556 name = "5.56mm bullet" damage = 35 + armour_penetration = 30 + +/obj/projectile/bullet/a556/phasic + name = "5.56mm phasic bullet" + icon_state = "gaussphase" + damage = 20 + armour_penetration = 70 + pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE // 7.62 (Nagant Rifle) diff --git a/code/modules/projectiles/projectile/bullets/smg.dm b/code/modules/projectiles/projectile/bullets/smg.dm index 5be2031497d..37f420ac0ea 100644 --- a/code/modules/projectiles/projectile/bullets/smg.dm +++ b/code/modules/projectiles/projectile/bullets/smg.dm @@ -2,7 +2,17 @@ /obj/projectile/bullet/c45 name = ".45 bullet" + damage = 35 + +/obj/projectile/bullet/c45_ap + name = ".45 armor-piercing bullet" damage = 30 + armour_penetration = 50 + +/obj/projectile/bullet/incendiary/c45 + name = ".45 incendiary bullet" + damage = 15 + fire_stacks = 2 // 4.6x30mm (Autorifles) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 73cfac27a69..7aa2083d0ce 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -190,7 +190,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/bundles_TC/firestarter name = "Spetsnaz Pyro bundle" desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal New Russian backpack spray, Elite hardsuit, \ - Stechkin APS pistol, two magazines, a minibomb and a stimulant syringe. \ + Stechkin APS machine pistol, two incendiary magazines, a minibomb and a stimulant syringe. \ Order NOW and comrade Boris will throw in an extra tracksuit." item = /obj/item/storage/backpack/duffelbag/syndie/firestarter cost = 30 @@ -398,7 +398,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ 24-round magazine and is compatible with suppressors." item = /obj/item/gun/ballistic/automatic/c20r - cost = 10 + cost = 13 surplus = 40 include_modes = list(/datum/game_mode/nuclear) @@ -493,13 +493,22 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/dangerous/pistol - name = "Stechkin Pistol" - desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ + name = "Makarov Pistol" + desc = "A small, easily concealable handgun that uses 9mm auto rounds in 8-round magazines and is compatible \ with suppressors." item = /obj/item/gun/ballistic/automatic/pistol cost = 7 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/dangerous/aps + name = "Stechkin APS Machine Pistol" + desc = "A ancient Soviet machine pistol, refurbished for the modern age. Uses 9mm auto rounds in 15-round magazines and is compatible \ + with suppressors. The gun fires in three round bursts." + item = /obj/item/gun/ballistic/automatic/pistol/aps + cost = 10 + include_modes = list(/datum/game_mode/nuclear) + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + /datum/uplink_item/dangerous/bolt_action name = "Surplus Rifle" desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." @@ -642,7 +651,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/stealthy_weapons/suppressor name = "Suppressor" - desc = "This suppressor will silence the shots of the weapon it is attached to for increased stealth and superior ambushing capability. It is compatible with many small ballistic guns including the Stechkin and C-20r, but not revolvers or energy guns." + desc = "This suppressor will silence the shots of the weapon it is attached to for increased stealth and superior ambushing capability. It is compatible with many small ballistic guns including the Makarov, Stechkin APS and C-20r, but not revolvers or energy guns." item = /obj/item/suppressor cost = 3 surplus = 10 @@ -660,36 +669,43 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 40 /datum/uplink_item/ammo/pistol - name = "10mm Handgun Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol." - item = /obj/item/ammo_box/magazine/m10mm + name = "9mm Handgun Magazine" + desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol." + item = /obj/item/ammo_box/magazine/m9mm cost = 1 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) /datum/uplink_item/ammo/pistolap name = "10mm Armour Piercing Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol. \ These rounds are less effective at injuring the target but penetrate protective gear." - item = /obj/item/ammo_box/magazine/m10mm/ap + item = /obj/item/ammo_box/magazine/m9mm/ap cost = 2 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) /datum/uplink_item/ammo/pistolhp name = "10mm Hollow Point Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol. \ These rounds are more damaging but ineffective against armour." - item = /obj/item/ammo_box/magazine/m10mm/hp + item = /obj/item/ammo_box/magazine/m9mm/hp cost = 3 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) /datum/uplink_item/ammo/pistolfire name = "10mm Incendiary Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol. \ Loaded with incendiary rounds which inflict little damage, but ignite the target." - item = /obj/item/ammo_box/magazine/m10mm/fire + item = /obj/item/ammo_box/magazine/m9mm/fire cost = 2 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/ammo/pistolaps + name = "9mm Stechkin APS Magazine" + desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS machine pistol." + item = /obj/item/ammo_box/magazine/m9mm_aps + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + /datum/uplink_item/ammo/shotgun cost = 2 include_modes = list(/datum/game_mode/nuclear) @@ -757,6 +773,22 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 3 include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/ammo/smgap + name = ".45 Armor Piercing SMG Magazine" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun.\ + These rounds are less effective at injuring the target but penetrate protective gear." + item = /obj/item/ammo_box/magazine/smgm45/ap + cost = 5 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/smgfire + name = ".45 Incendiary SMG Magazine" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun.\ + Loaded with incendiary rounds which inflict little damage, but ignite the target." + item = /obj/item/ammo_box/magazine/smgm45/incen + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + /datum/uplink_item/ammo/sniper cost = 4 include_modes = list(/datum/game_mode/nuclear) @@ -782,11 +814,20 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/ammo/carbine name = "5.56mm Toploader Magazine" desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ - These bullets pack less punch than 7.12x82mm rounds, but they still offer more power than .45 ammo." + These bullets pack less punch than 7.12x82mm rounds, but they still offer more power than .45 ammo due to their innate armour penetration." item = /obj/item/ammo_box/magazine/m556 cost = 4 include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/ammo/carbinephase + name = "5.56mm Toploader Phasic Magazine" + desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ + These bullets are made from an experimental alloy, 'Ghost Lead', that allows it to pass through almost any non-organic material. \ + The name is a misnomer. It doesn't contain any lead whatsoever!" + item = /obj/item/ammo_box/magazine/m556/phasic + cost = 8 + include_modes = list(/datum/game_mode/nuclear) + /datum/uplink_item/ammo/machinegun cost = 6 surplus = 0 @@ -840,13 +881,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/ammo_casing/caseless/rocket/hedp cost = 6 -/datum/uplink_item/ammo/pistolaps - name = "9mm Handgun Magazine" - desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS pistol, found in the Spetsnaz Pyro bundle." - item = /obj/item/ammo_box/magazine/pistolm9mm - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - /datum/uplink_item/ammo/toydarts name = "Box of Riot Darts" desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!" diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 27134233a83..9eccfe62533 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index d0843c100f2..06d590a9c6d 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 58e822986eb..37f1a216c16 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ