mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-05 16:02:20 +02:00
Merge branch 'pagefaultgames:main' into main
This commit is contained in:
commit
1fdbe39758
1
.gitignore
vendored
1
.gitignore
vendored
@ -33,5 +33,6 @@ public/images/pokemon/icons/input/output/*
|
||||
public/images/character/*/
|
||||
src/data/battle-anim-raw-data*.ts
|
||||
src/data/battle-anim-data.ts
|
||||
src/overrides.ts
|
||||
|
||||
coverage
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
@ -60,25 +60,10 @@ import { SceneBase } from './scene-base';
|
||||
import CandyBar from './ui/candy-bar';
|
||||
import { Variant, variantData } from './data/variant';
|
||||
import { Localizable } from './plugins/i18n';
|
||||
import { STARTING_WAVE_OVERRIDE, OPP_SPECIES_OVERRIDE, SEED_OVERRIDE, STARTING_BIOME_OVERRIDE } from './overrides';
|
||||
|
||||
export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1";
|
||||
|
||||
export const SEED_OVERRIDE = '';
|
||||
export const STARTER_SPECIES_OVERRIDE = 0;
|
||||
export const STARTER_FORM_OVERRIDE = 0;
|
||||
export const STARTING_LEVEL_OVERRIDE = 0;
|
||||
export const STARTING_WAVE_OVERRIDE = 0;
|
||||
export const STARTING_BIOME_OVERRIDE = Biome.TOWN;
|
||||
export const STARTING_MONEY_OVERRIDE = 0;
|
||||
|
||||
export const ABILITY_OVERRIDE = Abilities.NONE;
|
||||
export const MOVE_OVERRIDE = Moves.NONE;
|
||||
export const OPP_SPECIES_OVERRIDE = 0;
|
||||
export const OPP_ABILITY_OVERRIDE = Abilities.NONE;
|
||||
export const OPP_MOVE_OVERRIDE = Moves.NONE;
|
||||
export const OPP_SHINY_OVERRIDE = false;
|
||||
export const OPP_VARIANT_OVERRIDE = 0;
|
||||
|
||||
const DEBUG_RNG = false;
|
||||
|
||||
export const startingWave = STARTING_WAVE_OVERRIDE || 1;
|
||||
@ -1056,6 +1041,8 @@ export default class BattleScene extends SceneBase {
|
||||
case Species.BASCULIN:
|
||||
case Species.DEERLING:
|
||||
case Species.SAWSBUCK:
|
||||
case Species.FROAKIE:
|
||||
case Species.FROGADIER:
|
||||
case Species.VIVILLON:
|
||||
case Species.FLABEBE:
|
||||
case Species.FLOETTE:
|
||||
@ -1066,6 +1053,10 @@ export default class BattleScene extends SceneBase {
|
||||
case Species.TATSUGIRI:
|
||||
case Species.PALDEA_TAUROS:
|
||||
return Utils.randSeedInt(species.forms.length);
|
||||
case Species.GRENINJA:
|
||||
return Utils.randSeedInt(2);
|
||||
case Species.ZYGARDE:
|
||||
return Utils.randSeedInt(3);
|
||||
case Species.MINIOR:
|
||||
return Utils.randSeedInt(6);
|
||||
case Species.ALCREMIE:
|
||||
|
@ -1148,6 +1148,26 @@ class PostVictoryStatChangeAbAttr extends PostVictoryAbAttr {
|
||||
}
|
||||
}
|
||||
|
||||
export class PostVictoryFormChangeAbAttr extends PostVictoryAbAttr {
|
||||
private formFunc: (p: Pokemon) => integer;
|
||||
|
||||
constructor(formFunc: ((p: Pokemon) => integer)) {
|
||||
super(true);
|
||||
|
||||
this.formFunc = formFunc;
|
||||
}
|
||||
|
||||
applyPostVictory(pokemon: Pokemon, passive: boolean, args: any[]): boolean | Promise<boolean> {
|
||||
const formIndex = this.formFunc(pokemon);
|
||||
if (formIndex !== pokemon.formIndex) {
|
||||
pokemon.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeManualTrigger, false);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export class PostKnockOutAbAttr extends AbAttr {
|
||||
applyPostKnockOut(pokemon: Pokemon, passive: boolean, knockedOut: Pokemon, args: any[]): boolean | Promise<boolean> {
|
||||
return false;
|
||||
@ -3067,17 +3087,21 @@ export function initAbilities() {
|
||||
.ignorable()
|
||||
.partial(),
|
||||
new Ability(Abilities.BATTLE_BOND, 7)
|
||||
.attr(PostVictoryFormChangeAbAttr, p => p.getFormKey() ? 2 : 1)
|
||||
.attr(UncopiableAbilityAbAttr)
|
||||
.attr(UnswappableAbilityAbAttr)
|
||||
.attr(UnsuppressableAbilityAbAttr)
|
||||
.attr(NoFusionAbilityAbAttr)
|
||||
.unimplemented(),
|
||||
new Ability(Abilities.POWER_CONSTRUCT, 7)
|
||||
.partial(),
|
||||
new Ability(Abilities.POWER_CONSTRUCT, 7) // TODO: 10% Power Construct Zygarde isn't accounted for yet. If changed, update Zygarde's getSpeciesFormIndex entry accordingly
|
||||
.attr(PostBattleInitFormChangeAbAttr, p => p.getHpRatio() <= 0.5 ? 4 : 2)
|
||||
.attr(PostSummonFormChangeAbAttr, p => p.getHpRatio() <= 0.5 ? 4 : 2)
|
||||
.attr(PostTurnFormChangeAbAttr, p => p.getHpRatio() <= 0.5 ? 4 : 2)
|
||||
.attr(UncopiableAbilityAbAttr)
|
||||
.attr(UnswappableAbilityAbAttr)
|
||||
.attr(UnsuppressableAbilityAbAttr)
|
||||
.attr(NoFusionAbilityAbAttr)
|
||||
.unimplemented(),
|
||||
.partial(),
|
||||
new Ability(Abilities.CORROSION, 7)
|
||||
.unimplemented(),
|
||||
new Ability(Abilities.COMATOSE, 7)
|
||||
|
@ -62,7 +62,7 @@ export const speciesEggMoves = {
|
||||
[Species.MAGIKARP]: [ Moves.FLIP_TURN, Moves.ICE_SPINNER, Moves.LIQUIDATION, Moves.DRAGON_ASCENT ],
|
||||
[Species.LAPRAS]: [ Moves.RECOVER, Moves.FREEZE_DRY, Moves.CHILLY_RECEPTION, Moves.BOOMBURST ],
|
||||
[Species.DITTO]: [ Moves.MIMIC, Moves.COPYCAT, Moves.ME_FIRST, Moves.METRONOME ],
|
||||
[Species.EEVEE]: [ Moves.WISH, Moves.REVELATION_DANCE, Moves.SIZZLY_SLIDE, Moves.NO_RETREAT ],
|
||||
[Species.EEVEE]: [ Moves.WISH, Moves.REVELATION_DANCE, Moves.TRI_ATTACK, Moves.NO_RETREAT ],
|
||||
[Species.PORYGON]: [ Moves.BUZZY_BUZZ, Moves.AURA_SPHERE, Moves.TOPSY_TURVY, Moves.TECHNO_BLAST ],
|
||||
[Species.OMANYTE]: [ Moves.SCALD, Moves.EARTH_POWER, Moves.POWER_GEM, Moves.STRENGTH_SAP ],
|
||||
[Species.KABUTO]: [ Moves.CEASELESS_EDGE, Moves.DRILL_RUN, Moves.AQUA_CUTTER, Moves.MIGHTY_CLEAVE ],
|
||||
@ -81,7 +81,7 @@ export const speciesEggMoves = {
|
||||
[Species.LEDYBA]: [ Moves.POLLEN_PUFF, Moves.THIEF, Moves.PARTING_SHOT, Moves.SPORE ],
|
||||
[Species.SPINARAK]: [ Moves.PARTING_SHOT, Moves.MEGAHORN, Moves.SILK_TRAP, Moves.STRENGTH_SAP ],
|
||||
[Species.CHINCHOU]: [ Moves.THUNDERCLAP, Moves.BOUNCY_BUBBLE, Moves.VOLT_SWITCH, Moves.TAIL_GLOW ],
|
||||
[Species.PICHU]: [ Moves.PIKA_PAPOW, Moves.SPLISHY_SPLASH, Moves.FLOATY_FALL, Moves.ZIPPY_ZAP ],
|
||||
[Species.PICHU]: [ Moves.THUNDERCLAP, Moves.SPLISHY_SPLASH, Moves.FLOATY_FALL, Moves.THUNDER_CAGE ],
|
||||
[Species.CLEFFA]: [ Moves.TAKE_HEART, Moves.POWER_GEM, Moves.WISH, Moves.LIGHT_OF_RUIN ],
|
||||
[Species.IGGLYBUFF]: [ Moves.MOONBLAST, Moves.APPLE_ACID, Moves.WISH, Moves.BOOMBURST ],
|
||||
[Species.TOGEPI]: [ Moves.SCORCHING_SANDS, Moves.ROOST, Moves.MOONBLAST, Moves.FIERY_DANCE ],
|
||||
|
@ -542,11 +542,21 @@ export const pokemonFormChanges: PokemonFormChanges = {
|
||||
new SpeciesFormChange(Species.MELOETTA, 'pirouette', 'aria', new SpeciesFormChangePostMoveTrigger(Moves.RELIC_SONG), true),
|
||||
new SpeciesFormChange(Species.MELOETTA, 'pirouette', 'aria', new SpeciesFormChangeActiveTrigger(false), true)
|
||||
],
|
||||
[Species.GRENINJA]: [
|
||||
new SpeciesFormChange(Species.GRENINJA, 'battle-bond', 'ash', new SpeciesFormChangeManualTrigger(), true),
|
||||
new SpeciesFormChange(Species.GRENINJA, 'ash', 'battle-bond', new SpeciesFormChangeManualTrigger(), true)
|
||||
],
|
||||
[Species.AEGISLASH]: [
|
||||
new SpeciesFormChange(Species.AEGISLASH, 'blade', 'shield', new SpeciesFormChangePreMoveTrigger(Moves.KINGS_SHIELD), true, new SpeciesFormChangeCondition(p => p.hasAbility(Abilities.STANCE_CHANGE))),
|
||||
new SpeciesFormChange(Species.AEGISLASH, 'shield', 'blade', new SpeciesFormChangePreMoveTrigger(m => allMoves[m].category !== MoveCategory.STATUS), true, new SpeciesFormChangeCondition(p => p.hasAbility(Abilities.STANCE_CHANGE))),
|
||||
new SpeciesFormChange(Species.AEGISLASH, 'blade', 'shield', new SpeciesFormChangeActiveTrigger(false), true)
|
||||
],
|
||||
[Species.ZYGARDE]: [
|
||||
new SpeciesFormChange(Species.ZYGARDE, '50-pc', 'complete', new SpeciesFormChangeManualTrigger(), true),
|
||||
new SpeciesFormChange(Species.ZYGARDE, 'complete', '50-pc', new SpeciesFormChangeManualTrigger(), true),
|
||||
new SpeciesFormChange(Species.ZYGARDE, '10-pc', 'complete', new SpeciesFormChangeManualTrigger(), true),
|
||||
new SpeciesFormChange(Species.ZYGARDE, 'complete', '10-pc', new SpeciesFormChangeManualTrigger(), true)
|
||||
],
|
||||
[Species.DIANCIE]: [
|
||||
new SpeciesFormChange(Species.DIANCIE, '', SpeciesFormKey.MEGA, new SpeciesFormChangeItemTrigger(FormChangeItem.DIANCITE))
|
||||
],
|
||||
|
@ -396,9 +396,10 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 36, Moves.THUNDERBOLT ],
|
||||
[ 40, Moves.LIGHT_SCREEN ],
|
||||
[ 44, Moves.THUNDER ],
|
||||
[ 48, Moves.PIKA_PAPOW ],
|
||||
],
|
||||
[Species.RAICHU]: [
|
||||
[ 0, Moves.THUNDER_PUNCH ],
|
||||
[ 0, Moves.ZIPPY_ZAP ],
|
||||
[ 1, Moves.TAIL_WHIP ],
|
||||
[ 1, Moves.GROWL ],
|
||||
[ 1, Moves.THUNDER_SHOCK ],
|
||||
@ -418,7 +419,9 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 1, Moves.ELECTRO_BALL ],
|
||||
[ 1, Moves.PLAY_NICE ],
|
||||
[ 1, Moves.NUZZLE ],
|
||||
[ 1, Moves.THUNDER_PUNCH ],
|
||||
[ 5, Moves.THUNDERBOLT ],
|
||||
[ 50, Moves.PIKA_PAPOW ],
|
||||
],
|
||||
[Species.SANDSHREW]: [
|
||||
[ 1, Moves.SCRATCH ],
|
||||
@ -2231,9 +2234,10 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 45, Moves.CHARM ],
|
||||
[ 50, Moves.DOUBLE_EDGE ],
|
||||
[ 55, Moves.LAST_RESORT ],
|
||||
[ 60, Moves.VEEVEE_VOLLEY ],
|
||||
],
|
||||
[Species.VAPOREON]: [
|
||||
[ 0, Moves.WATER_GUN ],
|
||||
[ 0, Moves.BOUNCY_BUBBLE ],
|
||||
[ 1, Moves.TACKLE ],
|
||||
[ 1, Moves.TAKE_DOWN ],
|
||||
[ 1, Moves.DOUBLE_EDGE ],
|
||||
@ -2247,19 +2251,20 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 1, Moves.COVET ],
|
||||
[ 1, Moves.COPYCAT ],
|
||||
[ 5, Moves.SAND_ATTACK ],
|
||||
[ 10, Moves.QUICK_ATTACK ],
|
||||
[ 15, Moves.BABY_DOLL_EYES ],
|
||||
[ 20, Moves.HAZE ],
|
||||
[ 25, Moves.WATER_PULSE ],
|
||||
[ 30, Moves.AURORA_BEAM ],
|
||||
[ 35, Moves.AQUA_RING ],
|
||||
[ 40, Moves.MUDDY_WATER ],
|
||||
[ 45, Moves.ACID_ARMOR ],
|
||||
[ 50, Moves.HYDRO_PUMP ],
|
||||
[ 55, Moves.LAST_RESORT ],
|
||||
[ 10, Moves.WATER_GUN ],
|
||||
[ 15, Moves.QUICK_ATTACK ],
|
||||
[ 20, Moves.BABY_DOLL_EYES ],
|
||||
[ 25, Moves.HAZE ],
|
||||
[ 30, Moves.WATER_PULSE ],
|
||||
[ 35, Moves.AURORA_BEAM ],
|
||||
[ 40, Moves.AQUA_RING ],
|
||||
[ 45, Moves.MUDDY_WATER ],
|
||||
[ 50, Moves.ACID_ARMOR ],
|
||||
[ 55, Moves.HYDRO_PUMP ],
|
||||
[ 60, Moves.LAST_RESORT ],
|
||||
],
|
||||
[Species.JOLTEON]: [
|
||||
[ 0, Moves.THUNDER_SHOCK ],
|
||||
[ 0, Moves.BUZZY_BUZZ ],
|
||||
[ 1, Moves.TACKLE ],
|
||||
[ 1, Moves.TAKE_DOWN ],
|
||||
[ 1, Moves.DOUBLE_EDGE ],
|
||||
@ -2273,19 +2278,20 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 1, Moves.COVET ],
|
||||
[ 1, Moves.COPYCAT ],
|
||||
[ 5, Moves.SAND_ATTACK ],
|
||||
[ 10, Moves.QUICK_ATTACK ],
|
||||
[ 15, Moves.BABY_DOLL_EYES ],
|
||||
[ 20, Moves.THUNDER_WAVE ],
|
||||
[ 25, Moves.DOUBLE_KICK ],
|
||||
[ 30, Moves.THUNDER_FANG ],
|
||||
[ 35, Moves.PIN_MISSILE ],
|
||||
[ 40, Moves.DISCHARGE ],
|
||||
[ 45, Moves.AGILITY ],
|
||||
[ 50, Moves.THUNDER ],
|
||||
[ 55, Moves.LAST_RESORT ],
|
||||
[ 10, Moves.THUNDER_SHOCK ],
|
||||
[ 15, Moves.QUICK_ATTACK ],
|
||||
[ 20, Moves.BABY_DOLL_EYES ],
|
||||
[ 25, Moves.THUNDER_WAVE ],
|
||||
[ 30, Moves.DOUBLE_KICK ],
|
||||
[ 35, Moves.THUNDER_FANG ],
|
||||
[ 40, Moves.PIN_MISSILE ],
|
||||
[ 45, Moves.DISCHARGE ],
|
||||
[ 50, Moves.AGILITY ],
|
||||
[ 55, Moves.THUNDER ],
|
||||
[ 60, Moves.LAST_RESORT ],
|
||||
],
|
||||
[Species.FLAREON]: [
|
||||
[ 0, Moves.EMBER ],
|
||||
[ 0, Moves.SIZZLY_SLIDE ],
|
||||
[ 1, Moves.TACKLE ],
|
||||
[ 1, Moves.TAKE_DOWN ],
|
||||
[ 1, Moves.DOUBLE_EDGE ],
|
||||
@ -2298,16 +2304,17 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 1, Moves.COVET ],
|
||||
[ 1, Moves.COPYCAT ],
|
||||
[ 5, Moves.SAND_ATTACK ],
|
||||
[ 10, Moves.QUICK_ATTACK ],
|
||||
[ 15, Moves.BABY_DOLL_EYES ],
|
||||
[ 20, Moves.SMOG ],
|
||||
[ 25, Moves.BITE ],
|
||||
[ 30, Moves.FIRE_FANG ],
|
||||
[ 35, Moves.FIRE_SPIN ],
|
||||
[ 40, Moves.LAVA_PLUME ],
|
||||
[ 45, Moves.SCARY_FACE ],
|
||||
[ 50, Moves.FLARE_BLITZ ],
|
||||
[ 55, Moves.LAST_RESORT ],
|
||||
[ 10, Moves.EMBER ],
|
||||
[ 15, Moves.QUICK_ATTACK ],
|
||||
[ 20, Moves.BABY_DOLL_EYES ],
|
||||
[ 25, Moves.SMOG ],
|
||||
[ 30, Moves.BITE ],
|
||||
[ 35, Moves.FIRE_FANG ],
|
||||
[ 40, Moves.FIRE_SPIN ],
|
||||
[ 45, Moves.LAVA_PLUME ],
|
||||
[ 50, Moves.SCARY_FACE ],
|
||||
[ 55, Moves.FLARE_BLITZ ],
|
||||
[ 60, Moves.LAST_RESORT ],
|
||||
],
|
||||
[Species.PORYGON]: [
|
||||
[ 1, Moves.TACKLE ],
|
||||
@ -3325,7 +3332,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 52, Moves.EARTHQUAKE ],
|
||||
],
|
||||
[Species.ESPEON]: [
|
||||
[ 0, Moves.CONFUSION ],
|
||||
[ 0, Moves.GLITZY_GLOW ],
|
||||
[ 1, Moves.TACKLE ],
|
||||
[ 1, Moves.TAKE_DOWN ],
|
||||
[ 1, Moves.DOUBLE_EDGE ],
|
||||
@ -3338,19 +3345,20 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 1, Moves.COVET ],
|
||||
[ 1, Moves.COPYCAT ],
|
||||
[ 5, Moves.SAND_ATTACK ],
|
||||
[ 10, Moves.QUICK_ATTACK ],
|
||||
[ 15, Moves.BABY_DOLL_EYES ],
|
||||
[ 20, Moves.SWIFT ],
|
||||
[ 25, Moves.PSYBEAM ],
|
||||
[ 30, Moves.MORNING_SUN ],
|
||||
[ 35, Moves.POWER_SWAP ],
|
||||
[ 40, Moves.PSYCHIC ],
|
||||
[ 45, Moves.PSYCH_UP ],
|
||||
[ 50, Moves.FUTURE_SIGHT ],
|
||||
[ 55, Moves.LAST_RESORT ],
|
||||
[ 10, Moves.CONFUSION ],
|
||||
[ 15, Moves.QUICK_ATTACK ],
|
||||
[ 20, Moves.BABY_DOLL_EYES ],
|
||||
[ 25, Moves.SWIFT ],
|
||||
[ 30, Moves.PSYBEAM ],
|
||||
[ 35, Moves.MORNING_SUN ],
|
||||
[ 40, Moves.POWER_SWAP ],
|
||||
[ 45, Moves.PSYCHIC ],
|
||||
[ 50, Moves.PSYCH_UP ],
|
||||
[ 55, Moves.FUTURE_SIGHT ],
|
||||
[ 60, Moves.LAST_RESORT ],
|
||||
],
|
||||
[Species.UMBREON]: [
|
||||
[ 0, Moves.SNARL ],
|
||||
[ 0, Moves.BADDY_BAD ],
|
||||
[ 1, Moves.TACKLE ],
|
||||
[ 1, Moves.TAKE_DOWN ],
|
||||
[ 1, Moves.DOUBLE_EDGE ],
|
||||
@ -3364,16 +3372,17 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 1, Moves.COVET ],
|
||||
[ 1, Moves.COPYCAT ],
|
||||
[ 5, Moves.SAND_ATTACK ],
|
||||
[ 10, Moves.QUICK_ATTACK ],
|
||||
[ 15, Moves.BABY_DOLL_EYES ],
|
||||
[ 20, Moves.CONFUSE_RAY ],
|
||||
[ 25, Moves.ASSURANCE ],
|
||||
[ 30, Moves.MOONLIGHT ],
|
||||
[ 35, Moves.GUARD_SWAP ],
|
||||
[ 40, Moves.DARK_PULSE ],
|
||||
[ 45, Moves.SCREECH ],
|
||||
[ 50, Moves.MEAN_LOOK ],
|
||||
[ 55, Moves.LAST_RESORT ],
|
||||
[ 10, Moves.SNARL ],
|
||||
[ 15, Moves.QUICK_ATTACK ],
|
||||
[ 20, Moves.BABY_DOLL_EYES ],
|
||||
[ 25, Moves.CONFUSE_RAY ],
|
||||
[ 30, Moves.ASSURANCE ],
|
||||
[ 35, Moves.MOONLIGHT ],
|
||||
[ 40, Moves.GUARD_SWAP ],
|
||||
[ 45, Moves.DARK_PULSE ],
|
||||
[ 50, Moves.SCREECH ],
|
||||
[ 55, Moves.MEAN_LOOK ],
|
||||
[ 60, Moves.LAST_RESORT ],
|
||||
],
|
||||
[Species.MURKROW]: [
|
||||
[ 1, Moves.PECK ],
|
||||
@ -5586,7 +5595,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[Species.SPINDA]: [
|
||||
[ 1, Moves.TACKLE ],
|
||||
[ 5, Moves.COPYCAT ],
|
||||
[ 10, Moves.TEETER_DANCE ],
|
||||
[ 10, Moves.DIZZY_PUNCH ],
|
||||
[ 14, Moves.PSYBEAM ],
|
||||
[ 19, Moves.HYPNOSIS ],
|
||||
[ 23, Moves.BODY_SLAM ],
|
||||
@ -7932,7 +7941,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 49, Moves.U_TURN ],
|
||||
],
|
||||
[Species.LEAFEON]: [
|
||||
[ 0, Moves.RAZOR_LEAF ],
|
||||
[ 0, Moves.SAPPY_SEED ],
|
||||
[ 1, Moves.TACKLE ],
|
||||
[ 1, Moves.TAKE_DOWN ],
|
||||
[ 1, Moves.DOUBLE_EDGE ],
|
||||
@ -7946,19 +7955,20 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 1, Moves.COVET ],
|
||||
[ 1, Moves.COPYCAT ],
|
||||
[ 5, Moves.SAND_ATTACK ],
|
||||
[ 10, Moves.QUICK_ATTACK ],
|
||||
[ 15, Moves.BABY_DOLL_EYES ],
|
||||
[ 20, Moves.LEECH_SEED ],
|
||||
[ 25, Moves.MAGICAL_LEAF ],
|
||||
[ 30, Moves.SYNTHESIS ],
|
||||
[ 35, Moves.SUNNY_DAY ],
|
||||
[ 40, Moves.GIGA_DRAIN ],
|
||||
[ 45, Moves.SWORDS_DANCE ],
|
||||
[ 50, Moves.LEAF_BLADE ],
|
||||
[ 55, Moves.LAST_RESORT ],
|
||||
[ 10, Moves.RAZOR_LEAF ],
|
||||
[ 15, Moves.QUICK_ATTACK ],
|
||||
[ 20, Moves.BABY_DOLL_EYES ],
|
||||
[ 25, Moves.LEECH_SEED ],
|
||||
[ 30, Moves.MAGICAL_LEAF ],
|
||||
[ 35, Moves.SYNTHESIS ],
|
||||
[ 40, Moves.SUNNY_DAY ],
|
||||
[ 45, Moves.GIGA_DRAIN ],
|
||||
[ 50, Moves.SWORDS_DANCE ],
|
||||
[ 55, Moves.LEAF_BLADE ],
|
||||
[ 60, Moves.LAST_RESORT ],
|
||||
],
|
||||
[Species.GLACEON]: [
|
||||
[ 0, Moves.ICY_WIND ],
|
||||
[ 0, Moves.FREEZY_FROST ],
|
||||
[ 1, Moves.TACKLE ],
|
||||
[ 1, Moves.TAKE_DOWN ],
|
||||
[ 1, Moves.DOUBLE_EDGE ],
|
||||
@ -7971,16 +7981,17 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 1, Moves.COVET ],
|
||||
[ 1, Moves.COPYCAT ],
|
||||
[ 5, Moves.SAND_ATTACK ],
|
||||
[ 10, Moves.QUICK_ATTACK ],
|
||||
[ 15, Moves.BABY_DOLL_EYES ],
|
||||
[ 20, Moves.ICE_SHARD ],
|
||||
[ 25, Moves.BITE ],
|
||||
[ 30, Moves.ICE_FANG ],
|
||||
[ 35, Moves.SNOWSCAPE ],
|
||||
[ 40, Moves.FREEZE_DRY ],
|
||||
[ 45, Moves.MIRROR_COAT ],
|
||||
[ 50, Moves.BLIZZARD ],
|
||||
[ 55, Moves.LAST_RESORT ],
|
||||
[ 10, Moves.ICY_WIND ],
|
||||
[ 15, Moves.QUICK_ATTACK ],
|
||||
[ 20, Moves.BABY_DOLL_EYES ],
|
||||
[ 25, Moves.ICE_SHARD ],
|
||||
[ 30, Moves.BITE ],
|
||||
[ 35, Moves.ICE_FANG ],
|
||||
[ 40, Moves.SNOWSCAPE ],
|
||||
[ 45, Moves.FREEZE_DRY ],
|
||||
[ 50, Moves.MIRROR_COAT ],
|
||||
[ 55, Moves.BLIZZARD ],
|
||||
[ 60, Moves.LAST_RESORT ],
|
||||
],
|
||||
[Species.GLISCOR]: [
|
||||
[ 1, Moves.SAND_ATTACK ],
|
||||
@ -11822,7 +11833,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 66, Moves.HYPER_BEAM ],
|
||||
],
|
||||
[Species.SYLVEON]: [
|
||||
[ 0, Moves.DISARMING_VOICE ],
|
||||
[ 0, Moves.SPARKLY_SWIRL ],
|
||||
[ 1, Moves.TACKLE ],
|
||||
[ 1, Moves.TAKE_DOWN ],
|
||||
[ 1, Moves.DOUBLE_EDGE ],
|
||||
@ -11835,16 +11846,17 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 1, Moves.COVET ],
|
||||
[ 1, Moves.COPYCAT ],
|
||||
[ 5, Moves.SAND_ATTACK ],
|
||||
[ 10, Moves.QUICK_ATTACK ],
|
||||
[ 15, Moves.BABY_DOLL_EYES ],
|
||||
[ 20, Moves.SWIFT ],
|
||||
[ 25, Moves.LIGHT_SCREEN ],
|
||||
[ 30, Moves.DRAINING_KISS ],
|
||||
[ 35, Moves.MISTY_TERRAIN ],
|
||||
[ 40, Moves.SKILL_SWAP ],
|
||||
[ 45, Moves.PSYCH_UP ],
|
||||
[ 50, Moves.MOONBLAST ],
|
||||
[ 55, Moves.LAST_RESORT ],
|
||||
[ 10, Moves.DISARMING_VOICE ],
|
||||
[ 15, Moves.QUICK_ATTACK ],
|
||||
[ 20, Moves.BABY_DOLL_EYES ],
|
||||
[ 25, Moves.SWIFT ],
|
||||
[ 30, Moves.LIGHT_SCREEN ],
|
||||
[ 35, Moves.DRAINING_KISS ],
|
||||
[ 40, Moves.MISTY_TERRAIN ],
|
||||
[ 45, Moves.SKILL_SWAP ],
|
||||
[ 50, Moves.PSYCH_UP ],
|
||||
[ 55, Moves.MOONBLAST ],
|
||||
[ 60, Moves.LAST_RESORT ],
|
||||
],
|
||||
[Species.HAWLUCHA]: [
|
||||
[ 1, Moves.TACKLE ],
|
||||
@ -17237,6 +17249,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
],
|
||||
[Species.ALOLA_RAICHU]: [
|
||||
[ 0, Moves.PSYCHIC ],
|
||||
[ 0, Moves.ZIPPY_ZAP ],
|
||||
[ 1, Moves.TAIL_WHIP ],
|
||||
[ 1, Moves.GROWL ],
|
||||
[ 1, Moves.THUNDER_SHOCK ],
|
||||
@ -17257,6 +17270,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||
[ 1, Moves.PLAY_NICE ],
|
||||
[ 1, Moves.NUZZLE ],
|
||||
[ 5, Moves.THUNDERBOLT ],
|
||||
[ 50, Moves.PIKA_PAPOW ],
|
||||
],
|
||||
[Species.ALOLA_SANDSHREW]: [
|
||||
[ 1, Moves.SCRATCH ],
|
||||
|
@ -1748,8 +1748,14 @@ export function initSpecies() {
|
||||
new PokemonSpecies(Species.FENNEKIN, 6, false, false, false, "Fox Pokémon", Type.FIRE, null, 0.4, 9.4, Abilities.BLAZE, Abilities.NONE, Abilities.MAGICIAN, 307, 40, 45, 40, 62, 60, 60, 45, 70, 61, GrowthRate.MEDIUM_SLOW, 87.5, false),
|
||||
new PokemonSpecies(Species.BRAIXEN, 6, false, false, false, "Fox Pokémon", Type.FIRE, null, 1, 14.5, Abilities.BLAZE, Abilities.NONE, Abilities.MAGICIAN, 409, 59, 59, 58, 90, 70, 73, 45, 70, 143, GrowthRate.MEDIUM_SLOW, 87.5, false),
|
||||
new PokemonSpecies(Species.DELPHOX, 6, false, false, false, "Fox Pokémon", Type.FIRE, Type.PSYCHIC, 1.5, 39, Abilities.BLAZE, Abilities.NONE, Abilities.MAGICIAN, 534, 75, 69, 72, 114, 100, 104, 45, 70, 240, GrowthRate.MEDIUM_SLOW, 87.5, false),
|
||||
new PokemonSpecies(Species.FROAKIE, 6, false, false, false, "Bubble Frog Pokémon", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63, GrowthRate.MEDIUM_SLOW, 87.5, false),
|
||||
new PokemonSpecies(Species.FROGADIER, 6, false, false, false, "Bubble Frog Pokémon", Type.WATER, null, 0.6, 10.9, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 405, 54, 63, 52, 83, 56, 97, 45, 70, 142, GrowthRate.MEDIUM_SLOW, 87.5, false),
|
||||
new PokemonSpecies(Species.FROAKIE, 6, false, false, false, "Bubble Frog Pokémon", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63, GrowthRate.MEDIUM_SLOW, 87.5, false, false,
|
||||
new PokemonForm("Normal", "", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63),
|
||||
new PokemonForm("Battle Bond", "battle-bond", Type.WATER, null, 0.3, 7, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 314, 41, 56, 40, 62, 44, 71, 45, 70, 63, false, ""),
|
||||
),
|
||||
new PokemonSpecies(Species.FROGADIER, 6, false, false, false, "Bubble Frog Pokémon", Type.WATER, null, 0.6, 10.9, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 405, 54, 63, 52, 83, 56, 97, 45, 70, 142, GrowthRate.MEDIUM_SLOW, 87.5, false, false,
|
||||
new PokemonForm("Normal", "", Type.WATER, null, 0.6, 10.9, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 405, 54, 63, 52, 83, 56, 97, 45, 70, 142),
|
||||
new PokemonForm("Battle Bond", "battle-bond", Type.WATER, null, 0.6, 10.9, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 405, 54, 63, 52, 83, 56, 97, 45, 70, 142, false, ""),
|
||||
),
|
||||
new PokemonSpecies(Species.GRENINJA, 6, false, false, false, "Ninja Pokémon", Type.WATER, Type.DARK, 1.5, 40, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 530, 72, 95, 67, 103, 71, 122, 45, 70, 239, GrowthRate.MEDIUM_SLOW, 87.5, false, false,
|
||||
new PokemonForm("Normal", "", Type.WATER, Type.DARK, 1.5, 40, Abilities.TORRENT, Abilities.NONE, Abilities.PROTEAN, 530, 72, 95, 67, 103, 71, 122, 45, 70, 239),
|
||||
new PokemonForm("Battle Bond", "battle-bond", Type.WATER, Type.DARK, 1.5, 40, Abilities.BATTLE_BOND, Abilities.NONE, Abilities.BATTLE_BOND, 530, 72, 95, 67, 103, 71, 122, 45, 70, 239, false, ""),
|
||||
|
@ -97,7 +97,7 @@ export const trainerNamePools = {
|
||||
[TrainerType.MAID]: ["Belinda","Sophie","Emily","Elena","Clare","Alica","Tanya","Tammy"],
|
||||
[TrainerType.MUSICIAN]: ["Boris","Preston","Charles","Clyde","Vincent","Dalton","Kirk","Shawn","Fabian","Fernando","Joseph","Marcos","Arturo","Jerry","Lonnie","Tony"],
|
||||
[TrainerType.NURSERY_AIDE]: ["Autumn","Briana","Leah","Miho","Ethel","Hollie","Ilse","June","Kimya","Rosalyn"],
|
||||
[TrainerType.OFFICER]: ["Dirk","Keith","Alex","Bobby","Caleb","Danny","Dylan","Thomas","Daniel","Jeff","Braven","Dell","Neagle","Haruki","Mitchell","Sheriff","Raymond"],
|
||||
[TrainerType.OFFICER]: ["Dirk","Keith","Alex","Bobby","Caleb","Danny","Dylan","Thomas","Daniel","Jeff","Braven","Dell","Neagle","Haruki","Mitchell","Raymond"],
|
||||
[TrainerType.PARASOL_LADY]: ["Angelica","Clarissa","Madeline","Akari","Annabell","Kayley","Rachel","Alexa","Sabrina","April","Gwyneth","Laura","Lumi","Mariah","Melita","Nicole","Tihana","Ingrid","Tyra"],
|
||||
[TrainerType.PILOT]: ["Chase","Leonard","Ted","Elron","Ewing","Flynn","Winslow"],
|
||||
[TrainerType.POKEFAN]: [["Alex","Allan","Brandon","Carter","Colin","Derek","Jeremy","Joshua","Rex","Robert","Trevor","William","Colton","Miguel","Francisco","Kaleb","Leonard","Boone","Elliot","Jude","Norbert","Corey","Gabe","Baxter"],["Beverly","Georgia","Jaime","Ruth","Isabel","Marissa","Vanessa","Annika","Bethany","Kimberly","Meredith","Rebekah","Eleanor","Darcy","Lydia","Sachiko","Abigail","Agnes","Lydie","Roisin","Tara","Carmen","Janet"]],
|
||||
|
@ -18,8 +18,7 @@ import { TimeOfDay } from "../data/enums/time-of-day";
|
||||
import { Terrain, TerrainType } from "../data/terrain";
|
||||
import { PostTerrainChangeAbAttr, PostWeatherChangeAbAttr, applyPostTerrainChangeAbAttrs, applyPostWeatherChangeAbAttrs } from "../data/ability";
|
||||
import Pokemon from "./pokemon";
|
||||
|
||||
const WEATHER_OVERRIDE = WeatherType.NONE;
|
||||
import { WEATHER_OVERRIDE } from '../overrides';
|
||||
|
||||
export class Arena {
|
||||
public scene: BattleScene;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import Phaser from 'phaser';
|
||||
import BattleScene, { ABILITY_OVERRIDE, AnySound, MOVE_OVERRIDE, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE, OPP_SHINY_OVERRIDE, OPP_VARIANT_OVERRIDE } from '../battle-scene';
|
||||
import BattleScene, { AnySound } from '../battle-scene';
|
||||
import { Variant, VariantSet, variantColorCache } from '#app/data/variant';
|
||||
import { variantData } from '#app/data/variant';
|
||||
import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from '../ui/battle-info';
|
||||
@ -43,6 +43,7 @@ import { Nature, getNatureStatMultiplier } from '../data/nature';
|
||||
import { SpeciesFormChange, SpeciesFormChangeActiveTrigger, SpeciesFormChangeMoveLearnedTrigger, SpeciesFormChangePostMoveTrigger, SpeciesFormChangeStatusEffectTrigger } from '../data/pokemon-forms';
|
||||
import { TerrainType } from '../data/terrain';
|
||||
import { TrainerSlot } from '../data/trainer-config';
|
||||
import { ABILITY_OVERRIDE, MOVE_OVERRIDE, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE, OPP_SHINY_OVERRIDE, OPP_VARIANT_OVERRIDE } from '../overrides';
|
||||
|
||||
export enum FieldPosition {
|
||||
CENTER,
|
||||
|
@ -1,10 +1,11 @@
|
||||
import { fixedBattles } from "./battle";
|
||||
import BattleScene, { STARTING_BIOME_OVERRIDE, STARTING_LEVEL_OVERRIDE, STARTING_MONEY_OVERRIDE } from "./battle-scene";
|
||||
import BattleScene from "./battle-scene";
|
||||
import { Biome } from "./data/enums/biome";
|
||||
import { Species } from "./data/enums/species";
|
||||
import PokemonSpecies, { allSpecies } from "./data/pokemon-species";
|
||||
import { Arena } from "./field/arena";
|
||||
import * as Utils from "./utils";
|
||||
import { STARTING_BIOME_OVERRIDE, STARTING_LEVEL_OVERRIDE, STARTING_MONEY_OVERRIDE } from './overrides';
|
||||
|
||||
export enum GameModes {
|
||||
CLASSIC,
|
||||
|
@ -59,4 +59,9 @@ export const menu: SimpleTranslationEntries = {
|
||||
"escapeVerbSwitch": "auswechseln",
|
||||
"escapeVerbFlee": "flucht",
|
||||
"notDisabled": "{{moveName}} ist\nnicht mehr deaktiviert!",
|
||||
"rankings": "Rankings",
|
||||
"dailyRankings": "Daily Rankings",
|
||||
"noRankings": "No Rankings",
|
||||
"loading": "Loading…",
|
||||
"playersOnline": "Players Online"
|
||||
} as const;
|
@ -78,4 +78,9 @@ export const menu: SimpleTranslationEntries = {
|
||||
"skipItemQuestion": "Are you sure you want to skip taking an item?",
|
||||
"eggHatching": "Oh?",
|
||||
"ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?",
|
||||
"rankings": "Rankings",
|
||||
"dailyRankings": "Daily Rankings",
|
||||
"noRankings": "No Rankings",
|
||||
"loading": "Loading…",
|
||||
"playersOnline": "Players Online"
|
||||
} as const;
|
@ -61,5 +61,10 @@ export const menu: SimpleTranslationEntries = {
|
||||
"notDisabled": "¡El movimiento {{moveName}}\nya no está anulado!",
|
||||
"skipItemQuestion": "¿Estás seguro de que no quieres coger un objeto?",
|
||||
"eggHatching": "¿Y esto?",
|
||||
"ivScannerUseQuestion": "¿Quieres usar el Escáner de IVs en {{pokemonName}}?"
|
||||
"ivScannerUseQuestion": "¿Quieres usar el Escáner de IVs en {{pokemonName}}?",
|
||||
"rankings": "Rankings",
|
||||
"dailyRankings": "Daily Rankings",
|
||||
"noRankings": "No Rankings",
|
||||
"loading": "Loading…",
|
||||
"playersOnline": "Players Online"
|
||||
} as const;
|
@ -73,4 +73,9 @@ export const menu: SimpleTranslationEntries = {
|
||||
"skipItemQuestion": "Êtes-vous sûr·e de ne pas vouloir prendre d’objet ?",
|
||||
"eggHatching": "Oh ?",
|
||||
"ivScannerUseQuestion": "Utiliser le Scanner d’IV sur {{pokemonName}} ?",
|
||||
"rankings": "Rankings",
|
||||
"dailyRankings": "Daily Rankings",
|
||||
"noRankings": "No Rankings",
|
||||
"loading": "Loading…",
|
||||
"playersOnline": "Players Online"
|
||||
} as const;
|
||||
|
@ -6,5 +6,10 @@ export const menu: SimpleTranslationEntries = {
|
||||
"newGame": "Nuova Partita",
|
||||
"loadGame": "Carica Partita",
|
||||
"dailyRun": "Corsa Giornaliera (Beta)",
|
||||
"selectGameMode": "Seleziona una modalità di gioco."
|
||||
"selectGameMode": "Seleziona una modalità di gioco.",
|
||||
"rankings": "Rankings",
|
||||
"dailyRankings": "Daily Rankings",
|
||||
"noRankings": "No Rankings",
|
||||
"loading": "Loading…",
|
||||
"playersOnline": "Players Online"
|
||||
} as const;
|
23
src/overrides.ts
Normal file
23
src/overrides.ts
Normal file
@ -0,0 +1,23 @@
|
||||
import { Species } from './data/enums/species';
|
||||
import { Abilities } from "./data/enums/abilities";
|
||||
import { Biome } from "./data/enums/biome";
|
||||
import { Moves } from "./data/enums/moves";
|
||||
import { WeatherType } from "./data/weather";
|
||||
|
||||
export const SEED_OVERRIDE = '';
|
||||
export const STARTER_SPECIES_OVERRIDE = 0;
|
||||
export const STARTER_FORM_OVERRIDE = 0;
|
||||
export const STARTING_LEVEL_OVERRIDE = 0;
|
||||
export const STARTING_WAVE_OVERRIDE = 0;
|
||||
export const STARTING_BIOME_OVERRIDE = Biome.TOWN;
|
||||
export const STARTING_MONEY_OVERRIDE = 0;
|
||||
export const WEATHER_OVERRIDE = WeatherType.NONE;
|
||||
|
||||
export const ABILITY_OVERRIDE = Abilities.NONE;
|
||||
export const MOVE_OVERRIDE = Moves.NONE;
|
||||
export const OPP_SPECIES_OVERRIDE = 0;
|
||||
export const OPP_ABILITY_OVERRIDE = Abilities.NONE;
|
||||
export const OPP_MOVE_OVERRIDE = Moves.NONE;
|
||||
|
||||
export const OPP_SHINY_OVERRIDE = false;
|
||||
export const OPP_VARIANT_OVERRIDE = 0;
|
@ -1,8 +1,8 @@
|
||||
import BattleScene, { STARTER_FORM_OVERRIDE, STARTER_SPECIES_OVERRIDE, bypassLogin, startingWave } from "./battle-scene";
|
||||
import BattleScene, { bypassLogin, startingWave } from "./battle-scene";
|
||||
import { default as Pokemon, PlayerPokemon, EnemyPokemon, PokemonMove, MoveResult, DamageResult, FieldPosition, HitResult, TurnMove } from "./field/pokemon";
|
||||
import * as Utils from './utils';
|
||||
import { Moves } from "./data/enums/moves";
|
||||
import { allMoves, applyMoveAttrs, BypassSleepAttr, ChargeAttr, applyFilteredMoveAttrs, HitsTagAttr, MissEffectAttr, MoveAttr, MoveEffectAttr, MoveFlags, MultiHitAttr, OverrideMoveEffectAttr, VariableAccuracyAttr, MoveTarget, OneHitKOAttr, getMoveTargets, MoveTargetSet, MoveEffectTrigger, CopyMoveAttr, AttackMove, SelfStatusMove, DelayedAttackAttr, RechargeAttr, PreMoveMessageAttr, HealStatusEffectAttr, IgnoreOpponentStatChangesAttr, NoEffectAttr, FixedDamageAttr, OneHitKOAccuracyAttr } from "./data/move";
|
||||
import { allMoves, applyMoveAttrs, BypassSleepAttr, ChargeAttr, applyFilteredMoveAttrs, HitsTagAttr, MissEffectAttr, MoveAttr, MoveEffectAttr, MoveFlags, MultiHitAttr, OverrideMoveEffectAttr, VariableAccuracyAttr, MoveTarget, OneHitKOAttr, getMoveTargets, MoveTargetSet, MoveEffectTrigger, CopyMoveAttr, AttackMove, SelfStatusMove, DelayedAttackAttr, RechargeAttr, PreMoveMessageAttr, HealStatusEffectAttr, IgnoreOpponentStatChangesAttr, NoEffectAttr, FixedDamageAttr, OneHitKOAccuracyAttr, ForceSwitchOutAttr } from "./data/move";
|
||||
import { Mode } from './ui/ui';
|
||||
import { Command } from "./ui/command-ui-handler";
|
||||
import { Stat } from "./data/pokemon-stat";
|
||||
@ -57,6 +57,7 @@ import { fetchDailyRunSeed, getDailyRunStarters } from "./data/daily-run";
|
||||
import { GameModes, gameModes } from "./game-mode";
|
||||
import { getPokemonSpecies, speciesStarters } from "./data/pokemon-species";
|
||||
import i18next from './plugins/i18n';
|
||||
import { STARTER_FORM_OVERRIDE, STARTER_SPECIES_OVERRIDE } from './overrides';
|
||||
|
||||
export class LoginPhase extends Phase {
|
||||
private showText: boolean;
|
||||
@ -1420,9 +1421,11 @@ export class SwitchSummonPhase extends SummonPhase {
|
||||
super.onEnd();
|
||||
|
||||
const pokemon = this.getPokemon();
|
||||
const moveId = pokemon.scene.currentBattle.turnCommands[this.fieldIndex]?.move?.move;
|
||||
const lastUsedMove = moveId ? allMoves[moveId] : undefined;
|
||||
|
||||
// Compensate for turn spent summoning
|
||||
if (pokemon.scene.currentBattle.turnCommands[this.fieldIndex]?.command === Command.POKEMON)
|
||||
if (pokemon.scene.currentBattle.turnCommands[this.fieldIndex]?.command === Command.POKEMON || !!lastUsedMove?.findAttr(attr => attr instanceof ForceSwitchOutAttr)) //check if hard switch OR pivot move was used
|
||||
pokemon.battleSummonData.turnCount--;
|
||||
|
||||
if (this.batonPass && pokemon)
|
||||
|
@ -2,6 +2,7 @@ import BattleScene from "../battle-scene";
|
||||
import { TextStyle, addTextObject } from "./text";
|
||||
import { WindowVariant, addWindow } from "./ui-theme";
|
||||
import * as Utils from "../utils";
|
||||
import i18next from "i18next";
|
||||
|
||||
interface RankingEntry {
|
||||
rank: integer,
|
||||
@ -39,7 +40,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
|
||||
const titleWindow = addWindow(this.scene, 0, 0, 114, 18, false, false, null, null, WindowVariant.THIN);
|
||||
this.add(titleWindow);
|
||||
|
||||
this.titleLabel = addTextObject(this.scene, titleWindow.displayWidth / 2, titleWindow.displayHeight / 2, 'Daily Rankings', TextStyle.WINDOW, { fontSize: '64px' });
|
||||
this.titleLabel = addTextObject(this.scene, titleWindow.displayWidth / 2, titleWindow.displayHeight / 2, i18next.t('menu:dailyRankings'), TextStyle.WINDOW, { fontSize: '64px' });
|
||||
this.titleLabel.setOrigin(0.5, 0.5);
|
||||
this.add(this.titleLabel);
|
||||
|
||||
@ -141,7 +142,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
|
||||
update(category: ScoreboardCategory = this.category, page: integer = this.page) {
|
||||
this.rankingsContainer.removeAll(true);
|
||||
|
||||
this.loadingLabel.setText('Loading…');
|
||||
this.loadingLabel.setText(i18next.t('menu:loading'));
|
||||
this.loadingLabel.setVisible(true);
|
||||
|
||||
if (category !== this.category)
|
||||
@ -155,7 +156,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
|
||||
.then(jsonResponse => {
|
||||
this.page = page;
|
||||
this.category = category;
|
||||
this.titleLabel.setText(`${Utils.toReadableString(ScoreboardCategory[category])} Rankings`);
|
||||
this.titleLabel.setText(`${Utils.toReadableString(ScoreboardCategory[category])} ${i18next.t("menu:rankings")}`);
|
||||
this.prevPageButton.setAlpha(page > 1 ? 1 : 0.5);
|
||||
this.nextPageButton.setAlpha(page < this.pageCount ? 1 : 0.5);
|
||||
this.pageNumberLabel.setText(page.toString());
|
||||
@ -163,7 +164,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
|
||||
this.loadingLabel.setVisible(false);
|
||||
this.updateRankings(jsonResponse);
|
||||
} else
|
||||
this.loadingLabel.setText('No Rankings');
|
||||
this.loadingLabel.setText(i18next.t('menu:noRankings'));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import { Mode } from "./ui";
|
||||
import * as Utils from "../utils";
|
||||
import { TextStyle, addTextObject } from "./text";
|
||||
import { battleCountSplashMessage, splashMessages } from "../data/splash-messages";
|
||||
import i18next from "i18next";
|
||||
|
||||
export default class TitleUiHandler extends OptionSelectUiHandler {
|
||||
private titleContainer: Phaser.GameObjects.Container;
|
||||
@ -37,7 +38,7 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
|
||||
|
||||
this.titleContainer.add(this.dailyRunScoreboard);
|
||||
|
||||
this.playerCountLabel = addTextObject(this.scene, (this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.height / 6) - 90, '? Players Online', TextStyle.MESSAGE, { fontSize: '54px' });
|
||||
this.playerCountLabel = addTextObject(this.scene, (this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.height / 6) - 90, `? ${i18next.t("menu:playersOnline")}`, TextStyle.MESSAGE, { fontSize: '54px' });
|
||||
this.playerCountLabel.setOrigin(1, 0);
|
||||
this.titleContainer.add(this.playerCountLabel);
|
||||
|
||||
@ -61,7 +62,7 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
|
||||
Utils.apiFetch(`game/titlestats`)
|
||||
.then(request => request.json())
|
||||
.then(stats => {
|
||||
this.playerCountLabel.setText(`${stats.playerCount} Players Online`);
|
||||
this.playerCountLabel.setText(`${stats.playerCount} ${i18next.t("menu:playersOnline")}`);
|
||||
if (this.splashMessage === battleCountSplashMessage)
|
||||
this.splashMessageText.setText(battleCountSplashMessage.replace('{COUNT}', stats.battleCount.toLocaleString('en-US')));
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user