Files
Aurora.3/code/modules/custom_ka/projectiles.dm
Geeves d19cf6e3d6 KA Leftovers Fix (#10165)
KAs no longer leave behind phantom projectiles that injure people.
    KAs no longer recursively destroy rocks when one breaks, but still retain AoE effects.
    KAs now have at least one tile of AoE on all modules.

Also fixes a runtime with pin attackby.
2020-10-06 15:06:10 +03:00

44 lines
1.4 KiB
Plaintext

//Projectiles
/obj/item/projectile/kinetic
name = "kinetic force"
icon_state = null
damage = 0 //Base damage handled elsewhere.
damage_type = BRUTE
check_armor = "bomb"
range = 5
var/pressure_decrease = 0.25
var/base_damage = 0
var/aoe_shot = FALSE
ignore_source_check = TRUE
/obj/item/projectile/kinetic/mech
damage = 40
aoe = 5
/obj/item/projectile/kinetic/mech/burst
damage = 25
/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(target_turf)
/obj/item/projectile/kinetic/proc/do_damage(var/turf/T, var/living_damage = 1, var/mineral_damage = 1)
var/datum/gas_mixture/environment = T.return_air()
living_damage *= max(1 - (environment.return_pressure() / 100) * 0.75, 0)
new /obj/effect/overlay/temp/kinetic_blast(T)
for(var/mob/living/L in T)
L.take_overall_damage(min(living_damage, 50))
L.visible_message(SPAN_DANGER("\The [L] is hit by \the [src]!"), SPAN_DANGER("You are hit by \the [src]!"))
if(istype(T, /turf/simulated/mineral))
var/turf/simulated/mineral/M = T
M.kinetic_hit(mineral_damage)
/obj/item/projectile/kinetic/proc/strike_thing(var/turf/target_turf)
for(var/new_target in RANGE_TURFS(aoe, target_turf))
var/turf/aoe_turf = new_target
do_damage(aoe_turf, max(base_damage - base_damage * get_dist(aoe_turf, target_turf) * 0.25, 0), base_damage)
if(!QDELETED(src))
qdel(src)