Class: Pacman::Arcade::ModeSchedule

Inherits:
Object
  • Object
show all
Defined in:
lib/pacman/arcade/mode_schedule.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scatter_ticks:, chase_ticks:, frightened_ticks:) ⇒ ModeSchedule

Returns a new instance of ModeSchedule.



8
9
10
11
12
13
14
# File 'lib/pacman/arcade/mode_schedule.rb', line 8

def initialize(scatter_ticks:, chase_ticks:, frightened_ticks:)
  @durations = {scatter: scatter_ticks, chase: chase_ticks}
  @frightened_ticks = frightened_ticks
  @mode = :scatter
  @remaining = scatter_ticks
  @frightened_remaining = 0
end

Instance Attribute Details

#modeObject (readonly)

Returns the value of attribute mode.



6
7
8
# File 'lib/pacman/arcade/mode_schedule.rb', line 6

def mode
  @mode
end

Instance Method Details

#frighten!Object



16
17
18
19
20
# File 'lib/pacman/arcade/mode_schedule.rb', line 16

def frighten!
  @paused_mode = mode unless frightened?
  @mode = :frightened
  @frightened_remaining = @frightened_ticks
end

#frightened?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/pacman/arcade/mode_schedule.rb', line 22

def frightened?
  mode == :frightened
end

#tickObject



26
27
28
29
30
31
# File 'lib/pacman/arcade/mode_schedule.rb', line 26

def tick
  return tick_frightened if frightened?

  advance_cycle
  nil
end