mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 17:52:36 +00:00
Partially reverts #89619, where I partially reverted #87936; Puts back the mining and damage AOE damage on Mech PKA, but improves the standard modkits as well (#89993)
## About The Pull Request In #89619, I removed the mech PKA's mining AOE and reduced the damaging AOE to a fraction of the damage. I have restored both of these aspects, but I have also applied this change to the standard PKA's mining and damage AOE. I have also included the mob biotype limitations as well. AOE modkits take 10% capacity, now allowing miners to use them in more setups. However, they conflict with one another. You can only have one AOE mod until you can get the dual AOE mod from tendrils. The AOE damage/mining effect is now a 2 tile effect rather than 1 tile effect. ## Why It's Good For The Game My intent in the previous PR was to bring mech PKA's down to standard mining limitations. So, why not improve those standards for everyone instead? The new state of mining expects you to be dealing with a lot of mobs at once. Even small vents can, on occasion, decide to spit out several goliaths back to back. That's a lot of mobs with a lot of health. Miners need AOE options more than ever. They have very little that are actually meaningful, sadly. So my intent here is that this should be an expectation for our miners to be seeking out and can fit into their current, standard gameplay. Certainly I've only felt like shit having to sacrifice a damage or cooldown mod for an AOE mod, only to get a very minor amount of damage splash for my efforts. That, and the radius doesn't usually impact most mobs as they spawn and attack from awkward angles or distances from one another where they are JUST out of reach of one another. Trying to use the splash to hit multiple enemies is often not worth it compared to just hitting one enemy at a time with a lot of damage. So, let's just go with the standard of 'Good AOE is fundamentally needed now' and worth from that premise. ## Changelog 🆑 balance: Mech PKA now once again mines turfs and does full damage on its AOE explosion (still only hitting mining mobs). balance: The standard PKA AOE mods are now by default 10% capacity. But they cannot be used with one another. balance: The standard PKA offensive AOE mod now does the PKA's full damage in its AOE. balance: Mining AOEs will affect everything within a 2 tile radius around the point of impact, up from a 1 tile radius. /🆑 --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
This commit is contained in:
@@ -249,7 +249,7 @@
|
||||
modkit_upgrade.projectile_strike(src, target_turf, target, kinetic_gun)
|
||||
if(ismineralturf(target_turf))
|
||||
var/turf/closed/mineral/M = target_turf
|
||||
M.gets_drilled(firer, TRUE)
|
||||
M.gets_drilled(firer, 1)
|
||||
if(iscarbon(firer))
|
||||
var/mob/living/carbon/carbon_firer = firer
|
||||
var/skill_modifier = 1
|
||||
@@ -264,18 +264,19 @@
|
||||
/obj/projectile/kinetic/mech
|
||||
range = 5
|
||||
damage = 50
|
||||
//the multiplier we apply to our PKa's AOE effect.
|
||||
var/aoe_damage_multiplier = 0.3
|
||||
|
||||
/obj/projectile/kinetic/mech/strike_thing(atom/target)
|
||||
. = ..()
|
||||
new /obj/effect/temp_visual/explosion/fast(get_turf(target))
|
||||
|
||||
for(var/mob/living/living_mob in range(1, target) - firer - target)
|
||||
for(var/turf/closed/mineral/mineral_turf in RANGE_TURFS(2, target) - target)
|
||||
mineral_turf.gets_drilled(firer, 0.1)
|
||||
|
||||
for(var/mob/living/living_mob in range(2, target) - firer - target)
|
||||
if(!ismining(living_mob))
|
||||
continue
|
||||
var/armor = living_mob.run_armor_check(def_zone, armor_flag, armour_penetration = armour_penetration)
|
||||
living_mob.apply_damage(damage*aoe_damage_multiplier, damage_type, def_zone, armor)
|
||||
living_mob.apply_damage(damage, damage_type, def_zone, armor)
|
||||
to_chat(living_mob, span_userdanger("You're struck by a [name]!"))
|
||||
|
||||
//Modkits
|
||||
@@ -426,6 +427,8 @@
|
||||
//AoE blasts
|
||||
/obj/item/borg/upgrade/modkit/aoe
|
||||
modifier = 0
|
||||
cost = 10
|
||||
maximum_of_type = 1
|
||||
var/turf_aoe = FALSE
|
||||
var/stats_stolen = FALSE
|
||||
|
||||
@@ -450,20 +453,25 @@
|
||||
/obj/item/borg/upgrade/modkit/aoe/modify_projectile(obj/projectile/kinetic/K)
|
||||
K.name = "kinetic explosion"
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA)
|
||||
/obj/item/borg/upgrade/modkit/aoe/projectile_strike(obj/projectile/kinetic/kinetic_blast, turf/target_turf, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA)
|
||||
if(stats_stolen)
|
||||
return
|
||||
new /obj/effect/temp_visual/explosion/fast(target_turf)
|
||||
if(turf_aoe)
|
||||
for(var/T in RANGE_TURFS(1, target_turf) - target_turf)
|
||||
for(var/T in RANGE_TURFS(2, target_turf) - target_turf)
|
||||
if(ismineralturf(T))
|
||||
var/turf/closed/mineral/M = T
|
||||
M.gets_drilled(K.firer, TRUE)
|
||||
M.gets_drilled(kinetic_blast.firer, 0.1)
|
||||
|
||||
if(modifier)
|
||||
for(var/mob/living/L in range(1, target_turf) - K.firer - target)
|
||||
var/armor = L.run_armor_check(K.def_zone, K.armor_flag, "", "", K.armour_penetration)
|
||||
L.apply_damage(K.damage*modifier, K.damage_type, K.def_zone, armor)
|
||||
to_chat(L, span_userdanger("You're struck by a [K.name]!"))
|
||||
for(var/mob/living/living_mob in range(2, target) - kinetic_blast.firer - target)
|
||||
|
||||
if(!ismining(living_mob))
|
||||
continue
|
||||
|
||||
var/armor = living_mob.run_armor_check(kinetic_blast.def_zone, kinetic_blast.armor_flag, armour_penetration = kinetic_blast.armour_penetration)
|
||||
living_mob.apply_damage(kinetic_blast.damage*modifier, kinetic_blast.damage_type, kinetic_blast.def_zone, armor)
|
||||
to_chat(living_mob, span_userdanger("You're struck by a [kinetic_blast.name]!"))
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/turfs
|
||||
name = "mining explosion"
|
||||
@@ -471,16 +479,15 @@
|
||||
denied_type = /obj/item/borg/upgrade/modkit/aoe/turfs
|
||||
turf_aoe = TRUE
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/turfs/andmobs
|
||||
name = "offensive mining explosion"
|
||||
desc = "Causes the kinetic accelerator to destroy rock and damage mobs in an AoE."
|
||||
maximum_of_type = 3
|
||||
modifier = 0.25
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/mobs
|
||||
name = "offensive explosion"
|
||||
desc = "Causes the kinetic accelerator to damage mobs in an AoE."
|
||||
modifier = 0.2
|
||||
modifier = 1
|
||||
|
||||
/obj/item/borg/upgrade/modkit/aoe/mobs/andturfs
|
||||
name = "offensive mining explosion"
|
||||
desc = "Causes the kinetic accelerator to destroy rock and damage mobs in an AoE."
|
||||
turf_aoe = TRUE
|
||||
|
||||
//Minebot passthrough
|
||||
/obj/item/borg/upgrade/modkit/minebot_passthrough
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
. = ..()
|
||||
if(ismineralturf(target))
|
||||
var/turf/closed/mineral/M = target
|
||||
M.gets_drilled(firer, FALSE)
|
||||
M.gets_drilled(firer)
|
||||
if(mine_range)
|
||||
mine_range--
|
||||
range++
|
||||
|
||||
Reference in New Issue
Block a user