Class: Gloomhaven::Card

Inherits:
Object
  • Object
show all
Defined in:
lib/gloomhaven/card.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Card

Returns a new instance of Card.

Raises:

  • (ArgumentError)


6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/gloomhaven/card.rb', line 6

def initialize(name)
  raise ArgumentError.new('Name must be a string') unless name.is_a?(String)

  card_data = CARDS.detect { |card| card['name'].downcase == name.downcase }
  validate!(card_data)

  @name = card_data['name']
  @attack = card_data['attack']
  @crit = card_data['crit'] == true
  @miss = card_data['miss'] == true
  @rolling = card_data['rolling'] == true
  @shuffle = card_data['shuffle'] == true
end

Instance Attribute Details

#attackObject (readonly)

Returns the value of attribute attack.



4
5
6
# File 'lib/gloomhaven/card.rb', line 4

def attack
  @attack
end

#critObject (readonly)

Returns the value of attribute crit.



4
5
6
# File 'lib/gloomhaven/card.rb', line 4

def crit
  @crit
end

#missObject (readonly)

Returns the value of attribute miss.



4
5
6
# File 'lib/gloomhaven/card.rb', line 4

def miss
  @miss
end

#nameObject (readonly)

Returns the value of attribute name.



4
5
6
# File 'lib/gloomhaven/card.rb', line 4

def name
  @name
end

#shuffleObject (readonly)

Returns the value of attribute shuffle.



4
5
6
# File 'lib/gloomhaven/card.rb', line 4

def shuffle
  @shuffle
end

Instance Method Details

#bless?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/gloomhaven/card.rb', line 20

def bless?
  name.downcase == 'bless'
end

#curse?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/gloomhaven/card.rb', line 24

def curse?
  name.downcase == 'curse'
end

#rolling?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/gloomhaven/card.rb', line 28

def rolling?
  @rolling
end