mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-06 23:49:26 +02:00
Merge ab75d6cbdb
into 5bfcb1d379
This commit is contained in:
commit
844f03adcd
@ -4974,21 +4974,21 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
.setPartyMemberFunc(3, getRandomPartyMemberFunc([SpeciesId.NIDOQUEEN, SpeciesId.NIDOKING]))
|
||||
.setPartyMemberFunc(
|
||||
4,
|
||||
getRandomPartyMemberFunc([SpeciesId.RHYPERIOR], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.abilityIndex = 1; // Solid Rock
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
5,
|
||||
getRandomPartyMemberFunc([SpeciesId.KANGASKHAN], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.formIndex = 1; // Mega Kangaskhan
|
||||
p.generateName();
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
5,
|
||||
getRandomPartyMemberFunc([SpeciesId.RHYPERIOR], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.abilityIndex = 1; // Solid Rock
|
||||
p.setBoss(true, 2);
|
||||
}),
|
||||
),
|
||||
[TrainerType.ROCKET_BOSS_GIOVANNI_2]: new TrainerConfig(++t)
|
||||
.setName("Giovanni")
|
||||
@ -4997,52 +4997,53 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
.setVictoryBgm("victory_team_plasma")
|
||||
.setPartyMemberFunc(
|
||||
0,
|
||||
getRandomPartyMemberFunc([SpeciesId.TYRANITAR], TrainerSlot.TRAINER, true, p => {
|
||||
getRandomPartyMemberFunc([SpeciesId.RHYPERIOR], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
p.abilityIndex = 1; // Solid Rock
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
1,
|
||||
getRandomPartyMemberFunc([SpeciesId.GASTRODON, SpeciesId.SEISMITOAD], TrainerSlot.TRAINER, true, p => {
|
||||
if (p.species.speciesId === SpeciesId.GASTRODON) {
|
||||
p.abilityIndex = 0; // Storm Drain
|
||||
} else if (p.species.speciesId === SpeciesId.SEISMITOAD) {
|
||||
p.abilityIndex = 2; // Water Absorb
|
||||
}
|
||||
getRandomPartyMemberFunc([SpeciesId.NIDOKING, SpeciesId.NIDOQUEEN], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.abilityIndex = 2; // Sheer Force
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
2,
|
||||
getRandomPartyMemberFunc([SpeciesId.GARCHOMP, SpeciesId.EXCADRILL], TrainerSlot.TRAINER, true, p => {
|
||||
getRandomPartyMemberFunc([SpeciesId.HONCHKROW], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
if (p.species.speciesId === SpeciesId.GARCHOMP) {
|
||||
p.abilityIndex = 2; // Rough Skin
|
||||
} else if (p.species.speciesId === SpeciesId.EXCADRILL) {
|
||||
p.abilityIndex = 0; // Sand Rush
|
||||
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === MoveId.SUCKER_PUNCH)) {
|
||||
// Check if Sucker Punch is in the moveset, if not, replace the third move with Sucker Punch.
|
||||
p.moveset[2] = new PokemonMove(MoveId.SUCKER_PUNCH);
|
||||
}
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
3,
|
||||
getRandomPartyMemberFunc([SpeciesId.RHYPERIOR], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.abilityIndex = 1; // Solid Rock
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
4,
|
||||
getRandomPartyMemberFunc([SpeciesId.KANGASKHAN], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.formIndex = 1; // Mega Kangaskhan
|
||||
p.generateName();
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
4,
|
||||
getRandomPartyMemberFunc(
|
||||
[SpeciesId.ARTICUNO, SpeciesId.ZAPDOS, SpeciesId.MOLTRES],
|
||||
TrainerSlot.TRAINER,
|
||||
true,
|
||||
p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.abilityIndex = 2; // Snow Cloak Articuno, Static Zapdos, Flame Body Moltres
|
||||
p.setBoss(true, 2);
|
||||
},
|
||||
),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
5,
|
||||
getRandomPartyMemberFunc([SpeciesId.MEWTWO], TrainerSlot.TRAINER, true, p => {
|
||||
@ -5056,16 +5057,22 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
.initForEvilTeamLeader("Magma Boss", [])
|
||||
.setMixedBattleBgm("battle_aqua_magma_boss")
|
||||
.setVictoryBgm("victory_team_plasma")
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([SpeciesId.SOLROCK]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.TALONFLAME]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([SpeciesId.WEEZING, SpeciesId.GALAR_WEEZING]))
|
||||
.setPartyMemberFunc(
|
||||
3,
|
||||
0,
|
||||
getRandomPartyMemberFunc([SpeciesId.TORKOAL], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.abilityIndex = 1; // Drought
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
1,
|
||||
getRandomPartyMemberFunc([SpeciesId.SCOVILLAIN], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.abilityIndex = 0; // Chlorophyll
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([SpeciesId.WEEZING, SpeciesId.GALAR_WEEZING]))
|
||||
.setPartyMemberFunc(3, getRandomPartyMemberFunc([SpeciesId.SOLROCK]))
|
||||
.setPartyMemberFunc(4, getRandomPartyMemberFunc([SpeciesId.DONPHAN]))
|
||||
.setPartyMemberFunc(
|
||||
5,
|
||||
@ -5140,14 +5147,14 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
.initForEvilTeamLeader("Aqua Boss", [])
|
||||
.setMixedBattleBgm("battle_aqua_magma_boss")
|
||||
.setVictoryBgm("victory_team_plasma")
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([SpeciesId.LUDICOLO]))
|
||||
.setPartyMemberFunc(
|
||||
1,
|
||||
0,
|
||||
getRandomPartyMemberFunc([SpeciesId.PELIPPER], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.abilityIndex = 1; // Drizzle
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.LUDICOLO]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([SpeciesId.MUK, SpeciesId.ALOLA_MUK]))
|
||||
.setPartyMemberFunc(3, getRandomPartyMemberFunc([SpeciesId.WAILORD]))
|
||||
.setPartyMemberFunc(
|
||||
@ -5225,18 +5232,16 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
.setMixedBattleBgm("battle_galactic_boss")
|
||||
.setVictoryBgm("victory_team_plasma")
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([SpeciesId.GYARADOS]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.HONCHKROW, SpeciesId.HISUI_BRAVIARY]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([SpeciesId.MAGNEZONE]))
|
||||
.setPartyMemberFunc(3, getRandomPartyMemberFunc([SpeciesId.UXIE, SpeciesId.MESPRIT, SpeciesId.AZELF]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.HONCHKROW, SpeciesId.CROBAT]))
|
||||
.setPartyMemberFunc(
|
||||
4,
|
||||
getRandomPartyMemberFunc([SpeciesId.HOUNDOOM], TrainerSlot.TRAINER, true, p => {
|
||||
2,
|
||||
getRandomPartyMemberFunc([SpeciesId.MAGNEZONE, SpeciesId.PROBOPASS], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.formIndex = 1; // Mega Houndoom
|
||||
p.generateName();
|
||||
p.abilityIndex = p.species.speciesId === SpeciesId.MAGNEZONE ? 1 : 0; // Sturdy
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(3, getRandomPartyMemberFunc([SpeciesId.UXIE, SpeciesId.MESPRIT, SpeciesId.AZELF]))
|
||||
.setPartyMemberFunc(4, getRandomPartyMemberFunc([SpeciesId.HOUNDOOM]))
|
||||
.setPartyMemberFunc(
|
||||
5,
|
||||
getRandomPartyMemberFunc([SpeciesId.WEAVILE], TrainerSlot.TRAINER, true, p => {
|
||||
@ -5258,7 +5263,13 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.generateAndPopulateMoveset();
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.MAGNEZONE]))
|
||||
.setPartyMemberFunc(
|
||||
1,
|
||||
getRandomPartyMemberFunc([SpeciesId.MAGNEZONE, SpeciesId.PROBOPASS], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.abilityIndex = p.species.speciesId === SpeciesId.MAGNEZONE ? 1 : 0; // Sturdy
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
2,
|
||||
getRandomPartyMemberFunc([SpeciesId.UXIE, SpeciesId.MESPRIT, SpeciesId.AZELF], TrainerSlot.TRAINER, true, p => {
|
||||
@ -5374,24 +5385,8 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.gender = Gender.MALE;
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
3,
|
||||
getRandomPartyMemberFunc([SpeciesId.DRAGALGE, SpeciesId.CLAWITZER], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
if (p.species.speciesId === SpeciesId.DRAGALGE) {
|
||||
p.abilityIndex = 2; // Adaptability
|
||||
} else if (p.species.speciesId === SpeciesId.CLAWITZER) {
|
||||
p.abilityIndex = 0; // Mega Launcher
|
||||
}
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
4,
|
||||
getRandomPartyMemberFunc([SpeciesId.GALLADE], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.abilityIndex = 1; // Sharpness
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(3, getRandomPartyMemberFunc([SpeciesId.MALAMAR]))
|
||||
.setPartyMemberFunc(4, getRandomPartyMemberFunc([SpeciesId.AEGISLASH, SpeciesId.HISUI_GOODRA]))
|
||||
.setPartyMemberFunc(
|
||||
5,
|
||||
getRandomPartyMemberFunc([SpeciesId.GYARADOS], TrainerSlot.TRAINER, true, p => {
|
||||
@ -5416,21 +5411,11 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.gender = Gender.MALE;
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
1,
|
||||
getRandomPartyMemberFunc([SpeciesId.DRAGALGE, SpeciesId.CLAWITZER], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
if (p.species.speciesId === SpeciesId.DRAGALGE) {
|
||||
p.abilityIndex = 2; // Adaptability
|
||||
} else if (p.species.speciesId === SpeciesId.CLAWITZER) {
|
||||
p.abilityIndex = 0; // Mega Launcher
|
||||
}
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.MIENSHAO]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([SpeciesId.AEGISLASH, SpeciesId.HISUI_GOODRA]))
|
||||
.setPartyMemberFunc(
|
||||
3,
|
||||
getRandomPartyMemberFunc([SpeciesId.IRON_VALIANT], TrainerSlot.TRAINER, true, p => {
|
||||
getRandomPartyMemberFunc([SpeciesId.VOLCANION], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ROGUE_BALL;
|
||||
}),
|
||||
@ -5467,10 +5452,10 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.gender = Gender.FEMALE;
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.LILLIGANT, SpeciesId.HISUI_LILLIGANT]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([SpeciesId.MILOTIC, SpeciesId.PRIMARINA]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.LILLIGANT]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([SpeciesId.MILOTIC]))
|
||||
.setPartyMemberFunc(3, getRandomPartyMemberFunc([SpeciesId.GALAR_SLOWBRO, SpeciesId.GALAR_SLOWKING]))
|
||||
.setPartyMemberFunc(4, getRandomPartyMemberFunc([SpeciesId.BEWEAR]))
|
||||
.setPartyMemberFunc(4, getRandomPartyMemberFunc([SpeciesId.BEWEAR, SpeciesId.LOPUNNY]))
|
||||
.setPartyMemberFunc(
|
||||
5,
|
||||
getRandomPartyMemberFunc([SpeciesId.NIHILEGO], TrainerSlot.TRAINER, true, p => {
|
||||
@ -5492,7 +5477,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.gender = Gender.FEMALE;
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.MILOTIC, SpeciesId.PRIMARINA]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.MILOTIC, SpeciesId.LILLIGANT]))
|
||||
.setPartyMemberFunc(
|
||||
2,
|
||||
getRandomPartyMemberFunc([SpeciesId.SILVALLY], TrainerSlot.TRAINER, true, p => {
|
||||
@ -5572,7 +5557,11 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
getRandomPartyMemberFunc([SpeciesId.GOLISOPOD], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
p.gender = Gender.MALE;
|
||||
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === MoveId.FIRST_IMPRESSION)) {
|
||||
// Check if First Impression is in the moveset, if not, replace the third move with First Impression.
|
||||
p.moveset[2] = new PokemonMove(MoveId.FIRST_IMPRESSION);
|
||||
p.gender = Gender.MALE;
|
||||
}
|
||||
}),
|
||||
),
|
||||
[TrainerType.GUZMA_2]: new TrainerConfig(++t)
|
||||
@ -5585,8 +5574,12 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
getRandomPartyMemberFunc([SpeciesId.GOLISOPOD], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
p.abilityIndex = 2; // Anticipation
|
||||
p.gender = Gender.MALE;
|
||||
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === MoveId.FIRST_IMPRESSION)) {
|
||||
// Check if First Impression is in the moveset, if not, replace the third move with First Impression.
|
||||
p.moveset[2] = new PokemonMove(MoveId.FIRST_IMPRESSION);
|
||||
p.abilityIndex = 2; // Anticipation
|
||||
p.gender = Gender.MALE;
|
||||
}
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
@ -5697,13 +5690,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
1,
|
||||
getRandomPartyMemberFunc([SpeciesId.AEGISLASH, SpeciesId.GHOLDENGO], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.CORVIKNIGHT]))
|
||||
.setPartyMemberFunc(
|
||||
2,
|
||||
getRandomPartyMemberFunc([SpeciesId.DRACOZOLT, SpeciesId.DRACOVISH], TrainerSlot.TRAINER, true, p => {
|
||||
@ -5721,19 +5708,6 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
4,
|
||||
getRandomPartyMemberFunc(
|
||||
[SpeciesId.GALAR_ARTICUNO, SpeciesId.GALAR_ZAPDOS, SpeciesId.GALAR_MOLTRES],
|
||||
TrainerSlot.TRAINER,
|
||||
true,
|
||||
p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
},
|
||||
),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
5,
|
||||
getRandomPartyMemberFunc([SpeciesId.COPPERAJAH], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
@ -5742,24 +5716,48 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.gender = Gender.FEMALE;
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
5,
|
||||
getRandomPartyMemberFunc(
|
||||
[SpeciesId.GALAR_ARTICUNO, SpeciesId.GALAR_ZAPDOS, SpeciesId.GALAR_MOLTRES],
|
||||
TrainerSlot.TRAINER,
|
||||
true,
|
||||
p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ROGUE_BALL;
|
||||
},
|
||||
),
|
||||
),
|
||||
[TrainerType.PENNY]: new TrainerConfig(++t)
|
||||
.setName("Cassiopeia")
|
||||
.initForEvilTeamLeader("Star Boss", [])
|
||||
.setMixedBattleBgm("battle_star_boss")
|
||||
.setVictoryBgm("victory_team_plasma")
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([SpeciesId.JOLTEON, SpeciesId.LEAFEON]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.VAPOREON, SpeciesId.UMBREON]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([SpeciesId.ESPEON, SpeciesId.GLACEON]))
|
||||
.setPartyMemberFunc(3, getRandomPartyMemberFunc([SpeciesId.FLAREON]))
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([SpeciesId.ESPEON]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([SpeciesId.UMBREON]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([SpeciesId.LEAFEON, SpeciesId.GLACEON]))
|
||||
.setPartyMemberFunc(
|
||||
4,
|
||||
3,
|
||||
getRandomPartyMemberFunc([SpeciesId.SYLVEON], TrainerSlot.TRAINER, true, p => {
|
||||
p.abilityIndex = 2; // Pixilate
|
||||
p.generateAndPopulateMoveset();
|
||||
p.gender = Gender.FEMALE;
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
4,
|
||||
getRandomPartyMemberFunc(
|
||||
[SpeciesId.VAPOREON, SpeciesId.FLAREON, SpeciesId.JOLTEON],
|
||||
TrainerSlot.TRAINER,
|
||||
true,
|
||||
p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
},
|
||||
),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
5,
|
||||
getRandomPartyMemberFunc([SpeciesId.EEVEE], TrainerSlot.TRAINER, true, p => {
|
||||
@ -5770,7 +5768,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.generateName();
|
||||
}),
|
||||
)
|
||||
.setInstantTera(4), // Tera Fairy Sylveon
|
||||
.setInstantTera(3), // Tera Fairy Sylveon
|
||||
[TrainerType.PENNY_2]: new TrainerConfig(++t)
|
||||
.setName("Cassiopeia")
|
||||
.initForEvilTeamLeader("Star Boss", [], true)
|
||||
@ -5782,7 +5780,11 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.setBoss(true, 2);
|
||||
p.abilityIndex = 2; // Pixilate
|
||||
p.generateAndPopulateMoveset();
|
||||
p.gender = Gender.FEMALE;
|
||||
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === MoveId.HYPER_VOICE)) {
|
||||
// Check if Hyper Voice is in the moveset, if not, replace the second move with Hyper Voice.
|
||||
p.moveset[1] = new PokemonMove(MoveId.HYPER_VOICE);
|
||||
p.gender = Gender.FEMALE;
|
||||
}
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
@ -5792,13 +5794,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.formIndex = randSeedInt(5, 1); // Heat, Wash, Frost, Fan, or Mow
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
2,
|
||||
getRandomPartyMemberFunc([SpeciesId.RAIKOU, SpeciesId.ENTEI, SpeciesId.SUICUNE], TrainerSlot.TRAINER, true, p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
}),
|
||||
)
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([SpeciesId.UMBREON, SpeciesId.ESPEON]))
|
||||
.setPartyMemberFunc(
|
||||
3,
|
||||
getRandomPartyMemberFunc([SpeciesId.REVAVROOM], TrainerSlot.TRAINER, true, p => {
|
||||
@ -5809,11 +5805,16 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
4,
|
||||
getRandomPartyMemberFunc([SpeciesId.ZAMAZENTA], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.MASTER_BALL;
|
||||
}),
|
||||
getRandomPartyMemberFunc(
|
||||
[SpeciesId.WALKING_WAKE, SpeciesId.GOUGING_FIRE, SpeciesId.RAGING_BOLT],
|
||||
TrainerSlot.TRAINER,
|
||||
true,
|
||||
p => {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ROGUE_BALL;
|
||||
p.setBoss(true, 2);
|
||||
},
|
||||
),
|
||||
)
|
||||
.setPartyMemberFunc(
|
||||
5,
|
||||
@ -5826,6 +5827,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
}),
|
||||
)
|
||||
.setInstantTera(0), // Tera Fairy Sylveon
|
||||
|
||||
[TrainerType.BUCK]: new TrainerConfig(++t)
|
||||
.setName("Buck")
|
||||
.initForStatTrainer(true)
|
||||
|
Loading…
Reference in New Issue
Block a user