Class: TankChasingState
Instance Method Summary
collapse
#drive, #enter, #on_collision, #should_change_direction?, #substate_expired?, #wait, #wait_time, #waiting?
Constructor Details
#initialize(object, vision, gun) ⇒ TankChasingState
Returns a new instance of TankChasingState.
2
3
4
5
6
7
|
# 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
|
Instance Method Details
#change_direction ⇒ Object
14
15
16
17
18
19
20
21
|
# 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 ⇒ Object
23
24
25
|
# File 'lib/entities/components/ai/tank_chasing_state.rb', line 23
def drive_time
10000
end
|
#turn_time ⇒ Object
27
28
29
|
# File 'lib/entities/components/ai/tank_chasing_state.rb', line 27
def turn_time
rand(300..600)
end
|
#update ⇒ Object
9
10
11
12
|
# File 'lib/entities/components/ai/tank_chasing_state.rb', line 9
def update
change_direction if should_change_direction?
drive
end
|