Files
CultManor/game/characters/enemies/state_machine/cultist_state.gd
T
2026-02-09 21:49:14 +03:00

35 lines
817 B
GDScript

class_name CultistState
extends AbstractState
@export var cultist: AbstractCultist
func _ready() -> void:
if not cultist.is_node_ready():
await cultist.ready
func _set_ray_cast_enable(ray_cast: RayCast2D, enabled: bool) -> void:
ray_cast.process_mode = Node.PROCESS_MODE_INHERIT if enabled else Node.PROCESS_MODE_DISABLED
func _get_colliding_player(ray_cast: RayCast2D) -> Player:
ray_cast.force_raycast_update()
if ray_cast.is_colliding():
var collider := ray_cast.get_collider()
if collider is Player:
return collider
return null
func _chase_if_player_in_ray_cast(ray_cast: RayCast2D, chase_state: CultistState) -> bool:
var player := _get_colliding_player(ray_cast)
if player != null:
cultist.target_x = player.position.x
switch_state.emit(chase_state)
return true
return false