ammo consistent between states, enemy will reload automatically if low but not depleted
This commit is contained in:
@@ -7,17 +7,16 @@ var heartbeat : float = 3.0
|
||||
@export var between_shot_time : Vector2 = Vector2(.5,2.0)
|
||||
@export var reload_time : float = 7.0
|
||||
@export var alarm_sound : AudioStreamPlayer3D
|
||||
@export var time_before_losing_visual : float = 2.0
|
||||
@export var time_before_losing_visual : float = 1.0
|
||||
|
||||
var ammo
|
||||
var initial_timer
|
||||
var shot_timer = 0.0
|
||||
var visibility_timer
|
||||
|
||||
func Enter():
|
||||
super()
|
||||
visibility_timer = time_before_losing_visual
|
||||
update_waypoint()
|
||||
ammo = enemy.max_ammo
|
||||
enemy.turret_material.emission_enabled = true
|
||||
initial_timer = initial_wait_time
|
||||
alarm_sound.play()
|
||||
@@ -25,12 +24,21 @@ func Enter():
|
||||
func update_waypoint():
|
||||
enemy.nav_agent.set_target_position(enemy.character_follow.global_position)
|
||||
|
||||
func current_target():
|
||||
if enemy.is_player_visible():
|
||||
return enemy.character_follow.global_position
|
||||
else:
|
||||
return enemy.point_of_interest
|
||||
|
||||
func Update(delta):
|
||||
if !enemy.is_player_visible():
|
||||
if visibility_timer > 0:
|
||||
visibility_timer -= delta
|
||||
else:
|
||||
Transitioned.emit(self,"search")
|
||||
if enemy.ammo <= 4:
|
||||
Transitioned.emit(self,"reload")
|
||||
else:
|
||||
Transitioned.emit(self,"search")
|
||||
else:
|
||||
visibility_timer = time_before_losing_visual
|
||||
|
||||
@@ -43,7 +51,7 @@ func Update(delta):
|
||||
initial_timer -= delta
|
||||
else:
|
||||
#fire if player in view
|
||||
if ammo > 0:
|
||||
if enemy.ammo > 0:
|
||||
if shot_timer > 0:
|
||||
shot_timer -= delta
|
||||
else:
|
||||
@@ -78,7 +86,7 @@ func attack():
|
||||
enemy.turret_material.emission_enabled = false
|
||||
|
||||
func fire(barrel):
|
||||
ammo -= 1
|
||||
enemy.ammo -= 1
|
||||
var instance_bullet = enemy.bullet.instantiate()
|
||||
instance_bullet.position = barrel.global_position
|
||||
instance_bullet.transform.basis = barrel.global_transform.basis
|
||||
|
||||
Reference in New Issue
Block a user