From a58bdc89687b7d3f069b2fa8508102ecab85eaa4 Mon Sep 17 00:00:00 2001 From: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> Date: Sun, 19 Oct 2025 15:25:12 -0400 Subject: [PATCH] Caps the eshotgun damage multiplier from lens to 1.5 (#30663) --- code/modules/projectiles/guns/energy/energy.dm | 1 + code/modules/projectiles/guns/energy_guns.dm | 2 ++ code/modules/smithing/smithed_items/lens.dm | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/guns/energy/energy.dm b/code/modules/projectiles/guns/energy/energy.dm index 25e9720d389..c55e9105bd0 100644 --- a/code/modules/projectiles/guns/energy/energy.dm +++ b/code/modules/projectiles/guns/energy/energy.dm @@ -239,6 +239,7 @@ var/fail_tick = 0 ammo_x_offset = 1 ammo_type = list(/obj/item/ammo_casing/energy/disabler/eshotgun, /obj/item/ammo_casing/energy/laser/eshotgun) + lens_damage_cap = 1.5 // Caps at 90 stamina damage, to prevent one shot stamina crits. var/pump_time = 1 SECONDS COOLDOWN_DECLARE(pump_cooldown) diff --git a/code/modules/projectiles/guns/energy_guns.dm b/code/modules/projectiles/guns/energy_guns.dm index 7c9695fe456..5eb520f70d0 100644 --- a/code/modules/projectiles/guns/energy_guns.dm +++ b/code/modules/projectiles/guns/energy_guns.dm @@ -38,6 +38,8 @@ var/can_be_lensed = TRUE /// Current lens var/obj/item/smithed_item/lens/current_lens + /// The max damage multiplier a lens can apply to a energy gun. Use sparingly, primarly for stamina based weapons. + var/lens_damage_cap = 999 /obj/item/gun/energy/examine(mob/user) . = ..() diff --git a/code/modules/smithing/smithed_items/lens.dm b/code/modules/smithing/smithed_items/lens.dm index 52aded1eb4b..a2239737bcc 100644 --- a/code/modules/smithing/smithed_items/lens.dm +++ b/code/modules/smithing/smithed_items/lens.dm @@ -45,7 +45,7 @@ for(var/obj/item/ammo_casing/energy/casing in attached_gun.ammo_type) casing.delay = casing.delay / fire_rate_mult casing.e_cost = casing.e_cost * power_mult - casing.lens_damage_multiplier = casing.lens_damage_multiplier * damage_mult + casing.lens_damage_multiplier = casing.lens_damage_multiplier * min(attached_gun.lens_damage_cap, damage_mult) casing.lens_speed_multiplier = casing.lens_speed_multiplier / laser_speed_mult /obj/item/smithed_item/lens/on_detached() @@ -56,7 +56,7 @@ for(var/obj/item/ammo_casing/energy/casing in attached_gun.ammo_type) casing.delay = casing.delay * fire_rate_mult casing.e_cost = casing.e_cost / power_mult - casing.lens_damage_multiplier = casing.lens_damage_multiplier / damage_mult + casing.lens_damage_multiplier = casing.lens_damage_multiplier / min(attached_gun.lens_damage_cap, damage_mult) casing.lens_speed_multiplier = casing.lens_speed_multiplier * laser_speed_mult attached_gun.current_lens = null attached_gun = null