Updated Projectile code some more.

This commit is contained in:
Solaris-Shade
2022-03-11 22:23:01 -05:00
parent c5be81c589
commit 171bd18c8a
12 changed files with 83 additions and 63 deletions
@@ -234,15 +234,16 @@
/obj/item/projectile/kinetic/prehit_pierce(atom/target)
. = ..()
if(.)
if(kinetic_gun)
var/list/mods = kinetic_gun.get_modkits()
for(var/obj/item/borg/upgrade/modkit/M in mods)
M.projectile_prehit(src, target, kinetic_gun)
if(!pressure_decrease_active && !lavaland_equipment_pressure_check(get_turf(target)))
name = "weakened [name]"
damage = damage * pressure_decrease
pressure_decrease_active = TRUE
if(. == PROJECTILE_PIERCE_PHASE)
return
if(kinetic_gun)
var/list/mods = kinetic_gun.modkits
for(var/obj/item/borg/upgrade/modkit/modkit in mods)
modkit.projectile_prehit(src, target, kinetic_gun)
if(!pressure_decrease_active && !lavaland_equipment_pressure_check(get_turf(target)))
name = "weakened [name]"
damage = damage * pressure_decrease
pressure_decrease_active = TRUE
/obj/item/projectile/kinetic/on_range()
strike_thing()
@@ -445,22 +445,22 @@
continue
O.take_damage(aoe_structure_damage * get_damage_coeff(O), BURN, "laser", FALSE)
/obj/item/projectile/beam/beam_rifle/proc/check_pierce(atom/A)
/obj/item/projectile/beam/beam_rifle/prehit_pierce(atom/A)
if(isclosedturf(A) && (wall_pierce < wall_pierce_amount))
if(prob(wall_devastate))
if(iswallturf(A))
var/turf/closed/wall/W = A
W.dismantle_wall(TRUE, TRUE)
else
target.ex_act(EXPLODE_HEAVY)
A.ex_act(EXPLODE_HEAVY)
++wall_pierce
return PROJECTILE_PIERCE_PHASE // yeah this gun is a snowflakey piece of garbage - Silly-Cons
if(isobj(A) && (structure_pierce < structure_pierce_amount))
++structure_pierce
var/obj/O = A
O.take_damage((impact_structure_damage + aoe_structure_damage) * structure_bleed_coeff * get_damage_coeff(A), BURN, ENERGY, FALSE)
O.take_damage((impact_structure_damage + aoe_structure_damage) * structure_bleed_coeff * get_damage_coeff(A), BURN, "energy", FALSE)
return PROJECTILE_PIERCE_PHASE // ditto and this could be refactored to on_hit honestly - Silly-Cons
return ..()
return ..()
/obj/item/projectile/beam/beam_rifle/proc/get_damage_coeff(atom/target)
if(istype(target, /obj/machinery/door))