32 lines
827 B
GDScript
32 lines
827 B
GDScript
extends ProjectileBase
|
|
|
|
var explosion_scene = preload("res://scenes/explosion.tscn")
|
|
var tornado_scene = preload("res://scenes/tornado.tscn")
|
|
@onready var perk_effects = get_node("/root/Game/PerkEffects")
|
|
|
|
func _ready() -> void:
|
|
super()
|
|
damage = 10
|
|
|
|
func _on_body_entered(body: Node2D) -> void:
|
|
if not body.is_in_group("enemies"):
|
|
return
|
|
body.take_damage(damage)
|
|
match perk_effects.get_mode("fireball.impact"):
|
|
"explosion":
|
|
_spawn_explosion()
|
|
"spawn_tornado":
|
|
_spawn_tornado()
|
|
queue_free()
|
|
|
|
func _spawn_explosion() -> void:
|
|
var boom = explosion_scene.instantiate()
|
|
boom.global_position = global_position
|
|
get_parent().call_deferred("add_child", boom)
|
|
|
|
func _spawn_tornado() -> void:
|
|
var tw = tornado_scene.instantiate()
|
|
tw.global_position = global_position
|
|
get_parent().call_deferred("add_child", tw)
|
|
|