[Bug] Prevent Duplicate Signature Species in Trainer Battles (#5059)
* [Bug] Prevent Duplicate Signature Species in Trainer Battles * Apply Kev's Suggestion Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> --------- Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> Co-authored-by: damocleas <damocleas25@gmail.com>
This commit is contained in:
parent
001b61c1c7
commit
6681a913fe
|
@ -428,7 +428,7 @@ export default class Trainer extends Phaser.GameObjects.Container {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prompts reroll of party member species if species already present in the enemy party
|
// Prompts reroll of party member species if species already present in the enemy party
|
||||||
if (this.checkDuplicateSpecies(ret, baseSpecies)) {
|
if (this.checkDuplicateSpecies(baseSpecies.speciesId)) {
|
||||||
console.log("Duplicate species detected, prompting reroll...");
|
console.log("Duplicate species detected, prompting reroll...");
|
||||||
retry = true;
|
retry = true;
|
||||||
}
|
}
|
||||||
|
@ -443,17 +443,23 @@ export default class Trainer extends Phaser.GameObjects.Container {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the enemy trainer already has the Pokemon species in their party
|
* Checks if the enemy trainer already has the Pokemon species in their party
|
||||||
* @param {PokemonSpecies} species {@linkcode PokemonSpecies}
|
* @param baseSpecies - The base {@linkcode Species} of the current Pokemon
|
||||||
* @param {PokemonSpecies} baseSpecies {@linkcode PokemonSpecies} - baseSpecies of the Pokemon if species is forced to evolve
|
|
||||||
* @returns `true` if the species is already present in the party
|
* @returns `true` if the species is already present in the party
|
||||||
*/
|
*/
|
||||||
checkDuplicateSpecies(species: PokemonSpecies, baseSpecies: PokemonSpecies): boolean {
|
checkDuplicateSpecies(baseSpecies: Species): boolean {
|
||||||
const staticPartyPokemon = (signatureSpecies[TrainerType[this.config.trainerType]] ?? []).flat(1);
|
const staticSpecies = (signatureSpecies[TrainerType[this.config.trainerType]] ?? []).flat(1).map(s => {
|
||||||
|
let root = s;
|
||||||
const currentPartySpecies = globalScene.getEnemyParty().map(p => {
|
while (pokemonPrevolutions.hasOwnProperty(root)) {
|
||||||
return p.species.speciesId;
|
root = pokemonPrevolutions[root];
|
||||||
|
}
|
||||||
|
return root;
|
||||||
});
|
});
|
||||||
return currentPartySpecies.includes(species.speciesId) || staticPartyPokemon.includes(baseSpecies.speciesId);
|
|
||||||
|
const currentSpecies = globalScene.getEnemyParty().map(p => {
|
||||||
|
return p.species.getRootSpeciesId();
|
||||||
|
});
|
||||||
|
|
||||||
|
return currentSpecies.includes(baseSpecies) || staticSpecies.includes(baseSpecies);
|
||||||
}
|
}
|
||||||
|
|
||||||
getPartyMemberMatchupScores(trainerSlot: TrainerSlot = TrainerSlot.NONE, forSwitch: boolean = false): [integer, integer][] {
|
getPartyMemberMatchupScores(trainerSlot: TrainerSlot = TrainerSlot.NONE, forSwitch: boolean = false): [integer, integer][] {
|
||||||
|
|
Loading…
Reference in New Issue