Rebalances the 3 least used non temp or illegal guns, + BSG (#27476)

* guns

* bsg fix, shield

* lwap scoped always hits crawling mobs

* decrease scope time

* Apply suggestions from code review

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>

---------

Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
This commit is contained in:
Qwertytoforty
2024-12-05 22:07:33 +00:00
committed by GitHub
co-authored by Burzah
parent 4146b973f0
commit 9f01db07ef
9 changed files with 57 additions and 22 deletions
@@ -237,7 +237,7 @@
/obj/item/gun/energy/lwap/Initialize(mapload)
. = ..()
AddComponent(/datum/component/scope, range_modifier = 2, time_to_scope = 3 SECONDS, flags = SCOPE_MOVEMENT_CANCELS | SCOPE_TURF_ONLY | SCOPE_NEED_ACTIVE_HAND)
AddComponent(/datum/component/scope, range_modifier = 2, time_to_scope = 2 SECONDS, flags = SCOPE_MOVEMENT_CANCELS | SCOPE_TURF_ONLY | SCOPE_NEED_ACTIVE_HAND)
/obj/item/gun/energy/lwap/on_scope_success(mob/living/user)
to_chat(user, "<b><span class='robot'>SCOPE_CREEPER_[rand(1, 9999)] Online.</span></b>")
@@ -258,7 +258,7 @@
muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_STRONG
select_name = null
fire_sound = 'sound/weapons/marauder.ogg'
delay = 5 SECONDS
delay = 2 SECONDS
/obj/item/ammo_casing/energy/laser/sniper/pierce
projectile_type = /obj/item/projectile/beam/laser/sniper/pierce
@@ -287,8 +287,10 @@
/obj/item/projectile/beam/laser/sniper/pierce
forcedodge = 1 // Can pierce one non wall thing.
speed = 0.5
always_hit_living_nondense = TRUE //This means if you are scoped in sniping at crit xenomorphs or crit humans, you can always hit them even if you do not directly click on them
/// Have we hit an r_wall? If we have, don't pierce it again so we don't become too effective on reinforced locations (AI sat)
var/hit_a_r_wall = FALSE
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSGIRDER
/obj/item/projectile/beam/laser/sniper/pierce/prehit(atom/target)
if(istype(target, /turf/simulated/wall/r_wall))
@@ -296,7 +298,7 @@
hit_a_r_wall = TRUE
if(!forcedodge)
forcedodge++
else if((isturf(target) || istype(target, /obj/structure/alien/resin)) && !forcedodge)
else if((isturf(target) || istype(target, /obj/structure/alien/resin) || istype(target, /obj/structure/spider)) && !forcedodge)
forcedodge++
..()
@@ -684,6 +684,14 @@
else
return ..()
/obj/item/gun/energy/bsg/equipped(mob/user, slot, initial)
. = ..()
ADD_TRAIT(user, TRAIT_BSG_IMMUNE, "[UID(src)]")
/obj/item/gun/energy/bsg/dropped(mob/user, silent)
. = ..()
REMOVE_TRAIT(user, TRAIT_BSG_IMMUNE, "[UID(src)]")
/obj/item/gun/energy/bsg/process_fire(atom/target, mob/living/user, message = TRUE, params, zone_override, bonus_spread = 0)
if(!has_bluespace_crystal)
to_chat(user, "<span class='warning'>[src] has no bluespace crystal to power it!</span>")