refactor: Streamline so that the generation is acquired from the game instance instead of from each location or dex entry.
This commit is contained in:
parent
f1c1369247
commit
ee959e4eae
2 changed files with 51 additions and 88 deletions
|
@ -143,45 +143,50 @@ enum GameRoute {
|
|||
|
||||
/// 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");
|
||||
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;
|
||||
const Game({this.commonName = ""});
|
||||
final Generation gen;
|
||||
const Game({required this.gen, this.commonName = ""});
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
|
@ -201,28 +206,18 @@ enum Game {
|
|||
class Location {
|
||||
final List<GameRoute> routes;
|
||||
final Game game;
|
||||
final Generation gameGen;
|
||||
Generation get gameGen => game.gen;
|
||||
final List<Game> additionalGames;
|
||||
|
||||
const Location(
|
||||
this.game,
|
||||
this.routes,
|
||||
this.gameGen, {
|
||||
this.additionalGames = const [],
|
||||
});
|
||||
const Location(this.game, this.routes, {this.additionalGames = const []});
|
||||
}
|
||||
|
||||
/// The PokeDex Entry describing the pokemon
|
||||
class DexEntry {
|
||||
final Game game;
|
||||
final String desc;
|
||||
final Generation gameGen;
|
||||
Generation get gameGen => game.gen;
|
||||
final List<Game> additionalGames;
|
||||
|
||||
const DexEntry(
|
||||
this.game,
|
||||
this.desc,
|
||||
this.gameGen, {
|
||||
this.additionalGames = const [],
|
||||
});
|
||||
const DexEntry(this.game, this.desc, {this.additionalGames = const []});
|
||||
}
|
||||
|
|
|
@ -5,29 +5,21 @@ class Gen1Locations {
|
|||
Gen1Locations._();
|
||||
|
||||
static const List<Location> Bulbasaur = [
|
||||
Location(
|
||||
Game.Red,
|
||||
[GameRoute.PalletTown],
|
||||
Generation.One,
|
||||
additionalGames: [Game.Blue],
|
||||
),
|
||||
Location(Game.Yellow, [GameRoute.CeruleanCity], Generation.One),
|
||||
Location(Game.Red, [GameRoute.PalletTown], additionalGames: [Game.Blue]),
|
||||
Location(Game.Yellow, [GameRoute.CeruleanCity]),
|
||||
Location(
|
||||
Game.Gold,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Two,
|
||||
additionalGames: [Game.Silver, Game.Crystal],
|
||||
),
|
||||
Location(
|
||||
Game.Ruby,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.Sapphire, Game.Emerald],
|
||||
),
|
||||
Location(
|
||||
Game.FireRed,
|
||||
[GameRoute.PalletTown],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.LeafGreen],
|
||||
),
|
||||
];
|
||||
|
@ -35,79 +27,63 @@ class Gen1Locations {
|
|||
Location(
|
||||
Game.Red,
|
||||
[GameRoute.Evolve],
|
||||
Generation.One,
|
||||
additionalGames: [Game.Blue, Game.Yellow],
|
||||
),
|
||||
Location(
|
||||
Game.Gold,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Two,
|
||||
additionalGames: [Game.Silver, Game.Crystal],
|
||||
),
|
||||
Location(
|
||||
Game.Ruby,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.Sapphire],
|
||||
),
|
||||
Location(
|
||||
Game.FireRed,
|
||||
[GameRoute.Evolve],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.LeafGreen],
|
||||
),
|
||||
Location(Game.Emerald, [GameRoute.TradeOrMigrate], Generation.Three),
|
||||
Location(Game.Emerald, [GameRoute.TradeOrMigrate]),
|
||||
];
|
||||
static const List<Location> Venusaur = [
|
||||
Location(
|
||||
Game.Red,
|
||||
[GameRoute.Evolve],
|
||||
Generation.One,
|
||||
additionalGames: [Game.Blue, Game.Yellow],
|
||||
),
|
||||
Location(
|
||||
Game.Gold,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Two,
|
||||
additionalGames: [Game.Silver, Game.Crystal],
|
||||
),
|
||||
Location(
|
||||
Game.Ruby,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.Sapphire, Game.Emerald],
|
||||
),
|
||||
Location(
|
||||
Game.FireRed,
|
||||
[GameRoute.Evolve],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.LeafGreen],
|
||||
),
|
||||
];
|
||||
static const List<Location> Charmander = [
|
||||
Location(
|
||||
Game.Red,
|
||||
[GameRoute.PalletTown],
|
||||
Generation.One,
|
||||
additionalGames: [Game.Blue],
|
||||
),
|
||||
Location(Game.Yellow, [GameRoute.RT24], Generation.One),
|
||||
Location(Game.Red, [GameRoute.PalletTown], additionalGames: [Game.Blue]),
|
||||
Location(Game.Yellow, [GameRoute.RT24]),
|
||||
Location(
|
||||
Game.Gold,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Two,
|
||||
additionalGames: [Game.Silver, Game.Crystal],
|
||||
),
|
||||
Location(
|
||||
Game.Ruby,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.Sapphire, Game.Emerald],
|
||||
),
|
||||
Location(
|
||||
Game.FireRed,
|
||||
[GameRoute.PalletTown],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.LeafGreen],
|
||||
),
|
||||
];
|
||||
|
@ -115,25 +91,21 @@ class Gen1Locations {
|
|||
Location(
|
||||
Game.Red,
|
||||
[GameRoute.Evolve],
|
||||
Generation.One,
|
||||
additionalGames: [Game.Blue, Game.Yellow],
|
||||
),
|
||||
Location(
|
||||
Game.Gold,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Two,
|
||||
additionalGames: [Game.Silver, Game.Crystal],
|
||||
),
|
||||
Location(
|
||||
Game.Ruby,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.Sapphire, Game.Emerald],
|
||||
),
|
||||
Location(
|
||||
Game.FireRed,
|
||||
[GameRoute.Evolve],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.LeafGreen],
|
||||
),
|
||||
];
|
||||
|
@ -141,25 +113,21 @@ class Gen1Locations {
|
|||
Location(
|
||||
Game.Red,
|
||||
[GameRoute.Evolve],
|
||||
Generation.One,
|
||||
additionalGames: [Game.Blue, Game.Yellow],
|
||||
),
|
||||
Location(
|
||||
Game.Gold,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Two,
|
||||
additionalGames: [Game.Silver, Game.Crystal],
|
||||
),
|
||||
Location(
|
||||
Game.Ruby,
|
||||
[GameRoute.TradeOrMigrate],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.Sapphire, Game.Emerald],
|
||||
),
|
||||
Location(
|
||||
Game.FireRed,
|
||||
[GameRoute.Evolve],
|
||||
Generation.Three,
|
||||
additionalGames: [Game.LeafGreen],
|
||||
),
|
||||
];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue