Merge branch 'beta' into japanese-starterInfoText

This commit is contained in:
NightKev 2025-05-20 19:20:03 -07:00 committed by GitHub
commit e7c3798f39
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 172 additions and 10 deletions

View File

@ -542,6 +542,79 @@
"volume": 100,
"pitch": 55,
"eventType": "AnimTimedSoundEvent"
},
{
"frameIndex": 0,
"resourceName": "PRAS- Sandstorm",
"bgX": -50,
"bgY": 0,
"opacity": 0,
"duration": 5,
"eventType": "AnimTimedAddBgEvent"
},
{
"frameIndex": 0,
"resourceName": "",
"bgX": -50,
"bgY": 0,
"opacity": 96,
"duration": 3,
"eventType": "AnimTimedUpdateBgEvent"
}
],
"3": [
{
"frameIndex": 3,
"resourceName": "",
"bgX": -25,
"bgY": 0,
"opacity": 128,
"duration": 3,
"eventType": "AnimTimedUpdateBgEvent"
}
],
"6": [
{
"frameIndex": 6,
"resourceName": "",
"bgX": 0,
"bgY": 0,
"opacity": 192,
"duration": 3,
"eventType": "AnimTimedUpdateBgEvent"
}
],
"9": [
{
"frameIndex": 9,
"resourceName": "",
"bgX": 25,
"bgY": 0,
"opacity": 128,
"duration": 3,
"eventType": "AnimTimedUpdateBgEvent"
}
],
"12": [
{
"frameIndex": 12,
"resourceName": "",
"bgX": 50,
"bgY": 0,
"opacity": 96,
"duration": 3,
"eventType": "AnimTimedUpdateBgEvent"
}
],
"15": [
{
"frameIndex": 15,
"resourceName": "",
"bgX": 50,
"bgY": 0,
"opacity": 0,
"duration": 3,
"eventType": "AnimTimedUpdateBgEvent"
}
]
},

View File

@ -8,11 +8,11 @@ export type SignatureSpecies = {
* The signature species for each Gym Leader, Elite Four member, and Champion.
* The key is the trainer type, and the value is an array of Species or Species arrays.
* This is in a separate const so it can be accessed from other places and not just the trainerConfigs
*
*
* @remarks
* The `Proxy` object allows us to define a handler that will intercept
* The `Proxy` object allows us to define a handler that will intercept
* the property access and return an empty array if the property does not exist in the object.
*
*
* This means that accessing `signatureSpecies` will not throw an error if the property does not exist,
* but instead default to an empty array.
*/

View File

@ -19057,8 +19057,15 @@ export const tmSpecies: TmSpecies = {
Species.SLAKING,
Species.HARIYAMA,
Species.NOSEPASS,
Species.ARON,
Species.LAIRON,
Species.AGGRON,
Species.ELECTRIKE,
Species.MANECTRIC,
Species.GULPIN,
Species.SWALOT,
Species.WAILMER,
Species.WAILORD,
Species.NUMEL,
Species.CAMERUPT,
Species.TORKOAL,
@ -19067,18 +19074,28 @@ export const tmSpecies: TmSpecies = {
Species.ZANGOOSE,
Species.SEVIPER,
Species.WHISCASH,
Species.LILEEP,
Species.CRADILY,
Species.ANORITH,
Species.ARMALDO,
Species.SHUPPET,
Species.BANETTE,
Species.DUSKULL,
Species.DUSCLOPS,
Species.TROPIUS,
Species.CHIMECHO,
Species.ABSOL,
Species.SPHEAL,
Species.SEALEO,
Species.WALREIN,
Species.REGIROCK,
Species.REGICE,
Species.REGISTEEL,
Species.TURTWIG,
Species.GROTLE,
Species.TORTERRA,
Species.BIDOOF,
Species.BIBAREL,
Species.CRANIDOS,
Species.RAMPARDOS,
Species.SHIELDON,
@ -19120,6 +19137,11 @@ export const tmSpecies: TmSpecies = {
Species.TEPIG,
Species.PIGNITE,
Species.EMBOAR,
Species.MUNNA,
Species.MUSHARNA,
Species.ROGGENROLA,
Species.BOLDORE,
Species.GIGALITH,
Species.DRILBUR,
Species.EXCADRILL,
Species.TIMBURR,
@ -19128,28 +19150,44 @@ export const tmSpecies: TmSpecies = {
Species.SANDILE,
Species.KROKOROK,
Species.KROOKODILE,
Species.DWEBBLE,
Species.CRUSTLE,
Species.SCRAGGY,
Species.SCRAFTY,
Species.YAMASK,
Species.COFAGRIGUS,
Species.COFAGRIGUS,
Species.TRUBBISH,
Species.GARBODOR,
Species.SAWSBUCK,
Species.FERROSEED,
Species.FERROTHORN,
Species.LITWICK,
Species.LAMPENT,
Species.CHANDELURE,
Species.BEARTIC,
Species.SHELMET,
Species.ACCELGOR,
Species.STUNFISK,
Species.GOLETT,
Species.GOLURK,
Species.HEATMOR,
Species.CHESPIN,
Species.QUILLADIN,
Species.CHESNAUGHT,
Species.TYRUNT,
Species.TYRANTRUM,
Species.SYLVEON,
Species.GOOMY,
Species.SLIGGOO,
Species.GOODRA,
Species.PHANTUMP,
Species.TREVENANT,
Species.PUMPKABOO,
Species.GOURGEIST,
Species.BERGMITE,
Species.AVALUGG,
Species.ROWLET,
Species.DARTRIX,
Species.DECIDUEYE,
Species.GUMSHOOS,
Species.MUDBRAY,
@ -19157,7 +19195,9 @@ export const tmSpecies: TmSpecies = {
Species.PASSIMIAN,
Species.SANDYGAST,
Species.PALOSSAND,
Species.PYUKUMUKU,
Species.KOMALA,
Species.TURTONATOR,
Species.MIMIKYU,
Species.SKWOVET,
Species.GREEDENT,
@ -19169,6 +19209,7 @@ export const tmSpecies: TmSpecies = {
Species.SINISTEA,
Species.POLTEAGEIST,
Species.PERRSERKER,
Species.CURSOLA,
Species.RUNERIGUS,
Species.PINCURCHIN,
Species.STONJOURNER,
@ -19236,6 +19277,7 @@ export const tmSpecies: TmSpecies = {
Species.GALAR_WEEZING,
Species.GALAR_SLOWKING,
Species.GALAR_YAMASK,
Species.GALAR_STUNFISK,
Species.HISUI_ELECTRODE,
Species.HISUI_TYPHLOSION,
Species.HISUI_QWILFISH,
@ -67062,7 +67104,7 @@ export const tmSpecies: TmSpecies = {
Species.CHEWTLE,
Species.DREDNAW,
Species.YAMPER,
Species.BOLTUND,
Species.BOLTUND,
Species.ROLYCOLY,
Species.CARKOL,
Species.COALOSSAL,
@ -67079,7 +67121,7 @@ export const tmSpecies: TmSpecies = {
Species.SIZZLIPEDE,
Species.CENTISKORCH,
Species.CLOBBOPUS,
Species.GRAPPLOCT,
Species.GRAPPLOCT,
Species.SINISTEA,
Species.POLTEAGEIST,
Species.HATENNA,

View File

@ -8052,10 +8052,10 @@ export class UpperHandCondition extends MoveCondition {
}
}
export class hitsSameTypeAttr extends VariableMoveTypeMultiplierAttr {
export class HitsSameTypeAttr extends VariableMoveTypeMultiplierAttr {
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
const multiplier = args[0] as NumberHolder;
if (!user.getTypes().some(type => target.getTypes().includes(type))) {
if (!user.getTypes(true).some(type => target.getTypes(true).includes(type))) {
multiplier.value = 0;
return true;
}
@ -9756,7 +9756,7 @@ export function initMoves() {
new AttackMove(Moves.SYNCHRONOISE, PokemonType.PSYCHIC, MoveCategory.SPECIAL, 120, 100, 10, -1, 0, 5)
.target(MoveTarget.ALL_NEAR_OTHERS)
.condition(unknownTypeCondition)
.attr(hitsSameTypeAttr),
.attr(HitsSameTypeAttr),
new AttackMove(Moves.ELECTRO_BALL, PokemonType.ELECTRIC, MoveCategory.SPECIAL, -1, 100, 10, -1, 0, 5)
.attr(ElectroBallPowerAttr)
.ballBombMove(),

View File

@ -5678,7 +5678,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
/**
* Performs the action of clearing a Pokemon's status
*
*
* This is a helper to {@linkcode resetStatus}, which should be called directly instead of this method
*/
public clearStatus(confusion: boolean, reloadAssets: boolean) {

View File

@ -0,0 +1,47 @@
import { Abilities } from "#enums/abilities";
import { Moves } from "#enums/moves";
import { PokemonType } from "#enums/pokemon-type";
import { Species } from "#enums/species";
import GameManager from "#test/testUtils/gameManager";
import Phaser from "phaser";
import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest";
describe("Moves - Synchronoise", () => {
let phaserGame: Phaser.Game;
let game: GameManager;
beforeAll(() => {
phaserGame = new Phaser.Game({
type: Phaser.HEADLESS,
});
});
afterEach(() => {
game.phaseInterceptor.restoreOg();
});
beforeEach(() => {
game = new GameManager(phaserGame);
game.override
.moveset([Moves.SYNCHRONOISE])
.ability(Abilities.BALL_FETCH)
.battleStyle("single")
.disableCrits()
.enemySpecies(Species.MAGIKARP)
.enemyAbility(Abilities.BALL_FETCH)
.enemyMoveset(Moves.SPLASH);
});
it("should consider the user's tera type if it is terastallized", async () => {
await game.classicMode.startBattle([Species.BIDOOF]);
const playerPokemon = game.scene.getPlayerPokemon()!;
const enemyPokemon = game.scene.getEnemyPokemon()!;
// force the player to be terastallized
playerPokemon.teraType = PokemonType.WATER;
playerPokemon.isTerastallized = true;
game.move.select(Moves.SYNCHRONOISE);
await game.phaseInterceptor.to("BerryPhase");
expect(enemyPokemon.hp).toBeLessThan(enemyPokemon.getMaxHp());
});
});