mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-27 18:41:59 +00:00
Making kinetic accelerator AOE iterative (#8346)
This commit is contained in:
committed by
GitHub
parent
088ff5d8ab
commit
f588e0c96a
@@ -7,8 +7,9 @@
|
||||
check_armour = "bomb"
|
||||
range = 5
|
||||
var/pressure_decrease = 0.25
|
||||
var/aoe_s = 1 // aoe scale
|
||||
var/base_damage = 0
|
||||
var/aoe_shot = FALSE
|
||||
ignore_source_check = TRUE
|
||||
|
||||
/obj/item/projectile/kinetic/mech
|
||||
damage = 40
|
||||
@@ -26,16 +27,20 @@
|
||||
damage *= max(1 - (environment.return_pressure()/100)*0.75,0)
|
||||
if(isliving(A)) //Never do more than 50 damage to a living being per shot.
|
||||
damage = min(damage, 50)
|
||||
if(istype(target_turf, /turf/simulated/mineral))
|
||||
var/turf/simulated/mineral/M = target_turf
|
||||
M.kinetic_hit(base_damage, dir)
|
||||
. = ..()
|
||||
|
||||
/obj/item/projectile/kinetic/on_impact(var/atom/A)
|
||||
var/turf/target_turf = get_turf(A)
|
||||
if(!target_turf)
|
||||
target_turf = get_turf(src)
|
||||
if(istype(target_turf))
|
||||
strike_thing(A, aoe * aoe_s)
|
||||
if(istype(target_turf) && !aoe_shot)
|
||||
aoe_shot = TRUE
|
||||
strike_thing(A)
|
||||
|
||||
/obj/item/projectile/kinetic/proc/strike_thing(atom/target, var/new_aoe)
|
||||
/obj/item/projectile/kinetic/proc/strike_thing(atom/target)
|
||||
|
||||
var/turf/target_turf = get_turf(target)
|
||||
if(istype(target_turf, /turf/simulated/mineral))
|
||||
@@ -44,10 +49,8 @@
|
||||
|
||||
new /obj/effect/overlay/temp/kinetic_blast(target_turf)
|
||||
|
||||
if(new_aoe > 0)
|
||||
aoe_s = 0
|
||||
ignore_source_check = TRUE
|
||||
for(var/new_target in orange(new_aoe, target_turf))
|
||||
damage = max(base_damage - base_damage * get_dist(new_target, target_turf) * 0.25, 0)
|
||||
src.Collide(new_target)
|
||||
CHECK_TICK
|
||||
for(var/new_target in orange(aoe, target_turf))
|
||||
damage = max(base_damage - base_damage * get_dist(new_target, target_turf) * 0.25, 0)
|
||||
new /obj/effect/overlay/temp/kinetic_blast(get_turf(new_target))
|
||||
src.Collide(new_target)
|
||||
CHECK_TICK
|
||||
Reference in New Issue
Block a user