Files
vgstation13/code/modules/spells/targeted/projectile/fireball.dm
sood 1c6129516e Fireball no longer breaches floors, does more damage in proximity to compensate (#29395)
* Nerfs wizard fireball

* Buff non-explosion spell damage to compensate
2021-05-06 03:17:59 -05:00

91 lines
2.5 KiB
Plaintext

/spell/targeted/projectile/dumbfire/fireball
name = "Fireball"
abbreviation = "FB"
desc = "This spell conjures a fireball that will fly in the direction you're facing and explode on collision with anything, or when it gets close to anyone else."
user_type = USER_TYPE_WIZARD
specialization = SSOFFENSIVE
proj_type = /obj/item/projectile/spell_projectile/fireball
school = "evocation"
charge_max = 100
spell_flags = IS_HARMFUL
invocation = "ONI SOMA"
invocation_type = SpI_SHOUT
range = 20
cooldown_min = 20 //10 deciseconds reduction per rank
spell_flags = 0
spell_aspect_flags = SPELL_FIRE
duration = 20
projectile_speed = 1
amt_dam_brute = 40
amt_dam_fire = 45
var/ex_severe = -1
var/ex_heavy = 0
var/ex_light = 3
var/ex_flash = 5
level_max = list(Sp_TOTAL = 5, Sp_SPEED = 4, Sp_POWER = 1)
hud_state = "wiz_fireball"
/spell/targeted/projectile/dumbfire/fireball/prox_cast(var/list/targets, spell_holder)
for(var/mob/living/M in targets)
apply_spell_damage(M)
explosion(get_turf(spell_holder), ex_severe, ex_heavy, ex_light, ex_flash)
return targets
/spell/targeted/projectile/dumbfire/fireball/choose_prox_targets(mob/user = usr, var/atom/movable/spell_holder)
var/list/targets = ..()
for(var/mob/living/M in targets)
if(M.lying)
targets -= M
return targets
/spell/targeted/projectile/dumbfire/fireball/empower_spell()
spell_levels[Sp_POWER]++
var/explosion_description = ""
switch(spell_levels[Sp_POWER])
if(0)
name = "Fireball"
explosion_description = "It will now create a small explosion."
if(1)
name = "Controlled Fireball"
explosion_description = "The fireball will no longer only fly in the direction you're facing. Now you're able to shoot it wherever you want."
spell_flags |= WAIT_FOR_CLICK
dumbfire = 0
else
return
return "You have improved Fireball into [name]. [explosion_description]"
/spell/targeted/projectile/dumbfire/fireball/is_valid_target(var/atom/target)
if(!istype(target))
return 0
if(target == holder)
return 0
return (isturf(target) || isturf(target.loc))
/spell/targeted/projectile/dumbfire/fireball/get_upgrade_info(upgrade_type, level)
if(upgrade_type == Sp_POWER)
return "Make the spell targetable."
return ..()
//PROJECTILE
/obj/item/projectile/spell_projectile/fireball
name = "fireball"
icon_state = "fireball"
animate_movement = 2
linear_movement = 0
/obj/item/projectile/spell_projectile/fireball/to_bump(var/atom/A)
if(!isliving(A))
forceMove(get_turf(A))
return ..()