Adds enemies
This commit is contained in:
parent
cf8ba8bacb
commit
76e5b1927f
324 changed files with 28447 additions and 106 deletions
49
scripts/enemies/enemy.gd
Normal file
49
scripts/enemies/enemy.gd
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
extends CharacterBody3D
|
||||
class_name Enemy
|
||||
|
||||
const MOVEMENT_SPEED = 1
|
||||
|
||||
@onready var animationtree: AnimationTree = $enemies/AnimationPlayer/AnimationTree
|
||||
@onready var agent:NavigationAgent3D = $NavigationAgent
|
||||
@onready var enemyAi: EnemyAI = $BTPlayer
|
||||
@onready var health: Health = $Health
|
||||
|
||||
const SPEED = 5.0
|
||||
const JUMP_VELOCITY = 4.5
|
||||
|
||||
var movementBlend = 0;
|
||||
|
||||
func _ready() -> void:
|
||||
health.death.connect(died)
|
||||
|
||||
func died() -> void:
|
||||
queue_free()
|
||||
|
||||
func updateMovementBlend(delta: float, to: float) -> void:
|
||||
movementBlend = move_toward(movementBlend, to, delta * 2);
|
||||
|
||||
func rotateTo(delta: float, targetDirection: Vector3) -> void:
|
||||
self.global_basis.z = lerp(self.global_basis.z, targetDirection, delta * 10);
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if agent.is_navigation_finished():
|
||||
if enemyAi.aggressive:
|
||||
rotateTo(delta, (Player.Instance.global_position - self.global_position).normalized())
|
||||
|
||||
updateMovementBlend(delta, 0);
|
||||
self.animationtree['parameters/Movement/blend_position'] = movementBlend
|
||||
return
|
||||
|
||||
var current_agent_position: Vector3 = global_position
|
||||
var next_path_position: Vector3 = agent.get_next_path_position()
|
||||
|
||||
velocity = current_agent_position.direction_to(next_path_position) * MOVEMENT_SPEED
|
||||
move_and_slide()
|
||||
|
||||
if enemyAi.aggressive:
|
||||
rotateTo(delta, (Player.Instance.global_position - self.global_position).normalized())
|
||||
else:
|
||||
rotateTo(delta, -velocity.normalized())
|
||||
|
||||
updateMovementBlend(delta, velocity.length())
|
||||
self.animationtree['parameters/Movement/blend_position'] = movementBlend
|
||||
Loading…
Add table
Add a link
Reference in a new issue