Made refinement to CRT enemy movement logic.

This commit is contained in:
Henry 2026-02-28 18:32:40 +00:00
parent 004e1063b8
commit 448009b6e4
5 changed files with 37 additions and 37 deletions

View file

@ -25,15 +25,10 @@ func _on_area_entered(area: Area2D) -> void:
match enemy.enemy_type: match enemy.enemy_type:
"crt": "crt":
if area.is_in_group("enemies"): if area.is_in_group("enemies"):
if enemy.vulnerable == true: print("CRT hit!")
area.hit_detection() area.hit_detection()
queue_free() queue_free()
if enemy.vulnerable == false:
print("blocked!")
enemy.block()
#await bullet_fx()
queue_free()
"shards": "shards":
if area.is_in_group("shards"): if area.is_in_group("shards"):

View file

@ -24,7 +24,7 @@ const TILE = 32
@onready var screensize = get_viewport_rect().size @onready var screensize = get_viewport_rect().size
@onready var timer = $MoveTimer @onready var timer = $MoveTimer
@onready var crt = get_node("CRT") @onready var crt = $CRT
func _ready(): func _ready():
timer.start() timer.start()
@ -57,25 +57,28 @@ func _on_direction_timer_timeout():
direction = Vector2(0,1) direction = Vector2(0,1)
can_shoot = true can_shoot = true
vulnerable = true vulnerable = true
#$DirectionTimer.start()
1: 1:
$CRT.frame = 1 $CRT.frame = 1
direction = Vector2(1,0) direction = Vector2(1,0)
can_shoot = false can_shoot = false
vulnerable = false vulnerable = false
#$DirectionTimer.start()
2: 2:
$CRT.frame = 2 $CRT.frame = 2
direction = Vector2(-1,0) direction = Vector2(-1,0)
can_shoot = false can_shoot = false
vulnerable = false vulnerable = false
#$DirectionTimer.start()
$DirectionTimer.start()
func _on_shoot_timer_timeout(): func _on_shoot_timer_timeout():
if can_shoot == true: if can_shoot == true:
var b = bullet_scene.instantiate() var b = bullet_scene.instantiate()
get_tree().root.add_child(b) get_tree().root.add_child(b)
b.start(position) b.start(position)
$ShootTimer.wait_time = randf_range(4, 20) #$ShootTimer.wait_time = randf_range(4, 20)
$ShootTimer.start() $ShootTimer.start()
else: else:
@ -86,6 +89,7 @@ func _process(delta):
if stunned == true: if stunned == true:
return return
if stunned == false:
position += direction * speed * delta position += direction * speed * delta
if position.x > screensize.x + 32: if position.x > screensize.x + 32:
@ -97,6 +101,8 @@ func _process(delta):
func hit_detection(): func hit_detection():
if exploding: return if exploding: return
if vulnerable == true:
exploding = true exploding = true
EventBus.enemy_hit.emit(5) EventBus.enemy_hit.emit(5)
speed = 0 speed = 0
@ -107,16 +113,18 @@ func hit_detection():
queue_free() queue_free()
EventBus.enemy_died.emit() EventBus.enemy_died.emit()
if vulnerable == false:
block()
func block(): func block():
if blocking: return #if blocking: return
blocking = true #blocking = true
stunned = true stunned = true
await get_tree().create_timer(5).timeout
shader_active = true shader_active = true
crt.material.set_shader_parameter("toggle", 1.0) crt.material.set_shader_parameter("toggle", 1.0)
await get_tree().create_timer(1).timeout await get_tree().create_timer(5).timeout
shader_active = false
crt.material.set_shader_parameter("toggle", 0.0) crt.material.set_shader_parameter("toggle", 0.0)
shader_active = false
stunned = false stunned = false

View file

@ -221,11 +221,11 @@ shape = SubResource("RectangleShape2D_4gyqm")
one_shot = true one_shot = true
[node name="ShootTimer" type="Timer" parent="." unique_id=1985644907] [node name="ShootTimer" type="Timer" parent="." unique_id=1985644907]
wait_time = 0.35 wait_time = 0.25
one_shot = true one_shot = true
[node name="DirectionTimer" type="Timer" parent="." unique_id=2080229505] [node name="DirectionTimer" type="Timer" parent="." unique_id=2080229505]
wait_time = 0.25 wait_time = 0.75
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=702523492] [node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=702523492]
libraries/ = SubResource("AnimationLibrary_7ellt") libraries/ = SubResource("AnimationLibrary_7ellt")

View file

@ -121,9 +121,6 @@ func _on_area_entered(area):
if area.is_in_group("enemy_bullets") and self.monitoring == true: if area.is_in_group("enemy_bullets") and self.monitoring == true:
damage_taken.emit() damage_taken.emit()
#if area.is_in_group("shards"):
# shield -= int(max_shield / 2)
func _on_damage_taken(): func _on_damage_taken():
if shield == 0: if shield == 0:

View file

@ -37,7 +37,7 @@ func spawn_enemies():
await get_tree().process_frame await get_tree().process_frame
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size()) print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
if wave_count == 1: #This is for CRTs if wave_count == 0: #This is for CRTs
print("Enemy Wave: ", wave_count) print("Enemy Wave: ", wave_count)
enemy = CRT enemy = CRT
var cols_mod = COLS - 1 var cols_mod = COLS - 1
@ -52,7 +52,7 @@ func spawn_enemies():
enemy_count = rows_mod * cols_mod enemy_count = rows_mod * cols_mod
await get_tree().process_frame await get_tree().process_frame
if wave_count == 0: #This if for Mirror if wave_count == 1: #This if for Mirror
print("Enemy Wave: ", wave_count) print("Enemy Wave: ", wave_count)
# Spawn Table # Spawn Table