Alt PKA balance pass (#5253)

## About The Pull Request
Tweaks the alt-PKA damage values to accomodate for the fact some of them
fire in special ways, or fire more projectiles

The shockwave is now no longer able to fit any variant of an AOE mod, to
stop people from one-shotting everything,

The shotgun damage has been reduced as well, making up for the fact it
fires three shots.

Comments have been added for the existing variants explaining the
reasoning for their current damage level.

Adds a new var for restricted MOD types, allowing for other pkas having
this added in the future.
## Why It's Good For The Game
It is not fun for other miners when someone three shots a boss they
havent even had a chance to think about yet.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

# change

</details>

## Changelog
🆑
balance: rebalanced PKA-Alts
fix: the shockwave PKA can no longer attach AOE kits.
/🆑

---------

Co-authored-by: Roxy <94389951+SapphoQueer@users.noreply.github.com>
This commit is contained in:
Manatee
2026-02-26 04:21:26 +01:00
committed by GitHub
co-authored by Roxy
parent d431c271a7
commit 09ee93dc47
2 changed files with 15 additions and 10 deletions
@@ -17,6 +17,7 @@
///The max capacity of modkits the PKA can have installed at once.
var/max_mod_capacity = 100
var/disablemodification = FALSE // Bubber edit, stops removal and addition of mods.
var/disabled_modkits // BUBBER EDIT - ADDITION - Additional var to handle certain modkits being disallwoed on specific PKAs
/obj/item/gun/energy/recharge/kinetic_accelerator/add_bayonet_point()
@@ -344,11 +345,14 @@
if(KA.get_remaining_mod_capacity() >= cost)
if(.)
if(transfer_to_loc && !user.transferItemToLoc(src, KA))
return
to_chat(user, span_notice("You install the modkit."))
playsound(loc, 'sound/items/tools/screwdriver.ogg', 100, TRUE)
KA.modkits |= src
if(!is_type_in_list(src, KA.disabled_modkits)) // BUBBER EDIT - ADDITION - If statement to check if this modkit is disabled on this PKA
if(transfer_to_loc && !user.transferItemToLoc(src, KA))
return
to_chat(user, span_notice("You install the modkit."))
playsound(loc, 'sound/items/tools/screwdriver.ogg', 100, TRUE)
KA.modkits |= src
else
to_chat(user, span_notice("The modkit cannot be installed on this model of kinetic accelerator.")) // BUBBER EDIT - ADDITION - END
else
to_chat(user, span_notice("The modkit you're trying to install would conflict with an already installed modkit. Remove existing modkits first."))
else
@@ -89,6 +89,7 @@
obj_flags = UNIQUE_RENAME
weapon_weight = WEAPON_LIGHT
max_mod_capacity = 75
disabled_modkits = list(/obj/item/borg/upgrade/modkit/aoe) // Should cover all AOE variants
/obj/item/gun/energy/recharge/kinetic_accelerator/shockwave/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
target = get_edge_target_turf(user, user.dir)
@@ -161,7 +162,7 @@
/obj/projectile/kinetic/railgun
name = "hyper kinetic force"
icon_state = null
damage = 100
damage = 100 // Slightly less than a crusher marked hit (110 methinks), but ranged and really fast moving, big movement slowdown and bulky.
damage_type = BRUTE
armor_flag = BOMB
range = 6
@@ -172,7 +173,7 @@
/obj/projectile/kinetic/repeater
name = "rapid kinetic force"
icon_state = null
damage = 20
damage = 20 // Half damage, burst fire and a bit more range.
damage_type = BRUTE
armor_flag = BOMB
range = 4
@@ -181,7 +182,7 @@
/obj/projectile/kinetic/shotgun
name = "split kinetic force"
icon_state = null
damage = 20
damage = 15 // 3 projectiles, 40 base damage. Theoretically more if all shots hit.
damage_type = BRUTE
armor_flag = BOMB
range = 3
@@ -190,7 +191,7 @@
/obj/projectile/kinetic/glock
name = "light kinetic force"
icon_state = null
damage = 10
damage = 10 // Low dmg, high modularity. Can be made great, especially when dual wielded.
damage_type = BRUTE
armor_flag = BOMB
range = 3
@@ -199,7 +200,7 @@
/obj/projectile/kinetic/shockwave
name = "concussive kinetic force"
icon_state = null
damage = 40
damage = 40 // 8 projectiles in a 360 around you. Good for CC and rock clearing.
damage_type = BRUTE
armor_flag = BOMB
range = 1