PokeDex/lib/dexMisc.dart

240 lines
7.1 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,
RT19,
RT20,
RT21,
RT22,
RT23,
RT24,
RT25,
RT26,
RT27,
RT28,
RT29,
RT30,
RT31,
RT32,
RT33,
RT34,
RT35,
RT36,
RT37,
RT38,
RT39,
RT42,
RT43,
RT44,
RT45,
RT46,
RT110,
RT111,
RT113,
RT115,
RT117,
RT119,
RT120,
RT121,
RT123,
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"),
DiglettCave(commonName: "Diglett's Cave"),
BattleTower(commonName: "Battle Tower"),
CinnabarIsland(commonName: "Cinnabar Island"),
FiveIsland(commonName: "Five Island"),
FourIsland(commonName: "Four Island"),
FuchsiaCity(commonName: "Fuchsia City"),
GreenPath(commonName: "Green Path"),
MemorialPillar(commonName: "Memorial Pillar"),
OneIsland(commonName: "One Island"),
OutcastIsland(commonName: "Outcast Island"),
ResortGorgeous(commonName: "Resort Gorgeous"),
TanobyRuins(commonName: "Tanoby Ruins"),
TrainerTower(commonName: "Trainer Tower"),
ViridianCity(commonName: "Viridian City"),
WaterLabyrinth(commonName: "Water Labyrinth"),
// 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(gen: Generation.One),
Green(gen: Generation.One),
Blue(gen: Generation.One),
Yellow(gen: Generation.One),
Gold(gen: Generation.Two),
Silver(gen: Generation.Two),
Crystal(gen: Generation.Two),
Ruby(gen: Generation.Three),
Sapphire(gen: Generation.Three),
FireRed(commonName: "Fire Red", gen: Generation.Three),
LeafGreen(commonName: "Leaf Green", gen: Generation.Three),
Emerald(gen: Generation.Three),
Colosseum(gen: Generation.Three),
XD(commonName: "XD Gale of Darkness", gen: Generation.Three),
Diamond(gen: Generation.Four),
Pearl(gen: Generation.Four),
Platinum(gen: Generation.Four),
HeartGold(commonName: "Heart Gold", gen: Generation.Four),
SoulSilver(commonName: "Soul Silver", gen: Generation.Four),
Black(gen: Generation.Five),
White(gen: Generation.Five),
Black2(commonName: "Black 2", gen: Generation.Five),
White2(commonName: "White 2", gen: Generation.Five),
X(gen: Generation.Six),
Y(gen: Generation.Six),
OmegaRuby(commonName: "Omega Ruby", gen: Generation.Six),
OmegaSapphire(commonName: "Omega Sapphire", gen: Generation.Six),
Sun(gen: Generation.Seven),
Moon(gen: Generation.Seven),
UltraSun(commonName: "Ultra Sun", gen: Generation.Seven),
UltraMoon(commonName: "Ultra Moon", gen: Generation.Seven),
LetsGoPikachu(commonName: "Let's Go Pikachu", gen: Generation.Seven),
LetsGoEevee(commonName: "Let's Go Eevee", gen: Generation.Seven),
Sword(gen: Generation.Eight),
Shield(gen: Generation.Eight),
BrilliantDiamond(commonName: "Brilliant Diamond", gen: Generation.Eight),
ShiningPearl(commonName: "Shining Pearl", gen: Generation.Eight),
Scarlet(gen: Generation.Nine),
Violet(gen: Generation.Nine),
LegendsZA(commonName: "Legends Z-A", gen: Generation.Nine);
final String commonName;
final Generation gen;
const Game({required this.gen, 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;
Generation get gameGen => game.gen;
final List<Game> additionalGames;
const Location(this.game, this.routes, {this.additionalGames = const []});
}
/// The PokeDex Entry describing the pokemon
class DexEntry {
final Game game;
final String desc;
Generation get gameGen => game.gen;
final List<Game> additionalGames;
const DexEntry(this.game, this.desc, {this.additionalGames = const []});
}