Class: Oakdex::Battle::Damage

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/oakdex/battle/damage.rb

Overview

Calculates damage

Instance Method Summary collapse

Constructor Details

#initialize(turn, action) ⇒ Damage

Returns a new instance of Damage.



11
12
13
14
# File 'lib/oakdex/battle/damage.rb', line 11

def initialize(turn, action)
  @turn = turn
  @action = action
end

Instance Method Details

#critical?Boolean

Returns:

  • (Boolean)


20
21
22
23
# File 'lib/oakdex/battle/damage.rb', line 20

def critical?
  @critical ||= rand(1..1000) <= pokemon.critical_hit_prob * 1000 ? 1 : 0
  @critical == 1
end

#damageObject



16
17
18
# File 'lib/oakdex/battle/damage.rb', line 16

def damage
  (simple_damage * modifier).to_i
end

#effective?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/oakdex/battle/damage.rb', line 25

def effective?
  type_modifier > 1.0
end

#ineffective?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/oakdex/battle/damage.rb', line 29

def ineffective?
  type_modifier < 1.0
end