class TankChasingState

Public Class Methods

new(object, vision, gun) click to toggle source
Calls superclass method TankMotionState::new
# File lib/entities/components/ai/tank_chasing_state.rb, line 2
def initialize(object, vision, gun)
  super(object, vision)
  @object = object
  @vision = vision
  @gun = gun
end

Public Instance Methods

change_direction() click to toggle source
# File lib/entities/components/ai/tank_chasing_state.rb, line 14
def change_direction
  @object.physics.change_direction(
    @gun.desired_gun_angle -
    @gun.desired_gun_angle % 45)

  @changed_direction_at = Gosu.milliseconds
  @will_keep_direction_for = turn_time
end
drive_time() click to toggle source
# File lib/entities/components/ai/tank_chasing_state.rb, line 23
def drive_time
  10000
end
turn_time() click to toggle source
# File lib/entities/components/ai/tank_chasing_state.rb, line 27
def turn_time
  rand(300..600)
end
update() click to toggle source
# File lib/entities/components/ai/tank_chasing_state.rb, line 9
def update
  change_direction if should_change_direction?
  drive
end