mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-05 07:00:52 +02:00
Compare commits
16 Commits
accce08d3e
...
9fdc1ac2a5
Author | SHA1 | Date | |
---|---|---|---|
|
9fdc1ac2a5 | ||
|
bd3206d7de | ||
|
4a67275336 | ||
|
19230224ef | ||
|
f0072082b5 | ||
|
fd3261d8ce | ||
|
49cb79b754 | ||
|
f8c8605710 | ||
|
7b0ec0faf2 | ||
|
8728442657 | ||
|
855ceda192 | ||
|
0e794fe2fc | ||
|
e6c24dceab | ||
|
35eb4c36a2 | ||
|
85a118efdb | ||
|
cf06ff3b8d |
46
package-lock.json
generated
46
package-lock.json
generated
@ -37,6 +37,7 @@
|
|||||||
"typescript-eslint": "^7.10.0",
|
"typescript-eslint": "^7.10.0",
|
||||||
"vite": "^4.5.0",
|
"vite": "^4.5.0",
|
||||||
"vite-plugin-fs": "^0.4.4",
|
"vite-plugin-fs": "^0.4.4",
|
||||||
|
"vite-tsconfig-paths": "^4.3.2",
|
||||||
"vitest": "^1.4.0",
|
"vitest": "^1.4.0",
|
||||||
"vitest-canvas-mock": "^0.3.3"
|
"vitest-canvas-mock": "^0.3.3"
|
||||||
},
|
},
|
||||||
@ -3393,6 +3394,12 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/globrex": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
|
||||||
|
"integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/gopd": {
|
"node_modules/gopd": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
||||||
@ -6051,6 +6058,26 @@
|
|||||||
"typescript": ">=4.2.0"
|
"typescript": ">=4.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/tsconfck": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-CMjc5zMnyAjcS9sPLytrbFmj89st2g+JYtY/c02ug4Q+CZaAtCgbyviI0n1YvjZE/pzoc6FbNsINS13DOL1B9w==",
|
||||||
|
"dev": true,
|
||||||
|
"bin": {
|
||||||
|
"tsconfck": "bin/tsconfck.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^18 || >=20"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"typescript": "^5.0.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"typescript": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/tsconfig-paths": {
|
"node_modules/tsconfig-paths": {
|
||||||
"version": "3.15.0",
|
"version": "3.15.0",
|
||||||
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
|
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
|
||||||
@ -6962,6 +6989,25 @@
|
|||||||
"node": ">=14"
|
"node": ">=14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/vite-tsconfig-paths": {
|
||||||
|
"version": "4.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.2.tgz",
|
||||||
|
"integrity": "sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"debug": "^4.1.1",
|
||||||
|
"globrex": "^0.1.2",
|
||||||
|
"tsconfck": "^3.0.3"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"vite": "*"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"vite": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/vitest": {
|
"node_modules/vitest": {
|
||||||
"version": "1.5.2",
|
"version": "1.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-1.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/vitest/-/vitest-1.5.2.tgz",
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
"typescript-eslint": "^7.10.0",
|
"typescript-eslint": "^7.10.0",
|
||||||
"vite": "^4.5.0",
|
"vite": "^4.5.0",
|
||||||
"vite-plugin-fs": "^0.4.4",
|
"vite-plugin-fs": "^0.4.4",
|
||||||
|
"vite-tsconfig-paths": "^4.3.2",
|
||||||
"vitest": "^1.4.0",
|
"vitest": "^1.4.0",
|
||||||
"vitest-canvas-mock": "^0.3.3"
|
"vitest-canvas-mock": "^0.3.3"
|
||||||
},
|
},
|
||||||
@ -53,6 +54,7 @@
|
|||||||
"node": ">=20.0.0"
|
"node": ">=20.0.0"
|
||||||
},
|
},
|
||||||
"imports": {
|
"imports": {
|
||||||
|
"#enums/*": "./enums/*",
|
||||||
"#app": "./src/main.js",
|
"#app": "./src/main.js",
|
||||||
"#app/*": "./src/*",
|
"#app/*": "./src/*",
|
||||||
"#test/*": "./src/test/*"
|
"#test/*": "./src/test/*"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
filenames = [['src/data/enums/moves.ts', 'move'], ['src/data/enums/abilities.ts', 'ability'], ['src/data/enums/species.ts', 'Pokémon']]
|
filenames = [['src/enums/moves.ts', 'move'], ['src/enums/abilities.ts', 'ability'], ['src/enums/species.ts', 'Pokémon']]
|
||||||
|
|
||||||
commentBlockStart = re.compile('\/\*[^\*].*') # Regex for the start of a comment block
|
commentBlockStart = re.compile('\/\*[^\*].*') # Regex for the start of a comment block
|
||||||
commentBlockEnd = re.compile('.*,\*\/') # Regex for the end of a comment block
|
commentBlockEnd = re.compile('.*,\*\/') # Regex for the end of a comment block
|
||||||
|
@ -9,12 +9,9 @@ import { PokeballType } from "./data/pokeball";
|
|||||||
import { initCommonAnims, initMoveAnim, loadCommonAnimAssets, loadMoveAnimAssets, populateAnims } from "./data/battle-anims";
|
import { initCommonAnims, initMoveAnim, loadCommonAnimAssets, loadMoveAnimAssets, populateAnims } from "./data/battle-anims";
|
||||||
import { Phase } from "./phase";
|
import { Phase } from "./phase";
|
||||||
import { initGameSpeed } from "./system/game-speed";
|
import { initGameSpeed } from "./system/game-speed";
|
||||||
import { Biome } from "./data/enums/biome";
|
|
||||||
import { Arena, ArenaBase } from "./field/arena";
|
import { Arena, ArenaBase } from "./field/arena";
|
||||||
import { GameData } from "./system/game-data";
|
import { GameData } from "./system/game-data";
|
||||||
import { PlayerGender } from "./data/enums/player-gender";
|
|
||||||
import { TextStyle, addTextObject, getTextColor } from "./ui/text";
|
import { TextStyle, addTextObject, getTextColor } from "./ui/text";
|
||||||
import { Moves } from "./data/enums/moves";
|
|
||||||
import { allMoves } from "./data/move";
|
import { allMoves } from "./data/move";
|
||||||
import { ModifierPoolType, getDefaultModifierTypeForTier, getEnemyModifierTypesForWave, getLuckString, getLuckTextTint, getModifierPoolForType, getPartyLuckValue } from "./modifier/modifier-type";
|
import { ModifierPoolType, getDefaultModifierTypeForTier, getEnemyModifierTypesForWave, getLuckString, getLuckTextTint, getModifierPoolForType, getPartyLuckValue } from "./modifier/modifier-type";
|
||||||
import AbilityBar from "./ui/ability-bar";
|
import AbilityBar from "./ui/ability-bar";
|
||||||
@ -31,7 +28,6 @@ import TrainerData from "./system/trainer-data";
|
|||||||
import SoundFade from "phaser3-rex-plugins/plugins/soundfade";
|
import SoundFade from "phaser3-rex-plugins/plugins/soundfade";
|
||||||
import { pokemonPrevolutions } from "./data/pokemon-evolutions";
|
import { pokemonPrevolutions } from "./data/pokemon-evolutions";
|
||||||
import PokeballTray from "./ui/pokeball-tray";
|
import PokeballTray from "./ui/pokeball-tray";
|
||||||
import { Species } from "./data/enums/species";
|
|
||||||
import InvertPostFX from "./pipelines/invert";
|
import InvertPostFX from "./pipelines/invert";
|
||||||
import { Achv, ModifierAchv, MoneyAchv, achvs } from "./system/achv";
|
import { Achv, ModifierAchv, MoneyAchv, achvs } from "./system/achv";
|
||||||
import { Voucher, vouchers } from "./system/voucher";
|
import { Voucher, vouchers } from "./system/voucher";
|
||||||
@ -42,14 +38,12 @@ import PokemonData from "./system/pokemon-data";
|
|||||||
import { Nature } from "./data/nature";
|
import { Nature } from "./data/nature";
|
||||||
import { SpeciesFormChangeTimeOfDayTrigger, SpeciesFormChangeTrigger, pokemonFormChanges } from "./data/pokemon-forms";
|
import { SpeciesFormChangeTimeOfDayTrigger, SpeciesFormChangeTrigger, pokemonFormChanges } from "./data/pokemon-forms";
|
||||||
import { FormChangePhase, QuietFormChangePhase } from "./form-change-phase";
|
import { FormChangePhase, QuietFormChangePhase } from "./form-change-phase";
|
||||||
import { BattleSpec } from "./enums/battle-spec";
|
|
||||||
import { getTypeRgb } from "./data/type";
|
import { getTypeRgb } from "./data/type";
|
||||||
import PokemonSpriteSparkleHandler from "./field/pokemon-sprite-sparkle-handler";
|
import PokemonSpriteSparkleHandler from "./field/pokemon-sprite-sparkle-handler";
|
||||||
import CharSprite from "./ui/char-sprite";
|
import CharSprite from "./ui/char-sprite";
|
||||||
import DamageNumberHandler from "./field/damage-number-handler";
|
import DamageNumberHandler from "./field/damage-number-handler";
|
||||||
import PokemonInfoContainer from "./ui/pokemon-info-container";
|
import PokemonInfoContainer from "./ui/pokemon-info-container";
|
||||||
import { biomeDepths, getBiomeName } from "./data/biomes";
|
import { biomeDepths, getBiomeName } from "./data/biomes";
|
||||||
import { UiTheme } from "./enums/ui-theme";
|
|
||||||
import { SceneBase } from "./scene-base";
|
import { SceneBase } from "./scene-base";
|
||||||
import CandyBar from "./ui/candy-bar";
|
import CandyBar from "./ui/candy-bar";
|
||||||
import { Variant, variantData } from "./data/variant";
|
import { Variant, variantData } from "./data/variant";
|
||||||
@ -57,13 +51,19 @@ import { Localizable } from "./plugins/i18n";
|
|||||||
import * as Overrides from "./overrides";
|
import * as Overrides from "./overrides";
|
||||||
import {InputsController} from "./inputs-controller";
|
import {InputsController} from "./inputs-controller";
|
||||||
import {UiInputs} from "./ui-inputs";
|
import {UiInputs} from "./ui-inputs";
|
||||||
import { MoneyFormat } from "./enums/money-format";
|
|
||||||
import { NewArenaEvent } from "./events/battle-scene";
|
import { NewArenaEvent } from "./events/battle-scene";
|
||||||
import { Abilities } from "./data/enums/abilities";
|
|
||||||
import ArenaFlyout from "./ui/arena-flyout";
|
import ArenaFlyout from "./ui/arena-flyout";
|
||||||
import { EaseType } from "./ui/enums/ease-type";
|
import { EaseType } from "#enums/ease-type";
|
||||||
import { ExpNotification } from "./enums/exp-notification";
|
import { Abilities } from "#enums/abilities";
|
||||||
import { BattleStyle } from "./enums/battle-style";
|
import { BattleSpec } from "#enums/battle-spec";
|
||||||
|
import { BattleStyle } from "#enums/battle-style";
|
||||||
|
import { Biome } from "#enums/biome";
|
||||||
|
import { ExpNotification } from "#enums/exp-notification";
|
||||||
|
import { MoneyFormat } from "#enums/money-format";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { PlayerGender } from "#enums/player-gender";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import { UiTheme } from "#enums/ui-theme";
|
||||||
|
|
||||||
export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1";
|
export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1";
|
||||||
|
|
||||||
|
@ -3,15 +3,15 @@ import { EnemyPokemon, PlayerPokemon, QueuedMove } from "./field/pokemon";
|
|||||||
import { Command } from "./ui/command-ui-handler";
|
import { Command } from "./ui/command-ui-handler";
|
||||||
import * as Utils from "./utils";
|
import * as Utils from "./utils";
|
||||||
import Trainer, { TrainerVariant } from "./field/trainer";
|
import Trainer, { TrainerVariant } from "./field/trainer";
|
||||||
import { Species } from "./data/enums/species";
|
|
||||||
import { Moves } from "./data/enums/moves";
|
|
||||||
import { TrainerType } from "./data/enums/trainer-type";
|
|
||||||
import { GameMode } from "./game-mode";
|
import { GameMode } from "./game-mode";
|
||||||
import { BattleSpec } from "./enums/battle-spec";
|
|
||||||
import { PlayerGender } from "./data/enums/player-gender";
|
|
||||||
import { MoneyMultiplierModifier, PokemonHeldItemModifier } from "./modifier/modifier";
|
import { MoneyMultiplierModifier, PokemonHeldItemModifier } from "./modifier/modifier";
|
||||||
import { PokeballType } from "./data/pokeball";
|
import { PokeballType } from "./data/pokeball";
|
||||||
import {trainerConfigs} from "#app/data/trainer-config";
|
import {trainerConfigs} from "#app/data/trainer-config";
|
||||||
|
import { BattleSpec } from "#enums/battle-spec";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { PlayerGender } from "#enums/player-gender";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
|
|
||||||
export enum BattleType {
|
export enum BattleType {
|
||||||
WILD,
|
WILD,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import {Button} from "#app/enums/buttons";
|
import {Button} from "#enums/buttons";
|
||||||
import {SettingKeyboard} from "#app/system/settings/settings-keyboard";
|
import {SettingKeyboard} from "#app/system/settings/settings-keyboard";
|
||||||
|
|
||||||
const cfg_keyboard_qwerty = {
|
const cfg_keyboard_qwerty = {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import {Device} from "#app/enums/devices";
|
import {Device} from "#enums/devices";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the key associated with the specified keycode from the mapping.
|
* Retrieves the key associated with the specified keycode from the mapping.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import {SettingGamepad} from "../../system/settings/settings-gamepad";
|
import {SettingGamepad} from "../../system/settings/settings-gamepad";
|
||||||
import {Button} from "../../enums/buttons";
|
import {Button} from "#enums/buttons";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dualshock mapping
|
* Dualshock mapping
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import {SettingGamepad} from "../../system/settings/settings-gamepad";
|
import {SettingGamepad} from "../../system/settings/settings-gamepad";
|
||||||
import {Button} from "../../enums/buttons";
|
import {Button} from "#enums/buttons";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generic pad mapping
|
* Generic pad mapping
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import {SettingGamepad} from "#app/system/settings/settings-gamepad.js";
|
import {SettingGamepad} from "#app/system/settings/settings-gamepad.js";
|
||||||
import {Button} from "#app/enums/buttons";
|
import {Button} from "#enums/buttons";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Nintendo Pro Controller mapping
|
* Nintendo Pro Controller mapping
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import {SettingGamepad} from "../../system/settings/settings-gamepad";
|
import {SettingGamepad} from "../../system/settings/settings-gamepad";
|
||||||
import {Button} from "../../enums/buttons";
|
import {Button} from "#enums/buttons";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 081f-e401 - UnlicensedSNES
|
* 081f-e401 - UnlicensedSNES
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import {SettingGamepad} from "../../system/settings/settings-gamepad";
|
import {SettingGamepad} from "../../system/settings/settings-gamepad";
|
||||||
import {Button} from "#app/enums/buttons";
|
import {Button} from "#enums/buttons";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generic pad mapping
|
* Generic pad mapping
|
||||||
|
@ -6,24 +6,24 @@ import { MovePhase, PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from "
|
|||||||
import { getPokemonMessage, getPokemonNameWithAffix } from "../messages";
|
import { getPokemonMessage, getPokemonNameWithAffix } from "../messages";
|
||||||
import { Weather, WeatherType } from "./weather";
|
import { Weather, WeatherType } from "./weather";
|
||||||
import { BattlerTag } from "./battler-tags";
|
import { BattlerTag } from "./battler-tags";
|
||||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
|
||||||
import { StatusEffect, getNonVolatileStatusEffects, getStatusEffectDescriptor, getStatusEffectHealText } from "./status-effect";
|
import { StatusEffect, getNonVolatileStatusEffects, getStatusEffectDescriptor, getStatusEffectHealText } from "./status-effect";
|
||||||
import { Gender } from "./gender";
|
import { Gender } from "./gender";
|
||||||
import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, FlinchAttr, OneHitKOAttr, HitHealAttr, allMoves, StatusMove, SelfStatusMove, VariablePowerAttr, applyMoveAttrs, IncrementMovePriorityAttr, VariableMoveTypeAttr, RandomMovesetMoveAttr, RandomMoveAttr, NaturePowerAttr, CopyMoveAttr } from "./move";
|
import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, FlinchAttr, OneHitKOAttr, HitHealAttr, allMoves, StatusMove, SelfStatusMove, VariablePowerAttr, applyMoveAttrs, IncrementMovePriorityAttr, VariableMoveTypeAttr, RandomMovesetMoveAttr, RandomMoveAttr, NaturePowerAttr, CopyMoveAttr } from "./move";
|
||||||
import { ArenaTagSide, ArenaTrapTag } from "./arena-tag";
|
import { ArenaTagSide, ArenaTrapTag } from "./arena-tag";
|
||||||
import { ArenaTagType } from "./enums/arena-tag-type";
|
|
||||||
import { Stat, getStatName } from "./pokemon-stat";
|
import { Stat, getStatName } from "./pokemon-stat";
|
||||||
import { BerryModifier, PokemonHeldItemModifier } from "../modifier/modifier";
|
import { BerryModifier, PokemonHeldItemModifier } from "../modifier/modifier";
|
||||||
import { Moves } from "./enums/moves";
|
|
||||||
import { TerrainType } from "./terrain";
|
import { TerrainType } from "./terrain";
|
||||||
import { SpeciesFormChangeManualTrigger } from "./pokemon-forms";
|
import { SpeciesFormChangeManualTrigger } from "./pokemon-forms";
|
||||||
import { Abilities } from "./enums/abilities";
|
|
||||||
import i18next, { Localizable } from "#app/plugins/i18n.js";
|
import i18next, { Localizable } from "#app/plugins/i18n.js";
|
||||||
import { Command } from "../ui/command-ui-handler";
|
import { Command } from "../ui/command-ui-handler";
|
||||||
import { BerryModifierType } from "#app/modifier/modifier-type";
|
import { BerryModifierType } from "#app/modifier/modifier-type";
|
||||||
import { getPokeballName } from "./pokeball";
|
import { getPokeballName } from "./pokeball";
|
||||||
import { Species } from "./enums/species";
|
|
||||||
import { BattlerIndex } from "#app/battle";
|
import { BattlerIndex } from "#app/battle";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { ArenaTagType } from "#enums/arena-tag-type";
|
||||||
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
export class Ability implements Localizable {
|
export class Ability implements Localizable {
|
||||||
public id: Abilities;
|
public id: Abilities;
|
||||||
@ -677,7 +677,9 @@ export class PostDefendHpGatedStatChangeAbAttr extends PostDefendAbAttr {
|
|||||||
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: Move, hitResult: HitResult, args: any[]): boolean {
|
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: Move, hitResult: HitResult, args: any[]): boolean {
|
||||||
const hpGateFlat: integer = Math.ceil(pokemon.getMaxHp() * this.hpGate);
|
const hpGateFlat: integer = Math.ceil(pokemon.getMaxHp() * this.hpGate);
|
||||||
const lastAttackReceived = pokemon.turnData.attacksReceived[pokemon.turnData.attacksReceived.length - 1];
|
const lastAttackReceived = pokemon.turnData.attacksReceived[pokemon.turnData.attacksReceived.length - 1];
|
||||||
if (this.condition(pokemon, attacker, move) && (pokemon.hp <= hpGateFlat && (pokemon.hp + lastAttackReceived.damage) > hpGateFlat)) {
|
const damageReceived = lastAttackReceived?.damage || 0;
|
||||||
|
|
||||||
|
if (this.condition(pokemon, attacker, move) && (pokemon.hp <= hpGateFlat && (pokemon.hp + damageReceived) > hpGateFlat)) {
|
||||||
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, (this.selfTarget ? pokemon : attacker).getBattlerIndex(), true, this.stats, this.levels));
|
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, (this.selfTarget ? pokemon : attacker).getBattlerIndex(), true, this.stats, this.levels));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -6,11 +6,11 @@ import PokemonSpecies, { PokemonForm, SpeciesFormKey, allSpecies } from "./pokem
|
|||||||
import { GrowthRate } from "./exp";
|
import { GrowthRate } from "./exp";
|
||||||
import { Type } from "./type";
|
import { Type } from "./type";
|
||||||
import { allAbilities } from "./ability";
|
import { allAbilities } from "./ability";
|
||||||
import { Abilities } from "./enums/abilities";
|
|
||||||
import { Species } from "./enums/species";
|
|
||||||
import { pokemonFormLevelMoves } from "./pokemon-level-moves";
|
import { pokemonFormLevelMoves } from "./pokemon-level-moves";
|
||||||
import { tmSpecies } from "./tms";
|
import { tmSpecies } from "./tms";
|
||||||
import { Moves } from "./enums/moves";
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
const targetMap = {
|
const targetMap = {
|
||||||
"specific-move": MoveTarget.ATTACKER,
|
"specific-move": MoveTarget.ATTACKER,
|
||||||
|
@ -7,14 +7,14 @@ import Pokemon, { HitResult, PokemonMove } from "../field/pokemon";
|
|||||||
import { MoveEffectPhase, PokemonHealPhase, ShowAbilityPhase, StatChangePhase} from "../phases";
|
import { MoveEffectPhase, PokemonHealPhase, ShowAbilityPhase, StatChangePhase} from "../phases";
|
||||||
import { StatusEffect } from "./status-effect";
|
import { StatusEffect } from "./status-effect";
|
||||||
import { BattlerIndex } from "../battle";
|
import { BattlerIndex } from "../battle";
|
||||||
import { Moves } from "./enums/moves";
|
|
||||||
import { ArenaTagType } from "./enums/arena-tag-type";
|
|
||||||
import { BlockNonDirectDamageAbAttr, ProtectStatAbAttr, applyAbAttrs } from "./ability";
|
import { BlockNonDirectDamageAbAttr, ProtectStatAbAttr, applyAbAttrs } from "./ability";
|
||||||
import { BattleStat } from "./battle-stat";
|
import { BattleStat } from "./battle-stat";
|
||||||
import { CommonAnim, CommonBattleAnim } from "./battle-anims";
|
import { CommonAnim, CommonBattleAnim } from "./battle-anims";
|
||||||
import { Abilities } from "./enums/abilities";
|
|
||||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { ArenaTagType } from "#enums/arena-tag-type";
|
||||||
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
|
||||||
export enum ArenaTagSide {
|
export enum ArenaTagSide {
|
||||||
BOTH,
|
BOTH,
|
||||||
|
@ -5,7 +5,7 @@ import Pokemon from "../field/pokemon";
|
|||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { BattlerIndex } from "../battle";
|
import { BattlerIndex } from "../battle";
|
||||||
import { Element } from "json-stable-stringify";
|
import { Element } from "json-stable-stringify";
|
||||||
import { Moves } from "./enums/moves";
|
import { Moves } from "#enums/moves";
|
||||||
//import fs from 'vite-plugin-fs/browser';
|
//import fs from 'vite-plugin-fs/browser';
|
||||||
|
|
||||||
export enum AnimFrameTarget {
|
export enum AnimFrameTarget {
|
||||||
|
@ -5,18 +5,18 @@ import Pokemon, { MoveResult, HitResult } from "../field/pokemon";
|
|||||||
import { Stat, getStatName } from "./pokemon-stat";
|
import { Stat, getStatName } from "./pokemon-stat";
|
||||||
import { StatusEffect } from "./status-effect";
|
import { StatusEffect } from "./status-effect";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { Moves } from "./enums/moves";
|
|
||||||
import { ChargeAttr, MoveFlags, allMoves } from "./move";
|
import { ChargeAttr, MoveFlags, allMoves } from "./move";
|
||||||
import { Type } from "./type";
|
import { Type } from "./type";
|
||||||
import { BlockNonDirectDamageAbAttr, FlinchEffectAbAttr, ReverseDrainAbAttr, applyAbAttrs } from "./ability";
|
import { BlockNonDirectDamageAbAttr, FlinchEffectAbAttr, ReverseDrainAbAttr, applyAbAttrs } from "./ability";
|
||||||
import { Abilities } from "./enums/abilities";
|
|
||||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
|
||||||
import { TerrainType } from "./terrain";
|
import { TerrainType } from "./terrain";
|
||||||
import { WeatherType } from "./weather";
|
import { WeatherType } from "./weather";
|
||||||
import { BattleStat } from "./battle-stat";
|
import { BattleStat } from "./battle-stat";
|
||||||
import { allAbilities } from "./ability";
|
import { allAbilities } from "./ability";
|
||||||
import { SpeciesFormChangeManualTrigger } from "./pokemon-forms";
|
import { SpeciesFormChangeManualTrigger } from "./pokemon-forms";
|
||||||
import { Species } from "./enums/species";
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
export enum BattlerTagLapseType {
|
export enum BattlerTagLapseType {
|
||||||
FAINT,
|
FAINT,
|
||||||
|
@ -2,12 +2,12 @@ import { PokemonHealPhase, StatChangePhase } from "../phases";
|
|||||||
import { getPokemonMessage } from "../messages";
|
import { getPokemonMessage } from "../messages";
|
||||||
import Pokemon, { HitResult } from "../field/pokemon";
|
import Pokemon, { HitResult } from "../field/pokemon";
|
||||||
import { BattleStat } from "./battle-stat";
|
import { BattleStat } from "./battle-stat";
|
||||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
|
||||||
import { getStatusEffectHealText } from "./status-effect";
|
import { getStatusEffectHealText } from "./status-effect";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { DoubleBerryEffectAbAttr, ReduceBerryUseThresholdAbAttr, applyAbAttrs } from "./ability";
|
import { DoubleBerryEffectAbAttr, ReduceBerryUseThresholdAbAttr, applyAbAttrs } from "./ability";
|
||||||
import i18next from "../plugins/i18n";
|
import i18next from "../plugins/i18n";
|
||||||
import { BerryType } from "./enums/berry-type";
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
|
import { BerryType } from "#enums/berry-type";
|
||||||
|
|
||||||
export function getBerryName(berryType: BerryType): string {
|
export function getBerryName(berryType: BerryType): string {
|
||||||
return i18next.t(`berry:${BerryType[berryType]}.name`);
|
return i18next.t(`berry:${BerryType[berryType]}.name`);
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import { Species } from "./enums/species";
|
|
||||||
import { Type } from "./type";
|
import { Type } from "./type";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import beautify from "json-beautify";
|
import beautify from "json-beautify";
|
||||||
import { TrainerType } from "./enums/trainer-type";
|
|
||||||
import { TimeOfDay } from "./enums/time-of-day";
|
|
||||||
import { Biome } from "./enums/biome";
|
|
||||||
import {pokemonEvolutions, SpeciesFormEvolution} from "./pokemon-evolutions";
|
import {pokemonEvolutions, SpeciesFormEvolution} from "./pokemon-evolutions";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
|
import { Biome } from "#enums/biome";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import { TimeOfDay } from "#enums/time-of-day";
|
||||||
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
|
|
||||||
export function getBiomeName(biome: Biome | -1) {
|
export function getBiomeName(biome: Biome | -1) {
|
||||||
if (biome === -1) {
|
if (biome === -1) {
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { Challenges } from "./enums/challenges";
|
|
||||||
import i18next from "#app/plugins/i18n.js";
|
import i18next from "#app/plugins/i18n.js";
|
||||||
import { GameData } from "#app/system/game-data.js";
|
import { GameData } from "#app/system/game-data.js";
|
||||||
import PokemonSpecies, { getPokemonSpecies, speciesStarters } from "./pokemon-species";
|
import PokemonSpecies, { getPokemonSpecies, speciesStarters } from "./pokemon-species";
|
||||||
import Pokemon from "#app/field/pokemon.js";
|
import Pokemon from "#app/field/pokemon.js";
|
||||||
import { BattleType, FixedBattleConfig } from "#app/battle.js";
|
import { BattleType, FixedBattleConfig } from "#app/battle.js";
|
||||||
import { TrainerType } from "./enums/trainer-type";
|
|
||||||
import Trainer, { TrainerVariant } from "#app/field/trainer.js";
|
import Trainer, { TrainerVariant } from "#app/field/trainer.js";
|
||||||
import { GameMode } from "#app/game-mode.js";
|
import { GameMode } from "#app/game-mode.js";
|
||||||
import { Species } from "./enums/species";
|
|
||||||
import { Type } from "./type";
|
import { Type } from "./type";
|
||||||
|
import { Challenges } from "#enums/challenges";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An enum for all the challenge types. The parameter entries on these describe the
|
* An enum for all the challenge types. The parameter entries on these describe the
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
|
import { PartyMemberStrength } from "#enums/party-member-strength";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
import { PlayerPokemon } from "../field/pokemon";
|
import { PlayerPokemon } from "../field/pokemon";
|
||||||
import { Starter } from "../ui/starter-select-ui-handler";
|
import { Starter } from "../ui/starter-select-ui-handler";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { Species } from "./enums/species";
|
|
||||||
import PokemonSpecies, { PokemonSpeciesForm, getPokemonSpecies, getPokemonSpeciesForm, speciesStarters } from "./pokemon-species";
|
import PokemonSpecies, { PokemonSpeciesForm, getPokemonSpecies, getPokemonSpeciesForm, speciesStarters } from "./pokemon-species";
|
||||||
import { PartyMemberStrength } from "./enums/party-member-strength";
|
|
||||||
|
|
||||||
export interface DailyRunConfig {
|
export interface DailyRunConfig {
|
||||||
seed: integer;
|
seed: integer;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
import { BattleSpec } from "#enums/battle-spec";
|
||||||
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
import {trainerConfigs} from "./trainer-config";
|
import {trainerConfigs} from "./trainer-config";
|
||||||
import {TrainerType} from "./enums/trainer-type";
|
|
||||||
import {BattleSpec} from "../enums/battle-spec";
|
|
||||||
|
|
||||||
export interface TrainerTypeMessages {
|
export interface TrainerTypeMessages {
|
||||||
encounter?: string | string[],
|
encounter?: string | string[],
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Moves } from "./enums/moves";
|
|
||||||
import { Species } from "./enums/species";
|
|
||||||
import { allMoves } from "./move";
|
import { allMoves } from "./move";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
|
|
||||||
export const speciesEggMoves = {
|
export const speciesEggMoves = {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
import { Species } from "./enums/species";
|
|
||||||
import PokemonSpecies, { getPokemonSpecies, speciesStarters } from "./pokemon-species";
|
import PokemonSpecies, { getPokemonSpecies, speciesStarters } from "./pokemon-species";
|
||||||
import { EggTier } from "./enums/egg-type";
|
|
||||||
import i18next from "../plugins/i18n";
|
import i18next from "../plugins/i18n";
|
||||||
|
import { EggTier } from "#enums/egg-type";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
export const EGG_SEED = 1073741824;
|
export const EGG_SEED = 1073741824;
|
||||||
|
|
||||||
|
128
src/data/move.ts
128
src/data/move.ts
@ -1,9 +1,7 @@
|
|||||||
import { Moves } from "./enums/moves";
|
|
||||||
import { ChargeAnim, MoveChargeAnim, initMoveAnim, loadMoveAnimAssets } from "./battle-anims";
|
import { ChargeAnim, MoveChargeAnim, initMoveAnim, loadMoveAnimAssets } from "./battle-anims";
|
||||||
import { BattleEndPhase, MovePhase, NewBattlePhase, PartyStatusCurePhase, PokemonHealPhase, StatChangePhase, SwitchSummonPhase } from "../phases";
|
import { BattleEndPhase, MovePhase, NewBattlePhase, PartyStatusCurePhase, PokemonHealPhase, StatChangePhase, SwitchSummonPhase } from "../phases";
|
||||||
import { BattleStat, getBattleStatName } from "./battle-stat";
|
import { BattleStat, getBattleStatName } from "./battle-stat";
|
||||||
import { EncoreTag } from "./battler-tags";
|
import { EncoreTag } from "./battler-tags";
|
||||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
|
||||||
import { getPokemonMessage } from "../messages";
|
import { getPokemonMessage } from "../messages";
|
||||||
import Pokemon, { AttackMoveResult, EnemyPokemon, HitResult, MoveResult, PlayerPokemon, PokemonMove, TurnMove } from "../field/pokemon";
|
import Pokemon, { AttackMoveResult, EnemyPokemon, HitResult, MoveResult, PlayerPokemon, PokemonMove, TurnMove } from "../field/pokemon";
|
||||||
import { StatusEffect, getStatusEffectHealText, isNonVolatileStatusEffect, getNonVolatileStatusEffects} from "./status-effect";
|
import { StatusEffect, getStatusEffectHealText, isNonVolatileStatusEffect, getNonVolatileStatusEffects} from "./status-effect";
|
||||||
@ -11,21 +9,23 @@ import { Type } from "./type";
|
|||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { WeatherType } from "./weather";
|
import { WeatherType } from "./weather";
|
||||||
import { ArenaTagSide, ArenaTrapTag } from "./arena-tag";
|
import { ArenaTagSide, ArenaTrapTag } from "./arena-tag";
|
||||||
import { ArenaTagType } from "./enums/arena-tag-type";
|
|
||||||
import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr, MoveAbilityBypassAbAttr, ReverseDrainAbAttr, FieldPreventExplosiveMovesAbAttr, ForceSwitchOutImmunityAbAttr, BlockItemTheftAbAttr, applyPostAttackAbAttrs, ConfusionOnStatusEffectAbAttr, HealFromBerryUseAbAttr } from "./ability";
|
import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr, MoveAbilityBypassAbAttr, ReverseDrainAbAttr, FieldPreventExplosiveMovesAbAttr, ForceSwitchOutImmunityAbAttr, BlockItemTheftAbAttr, applyPostAttackAbAttrs, ConfusionOnStatusEffectAbAttr, HealFromBerryUseAbAttr } from "./ability";
|
||||||
import { Abilities } from "./enums/abilities";
|
|
||||||
import { allAbilities } from "./ability";
|
import { allAbilities } from "./ability";
|
||||||
import { PokemonHeldItemModifier, BerryModifier, PreserveBerryModifier } from "../modifier/modifier";
|
import { PokemonHeldItemModifier, BerryModifier, PreserveBerryModifier } from "../modifier/modifier";
|
||||||
import { BattlerIndex } from "../battle";
|
import { BattlerIndex } from "../battle";
|
||||||
import { Stat } from "./pokemon-stat";
|
import { Stat } from "./pokemon-stat";
|
||||||
import { TerrainType } from "./terrain";
|
import { TerrainType } from "./terrain";
|
||||||
import { SpeciesFormChangeActiveTrigger } from "./pokemon-forms";
|
import { SpeciesFormChangeActiveTrigger } from "./pokemon-forms";
|
||||||
import { Species } from "./enums/species";
|
|
||||||
import { ModifierPoolType } from "#app/modifier/modifier-type";
|
import { ModifierPoolType } from "#app/modifier/modifier-type";
|
||||||
import { Command } from "../ui/command-ui-handler";
|
import { Command } from "../ui/command-ui-handler";
|
||||||
import { Biome } from "./enums/biome";
|
|
||||||
import i18next, { Localizable } from "../plugins/i18n";
|
import i18next, { Localizable } from "../plugins/i18n";
|
||||||
import { getBerryEffectFunc } from "./berry";
|
import { getBerryEffectFunc } from "./berry";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { ArenaTagType } from "#enums/arena-tag-type";
|
||||||
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
|
import { Biome } from "#enums/biome";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
export enum MoveCategory {
|
export enum MoveCategory {
|
||||||
PHYSICAL,
|
PHYSICAL,
|
||||||
@ -1540,6 +1540,14 @@ export class IncrementMovePriorityAttr extends MoveAttr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attribute used for attack moves that hit multiple times per use, e.g. Bullet Seed.
|
||||||
|
*
|
||||||
|
* Applied at the beginning of {@linkcode MoveEffectPhase}.
|
||||||
|
*
|
||||||
|
* @extends MoveAttr
|
||||||
|
* @see {@linkcode apply}
|
||||||
|
*/
|
||||||
export class MultiHitAttr extends MoveAttr {
|
export class MultiHitAttr extends MoveAttr {
|
||||||
private multiHitType: MultiHitType;
|
private multiHitType: MultiHitType;
|
||||||
|
|
||||||
@ -1549,43 +1557,28 @@ export class MultiHitAttr extends MoveAttr {
|
|||||||
this.multiHitType = multiHitType !== undefined ? multiHitType : MultiHitType._2_TO_5;
|
this.multiHitType = multiHitType !== undefined ? multiHitType : MultiHitType._2_TO_5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the hit count of an attack based on this attribute instance's {@linkcode MultiHitType}.
|
||||||
|
* If the target has an immunity to this attack's types, the hit count will always be 1.
|
||||||
|
*
|
||||||
|
* @param user {@linkcode Pokemon} that used the attack
|
||||||
|
* @param target {@linkcode Pokemon} targeted by the attack
|
||||||
|
* @param move {@linkcode Move} being used
|
||||||
|
* @param args [0] {@linkcode Utils.IntegerHolder} storing the hit count of the attack
|
||||||
|
* @returns True
|
||||||
|
*/
|
||||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||||
let hitTimes: integer;
|
let hitTimes: integer;
|
||||||
const hitType = new Utils.IntegerHolder(this.multiHitType);
|
|
||||||
applyMoveAttrs(ChangeMultiHitTypeAttr, user, target, move, hitType);
|
if (target.getAttackMoveEffectiveness(user, new PokemonMove(move.id)) === 0) {
|
||||||
switch (hitType.value) {
|
// If there is a type immunity, the attack will stop no matter what
|
||||||
case MultiHitType._2_TO_5:
|
hitTimes = 1;
|
||||||
{
|
} else {
|
||||||
const rand = user.randSeedInt(16);
|
const hitType = new Utils.IntegerHolder(this.multiHitType);
|
||||||
const hitValue = new Utils.IntegerHolder(rand);
|
applyMoveAttrs(ChangeMultiHitTypeAttr, user, target, move, hitType);
|
||||||
applyAbAttrs(MaxMultiHitAbAttr, user, null, hitValue);
|
hitTimes = this.getHitCount(user, target);
|
||||||
if (hitValue.value >= 10) {
|
|
||||||
hitTimes = 2;
|
|
||||||
} else if (hitValue.value >= 4) {
|
|
||||||
hitTimes = 3;
|
|
||||||
} else if (hitValue.value >= 2) {
|
|
||||||
hitTimes = 4;
|
|
||||||
} else {
|
|
||||||
hitTimes = 5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MultiHitType._2:
|
|
||||||
hitTimes = 2;
|
|
||||||
break;
|
|
||||||
case MultiHitType._3:
|
|
||||||
hitTimes = 3;
|
|
||||||
break;
|
|
||||||
case MultiHitType._10:
|
|
||||||
hitTimes = 10;
|
|
||||||
break;
|
|
||||||
case MultiHitType.BEAT_UP:
|
|
||||||
const party = user.isPlayer() ? user.scene.getParty() : user.scene.getEnemyParty();
|
|
||||||
// No status means the ally pokemon can contribute to Beat Up
|
|
||||||
hitTimes = party.reduce((total, pokemon) => {
|
|
||||||
return total + (pokemon.id === user.id ? 1 : pokemon?.status && pokemon.status.effect !== StatusEffect.NONE ? 0 : 1);
|
|
||||||
}, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
(args[0] as Utils.IntegerHolder).value = hitTimes;
|
(args[0] as Utils.IntegerHolder).value = hitTimes;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1593,6 +1586,49 @@ export class MultiHitAttr extends MoveAttr {
|
|||||||
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): number {
|
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): number {
|
||||||
return -5;
|
return -5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculate the number of hits that an attack should have given this attribute's
|
||||||
|
* {@linkcode MultiHitType}.
|
||||||
|
*
|
||||||
|
* @param user {@linkcode Pokemon} using the attack
|
||||||
|
* @param target {@linkcode Pokemon} targeted by the attack
|
||||||
|
* @returns The number of hits this attack should deal
|
||||||
|
*/
|
||||||
|
getHitCount(user: Pokemon, target: Pokemon): integer {
|
||||||
|
switch (this.multiHitType) {
|
||||||
|
case MultiHitType._2_TO_5:
|
||||||
|
{
|
||||||
|
const rand = user.randSeedInt(16);
|
||||||
|
const hitValue = new Utils.IntegerHolder(rand);
|
||||||
|
applyAbAttrs(MaxMultiHitAbAttr, user, null, hitValue);
|
||||||
|
if (hitValue.value >= 10) {
|
||||||
|
return 2;
|
||||||
|
} else if (hitValue.value >= 4) {
|
||||||
|
return 3;
|
||||||
|
} else if (hitValue.value >= 2) {
|
||||||
|
return 4;
|
||||||
|
} else {
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case MultiHitType._2:
|
||||||
|
return 2;
|
||||||
|
break;
|
||||||
|
case MultiHitType._3:
|
||||||
|
return 3;
|
||||||
|
break;
|
||||||
|
case MultiHitType._10:
|
||||||
|
return 10;
|
||||||
|
break;
|
||||||
|
case MultiHitType.BEAT_UP:
|
||||||
|
const party = user.isPlayer() ? user.scene.getParty() : user.scene.getEnemyParty();
|
||||||
|
// No status means the ally pokemon can contribute to Beat Up
|
||||||
|
return party.reduce((total, pokemon) => {
|
||||||
|
return total + (pokemon.id === user.id ? 1 : pokemon?.status && pokemon.status.effect !== StatusEffect.NONE ? 0 : 1);
|
||||||
|
}, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class ChangeMultiHitTypeAttr extends MoveAttr {
|
export class ChangeMultiHitTypeAttr extends MoveAttr {
|
||||||
@ -1797,7 +1833,7 @@ export class RemoveHeldItemAttr extends MoveEffectAttr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute that causes targets of the move to eat a berry. If chosenBerry is not overriden, a random berry will be picked from the target's inventory.
|
* Attribute that causes targets of the move to eat a berry. If chosenBerry is not overridden, a random berry will be picked from the target's inventory.
|
||||||
*/
|
*/
|
||||||
export class EatBerryAttr extends MoveEffectAttr {
|
export class EatBerryAttr extends MoveEffectAttr {
|
||||||
protected chosenBerry: BerryModifier;
|
protected chosenBerry: BerryModifier;
|
||||||
@ -7516,8 +7552,14 @@ export function initMoves() {
|
|||||||
.attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, false, false, 1)
|
.attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, false, false, 1)
|
||||||
.attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, true, false, 1)
|
.attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, true, false, 1)
|
||||||
.bitingMove(),
|
.bitingMove(),
|
||||||
new SelfStatusMove(Moves.STUFF_CHEEKS, Type.NORMAL, -1, 10, 100, 0, 8)
|
new SelfStatusMove(Moves.STUFF_CHEEKS, Type.NORMAL, -1, 10, 100, 0, 8) // TODO: Stuff Cheeks should not be selectable when the user does not have a berry, see wiki
|
||||||
.unimplemented(),
|
.attr(EatBerryAttr)
|
||||||
|
.attr(StatChangeAttr, BattleStat.DEF, 2, true)
|
||||||
|
.condition((user) => {
|
||||||
|
const userBerries = user.scene.findModifiers(m => m instanceof BerryModifier);
|
||||||
|
return userBerries.length > 0;
|
||||||
|
})
|
||||||
|
.partial(),
|
||||||
new SelfStatusMove(Moves.NO_RETREAT, Type.FIGHTING, -1, 5, 100, 0, 8)
|
new SelfStatusMove(Moves.NO_RETREAT, Type.FIGHTING, -1, 5, 100, 0, 8)
|
||||||
.attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD ], 1, true)
|
.attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD ], 1, true)
|
||||||
.attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, true, true, 1),
|
.attr(AddBattlerTagAttr, BattlerTagType.TRAPPED, true, true, 1),
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Stat, getStatName } from "./pokemon-stat";
|
import { Stat, getStatName } from "./pokemon-stat";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { TextStyle, getBBCodeFrag } from "../ui/text";
|
import { TextStyle, getBBCodeFrag } from "../ui/text";
|
||||||
import { UiTheme } from "#app/enums/ui-theme";
|
import { UiTheme } from "#enums/ui-theme";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
|
|
||||||
export enum Nature {
|
export enum Nature {
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
import { Gender } from "./gender";
|
import { Gender } from "./gender";
|
||||||
import { Moves } from "./enums/moves";
|
|
||||||
import { PokeballType } from "./pokeball";
|
import { PokeballType } from "./pokeball";
|
||||||
import Pokemon from "../field/pokemon";
|
import Pokemon from "../field/pokemon";
|
||||||
import { Stat } from "./pokemon-stat";
|
import { Stat } from "./pokemon-stat";
|
||||||
import { Species } from "./enums/species";
|
|
||||||
import { Type } from "./type";
|
import { Type } from "./type";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { SpeciesFormKey } from "./pokemon-species";
|
import { SpeciesFormKey } from "./pokemon-species";
|
||||||
import { WeatherType } from "./weather";
|
import { WeatherType } from "./weather";
|
||||||
import { Biome } from "./enums/biome";
|
|
||||||
import { TimeOfDay } from "./enums/time-of-day";
|
|
||||||
import { Nature } from "./nature";
|
import { Nature } from "./nature";
|
||||||
|
import { Biome } from "#enums/biome";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import { TimeOfDay } from "#enums/time-of-day";
|
||||||
|
|
||||||
export enum SpeciesWildEvolutionDelay {
|
export enum SpeciesWildEvolutionDelay {
|
||||||
NONE,
|
NONE,
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import { TimeOfDay } from "./enums/time-of-day";
|
|
||||||
import { PokemonFormChangeItemModifier } from "../modifier/modifier";
|
import { PokemonFormChangeItemModifier } from "../modifier/modifier";
|
||||||
import Pokemon from "../field/pokemon";
|
import Pokemon from "../field/pokemon";
|
||||||
import { Moves } from "./enums/moves";
|
|
||||||
import { SpeciesFormKey } from "./pokemon-species";
|
import { SpeciesFormKey } from "./pokemon-species";
|
||||||
import { Species } from "./enums/species";
|
|
||||||
import { StatusEffect } from "./status-effect";
|
import { StatusEffect } from "./status-effect";
|
||||||
import { MoveCategory, allMoves } from "./move";
|
import { MoveCategory, allMoves } from "./move";
|
||||||
import { Abilities } from "./enums/abilities";
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import { TimeOfDay } from "#enums/time-of-day";
|
||||||
|
|
||||||
export enum FormChangeItem {
|
export enum FormChangeItem {
|
||||||
NONE,
|
NONE,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { Moves } from "./enums/moves";
|
import { Moves } from "#enums/moves";
|
||||||
import { Species } from "./enums/species";
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
export type LevelMoves = ([integer, Moves])[];
|
export type LevelMoves = ([integer, Moves])[];
|
||||||
|
|
||||||
|
@ -1,22 +1,23 @@
|
|||||||
import { Abilities } from "./enums/abilities";
|
|
||||||
import BattleScene, { AnySound } from "../battle-scene";
|
import BattleScene, { AnySound } from "../battle-scene";
|
||||||
import { Variant, variantColorCache } from "./variant";
|
import { Variant, variantColorCache } from "./variant";
|
||||||
import { variantData } from "./variant";
|
import { variantData } from "./variant";
|
||||||
import { GrowthRate } from "./exp";
|
import { GrowthRate } from "./exp";
|
||||||
import { SpeciesWildEvolutionDelay, pokemonEvolutions, pokemonPrevolutions } from "./pokemon-evolutions";
|
import { SpeciesWildEvolutionDelay, pokemonEvolutions, pokemonPrevolutions } from "./pokemon-evolutions";
|
||||||
import { Species } from "./enums/species";
|
|
||||||
import { Type } from "./type";
|
import { Type } from "./type";
|
||||||
import { LevelMoves, pokemonFormLevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from "./pokemon-level-moves";
|
import { LevelMoves, pokemonFormLevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from "./pokemon-level-moves";
|
||||||
import { uncatchableSpecies } from "./biomes";
|
import { uncatchableSpecies } from "./biomes";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { StarterMoveset } from "../system/game-data";
|
import { StarterMoveset } from "../system/game-data";
|
||||||
import { speciesEggMoves } from "./egg-moves";
|
import { speciesEggMoves } from "./egg-moves";
|
||||||
import { PartyMemberStrength } from "./enums/party-member-strength";
|
|
||||||
import { GameMode } from "../game-mode";
|
import { GameMode } from "../game-mode";
|
||||||
import { QuantizerCelebi, argbFromRgba, rgbaFromArgb } from "@material/material-color-utilities";
|
import { QuantizerCelebi, argbFromRgba, rgbaFromArgb } from "@material/material-color-utilities";
|
||||||
import { VariantSet } from "./variant";
|
import { VariantSet } from "./variant";
|
||||||
import i18next, { Localizable } from "../plugins/i18n";
|
import i18next, { Localizable } from "../plugins/i18n";
|
||||||
import { Stat } from "./pokemon-stat";
|
import { Stat } from "./pokemon-stat";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { PartyMemberStrength } from "#enums/party-member-strength";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
export enum Region {
|
export enum Region {
|
||||||
NORMAL,
|
NORMAL,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { ModifierTier } from "../modifier/modifier-tier";
|
import { ModifierTier } from "../modifier/modifier-tier";
|
||||||
import { Moves } from "./enums/moves";
|
import { Moves } from "#enums/moves";
|
||||||
import { Species } from "./enums/species";
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
interface TmSpecies {
|
interface TmSpecies {
|
||||||
[key: integer]: Array<Species | Array<Species | string>>
|
[key: integer]: Array<Species | Array<Species | string>>
|
||||||
|
@ -2,20 +2,20 @@ import BattleScene, {startingWave} from "../battle-scene";
|
|||||||
import {ModifierTypeFunc, modifierTypes} from "../modifier/modifier-type";
|
import {ModifierTypeFunc, modifierTypes} from "../modifier/modifier-type";
|
||||||
import {EnemyPokemon} from "../field/pokemon";
|
import {EnemyPokemon} from "../field/pokemon";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import {TrainerType} from "./enums/trainer-type";
|
|
||||||
import {Moves} from "./enums/moves";
|
|
||||||
import {PokeballType} from "./pokeball";
|
import {PokeballType} from "./pokeball";
|
||||||
import {pokemonEvolutions, pokemonPrevolutions} from "./pokemon-evolutions";
|
import {pokemonEvolutions, pokemonPrevolutions} from "./pokemon-evolutions";
|
||||||
import PokemonSpecies, {getPokemonSpecies, PokemonSpeciesFilter} from "./pokemon-species";
|
import PokemonSpecies, {getPokemonSpecies, PokemonSpeciesFilter} from "./pokemon-species";
|
||||||
import {Species} from "./enums/species";
|
|
||||||
import {tmSpecies} from "./tms";
|
import {tmSpecies} from "./tms";
|
||||||
import {Type} from "./type";
|
import {Type} from "./type";
|
||||||
import {doubleBattleDialogue} from "./dialogue";
|
import {doubleBattleDialogue} from "./dialogue";
|
||||||
import {PersistentModifier} from "../modifier/modifier";
|
import {PersistentModifier} from "../modifier/modifier";
|
||||||
import {TrainerVariant} from "../field/trainer";
|
import {TrainerVariant} from "../field/trainer";
|
||||||
import {PartyMemberStrength} from "./enums/party-member-strength";
|
|
||||||
import {getIsInitialized, initI18n} from "#app/plugins/i18n";
|
import {getIsInitialized, initI18n} from "#app/plugins/i18n";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { PartyMemberStrength } from "#enums/party-member-strength";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
|
|
||||||
export enum TrainerPoolTier {
|
export enum TrainerPoolTier {
|
||||||
COMMON,
|
COMMON,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { TrainerType } from "./enums/trainer-type";
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
|
|
||||||
class TrainerNameConfig {
|
class TrainerNameConfig {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { Biome } from "./enums/biome";
|
import { Biome } from "#enums/biome";
|
||||||
import { getPokemonMessage, getPokemonNameWithAffix } from "../messages";
|
import { getPokemonMessage, getPokemonNameWithAffix } from "../messages";
|
||||||
import Pokemon from "../field/pokemon";
|
import Pokemon from "../field/pokemon";
|
||||||
import { Type } from "./type";
|
import { Type } from "./type";
|
||||||
|
@ -5,15 +5,15 @@ import * as Utils from "./utils";
|
|||||||
import { Mode } from "./ui/ui";
|
import { Mode } from "./ui/ui";
|
||||||
import { EGG_SEED, Egg, GachaType, getLegendaryGachaSpeciesForTimestamp } from "./data/egg";
|
import { EGG_SEED, Egg, GachaType, getLegendaryGachaSpeciesForTimestamp } from "./data/egg";
|
||||||
import EggHatchSceneHandler from "./ui/egg-hatch-scene-handler";
|
import EggHatchSceneHandler from "./ui/egg-hatch-scene-handler";
|
||||||
import { Species } from "./data/enums/species";
|
|
||||||
import { PlayerPokemon } from "./field/pokemon";
|
import { PlayerPokemon } from "./field/pokemon";
|
||||||
import { getPokemonSpecies, speciesStarters } from "./data/pokemon-species";
|
import { getPokemonSpecies, speciesStarters } from "./data/pokemon-species";
|
||||||
import { achvs } from "./system/achv";
|
import { achvs } from "./system/achv";
|
||||||
import { pokemonPrevolutions } from "./data/pokemon-evolutions";
|
import { pokemonPrevolutions } from "./data/pokemon-evolutions";
|
||||||
import { EggTier } from "./data/enums/egg-type";
|
|
||||||
import PokemonInfoContainer from "./ui/pokemon-info-container";
|
import PokemonInfoContainer from "./ui/pokemon-info-container";
|
||||||
import EggCounterContainer from "./ui/egg-counter-container";
|
import EggCounterContainer from "./ui/egg-counter-container";
|
||||||
import { EggCountChangedEvent } from "./events/egg";
|
import { EggCountChangedEvent } from "./events/egg";
|
||||||
|
import { EggTier } from "#enums/egg-type";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class that represents egg hatching
|
* Class that represents egg hatching
|
||||||
|
@ -2164,15 +2164,3 @@ export enum Species {
|
|||||||
/**{@link https://bulbapedia.bulbagarden.net/wiki/Ursaluna_(Pokémon) | Source} */
|
/**{@link https://bulbapedia.bulbagarden.net/wiki/Ursaluna_(Pokémon) | Source} */
|
||||||
BLOODMOON_URSALUNA = 8901,
|
BLOODMOON_URSALUNA = 8901,
|
||||||
}
|
}
|
||||||
|
|
||||||
export const defaultStarterSpecies: Species[] = [
|
|
||||||
Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE,
|
|
||||||
Species.CHIKORITA, Species.CYNDAQUIL, Species.TOTODILE,
|
|
||||||
Species.TREECKO, Species.TORCHIC, Species.MUDKIP,
|
|
||||||
Species.TURTWIG, Species.CHIMCHAR, Species.PIPLUP,
|
|
||||||
Species.SNIVY, Species.TEPIG, Species.OSHAWOTT,
|
|
||||||
Species.CHESPIN, Species.FENNEKIN, Species.FROAKIE,
|
|
||||||
Species.ROWLET, Species.LITTEN, Species.POPPLIO,
|
|
||||||
Species.GROOKEY, Species.SCORBUNNY, Species.SOBBLE,
|
|
||||||
Species.SPRIGATITO, Species.FUECOCO, Species.QUAXLY
|
|
||||||
];
|
|
@ -1,5 +1,5 @@
|
|||||||
import { ArenaTagSide } from "#app/data/arena-tag.js";
|
import { ArenaTagSide } from "#app/data/arena-tag.js";
|
||||||
import { ArenaTagType } from "#app/data/enums/arena-tag-type.js";
|
import { ArenaTagType } from "#enums/arena-tag-type";
|
||||||
import { TerrainType } from "#app/data/terrain.js";
|
import { TerrainType } from "#app/data/terrain.js";
|
||||||
import { WeatherType } from "#app/data/weather.js";
|
import { WeatherType } from "#app/data/weather.js";
|
||||||
|
|
@ -1,25 +1,25 @@
|
|||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
import { BiomePoolTier, PokemonPools, BiomeTierTrainerPools, biomePokemonPools, biomeTrainerPools } from "../data/biomes";
|
import { BiomePoolTier, PokemonPools, BiomeTierTrainerPools, biomePokemonPools, biomeTrainerPools } from "../data/biomes";
|
||||||
import { Biome } from "../data/enums/biome";
|
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import PokemonSpecies, { getPokemonSpecies } from "../data/pokemon-species";
|
import PokemonSpecies, { getPokemonSpecies } from "../data/pokemon-species";
|
||||||
import { Species } from "../data/enums/species";
|
|
||||||
import { Weather, WeatherType, getTerrainClearMessage, getTerrainStartMessage, getWeatherClearMessage, getWeatherStartMessage } from "../data/weather";
|
import { Weather, WeatherType, getTerrainClearMessage, getTerrainStartMessage, getWeatherClearMessage, getWeatherStartMessage } from "../data/weather";
|
||||||
import { CommonAnimPhase } from "../phases";
|
import { CommonAnimPhase } from "../phases";
|
||||||
import { CommonAnim } from "../data/battle-anims";
|
import { CommonAnim } from "../data/battle-anims";
|
||||||
import { Type } from "../data/type";
|
import { Type } from "../data/type";
|
||||||
import Move from "../data/move";
|
import Move from "../data/move";
|
||||||
import { ArenaTag, ArenaTagSide, getArenaTag } from "../data/arena-tag";
|
import { ArenaTag, ArenaTagSide, getArenaTag } from "../data/arena-tag";
|
||||||
import { ArenaTagType } from "../data/enums/arena-tag-type";
|
|
||||||
import { TrainerType } from "../data/enums/trainer-type";
|
|
||||||
import { BattlerIndex } from "../battle";
|
import { BattlerIndex } from "../battle";
|
||||||
import { Moves } from "../data/enums/moves";
|
|
||||||
import { TimeOfDay } from "../data/enums/time-of-day";
|
|
||||||
import { Terrain, TerrainType } from "../data/terrain";
|
import { Terrain, TerrainType } from "../data/terrain";
|
||||||
import { PostTerrainChangeAbAttr, PostWeatherChangeAbAttr, applyPostTerrainChangeAbAttrs, applyPostWeatherChangeAbAttrs } from "../data/ability";
|
import { PostTerrainChangeAbAttr, PostWeatherChangeAbAttr, applyPostTerrainChangeAbAttrs, applyPostWeatherChangeAbAttrs } from "../data/ability";
|
||||||
import Pokemon from "./pokemon";
|
import Pokemon from "./pokemon";
|
||||||
import * as Overrides from "../overrides";
|
import * as Overrides from "../overrides";
|
||||||
import { WeatherChangedEvent, TerrainChangedEvent, TagAddedEvent, TagRemovedEvent } from "./events/arena";
|
import { WeatherChangedEvent, TerrainChangedEvent, TagAddedEvent, TagRemovedEvent } from "../events/arena";
|
||||||
|
import { ArenaTagType } from "#enums/arena-tag-type";
|
||||||
|
import { Biome } from "#enums/biome";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import { TimeOfDay } from "#enums/time-of-day";
|
||||||
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
|
|
||||||
export class Arena {
|
export class Arena {
|
||||||
public scene: BattleScene;
|
public scene: BattleScene;
|
||||||
|
@ -3,7 +3,6 @@ import BattleScene, { AnySound } from "../battle-scene";
|
|||||||
import { Variant, VariantSet, variantColorCache } from "#app/data/variant";
|
import { Variant, VariantSet, variantColorCache } from "#app/data/variant";
|
||||||
import { variantData } from "#app/data/variant";
|
import { variantData } from "#app/data/variant";
|
||||||
import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from "../ui/battle-info";
|
import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from "../ui/battle-info";
|
||||||
import { Moves } from "../data/enums/moves";
|
|
||||||
import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, VariableMoveTypeAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveCategoryAttr, CounterDamageAttr, StatChangeAttr, RechargeAttr, ChargeAttr, IgnoreWeatherTypeDebuffAttr, BypassBurnDamageReductionAttr, SacrificialAttrOnHit, MoveFlags } from "../data/move";
|
import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, VariableMoveTypeAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveCategoryAttr, CounterDamageAttr, StatChangeAttr, RechargeAttr, ChargeAttr, IgnoreWeatherTypeDebuffAttr, BypassBurnDamageReductionAttr, SacrificialAttrOnHit, MoveFlags } from "../data/move";
|
||||||
import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from "../data/pokemon-species";
|
import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from "../data/pokemon-species";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
@ -20,18 +19,12 @@ import { reverseCompatibleTms, tmSpecies, tmPoolTiers } from "../data/tms";
|
|||||||
import { DamagePhase, FaintPhase, LearnMovePhase, ObtainStatusEffectPhase, StatChangePhase, SwitchSummonPhase, ToggleDoublePositionPhase } from "../phases";
|
import { DamagePhase, FaintPhase, LearnMovePhase, ObtainStatusEffectPhase, StatChangePhase, SwitchSummonPhase, ToggleDoublePositionPhase } from "../phases";
|
||||||
import { BattleStat } from "../data/battle-stat";
|
import { BattleStat } from "../data/battle-stat";
|
||||||
import { BattlerTag, BattlerTagLapseType, EncoreTag, HelpingHandTag, HighestStatBoostTag, TypeBoostTag, getBattlerTag } from "../data/battler-tags";
|
import { BattlerTag, BattlerTagLapseType, EncoreTag, HelpingHandTag, HighestStatBoostTag, TypeBoostTag, getBattlerTag } from "../data/battler-tags";
|
||||||
import { BattlerTagType } from "../data/enums/battler-tag-type";
|
|
||||||
import { Species } from "../data/enums/species";
|
|
||||||
import { WeatherType } from "../data/weather";
|
import { WeatherType } from "../data/weather";
|
||||||
import { TempBattleStat } from "../data/temp-battle-stat";
|
import { TempBattleStat } from "../data/temp-battle-stat";
|
||||||
import { ArenaTagSide, WeakenMoveScreenTag, WeakenMoveTypeTag } from "../data/arena-tag";
|
import { ArenaTagSide, WeakenMoveScreenTag, WeakenMoveTypeTag } from "../data/arena-tag";
|
||||||
import { ArenaTagType } from "../data/enums/arena-tag-type";
|
|
||||||
import { Biome } from "../data/enums/biome";
|
|
||||||
import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr, IgnoreTypeImmunityAbAttr, DamageBoostAbAttr, IgnoreTypeStatusEffectImmunityAbAttr, ConditionalCritAbAttr, applyFieldBattleStatMultiplierAbAttrs, FieldMultiplyBattleStatAbAttr } from "../data/ability";
|
import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr, IgnoreTypeImmunityAbAttr, DamageBoostAbAttr, IgnoreTypeStatusEffectImmunityAbAttr, ConditionalCritAbAttr, applyFieldBattleStatMultiplierAbAttrs, FieldMultiplyBattleStatAbAttr } from "../data/ability";
|
||||||
import { Abilities } from "#app/data/enums/abilities";
|
|
||||||
import PokemonData from "../system/pokemon-data";
|
import PokemonData from "../system/pokemon-data";
|
||||||
import { BattlerIndex } from "../battle";
|
import { BattlerIndex } from "../battle";
|
||||||
import { BattleSpec } from "../enums/battle-spec";
|
|
||||||
import { Mode } from "../ui/ui";
|
import { Mode } from "../ui/ui";
|
||||||
import PartyUiHandler, { PartyOption, PartyUiMode } from "../ui/party-ui-handler";
|
import PartyUiHandler, { PartyOption, PartyUiMode } from "../ui/party-ui-handler";
|
||||||
import SoundFade from "phaser3-rex-plugins/plugins/soundfade";
|
import SoundFade from "phaser3-rex-plugins/plugins/soundfade";
|
||||||
@ -44,11 +37,18 @@ import { SpeciesFormChange, SpeciesFormChangeActiveTrigger, SpeciesFormChangeMov
|
|||||||
import { TerrainType } from "../data/terrain";
|
import { TerrainType } from "../data/terrain";
|
||||||
import { TrainerSlot } from "../data/trainer-config";
|
import { TrainerSlot } from "../data/trainer-config";
|
||||||
import * as Overrides from "../overrides";
|
import * as Overrides from "../overrides";
|
||||||
import { BerryType } from "../data/enums/berry-type";
|
|
||||||
import i18next from "../plugins/i18n";
|
import i18next from "../plugins/i18n";
|
||||||
import { speciesEggMoves } from "../data/egg-moves";
|
import { speciesEggMoves } from "../data/egg-moves";
|
||||||
import { ModifierTier } from "../modifier/modifier-tier";
|
import { ModifierTier } from "../modifier/modifier-tier";
|
||||||
import { applyChallenges, ChallengeType } from "#app/data/challenge.js";
|
import { applyChallenges, ChallengeType } from "#app/data/challenge.js";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { ArenaTagType } from "#enums/arena-tag-type";
|
||||||
|
import { BattleSpec } from "#enums/battle-spec";
|
||||||
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
|
import { BerryType } from "#enums/berry-type";
|
||||||
|
import { Biome } from "#enums/biome";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
export enum FieldPosition {
|
export enum FieldPosition {
|
||||||
CENTER,
|
CENTER,
|
||||||
|
@ -11,8 +11,6 @@ import {
|
|||||||
trainerPartyTemplates,
|
trainerPartyTemplates,
|
||||||
signatureSpecies
|
signatureSpecies
|
||||||
} from "../data/trainer-config";
|
} from "../data/trainer-config";
|
||||||
import {PartyMemberStrength} from "../data/enums/party-member-strength";
|
|
||||||
import {TrainerType} from "../data/enums/trainer-type";
|
|
||||||
import {EnemyPokemon} from "./pokemon";
|
import {EnemyPokemon} from "./pokemon";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import {PersistentModifier} from "../modifier/modifier";
|
import {PersistentModifier} from "../modifier/modifier";
|
||||||
@ -20,7 +18,9 @@ import {trainerNamePools} from "../data/trainer-names";
|
|||||||
import {ArenaTagSide, ArenaTrapTag} from "#app/data/arena-tag";
|
import {ArenaTagSide, ArenaTrapTag} from "#app/data/arena-tag";
|
||||||
import {getIsInitialized, initI18n} from "#app/plugins/i18n";
|
import {getIsInitialized, initI18n} from "#app/plugins/i18n";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import {Species} from "#app/data/enums/species";
|
import { PartyMemberStrength } from "#enums/party-member-strength";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
|
|
||||||
export enum TrainerVariant {
|
export enum TrainerVariant {
|
||||||
DEFAULT,
|
DEFAULT,
|
||||||
|
@ -7,7 +7,7 @@ import { EndEvolutionPhase, EvolutionPhase } from "./evolution-phase";
|
|||||||
import Pokemon, { EnemyPokemon, PlayerPokemon } from "./field/pokemon";
|
import Pokemon, { EnemyPokemon, PlayerPokemon } from "./field/pokemon";
|
||||||
import { Mode } from "./ui/ui";
|
import { Mode } from "./ui/ui";
|
||||||
import PartyUiHandler from "./ui/party-ui-handler";
|
import PartyUiHandler from "./ui/party-ui-handler";
|
||||||
import { BattleSpec } from "./enums/battle-spec";
|
import { BattleSpec } from "#enums/battle-spec";
|
||||||
import { BattlePhase, MovePhase, PokemonHealPhase } from "./phases";
|
import { BattlePhase, MovePhase, PokemonHealPhase } from "./phases";
|
||||||
import { getTypeRgb } from "./data/type";
|
import { getTypeRgb } from "./data/type";
|
||||||
|
|
||||||
|
@ -2,12 +2,12 @@ import i18next from "i18next";
|
|||||||
import { classicFixedBattles, FixedBattleConfig, FixedBattleConfigs } from "./battle";
|
import { classicFixedBattles, FixedBattleConfig, FixedBattleConfigs } from "./battle";
|
||||||
import BattleScene from "./battle-scene";
|
import BattleScene from "./battle-scene";
|
||||||
import { allChallenges, applyChallenges, Challenge, ChallengeType, copyChallenge } from "./data/challenge";
|
import { allChallenges, applyChallenges, Challenge, ChallengeType, copyChallenge } from "./data/challenge";
|
||||||
import { Biome } from "./data/enums/biome";
|
|
||||||
import { Species } from "./data/enums/species";
|
|
||||||
import PokemonSpecies, { allSpecies } from "./data/pokemon-species";
|
import PokemonSpecies, { allSpecies } from "./data/pokemon-species";
|
||||||
import { Arena } from "./field/arena";
|
import { Arena } from "./field/arena";
|
||||||
import * as Overrides from "./overrides";
|
import * as Overrides from "./overrides";
|
||||||
import * as Utils from "./utils";
|
import * as Utils from "./utils";
|
||||||
|
import { Biome } from "#enums/biome";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
export enum GameModes {
|
export enum GameModes {
|
||||||
CLASSIC,
|
CLASSIC,
|
||||||
|
@ -6,12 +6,10 @@ import pad_unlicensedSNES from "./configs/inputs/pad_unlicensedSNES";
|
|||||||
import pad_xbox360 from "./configs/inputs/pad_xbox360";
|
import pad_xbox360 from "./configs/inputs/pad_xbox360";
|
||||||
import pad_dualshock from "./configs/inputs/pad_dualshock";
|
import pad_dualshock from "./configs/inputs/pad_dualshock";
|
||||||
import pad_procon from "./configs/inputs/pad_procon";
|
import pad_procon from "./configs/inputs/pad_procon";
|
||||||
import {Button} from "./enums/buttons";
|
|
||||||
import {Mode} from "./ui/ui";
|
import {Mode} from "./ui/ui";
|
||||||
import SettingsGamepadUiHandler from "./ui/settings/settings-gamepad-ui-handler";
|
import SettingsGamepadUiHandler from "./ui/settings/settings-gamepad-ui-handler";
|
||||||
import SettingsKeyboardUiHandler from "./ui/settings/settings-keyboard-ui-handler";
|
import SettingsKeyboardUiHandler from "./ui/settings/settings-keyboard-ui-handler";
|
||||||
import cfg_keyboard_qwerty from "./configs/inputs/cfg_keyboard_qwerty";
|
import cfg_keyboard_qwerty from "./configs/inputs/cfg_keyboard_qwerty";
|
||||||
import {Device} from "#app/enums/devices";
|
|
||||||
import {
|
import {
|
||||||
assign,
|
assign,
|
||||||
getButtonWithKeycode,
|
getButtonWithKeycode,
|
||||||
@ -21,6 +19,8 @@ import BattleScene from "./battle-scene";
|
|||||||
import {SettingGamepad} from "#app/system/settings/settings-gamepad.js";
|
import {SettingGamepad} from "#app/system/settings/settings-gamepad.js";
|
||||||
import {SettingKeyboard} from "#app/system/settings/settings-keyboard";
|
import {SettingKeyboard} from "#app/system/settings/settings-keyboard";
|
||||||
import TouchControl from "#app/touch-controls";
|
import TouchControl from "#app/touch-controls";
|
||||||
|
import { Button } from "#enums/buttons";
|
||||||
|
import { Device } from "#enums/devices";
|
||||||
|
|
||||||
export interface DeviceMapping {
|
export interface DeviceMapping {
|
||||||
[key: string]: number;
|
[key: string]: number;
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
import { GachaType } from "./data/egg";
|
import { GachaType } from "./data/egg";
|
||||||
import { Biome } from "./data/enums/biome";
|
|
||||||
import { TrainerType } from "./data/enums/trainer-type";
|
|
||||||
import { trainerConfigs } from "./data/trainer-config";
|
import { trainerConfigs } from "./data/trainer-config";
|
||||||
import { getBiomeHasProps } from "./field/arena";
|
import { getBiomeHasProps } from "./field/arena";
|
||||||
import CacheBustedLoaderPlugin from "./plugins/cache-busted-loader-plugin";
|
import CacheBustedLoaderPlugin from "./plugins/cache-busted-loader-plugin";
|
||||||
@ -22,6 +20,8 @@ import { initChallenges } from "./data/challenge";
|
|||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import { initStatsKeys } from "./ui/game-stats-ui-handler";
|
import { initStatsKeys } from "./ui/game-stats-ui-handler";
|
||||||
import { initVouchers } from "./system/voucher";
|
import { initVouchers } from "./system/voucher";
|
||||||
|
import { Biome } from "#enums/biome";
|
||||||
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
|
|
||||||
export class LoadingScene extends SceneBase {
|
export class LoadingScene extends SceneBase {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
@ -2931,7 +2931,7 @@ export const move: MoveTranslationEntries = {
|
|||||||
},
|
},
|
||||||
bouncyBubble: {
|
bouncyBubble: {
|
||||||
name: "Vapodrenaje",
|
name: "Vapodrenaje",
|
||||||
effect: "Ataca lanzando proyectiles de agua y recupera una cantidad de PS equivalente a la mitad del daño causado.",
|
effect: "Ataca lanzando proyectiles de agua y recupera una cantidad de PS equivalente a la del daño causado.",
|
||||||
},
|
},
|
||||||
buzzyBuzz: {
|
buzzyBuzz: {
|
||||||
name: "Joltioparálisis",
|
name: "Joltioparálisis",
|
||||||
|
@ -2931,7 +2931,7 @@ export const move: MoveTranslationEntries = {
|
|||||||
},
|
},
|
||||||
"bouncyBubble": {
|
"bouncyBubble": {
|
||||||
name: "Évo-Thalasso",
|
name: "Évo-Thalasso",
|
||||||
effect: "Évoli frappe l’adversaire avec des bulles d’eau qu’il absorbe ensuite pour récupérer un nombre de PV égal à la moitié des dégâts infligés à l’ennemi."
|
effect: "L’adversaire est frappé par des bulles d’eau qui sont ensuite absorbées pour récupérer un nombre de PV égal aux dégâts infligés à l’ennemi."
|
||||||
},
|
},
|
||||||
"buzzyBuzz": {
|
"buzzyBuzz": {
|
||||||
name: "Évo-Dynamo",
|
name: "Évo-Dynamo",
|
||||||
|
@ -2931,7 +2931,7 @@ export const move: MoveTranslationEntries = {
|
|||||||
},
|
},
|
||||||
bouncyBubble: {
|
bouncyBubble: {
|
||||||
name: "Bollaslurp",
|
name: "Bollaslurp",
|
||||||
effect: "Chi la usa colpisce il bersaglio con una raffica di bolle, per poi assorbirle e recuperare una quantità di PS pari alla metà del danno inferto.",
|
effect: "Chi la usa colpisce il bersaglio con una raffica di bolle, per poi assorbirle e recuperare una quantità di PS pari alla del danno inferto.",
|
||||||
},
|
},
|
||||||
buzzyBuzz: {
|
buzzyBuzz: {
|
||||||
name: "Elettrozap",
|
name: "Elettrozap",
|
||||||
|
@ -2937,7 +2937,7 @@ export const move: MoveTranslationEntries = {
|
|||||||
},
|
},
|
||||||
bouncyBubble: {
|
bouncyBubble: {
|
||||||
name: "생생버블",
|
name: "생생버블",
|
||||||
effect: "물덩어리를 부딪쳐서 공격한다. 물을 흡수하여 데미지의 절반만큼 HP를 회복한다."
|
effect: "물덩어리를 부딪쳐서 공격한다. 물을 흡수하여 데미지의 절만큼 HP를 회복한다."
|
||||||
},
|
},
|
||||||
buzzyBuzz: {
|
buzzyBuzz: {
|
||||||
name: "찌릿찌릿일렉",
|
name: "찌릿찌릿일렉",
|
||||||
|
@ -2931,7 +2931,7 @@ export const move: MoveTranslationEntries = {
|
|||||||
},
|
},
|
||||||
"bouncyBubble": {
|
"bouncyBubble": {
|
||||||
name: "活活气泡",
|
name: "活活气泡",
|
||||||
effect: "投掷水球进行攻击。吸水后\n能回复等同于造成的伤害一\n半的HP",
|
effect: "投掷水球进行攻击。吸水后\n能回复等同于造成的伤害\n的HP",
|
||||||
},
|
},
|
||||||
"buzzyBuzz": {
|
"buzzyBuzz": {
|
||||||
name: "麻麻电击",
|
name: "麻麻电击",
|
||||||
|
@ -2817,7 +2817,7 @@ export const move: MoveTranslationEntries = {
|
|||||||
},
|
},
|
||||||
bouncyBubble: {
|
bouncyBubble: {
|
||||||
name: "活活氣泡",
|
name: "活活氣泡",
|
||||||
effect: "投擲水球進行攻擊。吸水後\n能回覆等同於造成的傷害一\n半的HP",
|
effect: "投擲水球進行攻擊。吸水後\n能回覆等同於造成的傷害\n的HP",
|
||||||
},
|
},
|
||||||
buzzyBuzz: {
|
buzzyBuzz: {
|
||||||
name: "麻麻電擊",
|
name: "麻麻電擊",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { BattleSpec } from "./enums/battle-spec";
|
import { BattleSpec } from "#enums/battle-spec";
|
||||||
import Pokemon from "./field/pokemon";
|
import Pokemon from "./field/pokemon";
|
||||||
import i18next from "./plugins/i18n";
|
import i18next from "./plugins/i18n";
|
||||||
|
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
import * as Modifiers from "./modifier";
|
import * as Modifiers from "./modifier";
|
||||||
import { AttackMove, allMoves } from "../data/move";
|
import { AttackMove, allMoves } from "../data/move";
|
||||||
import { Moves } from "../data/enums/moves";
|
|
||||||
import { Abilities } from "../data/enums/abilities";
|
|
||||||
import { PokeballType, getPokeballCatchMultiplier, getPokeballName } from "../data/pokeball";
|
import { PokeballType, getPokeballCatchMultiplier, getPokeballName } from "../data/pokeball";
|
||||||
import Pokemon, { EnemyPokemon, PlayerPokemon, PokemonMove } from "../field/pokemon";
|
import Pokemon, { EnemyPokemon, PlayerPokemon, PokemonMove } from "../field/pokemon";
|
||||||
import { EvolutionItem, pokemonEvolutions } from "../data/pokemon-evolutions";
|
import { EvolutionItem, pokemonEvolutions } from "../data/pokemon-evolutions";
|
||||||
@ -12,7 +10,6 @@ import PartyUiHandler, { PokemonMoveSelectFilter, PokemonSelectFilter } from "..
|
|||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { TempBattleStat, getTempBattleStatBoosterItemName, getTempBattleStatName } from "../data/temp-battle-stat";
|
import { TempBattleStat, getTempBattleStatBoosterItemName, getTempBattleStatName } from "../data/temp-battle-stat";
|
||||||
import { getBerryEffectDescription, getBerryName } from "../data/berry";
|
import { getBerryEffectDescription, getBerryName } from "../data/berry";
|
||||||
import { BerryType } from "../data/enums/berry-type";
|
|
||||||
import { Unlockables } from "../system/unlockables";
|
import { Unlockables } from "../system/unlockables";
|
||||||
import { StatusEffect, getStatusEffectDescriptor } from "../data/status-effect";
|
import { StatusEffect, getStatusEffectDescriptor } from "../data/status-effect";
|
||||||
import { SpeciesFormKey } from "../data/pokemon-species";
|
import { SpeciesFormKey } from "../data/pokemon-species";
|
||||||
@ -23,9 +20,12 @@ import { ModifierTier } from "./modifier-tier";
|
|||||||
import { Nature, getNatureName, getNatureStatMultiplier } from "#app/data/nature";
|
import { Nature, getNatureName, getNatureStatMultiplier } from "#app/data/nature";
|
||||||
import i18next from "#app/plugins/i18n";
|
import i18next from "#app/plugins/i18n";
|
||||||
import { getModifierTierTextTint } from "#app/ui/text";
|
import { getModifierTierTextTint } from "#app/ui/text";
|
||||||
import { BattlerTagType } from "#app/data/enums/battler-tag-type.js";
|
|
||||||
import * as Overrides from "../overrides";
|
import * as Overrides from "../overrides";
|
||||||
import { MoneyMultiplierModifier } from "./modifier";
|
import { MoneyMultiplierModifier } from "./modifier";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
|
import { BerryType } from "#enums/berry-type";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
|
||||||
const outputModifierData = false;
|
const outputModifierData = false;
|
||||||
const useMaxWeightForOutput = false;
|
const useMaxWeightForOutput = false;
|
||||||
|
@ -13,13 +13,13 @@ import { getPokemonMessage } from "../messages";
|
|||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { TempBattleStat } from "../data/temp-battle-stat";
|
import { TempBattleStat } from "../data/temp-battle-stat";
|
||||||
import { getBerryEffectFunc, getBerryPredicate } from "../data/berry";
|
import { getBerryEffectFunc, getBerryPredicate } from "../data/berry";
|
||||||
import { BerryType } from "../data/enums/berry-type";
|
import { BattlerTagType} from "#enums/battler-tag-type";
|
||||||
|
import { BerryType } from "#enums/berry-type";
|
||||||
import { StatusEffect, getStatusEffectHealText } from "../data/status-effect";
|
import { StatusEffect, getStatusEffectHealText } from "../data/status-effect";
|
||||||
import { achvs } from "../system/achv";
|
import { achvs } from "../system/achv";
|
||||||
import { VoucherType } from "../system/voucher";
|
import { VoucherType } from "../system/voucher";
|
||||||
import { FormChangeItem, SpeciesFormChangeItemTrigger } from "../data/pokemon-forms";
|
import { FormChangeItem, SpeciesFormChangeItemTrigger } from "../data/pokemon-forms";
|
||||||
import { Nature } from "#app/data/nature";
|
import { Nature } from "#app/data/nature";
|
||||||
import { BattlerTagType } from "#app/data/enums/battler-tag-type";
|
|
||||||
import * as Overrides from "../overrides";
|
import * as Overrides from "../overrides";
|
||||||
import { ModifierType, modifierTypes } from "./modifier-type";
|
import { ModifierType, modifierTypes } from "./modifier-type";
|
||||||
import { Command } from "#app/ui/command-ui-handler.js";
|
import { Command } from "#app/ui/command-ui-handler.js";
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
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";
|
import { WeatherType } from "./data/weather";
|
||||||
import { Variant } from "./data/variant";
|
import { Variant } from "./data/variant";
|
||||||
import { BerryType } from "./data/enums/berry-type";
|
|
||||||
import { TempBattleStat } from "./data/temp-battle-stat";
|
import { TempBattleStat } from "./data/temp-battle-stat";
|
||||||
import { Nature } from "./data/nature";
|
import { Nature } from "./data/nature";
|
||||||
import { Type } from "./data/type";
|
import { Type } from "./data/type";
|
||||||
import { Stat } from "./data/pokemon-stat";
|
import { Stat } from "./data/pokemon-stat";
|
||||||
import { PokeballCounts } from "./battle-scene";
|
import { PokeballCounts } from "./battle-scene";
|
||||||
import { PokeballType } from "./data/pokeball";
|
import { PokeballType } from "./data/pokeball";
|
||||||
import {TimeOfDay} from "#app/data/enums/time-of-day";
|
|
||||||
import { Gender } from "./data/gender";
|
import { Gender } from "./data/gender";
|
||||||
import { StatusEffect } from "./data/status-effect";
|
import { StatusEffect } from "./data/status-effect";
|
||||||
import { modifierTypes } from "./modifier/modifier-type";
|
import { modifierTypes } from "./modifier/modifier-type";
|
||||||
import { allSpecies } from "./data/pokemon-species"; // eslint-disable-line @typescript-eslint/no-unused-vars
|
import { allSpecies } from "./data/pokemon-species"; // eslint-disable-line @typescript-eslint/no-unused-vars
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { BerryType } from "#enums/berry-type";
|
||||||
|
import { Biome } from "#enums/biome";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import { TimeOfDay } from "#enums/time-of-day";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Overrides for testing different in game situations
|
* Overrides for testing different in game situations
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import BattleScene, { bypassLogin } from "./battle-scene";
|
import BattleScene, { bypassLogin } from "./battle-scene";
|
||||||
import { default as Pokemon, PlayerPokemon, EnemyPokemon, PokemonMove, MoveResult, DamageResult, FieldPosition, HitResult, TurnMove } from "./field/pokemon";
|
import { default as Pokemon, PlayerPokemon, EnemyPokemon, PokemonMove, MoveResult, DamageResult, FieldPosition, HitResult, TurnMove } from "./field/pokemon";
|
||||||
import * as Utils from "./utils";
|
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, getMoveTargets, MoveTargetSet, MoveEffectTrigger, CopyMoveAttr, AttackMove, SelfStatusMove, PreMoveMessageAttr, HealStatusEffectAttr, IgnoreOpponentStatChangesAttr, NoEffectAttr, BypassRedirectAttr, FixedDamageAttr, PostVictoryStatChangeAttr, OneHitKOAccuracyAttr, ForceSwitchOutAttr, VariableTargetAttr, IncrementMovePriorityAttr } from "./data/move";
|
import { allMoves, applyMoveAttrs, BypassSleepAttr, ChargeAttr, applyFilteredMoveAttrs, HitsTagAttr, MissEffectAttr, MoveAttr, MoveEffectAttr, MoveFlags, MultiHitAttr, OverrideMoveEffectAttr, VariableAccuracyAttr, MoveTarget, getMoveTargets, MoveTargetSet, MoveEffectTrigger, CopyMoveAttr, AttackMove, SelfStatusMove, PreMoveMessageAttr, HealStatusEffectAttr, IgnoreOpponentStatChangesAttr, NoEffectAttr, BypassRedirectAttr, FixedDamageAttr, PostVictoryStatChangeAttr, OneHitKOAccuracyAttr, ForceSwitchOutAttr, VariableTargetAttr, IncrementMovePriorityAttr } from "./data/move";
|
||||||
import { Mode } from "./ui/ui";
|
import { Mode } from "./ui/ui";
|
||||||
import { Command } from "./ui/command-ui-handler";
|
import { Command } from "./ui/command-ui-handler";
|
||||||
@ -17,34 +16,27 @@ import { EvolutionPhase } from "./evolution-phase";
|
|||||||
import { Phase } from "./phase";
|
import { Phase } from "./phase";
|
||||||
import { BattleStat, getBattleStatLevelChangeDescription, getBattleStatName } from "./data/battle-stat";
|
import { BattleStat, getBattleStatLevelChangeDescription, getBattleStatName } from "./data/battle-stat";
|
||||||
import { biomeLinks, getBiomeName } from "./data/biomes";
|
import { biomeLinks, getBiomeName } from "./data/biomes";
|
||||||
import { Biome } from "./data/enums/biome";
|
|
||||||
import { ModifierTier } from "./modifier/modifier-tier";
|
import { ModifierTier } from "./modifier/modifier-tier";
|
||||||
import { FusePokemonModifierType, ModifierPoolType, ModifierType, ModifierTypeFunc, ModifierTypeOption, PokemonModifierType, PokemonMoveModifierType, PokemonPpRestoreModifierType, PokemonPpUpModifierType, RememberMoveModifierType, TmModifierType, getDailyRunStarterModifiers, getEnemyBuffModifierForWave, getModifierType, getPlayerModifierTypeOptions, getPlayerShopModifierTypeOptionsForWave, modifierTypes, regenerateModifierPoolThresholds } from "./modifier/modifier-type";
|
import { FusePokemonModifierType, ModifierPoolType, ModifierType, ModifierTypeFunc, ModifierTypeOption, PokemonModifierType, PokemonMoveModifierType, PokemonPpRestoreModifierType, PokemonPpUpModifierType, RememberMoveModifierType, TmModifierType, getDailyRunStarterModifiers, getEnemyBuffModifierForWave, getModifierType, getPlayerModifierTypeOptions, getPlayerShopModifierTypeOptionsForWave, modifierTypes, regenerateModifierPoolThresholds } from "./modifier/modifier-type";
|
||||||
import SoundFade from "phaser3-rex-plugins/plugins/soundfade";
|
import SoundFade from "phaser3-rex-plugins/plugins/soundfade";
|
||||||
import { BattlerTagLapseType, EncoreTag, HideSpriteTag as HiddenTag, ProtectedTag, TrappedTag } from "./data/battler-tags";
|
import { BattlerTagLapseType, EncoreTag, HideSpriteTag as HiddenTag, ProtectedTag, TrappedTag } from "./data/battler-tags";
|
||||||
import { BattlerTagType } from "./data/enums/battler-tag-type";
|
|
||||||
import { getPokemonMessage, getPokemonNameWithAffix } from "./messages";
|
import { getPokemonMessage, getPokemonNameWithAffix } from "./messages";
|
||||||
import { Starter } from "./ui/starter-select-ui-handler";
|
import { Starter } from "./ui/starter-select-ui-handler";
|
||||||
import { Gender } from "./data/gender";
|
import { Gender } from "./data/gender";
|
||||||
import { Weather, WeatherType, getRandomWeatherType, getTerrainBlockMessage, getWeatherDamageMessage, getWeatherLapseMessage } from "./data/weather";
|
import { Weather, WeatherType, getRandomWeatherType, getTerrainBlockMessage, getWeatherDamageMessage, getWeatherLapseMessage } from "./data/weather";
|
||||||
import { TempBattleStat } from "./data/temp-battle-stat";
|
import { TempBattleStat } from "./data/temp-battle-stat";
|
||||||
import { ArenaTagSide, ArenaTrapTag, MistTag, TrickRoomTag } from "./data/arena-tag";
|
import { ArenaTagSide, ArenaTrapTag, MistTag, TrickRoomTag } from "./data/arena-tag";
|
||||||
import { ArenaTagType } from "./data/enums/arena-tag-type";
|
|
||||||
import { CheckTrappedAbAttr, IgnoreOpponentStatChangesAbAttr, IgnoreOpponentEvasionAbAttr, PostAttackAbAttr, PostBattleAbAttr, PostDefendAbAttr, PostSummonAbAttr, PostTurnAbAttr, PostWeatherLapseAbAttr, PreSwitchOutAbAttr, PreWeatherDamageAbAttr, ProtectStatAbAttr, RedirectMoveAbAttr, BlockRedirectAbAttr, RunSuccessAbAttr, StatChangeMultiplierAbAttr, SuppressWeatherEffectAbAttr, SyncEncounterNatureAbAttr, applyAbAttrs, applyCheckTrappedAbAttrs, applyPostAttackAbAttrs, applyPostBattleAbAttrs, applyPostDefendAbAttrs, applyPostSummonAbAttrs, applyPostTurnAbAttrs, applyPostWeatherLapseAbAttrs, applyPreStatChangeAbAttrs, applyPreSwitchOutAbAttrs, applyPreWeatherEffectAbAttrs, BattleStatMultiplierAbAttr, applyBattleStatMultiplierAbAttrs, IncrementMovePriorityAbAttr, applyPostVictoryAbAttrs, PostVictoryAbAttr, BlockNonDirectDamageAbAttr as BlockNonDirectDamageAbAttr, applyPostKnockOutAbAttrs, PostKnockOutAbAttr, PostBiomeChangeAbAttr, applyPostFaintAbAttrs, PostFaintAbAttr, IncreasePpAbAttr, PostStatChangeAbAttr, applyPostStatChangeAbAttrs, AlwaysHitAbAttr, PreventBerryUseAbAttr, StatChangeCopyAbAttr, PokemonTypeChangeAbAttr, applyPreAttackAbAttrs, applyPostMoveUsedAbAttrs, PostMoveUsedAbAttr, MaxMultiHitAbAttr, HealFromBerryUseAbAttr } from "./data/ability";
|
import { CheckTrappedAbAttr, IgnoreOpponentStatChangesAbAttr, IgnoreOpponentEvasionAbAttr, PostAttackAbAttr, PostBattleAbAttr, PostDefendAbAttr, PostSummonAbAttr, PostTurnAbAttr, PostWeatherLapseAbAttr, PreSwitchOutAbAttr, PreWeatherDamageAbAttr, ProtectStatAbAttr, RedirectMoveAbAttr, BlockRedirectAbAttr, RunSuccessAbAttr, StatChangeMultiplierAbAttr, SuppressWeatherEffectAbAttr, SyncEncounterNatureAbAttr, applyAbAttrs, applyCheckTrappedAbAttrs, applyPostAttackAbAttrs, applyPostBattleAbAttrs, applyPostDefendAbAttrs, applyPostSummonAbAttrs, applyPostTurnAbAttrs, applyPostWeatherLapseAbAttrs, applyPreStatChangeAbAttrs, applyPreSwitchOutAbAttrs, applyPreWeatherEffectAbAttrs, BattleStatMultiplierAbAttr, applyBattleStatMultiplierAbAttrs, IncrementMovePriorityAbAttr, applyPostVictoryAbAttrs, PostVictoryAbAttr, BlockNonDirectDamageAbAttr as BlockNonDirectDamageAbAttr, applyPostKnockOutAbAttrs, PostKnockOutAbAttr, PostBiomeChangeAbAttr, applyPostFaintAbAttrs, PostFaintAbAttr, IncreasePpAbAttr, PostStatChangeAbAttr, applyPostStatChangeAbAttrs, AlwaysHitAbAttr, PreventBerryUseAbAttr, StatChangeCopyAbAttr, PokemonTypeChangeAbAttr, applyPreAttackAbAttrs, applyPostMoveUsedAbAttrs, PostMoveUsedAbAttr, MaxMultiHitAbAttr, HealFromBerryUseAbAttr } from "./data/ability";
|
||||||
import { Unlockables, getUnlockableName } from "./system/unlockables";
|
import { Unlockables, getUnlockableName } from "./system/unlockables";
|
||||||
import { getBiomeKey } from "./field/arena";
|
import { getBiomeKey } from "./field/arena";
|
||||||
import { BattleType, BattlerIndex, TurnCommand } from "./battle";
|
import { BattleType, BattlerIndex, TurnCommand } from "./battle";
|
||||||
import { BattleSpec } from "./enums/battle-spec";
|
|
||||||
import { Species } from "./data/enums/species";
|
|
||||||
import { ChallengeAchv, HealAchv, LevelAchv, achvs } from "./system/achv";
|
import { ChallengeAchv, HealAchv, LevelAchv, achvs } from "./system/achv";
|
||||||
import { TrainerSlot, trainerConfigs } from "./data/trainer-config";
|
import { TrainerSlot, trainerConfigs } from "./data/trainer-config";
|
||||||
import { TrainerType } from "./data/enums/trainer-type";
|
|
||||||
import { EggHatchPhase } from "./egg-hatch-phase";
|
import { EggHatchPhase } from "./egg-hatch-phase";
|
||||||
import { Egg } from "./data/egg";
|
import { Egg } from "./data/egg";
|
||||||
import { vouchers } from "./system/voucher";
|
import { vouchers } from "./system/voucher";
|
||||||
import { loggedInUser, updateUserInfo } from "./account";
|
import { loggedInUser, updateUserInfo } from "./account";
|
||||||
import { SessionSaveData } from "./system/game-data";
|
import { SessionSaveData } from "./system/game-data";
|
||||||
import { PlayerGender } from "./data/enums/player-gender";
|
|
||||||
import { addPokeballCaptureStars, addPokeballOpenParticles } from "./field/anims";
|
import { addPokeballCaptureStars, addPokeballOpenParticles } from "./field/anims";
|
||||||
import { SpeciesFormChangeActiveTrigger, SpeciesFormChangeManualTrigger, SpeciesFormChangeMoveLearnedTrigger, SpeciesFormChangePostMoveTrigger, SpeciesFormChangePreMoveTrigger } from "./data/pokemon-forms";
|
import { SpeciesFormChangeActiveTrigger, SpeciesFormChangeManualTrigger, SpeciesFormChangeMoveLearnedTrigger, SpeciesFormChangePostMoveTrigger, SpeciesFormChangePreMoveTrigger } from "./data/pokemon-forms";
|
||||||
import { battleSpecDialogue, getCharVariantFromDialogue, miscDialogue } from "./data/dialogue";
|
import { battleSpecDialogue, getCharVariantFromDialogue, miscDialogue } from "./data/dialogue";
|
||||||
@ -58,13 +50,21 @@ import { fetchDailyRunSeed, getDailyRunStarters } from "./data/daily-run";
|
|||||||
import { GameMode, GameModes, getGameMode } from "./game-mode";
|
import { GameMode, GameModes, getGameMode } from "./game-mode";
|
||||||
import PokemonSpecies, { getPokemonSpecies, speciesStarters } from "./data/pokemon-species";
|
import PokemonSpecies, { getPokemonSpecies, speciesStarters } from "./data/pokemon-species";
|
||||||
import i18next from "./plugins/i18n";
|
import i18next from "./plugins/i18n";
|
||||||
import { Abilities } from "./data/enums/abilities";
|
|
||||||
import * as Overrides from "./overrides";
|
import * as Overrides from "./overrides";
|
||||||
import { TextStyle, addTextObject } from "./ui/text";
|
import { TextStyle, addTextObject } from "./ui/text";
|
||||||
import { Type } from "./data/type";
|
import { Type } from "./data/type";
|
||||||
import { BerryUsedEvent, EncounterPhaseEvent, MoveUsedEvent, TurnEndEvent, TurnInitEvent } from "./events/battle-scene";
|
import { BerryUsedEvent, EncounterPhaseEvent, MoveUsedEvent, TurnEndEvent, TurnInitEvent } from "./events/battle-scene";
|
||||||
import { ExpNotification } from "./enums/exp-notification";
|
import { Abilities } from "#enums/abilities";
|
||||||
import { BattleStyle } from "./enums/battle-style";
|
import { ArenaTagType } from "#enums/arena-tag-type";
|
||||||
|
import { BattleSpec } from "#enums/battle-spec";
|
||||||
|
import { BattleStyle } from "#enums/battle-style";
|
||||||
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
|
import { Biome } from "#enums/biome";
|
||||||
|
import { ExpNotification } from "#enums/exp-notification";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { PlayerGender } from "#enums/player-gender";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
|
|
||||||
|
|
||||||
export class LoginPhase extends Phase {
|
export class LoginPhase extends Phase {
|
||||||
|
@ -3,7 +3,7 @@ import BattleScene from "../battle-scene";
|
|||||||
import { TurnHeldItemTransferModifier } from "../modifier/modifier";
|
import { TurnHeldItemTransferModifier } from "../modifier/modifier";
|
||||||
import i18next from "../plugins/i18n";
|
import i18next from "../plugins/i18n";
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import { PlayerGender } from "#app/data/enums/player-gender";
|
import { PlayerGender } from "#enums/player-gender";
|
||||||
import { ParseKeys } from "i18next";
|
import { ParseKeys } from "i18next";
|
||||||
import { Challenge, SingleGenerationChallenge, SingleTypeChallenge } from "#app/data/challenge.js";
|
import { Challenge, SingleGenerationChallenge, SingleTypeChallenge } from "#app/data/challenge.js";
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Arena } from "../field/arena";
|
import { Arena } from "../field/arena";
|
||||||
import { ArenaTag } from "../data/arena-tag";
|
import { ArenaTag } from "../data/arena-tag";
|
||||||
import { Biome } from "../data/enums/biome";
|
import { Biome } from "#enums/biome";
|
||||||
import { Weather } from "../data/weather";
|
import { Weather } from "../data/weather";
|
||||||
import { Terrain } from "#app/data/terrain.js";
|
import { Terrain } from "#app/data/terrain.js";
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@ import BattleScene, { PokeballCounts, bypassLogin } from "../battle-scene";
|
|||||||
import Pokemon, { EnemyPokemon, PlayerPokemon } from "../field/pokemon";
|
import Pokemon, { EnemyPokemon, PlayerPokemon } from "../field/pokemon";
|
||||||
import { pokemonEvolutions, pokemonPrevolutions } from "../data/pokemon-evolutions";
|
import { pokemonEvolutions, pokemonPrevolutions } from "../data/pokemon-evolutions";
|
||||||
import PokemonSpecies, { allSpecies, getPokemonSpecies, noStarterFormKeys, speciesStarters } from "../data/pokemon-species";
|
import PokemonSpecies, { allSpecies, getPokemonSpecies, noStarterFormKeys, speciesStarters } from "../data/pokemon-species";
|
||||||
import { Species, defaultStarterSpecies } from "../data/enums/species";
|
|
||||||
import * as Utils from "../utils";
|
import * as Utils from "../utils";
|
||||||
import * as Overrides from "../overrides";
|
import * as Overrides from "../overrides";
|
||||||
import PokemonData from "./pokemon-data";
|
import PokemonData from "./pokemon-data";
|
||||||
@ -24,7 +23,6 @@ import { clientSessionId, loggedInUser, updateUserInfo } from "../account";
|
|||||||
import { Nature } from "../data/nature";
|
import { Nature } from "../data/nature";
|
||||||
import { GameStats } from "./game-stats";
|
import { GameStats } from "./game-stats";
|
||||||
import { Tutorial } from "../tutorial";
|
import { Tutorial } from "../tutorial";
|
||||||
import { Moves } from "../data/enums/moves";
|
|
||||||
import { speciesEggMoves } from "../data/egg-moves";
|
import { speciesEggMoves } from "../data/egg-moves";
|
||||||
import { allMoves } from "../data/move";
|
import { allMoves } from "../data/move";
|
||||||
import { TrainerVariant } from "../field/trainer";
|
import { TrainerVariant } from "../field/trainer";
|
||||||
@ -32,13 +30,27 @@ import { OutdatedPhase, ReloadSessionPhase } from "#app/phases";
|
|||||||
import { Variant, variantData } from "#app/data/variant";
|
import { Variant, variantData } from "#app/data/variant";
|
||||||
import {setSettingGamepad, SettingGamepad, settingGamepadDefaults} from "./settings/settings-gamepad";
|
import {setSettingGamepad, SettingGamepad, settingGamepadDefaults} from "./settings/settings-gamepad";
|
||||||
import {setSettingKeyboard, SettingKeyboard} from "#app/system/settings/settings-keyboard";
|
import {setSettingKeyboard, SettingKeyboard} from "#app/system/settings/settings-keyboard";
|
||||||
import { TerrainChangedEvent, WeatherChangedEvent } from "#app/field/events/arena";
|
import { TerrainChangedEvent, WeatherChangedEvent } from "#app/events/arena.js";
|
||||||
import { Device } from "#app/enums/devices.js";
|
|
||||||
import { EnemyAttackStatusEffectChanceModifier } from "../modifier/modifier";
|
import { EnemyAttackStatusEffectChanceModifier } from "../modifier/modifier";
|
||||||
import { StatusEffect } from "#app/data/status-effect.js";
|
import { StatusEffect } from "#app/data/status-effect.js";
|
||||||
import { PlayerGender } from "#app/data/enums/player-gender";
|
|
||||||
import { GameDataType } from "#app/data/enums/game-data-type";
|
|
||||||
import ChallengeData from "./challenge-data";
|
import ChallengeData from "./challenge-data";
|
||||||
|
import { Device } from "#enums/devices";
|
||||||
|
import { GameDataType } from "#enums/game-data-type";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { PlayerGender } from "#enums/player-gender";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
|
export const defaultStarterSpecies: Species[] = [
|
||||||
|
Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE,
|
||||||
|
Species.CHIKORITA, Species.CYNDAQUIL, Species.TOTODILE,
|
||||||
|
Species.TREECKO, Species.TORCHIC, Species.MUDKIP,
|
||||||
|
Species.TURTWIG, Species.CHIMCHAR, Species.PIPLUP,
|
||||||
|
Species.SNIVY, Species.TEPIG, Species.OSHAWOTT,
|
||||||
|
Species.CHESPIN, Species.FENNEKIN, Species.FROAKIE,
|
||||||
|
Species.ROWLET, Species.LITTEN, Species.POPPLIO,
|
||||||
|
Species.GROOKEY, Species.SCORBUNNY, Species.SOBBLE,
|
||||||
|
Species.SPRIGATITO, Species.FUECOCO, Species.QUAXLY
|
||||||
|
];
|
||||||
|
|
||||||
const saveKey = "x0i2O7WRiANTqPmZ"; // Temporary; secure encryption is not yet necessary
|
const saveKey = "x0i2O7WRiANTqPmZ"; // Temporary; secure encryption is not yet necessary
|
||||||
|
|
||||||
@ -1213,9 +1225,11 @@ export class GameData {
|
|||||||
|
|
||||||
reader.onload = (_ => {
|
reader.onload = (_ => {
|
||||||
return e => {
|
return e => {
|
||||||
|
let dataName: string;
|
||||||
let dataStr = AES.decrypt(e.target.result.toString(), saveKey).toString(enc.Utf8);
|
let dataStr = AES.decrypt(e.target.result.toString(), saveKey).toString(enc.Utf8);
|
||||||
let valid = false;
|
let valid = false;
|
||||||
try {
|
try {
|
||||||
|
dataName = GameDataType[dataType].toLowerCase();
|
||||||
switch (dataType) {
|
switch (dataType) {
|
||||||
case GameDataType.SYSTEM:
|
case GameDataType.SYSTEM:
|
||||||
dataStr = this.convertSystemDataStr(dataStr);
|
dataStr = this.convertSystemDataStr(dataStr);
|
||||||
@ -1235,28 +1249,12 @@ export class GameData {
|
|||||||
console.error(ex);
|
console.error(ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
let dataName: string;
|
|
||||||
switch (dataType) {
|
|
||||||
case GameDataType.SYSTEM:
|
|
||||||
dataName = "save";
|
|
||||||
break;
|
|
||||||
case GameDataType.SESSION:
|
|
||||||
dataName = "session";
|
|
||||||
break;
|
|
||||||
case GameDataType.SETTINGS:
|
|
||||||
dataName = "settings";
|
|
||||||
break;
|
|
||||||
case GameDataType.TUTORIALS:
|
|
||||||
dataName = "tutorials";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
const displayError = (error: string) => this.scene.ui.showText(error, null, () => this.scene.ui.showText(null, 0), Utils.fixedInt(1500));
|
const displayError = (error: string) => this.scene.ui.showText(error, null, () => this.scene.ui.showText(null, 0), Utils.fixedInt(1500));
|
||||||
|
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
return this.scene.ui.showText(`Your ${dataName} data could not be loaded. It may be corrupted.`, null, () => this.scene.ui.showText(null, 0), Utils.fixedInt(1500));
|
return this.scene.ui.showText(`Your ${dataName} data could not be loaded. It may be corrupted.`, null, () => this.scene.ui.showText(null, 0), Utils.fixedInt(1500));
|
||||||
}
|
}
|
||||||
this.scene.ui.revertMode();
|
|
||||||
this.scene.ui.showText(`Your ${dataName} data will be overridden and the page will reload. Proceed?`, null, () => {
|
this.scene.ui.showText(`Your ${dataName} data will be overridden and the page will reload. Proceed?`, null, () => {
|
||||||
this.scene.ui.setOverlayMode(Mode.CONFIRM, () => {
|
this.scene.ui.setOverlayMode(Mode.CONFIRM, () => {
|
||||||
localStorage.setItem(dataKey, encrypt(dataStr, bypassLogin));
|
localStorage.setItem(dataKey, encrypt(dataStr, bypassLogin));
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
import { BattleType } from "../battle";
|
import { BattleType } from "../battle";
|
||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
import { Biome } from "../data/enums/biome";
|
|
||||||
import { Gender } from "../data/gender";
|
import { Gender } from "../data/gender";
|
||||||
import { Nature } from "../data/nature";
|
import { Nature } from "../data/nature";
|
||||||
import { PokeballType } from "../data/pokeball";
|
import { PokeballType } from "../data/pokeball";
|
||||||
import { getPokemonSpecies } from "../data/pokemon-species";
|
import { getPokemonSpecies } from "../data/pokemon-species";
|
||||||
import { Species } from "../data/enums/species";
|
|
||||||
import { Status } from "../data/status-effect";
|
import { Status } from "../data/status-effect";
|
||||||
import Pokemon, { EnemyPokemon, PokemonMove, PokemonSummonData } from "../field/pokemon";
|
import Pokemon, { EnemyPokemon, PokemonMove, PokemonSummonData } from "../field/pokemon";
|
||||||
import { TrainerSlot } from "../data/trainer-config";
|
import { TrainerSlot } from "../data/trainer-config";
|
||||||
import { Moves } from "../data/enums/moves";
|
|
||||||
import { Variant } from "#app/data/variant";
|
import { Variant } from "#app/data/variant";
|
||||||
import { loadBattlerTag } from "../data/battler-tags";
|
import { loadBattlerTag } from "../data/battler-tags";
|
||||||
|
import { Biome } from "#enums/biome";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
export default class PokemonData {
|
export default class PokemonData {
|
||||||
public id: integer;
|
public id: integer;
|
||||||
|
@ -2,7 +2,7 @@ import BattleScene from "../../battle-scene";
|
|||||||
import SettingsGamepadUiHandler from "../../ui/settings/settings-gamepad-ui-handler";
|
import SettingsGamepadUiHandler from "../../ui/settings/settings-gamepad-ui-handler";
|
||||||
import {Mode} from "../../ui/ui";
|
import {Mode} from "../../ui/ui";
|
||||||
import {truncateString} from "../../utils";
|
import {truncateString} from "../../utils";
|
||||||
import {Button} from "../../enums/buttons";
|
import {Button} from "#enums/buttons";
|
||||||
import {SettingKeyboard} from "#app/system/settings/settings-keyboard";
|
import {SettingKeyboard} from "#app/system/settings/settings-keyboard";
|
||||||
|
|
||||||
export enum SettingGamepad {
|
export enum SettingGamepad {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import {Button} from "#app/enums/buttons";
|
import {Button} from "#enums/buttons";
|
||||||
import BattleScene from "#app/battle-scene";
|
import BattleScene from "#app/battle-scene";
|
||||||
import {Mode} from "#app/ui/ui";
|
import {Mode} from "#app/ui/ui";
|
||||||
import SettingsKeyboardUiHandler from "#app/ui/settings/settings-keyboard-ui-handler";
|
import SettingsKeyboardUiHandler from "#app/ui/settings/settings-keyboard-ui-handler";
|
||||||
|
@ -3,11 +3,11 @@ import i18next from "i18next";
|
|||||||
import BattleScene from "../../battle-scene";
|
import BattleScene from "../../battle-scene";
|
||||||
import { hasTouchscreen } from "../../touch-controls";
|
import { hasTouchscreen } from "../../touch-controls";
|
||||||
import { updateWindowType } from "../../ui/ui-theme";
|
import { updateWindowType } from "../../ui/ui-theme";
|
||||||
import { PlayerGender } from "#app/data/enums/player-gender";
|
|
||||||
import { CandyUpgradeNotificationChangedEvent } from "../../events/battle-scene";
|
import { CandyUpgradeNotificationChangedEvent } from "../../events/battle-scene";
|
||||||
import { MoneyFormat } from "../../enums/money-format";
|
|
||||||
import SettingsUiHandler from "#app/ui/settings/settings-ui-handler";
|
import SettingsUiHandler from "#app/ui/settings/settings-ui-handler";
|
||||||
import { EaseType } from "#app/ui/enums/ease-type.js";
|
import { EaseType } from "#enums/ease-type";
|
||||||
|
import { MoneyFormat } from "#enums/money-format";
|
||||||
|
import { PlayerGender } from "#enums/player-gender";
|
||||||
|
|
||||||
const MUTE = "Mute";
|
const MUTE = "Mute";
|
||||||
const VOLUME_OPTIONS = new Array(11).fill(null).map((_, i) => i ? (i * 10).toString() : MUTE);
|
const VOLUME_OPTIONS = new Array(11).fill(null).map((_, i) => i ? (i * 10).toString() : MUTE);
|
||||||
@ -463,8 +463,7 @@ export function setSetting(scene: BattleScene, setting: string, value: integer):
|
|||||||
if (scene.ui) {
|
if (scene.ui) {
|
||||||
const cancelHandler = () => {
|
const cancelHandler = () => {
|
||||||
scene.ui.revertMode();
|
scene.ui.revertMode();
|
||||||
const languageSetting = Setting.find(setting => setting.key === SettingKeys.Language);
|
(scene.ui.getHandler() as SettingsUiHandler).setOptionCursor(0, 0, true);
|
||||||
(scene.ui.getHandler() as SettingsUiHandler).setOptionCursor(Setting.indexOf(languageSetting), 0, true);
|
|
||||||
};
|
};
|
||||||
const changeLocaleHandler = (locale: string): boolean => {
|
const changeLocaleHandler = (locale: string): boolean => {
|
||||||
try {
|
try {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
import { TrainerType } from "../data/enums/trainer-type";
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
import Trainer, { TrainerVariant } from "../field/trainer";
|
import Trainer, { TrainerVariant } from "../field/trainer";
|
||||||
|
|
||||||
export default class TrainerData {
|
export default class TrainerData {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import BattleScene from "../battle-scene";
|
import BattleScene from "../battle-scene";
|
||||||
import { TrainerType } from "../data/enums/trainer-type";
|
|
||||||
import i18next from "../plugins/i18n";
|
import i18next from "../plugins/i18n";
|
||||||
import { Achv, AchvTier, achvs, getAchievementDescription } from "./achv";
|
import { Achv, AchvTier, achvs, getAchievementDescription } from "./achv";
|
||||||
import { PlayerGender } from "#app/data/enums/player-gender";
|
import { PlayerGender } from "#enums/player-gender";
|
||||||
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
|
|
||||||
export enum VoucherType {
|
export enum VoucherType {
|
||||||
REGULAR,
|
REGULAR,
|
||||||
|
@ -2,9 +2,9 @@ import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vi
|
|||||||
import GameManager from "#test/utils/gameManager";
|
import GameManager from "#test/utils/gameManager";
|
||||||
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
||||||
import * as Overrides from "#app/overrides";
|
import * as Overrides from "#app/overrides";
|
||||||
import { Moves } from "#app/data/enums/moves.js";
|
import { Moves } from "#enums/moves";
|
||||||
import { Abilities } from "#app/data/enums/abilities.js";
|
import { Abilities } from "#enums/abilities";
|
||||||
import { Species } from "#app/data/enums/species.js";
|
import { Species } from "#enums/species";
|
||||||
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
||||||
import { TurnEndPhase } from "#app/phases.js";
|
import { TurnEndPhase } from "#app/phases.js";
|
||||||
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
||||||
|
@ -2,9 +2,9 @@ import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vi
|
|||||||
import GameManager from "#test/utils/gameManager";
|
import GameManager from "#test/utils/gameManager";
|
||||||
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
||||||
import * as Overrides from "#app/overrides";
|
import * as Overrides from "#app/overrides";
|
||||||
import { Moves } from "#app/data/enums/moves.js";
|
import { Moves } from "#enums/moves";
|
||||||
import { Abilities } from "#app/data/enums/abilities.js";
|
import { Abilities } from "#enums/abilities";
|
||||||
import { Species } from "#app/data/enums/species.js";
|
import { Species } from "#enums/species";
|
||||||
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
||||||
import { TurnEndPhase } from "#app/phases.js";
|
import { TurnEndPhase } from "#app/phases.js";
|
||||||
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
||||||
|
@ -2,8 +2,6 @@ import {afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest
|
|||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import GameManager from "#app/test/utils/gameManager";
|
import GameManager from "#app/test/utils/gameManager";
|
||||||
import * as overrides from "#app/overrides";
|
import * as overrides from "#app/overrides";
|
||||||
import {Abilities} from "#app/data/enums/abilities";
|
|
||||||
import {Species} from "#app/data/enums/species";
|
|
||||||
import {
|
import {
|
||||||
CommandPhase, DamagePhase, EncounterPhase,
|
CommandPhase, DamagePhase, EncounterPhase,
|
||||||
EnemyCommandPhase, SelectStarterPhase,
|
EnemyCommandPhase, SelectStarterPhase,
|
||||||
@ -11,11 +9,13 @@ import {
|
|||||||
} from "#app/phases";
|
} from "#app/phases";
|
||||||
import {Mode} from "#app/ui/ui";
|
import {Mode} from "#app/ui/ui";
|
||||||
import {BattleStat} from "#app/data/battle-stat";
|
import {BattleStat} from "#app/data/battle-stat";
|
||||||
import {Moves} from "#app/data/enums/moves";
|
|
||||||
import {generateStarter, getMovePosition} from "#app/test/utils/gameManagerUtils";
|
import {generateStarter, getMovePosition} from "#app/test/utils/gameManagerUtils";
|
||||||
import {Command} from "#app/ui/command-ui-handler";
|
import {Command} from "#app/ui/command-ui-handler";
|
||||||
import {Status, StatusEffect} from "#app/data/status-effect";
|
import {Status, StatusEffect} from "#app/data/status-effect";
|
||||||
import {GameModes, getGameMode} from "#app/game-mode";
|
import {GameModes, getGameMode} from "#app/game-mode";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
|
|
||||||
describe("Abilities - Intimidate", () => {
|
describe("Abilities - Intimidate", () => {
|
||||||
|
@ -2,8 +2,8 @@ import {afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest
|
|||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import GameManager from "#app/test/utils/gameManager";
|
import GameManager from "#app/test/utils/gameManager";
|
||||||
import * as overrides from "#app/overrides";
|
import * as overrides from "#app/overrides";
|
||||||
import {Abilities} from "#app/data/enums/abilities";
|
import {Abilities} from "#enums/abilities";
|
||||||
import {Species} from "#app/data/enums/species";
|
import {Species} from "#enums/species";
|
||||||
import {
|
import {
|
||||||
CommandPhase,
|
CommandPhase,
|
||||||
} from "#app/phases";
|
} from "#app/phases";
|
||||||
|
@ -2,16 +2,16 @@ import Phaser from "phaser";
|
|||||||
import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vitest";
|
import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vitest";
|
||||||
import GameManager from "../utils/gameManager";
|
import GameManager from "../utils/gameManager";
|
||||||
import * as Overrides from "#app/overrides";
|
import * as Overrides from "#app/overrides";
|
||||||
import { Species } from "#app/data/enums/species.js";
|
import { Species } from "#enums/species";
|
||||||
import { Abilities } from "#app/data/enums/abilities.js";
|
import { Abilities } from "#enums/abilities";
|
||||||
import { Moves } from "#app/data/enums/moves.js";
|
import { Moves } from "#enums/moves";
|
||||||
import { getMovePosition } from "../utils/gameManagerUtils";
|
import { getMovePosition } from "../utils/gameManagerUtils";
|
||||||
import { MoveEffectPhase, TurnEndPhase } from "#app/phases.js";
|
import { MoveEffectPhase, TurnEndPhase } from "#app/phases.js";
|
||||||
import { allMoves } from "#app/data/move.js";
|
import { allMoves } from "#app/data/move.js";
|
||||||
import { BattlerTagType } from "#app/data/enums/battler-tag-type.js";
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
import { Weather, WeatherType } from "#app/data/weather.js";
|
import { Weather, WeatherType } from "#app/data/weather.js";
|
||||||
import { Type } from "#app/data/type.js";
|
import { Type } from "#app/data/type.js";
|
||||||
import { Biome } from "#app/data/enums/biome.js";
|
import { Biome } from "#enums/biome";
|
||||||
import { PlayerPokemon } from "#app/field/pokemon.js";
|
import { PlayerPokemon } from "#app/field/pokemon.js";
|
||||||
|
|
||||||
const TIMEOUT = 20 * 1000;
|
const TIMEOUT = 20 * 1000;
|
||||||
|
@ -2,8 +2,6 @@ import {afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest
|
|||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import GameManager from "#app/test/utils/gameManager";
|
import GameManager from "#app/test/utils/gameManager";
|
||||||
import * as overrides from "#app/overrides";
|
import * as overrides from "#app/overrides";
|
||||||
import {Abilities} from "#app/data/enums/abilities";
|
|
||||||
import {Species} from "#app/data/enums/species";
|
|
||||||
import {
|
import {
|
||||||
CommandPhase,
|
CommandPhase,
|
||||||
EnemyCommandPhase,
|
EnemyCommandPhase,
|
||||||
@ -11,10 +9,12 @@ import {
|
|||||||
} from "#app/phases";
|
} from "#app/phases";
|
||||||
import {Mode} from "#app/ui/ui";
|
import {Mode} from "#app/ui/ui";
|
||||||
import {Stat} from "#app/data/pokemon-stat";
|
import {Stat} from "#app/data/pokemon-stat";
|
||||||
import {Moves} from "#app/data/enums/moves";
|
|
||||||
import {getMovePosition} from "#app/test/utils/gameManagerUtils";
|
import {getMovePosition} from "#app/test/utils/gameManagerUtils";
|
||||||
import {Command} from "#app/ui/command-ui-handler";
|
import {Command} from "#app/ui/command-ui-handler";
|
||||||
import {BattleStat} from "#app/data/battle-stat";
|
import {BattleStat} from "#app/data/battle-stat";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
|
|
||||||
describe("Abilities - Moxie", () => {
|
describe("Abilities - Moxie", () => {
|
||||||
|
@ -2,9 +2,9 @@ import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vi
|
|||||||
import GameManager from "#test/utils/gameManager";
|
import GameManager from "#test/utils/gameManager";
|
||||||
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
||||||
import * as Overrides from "#app/overrides";
|
import * as Overrides from "#app/overrides";
|
||||||
import { Moves } from "#app/data/enums/moves.js";
|
import { Moves } from "#enums/moves";
|
||||||
import { Abilities } from "#app/data/enums/abilities.js";
|
import { Abilities } from "#enums/abilities";
|
||||||
import { Species } from "#app/data/enums/species.js";
|
import { Species } from "#enums/species";
|
||||||
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
||||||
import { TurnEndPhase } from "#app/phases.js";
|
import { TurnEndPhase } from "#app/phases.js";
|
||||||
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
||||||
|
@ -2,16 +2,16 @@ import Phaser from "phaser";
|
|||||||
import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vitest";
|
import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vitest";
|
||||||
import GameManager from "../utils/gameManager";
|
import GameManager from "../utils/gameManager";
|
||||||
import * as Overrides from "#app/overrides";
|
import * as Overrides from "#app/overrides";
|
||||||
import { Species } from "#app/data/enums/species.js";
|
import { Species } from "#enums/species";
|
||||||
import { Abilities } from "#app/data/enums/abilities.js";
|
import { Abilities } from "#enums/abilities";
|
||||||
import { Moves } from "#app/data/enums/moves.js";
|
import { Moves } from "#enums/moves";
|
||||||
import { getMovePosition } from "../utils/gameManagerUtils";
|
import { getMovePosition } from "../utils/gameManagerUtils";
|
||||||
import { MoveEffectPhase, TurnEndPhase } from "#app/phases.js";
|
import { MoveEffectPhase, TurnEndPhase } from "#app/phases.js";
|
||||||
import { allMoves } from "#app/data/move.js";
|
import { allMoves } from "#app/data/move.js";
|
||||||
import { BattlerTagType } from "#app/data/enums/battler-tag-type.js";
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
import { Weather, WeatherType } from "#app/data/weather.js";
|
import { Weather, WeatherType } from "#app/data/weather.js";
|
||||||
import { Type } from "#app/data/type.js";
|
import { Type } from "#app/data/type.js";
|
||||||
import { Biome } from "#app/data/enums/biome.js";
|
import { Biome } from "#enums/biome";
|
||||||
import { PlayerPokemon } from "#app/field/pokemon.js";
|
import { PlayerPokemon } from "#app/field/pokemon.js";
|
||||||
|
|
||||||
const TIMEOUT = 20 * 1000;
|
const TIMEOUT = 20 * 1000;
|
||||||
|
@ -2,19 +2,16 @@ import {afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest
|
|||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import GameManager from "#app/test/utils/gameManager";
|
import GameManager from "#app/test/utils/gameManager";
|
||||||
import * as overrides from "#app/overrides";
|
import * as overrides from "#app/overrides";
|
||||||
import {Species} from "#app/data/enums/species";
|
|
||||||
import {
|
import {
|
||||||
CommandPhase,
|
MoveEndPhase, TurnEndPhase,
|
||||||
EnemyCommandPhase, MoveEndPhase, TurnEndPhase,
|
|
||||||
} from "#app/phases";
|
} from "#app/phases";
|
||||||
import {Mode} from "#app/ui/ui";
|
|
||||||
import {Moves} from "#app/data/enums/moves";
|
|
||||||
import {getMovePosition} from "#app/test/utils/gameManagerUtils";
|
import {getMovePosition} from "#app/test/utils/gameManagerUtils";
|
||||||
import {Command} from "#app/ui/command-ui-handler";
|
|
||||||
import { Abilities } from "#app/data/enums/abilities.js";
|
|
||||||
import { BattleStat } from "#app/data/battle-stat.js";
|
import { BattleStat } from "#app/data/battle-stat.js";
|
||||||
import { TerrainType } from "#app/data/terrain.js";
|
import { TerrainType } from "#app/data/terrain.js";
|
||||||
import { BattlerTagType } from "#app/data/enums/battler-tag-type.js";
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
// See also: TypeImmunityAbAttr
|
// See also: TypeImmunityAbAttr
|
||||||
describe("Abilities - Sap Sipper", () => {
|
describe("Abilities - Sap Sipper", () => {
|
||||||
@ -50,15 +47,9 @@ describe("Abilities - Sap Sipper", () => {
|
|||||||
|
|
||||||
const startingOppHp = game.scene.currentBattle.enemyParty[0].hp;
|
const startingOppHp = game.scene.currentBattle.enemyParty[0].hp;
|
||||||
|
|
||||||
game.onNextPrompt("CommandPhase", Mode.COMMAND, () => {
|
game.doAttack(getMovePosition(game.scene, 0, moveToUse));
|
||||||
game.scene.ui.setMode(Mode.FIGHT, (game.scene.getCurrentPhase() as CommandPhase).getFieldIndex());
|
|
||||||
});
|
|
||||||
game.onNextPrompt("CommandPhase", Mode.FIGHT, () => {
|
|
||||||
const movePosition = getMovePosition(game.scene, 0, moveToUse);
|
|
||||||
(game.scene.getCurrentPhase() as CommandPhase).handleCommand(Command.FIGHT, movePosition, false);
|
|
||||||
});
|
|
||||||
|
|
||||||
await game.phaseInterceptor.runFrom(EnemyCommandPhase).to(TurnEndPhase);
|
await game.phaseInterceptor.to(TurnEndPhase);
|
||||||
|
|
||||||
expect(startingOppHp - game.scene.getEnemyParty()[0].hp).toBe(0);
|
expect(startingOppHp - game.scene.getEnemyParty()[0].hp).toBe(0);
|
||||||
expect(game.scene.getEnemyParty()[0].summonData.battleStats[BattleStat.ATK]).toBe(1);
|
expect(game.scene.getEnemyParty()[0].summonData.battleStats[BattleStat.ATK]).toBe(1);
|
||||||
@ -75,15 +66,9 @@ describe("Abilities - Sap Sipper", () => {
|
|||||||
|
|
||||||
await game.startBattle();
|
await game.startBattle();
|
||||||
|
|
||||||
game.onNextPrompt("CommandPhase", Mode.COMMAND, () => {
|
game.doAttack(getMovePosition(game.scene, 0, moveToUse));
|
||||||
game.scene.ui.setMode(Mode.FIGHT, (game.scene.getCurrentPhase() as CommandPhase).getFieldIndex());
|
|
||||||
});
|
|
||||||
game.onNextPrompt("CommandPhase", Mode.FIGHT, () => {
|
|
||||||
const movePosition = getMovePosition(game.scene, 0, moveToUse);
|
|
||||||
(game.scene.getCurrentPhase() as CommandPhase).handleCommand(Command.FIGHT, movePosition, false);
|
|
||||||
});
|
|
||||||
|
|
||||||
await game.phaseInterceptor.runFrom(EnemyCommandPhase).to(TurnEndPhase);
|
await game.phaseInterceptor.to(TurnEndPhase);
|
||||||
|
|
||||||
expect(game.scene.getEnemyParty()[0].status).toBeUndefined();
|
expect(game.scene.getEnemyParty()[0].status).toBeUndefined();
|
||||||
expect(game.scene.getEnemyParty()[0].summonData.battleStats[BattleStat.ATK]).toBe(1);
|
expect(game.scene.getEnemyParty()[0].summonData.battleStats[BattleStat.ATK]).toBe(1);
|
||||||
@ -100,21 +85,36 @@ describe("Abilities - Sap Sipper", () => {
|
|||||||
|
|
||||||
await game.startBattle();
|
await game.startBattle();
|
||||||
|
|
||||||
game.onNextPrompt("CommandPhase", Mode.COMMAND, () => {
|
game.doAttack(getMovePosition(game.scene, 0, moveToUse));
|
||||||
game.scene.ui.setMode(Mode.FIGHT, (game.scene.getCurrentPhase() as CommandPhase).getFieldIndex());
|
|
||||||
});
|
|
||||||
game.onNextPrompt("CommandPhase", Mode.FIGHT, () => {
|
|
||||||
const movePosition = getMovePosition(game.scene, 0, moveToUse);
|
|
||||||
(game.scene.getCurrentPhase() as CommandPhase).handleCommand(Command.FIGHT, movePosition, false);
|
|
||||||
});
|
|
||||||
|
|
||||||
await game.phaseInterceptor.runFrom(EnemyCommandPhase).to(TurnEndPhase);
|
await game.phaseInterceptor.to(TurnEndPhase);
|
||||||
|
|
||||||
expect(game.scene.arena.terrain).toBeDefined();
|
expect(game.scene.arena.terrain).toBeDefined();
|
||||||
expect(game.scene.arena.terrain.terrainType).toBe(TerrainType.GRASSY);
|
expect(game.scene.arena.terrain.terrainType).toBe(TerrainType.GRASSY);
|
||||||
expect(game.scene.getEnemyParty()[0].summonData.battleStats[BattleStat.ATK]).toBe(0);
|
expect(game.scene.getEnemyParty()[0].summonData.battleStats[BattleStat.ATK]).toBe(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("activate once against multi-hit grass attacks", async() => {
|
||||||
|
const moveToUse = Moves.BULLET_SEED;
|
||||||
|
const enemyAbility = Abilities.SAP_SIPPER;
|
||||||
|
|
||||||
|
vi.spyOn(overrides, "MOVESET_OVERRIDE", "get").mockReturnValue([moveToUse]);
|
||||||
|
vi.spyOn(overrides, "OPP_MOVESET_OVERRIDE", "get").mockReturnValue([Moves.SPLASH, Moves.NONE, Moves.NONE, Moves.NONE]);
|
||||||
|
vi.spyOn(overrides, "OPP_SPECIES_OVERRIDE", "get").mockReturnValue(Species.RATTATA);
|
||||||
|
vi.spyOn(overrides, "OPP_ABILITY_OVERRIDE", "get").mockReturnValue(enemyAbility);
|
||||||
|
|
||||||
|
await game.startBattle();
|
||||||
|
|
||||||
|
const startingOppHp = game.scene.currentBattle.enemyParty[0].hp;
|
||||||
|
|
||||||
|
game.doAttack(getMovePosition(game.scene, 0, moveToUse));
|
||||||
|
|
||||||
|
await game.phaseInterceptor.to(TurnEndPhase);
|
||||||
|
|
||||||
|
expect(startingOppHp - game.scene.getEnemyParty()[0].hp).toBe(0);
|
||||||
|
expect(game.scene.getEnemyParty()[0].summonData.battleStats[BattleStat.ATK]).toBe(1);
|
||||||
|
});
|
||||||
|
|
||||||
it("do not activate against status moves that target the user", async() => {
|
it("do not activate against status moves that target the user", async() => {
|
||||||
const moveToUse = Moves.SPIKY_SHIELD;
|
const moveToUse = Moves.SPIKY_SHIELD;
|
||||||
const ability = Abilities.SAP_SIPPER;
|
const ability = Abilities.SAP_SIPPER;
|
||||||
@ -138,4 +138,29 @@ describe("Abilities - Sap Sipper", () => {
|
|||||||
expect(game.scene.getParty()[0].summonData.battleStats[BattleStat.ATK]).toBe(0);
|
expect(game.scene.getParty()[0].summonData.battleStats[BattleStat.ATK]).toBe(0);
|
||||||
expect(game.phaseInterceptor.log).not.toContain("ShowAbilityPhase");
|
expect(game.phaseInterceptor.log).not.toContain("ShowAbilityPhase");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
// TODO Add METRONOME outcome override
|
||||||
|
// To run this testcase, manually modify the METRONOME move to always give SAP_SIPPER, then uncomment
|
||||||
|
it("activate once against multi-hit grass attacks (metronome)", async() => {
|
||||||
|
const moveToUse = Moves.METRONOME;
|
||||||
|
const enemyAbility = Abilities.SAP_SIPPER;
|
||||||
|
|
||||||
|
vi.spyOn(overrides, "MOVESET_OVERRIDE", "get").mockReturnValue([moveToUse]);
|
||||||
|
vi.spyOn(overrides, "OPP_MOVESET_OVERRIDE", "get").mockReturnValue([Moves.SPLASH, Moves.NONE, Moves.NONE, Moves.NONE]);
|
||||||
|
vi.spyOn(overrides, "OPP_SPECIES_OVERRIDE", "get").mockReturnValue(Species.RATTATA);
|
||||||
|
vi.spyOn(overrides, "OPP_ABILITY_OVERRIDE", "get").mockReturnValue(enemyAbility);
|
||||||
|
|
||||||
|
await game.startBattle();
|
||||||
|
|
||||||
|
const startingOppHp = game.scene.currentBattle.enemyParty[0].hp;
|
||||||
|
|
||||||
|
game.doAttack(getMovePosition(game.scene, 0, moveToUse));
|
||||||
|
|
||||||
|
await game.phaseInterceptor.to(TurnEndPhase);
|
||||||
|
|
||||||
|
expect(startingOppHp - game.scene.getEnemyParty()[0].hp).toBe(0);
|
||||||
|
expect(game.scene.getEnemyParty()[0].summonData.battleStats[BattleStat.ATK]).toBe(1);
|
||||||
|
});
|
||||||
|
*/
|
||||||
});
|
});
|
||||||
|
@ -2,9 +2,9 @@ import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vi
|
|||||||
import GameManager from "#test/utils/gameManager";
|
import GameManager from "#test/utils/gameManager";
|
||||||
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
||||||
import * as Overrides from "#app/overrides";
|
import * as Overrides from "#app/overrides";
|
||||||
import { Moves } from "#app/data/enums/moves.js";
|
import { Moves } from "#enums/moves";
|
||||||
import { Abilities } from "#app/data/enums/abilities.js";
|
import { Abilities } from "#enums/abilities";
|
||||||
import { Species } from "#app/data/enums/species.js";
|
import { Species } from "#enums/species";
|
||||||
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
||||||
import { TurnEndPhase } from "#app/phases.js";
|
import { TurnEndPhase } from "#app/phases.js";
|
||||||
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
||||||
|
@ -2,9 +2,9 @@ import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vi
|
|||||||
import GameManager from "#test/utils/gameManager";
|
import GameManager from "#test/utils/gameManager";
|
||||||
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
||||||
import * as Overrides from "#app/overrides";
|
import * as Overrides from "#app/overrides";
|
||||||
import { Moves } from "#app/data/enums/moves.js";
|
import { Moves } from "#enums/moves";
|
||||||
import { Abilities } from "#app/data/enums/abilities.js";
|
import { Abilities } from "#enums/abilities";
|
||||||
import { Species } from "#app/data/enums/species.js";
|
import { Species } from "#enums/species";
|
||||||
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
||||||
import { TurnEndPhase } from "#app/phases.js";
|
import { TurnEndPhase } from "#app/phases.js";
|
||||||
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
||||||
|
@ -2,15 +2,15 @@ import {afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest
|
|||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import GameManager from "#app/test/utils/gameManager";
|
import GameManager from "#app/test/utils/gameManager";
|
||||||
import * as overrides from "#app/overrides";
|
import * as overrides from "#app/overrides";
|
||||||
import {Species} from "#app/data/enums/species";
|
|
||||||
import {
|
import {
|
||||||
TurnEndPhase,
|
TurnEndPhase,
|
||||||
} from "#app/phases";
|
} from "#app/phases";
|
||||||
import {Moves} from "#app/data/enums/moves";
|
|
||||||
import {getMovePosition} from "#app/test/utils/gameManagerUtils";
|
import {getMovePosition} from "#app/test/utils/gameManagerUtils";
|
||||||
import { Abilities } from "#app/data/enums/abilities.js";
|
|
||||||
import { BattleStat } from "#app/data/battle-stat.js";
|
import { BattleStat } from "#app/data/battle-stat.js";
|
||||||
import { BattlerTagType } from "#app/data/enums/battler-tag-type.js";
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
// See also: TypeImmunityAbAttr
|
// See also: TypeImmunityAbAttr
|
||||||
describe("Abilities - Volt Absorb", () => {
|
describe("Abilities - Volt Absorb", () => {
|
||||||
|
@ -2,8 +2,6 @@ import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vi
|
|||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import GameManager from "#app/test/utils/gameManager";
|
import GameManager from "#app/test/utils/gameManager";
|
||||||
import * as Overrides from "#app/overrides";
|
import * as Overrides from "#app/overrides";
|
||||||
import { Abilities } from "#app/data/enums/abilities";
|
|
||||||
import { Species } from "#app/data/enums/species";
|
|
||||||
import {
|
import {
|
||||||
CommandPhase,
|
CommandPhase,
|
||||||
DamagePhase,
|
DamagePhase,
|
||||||
@ -18,11 +16,13 @@ import {
|
|||||||
} from "#app/phases";
|
} from "#app/phases";
|
||||||
import { Mode } from "#app/ui/ui";
|
import { Mode } from "#app/ui/ui";
|
||||||
import { Stat } from "#app/data/pokemon-stat";
|
import { Stat } from "#app/data/pokemon-stat";
|
||||||
import { Moves } from "#app/data/enums/moves";
|
|
||||||
import { getMovePosition } from "#app/test/utils/gameManagerUtils";
|
import { getMovePosition } from "#app/test/utils/gameManagerUtils";
|
||||||
import { Command } from "#app/ui/command-ui-handler";
|
import { Command } from "#app/ui/command-ui-handler";
|
||||||
import { QuietFormChangePhase } from "#app/form-change-phase";
|
import { QuietFormChangePhase } from "#app/form-change-phase";
|
||||||
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
const TIMEOUT = 20 * 1000;
|
const TIMEOUT = 20 * 1000;
|
||||||
|
|
||||||
|
@ -2,9 +2,9 @@ import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vi
|
|||||||
import GameManager from "#test/utils/gameManager";
|
import GameManager from "#test/utils/gameManager";
|
||||||
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
import { getMovePosition } from "#test/utils/gameManagerUtils";
|
||||||
import * as Overrides from "#app/overrides";
|
import * as Overrides from "#app/overrides";
|
||||||
import { Moves } from "#app/data/enums/moves.js";
|
import { Moves } from "#enums/moves";
|
||||||
import { Abilities } from "#app/data/enums/abilities.js";
|
import { Abilities } from "#enums/abilities";
|
||||||
import { Species } from "#app/data/enums/species.js";
|
import { Species } from "#enums/species";
|
||||||
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
import { Status, StatusEffect } from "#app/data/status-effect.js";
|
||||||
import { TurnEndPhase } from "#app/phases.js";
|
import { TurnEndPhase } from "#app/phases.js";
|
||||||
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
import { QuietFormChangePhase } from "#app/form-change-phase.js";
|
||||||
|
@ -2,19 +2,19 @@ import {afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest
|
|||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import GameManager from "#app/test/utils/gameManager";
|
import GameManager from "#app/test/utils/gameManager";
|
||||||
import * as overrides from "#app/overrides";
|
import * as overrides from "#app/overrides";
|
||||||
import {Abilities} from "#app/data/enums/abilities";
|
|
||||||
import {Species} from "#app/data/enums/species";
|
|
||||||
import {
|
import {
|
||||||
CommandPhase, EnemyCommandPhase, SelectTargetPhase,
|
CommandPhase, EnemyCommandPhase, SelectTargetPhase,
|
||||||
TurnStartPhase
|
TurnStartPhase
|
||||||
} from "#app/phases";
|
} from "#app/phases";
|
||||||
import {Mode} from "#app/ui/ui";
|
import {Mode} from "#app/ui/ui";
|
||||||
import {getMovePosition} from "#app/test/utils/gameManagerUtils";
|
import {getMovePosition} from "#app/test/utils/gameManagerUtils";
|
||||||
import {Moves} from "#app/data/enums/moves";
|
|
||||||
import {Command} from "#app/ui/command-ui-handler";
|
import {Command} from "#app/ui/command-ui-handler";
|
||||||
import {Stat} from "#app/data/pokemon-stat";
|
import {Stat} from "#app/data/pokemon-stat";
|
||||||
import TargetSelectUiHandler from "#app/ui/target-select-ui-handler";
|
import TargetSelectUiHandler from "#app/ui/target-select-ui-handler";
|
||||||
import {Button} from "#app/enums/buttons";
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
import {Button} from "#enums/buttons";
|
||||||
|
|
||||||
|
|
||||||
describe("Battle order", () => {
|
describe("Battle order", () => {
|
||||||
|
@ -2,7 +2,6 @@ import {afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest
|
|||||||
import {generateStarter, getMovePosition,} from "#app/test/utils/gameManagerUtils";
|
import {generateStarter, getMovePosition,} from "#app/test/utils/gameManagerUtils";
|
||||||
import {Mode} from "#app/ui/ui";
|
import {Mode} from "#app/ui/ui";
|
||||||
import {GameModes} from "#app/game-mode";
|
import {GameModes} from "#app/game-mode";
|
||||||
import {Species} from "#app/data/enums/species";
|
|
||||||
import * as overrides from "../../overrides";
|
import * as overrides from "../../overrides";
|
||||||
import {Command} from "#app/ui/command-ui-handler";
|
import {Command} from "#app/ui/command-ui-handler";
|
||||||
import {
|
import {
|
||||||
@ -17,13 +16,14 @@ import {
|
|||||||
TitlePhase,
|
TitlePhase,
|
||||||
TurnInitPhase, VictoryPhase,
|
TurnInitPhase, VictoryPhase,
|
||||||
} from "#app/phases";
|
} from "#app/phases";
|
||||||
import {Moves} from "#app/data/enums/moves";
|
|
||||||
import GameManager from "#app/test/utils/gameManager";
|
import GameManager from "#app/test/utils/gameManager";
|
||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import {allSpecies} from "#app/data/pokemon-species";
|
import {allSpecies} from "#app/data/pokemon-species";
|
||||||
import {PlayerGender} from "#app/data/enums/player-gender";
|
|
||||||
import { getGameMode } from "#app/game-mode.js";
|
import { getGameMode } from "#app/game-mode.js";
|
||||||
import {Abilities} from "#app/data/enums/abilities";
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { PlayerGender } from "#enums/player-gender";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
describe("Test Battle Phase", () => {
|
describe("Test Battle Phase", () => {
|
||||||
let phaserGame: Phaser.Game;
|
let phaserGame: Phaser.Game;
|
||||||
|
@ -2,9 +2,9 @@ import {afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest
|
|||||||
import GameManager from "#app/test/utils/gameManager";
|
import GameManager from "#app/test/utils/gameManager";
|
||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import * as overrides from "#app/overrides";
|
import * as overrides from "#app/overrides";
|
||||||
import {Species} from "#app/data/enums/species";
|
import { Abilities } from "#enums/abilities";
|
||||||
import {Moves} from "#app/data/enums/moves";
|
import { Moves } from "#enums/moves";
|
||||||
import {Abilities} from "#app/data/enums/abilities";
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
describe("Test Battle Phase", () => {
|
describe("Test Battle Phase", () => {
|
||||||
let phaserGame: Phaser.Game;
|
let phaserGame: Phaser.Game;
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import {afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest";
|
import {afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest";
|
||||||
import {Mode} from "#app/ui/ui";
|
import {Mode} from "#app/ui/ui";
|
||||||
import {Species} from "#app/data/enums/species";
|
|
||||||
import * as overrides from "../../overrides";
|
import * as overrides from "../../overrides";
|
||||||
import {
|
import {
|
||||||
CommandPhase,
|
CommandPhase,
|
||||||
} from "#app/phases";
|
} from "#app/phases";
|
||||||
import {Moves} from "#app/data/enums/moves";
|
|
||||||
import GameManager from "#app/test/utils/gameManager";
|
import GameManager from "#app/test/utils/gameManager";
|
||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import {Abilities} from "#app/data/enums/abilities";
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
describe("Test Battle Phase", () => {
|
describe("Test Battle Phase", () => {
|
||||||
let phaserGame: Phaser.Game;
|
let phaserGame: Phaser.Game;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import {beforeAll, describe, expect, it} from "vitest";
|
import {beforeAll, describe, expect, it} from "vitest";
|
||||||
import BattleScene from "../../battle-scene";
|
import BattleScene from "../../battle-scene";
|
||||||
import { getLegendaryGachaSpeciesForTimestamp } from "#app/data/egg.js";
|
import { getLegendaryGachaSpeciesForTimestamp } from "#app/data/egg.js";
|
||||||
import { Species } from "#app/data/enums/species.js";
|
import { Species } from "#enums/species";
|
||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
|
|
||||||
describe("getLegendaryGachaSpeciesForTimestamp", () => {
|
describe("getLegendaryGachaSpeciesForTimestamp", () => {
|
||||||
|
@ -5,7 +5,7 @@ async function importModule() {
|
|||||||
try {
|
try {
|
||||||
initStatsKeys();
|
initStatsKeys();
|
||||||
const { PokemonMove } = await import("#app/field/pokemon");
|
const { PokemonMove } = await import("#app/field/pokemon");
|
||||||
const { Species } = await import("#app/data/enums/species");
|
const { Species } = await import("#enums/species");
|
||||||
return {
|
return {
|
||||||
PokemonMove,
|
PokemonMove,
|
||||||
Species,
|
Species,
|
||||||
|
@ -2,8 +2,6 @@ import {afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest
|
|||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import GameManager from "#app/test/utils/gameManager";
|
import GameManager from "#app/test/utils/gameManager";
|
||||||
import * as overrides from "#app/overrides";
|
import * as overrides from "#app/overrides";
|
||||||
import {Abilities} from "#app/data/enums/abilities";
|
|
||||||
import {Species} from "#app/data/enums/species";
|
|
||||||
import {
|
import {
|
||||||
CommandPhase,
|
CommandPhase,
|
||||||
EnemyCommandPhase,
|
EnemyCommandPhase,
|
||||||
@ -11,10 +9,12 @@ import {
|
|||||||
TurnEndPhase,
|
TurnEndPhase,
|
||||||
} from "#app/phases";
|
} from "#app/phases";
|
||||||
import {Mode} from "#app/ui/ui";
|
import {Mode} from "#app/ui/ui";
|
||||||
import {Moves} from "#app/data/enums/moves";
|
|
||||||
import {getMovePosition} from "#app/test/utils/gameManagerUtils";
|
import {getMovePosition} from "#app/test/utils/gameManagerUtils";
|
||||||
import {Command} from "#app/ui/command-ui-handler";
|
import {Command} from "#app/ui/command-ui-handler";
|
||||||
import {StatusEffect} from "#app/data/status-effect";
|
import {StatusEffect} from "#app/data/status-effect";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import { Moves } from "#enums/moves";
|
||||||
|
import { Species } from "#enums/species";
|
||||||
|
|
||||||
|
|
||||||
describe("Items - Toxic orb", () => {
|
describe("Items - Toxic orb", () => {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user