mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-06-30 05:22:44 +02:00
* Commit old stashed changes * Complete basic implementation of Tera * Fix effectiveness test * Make tera retain until forced recall or faint, regain on biome change * Experimental sparkle fix * Fix champion teras * Attempted fix for double battles tera UI bug * Fix the fix * Fix linting and test issues * Fix more tests * Change int type * Implement tera for ME trainers * Cleanup species inclusivity check * Make tera instant recharge if terapagos in party * Make useless tera shards not generate * Implement stellar tera damage boost * Improve tera selection UI * Tidy up animation and localisation * Improve tera button sprite * Fix Lance tera * Make tera instant recharge during E4 in classic modes. * Fix formatting in the tera common animation The animation was also not playing due to `frameTimedEvents` being missing as well. * Make tera effect start after animation * Implement save migration * Update version number for migration code --------- Co-authored-by: Madmadness65 <blaze.the.fireman@gmail.com> Co-authored-by: Madmadness65 <59298170+Madmadness65@users.noreply.github.com>
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import type Pokemon from "#app/field/pokemon";
|
|
import { getPokemonNameWithAffix } from "#app/messages";
|
|
import { BattlePhase } from "./battle-phase";
|
|
import i18next from "i18next";
|
|
import { globalScene } from "#app/global-scene";
|
|
import { Type } from "#app/enums/type";
|
|
import { achvs } from "#app/system/achv";
|
|
import { SpeciesFormChangeTeraTrigger } from "#app/data/pokemon-forms";
|
|
import { CommonAnim, CommonBattleAnim } from "#app/data/battle-anims";
|
|
|
|
export class TeraPhase extends BattlePhase {
|
|
public pokemon: Pokemon;
|
|
|
|
constructor(pokemon: Pokemon) {
|
|
super();
|
|
|
|
this.pokemon = pokemon;
|
|
}
|
|
|
|
start() {
|
|
super.start();
|
|
|
|
console.log(this.pokemon.name, "terastallized to", Type[this.pokemon.teraType].toString());
|
|
|
|
globalScene.queueMessage(i18next.t("battle:pokemonTerastallized", { pokemonNameWithAffix: getPokemonNameWithAffix(this.pokemon), type: i18next.t(`pokemonInfo:Type.${Type[this.pokemon.teraType]}`) }));
|
|
new CommonBattleAnim(CommonAnim.TERASTALLIZE, this.pokemon).play(false, () => {
|
|
this.end();
|
|
});
|
|
}
|
|
|
|
|
|
end() {
|
|
this.pokemon.isTerastallized = true;
|
|
this.pokemon.updateSpritePipelineData();
|
|
|
|
if (this.pokemon.isPlayer()) {
|
|
globalScene.arena.playerTerasUsed += 1;
|
|
}
|
|
|
|
globalScene.triggerPokemonFormChange(this.pokemon, SpeciesFormChangeTeraTrigger);
|
|
|
|
if (this.pokemon.isPlayer()) {
|
|
globalScene.validateAchv(achvs.TERASTALLIZE);
|
|
if (this.pokemon.teraType === Type.STELLAR) {
|
|
globalScene.validateAchv(achvs.STELLAR_TERASTALLIZE);
|
|
}
|
|
}
|
|
|
|
super.end();
|
|
}
|
|
}
|