141 lines
3.2 KiB
Dart
141 lines
3.2 KiB
Dart
import 'package:pokedex/pokemon.dart';
|
|
|
|
/// The route number.
|
|
enum GameRoute {
|
|
RT1,
|
|
RT2,
|
|
RT5,
|
|
RT24,
|
|
RT25,
|
|
RT26,
|
|
RT27,
|
|
RT30,
|
|
RT31,
|
|
RT34,
|
|
RT35,
|
|
RT36,
|
|
RT37,
|
|
RT38,
|
|
RT39,
|
|
RT204,
|
|
ViridianForest(commonName: "Viridian Forest"),
|
|
AzaleaTown(commonName: "Azalea Town"),
|
|
HexForest(commonName: "Hex Forest"),
|
|
LakeOfRage(commonName: "Lake of Rage"),
|
|
NationalPark(commonName: "National Park"),
|
|
IlexForest(commonName: "Ilex Forest"),
|
|
PatternBush(commonName: "Pattern Bush"),
|
|
EternaForest(commonName: "Eterna Forest"),
|
|
SantaluneForest(commonName: "Santalune Forest"),
|
|
MeleMeleMeadow(commonName: "Mele Mele Meadow"),
|
|
LushJungle(commonName: "Lush Jungle"),
|
|
SpaciousCave(commonName: "Spacious Cave"),
|
|
GrasslandCave(commonName: "Grassland Cave"),
|
|
SwampyCave(commonName: "Swampy Cave"),
|
|
RiverbankCave(commonName: "Riverbank Cave"),
|
|
StillWaterCavern(commonName: "Still Water Cavern"),
|
|
SunlitCavern(commonName: "Sunlit Cavern"),
|
|
BogsunkCavern(commonName: "Bogsunk Cavern"),
|
|
PalletTown(commonName: "Pallet Town"),
|
|
CeruleanCity(commonName: "Cerulean City"),
|
|
|
|
// The following mark the pokemon as not usually obtainable
|
|
TradeOrMigrate(commonName: "Trade or Migrate from another game"),
|
|
BreedOnly(commonName: "Only obtainable via breeding"),
|
|
Evolve(commonName: "Evolve another pokemon"),
|
|
Unavailable;
|
|
|
|
final String commonName;
|
|
const GameRoute({this.commonName = ""});
|
|
|
|
@override
|
|
String toString() {
|
|
if (commonName == "")
|
|
return name;
|
|
else
|
|
return commonName;
|
|
}
|
|
}
|
|
|
|
/// The game's name.
|
|
enum Game {
|
|
Red,
|
|
Blue,
|
|
Yellow,
|
|
Gold,
|
|
Silver,
|
|
Crystal,
|
|
Ruby,
|
|
Sapphire,
|
|
FireRed(commonName: "Fire Red"),
|
|
LeafGreen(commonName: "Leaf Green"),
|
|
Emerald,
|
|
Diamond,
|
|
Pearl,
|
|
Platinum,
|
|
HeartGold(commonName: "Heart Gold"),
|
|
SoulSilver(commonName: "Soul Silver"),
|
|
Black,
|
|
White,
|
|
Black2(commonName: "Black 2"),
|
|
White2(commonName: "White 2"),
|
|
X,
|
|
Y,
|
|
OmegaRuby(commonName: "Omega Ruby"),
|
|
OmegaSapphire(commonName: "Omega Sapphire"),
|
|
Sun,
|
|
Moon,
|
|
UltraSun(commonName: "Ultra Sun"),
|
|
UltraMoon(commonName: "Ultra Moon"),
|
|
LetsGoPikachu(commonName: "Let's Go Pikachu"),
|
|
LetsGoEevee(commonName: "Let's Go Eevee"),
|
|
Sword,
|
|
Shield,
|
|
BrilliantDiamond(commonName: "Brilliant Diamond"),
|
|
ShiningPearl(commonName: "Shining Pearl");
|
|
|
|
final String commonName;
|
|
const Game({this.commonName = ""});
|
|
|
|
@override
|
|
String toString() {
|
|
if (commonName != "")
|
|
return commonName;
|
|
else
|
|
return name;
|
|
}
|
|
}
|
|
|
|
/// This represents the location of where to find the Pokemon.
|
|
///
|
|
/// This location is going to use a Route Enumerable.
|
|
///
|
|
/// Another object this includes is the game. Not generation, but game.
|
|
class Location {
|
|
final List<GameRoute> routes;
|
|
final Game game;
|
|
final Generation gameGen;
|
|
final List<Game> additionalGames;
|
|
|
|
const Location(
|
|
this.game,
|
|
this.routes,
|
|
this.gameGen, {
|
|
this.additionalGames = const [],
|
|
});
|
|
}
|
|
|
|
/// The PokeDex Entry describing the pokemon
|
|
class DexEntry {
|
|
final Game game;
|
|
final String desc;
|
|
final Generation gameGen;
|
|
final List<Game> additionalGames;
|
|
|
|
const DexEntry(
|
|
this.game,
|
|
this.desc,
|
|
this.gameGen, {
|
|
this.additionalGames = const [],
|
|
});
|
|
}
|