Fix issue with trainer switching logic
parent
27c09989b6
commit
8c1c7f5f83
|
@ -713,13 +713,17 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
getMatchupScore(pokemon: Pokemon): number {
|
getMatchupScore(pokemon: Pokemon): number {
|
||||||
const types = this.getTypes(true);
|
const types = this.getTypes(true);
|
||||||
const enemyTypes = pokemon.getTypes(true);
|
const enemyTypes = pokemon.getTypes(true);
|
||||||
let atkScore = pokemon.getAttackMoveEffectiveness(types[0]);
|
const outspeed = (this.isActive(true) ? this.getBattleStat(Stat.SPD, pokemon) : this.getStat(Stat.SPD)) <= pokemon.getBattleStat(Stat.SPD, this);
|
||||||
let defScore = 1 / this.getAttackMoveEffectiveness(enemyTypes[0]);
|
let atkScore = pokemon.getAttackMoveEffectiveness(types[0]) * (outspeed ? 1.25 : 1);
|
||||||
|
let defScore = 1 / Math.max(this.getAttackMoveEffectiveness(enemyTypes[0]), 0.25);
|
||||||
if (types.length > 1)
|
if (types.length > 1)
|
||||||
atkScore *= pokemon.getAttackMoveEffectiveness(types[1]);
|
atkScore *= pokemon.getAttackMoveEffectiveness(types[1]);
|
||||||
if (enemyTypes.length > 1)
|
if (enemyTypes.length > 1)
|
||||||
defScore *= (1 / this.getAttackMoveEffectiveness(enemyTypes[1]));
|
defScore *= (1 / this.getAttackMoveEffectiveness(enemyTypes[1]));
|
||||||
return (atkScore + defScore) * (this.getHpRatio() + (1 - pokemon.getHpRatio()));
|
let hpDiffRatio = this.getHpRatio() + (1 - pokemon.getHpRatio());
|
||||||
|
if (outspeed)
|
||||||
|
hpDiffRatio = Math.min(hpDiffRatio * 1.5, 1);
|
||||||
|
return (atkScore + defScore) * hpDiffRatio;
|
||||||
}
|
}
|
||||||
|
|
||||||
getEvolution(): SpeciesEvolution {
|
getEvolution(): SpeciesEvolution {
|
||||||
|
|
|
@ -61,15 +61,15 @@ export default class Trainer extends Phaser.GameObjects.Container {
|
||||||
}
|
}
|
||||||
|
|
||||||
getEncounterMessages(): string[] {
|
getEncounterMessages(): string[] {
|
||||||
return !this.female ? this.config.encounterMessages : this.config.femaleEncounterMessages;
|
return !this.female || !this.config.femaleEncounterMessages ? this.config.encounterMessages : this.config.femaleEncounterMessages;
|
||||||
}
|
}
|
||||||
|
|
||||||
getVictoryMessages(): string[] {
|
getVictoryMessages(): string[] {
|
||||||
return !this.female ? this.config.victoryMessages : this.config.femaleVictoryMessages;
|
return !this.female || !this.config.femaleVictoryMessages ? this.config.victoryMessages : this.config.femaleVictoryMessages;
|
||||||
}
|
}
|
||||||
|
|
||||||
getDefeatMessages(): string[] {
|
getDefeatMessages(): string[] {
|
||||||
return !this.female ? this.config.defeatMessages : this.config.femaleDefeatMessages;
|
return !this.female || !this.config.femaleDefeatMessages ? this.config.defeatMessages : this.config.femaleDefeatMessages;
|
||||||
}
|
}
|
||||||
|
|
||||||
getPartyTemplate(): TrainerPartyTemplate {
|
getPartyTemplate(): TrainerPartyTemplate {
|
||||||
|
|
Loading…
Reference in New Issue