diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 96bbfb32c56..a47f94a8fd6 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -148,14 +148,14 @@ var/list/uplink_items = list()
surplus = 50
/datum/uplink_item/dangerous/carbine/unrestricted
- item = /obj/item/weapon/gun/projectile/automatic/m90/unrestricted
+ item = /obj/itemdweapon/gun/projectile/automatic/m90/unrestricted
gamemodes = list(/datum/game_mode/gang)
/datum/uplink_item/dangerous/machinegun
name = "L6 Squad Automatic Weapon"
desc = "A fully-loaded Aussec Armoury belt-fed machine gun. This deadly weapon has a massive 50-round magazine of devastating 7.62x51mm ammunition."
item = /obj/item/weapon/gun/projectile/automatic/l6_saw
- cost = 40
+ cost = 23
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
@@ -360,10 +360,30 @@ var/list/uplink_items = list()
name = "Box Magazine - 7.62x51mm"
desc = "A 50-round magazine of 7.62x51mm 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."
item = /obj/item/ammo_box/magazine/m762
- cost = 12
+ cost = 6
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
+/datum/uplink_item/ammo/machinegun/bleeding
+ name = "Box Magazine - Bleeding 7.62x51mm"
+ desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW machinegun equipped with special properties to induce internal bleeding on targets."
+ item = /obj/item/ammo_box/magazine/m762/bleeding
+
+/datum/uplink_item/ammo/machinegun/hollow
+ name = "Box Magazine - Hollow 7.62x51mm"
+ desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW machinegun equipped with hollow-tips to help with the unarmored masses of crew."
+ item = /obj/item/ammo_box/magazine/m762/hollow
+
+/datum/uplink_item/ammo/machinegun/ap
+ name = "Box Magazine - Armor Penetrating 7.62x51mm"
+ desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW machinegun equipped with special properties to puncture even the most durable armor."
+ item = /obj/item/ammo_box/magazine/m762/ap
+
+/datum/uplink_item/ammo/machinegun/incen
+ name = "Box Magazine - Incendiary 7.62x51mm"
+ desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW machinegun, tipped with a special flammable mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn."
+ item = /obj/item/ammo_box/magazine/m762/incen
+
/datum/uplink_item/ammo/toydarts //This used to only be for nuke ops, but had the cost lowered and made available to traitors because >a box of foam darts is more expensive than four carbine magazines
name = "Box of Riot Darts"
desc = "A box of 40 Donksoft foam riot darts, for reloading any compatible foam dart gun. Don't forget to share!"
@@ -390,7 +410,6 @@ var/list/uplink_items = list()
item = /obj/item/ammo_box/magazine/sniper_rounds/haemorrhage
-
// STEALTHY WEAPONS
/datum/uplink_item/stealthy_weapons
diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm
index 23f713fac29..258f44f1eb5 100644
--- a/code/modules/projectiles/ammunition/ammo_casings.dm
+++ b/code/modules/projectiles/ammunition/ammo_casings.dm
@@ -212,12 +212,6 @@
reagents.add_reagent("coniine", 6)
reagents.add_reagent("sodium_thiopental", 6)
-/obj/item/ammo_casing/a762
- desc = "A 7.62mm bullet casing."
- icon_state = "762-casing"
- caliber = "a762"
- projectile_type = /obj/item/projectile/bullet
-
/obj/item/ammo_casing/a556
desc = "A 5.56mm bullet casing."
caliber = "a556"
diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm
index 5fb78c075aa..6037b1c666e 100644
--- a/code/modules/projectiles/ammunition/magazines.dm
+++ b/code/modules/projectiles/ammunition/magazines.dm
@@ -270,20 +270,6 @@ obj/item/ammo_box/magazine/tommygunm45
max_ammo = 30
multiple_sprites = 2
-/obj/item/ammo_box/magazine/m762
- name = "box magazine (7.62mm)"
- icon_state = "a762-50"
- origin_tech = "combat=2"
- ammo_type = /obj/item/ammo_casing/a762
- caliber = "a762"
- max_ammo = 50
-
-/obj/item/ammo_box/magazine/m762/update_icon()
- ..()
- icon_state = "a762-[round(ammo_count(),10)]"
-
-
-
/obj/item/ammo_box/magazine/m12g
name = "shotgun magazine (12g slugs)"
icon_state = "m12gb"
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 2c5dcaf5023..54b6825217c 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -346,6 +346,8 @@
SetLuminosity(0)
if(azoom)
azoom.Grant(user)
+ if(agrip)
+ agrip.Grant(user)
/obj/item/weapon/gun/dropped(mob/user)
if(F)
@@ -355,6 +357,9 @@
zoom(user,FALSE)
if(azoom)
azoom.Remove(user)
+ if(agrip)
+ agrip.Remove(user)
+
/obj/item/weapon/gun/attack_hand(mob/user)
if(unique_reskin && !reskinned && loc == user)
@@ -486,4 +491,4 @@
if(zoomable)
azoom = new()
- azoom.gun = src
\ No newline at end of file
+ azoom.gun = src
diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm
index 804e7d151ea..c0fc74d0a7f 100644
--- a/code/modules/projectiles/guns/projectile/automatic.dm
+++ b/code/modules/projectiles/guns/projectile/automatic.dm
@@ -135,66 +135,6 @@
mag_type = /obj/item/ammo_box/magazine/uzim9mm
burst_size = 2
-/obj/item/weapon/gun/projectile/automatic/l6_saw
- name = "\improper L6 SAW"
- desc = "A heavily modified 7.62 light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation."
- icon_state = "l6closed100"
- item_state = "l6closedmag"
- w_class = 5
- slot_flags = 0
- origin_tech = "combat=5;materials=1;syndicate=2"
- mag_type = /obj/item/ammo_box/magazine/m762
- fire_sound = 'sound/weapons/Gunshot_smg.ogg'
- var/cover_open = 0
- can_suppress = 0
- burst_size = 5
- fire_delay = 3
- pin = /obj/item/device/firing_pin/implant/pindicate
-
-/obj/item/weapon/gun/projectile/automatic/l6_saw/unrestricted
- pin = /obj/item/device/firing_pin
-
-
-/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_self(mob/user)
- cover_open = !cover_open
- user << "You [cover_open ? "open" : "close"] [src]'s cover."
- update_icon()
-
-
-/obj/item/weapon/gun/projectile/automatic/l6_saw/update_icon()
- icon_state = "l6[cover_open ? "open" : "closed"][magazine ? Ceiling(get_ammo(0)/12.5)*25 : "-empty"]"
-
-
-/obj/item/weapon/gun/projectile/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays
- if(cover_open)
- user << "[src]'s cover is open! Close it before firing!"
- else
- ..()
- update_icon()
-
-
-/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_hand(mob/user)
- if(loc != user)
- ..()
- return //let them pick it up
- if(!cover_open || (cover_open && !magazine))
- ..()
- else if(cover_open && magazine)
- //drop the mag
- magazine.update_icon()
- magazine.loc = get_turf(src.loc)
- user.put_in_hands(magazine)
- magazine = null
- update_icon()
- user << "You remove the magazine from [src]."
-
-
-/obj/item/weapon/gun/projectile/automatic/l6_saw/attackby(obj/item/A, mob/user, params)
- if(!cover_open)
- user << "[src]'s cover is closed! You can't insert a new mag."
- return
- ..()
-
/obj/item/weapon/gun/projectile/automatic/m90
name = "\improper M-90gl Carbine"
desc = "A three-round burst 5.56 toploading carbine, designated 'M-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off."
diff --git a/code/modules/projectiles/guns/projectile/saw.dm b/code/modules/projectiles/guns/projectile/saw.dm
new file mode 100644
index 00000000000..7d54685f070
--- /dev/null
+++ b/code/modules/projectiles/guns/projectile/saw.dm
@@ -0,0 +1,162 @@
+/obj/item/weapon/gun/projectile/automatic/l6_saw
+ name = "\improper L6 SAW"
+ desc = "A heavily modified 7.62 light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation."
+ icon_state = "l6closed100"
+ item_state = "l6closedmag"
+ w_class = 5
+ slot_flags = 0
+ origin_tech = "combat=5;materials=1;syndicate=2"
+ mag_type = /obj/item/ammo_box/magazine/m762
+ heavy_weapon = 1
+ fire_sound = 'sound/weapons/Gunshot_smg.ogg'
+ var/cover_open = 0
+ can_suppress = 0
+ burst_size = 3
+ fire_delay = 1
+ pin = /obj/item/device/firing_pin/implant/pindicate
+
+/obj/item/weapon/gun/projectile/automatic/l6_saw/unrestricted
+ pin = /obj/item/device/firing_pin
+
+
+/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_self(mob/user)
+ cover_open = !cover_open
+ user << "You [cover_open ? "open" : "close"] [src]'s cover."
+ update_icon()
+
+
+/obj/item/weapon/gun/projectile/automatic/l6_saw/update_icon()
+ icon_state = "l6[cover_open ? "open" : "closed"][magazine ? Ceiling(get_ammo(0)/12.5)*25 : "-empty"]"
+
+
+/obj/item/weapon/gun/projectile/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays
+ if(cover_open)
+ user << "[src]'s cover is open! Close it before firing!"
+ else
+ ..()
+ update_icon()
+
+
+/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_hand(mob/user)
+ if(loc != user)
+ ..()
+ return //let them pick it up
+ if(!cover_open || (cover_open && !magazine))
+ ..()
+ else if(cover_open && magazine)
+ //drop the mag
+ magazine.update_icon()
+ magazine.loc = get_turf(src.loc)
+ user.put_in_hands(magazine)
+ magazine = null
+ update_icon()
+ user << "You remove the magazine from [src]."
+
+
+/obj/item/weapon/gun/projectile/automatic/l6_saw/attackby(obj/item/A, mob/user, params)
+ if(!cover_open)
+ user << "[src]'s cover is closed! You can't insert a new mag."
+ return
+ ..()
+
+
+//ammo//
+
+
+/obj/item/projectile/bullet/saw
+ damage = 35
+ armour_penetration = 5
+
+/obj/item/projectile/bullet/saw/bleeding
+ damage = 15
+ armour_penetration = 0
+
+/obj/item/projectile/bullet/saw/bleeding/on_hit(atom/target, blocked = 0, hit_zone)
+ if((blocked != 100) && istype(target, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = target
+ H.drip(25)
+
+/obj/item/projectile/bullet/saw/hollow
+ damage = 45
+ armour_penetration = 0
+
+/obj/item/projectile/bullet/saw/ap
+ damage = 30
+ armour_penetration = 35
+
+/obj/item/projectile/bullet/saw/incen
+ damage = 5
+ armour_penetration = 0
+
+/obj/item/projectile/bullet/saw/incen/on_hit(atom/target, blocked = 0)
+ . = ..()
+ if(iscarbon(target))
+ var/mob/living/carbon/M = target
+ M.adjust_fire_stacks(1)
+ M.IgniteMob()
+
+
+//magazines//
+
+
+/obj/item/ammo_box/magazine/m762
+ name = "box magazine (7.62mm)"
+ icon_state = "a762-50"
+ origin_tech = "combat=2"
+ ammo_type = /obj/item/ammo_casing/a762
+ caliber = "a762"
+ max_ammo = 50
+
+/obj/item/ammo_box/magazine/m762/bleeding
+ name = "box magazine (Bleeding 7.62mm)"
+ origin_tech = "combat=3"
+ ammo_type = /obj/item/ammo_casing/a762/bleeding
+
+/obj/item/ammo_box/magazine/m762/hollow
+ name = "box magazine (Hollow-Point 7.62mm)"
+ origin_tech = "combat=3"
+ ammo_type = /obj/item/ammo_casing/a762/hollow
+
+/obj/item/ammo_box/magazine/m762/ap
+ name = "box magazine (Armor Penetrating 7.62mm)"
+ origin_tech = "combat=4"
+ ammo_type = /obj/item/ammo_casing/a762/ap
+
+/obj/item/ammo_box/magazine/m762/incen
+ name = "box magazine (Incendiary 7.62mm)"
+ origin_tech = "combat=4"
+ ammo_type = /obj/item/ammo_casing/a762/incen
+
+/obj/item/ammo_box/magazine/m762/update_icon()
+ ..()
+ icon_state = "a762-[round(ammo_count(),10)]"
+
+
+//casings//
+
+
+/obj/item/ammo_casing/a762
+ desc = "A 7.62mm bullet casing."
+ icon_state = "762-casing"
+ caliber = "a762"
+ projectile_type = /obj/item/projectile/bullet/saw
+
+/obj/item/ammo_casing/a762/bleeding
+ desc = "A 7.62mm bullet casing with specialized inner-casing, that when it makes contact with a target, release tiny shrapnel to induce internal bleeding."
+ icon_state = "762-casing"
+ caliber = "a762"
+ projectile_type = /obj/item/projectile/bullet/saw/bleeding
+
+/obj/item/ammo_casing/a762/hollow
+ desc = "A 7.62mm bullet casing designed to cause more damage to unarmored targets."
+ projectile_type = /obj/item/projectile/bullet/saw/hollow
+
+/obj/item/ammo_casing/a762/ap
+ desc = "A 7.62mm bullet casing designed with a hardened-tipped core to help penetrate armored targets."
+ projectile_type = /obj/item/projectile/bullet/saw/ap
+
+/obj/item/ammo_casing/a762/incen
+ desc = "A 7.62mm bullet casing designed with a chemical-filled capsule on the tip that when bursted, reacts with the atmosphere to produce a fireball, engulfing the target in flames. "
+ projectile_type = /obj/item/projectile/bullet/saw/incen
+
+
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index fda0ec76a94..9a28155154b 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -6,7 +6,6 @@
nodamage = 0
flag = "bullet"
-
/obj/item/projectile/bullet/weakbullet //beanbag, heavy stamina damage
damage = 5
stamina = 80
diff --git a/tgstation.dme b/tgstation.dme
index 8c72aa916b8..0eb6c9ae083 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1477,6 +1477,7 @@
#include "code\modules\projectiles\guns\projectile\launchers.dm"
#include "code\modules\projectiles\guns\projectile\pistol.dm"
#include "code\modules\projectiles\guns\projectile\revolver.dm"
+#include "code\modules\projectiles\guns\projectile\saw.dm"
#include "code\modules\projectiles\guns\projectile\shotgun.dm"
#include "code\modules\projectiles\guns\projectile\sniper.dm"
#include "code\modules\projectiles\guns\projectile\toy.dm"