diff --git a/public/audio/cry/890-eternamax.mp3 b/public/audio/cry/890-eternamax.mp3 new file mode 100644 index 00000000000..4c48ef387e1 Binary files /dev/null and b/public/audio/cry/890-eternamax.mp3 differ diff --git a/public/images/pokemon/890-eternamax.json b/public/images/pokemon/890-eternamax.json new file mode 100644 index 00000000000..4555295b172 --- /dev/null +++ b/public/images/pokemon/890-eternamax.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "890-eternamax.png", + "format": "RGBA8888", + "size": { + "w": 96, + "h": 96 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 96, + "h": 96 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 96, + "h": 96 + }, + "frame": { + "x": 0, + "y": 0, + "w": 96, + "h": 96 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:2f58479d6e423d47c2e020de79121c9e:2b0d210cee7325446481599b7b95c52b:4db8b375066b8984bad6ce8eed9a5f6f$" + } +} diff --git a/public/images/pokemon/890-eternamax.png b/public/images/pokemon/890-eternamax.png new file mode 100644 index 00000000000..9fe4ab5f13e Binary files /dev/null and b/public/images/pokemon/890-eternamax.png differ diff --git a/public/images/pokemon/back/890-eternamax.json b/public/images/pokemon/back/890-eternamax.json new file mode 100644 index 00000000000..c16d7561537 --- /dev/null +++ b/public/images/pokemon/back/890-eternamax.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "890-eternamax.png", + "format": "RGBA8888", + "size": { + "w": 90, + "h": 93 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 96, + "h": 96 + }, + "spriteSourceSize": { + "x": 3, + "y": 1, + "w": 90, + "h": 93 + }, + "frame": { + "x": 0, + "y": 0, + "w": 90, + "h": 93 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:738a2cfd221406bb9d8534d43b2c0d8c:fdc46223ac70aab887f92339bd388aae:4db8b375066b8984bad6ce8eed9a5f6f$" + } +} diff --git a/public/images/pokemon/back/890-eternamax.png b/public/images/pokemon/back/890-eternamax.png new file mode 100644 index 00000000000..10391ae475f Binary files /dev/null and b/public/images/pokemon/back/890-eternamax.png differ diff --git a/public/images/pokemon/back/890.json b/public/images/pokemon/back/890.json new file mode 100644 index 00000000000..0cede85090b --- /dev/null +++ b/public/images/pokemon/back/890.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "890.png", + "format": "RGBA8888", + "size": { + "w": 96, + "h": 87 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 96, + "h": 96 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 96, + "h": 87 + }, + "frame": { + "x": 0, + "y": 0, + "w": 96, + "h": 87 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:68cea60de1e85909e966a17ef70e474d:3d6d6ced53d515306034265d2b15d017:cedd2711a12bbacba5623505fe88bd92$" + } +} diff --git a/public/images/pokemon/back/890.png b/public/images/pokemon/back/890.png new file mode 100644 index 00000000000..c3e5593701d Binary files /dev/null and b/public/images/pokemon/back/890.png differ diff --git a/public/images/pokemon/back/shiny/890-eternamax.json b/public/images/pokemon/back/shiny/890-eternamax.json new file mode 100644 index 00000000000..e9e6baf63c3 --- /dev/null +++ b/public/images/pokemon/back/shiny/890-eternamax.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "890-eternamax.png", + "format": "RGBA8888", + "size": { + "w": 90, + "h": 93 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 96, + "h": 96 + }, + "spriteSourceSize": { + "x": 3, + "y": 1, + "w": 90, + "h": 93 + }, + "frame": { + "x": 0, + "y": 0, + "w": 90, + "h": 93 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:10f5965fa457e5969925a13356a353e5:66f41100f21673db5180345da7afaaaf:4db8b375066b8984bad6ce8eed9a5f6f$" + } +} diff --git a/public/images/pokemon/back/shiny/890-eternamax.png b/public/images/pokemon/back/shiny/890-eternamax.png new file mode 100644 index 00000000000..760ee872303 Binary files /dev/null and b/public/images/pokemon/back/shiny/890-eternamax.png differ diff --git a/public/images/pokemon/back/shiny/890.json b/public/images/pokemon/back/shiny/890.json new file mode 100644 index 00000000000..7f0816a8247 --- /dev/null +++ b/public/images/pokemon/back/shiny/890.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "890.png", + "format": "RGBA8888", + "size": { + "w": 96, + "h": 87 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 96, + "h": 96 + }, + "spriteSourceSize": { + "x": 0, + "y": 4, + "w": 96, + "h": 87 + }, + "frame": { + "x": 0, + "y": 0, + "w": 96, + "h": 87 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:9990f3acdbb206c8c845aa2543caadfd:7fb6e5e61638e70cf23c6cfade157826:cedd2711a12bbacba5623505fe88bd92$" + } +} diff --git a/public/images/pokemon/back/shiny/890.png b/public/images/pokemon/back/shiny/890.png new file mode 100644 index 00000000000..1689401a17d Binary files /dev/null and b/public/images/pokemon/back/shiny/890.png differ diff --git a/public/images/pokemon/shiny/890-eternamax.json b/public/images/pokemon/shiny/890-eternamax.json new file mode 100644 index 00000000000..a6acc7b8ba1 --- /dev/null +++ b/public/images/pokemon/shiny/890-eternamax.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "890-eternamax.png", + "format": "RGBA8888", + "size": { + "w": 96, + "h": 96 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 96, + "h": 96 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 96, + "h": 96 + }, + "frame": { + "x": 0, + "y": 0, + "w": 96, + "h": 96 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:0cac0dd79f7ca3a2c1898bd0fe75b738:8407b6d20dfa128fb562fb521b0ce248:4db8b375066b8984bad6ce8eed9a5f6f$" + } +} diff --git a/public/images/pokemon/shiny/890-eternamax.png b/public/images/pokemon/shiny/890-eternamax.png new file mode 100644 index 00000000000..d12db471db0 Binary files /dev/null and b/public/images/pokemon/shiny/890-eternamax.png differ diff --git a/public/images/pokemon/shiny/890.json b/public/images/pokemon/shiny/890.json new file mode 100644 index 00000000000..15d4be50370 --- /dev/null +++ b/public/images/pokemon/shiny/890.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "890.png", + "format": "RGBA8888", + "size": { + "w": 92, + "h": 88 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 96, + "h": 96 + }, + "spriteSourceSize": { + "x": 2, + "y": 4, + "w": 92, + "h": 88 + }, + "frame": { + "x": 0, + "y": 0, + "w": 92, + "h": 88 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:15403e46a7a5b364c2a2147d4eb7d7c3:2e867b4ea704cf035cb5af056c17a9c3:cedd2711a12bbacba5623505fe88bd92$" + } +} diff --git a/public/images/pokemon/shiny/890.png b/public/images/pokemon/shiny/890.png new file mode 100644 index 00000000000..d2d3d396421 Binary files /dev/null and b/public/images/pokemon/shiny/890.png differ diff --git a/src/battle-phases.ts b/src/battle-phases.ts index 82f4402aec9..e8d317eaec3 100644 --- a/src/battle-phases.ts +++ b/src/battle-phases.ts @@ -30,6 +30,7 @@ import { Unlockables, getUnlockableName } from "./system/unlockables"; import { getBiomeKey } from "./arena"; import { BattleType, BattlerIndex, TurnCommand } from "./battle"; import { GameMode } from "./game-mode"; +import { Species } from "./data/species"; export class CheckLoadPhase extends BattlePhase { private loaded: boolean; @@ -253,6 +254,9 @@ export class EncounterPhase extends BattlePhase { this.scene.gameData.setPokemonSeen(enemyPokemon); } + if (this.scene.gameMode === GameMode.CLASSIC && battle.waveIndex === 200 && enemyPokemon.species.speciesId === Species.ETERNATUS) + enemyPokemon.formIndex = 1; + loadEnemyAssets.push(enemyPokemon.loadAssets()); console.log(enemyPokemon.species.name, enemyPokemon.species.speciesId, enemyPokemon.stats); diff --git a/src/battle.ts b/src/battle.ts index d639b625adb..de0cbc2c269 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -184,6 +184,6 @@ export const fixedBattles: FixedBattleConfigs = { .setGetTrainerFunc(scene => new Trainer(scene, TrainerType.CAITLIN)), [190]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) .setGetTrainerFunc(scene => new Trainer(scene, Phaser.Math.RND.pick([ TrainerType.BLUE, TrainerType.RED, TrainerType.LANCE, TrainerType.STEVEN, TrainerType.WALLACE, TrainerType.CYNTHIA, TrainerType.IRIS, TrainerType.ALDER, TrainerType.CYNTHIA ]))), - [199]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) + [195]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) .setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_6, true)) } \ No newline at end of file diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 729d2a15ddf..822ae06423b 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -142,8 +142,11 @@ export abstract class PokemonSpeciesForm { getCryKey(formIndex?: integer): string { let ret = this.speciesId.toString(); const forms = getPokemonSpecies(this.speciesId).forms; - if (forms.length && forms[formIndex || 0].formKey === 'mega') - ret += '-mega'; + if (forms.length) { + const formKey = forms[formIndex || 0].formKey; + if (formKey === 'mega' || formKey === 'eternamax') + ret += `-${formKey}`; + } return ret; } @@ -1115,7 +1118,9 @@ export function initSpecies() { new PokemonSpecies(Species.GENESECT, "Genesect", 5, false, false, true, "Paleozoic Pokémon", Type.BUG, Type.STEEL, 1.5, 82.5, Abilities.DOWNLOAD, Abilities.NONE, Abilities.NONE, 600, 71, 120, 95, 120, 95, 99, 3, 0, 270, GrowthRate.SLOW, "Undiscovered", null, null, 120, false), new PokemonSpecies(Species.XERNEAS, "Xerneas", 6, false, true, false, "Life Pokémon", Type.FAIRY, null, 3, 215, Abilities.FAIRY_AURA, Abilities.NONE, Abilities.NONE, 680, 126, 131, 95, 131, 98, 99, 45, 0, 306, GrowthRate.SLOW, "Undiscovered", null, null, 120, false), new PokemonSpecies(Species.YVELTAL, "Yveltal", 6, false, true, false, "Destruction Pokémon", Type.DARK, Type.FLYING, 5.8, 203, Abilities.DARK_AURA, Abilities.NONE, Abilities.NONE, 680, 126, 131, 95, 131, 98, 99, 45, 0, 306, GrowthRate.SLOW, "Undiscovered", null, null, 120, false), - new PokemonSpecies(Species.ETERNATUS, 'Eternatus', 8, false, true, false, 'Gigantic Pokemon', Type.POISON, Type.DRAGON, 20, 950, Abilities.PRESSURE, Abilities.NONE, Abilities.NONE, 690, 140, 85, 95, 145, 95, 130, 255, 0, 345, GrowthRate.SLOW, "Undiscovered", null, null, 120, false, false) + new PokemonSpecies(Species.ETERNATUS, "Eternatus", 8, false, true, false, "Gigantic Pokemon", Type.POISON, Type.DRAGON, 20, 950, Abilities.PRESSURE, Abilities.NONE, Abilities.NONE, 690, 140, 85, 95, 145, 95, 130, 255, 0, 345, GrowthRate.SLOW, "Undiscovered", null, null, 120, false, false, + new PokemonForm("Normal", "", Type.POISON, Type.DRAGON, 20, 950, Abilities.PRESSURE, Abilities.NONE, Abilities.NONE, 690, 140, 85, 95, 145, 95, 130, 255, 0, 345, GrowthRate.SLOW, "Undiscovered", null, null, 120, false), + new PokemonForm("Eternamax", "eternamax", Type.POISON, Type.DRAGON, 100, 950, Abilities.PRESSURE, Abilities.NONE, Abilities.NONE, 1125, 255, 115, 250, 125, 250, 130, 255, 0, 345, GrowthRate.SLOW, "Undiscovered", null, null, 120, false)) ); }