mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-03 23:12:20 +02:00
Merge branch 'pagefaultgames:beta' into minor-run-phase-rework
This commit is contained in:
commit
97532f1e44
@ -650,8 +650,8 @@ export const pokemonEvolutions: PokemonEvolutions = {
|
||||
new SpeciesEvolution(SpeciesId.KIRLIA, 20, null, null)
|
||||
],
|
||||
[SpeciesId.KIRLIA]: [
|
||||
new SpeciesEvolution(SpeciesId.GARDEVOIR, 30, null, {key: EvoCondKey.GENDER, gender: Gender.FEMALE}),
|
||||
new SpeciesEvolution(SpeciesId.GALLADE, 30, null, {key: EvoCondKey.GENDER, gender: Gender.MALE})
|
||||
new SpeciesEvolution(SpeciesId.GARDEVOIR, 30, null, null),
|
||||
new SpeciesEvolution(SpeciesId.GALLADE, 1, EvolutionItem.DAWN_STONE, {key: EvoCondKey.GENDER, gender: Gender.MALE})
|
||||
],
|
||||
[SpeciesId.SURSKIT]: [
|
||||
new SpeciesEvolution(SpeciesId.MASQUERAIN, 22, null, null)
|
||||
@ -739,8 +739,8 @@ export const pokemonEvolutions: PokemonEvolutions = {
|
||||
new SpeciesEvolution(SpeciesId.DUSCLOPS, 37, null, null)
|
||||
],
|
||||
[SpeciesId.SNORUNT]: [
|
||||
new SpeciesEvolution(SpeciesId.GLALIE, 42, null, {key: EvoCondKey.GENDER, gender: Gender.MALE}),
|
||||
new SpeciesEvolution(SpeciesId.FROSLASS, 42, null, {key: EvoCondKey.GENDER, gender: Gender.FEMALE})
|
||||
new SpeciesEvolution(SpeciesId.GLALIE, 42, null, null),
|
||||
new SpeciesEvolution(SpeciesId.FROSLASS, 1, EvolutionItem.DAWN_STONE, {key: EvoCondKey.GENDER, gender: Gender.FEMALE})
|
||||
],
|
||||
[SpeciesId.SPHEAL]: [
|
||||
new SpeciesEvolution(SpeciesId.SEALEO, 32, null, null)
|
||||
|
@ -2498,14 +2498,39 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
defScore *=
|
||||
1 / Math.max(this.getAttackTypeEffectiveness(enemyTypes[1], opponent, false, false, undefined, true), 0.25);
|
||||
}
|
||||
atkScore *= 1.25; //give more value for the pokemon's typing
|
||||
const moveset = this.moveset;
|
||||
let moveAtkScoreLength = 0;
|
||||
for (const move of moveset) {
|
||||
if (move.getMove().category === MoveCategory.SPECIAL || move.getMove().category === MoveCategory.PHYSICAL) {
|
||||
atkScore += opponent.getAttackTypeEffectiveness(move.getMove().type, this, false, true, undefined, true);
|
||||
moveAtkScoreLength++;
|
||||
}
|
||||
}
|
||||
atkScore = atkScore / (moveAtkScoreLength + 1); //calculate the median for the attack score
|
||||
/**
|
||||
* Based on this Pokemon's HP ratio compared to that of the opponent.
|
||||
* This ratio is multiplied by 1.5 if this Pokemon outspeeds the opponent;
|
||||
* however, the final ratio cannot be higher than 1.
|
||||
*/
|
||||
let hpDiffRatio = this.getHpRatio() + (1 - opponent.getHpRatio());
|
||||
if (outspeed) {
|
||||
hpDiffRatio = Math.min(hpDiffRatio * 1.5, 1);
|
||||
const hpRatio = this.getHpRatio();
|
||||
const oppHpRatio = opponent.getHpRatio();
|
||||
const isDying = hpRatio <= 0.2;
|
||||
let hpDiffRatio = hpRatio + (1 - oppHpRatio);
|
||||
if (isDying && this.isActive(true)) {
|
||||
//It might be a sacrifice candidate if hp under 20%
|
||||
const badMatchup = atkScore < 1.5 && defScore < 1.5;
|
||||
if (!outspeed && badMatchup) {
|
||||
//It might not be a worthy sacrifice if it doesn't outspeed or doesn't do enough damage
|
||||
hpDiffRatio *= 0.85;
|
||||
} else {
|
||||
hpDiffRatio = Math.min(1 - hpRatio + (outspeed ? 0.2 : 0.1), 1);
|
||||
}
|
||||
} else if (outspeed) {
|
||||
hpDiffRatio = Math.min(hpDiffRatio * 1.25, 1);
|
||||
} else if (hpRatio > 0.2 && hpRatio <= 0.4) {
|
||||
//Might be considered to be switched because it's not in low enough health
|
||||
hpDiffRatio = Math.min(hpDiffRatio * 0.5, 1);
|
||||
}
|
||||
return (atkScore + defScore) * hpDiffRatio;
|
||||
}
|
||||
|
@ -1585,7 +1585,9 @@ class EvolutionItemModifierTypeGenerator extends ModifierTypeGenerator {
|
||||
pokemonEvolutions.hasOwnProperty(p.species.speciesId) &&
|
||||
(!p.pauseEvolutions ||
|
||||
p.species.speciesId === SpeciesId.SLOWPOKE ||
|
||||
p.species.speciesId === SpeciesId.EEVEE),
|
||||
p.species.speciesId === SpeciesId.EEVEE ||
|
||||
p.species.speciesId === SpeciesId.KIRLIA ||
|
||||
p.species.speciesId === SpeciesId.SNORUNT),
|
||||
)
|
||||
.flatMap(p => {
|
||||
const evolutions = pokemonEvolutions[p.species.speciesId];
|
||||
@ -1599,7 +1601,9 @@ class EvolutionItemModifierTypeGenerator extends ModifierTypeGenerator {
|
||||
pokemonEvolutions.hasOwnProperty(p.fusionSpecies.speciesId) &&
|
||||
(!p.pauseEvolutions ||
|
||||
p.fusionSpecies.speciesId === SpeciesId.SLOWPOKE ||
|
||||
p.fusionSpecies.speciesId === SpeciesId.EEVEE),
|
||||
p.fusionSpecies.speciesId === SpeciesId.EEVEE ||
|
||||
p.fusionSpecies.speciesId === SpeciesId.KIRLIA ||
|
||||
p.fusionSpecies.speciesId === SpeciesId.SNORUNT),
|
||||
)
|
||||
.flatMap(p => {
|
||||
const evolutions = pokemonEvolutions[p.fusionSpecies!.speciesId];
|
||||
|
Loading…
Reference in New Issue
Block a user