GodotWIP/src/enemyC/states/wander.gd
2024-06-01 22:27:07 -07:00

59 lines
1.4 KiB
GDScript

extends StateAnimatedActor
export (NodePath) var idle_node
export (NodePath) var attack_node
export (NodePath) var fall_node
onready var idle_state: State = get_node(idle_node)
onready var attack_state: State = get_node(attack_node)
onready var fall_state: State = get_node(fall_node)
var flip_flop = false
func enter(state_modifiers: Array = []) -> void:
.enter()
parent.set_hurtbox(true)
state_timeout.start()
if flip_flop:
flip_flop = false
move_component.desired_movement_vector.x = 1.0
else:
flip_flop = true
move_component.desired_movement_vector.x = -1.0
func process_frame(_delta: float) -> State:
# if parent.player_detection.is_colliding():
# return attack_state
if state_timeout.time_left == 0:
return idle_state
# if move_component.wants_jump() and parent.is_on_floor():
# return jump_state
#
# move_component.get_movement_direction()
return null
func process_physics(delta: float) -> State:
parent.velocity.y += gravity * delta
parent.velocity.x = move_component.desired_movement_vector.x * move_speed
parent.velocity = parent.move_and_slide(parent.velocity, Vector2(0, -1))
if parent.velocity.x == 0.0:
return idle_state
else:
if parent.velocity.x > 0:
parent.direction.x = 1
elif parent.velocity.x < 0:
parent.direction.x = -1
parent.transform.x.x = parent.direction.x
if !parent.is_on_floor():
return fall_state
return null