summaryrefslogtreecommitdiff
path: root/scripts/base_defender.gd
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/base_defender.gd')
-rw-r--r--scripts/base_defender.gd13
1 files changed, 6 insertions, 7 deletions
diff --git a/scripts/base_defender.gd b/scripts/base_defender.gd
index 06ac34f..088f235 100644
--- a/scripts/base_defender.gd
+++ b/scripts/base_defender.gd
@@ -12,9 +12,9 @@ var target : CharacterBody2D
var _idle_texture : Texture
var _attack_texture : Texture
-func set_tower_stats(tower_name : String):
- tower_key = tower_name
- tower_data = game_stats_config.defenders[tower_key]
+func set_tower_stats(tower_index : int):
+ tower_data = game_stats_config.defenders[tower_index].duplicate()
+ tower_key = tower_data["desc"]
func reset_tower_range():
$Tower/CollisionShape2D.shape.radius = tower_data["range"]
@@ -24,9 +24,6 @@ func reset_tower_sprite():
_attack_texture = util.get_tile_texture(tower_data["sprite_attacking"])
_idle_state()
-func get_tower_key() -> String:
- return tower_key
-
func select_target() -> void:
var targets : Array = _find_targets()
@@ -73,7 +70,9 @@ func _idle_state():
func apply_upgrade(effects: Dictionary):
for key in effects.keys():
if key in tower_data:
- tower_data[key] += effects[key]
+ tower_data[key] = effects[key]
+ reset_tower_range()
+ reset_tower_sprite()
# extending classes should override below
func _on_fire_timer_timeout() -> void: