diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm
index 5fe1ab4c672..f5654695901 100644
--- a/code/game/machinery/turrets.dm
+++ b/code/game/machinery/turrets.dm
@@ -306,7 +306,7 @@
/obj/machinery/turretid
name = "turret deactivation control"
icon = 'icons/obj/device.dmi'
- icon_state = "motion3"
+ icon_state = "control_stun"
anchored = 1
density = 0
var/enabled = 1
@@ -457,11 +457,11 @@
/obj/machinery/turretid/proc/update_icons()
if (src.enabled)
if (src.lethal)
- icon_state = "motion1"
+ icon_state = "control_kill"
else
- icon_state = "motion3"
+ icon_state = "control_stun"
else
- icon_state = "motion0"
+ icon_state = "control_standby"
//CODE FIXED BUT REMOVED
// if(control_area) //USE: updates other controls in the area
// for (var/obj/machinery/turretid/Turret_Control in world) //I'm not sure if this is what it was
diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
index 4b4bd46a5ac..0abc785247b 100644
--- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
@@ -229,4 +229,19 @@
if(!opened)
icon_state = icon_closed
else
- icon_state = icon_opened
\ No newline at end of file
+ icon_state = icon_opened
+
+/obj/structure/closet/ammunitionlocker
+ name = "ammunition locker"
+
+/obj/structure/closet/ammunitionlocker/New()
+ ..()
+ sleep(2)
+ new /obj/item/ammo_casing/shotgun/beanbag(src)
+ new /obj/item/ammo_casing/shotgun/beanbag(src)
+ new /obj/item/ammo_casing/shotgun/beanbag(src)
+ new /obj/item/ammo_casing/shotgun/beanbag(src)
+ new /obj/item/ammo_casing/shotgun/beanbag(src)
+ new /obj/item/ammo_casing/shotgun/beanbag(src)
+ new /obj/item/ammo_casing/shotgun/beanbag(src)
+ new /obj/item/ammo_casing/shotgun/beanbag(src)
\ No newline at end of file
diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm
index 2a51f80f0df..fef0f230492 100644
--- a/code/modules/projectiles/ammunition/magazines.dm
+++ b/code/modules/projectiles/ammunition/magazines.dm
@@ -56,6 +56,14 @@
caliber = "shotgun"
max_ammo = 2
multiload = 0
+
+/obj/item/ammo_box/magazine/internal/shotriot
+ name = "riot shotgun internal magazine"
+ desc = "Oh god, this shouldn't be here"
+ ammo_type = "/obj/item/ammo_casing/shotgun/beanbag"
+ caliber = "shotgun"
+ max_ammo = 6
+ multiload = 0
///////////EXTERNAL MAGAZINES////////////////
/obj/item/ammo_box/magazine/m9mm
name = "magazine (9mm)"
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index c2de820a0b1..29278592c26 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -21,6 +21,7 @@
var/ghettomodded = 0
var/recoil = 0
var/clumsy_check = 1
+ var/sawn_desc = null
var/obj/item/ammo_casing/chambered = null // The round (not bullet) that is in the chamber. THIS MISPLACED ITEM BROUGHT TO YOU BY HACKY BUCKSHOT.
var/tmp/list/mob/living/target //List of who yer targeting.
var/tmp/lock_time = -100
diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm
index fefc3cfe2c2..156b9ec9ed8 100644
--- a/code/modules/projectiles/guns/energy/stun.dm
+++ b/code/modules/projectiles/guns/energy/stun.dm
@@ -106,10 +106,11 @@
/obj/item/weapon/gun/energy/crossbow/largecrossbow
name = "Energy Crossbow"
- desc = "A weapon favored by syndicate infiltration teams."
- w_class = 4.0
+ desc = "A weapon favored by syndicate carp hunters."
+ icon_state = "crossbowlarge"
+ w_class = 3.0
force = 10
- m_amt = 200000
+ m_amt = 4000
projectile_type = "/obj/item/projectile/energy/bolt/large"
diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm
index e5daa3fbb18..cb2f14bb7c9 100644
--- a/code/modules/projectiles/guns/projectile/shotgun.dm
+++ b/code/modules/projectiles/guns/projectile/shotgun.dm
@@ -88,6 +88,18 @@
mag_type = "/obj/item/ammo_box/magazine/internal/shotcom"
w_class = 5
+/obj/item/weapon/gun/projectile/shotgun/riot //for spawn in the armory
+ name = "riot shotgun"
+ desc = "A sturdy shotgun with a longer magazine and a fixed tactical stock designed for non-lethal riot control."
+ icon_state = "riotshotgun"
+ mag_type = "/obj/item/ammo_box/magazine/internal/shotriot"
+ sawn_desc = "Come with me if you want to live."
+
+/obj/item/weapon/gun/projectile/shotgun/riot/attackby(var/obj/item/A as obj, mob/user as mob)
+ ..()
+ if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
+ sawoff(user)
+
/obj/item/weapon/gun/projectile/revolver/doublebarrel
name = "double-barreled shotgun"
desc = "A true classic."
@@ -99,26 +111,33 @@
slot_flags = SLOT_BACK
origin_tech = "combat=3;materials=1"
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/dualshot"
+ sawn_desc = "Omar's coming!"
/obj/item/weapon/gun/projectile/revolver/doublebarrel/attackby(var/obj/item/A as obj, mob/user as mob)
..()
+ if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing))
+ chamber_round()
if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
- user << "You begin to shorten the barrel of \the [src]."
- if(get_ammo())
- afterattack(user, user) //will this work?
- afterattack(user, user) //it will. we call it twice, for twice the FUN
- playsound(user, fire_sound, 50, 1)
- user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!")
- return
- if(do_after(user, 30)) //SHIT IS STEALTHY EYYYYY
- icon_state = "sawnshotgun"
- w_class = 3.0
- item_state = "gun"
- slot_flags &= ~SLOT_BACK //you can't sling it on your back
- slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally)
- user << "You shorten the barrel of \the [src]!"
- name = "sawn-off shotgun"
- desc = "Omar's coming!"
+ sawoff(user)
+
+/obj/item/weapon/gun/projectile/proc/sawoff(mob/user as mob)
+ user << "You begin to shorten \the [src]."
+ if(get_ammo())
+ afterattack(user, user)
+ playsound(user, fire_sound, 50, 1)
+ user.visible_message("The [src] goes off!", "The [src] goes off in your face!")
+ return
+ if(do_after(user, 30))
+ name = "sawn-off [src.name]"
+ desc = sawn_desc
+ icon_state = initial(icon_state) + "-sawn"
+ w_class = 3.0
+ item_state = "gun"
+ slot_flags &= ~SLOT_BACK //you can't sling it on your back
+ slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally)
+ user << "You shorten \the [src]!"
+ update_icon()
+ return
/obj/item/weapon/gun/projectile/revolver/doublebarrel/attack_self(mob/living/user as mob)
var/num_unloaded = 0
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 895416b53f2..369ccb1ec08 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -318,13 +318,13 @@
..()
else
..()
-
+
if(default_deconstruction_screwdriver(user, "minidispenser-o", "minidispenser", I))
return
if(exchange_parts(user, I))
return
-
+
if(istype(I, /obj/item/weapon/wrench))
playsound(src, 'sound/items/Ratchet.ogg', 50, 1)
if(anchored)
@@ -332,8 +332,8 @@
user << "The [src] can now be moved."
else if(!anchored)
anchored = 1
- user << "The [src] is now secured."
-
+ user << "The [src] is now secured."
+
if(panel_open)
if(istype(I, /obj/item/weapon/crowbar))
if(beaker)
@@ -368,6 +368,7 @@
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
+ overlays += "waitlight"
/obj/machinery/chem_master/ex_act(severity)
switch(severity)
diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi
index 60a20753607..83b8c49d86a 100644
Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index 202d28d7f4a..977071c5f4d 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi
index a21c1338bff..758e6dc1877 100644
Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ
diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi
index c20f15a4573..0586c8c364a 100644
Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ