PokeDex/lib/dexMisc.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 [],
});
}