From ccb4781460790031bbd21522bb4d1e6dd81341d2 Mon Sep 17 00:00:00 2001 From: derek Date: Mon, 28 Apr 2025 16:57:22 -0500 Subject: [PATCH] more tweaks to ai --- scripts/EnemyIdle.gd | 3 +++ scripts/EnemySearch.gd | 3 +++ scripts/EnemyStates.gd | 15 ++++++++++++--- scripts/spider.gd | 1 - 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/scripts/EnemyIdle.gd b/scripts/EnemyIdle.gd index 4a30730..c9703ae 100644 --- a/scripts/EnemyIdle.gd +++ b/scripts/EnemyIdle.gd @@ -32,6 +32,9 @@ func Enter(): func Update(delta: float): super(delta) + + attack_on_sight() + if wander_time > 0: wander_time -= delta else: diff --git a/scripts/EnemySearch.gd b/scripts/EnemySearch.gd index fcfdcc3..8c996c4 100644 --- a/scripts/EnemySearch.gd +++ b/scripts/EnemySearch.gd @@ -20,6 +20,9 @@ func Enter(): func Update(delta: float): super(delta) + + attack_on_sight() + if search_time > 0: search_time -= delta else: diff --git a/scripts/EnemyStates.gd b/scripts/EnemyStates.gd index 895c3d9..98fd8dc 100644 --- a/scripts/EnemyStates.gd +++ b/scripts/EnemyStates.gd @@ -4,12 +4,12 @@ class_name EnemyState @export var enemy : CharacterBody3D @export var move_speed : float = 3 @export var can_see : bool = false # indicates whether the enemy is able to see things in the state +@export var time_to_lose_target = 1.0 +@onready var target_lost_timer = time_to_lose_target func Update(delta): - if can_see: - if enemy.is_player_in_area() and enemy.is_player_visible(): - Transitioned.emit(self,"attack") + pass func move_target(): if enemy.player_last_seen != null: @@ -22,3 +22,12 @@ func move_target(): return move_point["point"] else: Transitioned.emit(self,"idle") + +func attack_on_sight(): + if can_see: + if enemy.is_player_in_area() and enemy.is_player_visible(): + Transitioned.emit(self,"attack") + +func search_on_lost_target(delta): + if !enemy.is_player_visible(): + Transitioned.emit(self,"attack") diff --git a/scripts/spider.gd b/scripts/spider.gd index 20ff798..6954847 100644 --- a/scripts/spider.gd +++ b/scripts/spider.gd @@ -81,7 +81,6 @@ var health var ammo var line_of_sight_target -var character_follow var player_last_seen var points_of_interest