Add more entries
BIN
assets/sprites/chansey.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/sprites/cubone.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
assets/sprites/ditto.png
Normal file
After Width: | Height: | Size: 8 KiB |
BIN
assets/sprites/drowzee.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
assets/sprites/eevee.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
assets/sprites/electabuzz.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/sprites/electrode.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/sprites/exeggcute.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/sprites/exeggutor.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/sprites/gastly.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/sprites/gengar.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/sprites/goldeen.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
assets/sprites/gyarados.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
assets/sprites/haunter.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/sprites/hitmonchan.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
assets/sprites/hitmonlee.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
BIN
assets/sprites/horsea.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
assets/sprites/hypno.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/sprites/jynx.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/sprites/kangaskhan.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
assets/sprites/kingler.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/sprites/koffing.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/sprites/krabby.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
BIN
assets/sprites/lapras.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/sprites/lickitung.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/sprites/magikarp.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/sprites/magmar.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/sprites/marowak.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/sprites/mrmime.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
assets/sprites/onix.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/sprites/pinsir.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/sprites/rhydon.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/sprites/rhyhorn.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/sprites/scyther.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/sprites/seadra.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/sprites/seaking.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
assets/sprites/starmie.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/sprites/staryu.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
assets/sprites/tangela.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
assets/sprites/tauros.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/sprites/vaporeon.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/sprites/voltorb.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
assets/sprites/weezing-galarian.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/sprites/weezing.png
Normal file
After Width: | Height: | Size: 12 KiB |
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
class Constants {
|
class Constants {
|
||||||
static const VERSION = "1.0.032325+1427";
|
static const VERSION = "1.0.032325+1552";
|
||||||
|
|
||||||
static bool get isMobile => Platform.isAndroid || Platform.isIOS;
|
static bool get isMobile => Platform.isAndroid || Platform.isIOS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,7 @@ class _HomeState extends State<Home> {
|
||||||
height: Constants.isMobile ? 64 : 198,
|
height: Constants.isMobile ? 64 : 198,
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
Pokemon.values[index].name,
|
Pokemon.values[index].printName(proper: true),
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: Constants.isMobile ? 16 : 32,
|
fontSize: Constants.isMobile ? 16 : 32,
|
||||||
color: Colors.black,
|
color: Colors.black,
|
||||||
|
@ -146,7 +146,7 @@ class _DexEntryState extends State<DexEntry> {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text(_pkmn.name),
|
title: Text(_pkmn.printName(proper: true)),
|
||||||
backgroundColor:
|
backgroundColor:
|
||||||
SessionData.darkMode
|
SessionData.darkMode
|
||||||
? LibACFlutterConstants.TITLEBAR_COLOR
|
? LibACFlutterConstants.TITLEBAR_COLOR
|
||||||
|
@ -160,7 +160,10 @@ class _DexEntryState extends State<DexEntry> {
|
||||||
children: [
|
children: [
|
||||||
Center(child: Image.asset(_pkmn.toDexPath())),
|
Center(child: Image.asset(_pkmn.toDexPath())),
|
||||||
Center(
|
Center(
|
||||||
child: Text("ID: ${_pkmn.id}", style: TextStyle(fontSize: 24)),
|
child: Text(
|
||||||
|
"ID: ${_pkmn.pokeDexID}",
|
||||||
|
style: TextStyle(fontSize: 24),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Row(
|
Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
|
362
lib/pokemon.dart
|
@ -48,7 +48,7 @@ enum Type {
|
||||||
Poison(Color.fromARGB(255, 128, 0, 128), Colors.black),
|
Poison(Color.fromARGB(255, 128, 0, 128), Colors.black),
|
||||||
Ground(Color.fromARGB(255, 128, 126, 0), Colors.black),
|
Ground(Color.fromARGB(255, 128, 126, 0), Colors.black),
|
||||||
Flying(Color.fromARGB(255, 128, 128, 255), 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),
|
Bug(Color.fromARGB(255, 128, 128, 0), Colors.black),
|
||||||
Rock(Color.fromARGB(255, 128, 128, 128), Colors.black),
|
Rock(Color.fromARGB(255, 128, 128, 128), Colors.black),
|
||||||
Ghost(Color.fromARGB(255, 128, 0, 128), Colors.black),
|
Ghost(Color.fromARGB(255, 128, 0, 128), Colors.black),
|
||||||
|
@ -70,6 +70,15 @@ enum EvolutionCondition {
|
||||||
MoonStone,
|
MoonStone,
|
||||||
FireStone,
|
FireStone,
|
||||||
LeafStone,
|
LeafStone,
|
||||||
|
Alola,
|
||||||
|
OutsideAlola,
|
||||||
|
Night,
|
||||||
|
Day,
|
||||||
|
AttackGreaterThanDefense,
|
||||||
|
AttackLessThanDefense,
|
||||||
|
AttackEqualDefense,
|
||||||
|
Galar,
|
||||||
|
OutsideGalar,
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class Evolution {
|
abstract class Evolution {
|
||||||
|
@ -106,7 +115,7 @@ class SingleEvolution extends Evolution {
|
||||||
class BranchedEvolution extends Evolution {
|
class BranchedEvolution extends Evolution {
|
||||||
final List<int> alternates;
|
final List<int> alternates;
|
||||||
final List<int> levels;
|
final List<int> levels;
|
||||||
final List<List<EvolutionCondition>?> conditions;
|
final Map<int, List<EvolutionCondition>?> conditions;
|
||||||
|
|
||||||
const BranchedEvolution(this.alternates, this.levels, this.conditions);
|
const BranchedEvolution(this.alternates, this.levels, this.conditions);
|
||||||
|
|
||||||
|
@ -152,190 +161,355 @@ enum Move {
|
||||||
}
|
}
|
||||||
|
|
||||||
enum Pokemon {
|
enum Pokemon {
|
||||||
Bulbasaur(1, Generation.One, [
|
Bulbasaur(1, "Bulbasaur", Generation.One, [
|
||||||
Type.Grass,
|
Type.Grass,
|
||||||
Type.Poison,
|
Type.Poison,
|
||||||
], SingleEvolution(2, 16)),
|
], SingleEvolution(2, 16)),
|
||||||
Ivysaur(2, Generation.One, [Type.Grass, Type.Poison], SingleEvolution(3, 32)),
|
Ivysaur(2, "Ivysaur", Generation.One, [
|
||||||
Venusaur(3, Generation.One, [Type.Grass, Type.Poison], null),
|
Type.Grass,
|
||||||
Charmander(4, Generation.One, [Type.Fire], SingleEvolution(5, 16)),
|
Type.Poison,
|
||||||
Charmeleon(5, Generation.One, [Type.Fire], SingleEvolution(6, 36)),
|
], SingleEvolution(3, 32)),
|
||||||
Charizard(6, Generation.One, [Type.Fire, Type.Flying], null),
|
Venusaur(3, "Venusaur", Generation.One, [Type.Grass, Type.Poison], null),
|
||||||
Squirtle(7, Generation.One, [Type.Water], SingleEvolution(8, 16)),
|
Charmander(4, "Charmander", Generation.One, [
|
||||||
Wartortle(8, Generation.One, [Type.Water], SingleEvolution(9, 36)),
|
Type.Fire,
|
||||||
Blastoise(9, Generation.One, [Type.Water], null),
|
], SingleEvolution(5, 16)),
|
||||||
Caterpie(10, Generation.One, [Type.Bug], SingleEvolution(11, 7)),
|
Charmeleon(5, "Charmeleon", Generation.One, [
|
||||||
Metapod(11, Generation.One, [Type.Bug], SingleEvolution(12, 10)),
|
Type.Fire,
|
||||||
Butterfree(12, Generation.One, [Type.Bug, Type.Flying], null),
|
], SingleEvolution(6, 36)),
|
||||||
Weedle(13, Generation.One, [Type.Bug, Type.Poison], SingleEvolution(14, 7)),
|
Charizard(6, "Charizard", Generation.One, [Type.Fire, Type.Flying], null),
|
||||||
Kakuna(14, Generation.One, [Type.Bug, Type.Poison], SingleEvolution(15, 10)),
|
Squirtle(7, "Squirtle", Generation.One, [Type.Water], SingleEvolution(8, 16)),
|
||||||
Beedrill(15, Generation.One, [Type.Bug, Type.Poison], null),
|
Wartortle(8, "Wartortle", Generation.One, [
|
||||||
Pidgey(16, 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.Normal,
|
||||||
Type.Flying,
|
Type.Flying,
|
||||||
], SingleEvolution(17, 18)),
|
], SingleEvolution(17, 18)),
|
||||||
Pidgeotto(17, Generation.One, [
|
Pidgeotto(17, "Pidgeotto", Generation.One, [
|
||||||
Type.Normal,
|
Type.Normal,
|
||||||
Type.Flying,
|
Type.Flying,
|
||||||
], SingleEvolution(18, 36)),
|
], SingleEvolution(18, 36)),
|
||||||
Pidgeot(18, Generation.One, [Type.Normal, Type.Flying], null),
|
Pidgeot(18, "Pidgeot", Generation.One, [Type.Normal, Type.Flying], null),
|
||||||
Rattata(19, Generation.One, [Type.Normal], SingleEvolution(20, 20)),
|
Rattata(19, "Rattata", Generation.One, [
|
||||||
Raticate(20, Generation.One, [Type.Normal], null),
|
Type.Normal,
|
||||||
Spearow(21, Generation.One, [
|
], SingleEvolution(20, 20)),
|
||||||
|
Raticate(20, "Raticate", Generation.One, [Type.Normal], null),
|
||||||
|
Spearow(21, "Spearow", Generation.One, [
|
||||||
Type.Normal,
|
Type.Normal,
|
||||||
Type.Flying,
|
Type.Flying,
|
||||||
], SingleEvolution(22, 20)),
|
], SingleEvolution(22, 20)),
|
||||||
Fearow(22, Generation.One, [Type.Normal, Type.Flying], null),
|
Fearow(22, "Fearow", Generation.One, [Type.Normal, Type.Flying], null),
|
||||||
Pikachu(
|
Pikachu(
|
||||||
25,
|
25,
|
||||||
|
"Pikachu",
|
||||||
Generation.One,
|
Generation.One,
|
||||||
[Type.Electric],
|
[Type.Electric],
|
||||||
SingleEvolution(26, -1, condition: [EvolutionCondition.ThunderStone]),
|
SingleEvolution(26, -1, condition: [EvolutionCondition.ThunderStone]),
|
||||||
),
|
),
|
||||||
Raichu(26, Generation.One, [Type.Electric], null),
|
Raichu(26, "Raichu", Generation.One, [Type.Electric], null),
|
||||||
Sandshrew(27, Generation.One, [Type.Ground], SingleEvolution(28, 22)),
|
Sandshrew(27, "Sandshrew", Generation.One, [
|
||||||
Sandslash(28, Generation.One, [Type.Ground], null),
|
Type.Ground,
|
||||||
NidoranF(29, Generation.One, [Type.Poison], SingleEvolution(30, 16)),
|
], SingleEvolution(28, 22)),
|
||||||
Nidorina(30, Generation.One, [Type.Poison], SingleEvolution(31, 36)),
|
Sandslash(28, "Sandslash", Generation.One, [Type.Ground], null),
|
||||||
NidoQueen(31, Generation.One, [Type.Poison, Type.Ground], null),
|
NidoranF(29, "NidoranF", Generation.One, [
|
||||||
NidoranM(32, Generation.One, [Type.Poison], SingleEvolution(33, 16)),
|
Type.Poison,
|
||||||
Nidorino(33, Generation.One, [Type.Poison], SingleEvolution(34, 36)),
|
], SingleEvolution(30, 16)),
|
||||||
NidoKing(34, Generation.One, [Type.Poison, Type.Ground], null),
|
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(
|
Clefairy(
|
||||||
35,
|
35,
|
||||||
|
"Clefairy",
|
||||||
Generation.One,
|
Generation.One,
|
||||||
[Type.Fairy],
|
[Type.Fairy],
|
||||||
SingleEvolution(36, -1, condition: [EvolutionCondition.MoonStone]),
|
SingleEvolution(36, -1, condition: [EvolutionCondition.MoonStone]),
|
||||||
),
|
),
|
||||||
Clefable(36, Generation.One, [Type.Fairy], null),
|
Clefable(36, "Clefable", Generation.One, [Type.Fairy], null),
|
||||||
Vulpix(
|
Vulpix(
|
||||||
37,
|
37,
|
||||||
|
"Vulpix",
|
||||||
Generation.One,
|
Generation.One,
|
||||||
[Type.Fire],
|
[Type.Fire],
|
||||||
SingleEvolution(38, -1, condition: [EvolutionCondition.FireStone]),
|
SingleEvolution(38, -1, condition: [EvolutionCondition.FireStone]),
|
||||||
),
|
),
|
||||||
NineTales(38, Generation.One, [Type.Fire], null),
|
NineTales(38, "NineTales", Generation.One, [Type.Fire], null),
|
||||||
Jigglypuff(
|
Jigglypuff(
|
||||||
39,
|
39,
|
||||||
|
"Jigglypuff",
|
||||||
Generation.One,
|
Generation.One,
|
||||||
[Type.Fairy],
|
[Type.Fairy],
|
||||||
SingleEvolution(40, -1, condition: [EvolutionCondition.MoonStone]),
|
SingleEvolution(40, -1, condition: [EvolutionCondition.MoonStone]),
|
||||||
),
|
),
|
||||||
WigglyTuff(40, Generation.One, [Type.Fairy], null),
|
WigglyTuff(40, "Wigglytuff", Generation.One, [Type.Fairy], null),
|
||||||
Zubat(41, Generation.One, [
|
Zubat(41, "Zubat", Generation.One, [
|
||||||
Type.Poison,
|
Type.Poison,
|
||||||
Type.Flying,
|
Type.Flying,
|
||||||
], SingleEvolution(42, 22)),
|
], SingleEvolution(42, 22)),
|
||||||
Golbat(42, Generation.One, [Type.Poison, Type.Flying], null),
|
Golbat(42, "Golbat", Generation.One, [Type.Poison, Type.Flying], null),
|
||||||
Oddish(43, Generation.One, [
|
Oddish(43, "Oddish", Generation.One, [
|
||||||
Type.Poison,
|
Type.Poison,
|
||||||
Type.Grass,
|
Type.Grass,
|
||||||
], SingleEvolution(44, 21)),
|
], SingleEvolution(44, 21)),
|
||||||
Gloom(
|
Gloom(
|
||||||
44,
|
44,
|
||||||
|
"Gloom",
|
||||||
Generation.One,
|
Generation.One,
|
||||||
[Type.Poison, Type.Grass],
|
[Type.Poison, Type.Grass],
|
||||||
SingleEvolution(45, -1, condition: [EvolutionCondition.LeafStone]),
|
SingleEvolution(45, -1, condition: [EvolutionCondition.LeafStone]),
|
||||||
),
|
),
|
||||||
Vileplume(45, Generation.One, [Type.Poison, Type.Grass], null),
|
Vileplume(45, "Vileplume", Generation.One, [Type.Poison, Type.Grass], null),
|
||||||
Paras(46, Generation.One, [Type.Bug, Type.Grass], SingleEvolution(47, 24)),
|
Paras(46, "Paras", Generation.One, [
|
||||||
Parasect(47, Generation.One, [Type.Bug, Type.Grass], null),
|
Type.Bug,
|
||||||
Venonat(48, Generation.One, [Type.Bug, Type.Poison], SingleEvolution(49, 31)),
|
Type.Grass,
|
||||||
Venomoth(49, Generation.One, [Type.Bug, Type.Poison], null),
|
], SingleEvolution(47, 24)),
|
||||||
Diglett(50, Generation.One, [Type.Ground], SingleEvolution(51, 26)),
|
Parasect(47, "Parasect", Generation.One, [Type.Bug, Type.Grass], null),
|
||||||
Dugtrio(51, Generation.One, [Type.Ground], null),
|
Venonat(48, "Venonat", Generation.One, [
|
||||||
Meowth(52, Generation.One, [Type.Normal], SingleEvolution(53, 28)),
|
Type.Bug,
|
||||||
Persian(53, Generation.One, [Type.Normal], null),
|
Type.Poison,
|
||||||
Psyduck(54, Generation.One, [Type.Water], SingleEvolution(55, 33)),
|
], SingleEvolution(49, 31)),
|
||||||
Golduck(55, Generation.One, [Type.Water], null),
|
Venomoth(49, "Venomoth", Generation.One, [Type.Bug, Type.Poison], null),
|
||||||
Mankey(56, Generation.One, [Type.Fighting], SingleEvolution(57, 28)),
|
Diglett(50, "Diglett", Generation.One, [
|
||||||
Primeape(57, Generation.One, [Type.Fighting], null),
|
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(
|
Growlithe(
|
||||||
58,
|
58,
|
||||||
|
"Growlithe",
|
||||||
Generation.One,
|
Generation.One,
|
||||||
[Type.Fire],
|
[Type.Fire],
|
||||||
SingleEvolution(59, -1, condition: [EvolutionCondition.FireStone]),
|
SingleEvolution(59, -1, condition: [EvolutionCondition.FireStone]),
|
||||||
),
|
),
|
||||||
Arcanine(59, Generation.One, [Type.Fire], null),
|
Arcanine(59, "Aranine", Generation.One, [Type.Fire], null),
|
||||||
Poliwag(60, Generation.One, [Type.Water], SingleEvolution(61, 25)),
|
Poliwag(60, "Poliwag", Generation.One, [Type.Water], SingleEvolution(61, 25)),
|
||||||
Poliwhirl(
|
Poliwhirl(
|
||||||
61,
|
61,
|
||||||
|
"Poliwhirl",
|
||||||
Generation.One,
|
Generation.One,
|
||||||
[Type.Water],
|
[Type.Water],
|
||||||
SingleEvolution(62, -1, condition: [EvolutionCondition.WaterStone]),
|
SingleEvolution(62, -1, condition: [EvolutionCondition.WaterStone]),
|
||||||
),
|
),
|
||||||
Poliwrath(62, Generation.One, [Type.Water], null),
|
Poliwrath(62, "Poliwrath", Generation.One, [Type.Water], null),
|
||||||
Abra(63, Generation.One, [Type.Psychic], SingleEvolution(64, 16)),
|
Abra(63, "Abra", Generation.One, [Type.Psychic], SingleEvolution(64, 16)),
|
||||||
Kadabra(64, Generation.One, [
|
Kadabra(
|
||||||
Type.Psychic,
|
64,
|
||||||
], SingleEvolution(65, -1, condition: [EvolutionCondition.Trading])),
|
"Kadabra",
|
||||||
Alakazam(65, Generation.One, [Type.Psychic], null),
|
Generation.One,
|
||||||
Machop(66, Generation.One, [Type.Fighting], SingleEvolution(67, 28)),
|
[Type.Psychic],
|
||||||
Machoke(67, Generation.One, [
|
SingleEvolution(65, -1, condition: [EvolutionCondition.Trading]),
|
||||||
|
),
|
||||||
|
Alakazam(65, "Alakazam", Generation.One, [Type.Psychic], null),
|
||||||
|
Machop(66, "Machop", Generation.One, [
|
||||||
Type.Fighting,
|
Type.Fighting,
|
||||||
], SingleEvolution(68, -1, condition: [EvolutionCondition.Trading])),
|
], SingleEvolution(67, 28)),
|
||||||
Machamp(68, Generation.One, [Type.Fighting], null),
|
Machoke(
|
||||||
Bellsprout(69, Generation.One, [
|
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.Grass,
|
||||||
Type.Poison,
|
Type.Poison,
|
||||||
], SingleEvolution(70, 21)),
|
], SingleEvolution(70, 21)),
|
||||||
Weepinbell(
|
Weepinbell(
|
||||||
70,
|
70,
|
||||||
|
"Weepinbell",
|
||||||
Generation.One,
|
Generation.One,
|
||||||
[Type.Grass, Type.Poison],
|
[Type.Grass, Type.Poison],
|
||||||
SingleEvolution(71, -1, condition: [EvolutionCondition.LeafStone]),
|
SingleEvolution(71, -1, condition: [EvolutionCondition.LeafStone]),
|
||||||
),
|
),
|
||||||
Victreebel(71, Generation.One, [Type.Grass, Type.Poison], null),
|
Victreebel(71, "Victreebel", Generation.One, [Type.Grass, Type.Poison], null),
|
||||||
Tentacool(72, Generation.One, [
|
Tentacool(72, "Tentacool", Generation.One, [
|
||||||
Type.Water,
|
Type.Water,
|
||||||
Type.Poison,
|
Type.Poison,
|
||||||
], SingleEvolution(73, 30)),
|
], SingleEvolution(73, 30)),
|
||||||
Tentacruel(73, Generation.One, [Type.Water, Type.Poison], null),
|
Tentacruel(73, "Tentacruel", Generation.One, [Type.Water, Type.Poison], null),
|
||||||
Geodude(74, Generation.One, [
|
Geodude(74, "Geodude", Generation.One, [
|
||||||
Type.Rock,
|
Type.Rock,
|
||||||
Type.Ground,
|
Type.Ground,
|
||||||
], SingleEvolution(75, 25)),
|
], SingleEvolution(75, 25)),
|
||||||
Graveler(75, Generation.One, [
|
Graveler(
|
||||||
Type.Rock,
|
75,
|
||||||
Type.Ground,
|
"Graveler",
|
||||||
], SingleEvolution(76, -1, condition: [EvolutionCondition.Trading])),
|
Generation.One,
|
||||||
Golem(76, Generation.One, [Type.Rock, Type.Ground], null),
|
[Type.Rock, Type.Ground],
|
||||||
Ponyta(77, Generation.One, [Type.Fire], SingleEvolution(78, 40)),
|
SingleEvolution(76, -1, condition: [EvolutionCondition.Trading]),
|
||||||
Rapidash(78, Generation.One, [Type.Fire], null),
|
),
|
||||||
Slowpoke(79, Generation.One, [
|
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.Water,
|
||||||
Type.Psychic,
|
Type.Psychic,
|
||||||
], SingleEvolution(80, 37)),
|
], SingleEvolution(80, 37)),
|
||||||
Slowbro(80, Generation.One, [Type.Water, Type.Psychic], null),
|
Slowbro(80, "Slowbro", Generation.One, [Type.Water, Type.Psychic], null),
|
||||||
Magnemite(81, Generation.One, [
|
Magnemite(81, "Magnemite", Generation.One, [
|
||||||
Type.Electric,
|
Type.Electric,
|
||||||
Type.Steel,
|
Type.Steel,
|
||||||
], SingleEvolution(82, 30)),
|
], SingleEvolution(82, 30)),
|
||||||
Magneton(82, Generation.One, [Type.Electric, Type.Steel], null),
|
Magneton(82, "Magneton", Generation.One, [Type.Electric, Type.Steel], null),
|
||||||
Farfetchd(83, Generation.One, [Type.Fighting], null),
|
Farfetchd(83, "Farfetch'd", Generation.One, [Type.Fighting], null),
|
||||||
Doduo(84, Generation.One, [
|
Doduo(84, "Doduo", Generation.One, [
|
||||||
Type.Normal,
|
Type.Normal,
|
||||||
Type.Flying,
|
Type.Flying,
|
||||||
], SingleEvolution(85, 31)),
|
], SingleEvolution(85, 31)),
|
||||||
Dodrio(85, Generation.One, [Type.Normal, Type.Flying], null),
|
Dodrio(85, "Dodrio", Generation.One, [Type.Normal, Type.Flying], null),
|
||||||
Seel(86, Generation.One, [Type.Water], SingleEvolution(87, 34)),
|
Seel(86, "Seel", Generation.One, [Type.Water], SingleEvolution(87, 34)),
|
||||||
Dewgong(87, Generation.One, [Type.Water, Type.Ice], null),
|
Dewgong(87, "Dewgong", Generation.One, [Type.Water, Type.Ice], null),
|
||||||
Grimer(88, Generation.One, [Type.Poison], SingleEvolution(89, 38)),
|
Grimer(88, "Grimer", Generation.One, [Type.Poison], SingleEvolution(89, 38)),
|
||||||
Muk(89, Generation.One, [Type.Poison], null),
|
Muk(89, "Muk", Generation.One, [Type.Poison], null),
|
||||||
Shellder(
|
Shellder(
|
||||||
90,
|
90,
|
||||||
|
"Shellder",
|
||||||
Generation.One,
|
Generation.One,
|
||||||
[Type.Water],
|
[Type.Water],
|
||||||
SingleEvolution(91, -1, condition: [EvolutionCondition.WaterStone]),
|
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 int id;
|
||||||
|
final String properName;
|
||||||
final Generation generation;
|
final Generation generation;
|
||||||
final List<Type> types;
|
final List<Type> types;
|
||||||
final Evolution? evolution;
|
final Evolution? evolution;
|
||||||
|
final int dexID;
|
||||||
bool get hasEvolutions => evolution != null;
|
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() {
|
String toDexPath() {
|
||||||
return 'assets/sprites/${printName().replaceAll("♀", "-f").replaceAll("♂", "-m").toLowerCase()}.png';
|
return 'assets/sprites/${printName().replaceAll("♀", "-f").replaceAll("♂", "-m").toLowerCase()}.png';
|
||||||
|
@ -362,8 +536,14 @@ enum Pokemon {
|
||||||
return Row(children: widgets);
|
return Row(children: widgets);
|
||||||
}
|
}
|
||||||
|
|
||||||
String printName() {
|
String printName({var proper = false}) {
|
||||||
String sRet = name.replaceAll("_", " ");
|
String sRet;
|
||||||
|
|
||||||
|
if (!proper)
|
||||||
|
sRet = name.replaceAll("_", " ");
|
||||||
|
else
|
||||||
|
sRet = properName;
|
||||||
|
|
||||||
if (sRet.endsWith("F")) sRet = sRet.substring(0, sRet.length - 1) + "♀";
|
if (sRet.endsWith("F")) sRet = sRet.substring(0, sRet.length - 1) + "♀";
|
||||||
if (sRet.endsWith("M")) sRet = sRet.substring(0, sRet.length - 1) + "♂";
|
if (sRet.endsWith("M")) sRet = sRet.substring(0, sRet.length - 1) + "♂";
|
||||||
|
|
||||||
|
|
46
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
|
# 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
|
# 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.
|
# 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:
|
environment:
|
||||||
sdk: ^3.7.0
|
sdk: ^3.7.0
|
||||||
|
@ -155,6 +155,50 @@ flutter:
|
||||||
- assets/sprites/muk.png
|
- assets/sprites/muk.png
|
||||||
- assets/sprites/shellder.png
|
- assets/sprites/shellder.png
|
||||||
- assets/sprites/cloyster.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
|
# An image asset can refer to one or more resolution-specific "variants", see
|
||||||
# https://flutter.dev/to/resolution-aware-images
|
# https://flutter.dev/to/resolution-aware-images
|
||||||
|
|