summaryrefslogtreecommitdiff
path: root/scenes/defenders
diff options
context:
space:
mode:
Diffstat (limited to 'scenes/defenders')
-rw-r--r--scenes/defenders/warlock.gd5
-rw-r--r--scenes/defenders/warlock.tscn11
-rw-r--r--scenes/defenders/warlock_animator.gd18
-rw-r--r--scenes/defenders/warlock_animator.gd.uid1
-rw-r--r--scenes/defenders/warlock_projectile.gd3
5 files changed, 30 insertions, 8 deletions
diff --git a/scenes/defenders/warlock.gd b/scenes/defenders/warlock.gd
index de83f39..b8d143b 100644
--- a/scenes/defenders/warlock.gd
+++ b/scenes/defenders/warlock.gd
@@ -2,6 +2,7 @@ extends StaticBody2D
@export var projectile_damage = 5
+@onready var sprite_node = $Sprite2D
var projectile = preload("res://scenes/defenders/warlock_projectile.tscn")
var path_name
@@ -23,9 +24,13 @@ func select_target(targets):
func _on_tower_body_entered(_body: Node2D):
select_target(get_node("Tower").get_overlapping_bodies())
+ sprite_node.is_idle = true if (path_name == null) else false
+ sprite_node.update_texture()
func _on_tower_body_exited(_body: Node2D):
select_target(get_node("Tower").get_overlapping_bodies())
+ sprite_node.is_idle = true if (path_name == null) else false
+ sprite_node.update_texture()
func _on_fire_rate_timeout():
if (path_name != null):
diff --git a/scenes/defenders/warlock.tscn b/scenes/defenders/warlock.tscn
index 47b760a..3ab694d 100644
--- a/scenes/defenders/warlock.tscn
+++ b/scenes/defenders/warlock.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=5 format=3 uid="uid://d27cf3jwfvbqu"]
[ext_resource type="Script" uid="uid://dvhqpgw6vhayu" path="res://scenes/defenders/warlock.gd" id="1_rpypk"]
-[ext_resource type="Texture2D" uid="uid://di2vybjsniag4" path="res://assets/tilemap.png" id="1_wu3n4"]
+[ext_resource type="Script" uid="uid://6i27kmcpl7ix" path="res://scenes/defenders/warlock_animator.gd" id="2_rpypk"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_wu3n4"]
size = Vector2(16, 16)
@@ -26,14 +26,13 @@ shape = SubResource("CircleShape2D_rpypk")
[node name="ProjectileContainer" type="Node" parent="."]
-[node name="Sprite2D" type="Sprite2D" parent="."]
-texture = ExtResource("1_wu3n4")
-region_enabled = true
-region_rect = Rect2(496, 16, 16, 16)
-
[node name="FireRate" type="Timer" parent="."]
autostart = true
+[node name="Sprite2D" type="Sprite2D" parent="."]
+region_rect = Rect2(496, 16, 16, 16)
+script = ExtResource("2_rpypk")
+
[connection signal="body_entered" from="Tower" to="." method="_on_tower_body_entered"]
[connection signal="body_exited" from="Tower" to="." method="_on_tower_body_exited"]
[connection signal="timeout" from="FireRate" to="." method="_on_fire_rate_timeout"]
diff --git a/scenes/defenders/warlock_animator.gd b/scenes/defenders/warlock_animator.gd
new file mode 100644
index 0000000..be14337
--- /dev/null
+++ b/scenes/defenders/warlock_animator.gd
@@ -0,0 +1,18 @@
+extends Sprite2D
+
+@onready var tile_map = preload("res://assets/tilemap.png")
+
+var idle = Rect2(496, 16, 16, 16)
+var attack = Rect2(496, 32, 16, 16)
+
+var is_idle = true
+
+func _ready():
+ update_texture()
+
+func update_texture():
+ var atlas_texture = AtlasTexture.new()
+ atlas_texture.atlas = tile_map
+ atlas_texture.region = idle if is_idle else attack
+ texture = atlas_texture
+ print(atlas_texture.region)
diff --git a/scenes/defenders/warlock_animator.gd.uid b/scenes/defenders/warlock_animator.gd.uid
new file mode 100644
index 0000000..4fa3cf7
--- /dev/null
+++ b/scenes/defenders/warlock_animator.gd.uid
@@ -0,0 +1 @@
+uid://6i27kmcpl7ix
diff --git a/scenes/defenders/warlock_projectile.gd b/scenes/defenders/warlock_projectile.gd
index 0a1cff4..2757019 100644
--- a/scenes/defenders/warlock_projectile.gd
+++ b/scenes/defenders/warlock_projectile.gd
@@ -20,8 +20,7 @@ func _physics_process(_delta: float):
look_at(target)
move_and_slide()
-
func _on_area_2d_body_entered(body: Node2D):
- if "CrawlerSoldier" in body.name:
+ if "Crawler" in body.name:
body.health -= projectile_damage
queue_free()