222 lines
5.4 KiB
Dart
222 lines
5.4 KiB
Dart
import 'package:pokedex/pokemon.dart';
|
|
|
|
/// The route number.
|
|
enum GameRoute {
|
|
RT1,
|
|
RT2,
|
|
RT3,
|
|
RT4,
|
|
RT5,
|
|
RT6,
|
|
RT7,
|
|
RT8,
|
|
RT9,
|
|
RT10,
|
|
RT11,
|
|
RT12,
|
|
RT13,
|
|
RT14,
|
|
RT15,
|
|
RT16,
|
|
RT17,
|
|
RT18,
|
|
RT21,
|
|
RT22,
|
|
RT23,
|
|
RT24,
|
|
RT25,
|
|
RT26,
|
|
RT27,
|
|
RT28,
|
|
RT29,
|
|
RT30,
|
|
RT31,
|
|
RT32,
|
|
RT33,
|
|
RT34,
|
|
RT35,
|
|
RT36,
|
|
RT37,
|
|
RT38,
|
|
RT39,
|
|
RT42,
|
|
RT43,
|
|
RT44,
|
|
RT45,
|
|
RT46,
|
|
RT111,
|
|
RT113,
|
|
RT115,
|
|
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"),
|
|
CeruleanCave(commonName: "Cerulean Cave"),
|
|
VermilionCity(commonName: "Vermilion City"),
|
|
LumioseCity(commonName: "Lumiose City"),
|
|
SeawardCave(commonName: "Seaward Cave"),
|
|
BerryForest(commonName: "Berry Forest"),
|
|
BondBridge(commonName: "Bond Bridge"),
|
|
FiveIsleMeadow(commonName: "Five Isle Meadow"),
|
|
PokemonMansion(commonName: "Pokemon Mansion"),
|
|
BurnedTower(commonName: "Burned Tower"),
|
|
MtMortar(commonName: "Mt. Mortar"),
|
|
SproutTower(commonName: "Sprout Tower"),
|
|
TinTower(commonName: "Tin Tower"),
|
|
TohjoFalls(commonName: "Tohjo Falls"),
|
|
UnionCave(commonName: "Union Cave"),
|
|
CanyonEntrance(commonName: "Canyon Entrance"),
|
|
CapeBrink(commonName: "Cape Brink"),
|
|
KindleRoad(commonName: "Kindle Road"),
|
|
MtEmber(commonName: "Mt. Ember"),
|
|
RuinValley(commonName: "Ruin Valley"),
|
|
TreasureBeach(commonName: "Treasure Beach"),
|
|
WaterPath(commonName: "Water Path"),
|
|
SevaultCanyon(commonName: "Sevault Canyon"),
|
|
GoldenrodCity(commonName: "Goldenrod City"),
|
|
MtSilver(commonName: "Mt. Silver"),
|
|
VictoryRoad(commonName: "Victory Road"),
|
|
PowerPlant(commonName: "Power Plant"),
|
|
CeladonCity(commonName: "Celadon City"),
|
|
SafariZone(commonName: "Safari Zone"),
|
|
MtMoon(commonName: "Mt. Moon"),
|
|
MirageTower(commonName: "Mirage Tower"),
|
|
UndergroundPath5_6(commonName: "Underground Path 5-6"),
|
|
MtPyre(commonName: "Mt. Pyre"),
|
|
RockTunnel(commonName: "Rock Tunnel"),
|
|
SeafoamIslands(commonName: "Seafoam Islands"),
|
|
DarkCave(commonName: "Dark Cave"),
|
|
IcePath(commonName: "Ice Path"),
|
|
SlowpokeWell(commonName: "Slowpoke Well"),
|
|
WhirlIslands(commonName: "Whirl Islands"),
|
|
CaveOfOrigin(commonName: "Cave of Origin"),
|
|
GraniteCave(commonName: "Granite Cave"),
|
|
MeteorFalls(commonName: "Meteor Falls"),
|
|
SeafloorCavern(commonName: "Seafloor Cavern"),
|
|
ShoalCave(commonName: "Shoal Cave"),
|
|
AlteringCave(commonName: "Altering Cave"),
|
|
IcefallCave(commonName: "Icefall Cave"),
|
|
LostCave(commonName: "Lost Cave"),
|
|
SkyPillar(commonName: "Sky Pillar"),
|
|
|
|
// 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,
|
|
Colosseum,
|
|
XD(commonName: "XD Gale of Darkness"),
|
|
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 [],
|
|
});
|
|
}
|