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 tw.explosion_damage = int(round(tw.explosion_damage * 0.33)) get_parent().call_deferred("add_child", tw)