Class: Swarm::Five

Inherits:
Level
  • Object
show all
Defined in:
lib/swarm/levels/five.rb

Instance Method Summary collapse

Methods inherited from Level

each, #find_player, #initialize, #move, #move_player, #over?, #spawn_player, #update, #update!

Constructor Details

This class inherits a constructor from Swarm::Level

Instance Method Details

#playObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/swarm/levels/five.rb', line 4

def play
  promoted =
  laid_egg =
  hatched  = false

  Catalog.select(*%i[worker soldier queen egg]).each do |tile|
    tile.age!

    if tile.worker?
      if !promoted && (tile.age % 15).zero?
        tile.soldier!

        promoted = true
      else
        move tile, @player
      end
    elsif tile.queen?
      if !laid_egg && (tile.age % 10).zero?
        move tile, @player
        tile.egg!

        laid_egg = true
      else
        move tile, @player
      end
    elsif tile.egg?
      if !hatched && (tile.age % 5).zero?
        tile.queen!

        hatched = true
      end
    elsif tile.soldier?
      move tile, @player
    end
  end

  true
end

#setupObject



58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/swarm/levels/five.rb', line 58

def setup
  @map.each &:empty!

  @map.spawn :dirt!, 30
  @map.spawn :rock!, 5
  @map.spawn :worker!, 0.5
  @map.spawn :soldier!, 0.15
  @map.spawn :queen!, 0.3
  @map.spawn :egg!, 0.15

  @map.center.player!
end

#show(players) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/swarm/levels/five.rb', line 44

def show(players)
  pause do
    <<-POPUP.gsub(/[ ]{10}/, '') % Console.key_info

      - LEVEL 5 -


      Press %<pause>s to start.

      (#{players} lives remaining)
    POPUP
  end
end