summaryrefslogtreecommitdiff
path: root/scenes
diff options
context:
space:
mode:
Diffstat (limited to 'scenes')
-rw-r--r--scenes/defenders/base_animation_handler.gd (renamed from scenes/defenders/warlock_animator.gd)16
-rw-r--r--scenes/defenders/base_animation_handler.gd.uid1
-rw-r--r--scenes/defenders/warlock.gd21
-rw-r--r--scenes/defenders/warlock.tscn4
-rw-r--r--scenes/defenders/warlock_animation_handler.gd6
-rw-r--r--scenes/defenders/warlock_animation_handler.gd.uid (renamed from scenes/defenders/warlock_animator.gd.uid)0
-rw-r--r--scenes/defenders/warlock_projectile.gd4
-rw-r--r--scenes/levels/L1.tscn1
8 files changed, 35 insertions, 18 deletions
diff --git a/scenes/defenders/warlock_animator.gd b/scenes/defenders/base_animation_handler.gd
index be14337..c9e7630 100644
--- a/scenes/defenders/warlock_animator.gd
+++ b/scenes/defenders/base_animation_handler.gd
@@ -2,10 +2,9 @@ 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
+var idle : Rect2
+var attack : Rect2
+var is_idle : bool = true
func _ready():
update_texture()
@@ -15,4 +14,11 @@ func update_texture():
atlas_texture.atlas = tile_map
atlas_texture.region = idle if is_idle else attack
texture = atlas_texture
- print(atlas_texture.region)
+
+func attack_state():
+ is_idle = false
+ update_texture()
+
+func idle_state():
+ is_idle = true
+ update_texture()
diff --git a/scenes/defenders/base_animation_handler.gd.uid b/scenes/defenders/base_animation_handler.gd.uid
new file mode 100644
index 0000000..75b9ff2
--- /dev/null
+++ b/scenes/defenders/base_animation_handler.gd.uid
@@ -0,0 +1 @@
+uid://cb5we0gjjbcfu
diff --git a/scenes/defenders/warlock.gd b/scenes/defenders/warlock.gd
index b8d143b..fbc6a3f 100644
--- a/scenes/defenders/warlock.gd
+++ b/scenes/defenders/warlock.gd
@@ -4,7 +4,7 @@ extends StaticBody2D
@onready var sprite_node = $Sprite2D
var projectile = preload("res://scenes/defenders/warlock_projectile.tscn")
-var path_name
+var curr
func select_target(targets):
var tmp = []
@@ -13,29 +13,32 @@ func select_target(targets):
tmp.append(i)
# this is all to select the furthest target on the track
- var curr = null
+ curr = null
for i in tmp:
if curr == null:
curr = i.get_node("../")
else:
if i.get_parent().get_progress() > curr.get_progress():
curr = i.get_node("../")
- path_name = null if (curr == null) else curr.get_parent().name
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()
+ handle_animation()
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()
+ handle_animation()
func _on_fire_rate_timeout():
- if (path_name != null):
+ if (curr != null):
var tmp_projectile = projectile.instantiate()
- tmp_projectile.path_name = path_name
+ tmp_projectile.curr = curr
tmp_projectile.projectile_damage = projectile_damage
get_node("ProjectileContainer").call_deferred("add_child", tmp_projectile)
tmp_projectile.global_position = $Aim.global_position
+
+func handle_animation():
+ if (curr == null):
+ sprite_node.idle_state()
+ else:
+ sprite_node.attack_state()
diff --git a/scenes/defenders/warlock.tscn b/scenes/defenders/warlock.tscn
index 3ab694d..d306d41 100644
--- a/scenes/defenders/warlock.tscn
+++ b/scenes/defenders/warlock.tscn
@@ -1,13 +1,13 @@
[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="Script" uid="uid://6i27kmcpl7ix" path="res://scenes/defenders/warlock_animator.gd" id="2_rpypk"]
+[ext_resource type="Script" uid="uid://6i27kmcpl7ix" path="res://scenes/defenders/warlock_animation_handler.gd" id="2_rpypk"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_wu3n4"]
size = Vector2(16, 16)
[sub_resource type="CircleShape2D" id="CircleShape2D_rpypk"]
-radius = 64.0
+radius = 48.0
[node name="Warlock" type="StaticBody2D"]
script = ExtResource("1_rpypk")
diff --git a/scenes/defenders/warlock_animation_handler.gd b/scenes/defenders/warlock_animation_handler.gd
new file mode 100644
index 0000000..49c2b8a
--- /dev/null
+++ b/scenes/defenders/warlock_animation_handler.gd
@@ -0,0 +1,6 @@
+extends "res://scenes/defenders/base_animation_handler.gd"
+
+func _ready():
+ idle = Rect2(496, 16, 16, 16)
+ attack = Rect2(496, 32, 16, 16)
+ update_texture()
diff --git a/scenes/defenders/warlock_animator.gd.uid b/scenes/defenders/warlock_animation_handler.gd.uid
index 4fa3cf7..4fa3cf7 100644
--- a/scenes/defenders/warlock_animator.gd.uid
+++ b/scenes/defenders/warlock_animation_handler.gd.uid
diff --git a/scenes/defenders/warlock_projectile.gd b/scenes/defenders/warlock_projectile.gd
index 2757019..2188c38 100644
--- a/scenes/defenders/warlock_projectile.gd
+++ b/scenes/defenders/warlock_projectile.gd
@@ -2,13 +2,13 @@ extends CharacterBody2D
var target
var speed = 100
-var path_name = ""
+var curr = ""
var projectile_damage
func _physics_process(_delta: float):
var path_spawner_node = get_tree().get_root().get_node("Main/PathSpawner")
for i in path_spawner_node.get_child_count():
- if path_spawner_node.get_child(i).name == path_name:
+ if path_spawner_node.get_child(i).name == curr.get_parent().name:
target = path_spawner_node.get_child(i).get_child(0).get_child(0)
# another tower destroyed this target
diff --git a/scenes/levels/L1.tscn b/scenes/levels/L1.tscn
index 323ba6f..1231f7a 100644
--- a/scenes/levels/L1.tscn
+++ b/scenes/levels/L1.tscn
@@ -13,6 +13,7 @@ curve = SubResource("Curve2D_tjuek")
[node name="PathFollow2D" type="PathFollow2D" parent="."]
position = Vector2(-8, 168)
+rotates = false
loop = false
[node name="CrawlerSoldier" parent="PathFollow2D" instance=ExtResource("1_mao1c")]