diff --git a/lib/Consts.dart b/lib/Consts.dart index 6e6b5da..c90fd22 100644 --- a/lib/Consts.dart +++ b/lib/Consts.dart @@ -1,7 +1,7 @@ import 'dart:io'; class Constants { - static const VERSION = "1.0.032825+1819"; + static const VERSION = "1.0.032825+1854"; //static bool get isMobile => Platform.isAndroid || Platform.isIOS; } diff --git a/lib/generations/Gen1Data.dart b/lib/generations/Gen1Data.dart index a3d59c4..4e4ab17 100644 --- a/lib/generations/Gen1Data.dart +++ b/lib/generations/Gen1Data.dart @@ -163,6 +163,921 @@ class Gen1Locations { additionalGames: [Game.LeafGreen], ), ]; + static const List Squirtle = [ + Location( + Game.Red, + [GameRoute.PalletTown], + Generation.One, + additionalGames: [Game.Blue], + ), + Location(Game.Yellow, [GameRoute.VermilionCity], Generation.One), + Location( + Game.Gold, + [GameRoute.TradeOrMigrate], + Generation.Two, + additionalGames: [Game.Silver, Game.Crystal], + ), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location( + Game.FireRed, + [GameRoute.PalletTown], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + ]; + static const List Wartortle = [ + Location( + Game.Red, + [GameRoute.Evolve], + Generation.One, + additionalGames: [Game.Blue, Game.Yellow], + ), + Location( + Game.Gold, + [GameRoute.TradeOrMigrate], + Generation.Two, + additionalGames: [Game.Silver, Game.Crystal], + ), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location( + Game.FireRed, + [GameRoute.Evolve], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + ]; + static const List Blastoise = [ + Location( + Game.Red, + [GameRoute.Evolve], + Generation.One, + additionalGames: [Game.Blue, Game.Yellow], + ), + Location( + Game.Gold, + [GameRoute.TradeOrMigrate], + Generation.Two, + additionalGames: [Game.Silver, Game.Crystal], + ), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location( + Game.FireRed, + [GameRoute.Evolve], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + ]; + static const List Caterpie = [ + Location(Game.Red, [ + GameRoute.RT25, + GameRoute.ViridianForest, + ], Generation.One), + Location(Game.Blue, [ + GameRoute.RT2, + GameRoute.RT24, + GameRoute.RT25, + GameRoute.ViridianForest, + ], Generation.One), + Location(Game.Yellow, [GameRoute.ViridianForest], Generation.One), + Location(Game.Gold, [ + GameRoute.RT2, + GameRoute.RT26, + GameRoute.RT27, + GameRoute.RT30, + GameRoute.RT31, + GameRoute.RT34, + GameRoute.RT35, + GameRoute.RT36, + GameRoute.RT37, + GameRoute.RT38, + GameRoute.RT39, + GameRoute.AzaleaTown, + GameRoute.IlexForest, + GameRoute.LakeOfRage, + GameRoute.NationalPark, + ], Generation.Two), + Location(Game.Silver, [GameRoute.NationalPark], Generation.Two), + Location(Game.Crystal, [ + GameRoute.RT2, + GameRoute.RT24, + GameRoute.RT25, + GameRoute.RT30, + GameRoute.RT31, + GameRoute.IlexForest, + GameRoute.NationalPark, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location(Game.FireRed, [ + GameRoute.RT2, + GameRoute.RT24, + GameRoute.RT25, + GameRoute.PatternBush, + GameRoute.ViridianForest, + ], Generation.Three), + ]; + static const List Metapod = [ + Location(Game.Red, [ + GameRoute.RT25, + GameRoute.ViridianForest, + ], Generation.One), + Location(Game.Blue, [ + GameRoute.RT24, + GameRoute.RT25, + GameRoute.ViridianForest, + ], Generation.One), + Location(Game.Yellow, [GameRoute.ViridianForest], Generation.One), + Location(Game.Gold, [ + GameRoute.RT2, + GameRoute.RT26, + GameRoute.RT27, + GameRoute.RT30, + GameRoute.RT31, + GameRoute.RT34, + GameRoute.RT35, + GameRoute.RT36, + GameRoute.RT37, + GameRoute.RT38, + GameRoute.RT39, + GameRoute.AzaleaTown, + GameRoute.IlexForest, + GameRoute.LakeOfRage, + GameRoute.NationalPark, + ], Generation.Two), + Location(Game.Silver, [GameRoute.NationalPark], Generation.Two), + Location(Game.Crystal, [ + GameRoute.RT24, + GameRoute.RT25, + GameRoute.IlexForest, + GameRoute.NationalPark, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire], + ), + Location( + Game.FireRed, + [ + GameRoute.RT24, + GameRoute.RT25, + GameRoute.PatternBush, + GameRoute.ViridianForest, + ], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + Location(Game.Emerald, [GameRoute.TradeOrMigrate], Generation.Three), + ]; + static const List Butterfree = [ + Location( + Game.Red, + [GameRoute.Evolve], + Generation.One, + additionalGames: [Game.Blue, Game.Yellow], + ), + Location(Game.Gold, [ + GameRoute.RT2, + GameRoute.RT26, + GameRoute.RT27, + GameRoute.RT34, + GameRoute.RT35, + GameRoute.RT37, + GameRoute.RT38, + GameRoute.RT39, + GameRoute.AzaleaTown, + GameRoute.IlexForest, + GameRoute.LakeOfRage, + GameRoute.NationalPark, + ], Generation.Two), + Location(Game.Silver, [GameRoute.NationalPark], Generation.Two), + Location(Game.Crystal, [ + GameRoute.RT2, + GameRoute.RT24, + GameRoute.RT25, + GameRoute.IlexForest, + GameRoute.NationalPark, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location( + Game.FireRed, + [GameRoute.Evolve], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + ]; + static const List Weedle = [ + Location(Game.Red, [ + GameRoute.RT2, + GameRoute.RT24, + GameRoute.RT25, + GameRoute.ViridianForest, + ], Generation.One), + Location(Game.Blue, [ + GameRoute.RT25, + GameRoute.ViridianForest, + ], Generation.One), + Location(Game.Yellow, [GameRoute.TradeOrMigrate], Generation.One), + Location(Game.Gold, [GameRoute.NationalPark], Generation.Two), + Location(Game.Silver, [ + GameRoute.RT2, + GameRoute.RT26, + GameRoute.RT27, + GameRoute.RT30, + GameRoute.RT31, + GameRoute.RT34, + GameRoute.RT35, + GameRoute.RT36, + GameRoute.RT37, + GameRoute.RT38, + GameRoute.RT39, + GameRoute.AzaleaTown, + GameRoute.IlexForest, + GameRoute.LakeOfRage, + GameRoute.NationalPark, + ], Generation.Two), + Location(Game.Crystal, [ + GameRoute.RT30, + GameRoute.RT31, + GameRoute.IlexForest, + GameRoute.NationalPark, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location(Game.FireRed, [ + GameRoute.RT2, + GameRoute.RT24, + GameRoute.RT25, + GameRoute.PatternBush, + GameRoute.ViridianForest, + ], Generation.Three), + ]; + static const List Kakuna = [ + Location(Game.Red, [ + GameRoute.RT24, + GameRoute.RT25, + GameRoute.ViridianForest, + ], Generation.One), + Location(Game.Blue, [ + GameRoute.RT25, + GameRoute.ViridianForest, + ], Generation.One), + Location(Game.Yellow, [GameRoute.TradeOrMigrate], Generation.One), + Location(Game.Gold, [GameRoute.NationalPark], Generation.Two), + Location(Game.Silver, [ + GameRoute.RT2, + GameRoute.RT26, + GameRoute.RT27, + GameRoute.RT30, + GameRoute.RT31, + GameRoute.RT34, + GameRoute.RT35, + GameRoute.RT36, + GameRoute.RT37, + GameRoute.RT38, + GameRoute.RT39, + GameRoute.AzaleaTown, + GameRoute.IlexForest, + GameRoute.LakeOfRage, + GameRoute.NationalPark, + ], Generation.Two), + Location(Game.Crystal, [ + GameRoute.IlexForest, + GameRoute.NationalPark, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location( + Game.FireRed, + [ + GameRoute.RT24, + GameRoute.RT25, + GameRoute.PatternBush, + GameRoute.ViridianForest, + ], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + ]; + static const List Beedrill = [ + Location( + Game.Red, + [GameRoute.Evolve], + Generation.One, + additionalGames: [Game.Blue], + ), + Location(Game.Yellow, [GameRoute.Evolve], Generation.One), + Location(Game.Gold, [GameRoute.NationalPark], Generation.Two), + Location(Game.Silver, [ + GameRoute.RT2, + GameRoute.RT26, + GameRoute.RT27, + GameRoute.RT34, + GameRoute.RT35, + GameRoute.RT36, + GameRoute.RT37, + GameRoute.RT38, + GameRoute.RT39, + GameRoute.AzaleaTown, + GameRoute.IlexForest, + GameRoute.LakeOfRage, + GameRoute.NationalPark, + ], Generation.Two), + Location(Game.Crystal, [ + GameRoute.IlexForest, + GameRoute.NationalPark, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location( + Game.FireRed, + [GameRoute.Evolve], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + ]; + static const List Pidgey = [ + Location( + Game.Red, + [ + GameRoute.RT1, + GameRoute.RT2, + GameRoute.RT3, + GameRoute.RT5, + GameRoute.RT6, + GameRoute.RT7, + GameRoute.RT8, + GameRoute.RT12, + GameRoute.RT13, + GameRoute.RT14, + GameRoute.RT15, + GameRoute.RT21, + GameRoute.RT24, + GameRoute.RT25, + ], + Generation.One, + additionalGames: [Game.Blue], + ), + Location(Game.Yellow, [ + GameRoute.RT1, + GameRoute.RT2, + GameRoute.RT5, + GameRoute.RT6, + GameRoute.RT7, + GameRoute.RT8, + GameRoute.RT11, + GameRoute.RT12, + GameRoute.RT13, + GameRoute.RT21, + GameRoute.RT24, + GameRoute.RT25, + GameRoute.ViridianForest, + ], Generation.One), + Location( + Game.Gold, + [ + GameRoute.RT1, + GameRoute.RT2, + GameRoute.RT5, + GameRoute.RT6, + GameRoute.RT25, + GameRoute.RT29, + GameRoute.RT30, + GameRoute.RT31, + GameRoute.RT35, + GameRoute.RT36, + GameRoute.RT37, + GameRoute.NationalPark, + ], + Generation.Two, + additionalGames: [Game.Silver], + ), + Location(Game.Crystal, [ + GameRoute.RT1, + GameRoute.RT2, + GameRoute.RT5, + GameRoute.RT25, + GameRoute.RT29, + GameRoute.RT30, + GameRoute.RT31, + GameRoute.RT32, + GameRoute.RT34, + GameRoute.RT35, + GameRoute.RT36, + GameRoute.RT37, + GameRoute.IlexForest, + GameRoute.NationalPark, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location(Game.FireRed, [ + GameRoute.RT1, + GameRoute.RT2, + GameRoute.RT3, + GameRoute.RT5, + GameRoute.RT6, + GameRoute.RT7, + GameRoute.RT8, + GameRoute.RT12, + GameRoute.RT13, + GameRoute.RT14, + GameRoute.RT15, + GameRoute.RT24, + GameRoute.RT25, + GameRoute.BerryForest, + GameRoute.BondBridge, + GameRoute.FiveIsleMeadow, + ], Generation.Three), + ]; + static const List Pidgeotto = [ + Location( + Game.Red, + [GameRoute.RT14, GameRoute.RT15, GameRoute.RT21], + Generation.One, + additionalGames: [Game.Blue], + ), + Location(Game.Yellow, [ + GameRoute.RT5, + GameRoute.RT6, + GameRoute.RT7, + GameRoute.RT8, + GameRoute.RT11, + GameRoute.RT12, + GameRoute.RT13, + GameRoute.RT14, + GameRoute.RT15, + GameRoute.RT21, + GameRoute.RT24, + GameRoute.RT25, + GameRoute.ViridianForest, + ], Generation.One), + Location( + Game.Gold, + [ + GameRoute.RT2, + GameRoute.RT8, + GameRoute.RT13, + GameRoute.RT14, + GameRoute.RT15, + GameRoute.RT25, + GameRoute.RT37, + GameRoute.RT43, + ], + Generation.Two, + additionalGames: [Game.Silver], + ), + Location(Game.Crystal, [ + GameRoute.RT2, + GameRoute.RT5, + GameRoute.RT8, + GameRoute.RT11, + GameRoute.RT13, + GameRoute.RT14, + GameRoute.RT15, + GameRoute.RT25, + GameRoute.RT37, + GameRoute.RT38, + GameRoute.RT39, + GameRoute.RT43, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location(Game.FireRed, [ + GameRoute.RT13, + GameRoute.RT14, + GameRoute.RT15, + GameRoute.BerryForest, + GameRoute.BondBridge, + GameRoute.FiveIsleMeadow, + ], Generation.Three), + ]; + static const List Pidgeot = [ + Location( + Game.Red, + [GameRoute.Evolve], + Generation.One, + additionalGames: [Game.Blue, Game.Yellow], + ), + Location( + Game.Gold, + [GameRoute.Evolve], + Generation.Two, + additionalGames: [Game.Silver, Game.Crystal], + ), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location( + Game.FireRed, + [GameRoute.Evolve], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + ]; + static const List Rattata = [ + Location( + Game.Red, + [ + GameRoute.RT1, + GameRoute.RT2, + GameRoute.RT4, + GameRoute.RT9, + GameRoute.RT16, + GameRoute.RT21, + GameRoute.RT22, + ], + Generation.One, + additionalGames: [Game.Blue], + ), + Location(Game.Yellow, [ + GameRoute.RT1, + GameRoute.RT2, + GameRoute.RT3, + GameRoute.RT4, + GameRoute.RT5, + GameRoute.RT6, + GameRoute.RT7, + GameRoute.RT8, + GameRoute.RT9, + GameRoute.RT10, + GameRoute.RT11, + GameRoute.RT16, + GameRoute.RT18, + GameRoute.RT21, + GameRoute.RT22, + GameRoute.PokemonMansion, + ], Generation.One), + Location(Game.Gold, [ + GameRoute.RT1, + GameRoute.RT3, + GameRoute.RT4, + GameRoute.RT7, + GameRoute.RT9, + GameRoute.RT11, + GameRoute.RT22, + GameRoute.RT29, + GameRoute.RT30, + GameRoute.RT31, + GameRoute.RT32, + GameRoute.RT33, + GameRoute.RT34, + GameRoute.RT38, + GameRoute.RT39, + GameRoute.RT46, + GameRoute.BurnedTower, + GameRoute.MtMortar, + GameRoute.SproutTower, + GameRoute.TinTower, + GameRoute.TohjoFalls, + GameRoute.UnionCave, + ], Generation.Two), + Location(Game.Silver, [ + GameRoute.RT1, + GameRoute.RT3, + GameRoute.RT4, + GameRoute.RT7, + GameRoute.RT9, + GameRoute.RT11, + GameRoute.RT22, + GameRoute.RT29, + GameRoute.RT30, + GameRoute.RT31, + GameRoute.RT32, + GameRoute.RT33, + GameRoute.RT34, + GameRoute.RT46, + GameRoute.BurnedTower, + GameRoute.MtMortar, + GameRoute.SproutTower, + GameRoute.TinTower, + GameRoute.TohjoFalls, + GameRoute.UnionCave, + ], Generation.Two), + Location(Game.Crystal, [ + GameRoute.RT1, + GameRoute.RT3, + GameRoute.RT4, + GameRoute.RT6, + GameRoute.RT7, + GameRoute.RT9, + GameRoute.RT11, + GameRoute.RT21, + GameRoute.RT22, + GameRoute.RT29, + GameRoute.RT32, + GameRoute.RT33, + GameRoute.RT34, + GameRoute.RT38, + GameRoute.RT39, + GameRoute.RT42, + GameRoute.RT46, + GameRoute.BurnedTower, + GameRoute.MtMortar, + GameRoute.SproutTower, + GameRoute.TinTower, + GameRoute.TohjoFalls, + GameRoute.UnionCave, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location( + Game.FireRed, + [ + GameRoute.RT1, + GameRoute.RT2, + GameRoute.RT4, + GameRoute.RT9, + GameRoute.RT16, + GameRoute.RT17, + GameRoute.RT18, + GameRoute.RT22, + GameRoute.PokemonMansion, + ], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + ]; + static const List Raticate = [ + Location( + Game.Red, + [GameRoute.RT16, GameRoute.RT17, GameRoute.RT18, GameRoute.RT21], + Generation.One, + additionalGames: [Game.Blue], + ), + Location(Game.Yellow, [ + GameRoute.RT9, + GameRoute.RT10, + GameRoute.RT11, + GameRoute.RT16, + GameRoute.RT18, + GameRoute.RT21, + GameRoute.PokemonMansion, + ], Generation.One), + Location( + Game.Gold, + [ + GameRoute.RT7, + GameRoute.RT9, + GameRoute.RT10, + GameRoute.RT26, + GameRoute.RT27, + GameRoute.RT38, + GameRoute.RT39, + GameRoute.BurnedTower, + GameRoute.MtMortar, + GameRoute.TohjoFalls, + GameRoute.UnionCave, + ], + Generation.Two, + additionalGames: [Game.Silver], + ), + Location(Game.Crystal, [ + GameRoute.RT1, + GameRoute.RT3, + GameRoute.RT4, + GameRoute.RT6, + GameRoute.RT7, + GameRoute.RT9, + GameRoute.RT10, + GameRoute.RT11, + GameRoute.RT21, + GameRoute.RT26, + GameRoute.RT27, + GameRoute.RT38, + GameRoute.RT39, + GameRoute.RT42, + GameRoute.RT43, + GameRoute.BurnedTower, + GameRoute.MtMortar, + GameRoute.TohjoFalls, + GameRoute.UnionCave, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location( + Game.FireRed, + [ + GameRoute.RT16, + GameRoute.RT17, + GameRoute.RT18, + GameRoute.PokemonMansion, + ], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + ]; + static const List Spearow = [ + Location( + Game.Red, + [ + GameRoute.RT3, + GameRoute.RT4, + GameRoute.RT9, + GameRoute.RT10, + GameRoute.RT11, + GameRoute.RT16, + GameRoute.RT17, + GameRoute.RT18, + GameRoute.RT22, + GameRoute.RT23, + ], + Generation.One, + additionalGames: [Game.Blue], + ), + Location(Game.Yellow, [ + GameRoute.RT3, + GameRoute.RT4, + GameRoute.RT9, + GameRoute.RT16, + GameRoute.RT18, + GameRoute.RT22, + ], Generation.One), + Location( + Game.Gold, + [ + GameRoute.RT3, + GameRoute.RT4, + GameRoute.RT7, + GameRoute.RT9, + GameRoute.RT10, + GameRoute.RT22, + GameRoute.RT29, + GameRoute.RT30, + GameRoute.RT31, + GameRoute.RT32, + GameRoute.RT33, + GameRoute.RT35, + GameRoute.RT42, + GameRoute.RT43, + GameRoute.RT44, + GameRoute.RT45, + GameRoute.RT46, + ], + Generation.Two, + additionalGames: [Game.Silver], + ), + Location(Game.Crystal, [ + GameRoute.RT3, + GameRoute.RT4, + GameRoute.RT7, + GameRoute.RT9, + GameRoute.RT10, + GameRoute.RT22, + GameRoute.RT33, + GameRoute.RT35, + GameRoute.RT42, + GameRoute.RT44, + GameRoute.RT46, + GameRoute.AzaleaTown, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location( + Game.FireRed, + [ + GameRoute.RT3, + GameRoute.RT4, + GameRoute.RT9, + GameRoute.RT10, + GameRoute.RT11, + GameRoute.RT16, + GameRoute.RT17, + GameRoute.RT18, + GameRoute.RT22, + GameRoute.RT23, + GameRoute.CanyonEntrance, + GameRoute.CapeBrink, + GameRoute.KindleRoad, + GameRoute.MtEmber, + GameRoute.RuinValley, + GameRoute.TreasureBeach, + GameRoute.WaterPath, + ], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + ]; + static const List Fearow = [ + Location( + Game.Red, + [GameRoute.RT17, GameRoute.RT18, GameRoute.RT23], + Generation.One, + additionalGames: [Game.Blue], + ), + Location(Game.Yellow, [ + GameRoute.RT9, + GameRoute.RT16, + GameRoute.RT17, + GameRoute.RT18, + GameRoute.RT23, + ], Generation.One), + Location( + Game.Gold, + [ + GameRoute.RT9, + GameRoute.RT10, + GameRoute.RT16, + GameRoute.RT17, + GameRoute.RT18, + GameRoute.RT22, + ], + Generation.Two, + additionalGames: [Game.Silver], + ), + Location(Game.Crystal, [ + GameRoute.RT9, + GameRoute.RT10, + GameRoute.RT16, + GameRoute.RT17, + GameRoute.RT18, + GameRoute.RT22, + GameRoute.RT42, + ], Generation.Two), + Location( + Game.Ruby, + [GameRoute.TradeOrMigrate], + Generation.Three, + additionalGames: [Game.Sapphire, Game.Emerald], + ), + Location( + Game.FireRed, + [ + GameRoute.RT17, + GameRoute.RT18, + GameRoute.RT23, + GameRoute.CanyonEntrance, + GameRoute.CapeBrink, + GameRoute.KindleRoad, + GameRoute.MtEmber, + GameRoute.RuinValley, + GameRoute.SevaultCanyon, + GameRoute.TreasureBeach, + GameRoute.WaterPath, + ], + Generation.Three, + additionalGames: [Game.LeafGreen], + ), + ]; } class Gen1DexData { @@ -457,4 +1372,788 @@ class Gen1DexData { Generation.Three, ), ]; + static const List Squirtle = [ + DexEntry( + Game.Red, + "After birth, its back swells and hardens into a shell. Powerfully sprays foam from its mouth.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "Shoots water at prey while in the water. Withdraws into its shell when in danger.", + Generation.One, + ), + DexEntry( + Game.Gold, + "The shell is soft when it is born. It soon becomes so resilient, prodding fingers will bounce off it.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "The shell, which hardens soon after it is born, is resilient. If you poke it, it will bounce back out.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "When it feels threatened, it draws its legs inside its shell and sprays water from its mouth.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "SQUIRTLE’s shell is not merely used for protection. The shell’s rounded shape and the grooves on its surface help minimize resistance in water, enabling this POKéMON to swim at high speeds.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "When it retracts its long neck into its shell, it squirts out water with vigorous force.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "After birth, its back swells and hardens into a shell. It powerfully sprays foam from its mouth.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "Its shell is not just for protection. Its rounded shape and the grooves on its surface minimize resistance in water, enabling SQUIRTLE to swim at high speeds.", + Generation.Three, + ), + ]; + static const List Wartortle = [ + DexEntry( + Game.Red, + "Often hides in water to stalk unwary prey. For swimming fast, it moves its ears to maintain balance.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "When tapped, this POKéMON will pull in its head, but its tail will still stick out a little bit.", + Generation.One, + ), + DexEntry( + Game.Gold, + "It is recognized as a symbol of longevity. If its shell has algae on it, that WARTORTLE is very old.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "It cleverly controls its furry ears and tail to maintain its balance while swimming.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "Its long, furry tail is a symbol of longevity, making it quite popular among older people.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "Its tail is large and covered with a rich, thick fur. The tail becomes increasingly deeper in color as WARTORTLE ages. The scratches on its shell are evidence of this POKéMON’s toughness as a battler.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "This POKéMON is very popular as a pet. Its fur-covered tail is a symbol of its longevity.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "It often hides in water to stalk unwary prey. For fast swimming, it moves its ears to maintain balance.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "Its large tail is covered with rich, thick fur that deepens in color with age. The scratches on its shell are evidence of this POKéMON’s toughness in battle.", + Generation.Three, + ), + ]; + static const List Blastoise = [ + DexEntry( + Game.Red, + "A brutal POKéMON with pressurized water jets on its shell. They are used for high speed tackles.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "Once it takes aim at its enemy, it blasts out water with even more force than a fire hose.", + Generation.One, + ), + DexEntry( + Game.Gold, + "It deliberately makes itself heavy so it can withstand the recoil of the water jets it fires.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "The rocket cannons on its shell fire jets of water capable of punching holes through thick steel.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "It firmly plants its feet on the ground before shooting water from the jets on its back.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "BLASTOISE has water spouts that protrude from its shell. The water spouts are very accurate. They can shoot bullets of water with enough accuracy to strike empty cans from a distance of over 160 feet.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "It crushes its foe under its heavy body to cause fainting. In a pinch, it will withdraw inside its shell.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "The pressurized water jets on this brutal POKéMON’s shell are used for high-speed tackles.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "The waterspouts that protrude from its shell are highly accurate. Their bullets of water can precisely nail tin cans from a distance of over 160 feet.", + Generation.Three, + ), + ]; + static const List Caterpie = [ + DexEntry( + Game.Red, + "Its short feet are tipped with suction pads that enable it to tirelessly climb slopes and walls.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "If you touch the feeler on top of its head, it will release a horrible stink to protect itself.", + Generation.One, + ), + DexEntry( + Game.Gold, + "For protection, it releases a horrible stench from the antenna on its head to drive away enemies.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "Its feet have suction cups designed to stick to any surface. It tenaciously climbs trees to forage.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "It crawls into foliage where it camouflages itself among leaves that are the same color as its body.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "CATERPIE has a voracious appetite. It can devour leaves bigger than its body right before your eyes. From its antenna, this POKéMON releases a terrifically strong odor.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "It is covered with a green skin. When it grows, it sheds the skin, covers itself with silk, and becomes a cocoon.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "Its short feet are tipped with suction pads that enable it to tirelessly climb slopes and walls.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "Its voracious appetite compels it to devour leaves bigger than itself without hesitation. It releases a terribly strong odor from its antennae.", + Generation.Three, + ), + ]; + static const List Metapod = [ + DexEntry( + Game.Red, + "This POKéMON is vulnerable to attack while its shell is soft, exposing its weak and tender body.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "Hardens its shell to protect itself. However, a large impact may cause it to pop out of its shell.", + Generation.One, + ), + DexEntry( + Game.Gold, + "Inside the shell, it is soft and weak as it prepares to evolve. It stays motionless in the shell.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "It prepares for evolution by hardening its shell as much as possible to protect its soft body.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "This is its pre-evolved form. At this stage, it can only harden, so it remains motionless to avoid attack.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "The shell covering this POKéMON’s body is as hard as an iron slab. METAPOD does not move very much. It stays still because it is preparing its soft innards for evolution inside the hard shell.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "Even though it is encased in a sturdy shell, the body inside is tender. It can’t withstand a harsh attack.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "This POKéMON is vulnerable to attack while its shell is soft, exposing its weak and tender body.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "Its shell is as hard as an iron slab. A METAPOD does not move very much because it is preparing its soft innards for evolution inside the shell.", + Generation.Three, + ), + ]; + static const List Butterfree = [ + DexEntry( + Game.Red, + "In battle, it flaps its wings at high speed to release highly toxic dust into the air.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "Its wings, covered with poisonous powders, repel water. This allows it to fly in the rain.", + Generation.One, + ), + DexEntry( + Game.Gold, + "It collects honey every day. It rubs honey onto the hairs on its legs to carry it back to its nest.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "Water-repellent powder on its wings enables it to collect honey, even in the heaviest of rains.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "It flits from flower to flower, collecting honey. It can even identify distant flowers in bloom.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "BUTTERFREE has a superior ability to search for delicious honey from flowers. It can even search out, extract, and carry honey from flowers that are blooming over six miles from its nest.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "The wings are protected by rain-repellent dust. As a result, this POKéMON can fly about even in rain.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "In battle, it flaps its wings at great speed to release highly toxic dust into the air.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "It has a superior ability to search for delicious honey from flowers. It can seek, extract, and carry honey from flowers blooming over six miles away.", + Generation.Three, + ), + ]; + static const List Weedle = [ + DexEntry( + Game.Red, + "Often found in forests, eating leaves. It has a sharp venomous stinger on its head.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "Beware of the sharp stinger on its head. It hides in grass and bushes where it eats leaves.", + Generation.One, + ), + DexEntry( + Game.Gold, + "Its poison stinger is very powerful. Its bright-colored body is intended to warn off its enemies.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "It attacks using a two-inch poison barb on its head. It can usually be found under the leaves it eats.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "The barb on top of its head secretes a strong poison. It uses this toxic barb to protect itself.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "WEEDLE has an extremely acute sense of smell. It is capable of distinguishing its favorite kinds of leaves from those it dislikes just by sniffing with its big red proboscis (nose).", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "Often found in forests and grasslands. It has a sharp, toxic barb of around two inches on top of its head.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "Often found in forests, eating leaves. It has a sharp stinger on its head that injects poison.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "A WEEDLE has an extremely acute sense of smell. It distinguishes its favorite kinds of leaves from those it dislikes by sniffing with its big red proboscis (nose).", + Generation.Three, + ), + ]; + static const List Kakuna = [ + DexEntry( + Game.Red, + "Almost incapable of moving, this POKéMON can only harden its shell to protect itself from predators.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "Able to move only slightly. When endangered, it may stick out its stinger and poison its enemy.", + Generation.One, + ), + DexEntry( + Game.Gold, + "Although it is a cocoon, it can move a little. It can extend its poison barb if it is attacked.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "From this form, it will grow into an adult. As its body becomes softer, the external shell hardens.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "Nearly incapable of movement, it leans against stout trees while waiting for its evolution.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "KAKUNA remains virtually immobile as it clings to a tree. However, on the inside, it is extremely busy as it prepares for its coming evolution. This is evident from how hot the shell becomes to the touch.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "This POKéMON is in a temporary stage while making its body. It is almost completely unable to move on its own.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "Almost incapable of moving, this POKéMON can only harden its shell to protect itself when it is in danger.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "It remains virtually immobile while it clings to a tree. However, on the inside, it busily prepares for evolution. This is evident from how hot its shell becomes.", + Generation.Three, + ), + ]; + static const List Beedrill = [ + DexEntry( + Game.Red, + "Flies at high speed and attacks using its large venomous stingers on its forelegs and tail.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "It has 3 poisonous stingers on its forelegs and its tail. They are used to jab its enemy repeatedly.", + Generation.One, + ), + DexEntry( + Game.Gold, + "It can take down any opponent with its powerful poison stingers. It sometimes attacks in swarms.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "It has three poison barbs. The barb on its tail secretes the most powerful poison.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "It uses sharp, poisonous stings to defeat prey, then takes the victim back to its nest for food.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "BEEDRILL is extremely territorial. No one should ever approach its nest - this is for their own safety. If angered, they will attack in a furious swarm.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "May appear in a swarm. Flies at violent speeds, all the while stabbing with the toxic stinger on its rear.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "It flies at high speed and attacks using the large venomous stingers on its forelegs and tail.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "A BEEDRILL is extremely territorial. For safety reasons, no one should ever approach its nest. If angered, they will attack in a swarm.", + Generation.Three, + ), + ]; + static const List Pidgey = [ + DexEntry( + Game.Red, + "A common sight in forests and woods. It flaps its wings at ground level to kick up blinding sand.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "Very docile. If attacked, it will often kick up sand to protect itself rather than fight back.", + Generation.One, + ), + DexEntry( + Game.Gold, + "It usually hides in tall grass. Because it dislikes fighting, it protects itself by kicking up sand.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "Common in grassy areas and forests, it is very docile and will chase off enemies by flapping up sand.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "It rapidly flaps its wings in the grass, stirring up a dust cloud that drives insect prey out into the open.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "PIDGEY has an extremely sharp sense of direction. It is capable of unerringly returning home to its nest, however far it may be removed from its familiar surroundings.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "Does not like to fight. It hides in tall grass and so on, foraging for food such as small bugs.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "A common sight in forests and woods. It flaps its wings at ground level to kick up blinding sand.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "It has an extremely sharp sense of direction. It can unerringly return home to its nest, however far it may be removed from its familiar surroundings.", + Generation.Three, + ), + ]; + static const List Pidgeotto = [ + DexEntry( + Game.Red, + "Very protective of its sprawling territorial area, this POKéMON will fiercely peck at any intruder.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "This POKéMON is full of vitality. It constantly flies around its large territory in search of prey.", + Generation.One, + ), + DexEntry( + Game.Gold, + "It has outstanding vision. However high it flies, it is able to distinguish the movements of its prey.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "It immobilizes its prey using well-developed claws, then carries the prey more than 60 miles to its nest.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "It slowly flies in a circular pattern, all the while keeping a sharp lookout for prey.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "PIDGEOTTO claims a large area as its own territory. This POKéMON flies around, patrolling its living space. If its territory is violated, it shows no mercy in thoroughly punishing the foe with its sharp claws.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "The claws on its feet are well developed. It can carry prey such as an EXEGGCUTE to its nest over 60 miles away.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "Very protective of its sprawling territorial area, this POKéMON will fiercely peck at any intruder.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "This POKéMON flies around, patrolling its large territory. If its living space is violated, it shows no mercy in thoroughly punishing the foe with its sharp claws.", + Generation.Three, + ), + ]; + static const List Pidgeot = [ + DexEntry( + Game.Red, + "When hunting, it skims the surface of water at high speed to pick off unwary prey such as MAGIKARP.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "This POKéMON flies at Mach 2 speed, seeking prey. Its large talons are feared as wicked weapons.", + Generation.One, + ), + DexEntry( + Game.Gold, + "Its well-developed chest muscles make it strong enough to whip up a gusty windstorm with just a few flaps.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "It spreads its beautiful wings wide to frighten its enemies. It can fly at Mach 2 speed.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "Its outstanding vision allows it to spot splashing MAGIKARP, even while flying at 3300 feet.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "This POKéMON has a dazzling plumage of beautifully glossy feathers. Many TRAINERS are captivated by the striking beauty of the feathers on its head, compelling them to choose PIDGEOT as their POKéMON.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "It spreads its gorgeous wings widely to intimidate enemies. It races through the skies at Mach-2 speed.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "When hunting, it skims the surface of water at high speed to pick off unwary prey such as MAGIKARP.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "This POKéMON has gorgeous, glossy feathers. Many TRAINERS are so captivated by the beautiful feathers on its head that they choose PIDGEOT as their POKéMON.", + Generation.Three, + ), + ]; + static const List Rattata = [ + DexEntry( + Game.Red, + "Bites anything when it attacks. Small and very quick, it is a common sight in many places.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "Will chew on anything with its fangs. If you see one, it is certain that 40 more live in the area.", + Generation.One, + ), + DexEntry( + Game.Gold, + "It eats anything. Wherever food is available, it will settle down and produce offspring continuously.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "Living wherever there is food available, it ceaselessly scavenges for edibles the entire day.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "This POKéMON’s impressive vitality allows it to live anywhere. It also multiplies very quickly.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "RATTATA is cautious in the extreme. Even while it is asleep, it constantly listens by moving its ears around. It is not picky about where it lives - it will make its nest anywhere.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.FireRed, + "Its fangs are long and very sharp. They grow continuously, so it gnaws on hard things to whittle them down.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "Bites anything when it attacks. Small and very quick, it is a common sight in many places.", + Generation.Three, + ), + DexEntry( + Game.Emerald, + "A RATTATA is cautious in the extreme. Even while it is asleep, it constantly moves its ears and listens for danger. It will make its nest anywhere.", + Generation.Three, + ), + ]; + static const List Raticate = [ + DexEntry( + Game.Red, + "It uses its whiskers to maintain its balance. It apparently slows down if they are cut off.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "Its hind feet are webbed. They act as flippers, so it can swim in rivers and hunt for prey.", + Generation.One, + ), + DexEntry( + Game.Gold, + "Gnaws on anything with its tough fangs. It can even topple concrete buildings by gnawing on them.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "Its whiskers help it to maintain balance. Its fangs never stop growing, so it gnaws to pare them down.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "The webs on its hind legs enable it to cross rivers. It searches wide areas for food.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "RATICATE’s sturdy fangs grow steadily. To keep them ground down, it gnaws on rocks and logs. It may even chew on the walls of houses.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.Emerald, + "A RATICATE’s sturdy fangs grow steadily. To keep them ground down, it gnaws on rocks and logs. It may even chew on the walls of houses.", + Generation.Three, + ), + DexEntry( + Game.FireRed, + "Its rear feet have three toes each. They are webbed, enabling it to swim across rivers.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "It uses its whiskers to maintain its balance. It apparently slows down if they are cut off.", + Generation.Three, + ), + ]; + static const List Spearow = [ + DexEntry( + Game.Red, + "Eats bugs in grassy areas. It has to flap its short wings at high speed to stay airborne.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "Inept at flying high. However, it can fly around very fast to protect its territory.", + Generation.One, + ), + DexEntry( + Game.Gold, + "It flaps its short wings to flush out insects from tall grass. It then plucks them with its stubby beak.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "Very protective of its territory, it flaps its short wings busily to dart around at high speed.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "To protect its territory, it flies around ceaselessly, making high-pitched cries.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "SPEAROW has a very loud cry that can be heard over half a mile away. If its high, keening cry is heard echoing all around, it is a sign that they are warning each other of danger.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.Emerald, + "Its loud cry can be heard over half a mile away. If its high, keening cry is heard echoing all around, it is a sign that they are warning each other of danger.", + Generation.Three, + ), + DexEntry( + Game.FireRed, + "It busily flits around here and there. Even if it is frail, it can be a tough foe that uses MIRROR MOVE.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "Eats bugs in grassy areas. It has to flap its short wings at high speed to stay airborne.", + Generation.Three, + ), + ]; + static const List Fearow = [ + DexEntry( + Game.Red, + "With its huge and magnificent wings, it can keep aloft without ever having to land for rest.", + Generation.One, + additionalGames: [Game.Blue], + ), + DexEntry( + Game.Yellow, + "A POKéMON that dates back many years. If it senses danger, it flies high and away, instantly.", + Generation.One, + ), + DexEntry( + Game.Gold, + "It shoots itself suddenly high into the sky, then plummets down in one fell swoop to strike its prey.", + Generation.Two, + ), + DexEntry( + Game.Silver, + "It cleverly uses its thin, long beak to pluck and eat small insects that hide under the ground.", + Generation.Two, + ), + DexEntry( + Game.Crystal, + "It uses its long beak to attack. It has a surprisingly long reach, so it must be treated with caution.", + Generation.Two, + ), + DexEntry( + Game.Ruby, + "FEAROW is recognized by its long neck and elongated beak. They are conveniently shaped for catching prey in soil or water. It deftly moves its long and skinny beak to pluck prey.", + Generation.Three, + additionalGames: [Game.Sapphire], + ), + DexEntry( + Game.Emerald, + "Its long neck and elongated beak are ideal for catching prey in soil or water. It deftly moves this extended and skinny beak to pluck prey.", + Generation.Three, + ), + DexEntry( + Game.FireRed, + "Its huge and magnificent wings can keep it aloft in the sky. It can remain flying a whole day without landing.", + Generation.Three, + ), + DexEntry( + Game.LeafGreen, + "With its huge and magnificent wings, it can keep aloft without ever having to land for rest.", + Generation.Three, + ), + ]; } diff --git a/lib/pokemon.dart b/lib/pokemon.dart index 4639cff..10d5f0c 100644 --- a/lib/pokemon.dart +++ b/lib/pokemon.dart @@ -153,82 +153,8 @@ enum Pokemon { Generation.One, [Type.Water], SingleEvolution(8, 16), - locations: [ - Location( - Game.Red, - [GameRoute.PalletTown], - Generation.One, - additionalGames: [Game.Blue], - ), - Location(Game.Yellow, [GameRoute.VermilionCity], Generation.One), - Location( - Game.Gold, - [GameRoute.TradeOrMigrate], - Generation.Two, - additionalGames: [Game.Silver, Game.Crystal], - ), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location( - Game.FireRed, - [GameRoute.PalletTown], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - ], - dexEntries: [ - DexEntry( - Game.Red, - "After birth, its back swells and hardens into a shell. Powerfully sprays foam from its mouth.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "Shoots water at prey while in the water. Withdraws into its shell when in danger.", - Generation.One, - ), - DexEntry( - Game.Gold, - "The shell is soft when it is born. It soon becomes so resilient, prodding fingers will bounce off it.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "The shell, which hardens soon after it is born, is resilient. If you poke it, it will bounce back out.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "When it feels threatened, it draws its legs inside its shell and sprays water from its mouth.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "SQUIRTLE’s shell is not merely used for protection. The shell’s rounded shape and the grooves on its surface help minimize resistance in water, enabling this POKéMON to swim at high speeds.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "When it retracts its long neck into its shell, it squirts out water with vigorous force.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "After birth, its back swells and hardens into a shell. It powerfully sprays foam from its mouth.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "Its shell is not just for protection. Its rounded shape and the grooves on its surface minimize resistance in water, enabling SQUIRTLE to swim at high speeds.", - Generation.Three, - ), - ], + locations: Gen1Locations.Squirtle, + dexEntries: Gen1DexData.Squirtle, ), Wartortle( 8, @@ -236,81 +162,8 @@ enum Pokemon { [Type.Water], SingleEvolution(9, 36), previousPokemon: 7, - locations: [ - Location( - Game.Red, - [GameRoute.Evolve], - Generation.One, - additionalGames: [Game.Blue, Game.Yellow], - ), - Location( - Game.Gold, - [GameRoute.TradeOrMigrate], - Generation.Two, - additionalGames: [Game.Silver, Game.Crystal], - ), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location( - Game.FireRed, - [GameRoute.Evolve], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - ], - dexEntries: [ - DexEntry( - Game.Red, - "Often hides in water to stalk unwary prey. For swimming fast, it moves its ears to maintain balance.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "When tapped, this POKéMON will pull in its head, but its tail will still stick out a little bit.", - Generation.One, - ), - DexEntry( - Game.Gold, - "It is recognized as a symbol of longevity. If its shell has algae on it, that WARTORTLE is very old.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "It cleverly controls its furry ears and tail to maintain its balance while swimming.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "Its long, furry tail is a symbol of longevity, making it quite popular among older people.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "Its tail is large and covered with a rich, thick fur. The tail becomes increasingly deeper in color as WARTORTLE ages. The scratches on its shell are evidence of this POKéMON’s toughness as a battler.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "This POKéMON is very popular as a pet. Its fur-covered tail is a symbol of its longevity.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "It often hides in water to stalk unwary prey. For fast swimming, it moves its ears to maintain balance.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "Its large tail is covered with rich, thick fur that deepens in color with age. The scratches on its shell are evidence of this POKéMON’s toughness in battle.", - Generation.Three, - ), - ], + locations: Gen1Locations.Wartortle, + dexEntries: Gen1DexData.Wartortle, ), Blastoise( 9, @@ -318,189 +171,16 @@ enum Pokemon { [Type.Water], null, previousPokemon: 8, - locations: [ - Location( - Game.Red, - [GameRoute.Evolve], - Generation.One, - additionalGames: [Game.Blue, Game.Yellow], - ), - Location( - Game.Gold, - [GameRoute.TradeOrMigrate], - Generation.Two, - additionalGames: [Game.Silver, Game.Crystal], - ), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location( - Game.FireRed, - [GameRoute.Evolve], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - ], - dexEntries: [ - DexEntry( - Game.Red, - "A brutal POKéMON with pressurized water jets on its shell. They are used for high speed tackles.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "Once it takes aim at its enemy, it blasts out water with even more force than a fire hose.", - Generation.One, - ), - DexEntry( - Game.Gold, - "It deliberately makes itself heavy so it can withstand the recoil of the water jets it fires.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "The rocket cannons on its shell fire jets of water capable of punching holes through thick steel.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "It firmly plants its feet on the ground before shooting water from the jets on its back.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "BLASTOISE has water spouts that protrude from its shell. The water spouts are very accurate. They can shoot bullets of water with enough accuracy to strike empty cans from a distance of over 160 feet.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "It crushes its foe under its heavy body to cause fainting. In a pinch, it will withdraw inside its shell.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "The pressurized water jets on this brutal POKéMON’s shell are used for high-speed tackles.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "The waterspouts that protrude from its shell are highly accurate. Their bullets of water can precisely nail tin cans from a distance of over 160 feet.", - Generation.Three, - ), - ], + locations: Gen1Locations.Blastoise, + dexEntries: Gen1DexData.Blastoise, ), Caterpie( 10, Generation.One, [Type.Bug], SingleEvolution(11, 7), - locations: [ - Location(Game.Red, [ - GameRoute.RT25, - GameRoute.ViridianForest, - ], Generation.One), - Location(Game.Blue, [ - GameRoute.RT2, - GameRoute.RT24, - GameRoute.RT25, - GameRoute.ViridianForest, - ], Generation.One), - Location(Game.Yellow, [GameRoute.ViridianForest], Generation.One), - Location(Game.Gold, [ - GameRoute.RT2, - GameRoute.RT26, - GameRoute.RT27, - GameRoute.RT30, - GameRoute.RT31, - GameRoute.RT34, - GameRoute.RT35, - GameRoute.RT36, - GameRoute.RT37, - GameRoute.RT38, - GameRoute.RT39, - GameRoute.AzaleaTown, - GameRoute.IlexForest, - GameRoute.LakeOfRage, - GameRoute.NationalPark, - ], Generation.Two), - Location(Game.Silver, [GameRoute.NationalPark], Generation.Two), - Location(Game.Crystal, [ - GameRoute.RT2, - GameRoute.RT24, - GameRoute.RT25, - GameRoute.RT30, - GameRoute.RT31, - GameRoute.IlexForest, - GameRoute.NationalPark, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location(Game.FireRed, [ - GameRoute.RT2, - GameRoute.RT24, - GameRoute.RT25, - GameRoute.PatternBush, - GameRoute.ViridianForest, - ], Generation.Three), - ], - dexEntries: [ - DexEntry( - Game.Red, - "Its short feet are tipped with suction pads that enable it to tirelessly climb slopes and walls.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "If you touch the feeler on top of its head, it will release a horrible stink to protect itself.", - Generation.One, - ), - DexEntry( - Game.Gold, - "For protection, it releases a horrible stench from the antenna on its head to drive away enemies.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "Its feet have suction cups designed to stick to any surface. It tenaciously climbs trees to forage.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "It crawls into foliage where it camouflages itself among leaves that are the same color as its body.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "CATERPIE has a voracious appetite. It can devour leaves bigger than its body right before your eyes. From its antenna, this POKéMON releases a terrifically strong odor.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "It is covered with a green skin. When it grows, it sheds the skin, covers itself with silk, and becomes a cocoon.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "Its short feet are tipped with suction pads that enable it to tirelessly climb slopes and walls.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "Its voracious appetite compels it to devour leaves bigger than itself without hesitation. It releases a terribly strong odor from its antennae.", - Generation.Three, - ), - ], + locations: Gen1Locations.Caterpie, + dexEntries: Gen1DexData.Caterpie, ), Metapod( 11, @@ -508,109 +188,8 @@ enum Pokemon { [Type.Bug], SingleEvolution(12, 10), previousPokemon: 10, - locations: [ - Location(Game.Red, [ - GameRoute.RT25, - GameRoute.ViridianForest, - ], Generation.One), - Location(Game.Blue, [ - GameRoute.RT24, - GameRoute.RT25, - GameRoute.ViridianForest, - ], Generation.One), - Location(Game.Yellow, [GameRoute.ViridianForest], Generation.One), - Location(Game.Gold, [ - GameRoute.RT2, - GameRoute.RT26, - GameRoute.RT27, - GameRoute.RT30, - GameRoute.RT31, - GameRoute.RT34, - GameRoute.RT35, - GameRoute.RT36, - GameRoute.RT37, - GameRoute.RT38, - GameRoute.RT39, - GameRoute.AzaleaTown, - GameRoute.IlexForest, - GameRoute.LakeOfRage, - GameRoute.NationalPark, - ], Generation.Two), - Location(Game.Silver, [GameRoute.NationalPark], Generation.Two), - Location(Game.Crystal, [ - GameRoute.RT24, - GameRoute.RT25, - GameRoute.IlexForest, - GameRoute.NationalPark, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire], - ), - Location( - Game.FireRed, - [ - GameRoute.RT24, - GameRoute.RT25, - GameRoute.PatternBush, - GameRoute.ViridianForest, - ], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - Location(Game.Emerald, [GameRoute.TradeOrMigrate], Generation.Three), - ], - dexEntries: [ - DexEntry( - Game.Red, - "This POKéMON is vulnerable to attack while its shell is soft, exposing its weak and tender body.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "Hardens its shell to protect itself. However, a large impact may cause it to pop out of its shell.", - Generation.One, - ), - DexEntry( - Game.Gold, - "Inside the shell, it is soft and weak as it prepares to evolve. It stays motionless in the shell.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "It prepares for evolution by hardening its shell as much as possible to protect its soft body.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "This is its pre-evolved form. At this stage, it can only harden, so it remains motionless to avoid attack.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "The shell covering this POKéMON’s body is as hard as an iron slab. METAPOD does not move very much. It stays still because it is preparing its soft innards for evolution inside the hard shell.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "Even though it is encased in a sturdy shell, the body inside is tender. It can’t withstand a harsh attack.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "This POKéMON is vulnerable to attack while its shell is soft, exposing its weak and tender body.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "Its shell is as hard as an iron slab. A METAPOD does not move very much because it is preparing its soft innards for evolution inside the shell.", - Generation.Three, - ), - ], + locations: Gen1Locations.Metapod, + dexEntries: Gen1DexData.Metapod, ), Butterfree( 12, @@ -618,202 +197,16 @@ enum Pokemon { [Type.Bug, Type.Flying], null, previousPokemon: 11, - locations: [ - Location( - Game.Red, - [GameRoute.Evolve], - Generation.One, - additionalGames: [Game.Blue, Game.Yellow], - ), - Location(Game.Gold, [ - GameRoute.RT2, - GameRoute.RT26, - GameRoute.RT27, - GameRoute.RT34, - GameRoute.RT35, - GameRoute.RT37, - GameRoute.RT38, - GameRoute.RT39, - GameRoute.AzaleaTown, - GameRoute.IlexForest, - GameRoute.LakeOfRage, - GameRoute.NationalPark, - ], Generation.Two), - Location(Game.Silver, [GameRoute.NationalPark], Generation.Two), - Location(Game.Crystal, [ - GameRoute.RT2, - GameRoute.RT24, - GameRoute.RT25, - GameRoute.IlexForest, - GameRoute.NationalPark, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location( - Game.FireRed, - [GameRoute.Evolve], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - ], - dexEntries: [ - DexEntry( - Game.Red, - "In battle, it flaps its wings at high speed to release highly toxic dust into the air.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "Its wings, covered with poisonous powders, repel water. This allows it to fly in the rain.", - Generation.One, - ), - DexEntry( - Game.Gold, - "It collects honey every day. It rubs honey onto the hairs on its legs to carry it back to its nest.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "Water-repellent powder on its wings enables it to collect honey, even in the heaviest of rains.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "It flits from flower to flower, collecting honey. It can even identify distant flowers in bloom.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "BUTTERFREE has a superior ability to search for delicious honey from flowers. It can even search out, extract, and carry honey from flowers that are blooming over six miles from its nest.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "The wings are protected by rain-repellent dust. As a result, this POKéMON can fly about even in rain.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "In battle, it flaps its wings at great speed to release highly toxic dust into the air.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "It has a superior ability to search for delicious honey from flowers. It can seek, extract, and carry honey from flowers blooming over six miles away.", - Generation.Three, - ), - ], + locations: Gen1Locations.Butterfree, + dexEntries: Gen1DexData.Butterfree, ), Weedle( 13, Generation.One, [Type.Bug, Type.Poison], SingleEvolution(14, 7), - locations: [ - Location(Game.Red, [ - GameRoute.RT2, - GameRoute.RT24, - GameRoute.RT25, - GameRoute.ViridianForest, - ], Generation.One), - Location(Game.Blue, [ - GameRoute.RT25, - GameRoute.ViridianForest, - ], Generation.One), - Location(Game.Yellow, [GameRoute.TradeOrMigrate], Generation.One), - Location(Game.Gold, [GameRoute.NationalPark], Generation.Two), - Location(Game.Silver, [ - GameRoute.RT2, - GameRoute.RT26, - GameRoute.RT27, - GameRoute.RT30, - GameRoute.RT31, - GameRoute.RT34, - GameRoute.RT35, - GameRoute.RT36, - GameRoute.RT37, - GameRoute.RT38, - GameRoute.RT39, - GameRoute.AzaleaTown, - GameRoute.IlexForest, - GameRoute.LakeOfRage, - GameRoute.NationalPark, - ], Generation.Two), - Location(Game.Crystal, [ - GameRoute.RT30, - GameRoute.RT31, - GameRoute.IlexForest, - GameRoute.NationalPark, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location(Game.FireRed, [ - GameRoute.RT2, - GameRoute.RT24, - GameRoute.RT25, - GameRoute.PatternBush, - GameRoute.ViridianForest, - ], Generation.Three), - ], - dexEntries: [ - DexEntry( - Game.Red, - "Often found in forests, eating leaves. It has a sharp venomous stinger on its head.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "Beware of the sharp stinger on its head. It hides in grass and bushes where it eats leaves.", - Generation.One, - ), - DexEntry( - Game.Gold, - "Its poison stinger is very powerful. Its bright-colored body is intended to warn off its enemies.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "It attacks using a two-inch poison barb on its head. It can usually be found under the leaves it eats.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "The barb on top of its head secretes a strong poison. It uses this toxic barb to protect itself.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "WEEDLE has an extremely acute sense of smell. It is capable of distinguishing its favorite kinds of leaves from those it dislikes just by sniffing with its big red proboscis (nose).", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "Often found in forests and grasslands. It has a sharp, toxic barb of around two inches on top of its head.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "Often found in forests, eating leaves. It has a sharp stinger on its head that injects poison.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "A WEEDLE has an extremely acute sense of smell. It distinguishes its favorite kinds of leaves from those it dislikes by sniffing with its big red proboscis (nose).", - Generation.Three, - ), - ], + locations: Gen1Locations.Weedle, + dexEntries: Gen1DexData.Weedle, ), Kakuna( 14, @@ -821,106 +214,8 @@ enum Pokemon { [Type.Bug, Type.Poison], SingleEvolution(15, 10), previousPokemon: 13, - locations: [ - Location(Game.Red, [ - GameRoute.RT24, - GameRoute.RT25, - GameRoute.ViridianForest, - ], Generation.One), - Location(Game.Blue, [ - GameRoute.RT25, - GameRoute.ViridianForest, - ], Generation.One), - Location(Game.Yellow, [GameRoute.TradeOrMigrate], Generation.One), - Location(Game.Gold, [GameRoute.NationalPark], Generation.Two), - Location(Game.Silver, [ - GameRoute.RT2, - GameRoute.RT26, - GameRoute.RT27, - GameRoute.RT30, - GameRoute.RT31, - GameRoute.RT34, - GameRoute.RT35, - GameRoute.RT36, - GameRoute.RT37, - GameRoute.RT38, - GameRoute.RT39, - GameRoute.AzaleaTown, - GameRoute.IlexForest, - GameRoute.LakeOfRage, - GameRoute.NationalPark, - ], Generation.Two), - Location(Game.Crystal, [ - GameRoute.IlexForest, - GameRoute.NationalPark, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location( - Game.FireRed, - [ - GameRoute.RT24, - GameRoute.RT25, - GameRoute.PatternBush, - GameRoute.ViridianForest, - ], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - ], - dexEntries: [ - DexEntry( - Game.Red, - "Almost incapable of moving, this POKéMON can only harden its shell to protect itself from predators.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "Able to move only slightly. When endangered, it may stick out its stinger and poison its enemy.", - Generation.One, - ), - DexEntry( - Game.Gold, - "Although it is a cocoon, it can move a little. It can extend its poison barb if it is attacked.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "From this form, it will grow into an adult. As its body becomes softer, the external shell hardens.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "Nearly incapable of movement, it leans against stout trees while waiting for its evolution.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "KAKUNA remains virtually immobile as it clings to a tree. However, on the inside, it is extremely busy as it prepares for its coming evolution. This is evident from how hot the shell becomes to the touch.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "This POKéMON is in a temporary stage while making its body. It is almost completely unable to move on its own.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "Almost incapable of moving, this POKéMON can only harden its shell to protect itself when it is in danger.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "It remains virtually immobile while it clings to a tree. However, on the inside, it busily prepares for evolution. This is evident from how hot its shell becomes.", - Generation.Three, - ), - ], + locations: Gen1Locations.Kakuna, + dexEntries: Gen1DexData.Kakuna, ), Beedrill( 15, @@ -928,249 +223,16 @@ enum Pokemon { [Type.Bug, Type.Poison], null, previousPokemon: 14, - locations: [ - Location( - Game.Red, - [GameRoute.Evolve], - Generation.One, - additionalGames: [Game.Blue], - ), - Location(Game.Yellow, [GameRoute.Evolve], Generation.One), - Location(Game.Gold, [GameRoute.NationalPark], Generation.Two), - Location(Game.Silver, [ - GameRoute.RT2, - GameRoute.RT26, - GameRoute.RT27, - GameRoute.RT34, - GameRoute.RT35, - GameRoute.RT36, - GameRoute.RT37, - GameRoute.RT38, - GameRoute.RT39, - GameRoute.AzaleaTown, - GameRoute.IlexForest, - GameRoute.LakeOfRage, - GameRoute.NationalPark, - ], Generation.Two), - Location(Game.Crystal, [ - GameRoute.IlexForest, - GameRoute.NationalPark, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location( - Game.FireRed, - [GameRoute.Evolve], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - ], - dexEntries: [ - DexEntry( - Game.Red, - "Flies at high speed and attacks using its large venomous stingers on its forelegs and tail.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "It has 3 poisonous stingers on its forelegs and its tail. They are used to jab its enemy repeatedly.", - Generation.One, - ), - DexEntry( - Game.Gold, - "It can take down any opponent with its powerful poison stingers. It sometimes attacks in swarms.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "It has three poison barbs. The barb on its tail secretes the most powerful poison.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "It uses sharp, poisonous stings to defeat prey, then takes the victim back to its nest for food.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "BEEDRILL is extremely territorial. No one should ever approach its nest - this is for their own safety. If angered, they will attack in a furious swarm.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "May appear in a swarm. Flies at violent speeds, all the while stabbing with the toxic stinger on its rear.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "It flies at high speed and attacks using the large venomous stingers on its forelegs and tail.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "A BEEDRILL is extremely territorial. For safety reasons, no one should ever approach its nest. If angered, they will attack in a swarm.", - Generation.Three, - ), - ], + locations: Gen1Locations.Beedrill, + dexEntries: Gen1DexData.Beedrill, ), Pidgey( 16, Generation.One, [Type.Normal, Type.Flying], SingleEvolution(17, 18), - locations: [ - Location( - Game.Red, - [ - GameRoute.RT1, - GameRoute.RT2, - GameRoute.RT3, - GameRoute.RT5, - GameRoute.RT6, - GameRoute.RT7, - GameRoute.RT8, - GameRoute.RT12, - GameRoute.RT13, - GameRoute.RT14, - GameRoute.RT15, - GameRoute.RT21, - GameRoute.RT24, - GameRoute.RT25, - ], - Generation.One, - additionalGames: [Game.Blue], - ), - Location(Game.Yellow, [ - GameRoute.RT1, - GameRoute.RT2, - GameRoute.RT5, - GameRoute.RT6, - GameRoute.RT7, - GameRoute.RT8, - GameRoute.RT11, - GameRoute.RT12, - GameRoute.RT13, - GameRoute.RT21, - GameRoute.RT24, - GameRoute.RT25, - GameRoute.ViridianForest, - ], Generation.One), - Location( - Game.Gold, - [ - GameRoute.RT1, - GameRoute.RT2, - GameRoute.RT5, - GameRoute.RT6, - GameRoute.RT25, - GameRoute.RT29, - GameRoute.RT30, - GameRoute.RT31, - GameRoute.RT35, - GameRoute.RT36, - GameRoute.RT37, - GameRoute.NationalPark, - ], - Generation.Two, - additionalGames: [Game.Silver], - ), - Location(Game.Crystal, [ - GameRoute.RT1, - GameRoute.RT2, - GameRoute.RT5, - GameRoute.RT25, - GameRoute.RT29, - GameRoute.RT30, - GameRoute.RT31, - GameRoute.RT32, - GameRoute.RT34, - GameRoute.RT35, - GameRoute.RT36, - GameRoute.RT37, - GameRoute.IlexForest, - GameRoute.NationalPark, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location(Game.FireRed, [ - GameRoute.RT1, - GameRoute.RT2, - GameRoute.RT3, - GameRoute.RT5, - GameRoute.RT6, - GameRoute.RT7, - GameRoute.RT8, - GameRoute.RT12, - GameRoute.RT13, - GameRoute.RT14, - GameRoute.RT15, - GameRoute.RT24, - GameRoute.RT25, - GameRoute.BerryForest, - GameRoute.BondBridge, - GameRoute.FiveIsleMeadow, - ], Generation.Three), - ], - - dexEntries: [ - DexEntry( - Game.Red, - "A common sight in forests and woods. It flaps its wings at ground level to kick up blinding sand.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "Very docile. If attacked, it will often kick up sand to protect itself rather than fight back.", - Generation.One, - ), - DexEntry( - Game.Gold, - "It usually hides in tall grass. Because it dislikes fighting, it protects itself by kicking up sand.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "Common in grassy areas and forests, it is very docile and will chase off enemies by flapping up sand.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "It rapidly flaps its wings in the grass, stirring up a dust cloud that drives insect prey out into the open.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "PIDGEY has an extremely sharp sense of direction. It is capable of unerringly returning home to its nest, however far it may be removed from its familiar surroundings.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "Does not like to fight. It hides in tall grass and so on, foraging for food such as small bugs.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "A common sight in forests and woods. It flaps its wings at ground level to kick up blinding sand.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "It has an extremely sharp sense of direction. It can unerringly return home to its nest, however far it may be removed from its familiar surroundings.", - Generation.Three, - ), - ], + locations: Gen1Locations.Pidgey, + dexEntries: Gen1DexData.Pidgey, ), Pidgeotto( 17, @@ -1178,121 +240,8 @@ enum Pokemon { [Type.Normal, Type.Flying], SingleEvolution(18, 36), previousPokemon: 16, - locations: [ - Location( - Game.Red, - [GameRoute.RT14, GameRoute.RT15, GameRoute.RT21], - Generation.One, - additionalGames: [Game.Blue], - ), - Location(Game.Yellow, [ - GameRoute.RT5, - GameRoute.RT6, - GameRoute.RT7, - GameRoute.RT8, - GameRoute.RT11, - GameRoute.RT12, - GameRoute.RT13, - GameRoute.RT14, - GameRoute.RT15, - GameRoute.RT21, - GameRoute.RT24, - GameRoute.RT25, - GameRoute.ViridianForest, - ], Generation.One), - Location( - Game.Gold, - [ - GameRoute.RT2, - GameRoute.RT8, - GameRoute.RT13, - GameRoute.RT14, - GameRoute.RT15, - GameRoute.RT25, - GameRoute.RT37, - GameRoute.RT43, - ], - Generation.Two, - additionalGames: [Game.Silver], - ), - Location(Game.Crystal, [ - GameRoute.RT2, - GameRoute.RT5, - GameRoute.RT8, - GameRoute.RT11, - GameRoute.RT13, - GameRoute.RT14, - GameRoute.RT15, - GameRoute.RT25, - GameRoute.RT37, - GameRoute.RT38, - GameRoute.RT39, - GameRoute.RT43, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location(Game.FireRed, [ - GameRoute.RT13, - GameRoute.RT14, - GameRoute.RT15, - GameRoute.BerryForest, - GameRoute.BondBridge, - GameRoute.FiveIsleMeadow, - ], Generation.Three), - ], - dexEntries: [ - DexEntry( - Game.Red, - "Very protective of its sprawling territorial area, this POKéMON will fiercely peck at any intruder.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "This POKéMON is full of vitality. It constantly flies around its large territory in search of prey.", - Generation.One, - ), - DexEntry( - Game.Gold, - "It has outstanding vision. However high it flies, it is able to distinguish the movements of its prey.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "It immobilizes its prey using well-developed claws, then carries the prey more than 60 miles to its nest.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "It slowly flies in a circular pattern, all the while keeping a sharp lookout for prey.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "PIDGEOTTO claims a large area as its own territory. This POKéMON flies around, patrolling its living space. If its territory is violated, it shows no mercy in thoroughly punishing the foe with its sharp claws.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "The claws on its feet are well developed. It can carry prey such as an EXEGGCUTE to its nest over 60 miles away.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "Very protective of its sprawling territorial area, this POKéMON will fiercely peck at any intruder.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "This POKéMON flies around, patrolling its large territory. If its living space is violated, it shows no mercy in thoroughly punishing the foe with its sharp claws.", - Generation.Three, - ), - ], + locations: Gen1Locations.Pidgeotto, + dexEntries: Gen1DexData.Pidgeotto, ), Pidgeot( 18, @@ -1300,263 +249,16 @@ enum Pokemon { [Type.Normal, Type.Flying], null, previousPokemon: 17, - locations: [ - Location( - Game.Red, - [GameRoute.Evolve], - Generation.One, - additionalGames: [Game.Blue, Game.Yellow], - ), - Location( - Game.Gold, - [GameRoute.Evolve], - Generation.Two, - additionalGames: [Game.Silver, Game.Crystal], - ), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location( - Game.FireRed, - [GameRoute.Evolve], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - ], - dexEntries: [ - DexEntry( - Game.Red, - "When hunting, it skims the surface of water at high speed to pick off unwary prey such as MAGIKARP.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "This POKéMON flies at Mach 2 speed, seeking prey. Its large talons are feared as wicked weapons.", - Generation.One, - ), - DexEntry( - Game.Gold, - "Its well-developed chest muscles make it strong enough to whip up a gusty windstorm with just a few flaps.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "It spreads its beautiful wings wide to frighten its enemies. It can fly at Mach 2 speed.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "Its outstanding vision allows it to spot splashing MAGIKARP, even while flying at 3300 feet.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "This POKéMON has a dazzling plumage of beautifully glossy feathers. Many TRAINERS are captivated by the striking beauty of the feathers on its head, compelling them to choose PIDGEOT as their POKéMON.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "It spreads its gorgeous wings widely to intimidate enemies. It races through the skies at Mach-2 speed.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "When hunting, it skims the surface of water at high speed to pick off unwary prey such as MAGIKARP.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "This POKéMON has gorgeous, glossy feathers. Many TRAINERS are so captivated by the beautiful feathers on its head that they choose PIDGEOT as their POKéMON.", - Generation.Three, - ), - ], + locations: Gen1Locations.Pidgeot, + dexEntries: Gen1DexData.Pidgeot, ), Rattata( 19, Generation.One, [Type.Normal], SingleEvolution(20, 20), - locations: [ - Location( - Game.Red, - [ - GameRoute.RT1, - GameRoute.RT2, - GameRoute.RT4, - GameRoute.RT9, - GameRoute.RT16, - GameRoute.RT21, - GameRoute.RT22, - ], - Generation.One, - additionalGames: [Game.Blue], - ), - Location(Game.Yellow, [ - GameRoute.RT1, - GameRoute.RT2, - GameRoute.RT3, - GameRoute.RT4, - GameRoute.RT5, - GameRoute.RT6, - GameRoute.RT7, - GameRoute.RT8, - GameRoute.RT9, - GameRoute.RT10, - GameRoute.RT11, - GameRoute.RT16, - GameRoute.RT18, - GameRoute.RT21, - GameRoute.RT22, - GameRoute.PokemonMansion, - ], Generation.One), - Location(Game.Gold, [ - GameRoute.RT1, - GameRoute.RT3, - GameRoute.RT4, - GameRoute.RT7, - GameRoute.RT9, - GameRoute.RT11, - GameRoute.RT22, - GameRoute.RT29, - GameRoute.RT30, - GameRoute.RT31, - GameRoute.RT32, - GameRoute.RT33, - GameRoute.RT34, - GameRoute.RT38, - GameRoute.RT39, - GameRoute.RT46, - GameRoute.BurnedTower, - GameRoute.MtMortar, - GameRoute.SproutTower, - GameRoute.TinTower, - GameRoute.TohjoFalls, - GameRoute.UnionCave, - ], Generation.Two), - Location(Game.Silver, [ - GameRoute.RT1, - GameRoute.RT3, - GameRoute.RT4, - GameRoute.RT7, - GameRoute.RT9, - GameRoute.RT11, - GameRoute.RT22, - GameRoute.RT29, - GameRoute.RT30, - GameRoute.RT31, - GameRoute.RT32, - GameRoute.RT33, - GameRoute.RT34, - GameRoute.RT46, - GameRoute.BurnedTower, - GameRoute.MtMortar, - GameRoute.SproutTower, - GameRoute.TinTower, - GameRoute.TohjoFalls, - GameRoute.UnionCave, - ], Generation.Two), - Location(Game.Crystal, [ - GameRoute.RT1, - GameRoute.RT3, - GameRoute.RT4, - GameRoute.RT6, - GameRoute.RT7, - GameRoute.RT9, - GameRoute.RT11, - GameRoute.RT21, - GameRoute.RT22, - GameRoute.RT29, - GameRoute.RT32, - GameRoute.RT33, - GameRoute.RT34, - GameRoute.RT38, - GameRoute.RT39, - GameRoute.RT42, - GameRoute.RT46, - GameRoute.BurnedTower, - GameRoute.MtMortar, - GameRoute.SproutTower, - GameRoute.TinTower, - GameRoute.TohjoFalls, - GameRoute.UnionCave, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location( - Game.FireRed, - [ - GameRoute.RT1, - GameRoute.RT2, - GameRoute.RT4, - GameRoute.RT9, - GameRoute.RT16, - GameRoute.RT17, - GameRoute.RT18, - GameRoute.RT22, - GameRoute.PokemonMansion, - ], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - ], - dexEntries: [ - DexEntry( - Game.Red, - "Bites anything when it attacks. Small and very quick, it is a common sight in many places.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "Will chew on anything with its fangs. If you see one, it is certain that 40 more live in the area.", - Generation.One, - ), - DexEntry( - Game.Gold, - "It eats anything. Wherever food is available, it will settle down and produce offspring continuously.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "Living wherever there is food available, it ceaselessly scavenges for edibles the entire day.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "This POKéMON’s impressive vitality allows it to live anywhere. It also multiplies very quickly.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "RATTATA is cautious in the extreme. Even while it is asleep, it constantly listens by moving its ears around. It is not picky about where it lives - it will make its nest anywhere.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.FireRed, - "Its fangs are long and very sharp. They grow continuously, so it gnaws on hard things to whittle them down.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "Bites anything when it attacks. Small and very quick, it is a common sight in many places.", - Generation.Three, - ), - DexEntry( - Game.Emerald, - "A RATTATA is cautious in the extreme. Even while it is asleep, it constantly moves its ears and listens for danger. It will make its nest anywhere.", - Generation.Three, - ), - ], + locations: Gen1Locations.Rattata, + dexEntries: Gen1DexData.Rattata, ), Raticate( 20, @@ -1564,278 +266,16 @@ enum Pokemon { [Type.Normal], null, previousPokemon: 19, - locations: [ - Location( - Game.Red, - [GameRoute.RT16, GameRoute.RT17, GameRoute.RT18, GameRoute.RT21], - Generation.One, - additionalGames: [Game.Blue], - ), - Location(Game.Yellow, [ - GameRoute.RT9, - GameRoute.RT10, - GameRoute.RT11, - GameRoute.RT16, - GameRoute.RT18, - GameRoute.RT21, - GameRoute.PokemonMansion, - ], Generation.One), - Location( - Game.Gold, - [ - GameRoute.RT7, - GameRoute.RT9, - GameRoute.RT10, - GameRoute.RT26, - GameRoute.RT27, - GameRoute.RT38, - GameRoute.RT39, - GameRoute.BurnedTower, - GameRoute.MtMortar, - GameRoute.TohjoFalls, - GameRoute.UnionCave, - ], - Generation.Two, - additionalGames: [Game.Silver], - ), - Location(Game.Crystal, [ - GameRoute.RT1, - GameRoute.RT3, - GameRoute.RT4, - GameRoute.RT6, - GameRoute.RT7, - GameRoute.RT9, - GameRoute.RT10, - GameRoute.RT11, - GameRoute.RT21, - GameRoute.RT26, - GameRoute.RT27, - GameRoute.RT38, - GameRoute.RT39, - GameRoute.RT42, - GameRoute.RT43, - GameRoute.BurnedTower, - GameRoute.MtMortar, - GameRoute.TohjoFalls, - GameRoute.UnionCave, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location( - Game.FireRed, - [ - GameRoute.RT16, - GameRoute.RT17, - GameRoute.RT18, - GameRoute.PokemonMansion, - ], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - ], - dexEntries: [ - DexEntry( - Game.Red, - "It uses its whiskers to maintain its balance. It apparently slows down if they are cut off.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "Its hind feet are webbed. They act as flippers, so it can swim in rivers and hunt for prey.", - Generation.One, - ), - DexEntry( - Game.Gold, - "Gnaws on anything with its tough fangs. It can even topple concrete buildings by gnawing on them.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "Its whiskers help it to maintain balance. Its fangs never stop growing, so it gnaws to pare them down.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "The webs on its hind legs enable it to cross rivers. It searches wide areas for food.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "RATICATE’s sturdy fangs grow steadily. To keep them ground down, it gnaws on rocks and logs. It may even chew on the walls of houses.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.Emerald, - "A RATICATE’s sturdy fangs grow steadily. To keep them ground down, it gnaws on rocks and logs. It may even chew on the walls of houses.", - Generation.Three, - ), - DexEntry( - Game.FireRed, - "Its rear feet have three toes each. They are webbed, enabling it to swim across rivers.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "It uses its whiskers to maintain its balance. It apparently slows down if they are cut off.", - Generation.Three, - ), - ], + locations: Gen1Locations.Raticate, + dexEntries: Gen1DexData.Raticate, ), Spearow( 21, Generation.One, [Type.Normal, Type.Flying], SingleEvolution(22, 20), - locations: [ - Location( - Game.Red, - [ - GameRoute.RT3, - GameRoute.RT4, - GameRoute.RT9, - GameRoute.RT10, - GameRoute.RT11, - GameRoute.RT16, - GameRoute.RT17, - GameRoute.RT18, - GameRoute.RT22, - GameRoute.RT23, - ], - Generation.One, - additionalGames: [Game.Blue], - ), - Location(Game.Yellow, [ - GameRoute.RT3, - GameRoute.RT4, - GameRoute.RT9, - GameRoute.RT16, - GameRoute.RT18, - GameRoute.RT22, - ], Generation.One), - Location( - Game.Gold, - [ - GameRoute.RT3, - GameRoute.RT4, - GameRoute.RT7, - GameRoute.RT9, - GameRoute.RT10, - GameRoute.RT22, - GameRoute.RT29, - GameRoute.RT30, - GameRoute.RT31, - GameRoute.RT32, - GameRoute.RT33, - GameRoute.RT35, - GameRoute.RT42, - GameRoute.RT43, - GameRoute.RT44, - GameRoute.RT45, - GameRoute.RT46, - ], - Generation.Two, - additionalGames: [Game.Silver], - ), - Location(Game.Crystal, [ - GameRoute.RT3, - GameRoute.RT4, - GameRoute.RT7, - GameRoute.RT9, - GameRoute.RT10, - GameRoute.RT22, - GameRoute.RT33, - GameRoute.RT35, - GameRoute.RT42, - GameRoute.RT44, - GameRoute.RT46, - GameRoute.AzaleaTown, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location( - Game.FireRed, - [ - GameRoute.RT3, - GameRoute.RT4, - GameRoute.RT9, - GameRoute.RT10, - GameRoute.RT11, - GameRoute.RT16, - GameRoute.RT17, - GameRoute.RT18, - GameRoute.RT22, - GameRoute.RT23, - GameRoute.CanyonEntrance, - GameRoute.CapeBrink, - GameRoute.KindleRoad, - GameRoute.MtEmber, - GameRoute.RuinValley, - GameRoute.TreasureBeach, - GameRoute.WaterPath, - ], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - ], - dexEntries: [ - DexEntry( - Game.Red, - "Eats bugs in grassy areas. It has to flap its short wings at high speed to stay airborne.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "Inept at flying high. However, it can fly around very fast to protect its territory.", - Generation.One, - ), - DexEntry( - Game.Gold, - "It flaps its short wings to flush out insects from tall grass. It then plucks them with its stubby beak.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "Very protective of its territory, it flaps its short wings busily to dart around at high speed.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "To protect its territory, it flies around ceaselessly, making high-pitched cries.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "SPEAROW has a very loud cry that can be heard over half a mile away. If its high, keening cry is heard echoing all around, it is a sign that they are warning each other of danger.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.Emerald, - "Its loud cry can be heard over half a mile away. If its high, keening cry is heard echoing all around, it is a sign that they are warning each other of danger.", - Generation.Three, - ), - DexEntry( - Game.FireRed, - "It busily flits around here and there. Even if it is frail, it can be a tough foe that uses MIRROR MOVE.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "Eats bugs in grassy areas. It has to flap its short wings at high speed to stay airborne.", - Generation.Three, - ), - ], + locations: Gen1Locations.Spearow, + dexEntries: Gen1DexData.Spearow, ), Fearow( 22, @@ -1843,116 +283,8 @@ enum Pokemon { [Type.Normal, Type.Flying], null, previousPokemon: 21, - locations: [ - Location( - Game.Red, - [GameRoute.RT17, GameRoute.RT18, GameRoute.RT23], - Generation.One, - additionalGames: [Game.Blue], - ), - Location(Game.Yellow, [ - GameRoute.RT9, - GameRoute.RT16, - GameRoute.RT17, - GameRoute.RT18, - GameRoute.RT23, - ], Generation.One), - Location( - Game.Gold, - [ - GameRoute.RT9, - GameRoute.RT10, - GameRoute.RT16, - GameRoute.RT17, - GameRoute.RT18, - GameRoute.RT22, - ], - Generation.Two, - additionalGames: [Game.Silver], - ), - Location(Game.Crystal, [ - GameRoute.RT9, - GameRoute.RT10, - GameRoute.RT16, - GameRoute.RT17, - GameRoute.RT18, - GameRoute.RT22, - GameRoute.RT42, - ], Generation.Two), - Location( - Game.Ruby, - [GameRoute.TradeOrMigrate], - Generation.Three, - additionalGames: [Game.Sapphire, Game.Emerald], - ), - Location( - Game.FireRed, - [ - GameRoute.RT17, - GameRoute.RT18, - GameRoute.RT23, - GameRoute.CanyonEntrance, - GameRoute.CapeBrink, - GameRoute.KindleRoad, - GameRoute.MtEmber, - GameRoute.RuinValley, - GameRoute.SevaultCanyon, - GameRoute.TreasureBeach, - GameRoute.WaterPath, - ], - Generation.Three, - additionalGames: [Game.LeafGreen], - ), - ], - dexEntries: [ - DexEntry( - Game.Red, - "With its huge and magnificent wings, it can keep aloft without ever having to land for rest.", - Generation.One, - additionalGames: [Game.Blue], - ), - DexEntry( - Game.Yellow, - "A POKéMON that dates back many years. If it senses danger, it flies high and away, instantly.", - Generation.One, - ), - DexEntry( - Game.Gold, - "It shoots itself suddenly high into the sky, then plummets down in one fell swoop to strike its prey.", - Generation.Two, - ), - DexEntry( - Game.Silver, - "It cleverly uses its thin, long beak to pluck and eat small insects that hide under the ground.", - Generation.Two, - ), - DexEntry( - Game.Crystal, - "It uses its long beak to attack. It has a surprisingly long reach, so it must be treated with caution.", - Generation.Two, - ), - DexEntry( - Game.Ruby, - "FEAROW is recognized by its long neck and elongated beak. They are conveniently shaped for catching prey in soil or water. It deftly moves its long and skinny beak to pluck prey.", - Generation.Three, - additionalGames: [Game.Sapphire], - ), - DexEntry( - Game.Emerald, - "Its long neck and elongated beak are ideal for catching prey in soil or water. It deftly moves this extended and skinny beak to pluck prey.", - Generation.Three, - ), - DexEntry( - Game.FireRed, - "Its huge and magnificent wings can keep it aloft in the sky. It can remain flying a whole day without landing.", - Generation.Three, - ), - DexEntry( - Game.LeafGreen, - "With its huge and magnificent wings, it can keep aloft without ever having to land for rest.", - Generation.Three, - ), - ], + locations: Gen1Locations.Fearow, + dexEntries: Gen1DexData.Fearow, ), Ekans(23, Generation.One, [Type.Poison], SingleEvolution(24, 22)), Arbok(24, Generation.One, [Type.Poison], null, previousPokemon: 23), diff --git a/pubspec.yaml b/pubspec.yaml index a55bf62..0deb628 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.032825+1819 +version: 1.0.032825+1854 environment: sdk: ^3.7.0