Class: MonkeyMusic::LevelLoader
- Inherits:
-
Object
- Object
- MonkeyMusic::LevelLoader
- Defined in:
- lib/monkey_music/level_loader.rb
Overview
LevelLoader defines a DSL for building levels in a ruby file
Instance Method Summary collapse
- #boost_cooldown(cooldown) ⇒ Object
- #carrying_capacity(capacity) ⇒ Object
-
#initialize(level) ⇒ LevelLoader
constructor
A new instance of LevelLoader.
- #layout(layout) ⇒ Object
- #legend(legend) ⇒ Object
- #time_limit(time_limit) ⇒ Object
- #turn_limit(turn_limit) ⇒ Object
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 (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 |