PokeDex/lib/dexMisc.dart
2025-06-01 14:16:16 -07:00

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 [],
});
}