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///