Fix Formatting and Changes to Teams

This commit is contained in:
Blitzy 2025-04-25 15:56:17 -05:00 committed by GitHub
parent bbf79fd1e6
commit 0f7da73ccc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2856,23 +2856,21 @@ export const trainerConfigs: TrainerConfigs = {
.initForEliteFour(signatureSpecies["LORELEI"], false, PokemonType.ICE, 2)
.setBattleBgm("battle_kanto_gym")
.setMixedBattleBgm("battle_kanto_gym")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.DEWGONG]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.SLOWBRO, Species.GALAR_SLOWBRO], TrainerSlot.TRAINER, true, p => {
// Tera Ice Slowbro/G-Slowbro
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.DEWGONG], TrainerSlot.TRAINER, true, p => {
p.abilityIndex = 0; // Thick Fat
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.ICE_BEAM)) {
// Check if Ice Beam is in the moveset, if not, replace the third move with Ice Beam.
}),
)
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.SLOWBRO, Species.GALAR_SLOWBRO], TrainerSlot.TRAINER, true, p => { // Tera Ice Slowbro/G-Slowbro
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.ICE_BEAM)) { // Check if Ice Beam is in the moveset, if not, replace the third move with Ice Beam.
p.moveset[2] = new PokemonMove(Moves.ICE_BEAM);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.JYNX]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.CLOYSTER, Species.ALOLA_SANDSLASH]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.LAPRAS], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.LAPRAS], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -2882,13 +2880,9 @@ export const trainerConfigs: TrainerConfigs = {
.setBattleBgm("battle_kanto_gym")
.setMixedBattleBgm("battle_kanto_gym")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.HITMONCHAN, Species.HITMONLEE, Species.HITMONTOP]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.STEELIX], TrainerSlot.TRAINER, true, p => {
// Tera Fighting Steelix
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.STEELIX], TrainerSlot.TRAINER, true, p => { // Tera Fighting Steelix
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.BODY_PRESS)) {
// Check if Body Press is in the moveset, if not, replace the third move with Body Press.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.BODY_PRESS)) { // Check if Body Press is in the moveset, if not, replace the third move with Body Press.
p.moveset[2] = new PokemonMove(Moves.BODY_PRESS);
}
}),
@ -2907,22 +2901,16 @@ export const trainerConfigs: TrainerConfigs = {
.setBattleBgm("battle_kanto_gym")
.setMixedBattleBgm("battle_kanto_gym")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.MISMAGIUS]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.WEEZING, Species.ARBOK], TrainerSlot.TRAINER, true, p => {
// Tera Ghost Arbok/Weezing
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.WEEZING, Species.ARBOK], TrainerSlot.TRAINER, true, p => { // Tera Ghost Arbok/Weezing
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) {
// Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) { // Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
p.moveset[2] = new PokemonMove(Moves.TERA_BLAST);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.ALOLA_MAROWAK]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.CURSOLA]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.GENGAR], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.GENGAR], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -2933,22 +2921,16 @@ export const trainerConfigs: TrainerConfigs = {
.setBattleBgm("battle_kanto_gym")
.setMixedBattleBgm("battle_kanto_gym")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.KINGDRA]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.GYARADOS, Species.AERODACTYL], TrainerSlot.TRAINER, true, p => {
// Tera Dragon Gyarados/Aerodactyl
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.GYARADOS, Species.AERODACTYL], TrainerSlot.TRAINER, true, p => { // Tera Dragon Gyarados/Aerodactyl
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) {
// Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) { // Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
p.moveset[2] = new PokemonMove(Moves.TERA_BLAST);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.ALOLA_EXEGGUTOR]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.SALAMENCE]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.DRAGONITE], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.DRAGONITE], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -2961,9 +2943,7 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.SLOWKING, Species.GALAR_SLOWKING])) // Tera Psychic Slowking/G-Slowking
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.EXEGGUTOR]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.FARIGIRAF, Species.WYRDEER]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.XATU], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.XATU], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -2972,9 +2952,7 @@ export const trainerConfigs: TrainerConfigs = {
.initForEliteFour(signatureSpecies["KOGA"], true, PokemonType.POISON, 2)
.setBattleBgm("battle_johto_gym")
.setMixedBattleBgm("battle_johto_gym")
.setPartyMemberFunc(
0,
getRandomPartyMemberFunc([Species.VENOMOTH], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.VENOMOTH], TrainerSlot.TRAINER, true, p => {
p.abilityIndex = 1; // Tinted Lens
p.generateAndPopulateMoveset();
}),
@ -2982,9 +2960,7 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.MUK, Species.WEEZING])) // Tera Poison Muk/Weezing
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.TENTACRUEL]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.SNEASLER, Species.OVERQWIL]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.CROBAT], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.CROBAT], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -2994,22 +2970,16 @@ export const trainerConfigs: TrainerConfigs = {
.setBattleBgm("battle_johto_gym")
.setMixedBattleBgm("battle_johto_gym")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.UMBREON]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.GENGAR], TrainerSlot.TRAINER, true, p => {
// Tera Dark Gengar
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.GENGAR], TrainerSlot.TRAINER, true, p => { // Tera Dark Gengar
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.DARK_PULSE)) {
// Check if Dark Pulse is in the moveset, if not, replace the third move with Dark Pulse.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.DARK_PULSE)) { // Check if Dark Pulse is in the moveset, if not, replace the third move with Dark Pulse.
p.moveset[2] = new PokemonMove(Moves.DARK_PULSE);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.HONCHKROW]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.WEAVILE]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.HOUNDOOM], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.HOUNDOOM], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3017,7 +2987,11 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.SIDNEY]: new TrainerConfig(++t)
.initForEliteFour(signatureSpecies["SIDNEY"], true, PokemonType.DARK, 2)
.setMixedBattleBgm("battle_hoenn_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.MIGHTYENA]))
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.MIGHTYENA], TrainerSlot.TRAINER, true, p => {
p.abilityIndex = 0; // Intimidate
p.generateAndPopulateMoveset();
}),
)
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.OBSTAGOON])) // Tera Dark Obstagoon
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.SHIFTRY, Species.CACTURNE]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.SHARPEDO, Species.CRAWDAUNT]))
@ -3034,16 +3008,12 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SABLEYE]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.BANETTE])) // Tera Ghost Banette
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.DRIFBLIM, Species.MISMAGIUS]))
.setPartyMemberFunc(
4,
getRandomPartyMemberFunc([Species.ORICORIO, Species.ALOLA_MAROWAK], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.ORICORIO, Species.ALOLA_MAROWAK], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.formIndex = p.species.speciesId === Species.ORICORIO ? 3 : 0; // Oricorio-Sensu
}),
)
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.DUSKNOIR], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.DUSKNOIR], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3051,9 +3021,7 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.GLACIA]: new TrainerConfig(++t)
.initForEliteFour(signatureSpecies["GLACIA"], false, PokemonType.ICE, 2)
.setMixedBattleBgm("battle_hoenn_elite")
.setPartyMemberFunc(
0,
getRandomPartyMemberFunc([Species.ABOMASNOW], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.ABOMASNOW], TrainerSlot.TRAINER, true, p => {
p.abilityIndex = 0; // Snow Warning
p.generateAndPopulateMoveset();
}),
@ -3061,9 +3029,7 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.GLALIE])) // Tera Ice Glalie
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.FROSLASS]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.ALOLA_NINETALES]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.WALREIN], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.WALREIN], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3072,22 +3038,16 @@ export const trainerConfigs: TrainerConfigs = {
.initForEliteFour(signatureSpecies["DRAKE"], true, PokemonType.DRAGON, 2)
.setMixedBattleBgm("battle_hoenn_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.ALTARIA]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.DHELMISE], TrainerSlot.TRAINER, true, p => {
// Tera Dragon Dhelmise
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.DHELMISE], TrainerSlot.TRAINER, true, p => { // Tera Dragon Dhelmise
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) {
// Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) { // Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
p.moveset[2] = new PokemonMove(Moves.TERA_BLAST);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.FLYGON]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.KINGDRA]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.SALAMENCE], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.SALAMENCE], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3100,15 +3060,11 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.HERACROSS]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.VESPIQUEN]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.SCIZOR, Species.KLEAVOR]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.DRAPION], TrainerSlot.TRAINER, true, p => {
// Tera Bug Drapion
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.DRAPION], TrainerSlot.TRAINER, true, p => { // Tera Bug Drapion
p.setBoss(true, 2);
p.abilityIndex = 1; // Sniper
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.X_SCISSOR)) {
// Check if X-Scissor is in the moveset, if not, replace the third move with X-Scissor.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.X_SCISSOR)) { // Check if X-Scissor is in the moveset, if not, replace the third move with X-Scissor.
p.moveset[2] = new PokemonMove(Moves.X_SCISSOR);
}
}),
@ -3118,19 +3074,14 @@ export const trainerConfigs: TrainerConfigs = {
.setBattleBgm("battle_sinnoh_gym")
.setMixedBattleBgm("battle_sinnoh_gym")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.WHISCASH]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.HIPPOWDON], TrainerSlot.TRAINER, true, p => {
// Tera Ground Hippowdon
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.HIPPOWDON], TrainerSlot.TRAINER, true, p => { // Tera Ground Hippowdon
p.abilityIndex = 0; // Sand Stream
p.generateAndPopulateMoveset();
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.GLISCOR]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.MAMOSWINE, Species.URSALUNA]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.RHYPERIOR], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.RHYPERIOR], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.abilityIndex = 1; // Solid Rock
p.generateAndPopulateMoveset();
@ -3141,22 +3092,16 @@ export const trainerConfigs: TrainerConfigs = {
.setBattleBgm("battle_sinnoh_gym")
.setMixedBattleBgm("battle_sinnoh_gym")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.RAPIDASH]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.STEELIX, Species.LOPUNNY], TrainerSlot.TRAINER, true, p => {
// Tera Fire Steelix/Lopunny
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.STEELIX, Species.LOPUNNY], TrainerSlot.TRAINER, true, p => { // Tera Fire Steelix/Lopunny
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) {
// Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) { // Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
p.moveset[2] = new PokemonMove(Moves.TERA_BLAST);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.INFERNAPE]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.ARCANINE, Species.HISUI_ARCANINE]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.MAGMORTAR], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.MAGMORTAR], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3169,9 +3114,7 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.FARIGIRAF])) // Tera Psychic Farigiraf
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.BRONZONG]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.MR_RIME, Species.HISUI_BRAVIARY]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.GALLADE], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.GALLADE], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.abilityIndex = 1; // Sharpness
p.generateAndPopulateMoveset();
@ -3183,10 +3126,8 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.COFAGRIGUS]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.GOLURK])) // Tera Ghost Golurk
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.JELLICENT]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.BASCULEGION, Species.HISUI_ZOROARK]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.CHANDELURE], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.MISMAGIUS, Species.FROSLASS ]))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.CHANDELURE], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3197,10 +3138,8 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.THROH, Species.SAWK]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.MIENSHAO])) // Tera Fighting Mienshao
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.EMBOAR]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.HISUI_LILLIGANT]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.CONKELDURR], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.BRELOOM, Species.TOXICROAK]))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.CONKELDURR], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3211,10 +3150,8 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.LIEPARD]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.KROOKODILE])) // Tera Dark Krookodile
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.SCRAFTY]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.HISUI_SAMUROTT]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.KINGAMBIT], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.ZOROARK, Species.HISUI_SAMUROTT]))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.KINGAMBIT], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3224,9 +3161,7 @@ export const trainerConfigs: TrainerConfigs = {
.setMixedBattleBgm("battle_unova_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.MUSHARNA]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.REUNICLUS])) // Tera Psychic Reuniclus
.setPartyMemberFunc(
3,
getRandomPartyMemberFunc([Species.GALLADE], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.GALLADE], TrainerSlot.TRAINER, true, p => {
p.abilityIndex = 1; // Sharpness
p.generateAndPopulateMoveset();
}),
@ -3242,31 +3177,19 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.MALVA]: new TrainerConfig(++t)
.initForEliteFour(signatureSpecies["MALVA"], false, PokemonType.FIRE, 2)
.setMixedBattleBgm("battle_kalos_elite")
.setPartyMemberFunc(
0,
getRandomPartyMemberFunc([Species.PYROAR], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PYROAR], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.gender = Gender.FEMALE;
}),
)
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.HOUNDOOM])) // Tera Fire Houndoom
.setPartyMemberFunc(
3,
getRandomPartyMemberFunc([Species.TORKOAL], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.TORKOAL], TrainerSlot.TRAINER, true, p => {
p.abilityIndex = 1; // Drought
p.generateAndPopulateMoveset();
}),
)
.setPartyMemberFunc(
4,
getRandomPartyMemberFunc([Species.SCOVILLAIN], TrainerSlot.TRAINER, true, p => {
p.abilityIndex = 0; // Chlorophyll
p.generateAndPopulateMoveset();
}),
)
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.TALONFLAME], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.CHANDELURE, Species.DELPHOX]))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.TALONFLAME], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3277,10 +3200,8 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.CLAWITZER]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.GYARADOS])) // Tera Water Gyarados
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.STARMIE]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.DONDOZO]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.BARBARACLE], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.BLASTOISE, Species.DONDOZO]))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.BARBARACLE], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.abilityIndex = 1; // Tough Claws
p.generateAndPopulateMoveset();
@ -3290,22 +3211,16 @@ export const trainerConfigs: TrainerConfigs = {
.initForEliteFour(signatureSpecies["WIKSTROM"], true, PokemonType.STEEL, 2)
.setMixedBattleBgm("battle_kalos_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.KLEFKI]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.CERULEDGE], TrainerSlot.TRAINER, true, p => {
// Tera Steel Ceruledge
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.CERULEDGE], TrainerSlot.TRAINER, true, p => { // Tera Steel Ceruledge
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.IRON_HEAD)) {
// Check if Iron Head is in the moveset, if not, replace the third move with Iron Head.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.IRON_HEAD)) { // Check if Iron Head is in the moveset, if not, replace the third move with Iron Head.
p.moveset[2] = new PokemonMove(Moves.IRON_HEAD);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.SCIZOR]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.CORVIKNIGHT]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.AEGISLASH], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.AEGISLASH], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3328,22 +3243,16 @@ export const trainerConfigs: TrainerConfigs = {
.initForEliteFour(signatureSpecies["HALA"], true, PokemonType.FIGHTING, 2)
.setMixedBattleBgm("battle_alola_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.HARIYAMA]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.INCINEROAR], TrainerSlot.TRAINER, true, p => {
// Tera Fighting Incineroar
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.INCINEROAR], TrainerSlot.TRAINER, true, p => { // Tera Fighting Incineroar
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.CROSS_CHOP)) {
// Check if Cross Chop is in the moveset, if not, replace the third move with Cross Chop.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.CROSS_CHOP)) { // Check if Cross Chop is in the moveset, if not, replace the third move with Cross Chop.
p.moveset[2] = new PokemonMove(Moves.CROSS_CHOP);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.BEWEAR]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.POLIWRATH, Species.ANNIHILAPE]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.CRABOMINABLE], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.CRABOMINABLE], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3355,9 +3264,7 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.ALOLA_SANDSLASH])) // Tera Steel A-Sandslash
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.MAGNEZONE]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.METAGROSS, Species.KINGAMBIT]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.ALOLA_DUGTRIO], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.ALOLA_DUGTRIO], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3365,9 +3272,7 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.OLIVIA]: new TrainerConfig(++t)
.initForEliteFour(signatureSpecies["OLIVIA"], false, PokemonType.ROCK, 2)
.setMixedBattleBgm("battle_alola_elite")
.setPartyMemberFunc(
0,
getRandomPartyMemberFunc([Species.GIGALITH], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.GIGALITH], TrainerSlot.TRAINER, true, p => {
p.abilityIndex = 1; // Sand Stream
p.generateAndPopulateMoveset();
}),
@ -3375,9 +3280,7 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.PROBOPASS])) // Tera Rock Probopass
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.ALOLA_GOLEM]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.CARBINK, Species.RELICANTH]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.LYCANROC], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.LYCANROC], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.formIndex = 1;
p.generateAndPopulateMoveset();
@ -3390,9 +3293,7 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.MIMIKYU])) // Tera Ghost Mimikyu
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.DHELMISE]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.FROSLASS]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.PALOSSAND], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.PALOSSAND], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3401,22 +3302,16 @@ export const trainerConfigs: TrainerConfigs = {
.initForEliteFour(signatureSpecies["KAHILI"], false, PokemonType.FLYING)
.setMixedBattleBgm("battle_alola_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.HAWLUCHA]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.DECIDUEYE], TrainerSlot.TRAINER, true, p => {
// Tera Flying Decidueye
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.DECIDUEYE], TrainerSlot.TRAINER, true, p => { // Tera Flying Decidueye
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.BRAVE_BIRD)) {
// Check if Brave Bird is in the moveset, if not, replace the third move with Brave Bird.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.BRAVE_BIRD)) { // Check if Brave Bird is in the moveset, if not, replace the third move with Brave Bird.
p.moveset[2] = new PokemonMove(Moves.BRAVE_BIRD);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.BRAVIARY, Species.MANDIBUZZ]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.ORICORIO]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.TOUCANNON], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.TOUCANNON], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3426,10 +3321,7 @@ export const trainerConfigs: TrainerConfigs = {
.initForEliteFour(signatureSpecies["MARNIE_ELITE"], false, PokemonType.DARK, 2)
.setMixedBattleBgm("battle_galar_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.LIEPARD]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.TOXICROAK], TrainerSlot.TRAINER, true, p => {
// Tera Dark Toxicroak
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.TOXICROAK], TrainerSlot.TRAINER, true, p => { // Tera Dark Toxicroak
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.SUCKER_PUNCH)) {
// Check if Sucker Punch is in the moveset, if not, replace the third move with Sucker Punch.
@ -3439,9 +3331,7 @@ export const trainerConfigs: TrainerConfigs = {
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.SCRAFTY, Species.PANGORO]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.MORPEKO]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.GRIMMSNARL], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.GRIMMSNARL], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3451,28 +3341,20 @@ export const trainerConfigs: TrainerConfigs = {
.initForEliteFour(signatureSpecies["NESSA_ELITE"], false, PokemonType.WATER, 2)
.setMixedBattleBgm("battle_galar_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.GOLISOPOD]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.EISCUE], TrainerSlot.TRAINER, true, p => {
// Tera Water Eiscue
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.EISCUE], TrainerSlot.TRAINER, true, p => { // Tera Water Eiscue
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.LIQUIDATION)) {
// Check if Liquidation is in the moveset, if not, replace the third move with Liquidation.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.LIQUIDATION)) { // Check if Liquidation is in the moveset, if not, replace the third move with Liquidation.
p.moveset[2] = new PokemonMove(Moves.LIQUIDATION);
}
}),
)
.setPartyMemberFunc(
3,
getRandomPartyMemberFunc([Species.PELIPPER], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.PELIPPER], TrainerSlot.TRAINER, true, p => {
p.abilityIndex = 1; // Drizzle
p.generateAndPopulateMoveset();
}),
)
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.TOXAPEX]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.DREDNAW], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.DREDNAW], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3485,9 +3367,7 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.SIRFETCHD])) // Tera Fighting Sirfetch'd
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.GRAPPLOCT, Species.FALINKS]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.HITMONTOP]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.MACHAMP], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.MACHAMP], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3500,9 +3380,7 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.RUNERIGUS])) // Tera Ghost Runerigus
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.POLTEAGEIST, Species.SINISTCHA]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.CURSOLA]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.GENGAR], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.GENGAR], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3512,23 +3390,17 @@ export const trainerConfigs: TrainerConfigs = {
.initForEliteFour(signatureSpecies["RAIHAN_ELITE"], true, PokemonType.DRAGON, 2)
.setMixedBattleBgm("battle_galar_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.FLYGON]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.TORKOAL], TrainerSlot.TRAINER, true, p => {
// Tera Dragon Torkoal
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.TORKOAL], TrainerSlot.TRAINER, true, p => { // Tera Dragon Torkoal
p.abilityIndex = 1; // Drought
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) {
// Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) { // Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
p.moveset[2] = new PokemonMove(Moves.TERA_BLAST);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.GOODRA]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.TURTONATOR]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.ARCHALUDON], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.ARCHALUDON], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3536,14 +3408,11 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.RIKA]: new TrainerConfig(++t)
.initForEliteFour(signatureSpecies["RIKA"], false, PokemonType.GROUND, 5)
.setMixedBattleBgm("battle_paldea_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.WHISCASH]))
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.DUGTRIO]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.DONPHAN]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.TORTERRA, Species.TOEDSCRUEL]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.SWAMPERT, Species.TORTERRA]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.CAMERUPT]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.CLODSIRE], TrainerSlot.TRAINER, true, p => {
// Tera Ground Clodsire
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.CLODSIRE], TrainerSlot.TRAINER, true, p => { // Tera Ground Clodsire
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3553,12 +3422,13 @@ export const trainerConfigs: TrainerConfigs = {
.setMixedBattleBgm("battle_paldea_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.COPPERAJAH]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.MAGNEZONE]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.CORVIKNIGHT, Species.BRONZONG]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.BRONZONG, Species.CORVIKNIGHT], TrainerSlot.TRAINER, true, p => {
p.abilityIndex = p.species.speciesId === Species.BRONZONG ? 0 : 1; // Levitate Bronzong, Unnerve Corviknight
p.generateAndPopulateMoveset();
}),
)
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.STEELIX]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.TINKATON], TrainerSlot.TRAINER, true, p => {
// Tera Steel Tinkaton
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.TINKATON], TrainerSlot.TRAINER, true, p => { // Tera Steel Tinkaton
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3571,10 +3441,7 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.BOMBIRDIER]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.TROPIUS]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.STARAPTOR]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.FLAMIGO], TrainerSlot.TRAINER, true, p => {
// Tera Flying Flamigo
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.FLAMIGO], TrainerSlot.TRAINER, true, p => { // Tera Flying Flamigo
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3586,10 +3453,7 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.DRAGALGE]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.FLAPPLE, Species.APPLETUN, Species.HYDRAPPLE]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.HAXORUS]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.BAXCALIBUR], TrainerSlot.TRAINER, true, p => {
// Tera Dragon Baxcalibur
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.BAXCALIBUR], TrainerSlot.TRAINER, true, p => { // Tera Dragon Baxcalibur
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3597,38 +3461,27 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.CRISPIN]: new TrainerConfig(++t)
.initForEliteFour(signatureSpecies["CRISPIN"], true, PokemonType.FIRE, 2)
.setMixedBattleBgm("battle_bb_elite")
.setPartyMemberFunc(
0,
getRandomPartyMemberFunc([Species.ROTOM], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.ROTOM], TrainerSlot.TRAINER, true, p => {
p.formIndex = 1; // Heat Rotom
p.generateAndPopulateMoveset();
}),
)
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.EXEGGUTOR], TrainerSlot.TRAINER, true, p => {
// Tera Fire Exeggutor
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.EXEGGUTOR], TrainerSlot.TRAINER, true, p => { // Tera Fire Exeggutor
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) {
// Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) { // Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
p.moveset[2] = new PokemonMove(Moves.TERA_BLAST);
}
}),
)
.setPartyMemberFunc(
3,
getRandomPartyMemberFunc([Species.TALONFLAME], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.TALONFLAME], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.SUNNY_DAY)) {
// Check if Sunny Day is in the moveset, if not, replace the third move with Sunny Day.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.SUNNY_DAY)) { // Check if Sunny Day is in the moveset, if not, replace the third move with Sunny Day.
p.moveset[2] = new PokemonMove(Moves.SUNNY_DAY);
}
}),
)
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.MAGMORTAR]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.BLAZIKEN], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.BLAZIKEN], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3637,22 +3490,16 @@ export const trainerConfigs: TrainerConfigs = {
.initForEliteFour(signatureSpecies["AMARYS"], false, PokemonType.STEEL, 2)
.setMixedBattleBgm("battle_bb_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SKARMORY]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.REUNICLUS], TrainerSlot.TRAINER, true, p => {
// Tera Steel Reuniclus
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.REUNICLUS], TrainerSlot.TRAINER, true, p => { // Tera Steel Reuniclus
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.FLASH_CANNON)) {
// Check if Flash Cannon is in the moveset, if not, replace the third move with Flash Cannon.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.FLASH_CANNON)) { // Check if Flash Cannon is in the moveset, if not, replace the third move with Flash Cannon.
p.moveset[2] = new PokemonMove(Moves.FLASH_CANNON);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.EMPOLEON]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.SCIZOR]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.METAGROSS], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.METAGROSS], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),
@ -3664,14 +3511,10 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.PRIMARINA]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.GRANBULL]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.ALCREMIE]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.EXCADRILL], TrainerSlot.TRAINER, true, p => {
// Tera Fairy Excadrill
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.EXCADRILL], TrainerSlot.TRAINER, true, p => { // Tera Fairy Excadrill
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) {
// Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.TERA_BLAST)) { // Check if Tera Blast is in the moveset, if not, replace the third move with Tera Blast.
p.moveset[2] = new PokemonMove(Moves.TERA_BLAST);
}
}),
@ -3680,22 +3523,16 @@ export const trainerConfigs: TrainerConfigs = {
.initForEliteFour(signatureSpecies["DRAYTON"], true, PokemonType.DRAGON, 2)
.setMixedBattleBgm("battle_bb_elite")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.DRAGONITE]))
.setPartyMemberFunc(
2,
getRandomPartyMemberFunc([Species.SCEPTILE], TrainerSlot.TRAINER, true, p => {
// Tera Dragon Sceptile
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.SCEPTILE], TrainerSlot.TRAINER, true, p => { // Tera Dragon Sceptile
p.generateAndPopulateMoveset();
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.DUAL_CHOP)) {
// Check if Dual Chop is in the moveset, if not, replace the third move with Dual Chop.
if (!p.moveset.some(move => !isNullOrUndefined(move) && move.moveId === Moves.DUAL_CHOP)) { // Check if Dual Chop is in the moveset, if not, replace the third move with Dual Chop.
p.moveset[2] = new PokemonMove(Moves.DUAL_CHOP);
}
}),
)
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.HAXORUS]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.KINGDRA, Species.DRACOVISH]))
.setPartyMemberFunc(
5,
getRandomPartyMemberFunc([Species.ARCHALUDON], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.ARCHALUDON], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}),