the-crypt/magic/Projectiles/WaveProjectile.gd

32 lines
776 B
GDScript3
Raw Normal View History

2020-07-20 16:36:28 -05:00
extends Projectile
func _ready():
2020-07-21 15:50:32 -05:00
$FireSound.play(0.0)
2020-07-20 16:36:28 -05:00
energy_cost = 2
damage = 1
2020-07-20 23:24:09 -05:00
func on_impact(collision):
if collision.collider.has_method("get_type") && collision.collider.get_type() == "enemy":
var c = collision.collider
c.health -= damage * damage_mod
c.do_knockback(collision.normal)
c.play_hit()
2020-07-21 15:50:32 -05:00
if $FireSound.playing:
set_physics_process(false)
$CollisionShape2D.disabled = true
$Sprite.visible = false
yield($FireSound, "finished")
2020-07-20 23:24:09 -05:00
queue_free()
elif bounces_left != 0:
bounces_left -= 1
look_at(position + velocity.bounce(collision.normal))
launch(null)
2020-07-20 23:24:09 -05:00
else:
2020-07-21 15:50:32 -05:00
if $FireSound.playing:
set_physics_process(false)
$CollisionShape2D.disabled = true
$Sprite.visible = false
yield($FireSound, "finished")
2020-07-20 23:24:09 -05:00
queue_free()