extends LimboHSM @onready var root: Normal = %Normal func _setup() -> void: self.add_event_handler(&"trigger_jump",_handler_trigger_jump) self.add_event_handler(root.climb_state.EVENT_FINISHED,_handler_climb_state_finished) self.add_event_handler(root.climb_jump_state.EVENT_FINISHED,_handler_climb_state_finished) self.add_transition(root.climb_state,root.climb_jump_state,&"want_to_climb_jump") func _enter() -> void: if agent.is_on_wall():##如果已经在Wall上,则什么都不做 return var compensaton_velocity = Player.get_direction_vector(agent.direction) * 1000 agent.velocity = compensaton_velocity agent.move_and_slide() func _handler_climb_state_finished() -> bool: if agent.is_on_floor(): self.dispatch(&"exit_on_ground") else: self.dispatch(&"exit_on_air") return true func _handler_trigger_jump() -> bool: if self.get_active_state() == root.climb_state: self.dispatch(&"want_to_climb_jump") return true func _handler_climb_jump_state_finished() -> bool: return true