class Oakdex::Pokemon::GrowthEvents::LevelUp

When pokemon reached the next level

Public Instance Methods

execute() click to toggle source
# File lib/oakdex/pokemon/growth_events/level_up.rb, line 11
def execute
  last_evt = self
  available_moves.each do |move_id|
    last_evt = @pokemon.add_growth_event(GrowthEvents::LearnMove,
                                         move_id: move_id,
                                         after: last_evt)
  end
  if available_evolution
    @pokemon.add_growth_event(GrowthEvents::Evolution,
                              evolution: available_evolution,
                              after: last_evt)
  end
  remove_event
end
message() click to toggle source
# File lib/oakdex/pokemon/growth_events/level_up.rb, line 7
def message
  "#{@pokemon.name} reached Level #{@options[:new_level]}."
end

Private Instance Methods

available_evolution() click to toggle source
# File lib/oakdex/pokemon/growth_events/level_up.rb, line 34
def available_evolution
  @available_evolution ||= Oakdex::Pokemon::EvolutionMatcher
    .new(@pokemon, 'level_up').evolution
end
available_moves() click to toggle source
# File lib/oakdex/pokemon/growth_events/level_up.rb, line 28
def available_moves
  @pokemon.species.learnset.map do |m|
    m['move'] if m['level'] && m['level'] == @options[:new_level]
  end.compact
end