Class: MonkeyMusic::LevelLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/monkey_music/level_loader.rb

Overview

LevelLoader defines a DSL for building levels in a ruby file

Instance Method Summary collapse

Constructor Details

#initialize(level) ⇒ LevelLoader

Returns a new instance of LevelLoader.



6
7
8
9
# File 'lib/monkey_music/level_loader.rb', line 6

def initialize(level)
  @level = level
  @legend = {}
end

Instance Method Details

#boost_cooldown(cooldown) ⇒ Object



24
25
26
# File 'lib/monkey_music/level_loader.rb', line 24

def boost_cooldown(cooldown)
  @level.boost_cooldown = cooldown
end

#carrying_capacity(capacity) ⇒ Object



20
21
22
# File 'lib/monkey_music/level_loader.rb', line 20

def carrying_capacity(capacity)
  @level.players.each { |p| p.monkey.capacity = capacity }
end

#layout(layout) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/monkey_music/level_loader.rb', line 32

def layout(layout)
  # Transform layout into x y indexed array
  units = (layout.lines.map { |l| l.chomp.split(//) }).transpose
  @level.width = units.length
  @level.height = units[0].length
  # Add units from layout to level
  @level.height.times do |y|
    @level.width.times do |x|
      curr_character = units[x][y]
      unit = parse_character(curr_character)
      @level.add(unit, x, y) if unit
    end
  end
end

#legend(legend) ⇒ Object



28
29
30
# File 'lib/monkey_music/level_loader.rb', line 28

def legend(legend)
  @legend = legend
end

#time_limit(time_limit) ⇒ Object



15
16
17
18
# File 'lib/monkey_music/level_loader.rb', line 15

def time_limit(time_limit)
  @level.time_limit = time_limit
  @level.players.each {|p| p.remaining_time = time_limit }
end

#turn_limit(turn_limit) ⇒ Object



11
12
13
# File 'lib/monkey_music/level_loader.rb', line 11

def turn_limit(turn_limit)
  @level.turn_limit = turn_limit
end