Class: PlayerCollection

Inherits:
Object
  • Object
show all
Defined in:
lib/were_wolf/player/player_collection.rb

Instance Method Summary collapse

Constructor Details

#initialize(no_of_wolves, no_of_villagers) ⇒ PlayerCollection

Returns a new instance of PlayerCollection.



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
42
# File 'lib/were_wolf/player/player_collection.rb', line 10

def initialize(no_of_wolves, no_of_villagers)
  @players = []
  @wolves = []
  @villagers = []
  no_of_wolves.times do
    wolf = Wolf.new
    @wolves.push(wolf)
    @players.push(wolf)
  end
  @villagers  = []
  (1..no_of_villagers).each do |i|
    if i == 1
      villager = Cop.new
      @cop = villager
    elsif i == 2
      villager = Doctor.new
      @doctor = villager
    elsif i == 3
      villager = Rogue.new
      @rogue = villager
    elsif i == 4
      villager = Witch.new
      @witch = villager
    elsif i == 5
      villager = LittleGirl.new
      @little_girl = villager
    else
      villager = Villager.new
    end
    @villagers.push(villager)
    @players.push(villager)
  end
end

Instance Method Details

#alive_playersObject



52
53
54
# File 'lib/were_wolf/player/player_collection.rb', line 52

def alive_players
  @players
end

#alive_villagersObject



44
45
46
# File 'lib/were_wolf/player/player_collection.rb', line 44

def alive_villagers
  @villagers
end

#alive_wolvesObject



48
49
50
# File 'lib/were_wolf/player/player_collection.rb', line 48

def alive_wolves
  @wolves
end

#copObject



74
75
76
# File 'lib/were_wolf/player/player_collection.rb', line 74

def cop
  @cop
end

#doctorObject



78
79
80
# File 'lib/were_wolf/player/player_collection.rb', line 78

def doctor
  @doctor
end

#kill(player) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/were_wolf/player/player_collection.rb', line 56

def kill(player)
  if player.is_a?(Wolf)
    collection = @wolves
    promote_rogue_to_wolf
  else
    @cop = nil if player.is_a?(Cop)
    @doctor = nil if player.is_a?(Doctor)
    @rogue = nil if player.is_a?(Rogue)
    @witch = nil if player.is_a?(Witch)
    @little_girl = nil if player.is_a?(LittleGirl)
    collection = @villagers
  end
  collection.delete(player)
  @players.delete(player)
  @cop.forget(player) if @cop
  @little_girl.forget(player) if @little_girl
end

#little_girlObject



90
91
92
# File 'lib/were_wolf/player/player_collection.rb', line 90

def little_girl
  @little_girl
end

#rogueObject



82
83
84
# File 'lib/were_wolf/player/player_collection.rb', line 82

def rogue
  @rogue
end

#witchObject



86
87
88
# File 'lib/were_wolf/player/player_collection.rb', line 86

def witch
  @witch
end