class BehaviorTree::Nop

An empty task that does not do anything. It requires N ticks to complete. It can be set to end with failure.

Public Class Methods

new(necessary_ticks = 1, completes_with_failure: false) click to toggle source
Calls superclass method
# File lib/behavior_tree/tasks/nop.rb, line 10
def initialize(necessary_ticks = 1, completes_with_failure: false)
  raise ArgumentError, 'Should need at least one tick' if necessary_ticks < 1

  super()
  @necessary_ticks = necessary_ticks
  @completes_with_status = completes_with_failure ? NodeStatus::FAILURE : NodeStatus::SUCCESS
  reset_remaining_attempts
end

Public Instance Methods

halt!() click to toggle source
Calls superclass method
# File lib/behavior_tree/tasks/nop.rb, line 27
def halt!
  super
  reset_remaining_attempts
end
on_tick() click to toggle source
# File lib/behavior_tree/tasks/nop.rb, line 19
def on_tick
  @remaining_ticks -= 1
  return if @remaining_ticks.positive?

  status.set @completes_with_status
  reset_remaining_attempts
end

Private Instance Methods

reset_remaining_attempts() click to toggle source
# File lib/behavior_tree/tasks/nop.rb, line 34
def reset_remaining_attempts
  @remaining_ticks = @necessary_ticks
end