diff --git a/assets/sprites/chansey.png b/assets/sprites/chansey.png new file mode 100644 index 0000000..0114f65 Binary files /dev/null and b/assets/sprites/chansey.png differ diff --git a/assets/sprites/cubone.png b/assets/sprites/cubone.png new file mode 100644 index 0000000..8cdf903 Binary files /dev/null and b/assets/sprites/cubone.png differ diff --git a/assets/sprites/ditto.png b/assets/sprites/ditto.png new file mode 100644 index 0000000..17aa527 Binary files /dev/null and b/assets/sprites/ditto.png differ diff --git a/assets/sprites/drowzee.png b/assets/sprites/drowzee.png new file mode 100644 index 0000000..e748f6f Binary files /dev/null and b/assets/sprites/drowzee.png differ diff --git a/assets/sprites/eevee.png b/assets/sprites/eevee.png new file mode 100644 index 0000000..b4ff156 Binary files /dev/null and b/assets/sprites/eevee.png differ diff --git a/assets/sprites/electabuzz.png b/assets/sprites/electabuzz.png new file mode 100644 index 0000000..1bd856c Binary files /dev/null and b/assets/sprites/electabuzz.png differ diff --git a/assets/sprites/electrode.png b/assets/sprites/electrode.png new file mode 100644 index 0000000..839c9ae Binary files /dev/null and b/assets/sprites/electrode.png differ diff --git a/assets/sprites/exeggcute.png b/assets/sprites/exeggcute.png new file mode 100644 index 0000000..4c90823 Binary files /dev/null and b/assets/sprites/exeggcute.png differ diff --git a/assets/sprites/exeggutor.png b/assets/sprites/exeggutor.png new file mode 100644 index 0000000..4e1c462 Binary files /dev/null and b/assets/sprites/exeggutor.png differ diff --git a/assets/sprites/gastly.png b/assets/sprites/gastly.png new file mode 100644 index 0000000..cbbb0a3 Binary files /dev/null and b/assets/sprites/gastly.png differ diff --git a/assets/sprites/gengar.png b/assets/sprites/gengar.png new file mode 100644 index 0000000..52ac354 Binary files /dev/null and b/assets/sprites/gengar.png differ diff --git a/assets/sprites/goldeen.png b/assets/sprites/goldeen.png new file mode 100644 index 0000000..efefae0 Binary files /dev/null and b/assets/sprites/goldeen.png differ diff --git a/assets/sprites/gyarados.png b/assets/sprites/gyarados.png new file mode 100644 index 0000000..849df16 Binary files /dev/null and b/assets/sprites/gyarados.png differ diff --git a/assets/sprites/haunter.png b/assets/sprites/haunter.png new file mode 100644 index 0000000..16e1c8d Binary files /dev/null and b/assets/sprites/haunter.png differ diff --git a/assets/sprites/hitmonchan.png b/assets/sprites/hitmonchan.png new file mode 100644 index 0000000..f701768 Binary files /dev/null and b/assets/sprites/hitmonchan.png differ diff --git a/assets/sprites/hitmonlee.png b/assets/sprites/hitmonlee.png new file mode 100644 index 0000000..761c2b3 Binary files /dev/null and b/assets/sprites/hitmonlee.png differ diff --git a/assets/sprites/horsea.png b/assets/sprites/horsea.png new file mode 100644 index 0000000..471c763 Binary files /dev/null and b/assets/sprites/horsea.png differ diff --git a/assets/sprites/hypno.png b/assets/sprites/hypno.png new file mode 100644 index 0000000..7a9a407 Binary files /dev/null and b/assets/sprites/hypno.png differ diff --git a/assets/sprites/jynx.png b/assets/sprites/jynx.png new file mode 100644 index 0000000..5f5eaa9 Binary files /dev/null and b/assets/sprites/jynx.png differ diff --git a/assets/sprites/kangaskhan.png b/assets/sprites/kangaskhan.png new file mode 100644 index 0000000..a44b935 Binary files /dev/null and b/assets/sprites/kangaskhan.png differ diff --git a/assets/sprites/kingler.png b/assets/sprites/kingler.png new file mode 100644 index 0000000..136a75a Binary files /dev/null and b/assets/sprites/kingler.png differ diff --git a/assets/sprites/koffing.png b/assets/sprites/koffing.png new file mode 100644 index 0000000..bbc4fc3 Binary files /dev/null and b/assets/sprites/koffing.png differ diff --git a/assets/sprites/krabby.png b/assets/sprites/krabby.png new file mode 100644 index 0000000..4f0f90e Binary files /dev/null and b/assets/sprites/krabby.png differ diff --git a/assets/sprites/lapras.png b/assets/sprites/lapras.png new file mode 100644 index 0000000..9d0d1b9 Binary files /dev/null and b/assets/sprites/lapras.png differ diff --git a/assets/sprites/lickitung.png b/assets/sprites/lickitung.png new file mode 100644 index 0000000..80b5b59 Binary files /dev/null and b/assets/sprites/lickitung.png differ diff --git a/assets/sprites/magikarp.png b/assets/sprites/magikarp.png new file mode 100644 index 0000000..92979f9 Binary files /dev/null and b/assets/sprites/magikarp.png differ diff --git a/assets/sprites/magmar.png b/assets/sprites/magmar.png new file mode 100644 index 0000000..0cfc763 Binary files /dev/null and b/assets/sprites/magmar.png differ diff --git a/assets/sprites/marowak.png b/assets/sprites/marowak.png new file mode 100644 index 0000000..007bd39 Binary files /dev/null and b/assets/sprites/marowak.png differ diff --git a/assets/sprites/mrmime.png b/assets/sprites/mrmime.png new file mode 100644 index 0000000..3defd9c Binary files /dev/null and b/assets/sprites/mrmime.png differ diff --git a/assets/sprites/onix.png b/assets/sprites/onix.png new file mode 100644 index 0000000..19b9a89 Binary files /dev/null and b/assets/sprites/onix.png differ diff --git a/assets/sprites/pinsir.png b/assets/sprites/pinsir.png new file mode 100644 index 0000000..cba7876 Binary files /dev/null and b/assets/sprites/pinsir.png differ diff --git a/assets/sprites/rhydon.png b/assets/sprites/rhydon.png new file mode 100644 index 0000000..7f9b2cf Binary files /dev/null and b/assets/sprites/rhydon.png differ diff --git a/assets/sprites/rhyhorn.png b/assets/sprites/rhyhorn.png new file mode 100644 index 0000000..cfdde6a Binary files /dev/null and b/assets/sprites/rhyhorn.png differ diff --git a/assets/sprites/scyther.png b/assets/sprites/scyther.png new file mode 100644 index 0000000..a0f55b1 Binary files /dev/null and b/assets/sprites/scyther.png differ diff --git a/assets/sprites/seadra.png b/assets/sprites/seadra.png new file mode 100644 index 0000000..92e00d8 Binary files /dev/null and b/assets/sprites/seadra.png differ diff --git a/assets/sprites/seaking.png b/assets/sprites/seaking.png new file mode 100644 index 0000000..2e2dd20 Binary files /dev/null and b/assets/sprites/seaking.png differ diff --git a/assets/sprites/starmie.png b/assets/sprites/starmie.png new file mode 100644 index 0000000..7c53410 Binary files /dev/null and b/assets/sprites/starmie.png differ diff --git a/assets/sprites/staryu.png b/assets/sprites/staryu.png new file mode 100644 index 0000000..dd64f51 Binary files /dev/null and b/assets/sprites/staryu.png differ diff --git a/assets/sprites/tangela.png b/assets/sprites/tangela.png new file mode 100644 index 0000000..5d5155e Binary files /dev/null and b/assets/sprites/tangela.png differ diff --git a/assets/sprites/tauros.png b/assets/sprites/tauros.png new file mode 100644 index 0000000..2c0c24f Binary files /dev/null and b/assets/sprites/tauros.png differ diff --git a/assets/sprites/vaporeon.png b/assets/sprites/vaporeon.png new file mode 100644 index 0000000..9f62f52 Binary files /dev/null and b/assets/sprites/vaporeon.png differ diff --git a/assets/sprites/voltorb.png b/assets/sprites/voltorb.png new file mode 100644 index 0000000..6de2ad2 Binary files /dev/null and b/assets/sprites/voltorb.png differ diff --git a/assets/sprites/weezing-galarian.png b/assets/sprites/weezing-galarian.png new file mode 100644 index 0000000..b5248f0 Binary files /dev/null and b/assets/sprites/weezing-galarian.png differ diff --git a/assets/sprites/weezing.png b/assets/sprites/weezing.png new file mode 100644 index 0000000..170ebe0 Binary files /dev/null and b/assets/sprites/weezing.png differ diff --git a/lib/Consts.dart b/lib/Consts.dart index 06f3e3c..7ff11b3 100644 --- a/lib/Consts.dart +++ b/lib/Consts.dart @@ -1,7 +1,7 @@ import 'dart:io'; class Constants { - static const VERSION = "1.0.032325+1427"; + static const VERSION = "1.0.032325+1552"; static bool get isMobile => Platform.isAndroid || Platform.isIOS; } diff --git a/lib/MainApp.dart b/lib/MainApp.dart index 76841b3..74ac0a2 100644 --- a/lib/MainApp.dart +++ b/lib/MainApp.dart @@ -98,7 +98,7 @@ class _HomeState extends State { height: Constants.isMobile ? 64 : 198, ), Text( - Pokemon.values[index].name, + Pokemon.values[index].printName(proper: true), style: TextStyle( fontSize: Constants.isMobile ? 16 : 32, color: Colors.black, @@ -146,7 +146,7 @@ class _DexEntryState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text(_pkmn.name), + title: Text(_pkmn.printName(proper: true)), backgroundColor: SessionData.darkMode ? LibACFlutterConstants.TITLEBAR_COLOR @@ -160,7 +160,10 @@ class _DexEntryState extends State { children: [ Center(child: Image.asset(_pkmn.toDexPath())), Center( - child: Text("ID: ${_pkmn.id}", style: TextStyle(fontSize: 24)), + child: Text( + "ID: ${_pkmn.pokeDexID}", + style: TextStyle(fontSize: 24), + ), ), Row( crossAxisAlignment: CrossAxisAlignment.start, diff --git a/lib/pokemon.dart b/lib/pokemon.dart index 742b30a..19714c5 100644 --- a/lib/pokemon.dart +++ b/lib/pokemon.dart @@ -48,7 +48,7 @@ enum Type { Poison(Color.fromARGB(255, 128, 0, 128), Colors.black), Ground(Color.fromARGB(255, 128, 126, 0), Colors.black), Flying(Color.fromARGB(255, 128, 128, 255), Colors.black), - Psychic(Color.fromARGB(255, 255, 0, 255), Colors.black), + Psychic(Color.fromARGB(255, 255, 0, 255), Color.fromARGB(255, 255, 255, 255)), Bug(Color.fromARGB(255, 128, 128, 0), Colors.black), Rock(Color.fromARGB(255, 128, 128, 128), Colors.black), Ghost(Color.fromARGB(255, 128, 0, 128), Colors.black), @@ -70,6 +70,15 @@ enum EvolutionCondition { MoonStone, FireStone, LeafStone, + Alola, + OutsideAlola, + Night, + Day, + AttackGreaterThanDefense, + AttackLessThanDefense, + AttackEqualDefense, + Galar, + OutsideGalar, } abstract class Evolution { @@ -106,7 +115,7 @@ class SingleEvolution extends Evolution { class BranchedEvolution extends Evolution { final List alternates; final List levels; - final List?> conditions; + final Map?> conditions; const BranchedEvolution(this.alternates, this.levels, this.conditions); @@ -152,190 +161,355 @@ enum Move { } enum Pokemon { - Bulbasaur(1, Generation.One, [ + Bulbasaur(1, "Bulbasaur", Generation.One, [ Type.Grass, Type.Poison, ], SingleEvolution(2, 16)), - Ivysaur(2, Generation.One, [Type.Grass, Type.Poison], SingleEvolution(3, 32)), - Venusaur(3, Generation.One, [Type.Grass, Type.Poison], null), - Charmander(4, Generation.One, [Type.Fire], SingleEvolution(5, 16)), - Charmeleon(5, Generation.One, [Type.Fire], SingleEvolution(6, 36)), - Charizard(6, Generation.One, [Type.Fire, Type.Flying], null), - Squirtle(7, Generation.One, [Type.Water], SingleEvolution(8, 16)), - Wartortle(8, Generation.One, [Type.Water], SingleEvolution(9, 36)), - Blastoise(9, Generation.One, [Type.Water], null), - Caterpie(10, Generation.One, [Type.Bug], SingleEvolution(11, 7)), - Metapod(11, Generation.One, [Type.Bug], SingleEvolution(12, 10)), - Butterfree(12, Generation.One, [Type.Bug, Type.Flying], null), - Weedle(13, Generation.One, [Type.Bug, Type.Poison], SingleEvolution(14, 7)), - Kakuna(14, Generation.One, [Type.Bug, Type.Poison], SingleEvolution(15, 10)), - Beedrill(15, Generation.One, [Type.Bug, Type.Poison], null), - Pidgey(16, Generation.One, [ + Ivysaur(2, "Ivysaur", Generation.One, [ + Type.Grass, + Type.Poison, + ], SingleEvolution(3, 32)), + Venusaur(3, "Venusaur", Generation.One, [Type.Grass, Type.Poison], null), + Charmander(4, "Charmander", Generation.One, [ + Type.Fire, + ], SingleEvolution(5, 16)), + Charmeleon(5, "Charmeleon", Generation.One, [ + Type.Fire, + ], SingleEvolution(6, 36)), + Charizard(6, "Charizard", Generation.One, [Type.Fire, Type.Flying], null), + Squirtle(7, "Squirtle", Generation.One, [Type.Water], SingleEvolution(8, 16)), + Wartortle(8, "Wartortle", Generation.One, [ + Type.Water, + ], SingleEvolution(9, 36)), + Blastoise(9, "Blastoise", Generation.One, [Type.Water], null), + Caterpie(10, "Caterpie", Generation.One, [Type.Bug], SingleEvolution(11, 7)), + Metapod(11, "Metapod", Generation.One, [Type.Bug], SingleEvolution(12, 10)), + Butterfree(12, "Butterfree", Generation.One, [Type.Bug, Type.Flying], null), + Weedle(13, "Weedle", Generation.One, [ + Type.Bug, + Type.Poison, + ], SingleEvolution(14, 7)), + Kakuna(14, "Kakuna", Generation.One, [ + Type.Bug, + Type.Poison, + ], SingleEvolution(15, 10)), + Beedrill(15, "Beedrill", Generation.One, [Type.Bug, Type.Poison], null), + Pidgey(16, "Pidgey", Generation.One, [ Type.Normal, Type.Flying, ], SingleEvolution(17, 18)), - Pidgeotto(17, Generation.One, [ + Pidgeotto(17, "Pidgeotto", Generation.One, [ Type.Normal, Type.Flying, ], SingleEvolution(18, 36)), - Pidgeot(18, Generation.One, [Type.Normal, Type.Flying], null), - Rattata(19, Generation.One, [Type.Normal], SingleEvolution(20, 20)), - Raticate(20, Generation.One, [Type.Normal], null), - Spearow(21, Generation.One, [ + Pidgeot(18, "Pidgeot", Generation.One, [Type.Normal, Type.Flying], null), + Rattata(19, "Rattata", Generation.One, [ + Type.Normal, + ], SingleEvolution(20, 20)), + Raticate(20, "Raticate", Generation.One, [Type.Normal], null), + Spearow(21, "Spearow", Generation.One, [ Type.Normal, Type.Flying, ], SingleEvolution(22, 20)), - Fearow(22, Generation.One, [Type.Normal, Type.Flying], null), + Fearow(22, "Fearow", Generation.One, [Type.Normal, Type.Flying], null), Pikachu( 25, + "Pikachu", Generation.One, [Type.Electric], SingleEvolution(26, -1, condition: [EvolutionCondition.ThunderStone]), ), - Raichu(26, Generation.One, [Type.Electric], null), - Sandshrew(27, Generation.One, [Type.Ground], SingleEvolution(28, 22)), - Sandslash(28, Generation.One, [Type.Ground], null), - NidoranF(29, Generation.One, [Type.Poison], SingleEvolution(30, 16)), - Nidorina(30, Generation.One, [Type.Poison], SingleEvolution(31, 36)), - NidoQueen(31, Generation.One, [Type.Poison, Type.Ground], null), - NidoranM(32, Generation.One, [Type.Poison], SingleEvolution(33, 16)), - Nidorino(33, Generation.One, [Type.Poison], SingleEvolution(34, 36)), - NidoKing(34, Generation.One, [Type.Poison, Type.Ground], null), + Raichu(26, "Raichu", Generation.One, [Type.Electric], null), + Sandshrew(27, "Sandshrew", Generation.One, [ + Type.Ground, + ], SingleEvolution(28, 22)), + Sandslash(28, "Sandslash", Generation.One, [Type.Ground], null), + NidoranF(29, "NidoranF", Generation.One, [ + Type.Poison, + ], SingleEvolution(30, 16)), + Nidorina(30, "Nidorina", Generation.One, [ + Type.Poison, + ], SingleEvolution(31, 36)), + NidoQueen(31, "NidoQueen", Generation.One, [Type.Poison, Type.Ground], null), + NidoranM(32, "NidoranM", Generation.One, [ + Type.Poison, + ], SingleEvolution(33, 16)), + Nidorino(33, "Nidorino", Generation.One, [ + Type.Poison, + ], SingleEvolution(34, 36)), + NidoKing(34, "NidoKing", Generation.One, [Type.Poison, Type.Ground], null), Clefairy( 35, + "Clefairy", Generation.One, [Type.Fairy], SingleEvolution(36, -1, condition: [EvolutionCondition.MoonStone]), ), - Clefable(36, Generation.One, [Type.Fairy], null), + Clefable(36, "Clefable", Generation.One, [Type.Fairy], null), Vulpix( 37, + "Vulpix", Generation.One, [Type.Fire], SingleEvolution(38, -1, condition: [EvolutionCondition.FireStone]), ), - NineTales(38, Generation.One, [Type.Fire], null), + NineTales(38, "NineTales", Generation.One, [Type.Fire], null), Jigglypuff( 39, + "Jigglypuff", Generation.One, [Type.Fairy], SingleEvolution(40, -1, condition: [EvolutionCondition.MoonStone]), ), - WigglyTuff(40, Generation.One, [Type.Fairy], null), - Zubat(41, Generation.One, [ + WigglyTuff(40, "Wigglytuff", Generation.One, [Type.Fairy], null), + Zubat(41, "Zubat", Generation.One, [ Type.Poison, Type.Flying, ], SingleEvolution(42, 22)), - Golbat(42, Generation.One, [Type.Poison, Type.Flying], null), - Oddish(43, Generation.One, [ + Golbat(42, "Golbat", Generation.One, [Type.Poison, Type.Flying], null), + Oddish(43, "Oddish", Generation.One, [ Type.Poison, Type.Grass, ], SingleEvolution(44, 21)), Gloom( 44, + "Gloom", Generation.One, [Type.Poison, Type.Grass], SingleEvolution(45, -1, condition: [EvolutionCondition.LeafStone]), ), - Vileplume(45, Generation.One, [Type.Poison, Type.Grass], null), - Paras(46, Generation.One, [Type.Bug, Type.Grass], SingleEvolution(47, 24)), - Parasect(47, Generation.One, [Type.Bug, Type.Grass], null), - Venonat(48, Generation.One, [Type.Bug, Type.Poison], SingleEvolution(49, 31)), - Venomoth(49, Generation.One, [Type.Bug, Type.Poison], null), - Diglett(50, Generation.One, [Type.Ground], SingleEvolution(51, 26)), - Dugtrio(51, Generation.One, [Type.Ground], null), - Meowth(52, Generation.One, [Type.Normal], SingleEvolution(53, 28)), - Persian(53, Generation.One, [Type.Normal], null), - Psyduck(54, Generation.One, [Type.Water], SingleEvolution(55, 33)), - Golduck(55, Generation.One, [Type.Water], null), - Mankey(56, Generation.One, [Type.Fighting], SingleEvolution(57, 28)), - Primeape(57, Generation.One, [Type.Fighting], null), + Vileplume(45, "Vileplume", Generation.One, [Type.Poison, Type.Grass], null), + Paras(46, "Paras", Generation.One, [ + Type.Bug, + Type.Grass, + ], SingleEvolution(47, 24)), + Parasect(47, "Parasect", Generation.One, [Type.Bug, Type.Grass], null), + Venonat(48, "Venonat", Generation.One, [ + Type.Bug, + Type.Poison, + ], SingleEvolution(49, 31)), + Venomoth(49, "Venomoth", Generation.One, [Type.Bug, Type.Poison], null), + Diglett(50, "Diglett", Generation.One, [ + Type.Ground, + ], SingleEvolution(51, 26)), + Dugtrio(51, "Dugtrio", Generation.One, [Type.Ground], null), + Meowth(52, "Meowth", Generation.One, [Type.Normal], SingleEvolution(53, 28)), + Persian(53, "Persian", Generation.One, [Type.Normal], null), + Psyduck(54, "Psyduck", Generation.One, [Type.Water], SingleEvolution(55, 33)), + Golduck(55, "Golduck", Generation.One, [Type.Water], null), + Mankey(56, "Mankey", Generation.One, [ + Type.Fighting, + ], SingleEvolution(57, 28)), + Primeape(57, "Primeape", Generation.One, [Type.Fighting], null), Growlithe( 58, + "Growlithe", Generation.One, [Type.Fire], SingleEvolution(59, -1, condition: [EvolutionCondition.FireStone]), ), - Arcanine(59, Generation.One, [Type.Fire], null), - Poliwag(60, Generation.One, [Type.Water], SingleEvolution(61, 25)), + Arcanine(59, "Aranine", Generation.One, [Type.Fire], null), + Poliwag(60, "Poliwag", Generation.One, [Type.Water], SingleEvolution(61, 25)), Poliwhirl( 61, + "Poliwhirl", Generation.One, [Type.Water], SingleEvolution(62, -1, condition: [EvolutionCondition.WaterStone]), ), - Poliwrath(62, Generation.One, [Type.Water], null), - Abra(63, Generation.One, [Type.Psychic], SingleEvolution(64, 16)), - Kadabra(64, Generation.One, [ - Type.Psychic, - ], SingleEvolution(65, -1, condition: [EvolutionCondition.Trading])), - Alakazam(65, Generation.One, [Type.Psychic], null), - Machop(66, Generation.One, [Type.Fighting], SingleEvolution(67, 28)), - Machoke(67, Generation.One, [ + Poliwrath(62, "Poliwrath", Generation.One, [Type.Water], null), + Abra(63, "Abra", Generation.One, [Type.Psychic], SingleEvolution(64, 16)), + Kadabra( + 64, + "Kadabra", + Generation.One, + [Type.Psychic], + SingleEvolution(65, -1, condition: [EvolutionCondition.Trading]), + ), + Alakazam(65, "Alakazam", Generation.One, [Type.Psychic], null), + Machop(66, "Machop", Generation.One, [ Type.Fighting, - ], SingleEvolution(68, -1, condition: [EvolutionCondition.Trading])), - Machamp(68, Generation.One, [Type.Fighting], null), - Bellsprout(69, Generation.One, [ + ], SingleEvolution(67, 28)), + Machoke( + 67, + "Machoke", + Generation.One, + [Type.Fighting], + SingleEvolution(68, -1, condition: [EvolutionCondition.Trading]), + ), + Machamp(68, "Machamp", Generation.One, [Type.Fighting], null), + Bellsprout(69, "Bellsprout", Generation.One, [ Type.Grass, Type.Poison, ], SingleEvolution(70, 21)), Weepinbell( 70, + "Weepinbell", Generation.One, [Type.Grass, Type.Poison], SingleEvolution(71, -1, condition: [EvolutionCondition.LeafStone]), ), - Victreebel(71, Generation.One, [Type.Grass, Type.Poison], null), - Tentacool(72, Generation.One, [ + Victreebel(71, "Victreebel", Generation.One, [Type.Grass, Type.Poison], null), + Tentacool(72, "Tentacool", Generation.One, [ Type.Water, Type.Poison, ], SingleEvolution(73, 30)), - Tentacruel(73, Generation.One, [Type.Water, Type.Poison], null), - Geodude(74, Generation.One, [ + Tentacruel(73, "Tentacruel", Generation.One, [Type.Water, Type.Poison], null), + Geodude(74, "Geodude", Generation.One, [ Type.Rock, Type.Ground, ], SingleEvolution(75, 25)), - Graveler(75, Generation.One, [ - Type.Rock, - Type.Ground, - ], SingleEvolution(76, -1, condition: [EvolutionCondition.Trading])), - Golem(76, Generation.One, [Type.Rock, Type.Ground], null), - Ponyta(77, Generation.One, [Type.Fire], SingleEvolution(78, 40)), - Rapidash(78, Generation.One, [Type.Fire], null), - Slowpoke(79, Generation.One, [ + Graveler( + 75, + "Graveler", + Generation.One, + [Type.Rock, Type.Ground], + SingleEvolution(76, -1, condition: [EvolutionCondition.Trading]), + ), + Golem(76, "Golem", Generation.One, [Type.Rock, Type.Ground], null), + Ponyta(77, "Ponyta", Generation.One, [Type.Fire], SingleEvolution(78, 40)), + Rapidash(78, "Rapidash", Generation.One, [Type.Fire], null), + Slowpoke(79, "Slowpoke", Generation.One, [ Type.Water, Type.Psychic, ], SingleEvolution(80, 37)), - Slowbro(80, Generation.One, [Type.Water, Type.Psychic], null), - Magnemite(81, Generation.One, [ + Slowbro(80, "Slowbro", Generation.One, [Type.Water, Type.Psychic], null), + Magnemite(81, "Magnemite", Generation.One, [ Type.Electric, Type.Steel, ], SingleEvolution(82, 30)), - Magneton(82, Generation.One, [Type.Electric, Type.Steel], null), - Farfetchd(83, Generation.One, [Type.Fighting], null), - Doduo(84, Generation.One, [ + Magneton(82, "Magneton", Generation.One, [Type.Electric, Type.Steel], null), + Farfetchd(83, "Farfetch'd", Generation.One, [Type.Fighting], null), + Doduo(84, "Doduo", Generation.One, [ Type.Normal, Type.Flying, ], SingleEvolution(85, 31)), - Dodrio(85, Generation.One, [Type.Normal, Type.Flying], null), - Seel(86, Generation.One, [Type.Water], SingleEvolution(87, 34)), - Dewgong(87, Generation.One, [Type.Water, Type.Ice], null), - Grimer(88, Generation.One, [Type.Poison], SingleEvolution(89, 38)), - Muk(89, Generation.One, [Type.Poison], null), + Dodrio(85, "Dodrio", Generation.One, [Type.Normal, Type.Flying], null), + Seel(86, "Seel", Generation.One, [Type.Water], SingleEvolution(87, 34)), + Dewgong(87, "Dewgong", Generation.One, [Type.Water, Type.Ice], null), + Grimer(88, "Grimer", Generation.One, [Type.Poison], SingleEvolution(89, 38)), + Muk(89, "Muk", Generation.One, [Type.Poison], null), Shellder( 90, + "Shellder", Generation.One, [Type.Water], SingleEvolution(91, -1, condition: [EvolutionCondition.WaterStone]), ), - Cloyster(91, Generation.One, [Type.Water, Type.Ice], null); + Cloyster(91, "Cloyster", Generation.One, [Type.Water, Type.Ice], null), + Gastly(92, "Gastly", Generation.One, [ + Type.Ghost, + Type.Poison, + ], SingleEvolution(93, 25)), + Haunter( + 93, + "Haunter", + Generation.One, + [Type.Ghost, Type.Poison], + SingleEvolution(94, -1, condition: [EvolutionCondition.Trading]), + ), + Gengar(94, "Gengar", Generation.One, [Type.Ghost, Type.Poison], null), + Onix(95, "Onix", Generation.One, [Type.Rock, Type.Ground], null), + Drowzee(96, "Drowzee", Generation.One, [ + Type.Psychic, + ], SingleEvolution(97, 26)), + Hypno(97, "Hypno", Generation.One, [Type.Psychic], null), + Krabby(98, "Krabby", Generation.One, [Type.Water], SingleEvolution(99, 28)), + Kingler(99, "Kingler", Generation.One, [Type.Water], null), + Voltorb(100, "Voltorb", Generation.One, [ + Type.Electric, + ], SingleEvolution(101, 30)), + Electrode(101, "Electrode", Generation.One, [Type.Electric], null), + Exeggcute( + 102, + "Exeggcute", + Generation.One, + [Type.Grass, Type.Psychic], + SingleEvolution(103, -1, condition: [EvolutionCondition.LeafStone]), + ), + Exeggutor(103, "Exeggutor", Generation.One, [Type.Grass, Type.Psychic], null), + Cubone( + 104, + "Cubone", + Generation.One, + [Type.Ground], + SingleEvolution(105, 28, condition: [EvolutionCondition.OutsideAlola]), + ), + Marowak(105, "Marowak", Generation.One, [Type.Ground], null), + Hitmonlee(106, "Hitmonlee", Generation.One, [Type.Fighting], null), + Hitmonchan(107, "Hitmonchan", Generation.One, [Type.Fighting], null), + Lickitung(108, "Lickitung", Generation.One, [Type.Normal], null), + Koffing( + 109, + "Koffing", + Generation.One, + [Type.Poison], + SingleEvolution(110, 35, condition: [EvolutionCondition.OutsideGalar]), + ), + Weezing(110, "Weezing", Generation.One, [Type.Poison], null), + Rhyhorn(111, "Rhyhorn", Generation.One, [ + Type.Ground, + Type.Rock, + ], SingleEvolution(112, 42)), + Rhydon(112, "Rhydon", Generation.One, [Type.Ground, Type.Rock], null), + Chansey(113, "Chansey", Generation.One, [Type.Normal], null), + Tangela(114, "Tangela", Generation.One, [Type.Grass], null), + Kangaskhan(115, "Kangaskhan", Generation.One, [Type.Normal], null), + Horsea(116, "Horsea", Generation.One, [Type.Water], SingleEvolution(117, 32)), + Seadra(117, "Seadra", Generation.One, [Type.Water], null), + Goldeen(118, "Goldeen", Generation.One, [ + Type.Water, + ], SingleEvolution(119, 33)), + Seaking(119, "Seaking", Generation.One, [Type.Water], null), + Staryu( + 120, + "Staryu", + Generation.One, + [Type.Water], + SingleEvolution(121, -1, condition: [EvolutionCondition.WaterStone]), + ), + Starmie(121, "Starmie", Generation.One, [Type.Water, Type.Psychic], null), + MrMime(122, "Mr. Mime", Generation.One, [Type.Psychic, Type.Fairy], null), + Scyther(123, "Scyther", Generation.One, [Type.Bug, Type.Flying], null), + Jynx(124, "Jynx", Generation.One, [Type.Ice, Type.Psychic], null), + Electabuzz(125, "Electabuzz", Generation.One, [Type.Electric], null), + Magmar(126, "Magmar", Generation.One, [Type.Fire], null), + Pinsir(127, "Pinsir", Generation.One, [Type.Bug], null), + Tauros(128, "Tauros", Generation.One, [Type.Normal], null), + Magikarp(129, "Magikarp", Generation.One, [ + Type.Water, + ], SingleEvolution(130, 20)), + Gyarados(130, "Gyarados", Generation.One, [Type.Water, Type.Flying], null), + Lapras(131, "Lapras", Generation.One, [Type.Water, Type.Ice], null), + Ditto(132, "Ditto", Generation.One, [Type.Normal], null), + Eevee( + 133, + "Eevee", + Generation.One, + [Type.Normal], + BranchedEvolution([134], [-1], { + 134: [EvolutionCondition.WaterStone], + }), + ), + Vaporeon(134, "Vaporeon", Generation.One, [Type.Water], null); final int id; + final String properName; final Generation generation; final List types; final Evolution? evolution; + final int dexID; bool get hasEvolutions => evolution != null; - const Pokemon(this.id, this.generation, this.types, this.evolution); + const Pokemon( + this.id, + this.properName, + this.generation, + this.types, + this.evolution, { + this.dexID = -1, + }); + + int get pokeDexID => dexID == -1 ? id : dexID; String toDexPath() { return 'assets/sprites/${printName().replaceAll("♀", "-f").replaceAll("♂", "-m").toLowerCase()}.png'; @@ -362,8 +536,14 @@ enum Pokemon { return Row(children: widgets); } - String printName() { - String sRet = name.replaceAll("_", " "); + String printName({var proper = false}) { + String sRet; + + if (!proper) + sRet = name.replaceAll("_", " "); + else + sRet = properName; + if (sRet.endsWith("F")) sRet = sRet.substring(0, sRet.length - 1) + "♀"; if (sRet.endsWith("M")) sRet = sRet.substring(0, sRet.length - 1) + "♂"; diff --git a/pubspec.yaml b/pubspec.yaml index 241d0ec..e56d457 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.032325+1427 +version: 1.0.032325+1552 environment: sdk: ^3.7.0 @@ -155,6 +155,50 @@ flutter: - assets/sprites/muk.png - assets/sprites/shellder.png - assets/sprites/cloyster.png + - assets/sprites/gastly.png + - assets/sprites/haunter.png + - assets/sprites/gengar.png + - assets/sprites/onix.png + - assets/sprites/drowzee.png + - assets/sprites/hypno.png + - assets/sprites/krabby.png + - assets/sprites/kingler.png + - assets/sprites/voltorb.png + - assets/sprites/electrode.png + - assets/sprites/exeggcute.png + - assets/sprites/exeggutor.png + - assets/sprites/cubone.png + - assets/sprites/marowak.png + - assets/sprites/hitmonlee.png + - assets/sprites/hitmonchan.png + - assets/sprites/lickitung.png + - assets/sprites/koffing.png + - assets/sprites/weezing.png + - assets/sprites/weezing-galarian.png + - assets/sprites/rhyhorn.png + - assets/sprites/rhydon.png + - assets/sprites/chansey.png + - assets/sprites/tangela.png + - assets/sprites/kangaskhan.png + - assets/sprites/horsea.png + - assets/sprites/seadra.png + - assets/sprites/goldeen.png + - assets/sprites/seaking.png + - assets/sprites/staryu.png + - assets/sprites/starmie.png + - assets/sprites/mrmime.png + - assets/sprites/scyther.png + - assets/sprites/jynx.png + - assets/sprites/electabuzz.png + - assets/sprites/magmar.png + - assets/sprites/pinsir.png + - assets/sprites/tauros.png + - assets/sprites/magikarp.png + - assets/sprites/gyarados.png + - assets/sprites/lapras.png + - assets/sprites/ditto.png + - assets/sprites/eevee.png + - assets/sprites/vaporeon.png # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/to/resolution-aware-images