diff --git a/code/__DEFINES/calibers.dm b/code/__DEFINES/calibers.dm index d50f7af0e4c99..abcc43c7e1fc9 100644 --- a/code/__DEFINES/calibers.dm +++ b/code/__DEFINES/calibers.dm @@ -48,6 +48,7 @@ // --- Shotguns --- #define CALIBER_12G "12 gauge" +#define CALIBER_6G "6 gauge" #define CALIBER_410 ".410 bore" // --- Snipers --- diff --git a/code/datums/jobs/job/icc.dm b/code/datums/jobs/job/icc.dm index 1bb8ca8da9d0a..6d71c5fe1de3c 100644 --- a/code/datums/jobs/job/icc.dm +++ b/code/datums/jobs/job/icc.dm @@ -354,8 +354,8 @@ H.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_ACCESSORY) H.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_ACCESSORY) -/datum/outfit/job/icc/leader/trenchgun - suit_store = /obj/item/weapon/gun/shotgun/pump/trenchgun/icc_leader +/datum/outfit/job/icc/leader/ml101 + suit_store = /obj/item/weapon/gun/shotgun/pump/icc_heavyshotgun/icc_leader belt = /obj/item/storage/belt/shotgun/icc/mixed /datum/outfit/job/icc/leader/icc_confrontationrifle diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index ec3803a99a69a..7a7bf99b90e3d 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -711,20 +711,20 @@ /obj/item/storage/belt/shotgun/icc/mixed/Initialize(mapload, ...) . = ..() - new /obj/item/ammo_magazine/handful/buckshot(src) - new /obj/item/ammo_magazine/handful/buckshot(src) - new /obj/item/ammo_magazine/handful/buckshot(src) - new /obj/item/ammo_magazine/handful/buckshot(src) - new /obj/item/ammo_magazine/handful/buckshot(src) - new /obj/item/ammo_magazine/handful/buckshot(src) - new /obj/item/ammo_magazine/handful/buckshot(src) - new /obj/item/ammo_magazine/handful/flechette(src) - new /obj/item/ammo_magazine/handful/flechette(src) - new /obj/item/ammo_magazine/handful/flechette(src) - new /obj/item/ammo_magazine/handful/flechette(src) - new /obj/item/ammo_magazine/handful/flechette(src) - new /obj/item/ammo_magazine/handful/flechette(src) - new /obj/item/ammo_magazine/handful/flechette(src) + new /obj/item/ammo_magazine/handful/heavy_buckshot(src) + new /obj/item/ammo_magazine/handful/heavy_buckshot(src) + new /obj/item/ammo_magazine/handful/heavy_buckshot(src) + new /obj/item/ammo_magazine/handful/heavy_buckshot(src) + new /obj/item/ammo_magazine/handful/heavy_buckshot(src) + new /obj/item/ammo_magazine/handful/heavy_buckshot(src) + new /obj/item/ammo_magazine/handful/heavy_buckshot(src) + new /obj/item/ammo_magazine/handful/barrikada(src) + new /obj/item/ammo_magazine/handful/barrikada(src) + new /obj/item/ammo_magazine/handful/barrikada(src) + new /obj/item/ammo_magazine/handful/barrikada(src) + new /obj/item/ammo_magazine/handful/barrikada(src) + new /obj/item/ammo_magazine/handful/barrikada(src) + new /obj/item/ammo_magazine/handful/barrikada(src) /obj/item/storage/belt/shotgun/martini name = "martini henry ammo belt" diff --git a/code/game/objects/machinery/vending/marine_vending.dm b/code/game/objects/machinery/vending/marine_vending.dm index 4a12563edce8e..c5fa1c06cca35 100644 --- a/code/game/objects/machinery/vending/marine_vending.dm +++ b/code/game/objects/machinery/vending/marine_vending.dm @@ -1693,6 +1693,9 @@ /obj/item/weapon/gun/rifle/icc_autoshotgun = -1, /obj/item/ammo_magazine/rifle/icc_autoshotgun = -1, /obj/item/ammo_magazine/rifle/icc_autoshotgun/frag = -1, + /obj/item/weapon/gun/shotgun/pump/icc_heavyshotgun = -1, + /obj/item/ammo_magazine/shotgun/heavy_buckshot = -1, + /obj/item/ammo_magazine/shotgun/barrikada = -1, /obj/item/weapon/gun/shotgun/pump/trenchgun = -1, /obj/item/weapon/gun/rifle/icc_assaultcarbine = -1, /obj/item/weapon/gun/rifle/icc_assaultcarbine/export = -1, diff --git a/code/modules/projectiles/ammo_types/shotgun_ammo.dm b/code/modules/projectiles/ammo_types/shotgun_ammo.dm index 48420d26405ed..d23857c9d5baf 100644 --- a/code/modules/projectiles/ammo_types/shotgun_ammo.dm +++ b/code/modules/projectiles/ammo_types/shotgun_ammo.dm @@ -171,6 +171,48 @@ /datum/ammo/bullet/shotgun/sx16_buckshot/spread name = "additional buckshot" +/datum/ammo/bullet/shotgun/heavy_buckshot + name = "heavy buckshot shell" + handful_icon_state = "heavy_shotgun_buckshot" + icon_state = "buckshot" + hud_state = "shotgun_buckshot" + bonus_projectiles_type = /datum/ammo/bullet/shotgun/heavy_spread + bonus_projectiles_amount = 5 + bonus_projectiles_scatter = 4 + accuracy_var_low = 9 + accuracy_var_high = 9 + accurate_range = 3 + max_range = 10 + damage = 50 + damage_falloff = 4 + +/datum/ammo/bullet/shotgun/heavy_buckshot/on_hit_mob(mob/target_mob, obj/projectile/proj) + staggerstun(target_mob, proj, weaken = 2 SECONDS, stagger = 2 SECONDS, knockback = 2, slowdown = 0.5, max_range = 3) + +/datum/ammo/bullet/shotgun/barrikada_slug + name = "heavy metal slug" + handful_icon_state = "heavy_shotgun_barrikada" + hud_state = "shotgun_slug" + ammo_behavior_flags = AMMO_BALLISTIC + shell_speed = 4 + max_range = 15 + damage = 125 + penetration = 50 + sundering = 15 + +/datum/ammo/bullet/shotgun/barrikada/on_hit_mob(mob/target_mob, obj/projectile/proj) + staggerstun(target_mob, proj, slowdown = 2, stagger = 3 SECONDS, knockback = 2) + +/datum/ammo/bullet/shotgun/heavy_spread + name = "additional buckshot" + icon_state = "buckshot" + accuracy_var_low = 9 + accuracy_var_high = 9 + accurate_range = 3 + max_range = 10 + damage = 50 + damage_falloff = 4 + /datum/ammo/bullet/shotgun/sx16_flechette name = "shotgun flechette shell" handful_icon_state = "shotgun_flechette" diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index b41de617a6505..9fa67f01053c3 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -263,6 +263,21 @@ default_ammo = /datum/ammo/bullet/shotgun/incendiary caliber = CALIBER_12G +/obj/item/ammo_magazine/handful/heavy_buckshot + name = "handful of shotgun buckshot shells (6g)" + icon_state = "heavy_shotgun_buckshot" + current_rounds = 5 + default_ammo = /datum/ammo/bullet/shotgun/heavy_buckshot + caliber = CALIBER_6G + +/obj/item/ammo_magazine/handful/barrikada + name = "handful of shotgun 'Barrikada' shells (6g)" + icon_state = "heavy_shotgun_barrikada" + current_rounds = 5 + default_ammo = /datum/ammo/bullet/shotgun/barrikada_slug + caliber = CALIBER_6G + + /obj/item/ammo_magazine/handful/martini name = "The handful of crude heavy sniper bullet (.557/440)" icon_state = "crude_heavy_sniper" diff --git a/code/modules/projectiles/gun_attachables/stock.dm b/code/modules/projectiles/gun_attachables/stock.dm index 79822a58ed162..ac9be4075735c 100644 --- a/code/modules/projectiles/gun_attachables/stock.dm +++ b/code/modules/projectiles/gun_attachables/stock.dm @@ -109,6 +109,13 @@ pixel_shift_x = 32 pixel_shift_y = 13 +/obj/item/attachable/stock/icc_heavyshotgun + name = "\improper ML-101 stock" + desc = "A irremovable ML-101 stock." + icon_state = "ml101" + pixel_shift_x = 32 + pixel_shift_y = 13 + /obj/item/attachable/stock/icc_pdw name = "\improper L-40 stock" desc = "A irremovable L-40 stock." diff --git a/code/modules/projectiles/guns/shotguns.dm b/code/modules/projectiles/guns/shotguns.dm index a80e1f0a0e076..6e29838f29bf1 100644 --- a/code/modules/projectiles/guns/shotguns.dm +++ b/code/modules/projectiles/guns/shotguns.dm @@ -383,6 +383,63 @@ /obj/item/attachable/compensator, ) +//------------------------------------------------------ +// ML-101 Heavy Shotgun + +/obj/item/weapon/gun/shotgun/pump/icc_heavyshotgun + name = "\improper ML-101 heavy pump shotgun" + desc = "Curiously using a rifled barrel in a shotgun. The ML-101 shotgun is used by ICC personnel forces to devastate targets at close range. Uses 6 gauge shells.\nRequires a pump, which is the Unique Action key." + equip_slot_flags = ITEM_SLOT_BACK + icon = 'icons/obj/items/guns/shotguns64.dmi' + icon_state = "ks23" + worn_icon_state = "ks23" + caliber = CALIBER_6G //codex + default_ammo_type = /datum/ammo/bullet/shotgun/heavy_buckshot + fire_sound = 'sound/weapons/guns/fire/ks23.ogg' + reload_sound = 'sound/weapons/guns/interact/ks23_insert.ogg' + cocked_sound = 'sound/weapons/guns/interact/ks23_pump.ogg' + max_chamber_items = 5 + attachable_allowed = list( + /obj/item/attachable/bayonet, + /obj/item/attachable/bayonetknife, + /obj/item/attachable/bayonetknife/som, + /obj/item/attachable/reddot, + /obj/item/attachable/verticalgrip, + /obj/item/attachable/angledgrip, + /obj/item/attachable/gyro, + /obj/item/attachable/flashlight, + /obj/item/attachable/flashlight/under, + /obj/item/attachable/extended_barrel, + /obj/item/attachable/heavy_barrel, + /obj/item/attachable/compensator, + /obj/item/attachable/magnetic_harness, + /obj/item/attachable/stock/icc_heavyshotgun, + /obj/item/attachable/motiondetector, + ) + + attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 18,"rail_x" = 9, "rail_y" = 21, "under_x" = 18, "under_y" = 12, "stock_x" = 0, "stock_y" = 12) + item_map_variant_flags = NONE + + starting_attachment_types = list( + /obj/item/attachable/stock/icc_heavyshotgun, + ) + + fire_delay = 2.75 SECONDS + scatter_unwielded = 10 + recoil = 0 // It has a stock. It's on the sprite. + recoil_unwielded = 0 + aim_slowdown = 0.65 + wield_delay = 0.95 SECONDS + cock_delay = 1.4 SECONDS + damage_falloff_mult = 0.5 // Rifled barrel, also has more slug variety + +/obj/item/weapon/gun/shotgun/pump/icc_heavyshotgun/icc_leader + starting_attachment_types = list( + /obj/item/attachable/stock/icc_heavyshotgun, + /obj/item/attachable/magnetic_harness, + /obj/item/attachable/compensator, + ) + //------------------------------------------------------ //A hacky bolt action rifle. in here for the "pump" or bolt working action. diff --git a/code/modules/projectiles/magazines/shotguns.dm b/code/modules/projectiles/magazines/shotguns.dm index eb48ae93e3062..1b5703a51f5f6 100644 --- a/code/modules/projectiles/magazines/shotguns.dm +++ b/code/modules/projectiles/magazines/shotguns.dm @@ -126,3 +126,19 @@ one type of shotgun ammo, but I think it helps in referencing it. ~N icon_state = "mbx900_tracker" default_ammo = /datum/ammo/bullet/shotgun/mbx900_tracker icon_state_mini = "mbx900_tracker" + +/obj/item/ammo_magazine/shotgun/heavy_buckshot + name = "box of 6 gauge buckshot shells" + desc = "A box filled with buckshot spread shotgun shells. 6 Gauge." + caliber = CALIBER_6G + icon_state = "heavy_shotgun_buckshot" + default_ammo = /datum/ammo/bullet/shotgun/heavy_buckshot + icon_state_mini = "buckshot" + +/obj/item/ammo_magazine/shotgun/barrikada + name = "box of 6 gauge 'Barrikada' shells" + desc = "A box filled with high velocity shotgun slugs nicknamed 'Barrikada'. Rated to break through basically everything up to including tank engines. 6 Gauge." + caliber = CALIBER_6G + icon_state = "heavy_shotgun_barrikada" + default_ammo = /datum/ammo/bullet/shotgun/barrikada_slug + icon_state_mini = "buckshot" diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index 06cf01602a16c..e6359c8e2bb0e 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/inhands/guns/shotguns_left_1.dmi b/icons/mob/inhands/guns/shotguns_left_1.dmi index ba5218f94aad0..d7831bdbd74f3 100644 Binary files a/icons/mob/inhands/guns/shotguns_left_1.dmi and b/icons/mob/inhands/guns/shotguns_left_1.dmi differ diff --git a/icons/mob/inhands/guns/shotguns_right_1.dmi b/icons/mob/inhands/guns/shotguns_right_1.dmi index 23678a0bda771..15ccf620c9fa5 100644 Binary files a/icons/mob/inhands/guns/shotguns_right_1.dmi and b/icons/mob/inhands/guns/shotguns_right_1.dmi differ diff --git a/icons/mob/suit_slot.dmi b/icons/mob/suit_slot.dmi index 01a2f71cd593b..408ee5adb4200 100644 Binary files a/icons/mob/suit_slot.dmi and b/icons/mob/suit_slot.dmi differ diff --git a/icons/obj/items/ammo/handful.dmi b/icons/obj/items/ammo/handful.dmi index 0408bdb25d7ea..777c926458aa6 100644 Binary files a/icons/obj/items/ammo/handful.dmi and b/icons/obj/items/ammo/handful.dmi differ diff --git a/icons/obj/items/ammo/shotgun.dmi b/icons/obj/items/ammo/shotgun.dmi index 67955f0e1e9d6..f6c63b2a8b5db 100644 Binary files a/icons/obj/items/ammo/shotgun.dmi and b/icons/obj/items/ammo/shotgun.dmi differ diff --git a/icons/obj/items/guns/attachments/stock.dmi b/icons/obj/items/guns/attachments/stock.dmi index e11a427309692..319afd8f17113 100644 Binary files a/icons/obj/items/guns/attachments/stock.dmi and b/icons/obj/items/guns/attachments/stock.dmi differ diff --git a/icons/obj/items/guns/shotguns64.dmi b/icons/obj/items/guns/shotguns64.dmi index 4182f51021135..27b1be9ccd64d 100644 Binary files a/icons/obj/items/guns/shotguns64.dmi and b/icons/obj/items/guns/shotguns64.dmi differ diff --git a/sound/weapons/guns/fire/ks23.ogg b/sound/weapons/guns/fire/ks23.ogg new file mode 100644 index 0000000000000..935098190f356 Binary files /dev/null and b/sound/weapons/guns/fire/ks23.ogg differ diff --git a/sound/weapons/guns/interact/ks23_insert.ogg b/sound/weapons/guns/interact/ks23_insert.ogg new file mode 100644 index 0000000000000..f8d41b96a2737 Binary files /dev/null and b/sound/weapons/guns/interact/ks23_insert.ogg differ diff --git a/sound/weapons/guns/interact/ks23_pump.ogg b/sound/weapons/guns/interact/ks23_pump.ogg new file mode 100644 index 0000000000000..b639a035ee5d5 Binary files /dev/null and b/sound/weapons/guns/interact/ks23_pump.ogg differ