class Oakdex::Pokemon::Move
Attributes
max_pp[R]
move_type[R]
pp[RW]
Public Class Methods
create(move_id)
click to toggle source
# File lib/oakdex/pokemon/move.rb, line 7 def self.create(move_id) move_type = Oakdex::Pokedex::Move.find!(move_id) new(move_type, move_type.pp, move_type.pp) end
new(move_type, pp, max_pp)
click to toggle source
# File lib/oakdex/pokemon/move.rb, line 21 def initialize(move_type, pp, max_pp) @move_type = move_type @pp = pp @max_pp = max_pp end
Public Instance Methods
add_max_pp(change_by)
click to toggle source
# File lib/oakdex/pokemon/move.rb, line 50 def add_max_pp(change_by) old = max_pp @max_pp = [max_pp + change_by, @move_type.max_pp].min @pp += @max_pp - old end
add_pp(change_by)
click to toggle source
# File lib/oakdex/pokemon/move.rb, line 56 def add_pp(change_by) @pp = [@pp + change_by, @max_pp].min end
inspect()
click to toggle source
# File lib/oakdex/pokemon/move.rb, line 27 def inspect fields = instance_variables.map do |name| if name == :@move_type "#{name}=#<Oakdex::Pokedex::Move #{@move_type.name}>" else "#{name}=#{instance_variable_get(name)}" end end "#<#{self.class.name}:#{object_id} #{fields.join(', ')}>" end
max_pp_at_max?()
click to toggle source
# File lib/oakdex/pokemon/move.rb, line 42 def max_pp_at_max? @max_pp >= @move_type.max_pp end
name()
click to toggle source
# File lib/oakdex/pokemon/move.rb, line 38 def name @move_type.names['en'] end
pp_max?()
click to toggle source
# File lib/oakdex/pokemon/move.rb, line 46 def pp_max? @pp >= @max_pp end
to_h()
click to toggle source
# File lib/oakdex/pokemon/move.rb, line 68 def to_h { move_id: @move_type.name, pp: @pp, max_pp: @max_pp } end
type()
click to toggle source
# File lib/oakdex/pokemon/move.rb, line 64 def type Oakdex::Pokedex::Type.find!(type_id) end
type_id()
click to toggle source
# File lib/oakdex/pokemon/move.rb, line 60 def type_id @move_type.type end