Missing files.

This commit is contained in:
Sergiotarxz 2024-03-07 09:38:16 +01:00
parent dbacdcdf79
commit a43b07c5fc
5 changed files with 691 additions and 0 deletions

23
lib/GEmeTool/Constants.pm Normal file
View File

@ -0,0 +1,23 @@
package GEmeTool::Constants;
our @wallpapers = (
'FOREST',
'CITY',
'DESERT',
'SAVANNA',
'CRAG',
'VOLCANO',
'SNOW',
'CAVE',
'BEACH',
'SEAFLOOR',
'RIVER',
'SKY',
'POLKADOT',
'POKECENTER',
'MACHINE',
'PLAIN',
'FRIENDS'
);
1;

View File

@ -0,0 +1,28 @@
package GEmeTool::Save::Pokemon;
use v5.16.3;
use strict;
use warnings;
use Moo;
use Rsaves;
use Rsaves::Constants::Emerald::Species;
has _pokemon => (
is => 'rw',
);
sub species {
my $self = shift;
my $pokemon = $self->_pokemon;
my $substruct_0 = Rsaves::find_pokemon_substruct($pokemon->{substructures}, 0);
return $substruct_0->{species};
}
sub get_image {
my $self = shift;
my $pokemon_name = $Rsaves::Constants::Emerald::Species::SPECIES[$self->species];
return "pokeemerald/graphics/pokemon/@{[lc($pokemon_name)]}/icon.png";
}
1;

View File

@ -0,0 +1,53 @@
package GEmeTool::Save::PokemonBox;
use v5.16.3;
use strict;
use warnings;
use Moo;
use GEmeTool::Save::Pokemon;
has _wallpaper => (
is => 'rw',
required => 1,
);
has _name => (
is => 'rw',
required => 1,
);
has _box => (
is => 'rw',
required => 1,
);
sub wallpaper {
my $self = shift;
my $arg = shift;
if ( defined $arg ) {
${ $self->_wallpaper } = $arg;
}
return ${ $self->_wallpaper };
}
sub name {
my $self = shift;
my $arg = shift;
if ( defined $arg ) {
${ $self->_name } = $arg;
}
return ${ $self->_name };
}
sub get_pokemon {
my $self = shift;
my $number = shift;
if ($number < 0 || $number > 29) {
die "Pokemon boxes can only hold pokemon from 0 to 29, index $number invalid.";
}
return GEmeTool::Save::Pokemon->new( _pokemon => $self->_box->[$number] );
}
1;

View File

@ -0,0 +1,55 @@
package GEmeTool::Save::PokemonPC;
use v5.16.3;
use strict;
use warnings;
use Moo;
use Rsaves;
use GEmeTool::Save::PokemonBox;
has _pc => (
is => 'rw',
required => 1,
);
has _save => (
is => 'rw',
required => 1,
);
sub boxes {
my $self = shift;
my $pc = $self->_pc;
my @boxes;
for ( my $i = 0 ; $i < 14 ; $i++ ) {
$boxes[$i] = $self->get_box($i);
}
return \@boxes;
}
sub get_box {
my $self = shift;
my $number = shift;
if ($number < 0 || $number > 13) {
die "Bad box number $number.";
}
my $pc = $self->_pc;
my $wallpaper = \$pc->{wallpapers}[$number];
my $name = \$pc->{boxes_names}[$number];
my $box = $pc->{boxes}[$number];
my $return = GEmeTool::Save::PokemonBox->new(
_wallpaper => $wallpaper,
_name => $name,
_box => $box
);
return $return;
}
sub save {
my $self = shift;
$self->_save->($self->_pc);
}
1;

View File

@ -0,0 +1,532 @@
package Rsaves::Constants::Emerald::Species;
use v5.16.3;
use strict;
use warnings;
our $SPECIES_NONE = 0;
our $SPECIES_BULBASAUR = 1;
our $SPECIES_IVYSAUR = 2;
our $SPECIES_VENUSAUR = 3;
our $SPECIES_CHARMANDER = 4;
our $SPECIES_CHARMELEON = 5;
our $SPECIES_CHARIZARD = 6;
our $SPECIES_SQUIRTLE = 7;
our $SPECIES_WARTORTLE = 8;
our $SPECIES_BLASTOISE = 9;
our $SPECIES_CATERPIE = 10;
our $SPECIES_METAPOD = 11;
our $SPECIES_BUTTERFREE = 12;
our $SPECIES_WEEDLE = 13;
our $SPECIES_KAKUNA = 14;
our $SPECIES_BEEDRILL = 15;
our $SPECIES_PIDGEY = 16;
our $SPECIES_PIDGEOTTO = 17;
our $SPECIES_PIDGEOT = 18;
our $SPECIES_RATTATA = 19;
our $SPECIES_RATICATE = 20;
our $SPECIES_SPEAROW = 21;
our $SPECIES_FEAROW = 22;
our $SPECIES_EKANS = 23;
our $SPECIES_ARBOK = 24;
our $SPECIES_PIKACHU = 25;
our $SPECIES_RAICHU = 26;
our $SPECIES_SANDSHREW = 27;
our $SPECIES_SANDSLASH = 28;
our $SPECIES_NIDORAN_F = 29;
our $SPECIES_NIDORINA = 30;
our $SPECIES_NIDOQUEEN = 31;
our $SPECIES_NIDORAN_M = 32;
our $SPECIES_NIDORINO = 33;
our $SPECIES_NIDOKING = 34;
our $SPECIES_CLEFAIRY = 35;
our $SPECIES_CLEFABLE = 36;
our $SPECIES_VULPIX = 37;
our $SPECIES_NINETALES = 38;
our $SPECIES_JIGGLYPUFF = 39;
our $SPECIES_WIGGLYTUFF = 40;
our $SPECIES_ZUBAT = 41;
our $SPECIES_GOLBAT = 42;
our $SPECIES_ODDISH = 43;
our $SPECIES_GLOOM = 44;
our $SPECIES_VILEPLUME = 45;
our $SPECIES_PARAS = 46;
our $SPECIES_PARASECT = 47;
our $SPECIES_VENONAT = 48;
our $SPECIES_VENOMOTH = 49;
our $SPECIES_DIGLETT = 50;
our $SPECIES_DUGTRIO = 51;
our $SPECIES_MEOWTH = 52;
our $SPECIES_PERSIAN = 53;
our $SPECIES_PSYDUCK = 54;
our $SPECIES_GOLDUCK = 55;
our $SPECIES_MANKEY = 56;
our $SPECIES_PRIMEAPE = 57;
our $SPECIES_GROWLITHE = 58;
our $SPECIES_ARCANINE = 59;
our $SPECIES_POLIWAG = 60;
our $SPECIES_POLIWHIRL = 61;
our $SPECIES_POLIWRATH = 62;
our $SPECIES_ABRA = 63;
our $SPECIES_KADABRA = 64;
our $SPECIES_ALAKAZAM = 65;
our $SPECIES_MACHOP = 66;
our $SPECIES_MACHOKE = 67;
our $SPECIES_MACHAMP = 68;
our $SPECIES_BELLSPROUT = 69;
our $SPECIES_WEEPINBELL = 70;
our $SPECIES_VICTREEBEL = 71;
our $SPECIES_TENTACOOL = 72;
our $SPECIES_TENTACRUEL = 73;
our $SPECIES_GEODUDE = 74;
our $SPECIES_GRAVELER = 75;
our $SPECIES_GOLEM = 76;
our $SPECIES_PONYTA = 77;
our $SPECIES_RAPIDASH = 78;
our $SPECIES_SLOWPOKE = 79;
our $SPECIES_SLOWBRO = 80;
our $SPECIES_MAGNEMITE = 81;
our $SPECIES_MAGNETON = 82;
our $SPECIES_FARFETCHD = 83;
our $SPECIES_DODUO = 84;
our $SPECIES_DODRIO = 85;
our $SPECIES_SEEL = 86;
our $SPECIES_DEWGONG = 87;
our $SPECIES_GRIMER = 88;
our $SPECIES_MUK = 89;
our $SPECIES_SHELLDER = 90;
our $SPECIES_CLOYSTER = 91;
our $SPECIES_GASTLY = 92;
our $SPECIES_HAUNTER = 93;
our $SPECIES_GENGAR = 94;
our $SPECIES_ONIX = 95;
our $SPECIES_DROWZEE = 96;
our $SPECIES_HYPNO = 97;
our $SPECIES_KRABBY = 98;
our $SPECIES_KINGLER = 99;
our $SPECIES_VOLTORB = 100;
our $SPECIES_ELECTRODE = 101;
our $SPECIES_EXEGGCUTE = 102;
our $SPECIES_EXEGGUTOR = 103;
our $SPECIES_CUBONE = 104;
our $SPECIES_MAROWAK = 105;
our $SPECIES_HITMONLEE = 106;
our $SPECIES_HITMONCHAN = 107;
our $SPECIES_LICKITUNG = 108;
our $SPECIES_KOFFING = 109;
our $SPECIES_WEEZING = 110;
our $SPECIES_RHYHORN = 111;
our $SPECIES_RHYDON = 112;
our $SPECIES_CHANSEY = 113;
our $SPECIES_TANGELA = 114;
our $SPECIES_KANGASKHAN = 115;
our $SPECIES_HORSEA = 116;
our $SPECIES_SEADRA = 117;
our $SPECIES_GOLDEEN = 118;
our $SPECIES_SEAKING = 119;
our $SPECIES_STARYU = 120;
our $SPECIES_STARMIE = 121;
our $SPECIES_MR_MIME = 122;
our $SPECIES_SCYTHER = 123;
our $SPECIES_JYNX = 124;
our $SPECIES_ELECTABUZZ = 125;
our $SPECIES_MAGMAR = 126;
our $SPECIES_PINSIR = 127;
our $SPECIES_TAUROS = 128;
our $SPECIES_MAGIKARP = 129;
our $SPECIES_GYARADOS = 130;
our $SPECIES_LAPRAS = 131;
our $SPECIES_DITTO = 132;
our $SPECIES_EEVEE = 133;
our $SPECIES_VAPOREON = 134;
our $SPECIES_JOLTEON = 135;
our $SPECIES_FLAREON = 136;
our $SPECIES_PORYGON = 137;
our $SPECIES_OMANYTE = 138;
our $SPECIES_OMASTAR = 139;
our $SPECIES_KABUTO = 140;
our $SPECIES_KABUTOPS = 141;
our $SPECIES_AERODACTYL = 142;
our $SPECIES_SNORLAX = 143;
our $SPECIES_ARTICUNO = 144;
our $SPECIES_ZAPDOS = 145;
our $SPECIES_MOLTRES = 146;
our $SPECIES_DRATINI = 147;
our $SPECIES_DRAGONAIR = 148;
our $SPECIES_DRAGONITE = 149;
our $SPECIES_MEWTWO = 150;
our $SPECIES_MEW = 151;
our $SPECIES_CHIKORITA = 152;
our $SPECIES_BAYLEEF = 153;
our $SPECIES_MEGANIUM = 154;
our $SPECIES_CYNDAQUIL = 155;
our $SPECIES_QUILAVA = 156;
our $SPECIES_TYPHLOSION = 157;
our $SPECIES_TOTODILE = 158;
our $SPECIES_CROCONAW = 159;
our $SPECIES_FERALIGATR = 160;
our $SPECIES_SENTRET = 161;
our $SPECIES_FURRET = 162;
our $SPECIES_HOOTHOOT = 163;
our $SPECIES_NOCTOWL = 164;
our $SPECIES_LEDYBA = 165;
our $SPECIES_LEDIAN = 166;
our $SPECIES_SPINARAK = 167;
our $SPECIES_ARIADOS = 168;
our $SPECIES_CROBAT = 169;
our $SPECIES_CHINCHOU = 170;
our $SPECIES_LANTURN = 171;
our $SPECIES_PICHU = 172;
our $SPECIES_CLEFFA = 173;
our $SPECIES_IGGLYBUFF = 174;
our $SPECIES_TOGEPI = 175;
our $SPECIES_TOGETIC = 176;
our $SPECIES_NATU = 177;
our $SPECIES_XATU = 178;
our $SPECIES_MAREEP = 179;
our $SPECIES_FLAAFFY = 180;
our $SPECIES_AMPHAROS = 181;
our $SPECIES_BELLOSSOM = 182;
our $SPECIES_MARILL = 183;
our $SPECIES_AZUMARILL = 184;
our $SPECIES_SUDOWOODO = 185;
our $SPECIES_POLITOED = 186;
our $SPECIES_HOPPIP = 187;
our $SPECIES_SKIPLOOM = 188;
our $SPECIES_JUMPLUFF = 189;
our $SPECIES_AIPOM = 190;
our $SPECIES_SUNKERN = 191;
our $SPECIES_SUNFLORA = 192;
our $SPECIES_YANMA = 193;
our $SPECIES_WOOPER = 194;
our $SPECIES_QUAGSIRE = 195;
our $SPECIES_ESPEON = 196;
our $SPECIES_UMBREON = 197;
our $SPECIES_MURKROW = 198;
our $SPECIES_SLOWKING = 199;
our $SPECIES_MISDREAVUS = 200;
our $SPECIES_UNOWN = 201;
our $SPECIES_WOBBUFFET = 202;
our $SPECIES_GIRAFARIG = 203;
our $SPECIES_PINECO = 204;
our $SPECIES_FORRETRESS = 205;
our $SPECIES_DUNSPARCE = 206;
our $SPECIES_GLIGAR = 207;
our $SPECIES_STEELIX = 208;
our $SPECIES_SNUBBULL = 209;
our $SPECIES_GRANBULL = 210;
our $SPECIES_QWILFISH = 211;
our $SPECIES_SCIZOR = 212;
our $SPECIES_SHUCKLE = 213;
our $SPECIES_HERACROSS = 214;
our $SPECIES_SNEASEL = 215;
our $SPECIES_TEDDIURSA = 216;
our $SPECIES_URSARING = 217;
our $SPECIES_SLUGMA = 218;
our $SPECIES_MAGCARGO = 219;
our $SPECIES_SWINUB = 220;
our $SPECIES_PILOSWINE = 221;
our $SPECIES_CORSOLA = 222;
our $SPECIES_REMORAID = 223;
our $SPECIES_OCTILLERY = 224;
our $SPECIES_DELIBIRD = 225;
our $SPECIES_MANTINE = 226;
our $SPECIES_SKARMORY = 227;
our $SPECIES_HOUNDOUR = 228;
our $SPECIES_HOUNDOOM = 229;
our $SPECIES_KINGDRA = 230;
our $SPECIES_PHANPY = 231;
our $SPECIES_DONPHAN = 232;
our $SPECIES_PORYGON2 = 233;
our $SPECIES_STANTLER = 234;
our $SPECIES_SMEARGLE = 235;
our $SPECIES_TYROGUE = 236;
our $SPECIES_HITMONTOP = 237;
our $SPECIES_SMOOCHUM = 238;
our $SPECIES_ELEKID = 239;
our $SPECIES_MAGBY = 240;
our $SPECIES_MILTANK = 241;
our $SPECIES_BLISSEY = 242;
our $SPECIES_RAIKOU = 243;
our $SPECIES_ENTEI = 244;
our $SPECIES_SUICUNE = 245;
our $SPECIES_LARVITAR = 246;
our $SPECIES_PUPITAR = 247;
our $SPECIES_TYRANITAR = 248;
our $SPECIES_LUGIA = 249;
our $SPECIES_HO_OH = 250;
our $SPECIES_CELEBI = 251;
our $SPECIES_OLD_UNOWN_B = 252;
our $SPECIES_OLD_UNOWN_C = 253;
our $SPECIES_OLD_UNOWN_D = 254;
our $SPECIES_OLD_UNOWN_E = 255;
our $SPECIES_OLD_UNOWN_F = 256;
our $SPECIES_OLD_UNOWN_G = 257;
our $SPECIES_OLD_UNOWN_H = 258;
our $SPECIES_OLD_UNOWN_I = 259;
our $SPECIES_OLD_UNOWN_J = 260;
our $SPECIES_OLD_UNOWN_K = 261;
our $SPECIES_OLD_UNOWN_L = 262;
our $SPECIES_OLD_UNOWN_M = 263;
our $SPECIES_OLD_UNOWN_N = 264;
our $SPECIES_OLD_UNOWN_O = 265;
our $SPECIES_OLD_UNOWN_P = 266;
our $SPECIES_OLD_UNOWN_Q = 267;
our $SPECIES_OLD_UNOWN_R = 268;
our $SPECIES_OLD_UNOWN_S = 269;
our $SPECIES_OLD_UNOWN_T = 270;
our $SPECIES_OLD_UNOWN_U = 271;
our $SPECIES_OLD_UNOWN_V = 272;
our $SPECIES_OLD_UNOWN_W = 273;
our $SPECIES_OLD_UNOWN_X = 274;
our $SPECIES_OLD_UNOWN_Y = 275;
our $SPECIES_OLD_UNOWN_Z = 276;
our $SPECIES_TREECKO = 277;
our $SPECIES_GROVYLE = 278;
our $SPECIES_SCEPTILE = 279;
our $SPECIES_TORCHIC = 280;
our $SPECIES_COMBUSKEN = 281;
our $SPECIES_BLAZIKEN = 282;
our $SPECIES_MUDKIP = 283;
our $SPECIES_MARSHTOMP = 284;
our $SPECIES_SWAMPERT = 285;
our $SPECIES_POOCHYENA = 286;
our $SPECIES_MIGHTYENA = 287;
our $SPECIES_ZIGZAGOON = 288;
our $SPECIES_LINOONE = 289;
our $SPECIES_WURMPLE = 290;
our $SPECIES_SILCOON = 291;
our $SPECIES_BEAUTIFLY = 292;
our $SPECIES_CASCOON = 293;
our $SPECIES_DUSTOX = 294;
our $SPECIES_LOTAD = 295;
our $SPECIES_LOMBRE = 296;
our $SPECIES_LUDICOLO = 297;
our $SPECIES_SEEDOT = 298;
our $SPECIES_NUZLEAF = 299;
our $SPECIES_SHIFTRY = 300;
our $SPECIES_NINCADA = 301;
our $SPECIES_NINJASK = 302;
our $SPECIES_SHEDINJA = 303;
our $SPECIES_TAILLOW = 304;
our $SPECIES_SWELLOW = 305;
our $SPECIES_SHROOMISH = 306;
our $SPECIES_BRELOOM = 307;
our $SPECIES_SPINDA = 308;
our $SPECIES_WINGULL = 309;
our $SPECIES_PELIPPER = 310;
our $SPECIES_SURSKIT = 311;
our $SPECIES_MASQUERAIN = 312;
our $SPECIES_WAILMER = 313;
our $SPECIES_WAILORD = 314;
our $SPECIES_SKITTY = 315;
our $SPECIES_DELCATTY = 316;
our $SPECIES_KECLEON = 317;
our $SPECIES_BALTOY = 318;
our $SPECIES_CLAYDOL = 319;
our $SPECIES_NOSEPASS = 320;
our $SPECIES_TORKOAL = 321;
our $SPECIES_SABLEYE = 322;
our $SPECIES_BARBOACH = 323;
our $SPECIES_WHISCASH = 324;
our $SPECIES_LUVDISC = 325;
our $SPECIES_CORPHISH = 326;
our $SPECIES_CRAWDAUNT = 327;
our $SPECIES_FEEBAS = 328;
our $SPECIES_MILOTIC = 329;
our $SPECIES_CARVANHA = 330;
our $SPECIES_SHARPEDO = 331;
our $SPECIES_TRAPINCH = 332;
our $SPECIES_VIBRAVA = 333;
our $SPECIES_FLYGON = 334;
our $SPECIES_MAKUHITA = 335;
our $SPECIES_HARIYAMA = 336;
our $SPECIES_ELECTRIKE = 337;
our $SPECIES_MANECTRIC = 338;
our $SPECIES_NUMEL = 339;
our $SPECIES_CAMERUPT = 340;
our $SPECIES_SPHEAL = 341;
our $SPECIES_SEALEO = 342;
our $SPECIES_WALREIN = 343;
our $SPECIES_CACNEA = 344;
our $SPECIES_CACTURNE = 345;
our $SPECIES_SNORUNT = 346;
our $SPECIES_GLALIE = 347;
our $SPECIES_LUNATONE = 348;
our $SPECIES_SOLROCK = 349;
our $SPECIES_AZURILL = 350;
our $SPECIES_SPOINK = 351;
our $SPECIES_GRUMPIG = 352;
our $SPECIES_PLUSLE = 353;
our $SPECIES_MINUN = 354;
our $SPECIES_MAWILE = 355;
our $SPECIES_MEDITITE = 356;
our $SPECIES_MEDICHAM = 357;
our $SPECIES_SWABLU = 358;
our $SPECIES_ALTARIA = 359;
our $SPECIES_WYNAUT = 360;
our $SPECIES_DUSKULL = 361;
our $SPECIES_DUSCLOPS = 362;
our $SPECIES_ROSELIA = 363;
our $SPECIES_SLAKOTH = 364;
our $SPECIES_VIGOROTH = 365;
our $SPECIES_SLAKING = 366;
our $SPECIES_GULPIN = 367;
our $SPECIES_SWALOT = 368;
our $SPECIES_TROPIUS = 369;
our $SPECIES_WHISMUR = 370;
our $SPECIES_LOUDRED = 371;
our $SPECIES_EXPLOUD = 372;
our $SPECIES_CLAMPERL = 373;
our $SPECIES_HUNTAIL = 374;
our $SPECIES_GOREBYSS = 375;
our $SPECIES_ABSOL = 376;
our $SPECIES_SHUPPET = 377;
our $SPECIES_BANETTE = 378;
our $SPECIES_SEVIPER = 379;
our $SPECIES_ZANGOOSE = 380;
our $SPECIES_RELICANTH = 381;
our $SPECIES_ARON = 382;
our $SPECIES_LAIRON = 383;
our $SPECIES_AGGRON = 384;
our $SPECIES_CASTFORM = 385;
our $SPECIES_VOLBEAT = 386;
our $SPECIES_ILLUMISE = 387;
our $SPECIES_LILEEP = 388;
our $SPECIES_CRADILY = 389;
our $SPECIES_ANORITH = 390;
our $SPECIES_ARMALDO = 391;
our $SPECIES_RALTS = 392;
our $SPECIES_KIRLIA = 393;
our $SPECIES_GARDEVOIR = 394;
our $SPECIES_BAGON = 395;
our $SPECIES_SHELGON = 396;
our $SPECIES_SALAMENCE = 397;
our $SPECIES_BELDUM = 398;
our $SPECIES_METANG = 399;
our $SPECIES_METAGROSS = 400;
our $SPECIES_REGIROCK = 401;
our $SPECIES_REGICE = 402;
our $SPECIES_REGISTEEL = 403;
our $SPECIES_KYOGRE = 404;
our $SPECIES_GROUDON = 405;
our $SPECIES_RAYQUAZA = 406;
our $SPECIES_LATIAS = 407;
our $SPECIES_LATIOS = 408;
our $SPECIES_JIRACHI = 409;
our $SPECIES_DEOXYS = 410;
our $SPECIES_CHIMECHO = 411;
our @SPECIES = (
'NONE', 'BULBASAUR', 'IVYSAUR', 'VENUSAUR',
'CHARMANDER', 'CHARMELEON', 'CHARIZARD', 'SQUIRTLE',
'WARTORTLE', 'BLASTOISE', 'CATERPIE', 'METAPOD',
'BUTTERFREE', 'WEEDLE', 'KAKUNA', 'BEEDRILL',
'PIDGEY', 'PIDGEOTTO', 'PIDGEOT', 'RATTATA',
'RATICATE', 'SPEAROW', 'FEAROW', 'EKANS',
'ARBOK', 'PIKACHU', 'RAICHU', 'SANDSHREW',
'SANDSLASH', 'NIDORAN_F', 'NIDORINA', 'NIDOQUEEN',
'NIDORAN_M', 'NIDORINO', 'NIDOKING', 'CLEFAIRY',
'CLEFABLE', 'VULPIX', 'NINETALES', 'JIGGLYPUFF',
'WIGGLYTUFF', 'ZUBAT', 'GOLBAT', 'ODDISH',
'GLOOM', 'VILEPLUME', 'PARAS', 'PARASECT',
'VENONAT', 'VENOMOTH', 'DIGLETT', 'DUGTRIO',
'MEOWTH', 'PERSIAN', 'PSYDUCK', 'GOLDUCK',
'MANKEY', 'PRIMEAPE', 'GROWLITHE', 'ARCANINE',
'POLIWAG', 'POLIWHIRL', 'POLIWRATH', 'ABRA',
'KADABRA', 'ALAKAZAM', 'MACHOP', 'MACHOKE',
'MACHAMP', 'BELLSPROUT', 'WEEPINBELL', 'VICTREEBEL',
'TENTACOOL', 'TENTACRUEL', 'GEODUDE', 'GRAVELER',
'GOLEM', 'PONYTA', 'RAPIDASH', 'SLOWPOKE',
'SLOWBRO', 'MAGNEMITE', 'MAGNETON', 'FARFETCHD',
'DODUO', 'DODRIO', 'SEEL', 'DEWGONG',
'GRIMER', 'MUK', 'SHELLDER', 'CLOYSTER',
'GASTLY', 'HAUNTER', 'GENGAR', 'ONIX',
'DROWZEE', 'HYPNO', 'KRABBY', 'KINGLER',
'VOLTORB', 'ELECTRODE', 'EXEGGCUTE', 'EXEGGUTOR',
'CUBONE', 'MAROWAK', 'HITMONLEE', 'HITMONCHAN',
'LICKITUNG', 'KOFFING', 'WEEZING', 'RHYHORN',
'RHYDON', 'CHANSEY', 'TANGELA', 'KANGASKHAN',
'HORSEA', 'SEADRA', 'GOLDEEN', 'SEAKING',
'STARYU', 'STARMIE', 'MR_MIME', 'SCYTHER',
'JYNX', 'ELECTABUZZ', 'MAGMAR', 'PINSIR',
'TAUROS', 'MAGIKARP', 'GYARADOS', 'LAPRAS',
'DITTO', 'EEVEE', 'VAPOREON', 'JOLTEON',
'FLAREON', 'PORYGON', 'OMANYTE', 'OMASTAR',
'KABUTO', 'KABUTOPS', 'AERODACTYL', 'SNORLAX',
'ARTICUNO', 'ZAPDOS', 'MOLTRES', 'DRATINI',
'DRAGONAIR', 'DRAGONITE', 'MEWTWO', 'MEW',
'CHIKORITA', 'BAYLEEF', 'MEGANIUM', 'CYNDAQUIL',
'QUILAVA', 'TYPHLOSION', 'TOTODILE', 'CROCONAW',
'FERALIGATR', 'SENTRET', 'FURRET', 'HOOTHOOT',
'NOCTOWL', 'LEDYBA', 'LEDIAN', 'SPINARAK',
'ARIADOS', 'CROBAT', 'CHINCHOU', 'LANTURN',
'PICHU', 'CLEFFA', 'IGGLYBUFF', 'TOGEPI',
'TOGETIC', 'NATU', 'XATU', 'MAREEP',
'FLAAFFY', 'AMPHAROS', 'BELLOSSOM', 'MARILL',
'AZUMARILL', 'SUDOWOODO', 'POLITOED', 'HOPPIP',
'SKIPLOOM', 'JUMPLUFF', 'AIPOM', 'SUNKERN',
'SUNFLORA', 'YANMA', 'WOOPER', 'QUAGSIRE',
'ESPEON', 'UMBREON', 'MURKROW', 'SLOWKING',
'MISDREAVUS', 'UNOWN', 'WOBBUFFET', 'GIRAFARIG',
'PINECO', 'FORRETRESS', 'DUNSPARCE', 'GLIGAR',
'STEELIX', 'SNUBBULL', 'GRANBULL', 'QWILFISH',
'SCIZOR', 'SHUCKLE', 'HERACROSS', 'SNEASEL',
'TEDDIURSA', 'URSARING', 'SLUGMA', 'MAGCARGO',
'SWINUB', 'PILOSWINE', 'CORSOLA', 'REMORAID',
'OCTILLERY', 'DELIBIRD', 'MANTINE', 'SKARMORY',
'HOUNDOUR', 'HOUNDOOM', 'KINGDRA', 'PHANPY',
'DONPHAN', 'PORYGON2', 'STANTLER', 'SMEARGLE',
'TYROGUE', 'HITMONTOP', 'SMOOCHUM', 'ELEKID',
'MAGBY', 'MILTANK', 'BLISSEY', 'RAIKOU',
'ENTEI', 'SUICUNE', 'LARVITAR', 'PUPITAR',
'TYRANITAR', 'LUGIA', 'HO_OH', 'CELEBI',
'OLD_UNOWN_B', 'OLD_UNOWN_C', 'OLD_UNOWN_D', 'OLD_UNOWN_E',
'OLD_UNOWN_F', 'OLD_UNOWN_G', 'OLD_UNOWN_H', 'OLD_UNOWN_I',
'OLD_UNOWN_J', 'OLD_UNOWN_K', 'OLD_UNOWN_L', 'OLD_UNOWN_M',
'OLD_UNOWN_N', 'OLD_UNOWN_O', 'OLD_UNOWN_P', 'OLD_UNOWN_Q',
'OLD_UNOWN_R', 'OLD_UNOWN_S', 'OLD_UNOWN_T', 'OLD_UNOWN_U',
'OLD_UNOWN_V', 'OLD_UNOWN_W', 'OLD_UNOWN_X', 'OLD_UNOWN_Y',
'OLD_UNOWN_Z', 'TREECKO', 'GROVYLE', 'SCEPTILE',
'TORCHIC', 'COMBUSKEN', 'BLAZIKEN', 'MUDKIP',
'MARSHTOMP', 'SWAMPERT', 'POOCHYENA', 'MIGHTYENA',
'ZIGZAGOON', 'LINOONE', 'WURMPLE', 'SILCOON',
'BEAUTIFLY', 'CASCOON', 'DUSTOX', 'LOTAD',
'LOMBRE', 'LUDICOLO', 'SEEDOT', 'NUZLEAF',
'SHIFTRY', 'NINCADA', 'NINJASK', 'SHEDINJA',
'TAILLOW', 'SWELLOW', 'SHROOMISH', 'BRELOOM',
'SPINDA', 'WINGULL', 'PELIPPER', 'SURSKIT',
'MASQUERAIN', 'WAILMER', 'WAILORD', 'SKITTY',
'DELCATTY', 'KECLEON', 'BALTOY', 'CLAYDOL',
'NOSEPASS', 'TORKOAL', 'SABLEYE', 'BARBOACH',
'WHISCASH', 'LUVDISC', 'CORPHISH', 'CRAWDAUNT',
'FEEBAS', 'MILOTIC', 'CARVANHA', 'SHARPEDO',
'TRAPINCH', 'VIBRAVA', 'FLYGON', 'MAKUHITA',
'HARIYAMA', 'ELECTRIKE', 'MANECTRIC', 'NUMEL',
'CAMERUPT', 'SPHEAL', 'SEALEO', 'WALREIN',
'CACNEA', 'CACTURNE', 'SNORUNT', 'GLALIE',
'LUNATONE', 'SOLROCK', 'AZURILL', 'SPOINK',
'GRUMPIG', 'PLUSLE', 'MINUN', 'MAWILE',
'MEDITITE', 'MEDICHAM', 'SWABLU', 'ALTARIA',
'WYNAUT', 'DUSKULL', 'DUSCLOPS', 'ROSELIA',
'SLAKOTH', 'VIGOROTH', 'SLAKING', 'GULPIN',
'SWALOT', 'TROPIUS', 'WHISMUR', 'LOUDRED',
'EXPLOUD', 'CLAMPERL', 'HUNTAIL', 'GOREBYSS',
'ABSOL', 'SHUPPET', 'BANETTE', 'SEVIPER',
'ZANGOOSE', 'RELICANTH', 'ARON', 'LAIRON',
'AGGRON', 'CASTFORM', 'VOLBEAT', 'ILLUMISE',
'LILEEP', 'CRADILY', 'ANORITH', 'ARMALDO',
'RALTS', 'KIRLIA', 'GARDEVOIR', 'BAGON',
'SHELGON', 'SALAMENCE', 'BELDUM', 'METANG',
'METAGROSS', 'REGIROCK', 'REGICE', 'REGISTEEL',
'KYOGRE', 'GROUDON', 'RAYQUAZA', 'LATIAS',
'LATIOS', 'JIRACHI', 'DEOXYS', 'CHIMECHO',
);
our %SPECIES_NAME_TO_ID;
for (my $i = 0; $i < scalar @SPECIES; $i++) {
$SPECIES_NAME_TO_ID{$SPECIES[$i]} = $i;
}
1;