diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index c9657077cde..fc84fc0ca23 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -236,6 +236,27 @@ var/list/uplink_items = list() item = /obj/item/ammo_box/magazine/m10mm cost = 1 +/datum/uplink_item/ammo/bullstun + name = "Ammo-12g Stun Slug" + desc = "An additional 8-round stun slug magazine for use in the Bulldog shotgun. Saying that they're non-lethal would be lying." + item = /obj/item/ammo_box/magazine/m12g + cost = 2 + gamemodes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/bullbuck + name = "Ammo-12g Buckshot" + desc = "An alternative 8-round buckshot magazine for use in the Bulldog shotgun. Front towards enemy." + item = /obj/item/ammo_box/magazine/m12g/buckshot + cost = 2 + gamemodes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/bulldragon + name = "Ammo-12g Dragon's Breath" + desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. I'm a fire starter, twisted fire starter!" + item = /obj/item/ammo_box/magazine/m12g/dragon + cost = 3 + gamemodes = list(/datum/game_mode/nuclear) + /datum/uplink_item/ammo/machinegun name = "Ammo-7.62×51mm" desc = "A 50-round magazine of 7.62×51mm ammunition for use in the L6 SAW machinegun. By the time you need to use this, you'll already be on a pile of corpses." diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 214d38da7e1..6029b0821af 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -7,7 +7,7 @@ /obj/structure/closet/syndicate/personal - desc = "It's a storage unit for operative gear." + desc = "It's a personal storage unit for operative gear." /obj/structure/closet/syndicate/personal/New() ..() @@ -24,7 +24,7 @@ /obj/structure/closet/syndicate/nuclear - desc = "It's a storage unit for nuclear-operative gear." + desc = "It's a storage unit for a Syndicate boarding party." /obj/structure/closet/syndicate/nuclear/New() ..() @@ -37,11 +37,11 @@ new /obj/item/weapon/storage/box/handcuffs(src) new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/storage/box/teargas(src) - new /obj/item/weapon/gun/energy/gun(src) - new /obj/item/weapon/gun/energy/gun(src) - new /obj/item/weapon/gun/energy/gun(src) - new /obj/item/weapon/gun/energy/gun(src) - new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/weapon/gun/projectile/automatic/bulldog(src) + new /obj/item/weapon/gun/projectile/automatic/bulldog(src) + new /obj/item/weapon/gun/projectile/automatic/bulldog(src) + new /obj/item/weapon/gun/projectile/automatic/bulldog(src) + new /obj/item/weapon/gun/projectile/automatic/bulldog(src) new /obj/item/weapon/pinpointer/nukeop(src) new /obj/item/weapon/pinpointer/nukeop(src) new /obj/item/weapon/pinpointer/nukeop(src) diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index 205ab164360..dbde10cfe56 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -46,7 +46,7 @@ /obj/item/ammo_casing/shotgun name = "shotgun slug" - desc = "A 12 gauge slug." + desc = "A 12 gauge lead slug." icon_state = "blshell" caliber = "shotgun" projectile_type = /obj/item/projectile/bullet @@ -54,8 +54,8 @@ /obj/item/ammo_casing/shotgun/buckshot - name = "shotgun shell" - desc = "A 12 gauge shell." + name = "buckshot shell" + desc = "A 12 gauge buckshot shell." icon_state = "gshell" projectile_type = /obj/item/projectile/bullet/pellet pellets = 5 @@ -63,19 +63,19 @@ /obj/item/ammo_casing/shotgun/beanbag - name = "beanbag shell" - desc = "A weak beanbag shell." + name = "beanbag slug" + desc = "A weak beanbag slug for riot control." icon_state = "bshell" projectile_type = /obj/item/projectile/bullet/weakbullet m_amt = 250 -/obj/item/ammo_casing/shotgun/stunshell - name = "stun shell" - desc = "A stunning shell." +/obj/item/ammo_casing/shotgun/stunslug + name = "taser slug" + desc = "A stunning taser slug." icon_state = "stunshell" projectile_type = /obj/item/projectile/bullet/stunshot - m_amt = 200 + m_amt = 250 /obj/item/ammo_casing/shotgun/meteorshot @@ -94,13 +94,13 @@ /obj/item/ammo_casing/shotgun/incendiary name = "incendiary slug" - desc = "An incendiary shell which fires a single slug of incendiary ammo." + desc = "An incendiary-coated shotgun slug." icon_state = "ishell" projectile_type = /obj/item/projectile/bullet/incendiary/shell /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath name = "dragonsbreath shell" - desc = "An incendiary shell which fires a spread of incendiary ammo." + desc = "A shotgun shell which fires a spread of incendiary pellets." icon_state = "ishell2" projectile_type = /obj/item/projectile/bullet/incendiary/shell/dragonsbreath pellets = 4 diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index 323c7832f99..4ea3e418f69 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -158,4 +158,28 @@ obj/item/ammo_box/magazine/tommygunm45 /obj/item/ammo_box/magazine/m762/update_icon() ..() - icon_state = "[initial(icon_state)]-[round(ammo_count(),10)]" \ No newline at end of file + icon_state = "[initial(icon_state)]-[round(ammo_count(),10)]" + +/obj/item/ammo_box/magazine/m12g + name = "shotgun magazine (12g taser slugs)" + icon_state = "m12gs" + origin_tech = "combat=3;syndicate=1" + ammo_type = /obj/item/ammo_casing/shotgun/stunslug + caliber = "shotgun" + max_ammo = 8 + +/obj/item/ammo_box/magazine/m12g/update_icon() + ..() + icon_state = "[initial(icon_state)]-[Ceiling(ammo_count(0)/8)*8]" + + +/obj/item/ammo_box/magazine/m12g/buckshot + name = "shotgun magazine (12g buckshot)" + icon_state = "m12gb" + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + + +/obj/item/ammo_box/magazine/m12g/dragon + name = "shotgun magazine (12g dragon's breath)" + icon_state = "m12gf" + ammo_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 723ab458554..e6b2d750ac0 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -16,6 +16,12 @@ if(..() && chambered) alarmed = 0 +/obj/item/weapon/gun/projectile/automatic/proc/empty_alarm() + if(!chambered && !get_ammo() && !alarmed) + playsound(src.loc, 'sound/weapons/smg_empty_alarm.ogg', 40, 1) + update_icon() + alarmed = 1 + return /obj/item/weapon/gun/projectile/automatic/mini_uzi name = "Uzi" @@ -43,16 +49,11 @@ update_icon() return - -/obj/item/weapon/gun/projectile/automatic/c20r/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag) +/obj/item/weapon/gun/projectile/automatic/c20r/afterattack() ..() - if(!chambered && !get_ammo() && !alarmed) - playsound(user, 'sound/weapons/smg_empty_alarm.ogg', 40, 1) - update_icon() - alarmed = 1 + empty_alarm() return - /obj/item/weapon/gun/projectile/automatic/c20r/update_icon() ..() icon_state = "c20r[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""][chambered ? "" : "-e"]" @@ -113,6 +114,38 @@ return ..() +/obj/item/weapon/gun/projectile/automatic/bulldog + name = "\improper Bulldog shotgun" + desc = "A compact, mag-fed semi-automatic shotgun for combat in narrow corridors. Compatible only with specialized magazines." + icon_state = "bulldog" + item_state = "bulldog" + w_class = 3.0 + origin_tech = "combat=5;materials=4;syndicate=6" + mag_type = /obj/item/ammo_box/magazine/m12g + fire_sound = 'sound/weapons/Gunshot.ogg' + +/obj/item/weapon/gun/projectile/automatic/bulldog/New() + ..() + update_icon() + return + +/obj/item/weapon/gun/projectile/automatic/bulldog/proc/update_magazine() + if(magazine) + src.overlays = 0 + overlays += "[magazine.icon_state]" + return + +/obj/item/weapon/gun/projectile/automatic/bulldog/update_icon() + src.overlays = 0 + update_magazine() + icon_state = "bulldog[chambered ? "" : "-e"]" + return + +/obj/item/weapon/gun/projectile/automatic/bulldog/afterattack() + ..() + empty_alarm() + return + /obj/item/weapon/gun/projectile/automatic/tommygun name = "tommy gun" desc = "A genuine Chicago Typewriter." diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index 070d1900e3b..5b3e6574630 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -22,12 +22,9 @@ mag_type = /obj/item/ammo_box/magazine/m50 -/obj/item/weapon/gun/projectile/automatic/deagle/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag) +/obj/item/weapon/gun/projectile/automatic/deagle/afterattack() ..() - if(!chambered && !get_ammo() && !alarmed) - playsound(user, 'sound/weapons/smg_empty_alarm.ogg', 40, 1) - update_icon() - alarmed = 1 + empty_alarm() return /obj/item/weapon/gun/projectile/automatic/deagle/update_icon() @@ -59,12 +56,9 @@ /obj/item/weapon/gun/projectile/automatic/gyropistol/process_chamber(var/eject_casing = 0, var/empty_chamber = 1) ..() -/obj/item/weapon/gun/projectile/automatic/gyropistol/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag) +/obj/item/weapon/gun/projectile/automatic/gyropistol/afterattack() ..() - if(!chambered && !get_ammo() && !alarmed) - playsound(user, 'sound/weapons/smg_empty_alarm.ogg', 40, 1) - update_icon() - alarmed = 1 + empty_alarm() return /obj/item/weapon/gun/projectile/automatic/gyropistol/update_icon() diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index b50e0225101..d21aef0bc15 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -155,7 +155,7 @@ datum/design/stunshell req_tech = list("combat" = 3, "materials" = 3) build_type = PROTOLATHE materials = list("$metal" = 200) - build_path = /obj/item/ammo_casing/shotgun/stunshell + build_path = /obj/item/ammo_casing/shotgun/stunslug datum/design/techshell name = "Unloaded Technological Shotshell" diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index 71d727e5a0c..dad29da8b55 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index 10b0f80432a..6b34620664a 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 94ff50ba91a..21b840b0fda 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index c76b374a7cb..65ed8cb6deb 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ