mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
91 lines
2.5 KiB
Plaintext
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 ..()
|