Class: Pokemongodb::Pokemon

Inherits:
Pokemongodb show all
Defined in:
lib/pokemongodb/pokemon.rb,
lib/pokemongodb/pokemon/mew.rb,
lib/pokemongodb/pokemon/muk.rb,
lib/pokemongodb/pokemon/abra.rb,
lib/pokemongodb/pokemon/jynx.rb,
lib/pokemongodb/pokemon/onix.rb,
lib/pokemongodb/pokemon/seel.rb,
lib/pokemongodb/pokemon/arbok.rb,
lib/pokemongodb/pokemon/ditto.rb,
lib/pokemongodb/pokemon/doduo.rb,
lib/pokemongodb/pokemon/eevee.rb,
lib/pokemongodb/pokemon/ekans.rb,
lib/pokemongodb/pokemon/gloom.rb,
lib/pokemongodb/pokemon/golem.rb,
lib/pokemongodb/pokemon/hypno.rb,
lib/pokemongodb/pokemon/paras.rb,
lib/pokemongodb/pokemon/zubat.rb,
lib/pokemongodb/pokemon/cubone.rb,
lib/pokemongodb/pokemon/dodrio.rb,
lib/pokemongodb/pokemon/fearow.rb,
lib/pokemongodb/pokemon/gastly.rb,
lib/pokemongodb/pokemon/gengar.rb,
lib/pokemongodb/pokemon/golbat.rb,
lib/pokemongodb/pokemon/grimer.rb,
lib/pokemongodb/pokemon/horsea.rb,
lib/pokemongodb/pokemon/kabuto.rb,
lib/pokemongodb/pokemon/kakuna.rb,
lib/pokemongodb/pokemon/krabby.rb,
lib/pokemongodb/pokemon/lapras.rb,
lib/pokemongodb/pokemon/machop.rb,
lib/pokemongodb/pokemon/magmar.rb,
lib/pokemongodb/pokemon/mankey.rb,
lib/pokemongodb/pokemon/meowth.rb,
lib/pokemongodb/pokemon/mewtwo.rb,
lib/pokemongodb/pokemon/oddish.rb,
lib/pokemongodb/pokemon/pidgey.rb,
lib/pokemongodb/pokemon/pinsir.rb,
lib/pokemongodb/pokemon/ponyta.rb,
lib/pokemongodb/pokemon/raichu.rb,
lib/pokemongodb/pokemon/rhydon.rb,
lib/pokemongodb/pokemon/seadra.rb,
lib/pokemongodb/pokemon/staryu.rb,
lib/pokemongodb/pokemon/tauros.rb,
lib/pokemongodb/pokemon/vulpix.rb,
lib/pokemongodb/pokemon/weedle.rb,
lib/pokemongodb/pokemon/zapdos.rb,
lib/pokemongodb/pokemon/chansey.rb,
lib/pokemongodb/pokemon/dewgong.rb,
lib/pokemongodb/pokemon/diglett.rb,
lib/pokemongodb/pokemon/dratini.rb,
lib/pokemongodb/pokemon/drowzee.rb,
lib/pokemongodb/pokemon/dugtrio.rb,
lib/pokemongodb/pokemon/flareon.rb,
lib/pokemongodb/pokemon/geodude.rb,
lib/pokemongodb/pokemon/goldeen.rb,
lib/pokemongodb/pokemon/golduck.rb,
lib/pokemongodb/pokemon/haunter.rb,
lib/pokemongodb/pokemon/ivysaur.rb,
lib/pokemongodb/pokemon/jolteon.rb,
lib/pokemongodb/pokemon/kadabra.rb,
lib/pokemongodb/pokemon/kingler.rb,
lib/pokemongodb/pokemon/koffing.rb,
lib/pokemongodb/pokemon/machamp.rb,
lib/pokemongodb/pokemon/machoke.rb,
lib/pokemongodb/pokemon/marowak.rb,
lib/pokemongodb/pokemon/metapod.rb,
lib/pokemongodb/pokemon/moltres.rb,
lib/pokemongodb/pokemon/mr_mime.rb,
lib/pokemongodb/pokemon/omanyte.rb,
lib/pokemongodb/pokemon/omastar.rb,
lib/pokemongodb/pokemon/persian.rb,
lib/pokemongodb/pokemon/pidgeot.rb,
lib/pokemongodb/pokemon/pikachu.rb,
lib/pokemongodb/pokemon/poliwag.rb,
lib/pokemongodb/pokemon/porygon.rb,
lib/pokemongodb/pokemon/psyduck.rb,
lib/pokemongodb/pokemon/rattata.rb,
lib/pokemongodb/pokemon/rhyhorn.rb,
lib/pokemongodb/pokemon/scyther.rb,
lib/pokemongodb/pokemon/seaking.rb,
lib/pokemongodb/pokemon/slowbro.rb,
lib/pokemongodb/pokemon/snorlax.rb,
lib/pokemongodb/pokemon/spearow.rb,
lib/pokemongodb/pokemon/starmie.rb,
lib/pokemongodb/pokemon/tangela.rb,
lib/pokemongodb/pokemon/venonat.rb,
lib/pokemongodb/pokemon/voltorb.rb,
lib/pokemongodb/pokemon/weezing.rb,
lib/pokemongodb/pokemon/alakazam.rb,
lib/pokemongodb/pokemon/arcanine.rb,
lib/pokemongodb/pokemon/articuno.rb,
lib/pokemongodb/pokemon/beedrill.rb,
lib/pokemongodb/pokemon/caterpie.rb,
lib/pokemongodb/pokemon/clefable.rb,
lib/pokemongodb/pokemon/clefairy.rb,
lib/pokemongodb/pokemon/cloyster.rb,
lib/pokemongodb/pokemon/graveler.rb,
lib/pokemongodb/pokemon/gyarados.rb,
lib/pokemongodb/pokemon/kabutops.rb,
lib/pokemongodb/pokemon/magikarp.rb,
lib/pokemongodb/pokemon/magneton.rb,
lib/pokemongodb/pokemon/nidoking.rb,
lib/pokemongodb/pokemon/nidorina.rb,
lib/pokemongodb/pokemon/nidorino.rb,
lib/pokemongodb/pokemon/parasect.rb,
lib/pokemongodb/pokemon/primeape.rb,
lib/pokemongodb/pokemon/rapidash.rb,
lib/pokemongodb/pokemon/raticate.rb,
lib/pokemongodb/pokemon/shellder.rb,
lib/pokemongodb/pokemon/slowpoke.rb,
lib/pokemongodb/pokemon/squirtle.rb,
lib/pokemongodb/pokemon/vaporeon.rb,
lib/pokemongodb/pokemon/venomoth.rb,
lib/pokemongodb/pokemon/venusaur.rb,
lib/pokemongodb/pokemon/blastoise.rb,
lib/pokemongodb/pokemon/bulbasaur.rb,
lib/pokemongodb/pokemon/charizard.rb,
lib/pokemongodb/pokemon/dragonair.rb,
lib/pokemongodb/pokemon/dragonite.rb,
lib/pokemongodb/pokemon/electrode.rb,
lib/pokemongodb/pokemon/exeggcute.rb,
lib/pokemongodb/pokemon/exeggutor.rb,
lib/pokemongodb/pokemon/farfetchd.rb,
lib/pokemongodb/pokemon/growlithe.rb,
lib/pokemongodb/pokemon/hitmonlee.rb,
lib/pokemongodb/pokemon/lickitung.rb,
lib/pokemongodb/pokemon/magnemite.rb,
lib/pokemongodb/pokemon/nidoqueen.rb,
lib/pokemongodb/pokemon/nidoran_f.rb,
lib/pokemongodb/pokemon/nidoran_m.rb,
lib/pokemongodb/pokemon/ninetales.rb,
lib/pokemongodb/pokemon/pidgeotto.rb,
lib/pokemongodb/pokemon/poliwhirl.rb,
lib/pokemongodb/pokemon/poliwrath.rb,
lib/pokemongodb/pokemon/sandshrew.rb,
lib/pokemongodb/pokemon/sandslash.rb,
lib/pokemongodb/pokemon/tentacool.rb,
lib/pokemongodb/pokemon/vileplume.rb,
lib/pokemongodb/pokemon/wartortle.rb,
lib/pokemongodb/pokemon/aerodactyl.rb,
lib/pokemongodb/pokemon/bellsprout.rb,
lib/pokemongodb/pokemon/butterfree.rb,
lib/pokemongodb/pokemon/charmander.rb,
lib/pokemongodb/pokemon/charmeleon.rb,
lib/pokemongodb/pokemon/electabuzz.rb,
lib/pokemongodb/pokemon/hitmonchan.rb,
lib/pokemongodb/pokemon/jigglypuff.rb,
lib/pokemongodb/pokemon/kangaskhan.rb,
lib/pokemongodb/pokemon/tentacruel.rb,
lib/pokemongodb/pokemon/victreebel.rb,
lib/pokemongodb/pokemon/weepinbell.rb,
lib/pokemongodb/pokemon/wigglytuff.rb

Defined Under Namespace

Classes: Abra, Aerodactyl, Alakazam, Arbok, Arcanine, Articuno, Beedrill, Bellsprout, Blastoise, Bulbasaur, Butterfree, Caterpie, Chansey, Charizard, Charmander, Charmeleon, Clefable, Clefairy, Cloyster, Cubone, Dewgong, Diglett, Ditto, Dodrio, Doduo, Dragonair, Dragonite, Dratini, Drowzee, Dugtrio, Eevee, Ekans, Electabuzz, Electrode, Exeggcute, Exeggutor, Farfetchd, Fearow, Flareon, Gastly, Gengar, Geodude, Gloom, Golbat, Goldeen, Golduck, Golem, Graveler, Grimer, Growlithe, Gyarados, Haunter, Hitmonchan, Hitmonlee, Horsea, Hypno, Ivysaur, Jigglypuff, Jolteon, Jynx, Kabuto, Kabutops, Kadabra, Kakuna, Kangaskhan, Kingler, Koffing, Krabby, Lapras, Lickitung, Machamp, Machoke, Machop, Magikarp, Magmar, Magnemite, Magneton, Mankey, Marowak, Meowth, Metapod, Mew, Mewtwo, Moltres, MrMime, Muk, Nidoking, Nidoqueen, NidoranF, NidoranM, Nidorina, Nidorino, Ninetales, Oddish, Omanyte, Omastar, Onix, Paras, Parasect, Persian, Pidgeot, Pidgeotto, Pidgey, Pikachu, Pinsir, Poliwag, Poliwhirl, Poliwrath, Ponyta, Porygon, Primeape, Psyduck, Raichu, Rapidash, Raticate, Rattata, Rhydon, Rhyhorn, Role, Sandshrew, Sandslash, Scyther, Seadra, Seaking, Seel, Shellder, Slowbro, Slowpoke, Snorlax, Spearow, Squirtle, Starmie, Staryu, Tangela, Tauros, Tentacool, Tentacruel, Vaporeon, Venomoth, Venonat, Venusaur, Victreebel, Vileplume, Voltorb, Vulpix, Wartortle, Weedle, Weepinbell, Weezing, Wigglytuff, Zapdos, Zubat

Class Method Summary collapse

Methods inherited from Pokemongodb

to_s

Class Method Details

.allObject

Returns array of all moves

Example:

>> Pokemongodb::Pokemon.all
=> [Pokemongodb::Pokemon::Abra, Pokemongodb::Pokemon::Aerodactyl, ...]


13
14
15
# File 'lib/pokemongodb/pokemon.rb', line 13

def self.all
  [ Pokemongodb::Pokemon::Abra, Pokemongodb::Pokemon::Aerodactyl, Pokemongodb::Pokemon::Alakazam, Pokemongodb::Pokemon::Arbok, Pokemongodb::Pokemon::Arcanine, Pokemongodb::Pokemon::Articuno, Pokemongodb::Pokemon::Beedrill, Pokemongodb::Pokemon::Bellsprout, Pokemongodb::Pokemon::Blastoise, Pokemongodb::Pokemon::Bulbasaur, Pokemongodb::Pokemon::Butterfree, Pokemongodb::Pokemon::Caterpie, Pokemongodb::Pokemon::Chansey, Pokemongodb::Pokemon::Charizard, Pokemongodb::Pokemon::Charmander, Pokemongodb::Pokemon::Charmeleon, Pokemongodb::Pokemon::Clefable, Pokemongodb::Pokemon::Clefairy, Pokemongodb::Pokemon::Cloyster, Pokemongodb::Pokemon::Cubone, Pokemongodb::Pokemon::Dewgong, Pokemongodb::Pokemon::Diglett, Pokemongodb::Pokemon::Ditto, Pokemongodb::Pokemon::Dodrio, Pokemongodb::Pokemon::Doduo, Pokemongodb::Pokemon::Dragonair, Pokemongodb::Pokemon::Dragonite, Pokemongodb::Pokemon::Dratini, Pokemongodb::Pokemon::Drowzee, Pokemongodb::Pokemon::Dugtrio, Pokemongodb::Pokemon::Eevee, Pokemongodb::Pokemon::Ekans, Pokemongodb::Pokemon::Electabuzz, Pokemongodb::Pokemon::Electrode, Pokemongodb::Pokemon::Exeggcute, Pokemongodb::Pokemon::Exeggutor, Pokemongodb::Pokemon::Farfetchd, Pokemongodb::Pokemon::Fearow, Pokemongodb::Pokemon::Flareon, Pokemongodb::Pokemon::Gastly, Pokemongodb::Pokemon::Gengar, Pokemongodb::Pokemon::Geodude, Pokemongodb::Pokemon::Gloom, Pokemongodb::Pokemon::Golbat, Pokemongodb::Pokemon::Goldeen, Pokemongodb::Pokemon::Golduck, Pokemongodb::Pokemon::Golem, Pokemongodb::Pokemon::Graveler, Pokemongodb::Pokemon::Grimer, Pokemongodb::Pokemon::Growlithe, Pokemongodb::Pokemon::Gyarados, Pokemongodb::Pokemon::Haunter, Pokemongodb::Pokemon::Hitmonchan, Pokemongodb::Pokemon::Hitmonlee, Pokemongodb::Pokemon::Horsea, Pokemongodb::Pokemon::Hypno, Pokemongodb::Pokemon::Ivysaur, Pokemongodb::Pokemon::Jigglypuff, Pokemongodb::Pokemon::Jolteon, Pokemongodb::Pokemon::Jynx, Pokemongodb::Pokemon::Kabuto, Pokemongodb::Pokemon::Kabutops, Pokemongodb::Pokemon::Kadabra, Pokemongodb::Pokemon::Kakuna, Pokemongodb::Pokemon::Kangaskhan, Pokemongodb::Pokemon::Kingler, Pokemongodb::Pokemon::Koffing, Pokemongodb::Pokemon::Krabby, Pokemongodb::Pokemon::Lapras, Pokemongodb::Pokemon::Lickitung, Pokemongodb::Pokemon::Machamp, Pokemongodb::Pokemon::Machoke, Pokemongodb::Pokemon::Machop, Pokemongodb::Pokemon::Magikarp, Pokemongodb::Pokemon::Magmar, Pokemongodb::Pokemon::Magnemite, Pokemongodb::Pokemon::Magneton, Pokemongodb::Pokemon::Mankey, Pokemongodb::Pokemon::Marowak, Pokemongodb::Pokemon::Meowth, Pokemongodb::Pokemon::Metapod, Pokemongodb::Pokemon::Mew, Pokemongodb::Pokemon::Mewtwo, Pokemongodb::Pokemon::Moltres, Pokemongodb::Pokemon::MrMime, Pokemongodb::Pokemon::Muk, Pokemongodb::Pokemon::Nidoking, Pokemongodb::Pokemon::Nidoqueen, Pokemongodb::Pokemon::NidoranF, Pokemongodb::Pokemon::NidoranM, Pokemongodb::Pokemon::Nidorina, Pokemongodb::Pokemon::Nidorino, Pokemongodb::Pokemon::Ninetales, Pokemongodb::Pokemon::Oddish, Pokemongodb::Pokemon::Omanyte, Pokemongodb::Pokemon::Omastar, Pokemongodb::Pokemon::Onix, Pokemongodb::Pokemon::Paras, Pokemongodb::Pokemon::Parasect, Pokemongodb::Pokemon::Persian, Pokemongodb::Pokemon::Pidgeot, Pokemongodb::Pokemon::Pidgeotto, Pokemongodb::Pokemon::Pidgey, Pokemongodb::Pokemon::Pikachu, Pokemongodb::Pokemon::Pinsir, Pokemongodb::Pokemon::Poliwag, Pokemongodb::Pokemon::Poliwhirl, Pokemongodb::Pokemon::Poliwrath, Pokemongodb::Pokemon::Ponyta, Pokemongodb::Pokemon::Porygon, Pokemongodb::Pokemon::Primeape, Pokemongodb::Pokemon::Psyduck, Pokemongodb::Pokemon::Raichu, Pokemongodb::Pokemon::Rapidash, Pokemongodb::Pokemon::Raticate, Pokemongodb::Pokemon::Rattata, Pokemongodb::Pokemon::Rhydon, Pokemongodb::Pokemon::Rhyhorn, Pokemongodb::Pokemon::Sandshrew, Pokemongodb::Pokemon::Sandslash, Pokemongodb::Pokemon::Scyther, Pokemongodb::Pokemon::Seadra, Pokemongodb::Pokemon::Seaking, Pokemongodb::Pokemon::Seel, Pokemongodb::Pokemon::Shellder, Pokemongodb::Pokemon::Slowbro, Pokemongodb::Pokemon::Slowpoke, Pokemongodb::Pokemon::Snorlax, Pokemongodb::Pokemon::Spearow, Pokemongodb::Pokemon::Squirtle, Pokemongodb::Pokemon::Starmie, Pokemongodb::Pokemon::Staryu, Pokemongodb::Pokemon::Tangela, Pokemongodb::Pokemon::Tauros, Pokemongodb::Pokemon::Tentacool, Pokemongodb::Pokemon::Tentacruel, Pokemongodb::Pokemon::Vaporeon, Pokemongodb::Pokemon::Venomoth, Pokemongodb::Pokemon::Venonat, Pokemongodb::Pokemon::Venusaur, Pokemongodb::Pokemon::Victreebel, Pokemongodb::Pokemon::Vileplume, Pokemongodb::Pokemon::Voltorb, Pokemongodb::Pokemon::Vulpix, Pokemongodb::Pokemon::Wartortle, Pokemongodb::Pokemon::Weedle, Pokemongodb::Pokemon::Weepinbell, Pokemongodb::Pokemon::Weezing, Pokemongodb::Pokemon::Wigglytuff, Pokemongodb::Pokemon::Zapdos, Pokemongodb::Pokemon::Zubat ]
end

.candy_to_evolveObject

Returns number of candies to evolve, or nil if no evolution

Example:

>> Pokemongodb::Pokemon::Bulbasaur.candy_to_evolve
=> 25

>> Pokemongodb::Pokemon::Ivysaur.candy_to_evolve
=> 100

>> Pokemongodb::Pokemon::Venusaur.candy_to_evolve
=> nil


28
29
30
# File 'lib/pokemongodb/pokemon.rb', line 28

def self.candy_to_evolve
  nil
end

.charge_move_typesObject

Returns array of possible charge move types

Example:

>> Pokemongodb::Pokemon::Bulbasaur.charge_move_types
=> [Pokemongodb::Type::Poison, Pokemongodb::Type::Grass]


37
38
39
# File 'lib/pokemongodb/pokemon.rb', line 37

def self.charge_move_types
  charge_moves.map(&:type).uniq
end

.charge_movesObject

Returns array of possible charge moves

Example:

>> Pokemongodb::Pokemon::Bulbasaur.charge_moves
=> [Pokemongodb::Move::PowerWhip, Pokemongodb::Move::SeedBomb, Pokemongodb::Move::SludgeBomb]


46
47
48
# File 'lib/pokemongodb/pokemon.rb', line 46

def self.charge_moves
  moves.select { |move| move.category == Pokemongodb::Move::Category::CHARGE }
end

.egg_hatch_distanceObject

returns integer of distance to hatch an egg, or nil if not hatchable from egg

Example:

>> Pokemongodb::Pokemon::Bulbasaur.egg_hatch_distance
=> 2

>> Pokemongodb::Pokemon::Vulpix.egg_hatch_distance
=> 5

>> Pokemongodb::Pokemon::Venusaur.egg_hatch_distance
=> nil


61
62
63
# File 'lib/pokemongodb/pokemon.rb', line 61

def self.egg_hatch_distance
  nil
end

.evolves_fromObject

Returns evolution precursor or nil

Example:

>> Pokemongodb::Pokemon::Bulbasaur.evolves_from
=> nil

>> Pokemongodb::Pokemon::Ivysaur.evolves_from
=> Pokemongodb::Type::Bulbasaur


138
139
140
# File 'lib/pokemongodb/pokemon.rb', line 138

def self.evolves_from
  all.detect { |type| type.evolves_into == self }
end

.evolves_intoObject

returns the pokemon it evolves into, or nil if no further evolution

Example:

>> Pokemongodb::Pokemon::Bulbasaur.evolves_into
=> Pokemongodb::Pokemon::Ivysaur

>> Pokemongodb::Pokemon::Ivysaur.evolves_into
=> Pokemongodb::Pokemon::Venusayr

>> Pokemongodb::Pokemon::Venusaur.evolves_into
=> nil


76
77
78
# File 'lib/pokemongodb/pokemon.rb', line 76

def self.evolves_into
  nil
end

.fast_move_typesObject

Returns array of possible move types

Example:

>> Pokemongodb::Pokemon::Bulbasaur.fast_move_types
=> [Pokemongodb::Type::Normal, Pokemongodb::Type::Grass]


85
86
87
# File 'lib/pokemongodb/pokemon.rb', line 85

def self.fast_move_types
  fast_moves.map(&:type).uniq
end

.fast_movesObject

Returns array of possible charge moves

Example:

>> Pokemongodb::Pokemon::Bulbasaur.fast_moves
=> [Pokemongodb::Move::Tackle, Pokemongodb::Move::VineWhip]


94
95
96
# File 'lib/pokemongodb/pokemon.rb', line 94

def self.fast_moves
  moves.select { |move| move.category == Pokemongodb::Move::Category::FAST }
end

.find(query) ⇒ Object

Returns pokemon by id, string, or symbol

Example:

>> Pokemongodb::Pokemon.find(1)
=> Pokemongodb::Pokemon::Bulbasaur

>> Pokemongodb::Pokemon.find('ivysaur')
=> Pokemongodb::Pokemon::Ivysaur

>> Pokemongodb::Pokemon.find(:venusaur)
=> Pokemongodb::Pokemon::Venusaur


109
110
111
112
113
114
115
116
117
118
119
# File 'lib/pokemongodb/pokemon.rb', line 109

def self.find(query)
  if query.is_a?(Integer)
    all.detect { |type| type.id == query }
  elsif query.is_a?(String)
    Pokemongodb::Pokemon.const_get(query.capitalize)
  elsif query.is_a?(Symbol)
    Pokemongodb::Pokemon.const_get(query.to_s.capitalize)
  else
    nil
  end
end

.find_by_type(t) ⇒ Object

Returns pokemon by type

Example:

>> Pokemongodb::Pokemon.find_by_type(Pokemongodb::Type::Water)
=> [Pokemongodb::Pokemon::Blastoise, Pokemongodb::Pokemon::Cloyster, ...]


126
127
128
# File 'lib/pokemongodb/pokemon.rb', line 126

def self.find_by_type(t)
  all.select { |pokemon| pokemon.types.include?(t) }.uniq
end

.move_setsObject

Returns all available MoveSets for Pokemon

Example:

>> Pokemongodb::Pokemon::Bulbasaur.move_sets
=> [#<Pokemongodb::MoveSet:0xXXXXXX @fast_move=Pokemongodb::Move::VineWhip, @charge_move=Pokemongodb::Move::SludgeBomb, @dps=18.76>, ...]


147
148
149
# File 'lib/pokemongodb/pokemon.rb', line 147

def self.move_sets
  Pokemongodb::MoveSet.from_pokemon(self)
end

.move_typesObject

Returns array of possible move types

Example:

>> Pokemongodb::Pokemon::Bulbasaur.move_types
=> [[Pokemongodb::Type::Grass, 3]


156
157
158
# File 'lib/pokemongodb/pokemon.rb', line 156

def self.move_types
  (fast_move_types + charge_move_types).uniq
end

.perfect_hatch_ivObject

returns integer of perfect iv for hatched egg, or nil if not hatchable

Example:

>> Pokemongodb::Pokemon::Bulbasaur.perfect_hatch_iv
=> 612

>> Pokemongodb::Pokemon::Ivysaur.perfect_hatch_iv
=> nil


168
169
170
171
172
# File 'lib/pokemongodb/pokemon.rb', line 168

def self.perfect_hatch_iv
  return nil unless self.egg_hatch_distance
  ratio = 4 / 7.0
  (self.max_cp * ratio).to_i
end

.roleObject

Returns pokemon by id, string, or symbol

Example:

>> bulbasaur = Pokemongodb::Pokemon.find(1)
>> bulbasaur.role
=> :defense

>> charmander = Pokemongodb::Pokemon.find(4)
>> charmander.role
=> :offense


184
185
186
# File 'lib/pokemongodb/pokemon.rb', line 184

def self.role
  self.base_attack > self.base_defense ? Role::OFFENSE : Role::DEFENSE
end

.strong_againstObject

Returns array of pokemon the subject is strong against

Example:

>> Pokemongodb::Pokemon::Bulbasaur.strong_against
=> [Pokemongodb::Pokemon::Cubone, Pokemongodb::Pokemon::Diglett, ...]


193
194
195
# File 'lib/pokemongodb/pokemon.rb', line 193

def self.strong_against
  self.find_type_against(:strong_against)
end

.weak_againstObject

Returns array of pokemon the subject is weak against

Example:

>> Pokemongodb::Pokemon::Bulbasaur.weak_against
=> Pokemongodb::Pokemon::Beedrill, Pokemongodb::Pokemon::Butterfree, ... ]


202
203
204
# File 'lib/pokemongodb/pokemon.rb', line 202

def self.weak_against
  self.find_type_against(:weak_against)
end