diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 571e0db58d..2d5c9474fe 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -201,7 +201,7 @@
/obj/item/stock_parts/cell/lascarbine
name = "laser carbine power supply"
- maxcharge = 1670 //20 laser shots.
+ maxcharge = 1500 //20 laser shots.
/obj/item/stock_parts/cell/pulse //200 pulse shots
name = "pulse rifle power cell"
diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm
index 65724e503a..783b8b895b 100644
--- a/code/modules/projectiles/boxes_magazines/external/smg.dm
+++ b/code/modules/projectiles/boxes_magazines/external/smg.dm
@@ -3,11 +3,11 @@
icon_state = "46x30mmt-20"
ammo_type = /obj/item/ammo_casing/c46x30mm
caliber = "4.6x30mm"
- max_ammo = 20
+ max_ammo = 32
/obj/item/ammo_box/magazine/wt550m9/update_icon()
..()
- icon_state = "46x30mmt-[round(ammo_count(),4)]"
+ icon_state = "46x30mmt-[round(20*(ammo_count()/max_ammo),4)]"
/obj/item/ammo_box/magazine/wt550m9/wtap
name = "wt550 magazine (Armour Piercing 4.6x30mm)"
@@ -16,7 +16,7 @@
/obj/item/ammo_box/magazine/wt550m9/wtap/update_icon()
..()
- icon_state = "46x30mmtA-[round(ammo_count(),4)]"
+ icon_state = "46x30mmtA-[round(20*(ammo_count()/max_ammo),4)]"
/obj/item/ammo_box/magazine/wt550m9/wtic
name = "wt550 magazine (Incendiary 4.6x30mm)"
@@ -25,7 +25,7 @@
/obj/item/ammo_box/magazine/wt550m9/wtic/update_icon()
..()
- icon_state = "46x30mmtI-[round(ammo_count(),4)]"
+ icon_state = "46x30mmtI-[round(20*(ammo_count()/max_ammo),4)]"
/obj/item/ammo_box/magazine/uzim9mm
name = "uzi magazine (9mm)"
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 6715f69c4d..61b2769780 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -34,6 +34,7 @@
var/semicd = 0 //cooldown handler
var/weapon_weight = WEAPON_LIGHT
var/spread = 0 //Spread induced by the gun itself.
+ var/burst_spread = 0 //Spread induced by the gun itself during burst fire per iteration. Only checked if spread is 0.
var/randomspread = 1 //Set to 0 for shotguns. This is used for weapons that don't fire all their bullets at once.
lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
@@ -227,9 +228,9 @@
to_chat(user, " [src] is lethally chambered! You don't want to risk harming anyone...")
return
if(randomspread)
- sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread))
+ sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread), 1)
else //Smart spread
- sprd = round((((rand_spr/burst_size) * iteration) - (0.5 + (rand_spr * 0.25))) * (randomized_gun_spread + randomized_bonus_spread))
+ sprd = round((((rand_spr/burst_size) * iteration) - (0.5 + (rand_spr * 0.25))) * (randomized_gun_spread + randomized_bonus_spread), 1)
if(!chambered.fire_casing(target, user, params, ,suppressed, zone_override, sprd))
shoot_with_empty_chamber(user)
@@ -260,7 +261,9 @@
var/randomized_gun_spread = 0
var/rand_spr = rand()
if(spread)
- randomized_gun_spread = rand(0,spread)
+ randomized_gun_spread = rand(0, spread)
+ else if(burst_size > 1 && burst_spread)
+ randomized_gun_spread = rand(0, burst_spread)
if(HAS_TRAIT(user, TRAIT_POOR_AIM)) //nice shootin' tex
bonus_spread += 25
var/randomized_bonus_spread = rand(0, bonus_spread)
diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm
index 4bd65a7b20..d7fe080f0b 100644
--- a/code/modules/projectiles/guns/ballistic/automatic.dm
+++ b/code/modules/projectiles/guns/ballistic/automatic.dm
@@ -58,12 +58,10 @@
var/mob/living/carbon/human/user = usr
select = !select
if(!select)
- burst_size = 1
- fire_delay = 0
+ disable_burst()
to_chat(user, "You switch to semi-automatic.")
else
- burst_size = initial(burst_size)
- fire_delay = initial(fire_delay)
+ enable_burst()
to_chat(user, "You switch to [burst_size]-rnd burst.")
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
@@ -72,6 +70,14 @@
var/datum/action/A = X
A.UpdateButtonIcon()
+/obj/item/gun/ballistic/automatic/proc/enable_burst()
+ burst_size = initial(burst_size)
+ fire_delay = initial(fire_delay)
+
+/obj/item/gun/ballistic/automatic/proc/disable_burst()
+ burst_size = 1
+ fire_delay = 0
+
/obj/item/gun/ballistic/automatic/can_shoot()
return get_ammo()
@@ -118,14 +124,21 @@
icon_state = "wt550"
item_state = "arg"
mag_type = /obj/item/ammo_box/magazine/wt550m9
- fire_delay = 2
+ fire_delay = 4
can_suppress = FALSE
- burst_size = 0
- actions_types = list()
+ burst_size = 2
can_bayonet = TRUE
knife_x_offset = 25
knife_y_offset = 12
+/obj/item/gun/ballistic/automatic/wt550/enable_burst()
+ . = ..()
+ spread = 5
+
+/obj/item/gun/ballistic/automatic/wt550/disable_burst()
+ . = ..()
+ spread = 0
+
/obj/item/gun/ballistic/automatic/wt550/update_icon()
..()
icon_state = "wt550[magazine ? "-[CEILING(get_ammo(0)/4, 1)*4]" : ""]"
diff --git a/code/modules/projectiles/projectile/bullets/smg.dm b/code/modules/projectiles/projectile/bullets/smg.dm
index dfc6df537d..1c5158f59a 100644
--- a/code/modules/projectiles/projectile/bullets/smg.dm
+++ b/code/modules/projectiles/projectile/bullets/smg.dm
@@ -47,14 +47,14 @@
/obj/item/projectile/bullet/c46x30mm
name = "4.6x30mm bullet"
- damage = 20
+ damage = 15
/obj/item/projectile/bullet/c46x30mm_ap
name = "4.6x30mm armor-piercing bullet"
- damage = 15
+ damage = 12.5
armour_penetration = 40
/obj/item/projectile/bullet/incendiary/c46x30mm
name = "4.6x30mm incendiary bullet"
- damage = 10
+ damage = 7.5
fire_stacks = 1
diff --git a/modular_citadel/code/modules/projectiles/bullets/bullets/smg.dm b/modular_citadel/code/modules/projectiles/bullets/bullets/smg.dm
index f069a73fe8..75151417d7 100644
--- a/modular_citadel/code/modules/projectiles/bullets/bullets/smg.dm
+++ b/modular_citadel/code/modules/projectiles/bullets/bullets/smg.dm
@@ -1,4 +1,4 @@
/obj/item/projectile/bullet/c46x30mm_tx
name = "toxin tipped 4.6x30mm bullet"
- damage = 15
+ damage = 10
damage_type = TOX
\ No newline at end of file
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm
index 9ac9862694..2f619ca12d 100644
--- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm
@@ -225,7 +225,7 @@
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/magrifle
- click_cd_override = 3
+ click_cooldown_override = 3
delay = 3
/obj/item/ammo_casing/caseless/anlmagm
@@ -234,7 +234,7 @@
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/nlmagrifle
- click_cd_override = 3
+ click_cooldown_override = 3
delay = 3
///magazines///