Made refinement to CRT enemy movement logic.
This commit is contained in:
parent
004e1063b8
commit
448009b6e4
5 changed files with 37 additions and 37 deletions
|
|
@ -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"):
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue