mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-16 21:32:18 +02:00
Fix sprites and add random team boss
This commit is contained in:
parent
1db83e04fa
commit
99a9cef292
@ -1,4 +1,4 @@
|
||||
import BattleScene from "./battle-scene";
|
||||
import BattleScene, { EvilTeam } from "./battle-scene";
|
||||
import { EnemyPokemon, PlayerPokemon, QueuedMove } from "./field/pokemon";
|
||||
import { Command } from "./ui/command-ui-handler";
|
||||
import * as Utils from "./utils";
|
||||
@ -303,6 +303,62 @@ interface FixedBattleConfigs {
|
||||
[key: integer]: FixedBattleConfig
|
||||
}
|
||||
|
||||
function getEvilTeamBattle(evilTeam: EvilTeam, battle: string) {
|
||||
switch (battle) {
|
||||
case "admin":
|
||||
switch (evilTeam) {
|
||||
case EvilTeam.TEAM_ROCKET:
|
||||
return TrainerType.ROCKET_GRUNT;
|
||||
case EvilTeam.TEAM_MAGMA:
|
||||
return TrainerType.MAGMA_GRUNT;
|
||||
case EvilTeam.TEAM_AQUA:
|
||||
return TrainerType.AQUA_GRUNT;
|
||||
case EvilTeam.TEAM_GALACTIC:
|
||||
return TrainerType.GALACTIC_GRUNT;
|
||||
case EvilTeam.TEAM_PLASMA:
|
||||
return TrainerType.PLASMA_GRUNT;
|
||||
case EvilTeam.TEAM_FLARE:
|
||||
return TrainerType.FLARE_GRUNT;
|
||||
default:
|
||||
return TrainerType.ROCKET_GRUNT;
|
||||
}
|
||||
case "boss1":
|
||||
switch (evilTeam) {
|
||||
case EvilTeam.TEAM_ROCKET:
|
||||
return TrainerType.ROCKET_BOSS_GIOVANNI_1;
|
||||
case EvilTeam.TEAM_MAGMA:
|
||||
return TrainerType.MAXIE;
|
||||
case EvilTeam.TEAM_AQUA:
|
||||
return TrainerType.ARCHIE;
|
||||
case EvilTeam.TEAM_GALACTIC:
|
||||
return TrainerType.CYRUS;
|
||||
case EvilTeam.TEAM_PLASMA:
|
||||
return TrainerType.GHETSIS;
|
||||
case EvilTeam.TEAM_FLARE:
|
||||
return TrainerType.LYSANDRE;
|
||||
default:
|
||||
return TrainerType.ROCKET_BOSS_GIOVANNI_1;
|
||||
}
|
||||
case "boss2":
|
||||
switch (evilTeam) {
|
||||
case EvilTeam.TEAM_ROCKET:
|
||||
return TrainerType.ROCKET_BOSS_GIOVANNI_2;
|
||||
case EvilTeam.TEAM_MAGMA:
|
||||
return TrainerType.MAXIE_2;
|
||||
case EvilTeam.TEAM_AQUA:
|
||||
return TrainerType.ARCHIE_2;
|
||||
case EvilTeam.TEAM_GALACTIC:
|
||||
return TrainerType.CYRUS_2;
|
||||
case EvilTeam.TEAM_PLASMA:
|
||||
return TrainerType.GHETSIS_2;
|
||||
case EvilTeam.TEAM_FLARE:
|
||||
return TrainerType.LYSANDRE_2;
|
||||
default:
|
||||
return TrainerType.ROCKET_BOSS_GIOVANNI_2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const fixedBattles: FixedBattleConfigs = {
|
||||
[5]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.YOUNGSTER, Utils.randSeedInt(2) ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
|
||||
@ -314,12 +370,12 @@ export const fixedBattles: FixedBattleConfigs = {
|
||||
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_3, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
|
||||
[95]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_4, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
|
||||
[105]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.ROCKET_BOSS_GIOVANNI_1, TrainerVariant.DEFAULT)),
|
||||
[115]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||
.setGetTrainerFunc(scene => new Trainer(scene, getEvilTeamBattle(scene.evilTeamThisRun, "boss1"), TrainerVariant.DEFAULT)),
|
||||
[145]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_5, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
|
||||
[165]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.ROCKET_BOSS_GIOVANNI_2, TrainerVariant.DEFAULT)),
|
||||
.setGetTrainerFunc(scene => new Trainer(scene, getEvilTeamBattle(scene.evilTeamThisRun, "boss2"), TrainerVariant.DEFAULT)),
|
||||
[182]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.LORELEI, TrainerType.WILL, TrainerType.SIDNEY, TrainerType.AARON, TrainerType.SHAUNTAL, TrainerType.MALVA, [ TrainerType.HALA, TrainerType.MOLAYNE ], TrainerType.RIKA, TrainerType.CRISPIN ])),
|
||||
[184]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(182)
|
||||
|
@ -498,7 +498,7 @@ export const trainerTypeDialogue = {
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.MAGMA_BOSS_MAXIE_1]: [
|
||||
[TrainerType.MAXIE]: [
|
||||
{
|
||||
encounter: [
|
||||
`After defeating you I will remove all the water biomes`
|
||||
@ -508,7 +508,7 @@ export const trainerTypeDialogue = {
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.MAGMA_BOSS_MAXIE_2]: [
|
||||
[TrainerType.MAXIE_2]: [
|
||||
{
|
||||
encounter: [
|
||||
`Hold it right there.`
|
||||
@ -518,7 +518,7 @@ export const trainerTypeDialogue = {
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.AQUA_BOSS_ARCHIE_1]: [
|
||||
[TrainerType.ARCHIE]: [
|
||||
{
|
||||
encounter: [
|
||||
`After defeating you I will send you to water jail`
|
||||
@ -528,7 +528,7 @@ export const trainerTypeDialogue = {
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.AQUA_BOSS_ARCHIE_2]: [
|
||||
[TrainerType.ARCHIE_2]: [
|
||||
{
|
||||
encounter: [
|
||||
`Hold it right there.`
|
||||
@ -538,7 +538,7 @@ export const trainerTypeDialogue = {
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.GALACTIC_BOSS_CYRUS_1]: [
|
||||
[TrainerType.CYRUS]: [
|
||||
{
|
||||
encounter: [
|
||||
`I will make you regret paying heed to your heart`
|
||||
@ -548,7 +548,7 @@ export const trainerTypeDialogue = {
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.GALACTIC_BOSS_CYRUS_2]: [
|
||||
[TrainerType.CYRUS_2]: [
|
||||
{
|
||||
encounter: [
|
||||
`I'm going to completely crush you!`
|
||||
@ -558,7 +558,7 @@ export const trainerTypeDialogue = {
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.PLASMA_BOSS_GHETSIS_1]: [
|
||||
[TrainerType.GHETSIS]: [
|
||||
{
|
||||
encounter: [
|
||||
`[Ominous latin chanting in the background]`
|
||||
@ -568,17 +568,17 @@ export const trainerTypeDialogue = {
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.PLASMA_BOSS_GHETSIS_2]: [
|
||||
[TrainerType.GHETSIS_2]: [
|
||||
{
|
||||
encounter: [
|
||||
`Lose and go down in flames!`
|
||||
`Chat who should I fuse?`
|
||||
],
|
||||
victory: [
|
||||
`I would have won if I rolled DNA splicers!`
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.FLARE_BOSS_LYSANDRE_1]: [
|
||||
[TrainerType.LYSANDRE]: [
|
||||
{
|
||||
encounter: [
|
||||
`I copied my team from Cyrus`
|
||||
@ -588,7 +588,7 @@ export const trainerTypeDialogue = {
|
||||
]
|
||||
}
|
||||
],
|
||||
[TrainerType.FLARE_BOSS_LYSANDRE_2]: [
|
||||
[TrainerType.LYSANDRE_2]: [
|
||||
{
|
||||
encounter: [
|
||||
`Enough of this.`
|
||||
|
@ -58,16 +58,16 @@ export enum TrainerType {
|
||||
FLARE_GRUNT,
|
||||
ROCKET_BOSS_GIOVANNI_1,
|
||||
ROCKET_BOSS_GIOVANNI_2,
|
||||
MAGMA_BOSS_MAXIE_1,
|
||||
MAGMA_BOSS_MAXIE_2,
|
||||
AQUA_BOSS_ARCHIE_1,
|
||||
AQUA_BOSS_ARCHIE_2,
|
||||
GALACTIC_BOSS_CYRUS_1,
|
||||
GALACTIC_BOSS_CYRUS_2,
|
||||
PLASMA_BOSS_GHETSIS_1,
|
||||
PLASMA_BOSS_GHETSIS_2,
|
||||
FLARE_BOSS_LYSANDRE_1,
|
||||
FLARE_BOSS_LYSANDRE_2,
|
||||
MAXIE,
|
||||
MAXIE_2,
|
||||
ARCHIE,
|
||||
ARCHIE_2,
|
||||
CYRUS,
|
||||
CYRUS_2,
|
||||
GHETSIS,
|
||||
GHETSIS_2,
|
||||
LYSANDRE,
|
||||
LYSANDRE_2,
|
||||
|
||||
BROCK = 200,
|
||||
MISTY,
|
||||
|
@ -280,6 +280,21 @@ export class TrainerConfig {
|
||||
case TrainerType.ROCKET_BOSS_GIOVANNI_2:
|
||||
trainerType = TrainerType.GIOVANNI;
|
||||
break;
|
||||
case TrainerType.MAXIE_2:
|
||||
trainerType = TrainerType.MAXIE;
|
||||
break;
|
||||
case TrainerType.ARCHIE_2:
|
||||
trainerType = TrainerType.ARCHIE;
|
||||
break;
|
||||
case TrainerType.CYRUS_2:
|
||||
trainerType = TrainerType.CYRUS;
|
||||
break;
|
||||
case TrainerType.GHETSIS_2:
|
||||
trainerType = TrainerType.GHETSIS;
|
||||
break;
|
||||
case TrainerType.LYSANDRE_2:
|
||||
trainerType = TrainerType.LYSANDRE;
|
||||
break;
|
||||
}
|
||||
|
||||
return trainerType;
|
||||
@ -1157,7 +1172,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.MASTER_BALL;
|
||||
})),
|
||||
[TrainerType.MAGMA_BOSS_MAXIE_1]: new TrainerConfig(++t).setName('Maxie').initForEvilTeamLeader("Magma Boss",[])
|
||||
[TrainerType.MAXIE]: new TrainerConfig(++t).setName('Maxie').initForEvilTeamLeader("Magma Boss",[])
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.MIGHTYENA ]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.CROBAT, Species.GLISCOR ]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.WEEZING, Species.GALAR_WEEZING ]))
|
||||
@ -1169,7 +1184,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.formIndex = 1;
|
||||
})),
|
||||
[TrainerType.MAGMA_BOSS_MAXIE_2]: new TrainerConfig(++t).setName('Maxie').initForEvilTeamLeader("Magma Boss",[])
|
||||
[TrainerType.MAXIE_2]: new TrainerConfig(++t).setName('Maxie').initForEvilTeamLeader("Magma Boss",[])
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.SOLROCK, Species.MAGCARGO ], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
@ -1195,7 +1210,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.formIndex = 1;
|
||||
})),
|
||||
[TrainerType.AQUA_BOSS_ARCHIE_1]: new TrainerConfig(++t).setName('Archie').initForEvilTeamLeader("Aqua Boss",[])
|
||||
[TrainerType.ARCHIE]: new TrainerConfig(++t).setName('Archie').initForEvilTeamLeader("Aqua Boss",[])
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.LINOONE ]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.CROBAT, Species.PELIPPER ]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.MUK, Species.ALOLA_MUK ]))
|
||||
@ -1207,7 +1222,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.formIndex = 1;
|
||||
})),
|
||||
[TrainerType.AQUA_BOSS_ARCHIE_2]: new TrainerConfig(++t).setName('Archie').initForEvilTeamLeader("Aqua Boss",[])
|
||||
[TrainerType.ARCHIE_2]: new TrainerConfig(++t).setName('Archie').initForEvilTeamLeader("Aqua Boss",[])
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.KINGDRA, Species.LUDICOLO ], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
@ -1236,7 +1251,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.formIndex = 1;
|
||||
})),
|
||||
[TrainerType.GALACTIC_BOSS_CYRUS_1]: new TrainerConfig(++t).setName('Cyrus').initForEvilTeamLeader("Galactic Boss",[])
|
||||
[TrainerType.CYRUS]: new TrainerConfig(++t).setName('Cyrus').initForEvilTeamLeader("Galactic Boss",[])
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.GYARADOS, Species.BASCULEGION ]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HONCHKROW, Species.HISUI_BRAVIARY ]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.CROBAT, Species.OVERQWIL ]))
|
||||
@ -1251,7 +1266,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
})),
|
||||
[TrainerType.GALACTIC_BOSS_CYRUS_2]: new TrainerConfig(++t).setName('Cyrus').initForEvilTeamLeader("Galactic Boss",[])
|
||||
[TrainerType.CYRUS_2]: new TrainerConfig(++t).setName('Cyrus').initForEvilTeamLeader("Galactic Boss",[])
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.AZELF, Species.UXIE, Species.MESPRIT ], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
@ -1269,7 +1284,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
})),
|
||||
[TrainerType.PLASMA_BOSS_GHETSIS_1]: new TrainerConfig(++t).setName('Ghetsis').initForEvilTeamLeader("Plasma Boss",[])
|
||||
[TrainerType.GHETSIS]: new TrainerConfig(++t).setName('Ghetsis').initForEvilTeamLeader("Plasma Boss",[])
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.COFAGRIGUS, Species.RUNERIGUS ]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.BOUFFALANT ]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.SEISMITOAD, Species.CARRACOSTA ]))
|
||||
@ -1280,7 +1295,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
})),
|
||||
[TrainerType.PLASMA_BOSS_GHETSIS_2]: new TrainerConfig(++t).setName('Ghetsis').initForEvilTeamLeader("Plasma Boss",[])
|
||||
[TrainerType.GHETSIS_2]: new TrainerConfig(++t).setName('Ghetsis').initForEvilTeamLeader("Plasma Boss",[])
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.SLITHER_WING, Species.IRON_MOTH ], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
@ -1299,7 +1314,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
})),
|
||||
[TrainerType.FLARE_BOSS_LYSANDRE_1]: new TrainerConfig(++t).setName('Lysandre').initForEvilTeamLeader("Flare Boss",[])
|
||||
[TrainerType.LYSANDRE]: new TrainerConfig(++t).setName('Lysandre').initForEvilTeamLeader("Flare Boss",[])
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.MIENSHAO ]))
|
||||
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HONCHKROW, Species.TALONFLAME ]))
|
||||
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.PYROAR ]))
|
||||
@ -1311,7 +1326,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.pokeball = PokeballType.ULTRA_BALL;
|
||||
p.formIndex = 1;
|
||||
})),
|
||||
[TrainerType.FLARE_BOSS_LYSANDRE_2]: new TrainerConfig(++t).setName('Lysandre').initForEvilTeamLeader("Flare Boss",[])
|
||||
[TrainerType.LYSANDRE_2]: new TrainerConfig(++t).setName('Lysandre').initForEvilTeamLeader("Flare Boss",[])
|
||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.SCREAM_TAIL, Species.FLUTTER_MANE ], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 2);
|
||||
p.generateAndPopulateMoveset();
|
||||
|
@ -10,6 +10,11 @@ export const titles: SimpleTranslationEntries = {
|
||||
"professor": "Professor",
|
||||
"frontier_brain": "Frontier Brain",
|
||||
"rocket_boss": "Team Rocket Boss",
|
||||
"magma_boss": "Team Magma Boss",
|
||||
"aqua_boss": "Team Aqua Boss",
|
||||
"galactic_boss": "Team Galactic Boss",
|
||||
"plasma_boss": "Team Plasma Boss",
|
||||
"flare_boss": "Team Flare Boss",
|
||||
// Maybe if we add the evil teams we can add "Team Rocket" and "Team Aqua" etc. here as well as "Team Rocket Boss" and "Team Aqua Admin" etc.
|
||||
} as const;
|
||||
|
||||
@ -254,16 +259,9 @@ export const trainerNames: SimpleTranslationEntries = {
|
||||
"leon": "Leon",
|
||||
"rival": "Finn",
|
||||
"rival_female": "Ivy",
|
||||
"rocket_boss_giovanni_1": "Giovanni",
|
||||
"rocket_boss_giovanni_2": "Giovanni",
|
||||
"magma_boss_maxie_1": "Maxie",
|
||||
"magma_boss_maxie_2": "Maxie",
|
||||
"aqua_boss_archie_1": "Archie",
|
||||
"aqua_boss_archie_2": "Archie",
|
||||
"galactic_boss_cyrus_1": "Cyrus",
|
||||
"galactic_boss_cyrus_2": "Cyrus",
|
||||
"plasma_boss_ghetsis_1": "Ghetsis",
|
||||
"plasma_boss_ghetsis_2": "Ghetsis",
|
||||
"flare_boss_lysandre_1": "Lysandre",
|
||||
"flare_boss_lysandre_2": "Lysandre",
|
||||
"maxie": "Maxie",
|
||||
"archie": "Archie",
|
||||
"cyrus": "Cyrus",
|
||||
"ghetsis": "Ghetsis",
|
||||
"lysandre": "Lysandre",
|
||||
} as const;
|
||||
|
Loading…
Reference in New Issue
Block a user