summaryrefslogtreecommitdiff
path: root/scripts/warlock.gd
blob: e19b394f99476c0d2cbfbb33486c249ef50e8310 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
extends "res://scripts/base_defender.gd"

var projectile: PackedScene = preload("res://scenes/warlock_projectile.tscn")

func _ready():
	set_tower_stats(game_stats_config.defenders_index.WARLOCK)
	reset_tower_range()
	reset_tower_sprite()

func _on_fire_timer_timeout():
	select_target()
	if (target != null):
		var bolt = _get_projectile()
		bolt.target = target
		get_node("ProjectileContainer").call_deferred("add_child", bolt)
		bolt.global_position = $Aim.global_position
	else:
		$FireTimer.stop()

func _get_projectile() -> CharacterBody2D:
	var bolt = projectile.instantiate()
	bolt.speed = tower_data["projectile_speed"]
	bolt.projectile_damage = tower_data["damage"]
	bolt.chaos_factor = tower_data["chaos_factor"]
	bolt.max_lifetime = tower_data["max_projectile_lifetime"]
	return bolt