Files
CHOMPStation2/code/game/gamemodes/technomancer/spells/projectile/overload.dm
2024-09-30 21:36:41 +02:00

57 lines
2.2 KiB
Plaintext

/datum/technomancer/spell/overload
name = "Overload"
desc = "Fires a bolt of highly unstable energy, that does damaged equal to 0.3% of the technomancer's current reserve of energy. \
This energy pierces all known armor. Energy cost is equal to 10% of maximum core charge."
enhancement_desc = "Will do damage equal to 0.4% of current energy."
spell_power_desc = "Increases damage dealt, up to a cap of 80 damage per shot."
cost = 100
obj_path = /obj/item/spell/projectile/overload
ability_icon_state = "tech_overload"
category = OFFENSIVE_SPELLS
/obj/item/spell/projectile/overload
name = "overload"
icon_state = "overload"
desc = "Hope your Core's full."
cast_methods = CAST_RANGED
aspect = ASPECT_UNSTABLE
spell_projectile = /obj/item/projectile/overload
energy_cost_per_shot = 0 // Handled later
instability_per_shot = 12
cooldown = 10
pre_shot_delay = 4
fire_sound = 'sound/effects/supermatter.ogg'
/obj/item/projectile/overload
name = "overloaded bolt"
icon_state = "bluespace"
damage_type = BURN
armor_penetration = 100
impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser
hitsound_wall = 'sound/weapons/effects/searwall.ogg'
/obj/item/spell/projectile/overload/make_projectile(obj/item/projectile/projectile_type, mob/living/user)
var/obj/item/projectile/overload/P = new projectile_type(get_turf(user))
var/energy_before_firing = core.energy
if(check_for_scepter())
P.damage = round(energy_before_firing * 0.004) // .4% of their current energy pool.
else
P.damage = round(energy_before_firing * 0.003) // .3% of their current energy pool.
P.damage = min(calculate_spell_power(P.damage), 80)
return P
/obj/item/spell/projectile/overload/on_ranged_cast(atom/hit_atom, mob/living/user)
energy_cost_per_shot = round(core.max_energy * 0.10)
..()
/* var/energy_before_firing = core.energy
if(set_up(hit_atom, user))
var/obj/item/projectile/overload/P = new spell_projectile(get_turf(user))
P.launch(hit_atom)
if(check_for_scepter())
P.damage = round(energy_before_firing * 0.004) // .4% of their current energy pool.
else
P.damage = round(energy_before_firing * 0.003) // .3% of their current energy pool.
adjust_instability(instability_per_shot)
return 1
*/