mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 07:32:02 +00:00
The results are in: Science doesn't always provide mining with kinetic accelerators. As a result of these findings, high level kinetic accelerators now have increased drop chances in the warehouse and in abandoned crates. Also, kinetic accelerators no longer dig holes.
38 lines
1.1 KiB
Plaintext
38 lines
1.1 KiB
Plaintext
//Projectiles
|
|
/obj/item/projectile/kinetic
|
|
name = "kinetic force"
|
|
icon_state = null
|
|
damage = 0 //Base damage handled elsewhere.
|
|
damage_type = BRUTE
|
|
check_armour = "bomb"
|
|
range = 5
|
|
var/pressure_decrease = 0.25
|
|
|
|
/obj/item/projectile/kinetic/on_impact(var/atom/A,var/aoe_scale = 1, var/damage_scale = 1)
|
|
var/turf/target_turf = get_turf(A)
|
|
if(!target_turf)
|
|
target_turf = get_turf(src)
|
|
if(istype(target_turf))
|
|
var/datum/gas_mixture/environment = target_turf.return_air()
|
|
|
|
damage *= max(1 - (environment.return_pressure()/100)*0.75,0)
|
|
|
|
if(isliving(A)) //Never do more than 15 damage to a living being per shot.
|
|
damage = min(damage,15)
|
|
|
|
strike_thing(A,aoe*aoe_scale,damage)
|
|
|
|
. = ..()
|
|
|
|
/obj/item/projectile/kinetic/proc/strike_thing(atom/target,var/new_aoe,var/damage_scale)
|
|
|
|
var/turf/target_turf = get_turf(target)
|
|
if(istype(target_turf, /turf/simulated/mineral))
|
|
var/turf/simulated/mineral/M = target_turf
|
|
M.kinetic_hit(damage,dir)
|
|
|
|
new /obj/effect/overlay/temp/kinetic_blast(target_turf)
|
|
|
|
if(new_aoe > 0)
|
|
for(var/new_target in orange(new_aoe, target_turf))
|
|
src.on_impact(new_target,0,0.5) |