From b545bee4806383065d35d8f39bf7fb4b1f930f5c Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Sun, 8 May 2016 06:44:33 -0500 Subject: [PATCH] Dual magazine shotgun (#17118) * Dual feed shotgun * Dual Shotgun Sprites --- code/modules/projectiles/guns/projectile.dm | 1 - .../projectiles/guns/projectile/automatic.dm | 46 ++++++++- .../projectiles/guns/projectile/shotgun.dm | 92 +++++++++--------- icons/obj/guns/projectile.dmi | Bin 27261 -> 27656 bytes 4 files changed, 92 insertions(+), 47 deletions(-) diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index a0ec355c1e8..5ab0ce8264e 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -14,7 +14,6 @@ magazine = new mag_type(src) chamber_round() update_icon() - return /obj/item/weapon/gun/projectile/update_icon() ..() diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 54313c7f174..7b2439678d4 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -234,4 +234,48 @@ fire_sound = 'sound/weapons/Gunshot_smg.ogg' can_suppress = 0 burst_size = 3 - fire_delay = 1 \ No newline at end of file + fire_delay = 1 + + + +// Bulldog shotgun // + +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog + name = "\improper 'Bulldog' Shotgun" + desc = "A semi-auto, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." + icon_state = "bulldog" + item_state = "bulldog" + w_class = 3 + origin_tech = "combat=5;materials=4;syndicate=6" + mag_type = /obj/item/ammo_box/magazine/m12g + fire_sound = 'sound/weapons/Gunshot.ogg' + can_suppress = 0 + burst_size = 1 + fire_delay = 0 + pin = /obj/item/device/firing_pin/implant/pindicate + actions_types = list() + +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted + pin = /obj/item/device/firing_pin + +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/New() + ..() + update_icon() + return + +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/proc/update_magazine() + if(magazine) + src.overlays = 0 + overlays += "[magazine.icon_state]" + return + +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/update_icon() + src.overlays = 0 + update_magazine() + icon_state = "bulldog[chambered ? "" : "-e"]" + return + +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/afterattack() + ..() + empty_alarm() + return \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 0f20c8ff62b..3cdc0b2100a 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -298,59 +298,61 @@ else sawn_state = SAWN_INTACT - -// Bulldog shotgun // - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog - name = "\improper 'Bulldog' Shotgun" - desc = "A semi-auto, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." - icon_state = "bulldog" - item_state = "bulldog" - w_class = 3 - origin_tech = "combat=5;materials=4;syndicate=6" - mag_type = /obj/item/ammo_box/magazine/m12g - fire_sound = 'sound/weapons/Gunshot.ogg' - can_suppress = 0 - burst_size = 1 - fire_delay = 0 - pin = /obj/item/device/firing_pin/implant/pindicate - actions_types = list() - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/New() - ..() - update_icon() - return - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/proc/update_magazine() - if(magazine) - src.overlays = 0 - overlays += "[magazine.icon_state]" - return - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/update_icon() - src.overlays = 0 - update_magazine() - icon_state = "bulldog[chambered ? "" : "-e"]" - return - -/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/afterattack() - ..() - empty_alarm() - return +// Automatic Shotguns// /obj/item/weapon/gun/projectile/shotgun/automatic/shoot_live_shot(mob/living/user as mob|obj) ..() src.pump(user) -// COMBAT SHOTGUN // - /obj/item/weapon/gun/projectile/shotgun/automatic/combat name = "combat shotgun" desc = "A semi automatic shotgun with tactical furniture and a six-shell capacity underneath." icon_state = "cshotgun" origin_tech = "combat=5;materials=2" - mag_type = /obj/item/ammo_box/magazine/internal/shot/com + mag_type = /obj/item/ammo_box/magazine/internal/shot/tube w_class = 5 + +//Dual Feed Shotgun + +/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube + name = "cycler shotgun" + desc = "An advanced shotgun with two separate magazine tubes, allowing you to quickly toggle between ammo types." + icon_state = "cycler" + origin_tech = "combat=4;materials=2" + mag_type = /obj/item/ammo_box/magazine/internal/shot/tube + w_class = 5 + var/toggled = 0 + var/obj/item/ammo_box/magazine/internal/shot/alternate_magazine + +/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/New() + ..() + if (!alternate_magazine) + alternate_magazine = new mag_type(src) + +/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/attack_self(mob/living/user) + if(!chambered && magazine.contents.len) + pump() + else + toggle_tube(user) + +/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/proc/toggle_tube(mob/living/user) + var/current_mag = magazine + var/alt_mag = alternate_magazine + magazine = alt_mag + alternate_magazine = current_mag + toggled = !toggled + if(toggled) + user << "You switch to tube B." + else + user << "You switch to tube A." + + +/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/AltClick(mob/living/user) + if(user.incapacitated() || !Adjacent(user) || !istype(user)) + return + pump() + +/obj/item/ammo_box/magazine/internal/shot/tube + name = "dual feed shotgun internal tube" + ammo_type = /obj/item/ammo_casing/shotgun/rubbershot + max_ammo = 4 \ No newline at end of file diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 60228c44e70646f47f0e67c64c09d6cd47693a1a..ca4182ba24996b2236f00bc8f74e24bca693bfbd 100644 GIT binary patch delta 7255 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 delta 6857 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