Added enemy spawn speed
This commit is contained in:
@@ -19,11 +19,15 @@ const MAX_POSITION = Vector2(600, 330)
|
|||||||
|
|
||||||
|
|
||||||
func create_enemy(enemy_data: EnemyData) -> void:
|
func create_enemy(enemy_data: EnemyData) -> void:
|
||||||
|
var player := _get_random_player()
|
||||||
|
if player == null: return
|
||||||
|
|
||||||
var enemy_scene : PackedScene = load(enemy_data.enemy_scene)
|
var enemy_scene : PackedScene = load(enemy_data.enemy_scene)
|
||||||
var enemy : AbstractEnemyShip = enemy_scene.instantiate()
|
var enemy : AbstractEnemyShip = enemy_scene.instantiate()
|
||||||
passage.add_child(enemy)
|
passage.add_child(enemy)
|
||||||
enemy.position = enemy_data.spawn_point
|
enemy.position = enemy_data.spawn_point
|
||||||
enemy.enemy_data = enemy_data
|
enemy.enemy_data = enemy_data
|
||||||
|
enemy.velocity = enemy.position.direction_to(player.position) * enemy.max_speed
|
||||||
_update_enemy.call_deferred(enemy)
|
_update_enemy.call_deferred(enemy)
|
||||||
|
|
||||||
|
|
||||||
@@ -38,17 +42,11 @@ func _on_enemy_update_timer_timeout() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _update_enemy(enemy: AbstractEnemyShip) -> void:
|
func _update_enemy(enemy: AbstractEnemyShip) -> void:
|
||||||
var players := get_tree().get_nodes_in_group("players")
|
var player := _get_random_player()
|
||||||
if players.is_empty():
|
if player:
|
||||||
|
_target_enemy_to_player(enemy, player)
|
||||||
|
else:
|
||||||
_random_move_enemy(enemy)
|
_random_move_enemy(enemy)
|
||||||
return
|
|
||||||
|
|
||||||
var player : Node = players.pick_random()
|
|
||||||
if not player is PlayerShip:
|
|
||||||
_random_move_enemy(enemy)
|
|
||||||
return
|
|
||||||
|
|
||||||
_target_enemy_to_player(enemy, player)
|
|
||||||
|
|
||||||
|
|
||||||
func _target_enemy_to_player(enemy: AbstractEnemyShip, player: PlayerShip) -> void:
|
func _target_enemy_to_player(enemy: AbstractEnemyShip, player: PlayerShip) -> void:
|
||||||
@@ -90,3 +88,12 @@ func _random_move_enemy(enemy: AbstractEnemyShip) -> void:
|
|||||||
randf_range(MIN_POSITION.x, MAX_POSITION.x),
|
randf_range(MIN_POSITION.x, MAX_POSITION.x),
|
||||||
randf_range(MIN_POSITION.y, MAX_POSITION.y)
|
randf_range(MIN_POSITION.y, MAX_POSITION.y)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
func _get_random_player() -> PlayerShip:
|
||||||
|
var players := get_tree().get_nodes_in_group("players")
|
||||||
|
if players.is_empty():
|
||||||
|
return null
|
||||||
|
|
||||||
|
var player : PlayerShip = players.pick_random()
|
||||||
|
return player
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ func _get_enemy_type() -> EnemyType:
|
|||||||
|
|
||||||
|
|
||||||
func _full_spawn(data: EnemyData) -> void:
|
func _full_spawn(data: EnemyData) -> void:
|
||||||
data.spawn_point.x = 750
|
data.spawn_point.x = 710
|
||||||
data.spawn_point.y = spawn_rng.randf_range(0.0, 360.0)
|
data.spawn_point.y = spawn_rng.randf_range(0.0, 360.0)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user