Merge branch 'pagefaultgames:main' into main
commit
37cab3309c
|
|
@ -19,7 +19,7 @@ If you have the motivation and experience with Typescript/Javascript (or are wil
|
||||||
### ❔ FAQ
|
### ❔ FAQ
|
||||||
|
|
||||||
**How do I test a new _______?**
|
**How do I test a new _______?**
|
||||||
- In the `battle-scene.ts` file there are overrides for most values you'll need to change for testing
|
- In the `src/overrides.ts` file there are overrides for most values you'll need to change for testing
|
||||||
|
|
||||||
|
|
||||||
## 🪧 To Do
|
## 🪧 To Do
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -10,7 +10,7 @@
|
||||||
"scale": 1,
|
"scale": 1,
|
||||||
"frames": [
|
"frames": [
|
||||||
{
|
{
|
||||||
"filename": "+1",
|
"filename": "1",
|
||||||
"rotated": false,
|
"rotated": false,
|
||||||
"trimmed": false,
|
"trimmed": false,
|
||||||
"sourceSize": {
|
"sourceSize": {
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename": "+2",
|
"filename": "2",
|
||||||
"rotated": false,
|
"rotated": false,
|
||||||
"trimmed": false,
|
"trimmed": false,
|
||||||
"sourceSize": {
|
"sourceSize": {
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename": "+3",
|
"filename": "3",
|
||||||
"rotated": false,
|
"rotated": false,
|
||||||
"trimmed": false,
|
"trimmed": false,
|
||||||
"sourceSize": {
|
"sourceSize": {
|
||||||
|
|
@ -73,7 +73,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename": "+4",
|
"filename": "4",
|
||||||
"rotated": false,
|
"rotated": false,
|
||||||
"trimmed": false,
|
"trimmed": false,
|
||||||
"sourceSize": {
|
"sourceSize": {
|
||||||
|
|
@ -94,7 +94,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename": "+5",
|
"filename": "5",
|
||||||
"rotated": false,
|
"rotated": false,
|
||||||
"trimmed": false,
|
"trimmed": false,
|
||||||
"sourceSize": {
|
"sourceSize": {
|
||||||
|
|
@ -115,7 +115,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename": "+6",
|
"filename": "6",
|
||||||
"rotated": false,
|
"rotated": false,
|
||||||
"trimmed": false,
|
"trimmed": false,
|
||||||
"sourceSize": {
|
"sourceSize": {
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.6 KiB |
|
|
@ -9,7 +9,7 @@ import { BattlerTag } from "./battler-tags";
|
||||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
import { BattlerTagType } from "./enums/battler-tag-type";
|
||||||
import { StatusEffect, getStatusEffectDescriptor, getStatusEffectHealText } from "./status-effect";
|
import { StatusEffect, getStatusEffectDescriptor, getStatusEffectHealText } from "./status-effect";
|
||||||
import { Gender } from "./gender";
|
import { Gender } from "./gender";
|
||||||
import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, RecoilAttr, StatusMoveTypeImmunityAttr, FlinchAttr, OneHitKOAttr, HitHealAttr, StrengthSapHealAttr, allMoves } from "./move";
|
import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, RecoilAttr, StatusMoveTypeImmunityAttr, FlinchAttr, OneHitKOAttr, HitHealAttr, StrengthSapHealAttr, allMoves, StatusMove } from "./move";
|
||||||
import { ArenaTagSide, ArenaTrapTag } from "./arena-tag";
|
import { ArenaTagSide, ArenaTrapTag } from "./arena-tag";
|
||||||
import { ArenaTagType } from "./enums/arena-tag-type";
|
import { ArenaTagType } from "./enums/arena-tag-type";
|
||||||
import { Stat } from "./pokemon-stat";
|
import { Stat } from "./pokemon-stat";
|
||||||
|
|
@ -580,6 +580,35 @@ export class PostDefendStatChangeAbAttr extends PostDefendAbAttr {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class PostDefendHpGatedStatChangeAbAttr extends PostDefendAbAttr {
|
||||||
|
private condition: PokemonDefendCondition;
|
||||||
|
private hpGate: number;
|
||||||
|
private stats: BattleStat[];
|
||||||
|
private levels: integer;
|
||||||
|
private selfTarget: boolean;
|
||||||
|
|
||||||
|
constructor(condition: PokemonDefendCondition, hpGate: number, stats: BattleStat[], levels: integer, selfTarget: boolean = true) {
|
||||||
|
super(true);
|
||||||
|
|
||||||
|
this.condition = condition;
|
||||||
|
this.hpGate = hpGate;
|
||||||
|
this.stats = stats;
|
||||||
|
this.levels = levels;
|
||||||
|
this.selfTarget = selfTarget;
|
||||||
|
}
|
||||||
|
|
||||||
|
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean {
|
||||||
|
const hpGateFlat: integer = Math.ceil(pokemon.getMaxHp() * this.hpGate)
|
||||||
|
const lastAttackReceived = pokemon.turnData.attacksReceived[pokemon.turnData.attacksReceived.length - 1]
|
||||||
|
if (this.condition(pokemon, attacker, move.getMove()) && (pokemon.hp <= hpGateFlat && (pokemon.hp + lastAttackReceived.damage) > hpGateFlat)) {
|
||||||
|
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, (this.selfTarget ? pokemon : attacker).getBattlerIndex(), true, this.stats, this.levels));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class PostDefendApplyArenaTrapTagAbAttr extends PostDefendAbAttr {
|
export class PostDefendApplyArenaTrapTagAbAttr extends PostDefendAbAttr {
|
||||||
private condition: PokemonDefendCondition;
|
private condition: PokemonDefendCondition;
|
||||||
private tagType: ArenaTagType;
|
private tagType: ArenaTagType;
|
||||||
|
|
@ -798,13 +827,16 @@ export class PostDefendAbilitySwapAbAttr extends PostDefendAbAttr {
|
||||||
}
|
}
|
||||||
|
|
||||||
export class PostDefendAbilityGiveAbAttr extends PostDefendAbAttr {
|
export class PostDefendAbilityGiveAbAttr extends PostDefendAbAttr {
|
||||||
constructor() {
|
private ability: Abilities;
|
||||||
|
|
||||||
|
constructor(ability: Abilities) {
|
||||||
super();
|
super();
|
||||||
|
this.ability = ability;
|
||||||
}
|
}
|
||||||
|
|
||||||
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean {
|
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean {
|
||||||
if (move.getMove().checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon) && !attacker.getAbility().hasAttr(UnsuppressableAbilityAbAttr) && !attacker.getAbility().hasAttr(PostDefendAbilityGiveAbAttr)) {
|
if (move.getMove().checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon) && !attacker.getAbility().hasAttr(UnsuppressableAbilityAbAttr) && !attacker.getAbility().hasAttr(PostDefendAbilityGiveAbAttr)) {
|
||||||
attacker.summonData.ability = pokemon.getAbility().id;
|
attacker.summonData.ability = this.ability;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -1609,6 +1641,27 @@ export class BonusCritAbAttr extends AbAttr {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class MultCritAbAttr extends AbAttr {
|
||||||
|
public multAmount: number;
|
||||||
|
|
||||||
|
constructor(multAmount: number) {
|
||||||
|
super(true);
|
||||||
|
|
||||||
|
this.multAmount = multAmount;
|
||||||
|
}
|
||||||
|
|
||||||
|
apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
|
||||||
|
const critMult = args[0] as Utils.NumberHolder;
|
||||||
|
if (critMult.value > 1){
|
||||||
|
critMult.value *= this.multAmount;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
export class BlockNonDirectDamageAbAttr extends AbAttr {
|
export class BlockNonDirectDamageAbAttr extends AbAttr {
|
||||||
apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
|
apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean {
|
||||||
cancelled.value = true;
|
cancelled.value = true;
|
||||||
|
|
@ -1735,6 +1788,53 @@ function getAnticipationCondition(): AbAttrCondition {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class ForewarnAbAttr extends PostSummonAbAttr {
|
||||||
|
constructor() {
|
||||||
|
super(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
|
||||||
|
let maxPowerSeen = 0;
|
||||||
|
let maxMove = "";
|
||||||
|
let movePower = 0;
|
||||||
|
for (let opponent of pokemon.getOpponents()) {
|
||||||
|
for (let move of opponent.moveset) {
|
||||||
|
if (move.getMove() instanceof StatusMove) {
|
||||||
|
movePower = 1;
|
||||||
|
} else if (move.getMove().findAttr(attr => attr instanceof OneHitKOAttr)) {
|
||||||
|
movePower = 150;
|
||||||
|
} else if (move.getMove().id === Moves.COUNTER || move.getMove().id === Moves.MIRROR_COAT || move.getMove().id === Moves.METAL_BURST) {
|
||||||
|
movePower = 120;
|
||||||
|
} else if (move.getMove().power === -1) {
|
||||||
|
movePower = 80;
|
||||||
|
} else {
|
||||||
|
movePower = move.getMove().power;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (movePower > maxPowerSeen) {
|
||||||
|
maxPowerSeen = movePower;
|
||||||
|
maxMove = move.getName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pokemon.scene.queueMessage(getPokemonMessage(pokemon, " was forewarned about " + maxMove + "!"));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FriskAbAttr extends PostSummonAbAttr {
|
||||||
|
constructor() {
|
||||||
|
super(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
|
||||||
|
for (let opponent of pokemon.getOpponents()) {
|
||||||
|
pokemon.scene.queueMessage(getPokemonMessage(pokemon, " frisked " + opponent.name + "\'s " + opponent.getAbility().name + "!"));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class PostWeatherChangeAbAttr extends AbAttr {
|
export class PostWeatherChangeAbAttr extends AbAttr {
|
||||||
applyPostWeatherChange(pokemon: Pokemon, passive: boolean, weather: WeatherType, args: any[]): boolean {
|
applyPostWeatherChange(pokemon: Pokemon, passive: boolean, weather: WeatherType, args: any[]): boolean {
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -1885,13 +1985,19 @@ export class MoodyAbAttr extends PostTurnAbAttr {
|
||||||
}
|
}
|
||||||
|
|
||||||
applyPostTurn(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
|
applyPostTurn(pokemon: Pokemon, passive: boolean, args: any[]): boolean {
|
||||||
// TODO: Edge case of not choosing to buff or debuff a stat that's already maxed
|
|
||||||
let selectableStats = [BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD];
|
let selectableStats = [BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD];
|
||||||
let increaseStat = selectableStats[Utils.randInt(selectableStats.length)];
|
let increaseStatArray = selectableStats.filter(s => pokemon.summonData.battleStats[s] < 6);
|
||||||
selectableStats = selectableStats.filter(s => s !== increaseStat);
|
let decreaseStatArray = selectableStats.filter(s => pokemon.summonData.battleStats[s] > -6);
|
||||||
let decreaseStat = selectableStats[Utils.randInt(selectableStats.length)];
|
|
||||||
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [increaseStat], 2));
|
if (increaseStatArray.length > 0) {
|
||||||
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [decreaseStat], -1));
|
let increaseStat = increaseStatArray[Utils.randInt(increaseStatArray.length)];
|
||||||
|
decreaseStatArray = decreaseStatArray.filter(s => s !== increaseStat);
|
||||||
|
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [increaseStat], 2));
|
||||||
|
}
|
||||||
|
if (decreaseStatArray.length > 0) {
|
||||||
|
let decreaseStat = selectableStats[Utils.randInt(selectableStats.length)];
|
||||||
|
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [decreaseStat], -1));
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2776,7 +2882,7 @@ export function initAbilities() {
|
||||||
.attr(MoveTypeChangeAttr, Type.NORMAL, 1.2, (user, target, move) => move.id !== Moves.HIDDEN_POWER && move.id !== Moves.WEATHER_BALL &&
|
.attr(MoveTypeChangeAttr, Type.NORMAL, 1.2, (user, target, move) => move.id !== Moves.HIDDEN_POWER && move.id !== Moves.WEATHER_BALL &&
|
||||||
move.id !== Moves.NATURAL_GIFT && move.id !== Moves.JUDGMENT && move.id !== Moves.TECHNO_BLAST),
|
move.id !== Moves.NATURAL_GIFT && move.id !== Moves.JUDGMENT && move.id !== Moves.TECHNO_BLAST),
|
||||||
new Ability(Abilities.SNIPER, 4)
|
new Ability(Abilities.SNIPER, 4)
|
||||||
.unimplemented(),
|
.attr(MultCritAbAttr, 1.5),
|
||||||
new Ability(Abilities.MAGIC_GUARD, 4)
|
new Ability(Abilities.MAGIC_GUARD, 4)
|
||||||
.attr(BlockNonDirectDamageAbAttr),
|
.attr(BlockNonDirectDamageAbAttr),
|
||||||
new Ability(Abilities.NO_GUARD, 4)
|
new Ability(Abilities.NO_GUARD, 4)
|
||||||
|
|
@ -2804,7 +2910,7 @@ export function initAbilities() {
|
||||||
new Ability(Abilities.ANTICIPATION, 4)
|
new Ability(Abilities.ANTICIPATION, 4)
|
||||||
.conditionalAttr(getAnticipationCondition(), PostSummonMessageAbAttr, (pokemon: Pokemon) => getPokemonMessage(pokemon, ' shuddered!')),
|
.conditionalAttr(getAnticipationCondition(), PostSummonMessageAbAttr, (pokemon: Pokemon) => getPokemonMessage(pokemon, ' shuddered!')),
|
||||||
new Ability(Abilities.FOREWARN, 4)
|
new Ability(Abilities.FOREWARN, 4)
|
||||||
.unimplemented(),
|
.attr(ForewarnAbAttr),
|
||||||
new Ability(Abilities.UNAWARE, 4)
|
new Ability(Abilities.UNAWARE, 4)
|
||||||
.attr(IgnoreOpponentStatChangesAbAttr)
|
.attr(IgnoreOpponentStatChangesAbAttr)
|
||||||
.ignorable(),
|
.ignorable(),
|
||||||
|
|
@ -2833,7 +2939,7 @@ export function initAbilities() {
|
||||||
new Ability(Abilities.HONEY_GATHER, 4)
|
new Ability(Abilities.HONEY_GATHER, 4)
|
||||||
.unimplemented(),
|
.unimplemented(),
|
||||||
new Ability(Abilities.FRISK, 4)
|
new Ability(Abilities.FRISK, 4)
|
||||||
.unimplemented(),
|
.attr(FriskAbAttr),
|
||||||
new Ability(Abilities.RECKLESS, 4)
|
new Ability(Abilities.RECKLESS, 4)
|
||||||
.attr(MovePowerBoostAbAttr, (user, target, move) => move.getAttrs(RecoilAttr).length && move.id !== Moves.STRUGGLE, 1.2),
|
.attr(MovePowerBoostAbAttr, (user, target, move) => move.getAttrs(RecoilAttr).length && move.id !== Moves.STRUGGLE, 1.2),
|
||||||
new Ability(Abilities.MULTITYPE, 4)
|
new Ability(Abilities.MULTITYPE, 4)
|
||||||
|
|
@ -2926,7 +3032,7 @@ export function initAbilities() {
|
||||||
new Ability(Abilities.INFILTRATOR, 5)
|
new Ability(Abilities.INFILTRATOR, 5)
|
||||||
.unimplemented(),
|
.unimplemented(),
|
||||||
new Ability(Abilities.MUMMY, 5)
|
new Ability(Abilities.MUMMY, 5)
|
||||||
.attr(PostDefendAbilityGiveAbAttr)
|
.attr(PostDefendAbilityGiveAbAttr, Abilities.MUMMY)
|
||||||
.bypassFaint(),
|
.bypassFaint(),
|
||||||
new Ability(Abilities.MOXIE, 5)
|
new Ability(Abilities.MOXIE, 5)
|
||||||
.attr(PostVictoryStatChangeAbAttr, BattleStat.ATK, 1),
|
.attr(PostVictoryStatChangeAbAttr, BattleStat.ATK, 1),
|
||||||
|
|
@ -3070,7 +3176,7 @@ export function initAbilities() {
|
||||||
new Ability(Abilities.STEELWORKER, 7)
|
new Ability(Abilities.STEELWORKER, 7)
|
||||||
.attr(MoveTypePowerBoostAbAttr, Type.STEEL),
|
.attr(MoveTypePowerBoostAbAttr, Type.STEEL),
|
||||||
new Ability(Abilities.BERSERK, 7)
|
new Ability(Abilities.BERSERK, 7)
|
||||||
.unimplemented(),
|
.attr(PostDefendHpGatedStatChangeAbAttr, (target, user, move) => move.category !== MoveCategory.STATUS, 0.5, [BattleStat.SPATK], 1),
|
||||||
new Ability(Abilities.SLUSH_RUSH, 7)
|
new Ability(Abilities.SLUSH_RUSH, 7)
|
||||||
.attr(BattleStatMultiplierAbAttr, BattleStat.SPD, 2)
|
.attr(BattleStatMultiplierAbAttr, BattleStat.SPD, 2)
|
||||||
.condition(getWeatherCondition(WeatherType.HAIL, WeatherType.SNOW)),
|
.condition(getWeatherCondition(WeatherType.HAIL, WeatherType.SNOW)),
|
||||||
|
|
@ -3259,6 +3365,7 @@ export function initAbilities() {
|
||||||
.attr(UncopiableAbilityAbAttr)
|
.attr(UncopiableAbilityAbAttr)
|
||||||
.attr(UnswappableAbilityAbAttr)
|
.attr(UnswappableAbilityAbAttr)
|
||||||
.attr(NoTransformAbilityAbAttr)
|
.attr(NoTransformAbilityAbAttr)
|
||||||
|
.attr(PostSummonMessageAbAttr, (pokemon: Pokemon) => getPokemonMessage(pokemon, '\'s Neutralizing Gas filled the area!'))
|
||||||
.partial(),
|
.partial(),
|
||||||
new Ability(Abilities.PASTEL_VEIL, 8)
|
new Ability(Abilities.PASTEL_VEIL, 8)
|
||||||
.attr(StatusEffectImmunityAbAttr, StatusEffect.POISON, StatusEffect.TOXIC)
|
.attr(StatusEffectImmunityAbAttr, StatusEffect.POISON, StatusEffect.TOXIC)
|
||||||
|
|
@ -3297,7 +3404,7 @@ export function initAbilities() {
|
||||||
.attr(UnswappableAbilityAbAttr)
|
.attr(UnswappableAbilityAbAttr)
|
||||||
.attr(UnsuppressableAbilityAbAttr),
|
.attr(UnsuppressableAbilityAbAttr),
|
||||||
new Ability(Abilities.LINGERING_AROMA, 9)
|
new Ability(Abilities.LINGERING_AROMA, 9)
|
||||||
.attr(PostDefendAbilityGiveAbAttr)
|
.attr(PostDefendAbilityGiveAbAttr, Abilities.LINGERING_AROMA)
|
||||||
.bypassFaint(),
|
.bypassFaint(),
|
||||||
new Ability(Abilities.SEED_SOWER, 9)
|
new Ability(Abilities.SEED_SOWER, 9)
|
||||||
.attr(PostDefendTerrainChangeAbAttr, TerrainType.GRASSY),
|
.attr(PostDefendTerrainChangeAbAttr, TerrainType.GRASSY),
|
||||||
|
|
@ -3306,7 +3413,8 @@ export function initAbilities() {
|
||||||
.attr(StatusEffectImmunityAbAttr, StatusEffect.BURN)
|
.attr(StatusEffectImmunityAbAttr, StatusEffect.BURN)
|
||||||
.ignorable(),
|
.ignorable(),
|
||||||
new Ability(Abilities.ANGER_SHELL, 9)
|
new Ability(Abilities.ANGER_SHELL, 9)
|
||||||
.unimplemented(),
|
.attr(PostDefendHpGatedStatChangeAbAttr, (target, user, move) => move.category !== MoveCategory.STATUS, 0.5, [ BattleStat.ATK, BattleStat.SPATK, BattleStat.SPD ], 1)
|
||||||
|
.attr(PostDefendHpGatedStatChangeAbAttr, (target, user, move) => move.category !== MoveCategory.STATUS, 0.5, [ BattleStat.DEF, BattleStat.SPDEF ], -1),
|
||||||
new Ability(Abilities.PURIFYING_SALT, 9)
|
new Ability(Abilities.PURIFYING_SALT, 9)
|
||||||
.attr(StatusEffectImmunityAbAttr)
|
.attr(StatusEffectImmunityAbAttr)
|
||||||
.attr(ReceivedTypeDamageMultiplierAbAttr, Type.GHOST, 0.5)
|
.attr(ReceivedTypeDamageMultiplierAbAttr, Type.GHOST, 0.5)
|
||||||
|
|
|
||||||
|
|
@ -984,6 +984,19 @@ export class HideSpriteTag extends BattlerTag {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class TypeImmuneTag extends BattlerTag {
|
||||||
|
public immuneType: Type;
|
||||||
|
constructor(tagType: BattlerTagType, sourceMove: Moves, immuneType: Type, length: number) {
|
||||||
|
super(tagType, BattlerTagLapseType.TURN_END, 1, sourceMove);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class MagnetRisenTag extends TypeImmuneTag {
|
||||||
|
constructor(tagType: BattlerTagType, sourceMove: Moves) {
|
||||||
|
super(tagType, sourceMove, Type.GROUND, 5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class TypeBoostTag extends BattlerTag {
|
export class TypeBoostTag extends BattlerTag {
|
||||||
public boostedType: Type;
|
public boostedType: Type;
|
||||||
public boostValue: number;
|
public boostValue: number;
|
||||||
|
|
@ -1211,6 +1224,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourc
|
||||||
return new CursedTag(sourceId);
|
return new CursedTag(sourceId);
|
||||||
case BattlerTagType.CHARGED:
|
case BattlerTagType.CHARGED:
|
||||||
return new TypeBoostTag(tagType, sourceMove, Type.ELECTRIC, 2, true);
|
return new TypeBoostTag(tagType, sourceMove, Type.ELECTRIC, 2, true);
|
||||||
|
case BattlerTagType.MAGNET_RISEN:
|
||||||
|
return new MagnetRisenTag(tagType, sourceMove);
|
||||||
case BattlerTagType.NONE:
|
case BattlerTagType.NONE:
|
||||||
default:
|
default:
|
||||||
return new BattlerTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId);
|
return new BattlerTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId);
|
||||||
|
|
|
||||||
|
|
@ -241,10 +241,10 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.ALL]: [ { 1: [ Species.BULBASAUR ], 16: [ Species.IVYSAUR ], 32: [ Species.VENUSAUR ] }, Species.GROWLITHE, { 1: [ Species.TURTWIG ], 18: [ Species.GROTLE ], 32: [ Species.TORTERRA ] } ]
|
[TimeOfDay.ALL]: [ { 1: [ Species.BULBASAUR ], 16: [ Species.IVYSAUR ], 32: [ Species.VENUSAUR ] }, Species.GROWLITHE, { 1: [ Species.TURTWIG ], 18: [ Species.GROTLE ], 32: [ Species.TORTERRA ] } ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.SUDOWOODO ] },
|
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.SUDOWOODO ] },
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.VIRIZION ] },
|
||||||
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [ Species.JUMPLUFF, Species.SUNFLORA, Species.WHIMSICOTT ], [TimeOfDay.DAY]: [ Species.JUMPLUFF, Species.SUNFLORA, Species.WHIMSICOTT ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [ Species.JUMPLUFF, Species.SUNFLORA, Species.WHIMSICOTT ], [TimeOfDay.DAY]: [ Species.JUMPLUFF, Species.SUNFLORA, Species.WHIMSICOTT ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.VENUSAUR, Species.SUDOWOODO, Species.TORTERRA ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.VENUSAUR, Species.SUDOWOODO, Species.TORTERRA ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.VIRIZION ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
||||||
},
|
},
|
||||||
[Biome.TALL_GRASS]: {
|
[Biome.TALL_GRASS]: {
|
||||||
|
|
@ -487,14 +487,14 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.NIGHT]: [ Species.ARBOK, Species.CLODSIRE ],
|
[TimeOfDay.NIGHT]: [ Species.ARBOK, Species.CLODSIRE ],
|
||||||
[TimeOfDay.ALL]: [ Species.POLIWRATH, Species.SWALOT, Species.WHISCASH, Species.GASTRODON, Species.SEISMITOAD, Species.STUNFISK, Species.TOXAPEX ]
|
[TimeOfDay.ALL]: [ Species.POLIWRATH, Species.SWALOT, Species.WHISCASH, Species.GASTRODON, Species.SEISMITOAD, Species.STUNFISK, Species.TOXAPEX ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.FERALIGATR, Species.POLITOED, Species.SWAMPERT ] },
|
[BiomePoolTier.BOSS_RARE]: {
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: {
|
|
||||||
[TimeOfDay.DAWN]: [ Species.GALAR_SLOWBRO, Species.GALAR_SLOWKING, Species.HISUI_GOODRA ],
|
[TimeOfDay.DAWN]: [ Species.GALAR_SLOWBRO, Species.GALAR_SLOWKING, Species.HISUI_GOODRA ],
|
||||||
[TimeOfDay.DAY]: [ Species.GALAR_SLOWBRO, Species.GALAR_SLOWKING, Species.HISUI_GOODRA ],
|
[TimeOfDay.DAY]: [ Species.GALAR_SLOWBRO, Species.GALAR_SLOWKING, Species.HISUI_GOODRA ],
|
||||||
[TimeOfDay.DUSK]: [],
|
[TimeOfDay.DUSK]: [],
|
||||||
[TimeOfDay.NIGHT]: [],
|
[TimeOfDay.NIGHT]: [],
|
||||||
[TimeOfDay.ALL]: [ Species.AZELF, Species.NAGANADEL, Species.GALAR_STUNFISK ]
|
[TimeOfDay.ALL]: [ Species.FERALIGATR, Species.POLITOED, Species.SWAMPERT, Species.GALAR_STUNFISK ]
|
||||||
},
|
},
|
||||||
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.AZELF, Species.NAGANADEL ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
||||||
},
|
},
|
||||||
[Biome.BEACH]: {
|
[Biome.BEACH]: {
|
||||||
|
|
@ -521,7 +521,7 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
},
|
},
|
||||||
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.QUAXLY ], 16: [ Species.QUAXWELL ], 36: [ Species.QUAQUAVAL ] }, Species.TATSUGIRI ] },
|
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.QUAXLY ], 16: [ Species.QUAXWELL ], 36: [ Species.QUAQUAVAL ] }, Species.TATSUGIRI ] },
|
||||||
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.TIRTOUGA ], 37: [ Species.CARRACOSTA ] } ] },
|
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.TIRTOUGA ], 37: [ Species.CARRACOSTA ] } ] },
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KELDEO ] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CRESSELIA, Species.KELDEO, Species.TAPU_FINI ] },
|
||||||
[BiomePoolTier.BOSS]: {
|
[BiomePoolTier.BOSS]: {
|
||||||
[TimeOfDay.DAWN]: [ Species.STARMIE ],
|
[TimeOfDay.DAWN]: [ Species.STARMIE ],
|
||||||
[TimeOfDay.DAY]: [ Species.STARMIE ],
|
[TimeOfDay.DAY]: [ Species.STARMIE ],
|
||||||
|
|
@ -530,7 +530,7 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.ALL]: [ Species.KINGLER, Species.CRAWDAUNT, Species.WORMADAM, Species.CRUSTLE, Species.BARBARACLE, Species.CLAWITZER, Species.TOXAPEX, Species.PALOSSAND ]
|
[TimeOfDay.ALL]: [ Species.KINGLER, Species.CRAWDAUNT, Species.WORMADAM, Species.CRUSTLE, Species.BARBARACLE, Species.CLAWITZER, Species.TOXAPEX, Species.PALOSSAND ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CARRACOSTA, Species.QUAQUAVAL ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CARRACOSTA, Species.QUAQUAVAL ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KELDEO ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CRESSELIA, Species.KELDEO, Species.TAPU_FINI ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
||||||
},
|
},
|
||||||
[Biome.LAKE]: {
|
[Biome.LAKE]: {
|
||||||
|
|
@ -640,8 +640,14 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.NIGHT]: [],
|
[TimeOfDay.NIGHT]: [],
|
||||||
[TimeOfDay.ALL]: [ Species.LANTURN, Species.QWILFISH, Species.CORSOLA, Species.OCTILLERY, Species.MANTINE, Species.WAILORD, Species.HUNTAIL, Species.GOREBYSS, Species.LUVDISC, Species.JELLICENT, Species.ALOMOMOLA, Species.DRAGALGE, Species.BARRASKEWDA, Species.DONDOZO ]
|
[TimeOfDay.ALL]: [ Species.LANTURN, Species.QWILFISH, Species.CORSOLA, Species.OCTILLERY, Species.MANTINE, Species.WAILORD, Species.HUNTAIL, Species.GOREBYSS, Species.LUVDISC, Species.JELLICENT, Species.ALOMOMOLA, Species.DRAGALGE, Species.BARRASKEWDA, Species.DONDOZO ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.OMASTAR, Species.KABUTOPS, Species.RELICANTH, Species.EELEKTROSS, Species.PYUKUMUKU, Species.DHELMISE, Species.ARCTOVISH, Species.BASCULEGION ] },
|
[BiomePoolTier.BOSS_RARE]: {
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MILOTIC, Species.NIHILEGO, Species.CURSOLA, Species.OVERQWIL ] },
|
[TimeOfDay.DAWN]: [],
|
||||||
|
[TimeOfDay.DAY]: [],
|
||||||
|
[TimeOfDay.DUSK]: [],
|
||||||
|
[TimeOfDay.NIGHT]: [],
|
||||||
|
[TimeOfDay.ALL]: [ Species.OMASTAR, Species.KABUTOPS, Species.RELICANTH, Species.EELEKTROSS, Species.PYUKUMUKU, Species.DHELMISE, Species.CURSOLA, Species.ARCTOVISH, Species.BASCULEGION, Species.OVERQWIL ]
|
||||||
|
},
|
||||||
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MILOTIC, Species.NIHILEGO ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KYOGRE ] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KYOGRE ] }
|
||||||
},
|
},
|
||||||
[Biome.MOUNTAIN]: {
|
[Biome.MOUNTAIN]: {
|
||||||
|
|
@ -840,7 +846,7 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.ALL]: [ { 1: [ Species.DARUMAKA ], 35: [ Species.DARMANITAN ] } ]
|
[TimeOfDay.ALL]: [ { 1: [ Species.DARUMAKA ], 35: [ Species.DARMANITAN ] } ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.LILEEP ], 40: [ Species.CRADILY ] }, { 1: [ Species.ANORITH ], 40: [ Species.ARMALDO ] } ] },
|
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.LILEEP ], 40: [ Species.CRADILY ] }, { 1: [ Species.ANORITH ], 40: [ Species.ARMALDO ] } ] },
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGIROCK, Species.PHEROMOSA ] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGIROCK, Species.TAPU_BULU, Species.PHEROMOSA ] },
|
||||||
[BiomePoolTier.BOSS]: {
|
[BiomePoolTier.BOSS]: {
|
||||||
[TimeOfDay.DAWN]: [ Species.HIPPOWDON, Species.HELIOLISK, Species.RABSCA ],
|
[TimeOfDay.DAWN]: [ Species.HIPPOWDON, Species.HELIOLISK, Species.RABSCA ],
|
||||||
[TimeOfDay.DAY]: [ Species.HIPPOWDON, Species.HELIOLISK, Species.RABSCA ],
|
[TimeOfDay.DAY]: [ Species.HIPPOWDON, Species.HELIOLISK, Species.RABSCA ],
|
||||||
|
|
@ -849,7 +855,7 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.ALL]: [ Species.SANDSLASH, Species.DRAPION, Species.DARMANITAN, Species.MARACTUS, Species.SANDACONDA, Species.BRAMBLEGHAST ]
|
[TimeOfDay.ALL]: [ Species.SANDSLASH, Species.DRAPION, Species.DARMANITAN, Species.MARACTUS, Species.SANDACONDA, Species.BRAMBLEGHAST ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CRADILY, Species.ARMALDO ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CRADILY, Species.ARMALDO ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGIROCK, Species.PHEROMOSA ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGIROCK, Species.TAPU_BULU, Species.PHEROMOSA ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
||||||
},
|
},
|
||||||
[Biome.ICE_CAVE]: {
|
[Biome.ICE_CAVE]: {
|
||||||
|
|
@ -951,9 +957,9 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.NIGHT]: [],
|
[TimeOfDay.NIGHT]: [],
|
||||||
[TimeOfDay.ALL]: [ Species.TAUROS, Species.MILTANK, Species.GARDEVOIR, Species.PURUGLY, Species.ZEBSTRIKA, Species.FLORGES, Species.RIBOMBEE, Species.DUBWOOL ]
|
[TimeOfDay.ALL]: [ Species.TAUROS, Species.MILTANK, Species.GARDEVOIR, Species.PURUGLY, Species.ZEBSTRIKA, Species.FLORGES, Species.RIBOMBEE, Species.DUBWOOL ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.BLISSEY, Species.SYLVEON, Species.FLAPPLE, Species.APPLETUN, Species.MEOWSCARADA, Species.HYDRAPPLE ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [ Species.HISUI_LILLIGANT ], [TimeOfDay.DAY]: [ Species.HISUI_LILLIGANT ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.BLISSEY, Species.SYLVEON, Species.FLAPPLE, Species.APPLETUN, Species.MEOWSCARADA, Species.HYDRAPPLE ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [ Species.HISUI_LILLIGANT ], [TimeOfDay.DAY]: [ Species.HISUI_LILLIGANT ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MELOETTA ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MELOETTA ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.SHAYMIN ] }
|
||||||
},
|
},
|
||||||
[Biome.POWER_PLANT]: {
|
[Biome.POWER_PLANT]: {
|
||||||
[BiomePoolTier.COMMON]: {
|
[BiomePoolTier.COMMON]: {
|
||||||
|
|
@ -984,8 +990,8 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.NIGHT]: [],
|
[TimeOfDay.NIGHT]: [],
|
||||||
[TimeOfDay.ALL]: [ Species.RAICHU, Species.MANECTRIC, Species.LUXRAY, Species.MAGNEZONE, Species.ELECTIVIRE, Species.DEDENNE, Species.VIKAVOLT, Species.TOGEDEMARU, Species.PAWMOT, Species.BELLIBOLT ]
|
[TimeOfDay.ALL]: [ Species.RAICHU, Species.MANECTRIC, Species.LUXRAY, Species.MAGNEZONE, Species.ELECTIVIRE, Species.DEDENNE, Species.VIKAVOLT, Species.TOGEDEMARU, Species.PAWMOT, Species.BELLIBOLT ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.JOLTEON, Species.AMPHAROS ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.JOLTEON, Species.AMPHAROS, Species.HISUI_ELECTRODE ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZAPDOS, Species.RAIKOU, Species.THUNDURUS, Species.XURKITREE, Species.ZERAORA, Species.REGIELEKI, Species.HISUI_ELECTRODE ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZAPDOS, Species.RAIKOU, Species.THUNDURUS, Species.XURKITREE, Species.ZERAORA, Species.REGIELEKI ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZEKROM ] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZEKROM ] }
|
||||||
},
|
},
|
||||||
[Biome.VOLCANO]: {
|
[Biome.VOLCANO]: {
|
||||||
|
|
@ -1035,9 +1041,9 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.DAY]: [],
|
[TimeOfDay.DAY]: [],
|
||||||
[TimeOfDay.DUSK]: [],
|
[TimeOfDay.DUSK]: [],
|
||||||
[TimeOfDay.NIGHT]: [],
|
[TimeOfDay.NIGHT]: [],
|
||||||
[TimeOfDay.ALL]: [ Species.CHARIZARD, Species.FLAREON, Species.TYPHLOSION, Species.INFERNAPE, Species.EMBOAR, Species.VOLCARONA, Species.DELPHOX, Species.INCINEROAR, Species.CINDERACE, Species.ARMAROUGE ]
|
[TimeOfDay.ALL]: [ Species.CHARIZARD, Species.FLAREON, Species.TYPHLOSION, Species.INFERNAPE, Species.EMBOAR, Species.VOLCARONA, Species.DELPHOX, Species.INCINEROAR, Species.CINDERACE, Species.ARMAROUGE, Species.HISUI_ARCANINE ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MOLTRES, Species.ENTEI, Species.ROTOM, Species.HEATRAN, Species.VOLCANION, Species.CHI_YU, Species.HISUI_ARCANINE ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MOLTRES, Species.ENTEI, Species.ROTOM, Species.HEATRAN, Species.VOLCANION, Species.CHI_YU ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.RESHIRAM ] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.RESHIRAM ] }
|
||||||
},
|
},
|
||||||
[Biome.GRAVEYARD]: {
|
[Biome.GRAVEYARD]: {
|
||||||
|
|
@ -1074,8 +1080,8 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.NIGHT]: [],
|
[TimeOfDay.NIGHT]: [],
|
||||||
[TimeOfDay.ALL]: [ Species.GENGAR, Species.BANETTE, Species.DRIFBLIM, Species.MISMAGIUS, Species.DUSKNOIR, Species.CHANDELURE, Species.TREVENANT, Species.GOURGEIST, Species.MIMIKYU, Species.POLTEAGEIST, Species.HOUNDSTONE ]
|
[TimeOfDay.ALL]: [ Species.GENGAR, Species.BANETTE, Species.DRIFBLIM, Species.MISMAGIUS, Species.DUSKNOIR, Species.CHANDELURE, Species.TREVENANT, Species.GOURGEIST, Species.MIMIKYU, Species.POLTEAGEIST, Species.HOUNDSTONE ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.SKELEDIRGE, Species.CERULEDGE ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.SKELEDIRGE, Species.CERULEDGE, Species.HISUI_TYPHLOSION ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MARSHADOW, Species.SPECTRIER, Species.HISUI_TYPHLOSION ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MARSHADOW, Species.SPECTRIER ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GIRATINA ] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GIRATINA ] }
|
||||||
},
|
},
|
||||||
[Biome.DOJO]: {
|
[Biome.DOJO]: {
|
||||||
|
|
@ -1109,8 +1115,8 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.NIGHT]: [],
|
[TimeOfDay.NIGHT]: [],
|
||||||
[TimeOfDay.ALL]: [ Species.HITMONLEE, Species.HITMONCHAN, Species.HARIYAMA, Species.MEDICHAM, Species.LUCARIO, Species.TOXICROAK, Species.THROH, Species.SAWK, Species.SCRAFTY, Species.MIENSHAO, Species.BEWEAR, Species.GRAPPLOCT, Species.ANNIHILAPE ]
|
[TimeOfDay.ALL]: [ Species.HITMONLEE, Species.HITMONCHAN, Species.HARIYAMA, Species.MEDICHAM, Species.LUCARIO, Species.TOXICROAK, Species.THROH, Species.SAWK, Species.SCRAFTY, Species.MIENSHAO, Species.BEWEAR, Species.GRAPPLOCT, Species.ANNIHILAPE ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HITMONTOP, Species.GALLADE, Species.PANGORO ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HITMONTOP, Species.GALLADE, Species.PANGORO, Species.SIRFETCHD, Species.HISUI_DECIDUEYE ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.TERRAKION, Species.SIRFETCHD, Species.URSHIFU, Species.HISUI_DECIDUEYE ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.TERRAKION, Species.URSHIFU ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZAMAZENTA, Species.GALAR_ZAPDOS ] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZAMAZENTA, Species.GALAR_ZAPDOS ] }
|
||||||
},
|
},
|
||||||
[Biome.FACTORY]: {
|
[Biome.FACTORY]: {
|
||||||
|
|
@ -1168,8 +1174,8 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
},
|
},
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGISTEEL, Species.FEZANDIPITI ] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGISTEEL, Species.FEZANDIPITI ] },
|
||||||
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ALAKAZAM, Species.HYPNO, Species.XATU, Species.GRUMPIG, Species.CLAYDOL, Species.SIGILYPH, Species.GOTHITELLE, Species.BEHEEYEM, Species.TINKATON ] },
|
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ALAKAZAM, Species.HYPNO, Species.XATU, Species.GRUMPIG, Species.CLAYDOL, Species.SIGILYPH, Species.GOTHITELLE, Species.BEHEEYEM, Species.TINKATON ] },
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [ Species.ESPEON ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MR_MIME, Species.WOBBUFFET, Species.ARCHEOPS ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [ Species.ESPEON ], [TimeOfDay.DUSK]: [ Species.RUNERIGUS ], [TimeOfDay.NIGHT]: [ Species.RUNERIGUS ], [TimeOfDay.ALL]: [ Species.MR_MIME, Species.WOBBUFFET, Species.ARCHEOPS ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.RUNERIGUS ], [TimeOfDay.NIGHT]: [ Species.RUNERIGUS ], [TimeOfDay.ALL]: [ Species.REGISTEEL, Species.FEZANDIPITI ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGISTEEL, Species.FEZANDIPITI ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KORAIDON ] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KORAIDON ] }
|
||||||
},
|
},
|
||||||
[Biome.WASTELAND]: {
|
[Biome.WASTELAND]: {
|
||||||
|
|
@ -1245,7 +1251,7 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.ALL]: [ Species.ABSOL, Species.SPIRITOMB, { 1: [ Species.ZORUA ], 30: [ Species.ZOROARK ] }, { 1: [ Species.DEINO ], 50: [ Species.ZWEILOUS ], 64: [ Species.HYDREIGON ] } ]
|
[TimeOfDay.ALL]: [ Species.ABSOL, Species.SPIRITOMB, { 1: [ Species.ZORUA ], 30: [ Species.ZOROARK ] }, { 1: [ Species.DEINO ], 50: [ Species.ZWEILOUS ], 64: [ Species.HYDREIGON ] } ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.UMBREON ] },
|
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.UMBREON ] },
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DARKRAI, Species.GUZZLORD, Species.GALAR_MOLTRES ] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DARKRAI, Species.GALAR_MOLTRES ] },
|
||||||
[BiomePoolTier.BOSS]: {
|
[BiomePoolTier.BOSS]: {
|
||||||
[TimeOfDay.DAWN]: [],
|
[TimeOfDay.DAWN]: [],
|
||||||
[TimeOfDay.DAY]: [],
|
[TimeOfDay.DAY]: [],
|
||||||
|
|
@ -1253,8 +1259,8 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.NIGHT]: [],
|
[TimeOfDay.NIGHT]: [],
|
||||||
[TimeOfDay.ALL]: [ Species.HOUNDOOM, Species.SABLEYE, Species.ABSOL, Species.HONCHKROW, Species.SPIRITOMB, Species.LIEPARD, Species.ZOROARK, Species.HYDREIGON, Species.THIEVUL, Species.GRIMMSNARL, Species.MABOSSTIFF, Species.KINGAMBIT ]
|
[TimeOfDay.ALL]: [ Species.HOUNDOOM, Species.SABLEYE, Species.ABSOL, Species.HONCHKROW, Species.SPIRITOMB, Species.LIEPARD, Species.ZOROARK, Species.HYDREIGON, Species.THIEVUL, Species.GRIMMSNARL, Species.MABOSSTIFF, Species.KINGAMBIT ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.UMBREON ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.UMBREON, Species.HISUI_SAMUROTT ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DARKRAI, Species.GUZZLORD, Species.HISUI_SAMUROTT ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DARKRAI ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.PALKIA, Species.YVELTAL, Species.GALAR_MOLTRES ] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.PALKIA, Species.YVELTAL, Species.GALAR_MOLTRES ] }
|
||||||
},
|
},
|
||||||
[Biome.SPACE]: {
|
[Biome.SPACE]: {
|
||||||
|
|
@ -1274,10 +1280,10 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.ALL]: [ { 1: [ Species.BELDUM ], 20: [ Species.METANG ], 45: [ Species.METAGROSS ] }, Species.SIGILYPH, { 1: [ Species.SOLOSIS ], 32: [ Species.DUOSION ], 41: [ Species.REUNICLUS ] } ]
|
[TimeOfDay.ALL]: [ { 1: [ Species.BELDUM ], 20: [ Species.METANG ], 45: [ Species.METAGROSS ] }, Species.SIGILYPH, { 1: [ Species.SOLOSIS ], 32: [ Species.DUOSION ], 41: [ Species.REUNICLUS ] } ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.PORYGON ], 30: [ Species.PORYGON2 ] } ] },
|
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.PORYGON ], 30: [ Species.PORYGON2 ] } ] },
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CRESSELIA, { 1: [ Species.COSMOG ], 43: [ Species.COSMOEM ] }, Species.CELESTEELA ] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.COSMOG ], 43: [ Species.COSMOEM ] }, Species.CELESTEELA ] },
|
||||||
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [ Species.SOLROCK ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [ Species.LUNATONE ], [TimeOfDay.ALL]: [ Species.CLEFABLE, Species.BRONZONG, Species.MUSHARNA, Species.REUNICLUS, Species.MINIOR ] },
|
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [ Species.SOLROCK ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [ Species.LUNATONE ], [TimeOfDay.ALL]: [ Species.CLEFABLE, Species.BRONZONG, Species.MUSHARNA, Species.REUNICLUS, Species.MINIOR ] },
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.METAGROSS, Species.PORYGON_Z ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.METAGROSS, Species.PORYGON_Z ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CRESSELIA, Species.CELESTEELA ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CELESTEELA ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [ Species.SOLGALEO ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [ Species.LUNALA ], [TimeOfDay.ALL]: [ Species.RAYQUAZA, Species.NECROZMA ] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [ Species.SOLGALEO ], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [ Species.LUNALA ], [TimeOfDay.ALL]: [ Species.RAYQUAZA, Species.NECROZMA ] }
|
||||||
},
|
},
|
||||||
[Biome.CONSTRUCTION_SITE]: {
|
[Biome.CONSTRUCTION_SITE]: {
|
||||||
|
|
@ -1307,10 +1313,10 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
},
|
},
|
||||||
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ { 1: [ Species.GALAR_MEOWTH ], 28: [ Species.PERRSERKER ] } ], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ONIX, Species.HITMONLEE, Species.HITMONCHAN, Species.DURALUDON ] },
|
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ { 1: [ Species.GALAR_MEOWTH ], 28: [ Species.PERRSERKER ] } ], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ONIX, Species.HITMONLEE, Species.HITMONCHAN, Species.DURALUDON ] },
|
||||||
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DITTO, Species.HITMONTOP ] },
|
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.DITTO, Species.HITMONTOP ] },
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.COBALION ] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.COBALION, Species.STAKATAKA ] },
|
||||||
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MACHAMP, Species.CONKELDURR ] },
|
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.MACHAMP, Species.CONKELDURR ] },
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.PERRSERKER ], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ARCHALUDON ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.PERRSERKER ], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ARCHALUDON ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.COBALION ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.COBALION, Species.STAKATAKA ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
||||||
},
|
},
|
||||||
[Biome.JUNGLE]: {
|
[Biome.JUNGLE]: {
|
||||||
|
|
@ -1352,7 +1358,7 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KANGASKHAN, Species.CHATOT, Species.KLEAVOR ] },
|
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KANGASKHAN, Species.CHATOT, Species.KLEAVOR ] },
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.VIRIZION, Species.BUZZWOLE, Species.ZARUDE, Species.MUNKIDORI ] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.TAPU_LELE, Species.BUZZWOLE, Species.ZARUDE, Species.MUNKIDORI ] },
|
||||||
[BiomePoolTier.BOSS]: {
|
[BiomePoolTier.BOSS]: {
|
||||||
[TimeOfDay.DAWN]: [ Species.EXEGGUTOR, Species.TROPIUS, Species.CHERRIM, Species.LEAVANNY, Species.KOMALA ],
|
[TimeOfDay.DAWN]: [ Species.EXEGGUTOR, Species.TROPIUS, Species.CHERRIM, Species.LEAVANNY, Species.KOMALA ],
|
||||||
[TimeOfDay.DAY]: [ Species.EXEGGUTOR, Species.TROPIUS, Species.CHERRIM, Species.LEAVANNY, Species.KOMALA ],
|
[TimeOfDay.DAY]: [ Species.EXEGGUTOR, Species.TROPIUS, Species.CHERRIM, Species.LEAVANNY, Species.KOMALA ],
|
||||||
|
|
@ -1367,7 +1373,7 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.NIGHT]: [],
|
[TimeOfDay.NIGHT]: [],
|
||||||
[TimeOfDay.ALL]: [ Species.KANGASKHAN, Species.SCIZOR, Species.SLAKING, Species.LEAFEON, Species.SERPERIOR, Species.RILLABOOM ]
|
[TimeOfDay.ALL]: [ Species.KANGASKHAN, Species.SCIZOR, Species.SLAKING, Species.LEAFEON, Species.SERPERIOR, Species.RILLABOOM ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.VIRIZION, Species.BUZZWOLE, Species.ZARUDE, Species.MUNKIDORI ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.TAPU_LELE, Species.BUZZWOLE, Species.ZARUDE, Species.MUNKIDORI ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KLEAVOR ] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.KLEAVOR ] }
|
||||||
},
|
},
|
||||||
[Biome.FAIRY_CAVE]: {
|
[Biome.FAIRY_CAVE]: {
|
||||||
|
|
@ -1445,10 +1451,10 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
},
|
},
|
||||||
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.GIMMIGHOUL ], 40: [ Species.GHOLDENGO ] } ] },
|
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ { 1: [ Species.GIMMIGHOUL ], 40: [ Species.GHOLDENGO ] } ] },
|
||||||
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HOOPA, Species.TAPU_KOKO, Species.TAPU_LELE, Species.TAPU_BULU, Species.TAPU_FINI ] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HOOPA, Species.TAPU_KOKO ] },
|
||||||
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CHIMECHO, Species.COFAGRIGUS, Species.GOLURK, Species.AEGISLASH ] },
|
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.CHIMECHO, Species.COFAGRIGUS, Species.GOLURK, Species.AEGISLASH ] },
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GHOLDENGO ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GHOLDENGO ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HOOPA, Species.TAPU_KOKO, Species.TAPU_LELE, Species.TAPU_BULU, Species.TAPU_FINI ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.HOOPA, Species.TAPU_KOKO ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGIGIGAS ] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.REGIGIGAS ] }
|
||||||
},
|
},
|
||||||
[Biome.SLUM]: {
|
[Biome.SLUM]: {
|
||||||
|
|
@ -1479,10 +1485,10 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.ALL]: [ { 1: [ Species.VAROOM ], 40: [ Species.REVAVROOM ] } ]
|
[TimeOfDay.ALL]: [ { 1: [ Species.VAROOM ], 40: [ Species.REVAVROOM ] } ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GUZZLORD ] },
|
||||||
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.SKUNTANK, Species.WATCHOG ], [TimeOfDay.NIGHT]: [ Species.SKUNTANK, Species.WATCHOG ], [TimeOfDay.ALL]: [ Species.MUK, Species.WEEZING, Species.WORMADAM, Species.GARBODOR ] },
|
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.SKUNTANK, Species.WATCHOG ], [TimeOfDay.NIGHT]: [ Species.SKUNTANK, Species.WATCHOG ], [TimeOfDay.ALL]: [ Species.MUK, Species.WEEZING, Species.WORMADAM, Species.GARBODOR ] },
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.TOXTRICITY, Species.OBSTAGOON ], [TimeOfDay.NIGHT]: [ Species.TOXTRICITY, Species.OBSTAGOON ], [TimeOfDay.ALL]: [ Species.REVAVROOM ] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [ Species.TOXTRICITY, Species.OBSTAGOON ], [TimeOfDay.NIGHT]: [ Species.TOXTRICITY, Species.OBSTAGOON ], [TimeOfDay.ALL]: [ Species.REVAVROOM, Species.GALAR_WEEZING ] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GALAR_WEEZING ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GUZZLORD ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
||||||
},
|
},
|
||||||
[Biome.SNOWY_FOREST]: {
|
[Biome.SNOWY_FOREST]: {
|
||||||
|
|
@ -1516,14 +1522,14 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
},
|
},
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GLASTRIER, Species.CHIEN_PAO, Species.GALAR_ARTICUNO ] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GLASTRIER, Species.CHIEN_PAO, Species.GALAR_ARTICUNO ] },
|
||||||
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [ Species.WYRDEER ], [TimeOfDay.DAY]: [ Species.WYRDEER ], [TimeOfDay.DUSK]: [ Species.FROSMOTH ], [TimeOfDay.NIGHT]: [ Species.FROSMOTH ], [TimeOfDay.ALL]: [ Species.ABOMASNOW, Species.URSALUNA ] },
|
[BiomePoolTier.BOSS]: { [TimeOfDay.DAWN]: [ Species.WYRDEER ], [TimeOfDay.DAY]: [ Species.WYRDEER ], [TimeOfDay.DUSK]: [ Species.FROSMOTH ], [TimeOfDay.NIGHT]: [ Species.FROSMOTH ], [TimeOfDay.ALL]: [ Species.ABOMASNOW, Species.URSALUNA ] },
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ARCTOZOLT, Species.ALOLA_SANDSLASH, Species.ALOLA_NINETALES ] },
|
[BiomePoolTier.BOSS_RARE]: {
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: {
|
|
||||||
[TimeOfDay.DAWN]: [ Species.SNEASLER, Species.GALAR_DARMANITAN ],
|
[TimeOfDay.DAWN]: [ Species.SNEASLER, Species.GALAR_DARMANITAN ],
|
||||||
[TimeOfDay.DAY]: [ Species.SNEASLER, Species.GALAR_DARMANITAN ],
|
[TimeOfDay.DAY]: [ Species.SNEASLER, Species.GALAR_DARMANITAN ],
|
||||||
[TimeOfDay.DUSK]: [ Species.HISUI_ZOROARK ],
|
[TimeOfDay.DUSK]: [ Species.HISUI_ZOROARK ],
|
||||||
[TimeOfDay.NIGHT]: [ Species.HISUI_ZOROARK ],
|
[TimeOfDay.NIGHT]: [ Species.HISUI_ZOROARK ],
|
||||||
[TimeOfDay.ALL]: [ Species.MR_RIME, Species.GLASTRIER, Species.CHIEN_PAO ]
|
[TimeOfDay.ALL]: [ Species.MR_RIME, Species.ARCTOZOLT, Species.ALOLA_SANDSLASH, Species.ALOLA_NINETALES ]
|
||||||
},
|
},
|
||||||
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.GLASTRIER, Species.CHIEN_PAO ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZACIAN, Species.GALAR_ARTICUNO ] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.ZACIAN, Species.GALAR_ARTICUNO ] }
|
||||||
},
|
},
|
||||||
[Biome.ISLAND]: {
|
[Biome.ISLAND]: {
|
||||||
|
|
@ -1550,7 +1556,7 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
},
|
},
|
||||||
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
[BiomePoolTier.RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
||||||
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
[BiomePoolTier.SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
||||||
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.STAKATAKA, Species.BLACEPHALON ] },
|
[BiomePoolTier.ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.BLACEPHALON ] },
|
||||||
[BiomePoolTier.BOSS]: {
|
[BiomePoolTier.BOSS]: {
|
||||||
[TimeOfDay.DAWN]: [ Species.ALOLA_RAICHU, Species.ALOLA_EXEGGUTOR ],
|
[TimeOfDay.DAWN]: [ Species.ALOLA_RAICHU, Species.ALOLA_EXEGGUTOR ],
|
||||||
[TimeOfDay.DAY]: [ Species.ALOLA_RAICHU, Species.ALOLA_EXEGGUTOR ],
|
[TimeOfDay.DAY]: [ Species.ALOLA_RAICHU, Species.ALOLA_EXEGGUTOR ],
|
||||||
|
|
@ -1559,7 +1565,7 @@ export const biomePokemonPools: BiomePokemonPools = {
|
||||||
[TimeOfDay.ALL]: [ Species.ORICORIO, Species.BRUXISH, Species.ALOLA_SANDSLASH, Species.ALOLA_NINETALES, Species.ALOLA_DUGTRIO, Species.ALOLA_GOLEM, Species.ALOLA_MUK ]
|
[TimeOfDay.ALL]: [ Species.ORICORIO, Species.BRUXISH, Species.ALOLA_SANDSLASH, Species.ALOLA_NINETALES, Species.ALOLA_DUGTRIO, Species.ALOLA_GOLEM, Species.ALOLA_MUK ]
|
||||||
},
|
},
|
||||||
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
[BiomePoolTier.BOSS_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] },
|
||||||
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.STAKATAKA, Species.BLACEPHALON ] },
|
[BiomePoolTier.BOSS_SUPER_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [ Species.BLACEPHALON ] },
|
||||||
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
[BiomePoolTier.BOSS_ULTRA_RARE]: { [TimeOfDay.DAWN]: [], [TimeOfDay.DAY]: [], [TimeOfDay.DUSK]: [], [TimeOfDay.NIGHT]: [], [TimeOfDay.ALL]: [] }
|
||||||
},
|
},
|
||||||
[Biome.LABORATORY]: {
|
[Biome.LABORATORY]: {
|
||||||
|
|
@ -4371,8 +4377,8 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.CRESSELIA, Type.PSYCHIC, -1, [
|
[ Species.CRESSELIA, Type.PSYCHIC, -1, [
|
||||||
[ Biome.SPACE, BiomePoolTier.ULTRA_RARE ],
|
[ Biome.BEACH, BiomePoolTier.ULTRA_RARE ],
|
||||||
[ Biome.SPACE, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.BEACH, BiomePoolTier.BOSS_SUPER_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.PHIONE, Type.WATER, -1, [ ]
|
[ Species.PHIONE, Type.WATER, -1, [ ]
|
||||||
|
|
@ -4384,7 +4390,9 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
[ Biome.ABYSS, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.ABYSS, BiomePoolTier.BOSS_SUPER_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.SHAYMIN, Type.GRASS, -1, [ ]
|
[ Species.SHAYMIN, Type.GRASS, -1, [
|
||||||
|
[ Biome.MEADOW, BiomePoolTier.BOSS_ULTRA_RARE ]
|
||||||
|
]
|
||||||
],
|
],
|
||||||
[ Species.ARCEUS, Type.NORMAL, -1, [ ]
|
[ Species.ARCEUS, Type.NORMAL, -1, [ ]
|
||||||
],
|
],
|
||||||
|
|
@ -5103,8 +5111,8 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.VIRIZION, Type.GRASS, Type.FIGHTING, [
|
[ Species.VIRIZION, Type.GRASS, Type.FIGHTING, [
|
||||||
[ Biome.JUNGLE, BiomePoolTier.ULTRA_RARE ],
|
[ Biome.GRASS, BiomePoolTier.ULTRA_RARE ],
|
||||||
[ Biome.JUNGLE, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.GRASS, BiomePoolTier.BOSS_SUPER_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.TORNADUS, Type.FLYING, -1, [
|
[ Species.TORNADUS, Type.FLYING, -1, [
|
||||||
|
|
@ -5779,18 +5787,18 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.TAPU_LELE, Type.PSYCHIC, Type.FAIRY, [
|
[ Species.TAPU_LELE, Type.PSYCHIC, Type.FAIRY, [
|
||||||
[ Biome.TEMPLE, BiomePoolTier.ULTRA_RARE ],
|
[ Biome.JUNGLE, BiomePoolTier.ULTRA_RARE ],
|
||||||
[ Biome.TEMPLE, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.JUNGLE, BiomePoolTier.BOSS_SUPER_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.TAPU_BULU, Type.GRASS, Type.FAIRY, [
|
[ Species.TAPU_BULU, Type.GRASS, Type.FAIRY, [
|
||||||
[ Biome.TEMPLE, BiomePoolTier.ULTRA_RARE ],
|
[ Biome.DESERT, BiomePoolTier.ULTRA_RARE ],
|
||||||
[ Biome.TEMPLE, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.DESERT, BiomePoolTier.BOSS_SUPER_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.TAPU_FINI, Type.WATER, Type.FAIRY, [
|
[ Species.TAPU_FINI, Type.WATER, Type.FAIRY, [
|
||||||
[ Biome.TEMPLE, BiomePoolTier.ULTRA_RARE ],
|
[ Biome.BEACH, BiomePoolTier.ULTRA_RARE ],
|
||||||
[ Biome.TEMPLE, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.BEACH, BiomePoolTier.BOSS_SUPER_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.COSMOG, Type.PSYCHIC, -1, [
|
[ Species.COSMOG, Type.PSYCHIC, -1, [
|
||||||
|
|
@ -5840,8 +5848,8 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.GUZZLORD, Type.DARK, Type.DRAGON, [
|
[ Species.GUZZLORD, Type.DARK, Type.DRAGON, [
|
||||||
[ Biome.ABYSS, BiomePoolTier.ULTRA_RARE ],
|
[ Biome.SLUM, BiomePoolTier.ULTRA_RARE ],
|
||||||
[ Biome.ABYSS, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.SLUM, BiomePoolTier.BOSS_SUPER_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.NECROZMA, Type.PSYCHIC, -1, [
|
[ Species.NECROZMA, Type.PSYCHIC, -1, [
|
||||||
|
|
@ -5867,8 +5875,8 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.STAKATAKA, Type.ROCK, Type.STEEL, [
|
[ Species.STAKATAKA, Type.ROCK, Type.STEEL, [
|
||||||
[ Biome.ISLAND, BiomePoolTier.ULTRA_RARE ],
|
[ Biome.CONSTRUCTION_SITE, BiomePoolTier.ULTRA_RARE ],
|
||||||
[ Biome.ISLAND, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.CONSTRUCTION_SITE, BiomePoolTier.BOSS_SUPER_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.BLACEPHALON, Type.FIRE, Type.GHOST, [
|
[ Species.BLACEPHALON, Type.FIRE, Type.GHOST, [
|
||||||
|
|
@ -6129,21 +6137,21 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
],
|
],
|
||||||
[ Species.CURSOLA, Type.GHOST, -1, [
|
[ Species.CURSOLA, Type.GHOST, -1, [
|
||||||
[ Biome.SEABED, BiomePoolTier.SUPER_RARE ],
|
[ Biome.SEABED, BiomePoolTier.SUPER_RARE ],
|
||||||
[ Biome.SEABED, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.SEABED, BiomePoolTier.BOSS_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.SIRFETCHD, Type.FIGHTING, -1, [
|
[ Species.SIRFETCHD, Type.FIGHTING, -1, [
|
||||||
[ Biome.DOJO, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.DOJO, BiomePoolTier.BOSS_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.MR_RIME, Type.ICE, Type.PSYCHIC, [
|
[ Species.MR_RIME, Type.ICE, Type.PSYCHIC, [
|
||||||
[ Biome.SNOWY_FOREST, BiomePoolTier.SUPER_RARE ],
|
[ Biome.SNOWY_FOREST, BiomePoolTier.SUPER_RARE ],
|
||||||
[ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.RUNERIGUS, Type.GROUND, Type.GHOST, [
|
[ Species.RUNERIGUS, Type.GROUND, Type.GHOST, [
|
||||||
[ Biome.RUINS, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ],
|
[ Biome.RUINS, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ],
|
||||||
[ Biome.RUINS, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ]
|
[ Biome.RUINS, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.MILCERY, Type.FAIRY, -1, [
|
[ Species.MILCERY, Type.FAIRY, -1, [
|
||||||
|
|
@ -6305,11 +6313,11 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.SNEASLER, Type.FIGHTING, Type.POISON, [
|
[ Species.SNEASLER, Type.FIGHTING, Type.POISON, [
|
||||||
[ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
[ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.OVERQWIL, Type.DARK, Type.POISON, [
|
[ Species.OVERQWIL, Type.DARK, Type.POISON, [
|
||||||
[ Biome.SEABED, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.SEABED, BiomePoolTier.BOSS_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.ENAMORUS, Type.FAIRY, Type.FLYING, [
|
[ Species.ENAMORUS, Type.FAIRY, Type.FLYING, [
|
||||||
|
|
@ -6972,7 +6980,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
],
|
],
|
||||||
[ Species.GALAR_SLOWBRO, Type.POISON, Type.PSYCHIC, [
|
[ Species.GALAR_SLOWBRO, Type.POISON, Type.PSYCHIC, [
|
||||||
[ Biome.SWAMP, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ],
|
[ Biome.SWAMP, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ],
|
||||||
[ Biome.SWAMP, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
[ Biome.SWAMP, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.GALAR_FARFETCHD, Type.FIGHTING, -1, [
|
[ Species.GALAR_FARFETCHD, Type.FIGHTING, -1, [
|
||||||
|
|
@ -6980,7 +6988,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.GALAR_WEEZING, Type.POISON, Type.FAIRY, [
|
[ Species.GALAR_WEEZING, Type.POISON, Type.FAIRY, [
|
||||||
[ Biome.SLUM, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.SLUM, BiomePoolTier.BOSS_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.GALAR_MR_MIME, Type.ICE, Type.PSYCHIC, [
|
[ Species.GALAR_MR_MIME, Type.ICE, Type.PSYCHIC, [
|
||||||
|
|
@ -7003,7 +7011,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.GALAR_SLOWKING, Type.POISON, Type.PSYCHIC, [
|
[ Species.GALAR_SLOWKING, Type.POISON, Type.PSYCHIC, [
|
||||||
[ Biome.SWAMP, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
[ Biome.SWAMP, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.GALAR_CORSOLA, Type.GHOST, -1, [
|
[ Species.GALAR_CORSOLA, Type.GHOST, -1, [
|
||||||
|
|
@ -7024,7 +7032,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
],
|
],
|
||||||
[ Species.GALAR_DARMANITAN, Type.ICE, -1, [
|
[ Species.GALAR_DARMANITAN, Type.ICE, -1, [
|
||||||
[ Biome.SNOWY_FOREST, BiomePoolTier.RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ],
|
[ Biome.SNOWY_FOREST, BiomePoolTier.RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ],
|
||||||
[ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
[ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.GALAR_YAMASK, Type.GROUND, Type.GHOST, [
|
[ Species.GALAR_YAMASK, Type.GROUND, Type.GHOST, [
|
||||||
|
|
@ -7033,7 +7041,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
],
|
],
|
||||||
[ Species.GALAR_STUNFISK, Type.GROUND, Type.STEEL, [
|
[ Species.GALAR_STUNFISK, Type.GROUND, Type.STEEL, [
|
||||||
[ Biome.SWAMP, BiomePoolTier.SUPER_RARE ],
|
[ Biome.SWAMP, BiomePoolTier.SUPER_RARE ],
|
||||||
[ Biome.SWAMP, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.SWAMP, BiomePoolTier.BOSS_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_GROWLITHE, Type.FIRE, Type.ROCK, [
|
[ Species.HISUI_GROWLITHE, Type.FIRE, Type.ROCK, [
|
||||||
|
|
@ -7041,7 +7049,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_ARCANINE, Type.FIRE, Type.ROCK, [
|
[ Species.HISUI_ARCANINE, Type.FIRE, Type.ROCK, [
|
||||||
[ Biome.VOLCANO, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.VOLCANO, BiomePoolTier.BOSS_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_VOLTORB, Type.ELECTRIC, Type.GRASS, [
|
[ Species.HISUI_VOLTORB, Type.ELECTRIC, Type.GRASS, [
|
||||||
|
|
@ -7049,11 +7057,11 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_ELECTRODE, Type.ELECTRIC, Type.GRASS, [
|
[ Species.HISUI_ELECTRODE, Type.ELECTRIC, Type.GRASS, [
|
||||||
[ Biome.POWER_PLANT, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.POWER_PLANT, BiomePoolTier.BOSS_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_TYPHLOSION, Type.FIRE, Type.GHOST, [
|
[ Species.HISUI_TYPHLOSION, Type.FIRE, Type.GHOST, [
|
||||||
[ Biome.GRAVEYARD, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.GRAVEYARD, BiomePoolTier.BOSS_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_QWILFISH, Type.DARK, Type.POISON, [
|
[ Species.HISUI_QWILFISH, Type.DARK, Type.POISON, [
|
||||||
|
|
@ -7065,11 +7073,11 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_SAMUROTT, Type.WATER, Type.DARK, [
|
[ Species.HISUI_SAMUROTT, Type.WATER, Type.DARK, [
|
||||||
[ Biome.ABYSS, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.ABYSS, BiomePoolTier.BOSS_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_LILLIGANT, Type.GRASS, Type.FIGHTING, [
|
[ Species.HISUI_LILLIGANT, Type.GRASS, Type.FIGHTING, [
|
||||||
[ Biome.MEADOW, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
[ Biome.MEADOW, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_ZORUA, Type.NORMAL, Type.GHOST, [
|
[ Species.HISUI_ZORUA, Type.NORMAL, Type.GHOST, [
|
||||||
|
|
@ -7078,7 +7086,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
],
|
],
|
||||||
[ Species.HISUI_ZOROARK, Type.NORMAL, Type.GHOST, [
|
[ Species.HISUI_ZOROARK, Type.NORMAL, Type.GHOST, [
|
||||||
[ Biome.SNOWY_FOREST, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ],
|
[ Biome.SNOWY_FOREST, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ],
|
||||||
[ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ]
|
[ Biome.SNOWY_FOREST, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DUSK, TimeOfDay.NIGHT ] ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_BRAVIARY, Type.PSYCHIC, Type.FLYING, [
|
[ Species.HISUI_BRAVIARY, Type.PSYCHIC, Type.FLYING, [
|
||||||
|
|
@ -7091,7 +7099,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
],
|
],
|
||||||
[ Species.HISUI_GOODRA, Type.STEEL, Type.DRAGON, [
|
[ Species.HISUI_GOODRA, Type.STEEL, Type.DRAGON, [
|
||||||
[ Biome.SWAMP, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ],
|
[ Biome.SWAMP, BiomePoolTier.SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ],
|
||||||
[ Biome.SWAMP, BiomePoolTier.BOSS_SUPER_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
[ Biome.SWAMP, BiomePoolTier.BOSS_RARE, [ TimeOfDay.DAWN, TimeOfDay.DAY ] ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_AVALUGG, Type.ICE, Type.ROCK, [
|
[ Species.HISUI_AVALUGG, Type.ICE, Type.ROCK, [
|
||||||
|
|
@ -7099,7 +7107,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.HISUI_DECIDUEYE, Type.GRASS, Type.FIGHTING, [
|
[ Species.HISUI_DECIDUEYE, Type.GRASS, Type.FIGHTING, [
|
||||||
[ Biome.DOJO, BiomePoolTier.BOSS_SUPER_RARE ]
|
[ Biome.DOJO, BiomePoolTier.BOSS_RARE ]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[ Species.PALDEA_TAUROS, Type.FIGHTING, -1, [
|
[ Species.PALDEA_TAUROS, Type.FIGHTING, -1, [
|
||||||
|
|
|
||||||
|
|
@ -77,8 +77,6 @@ export function getEggHatchWavesMessage(hatchWaves: integer): string {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getEggGachaTypeDescriptor(scene: BattleScene, egg: Egg): string {
|
export function getEggGachaTypeDescriptor(scene: BattleScene, egg: Egg): string {
|
||||||
if (egg.isManaphyEgg())
|
|
||||||
return '';
|
|
||||||
switch (egg.gachaType) {
|
switch (egg.gachaType) {
|
||||||
case GachaType.LEGENDARY:
|
case GachaType.LEGENDARY:
|
||||||
return `Legendary Rate Up (${getPokemonSpecies(getLegendaryGachaSpeciesForTimestamp(scene, egg.timestamp)).getName()})`;
|
return `Legendary Rate Up (${getPokemonSpecies(getLegendaryGachaSpeciesForTimestamp(scene, egg.timestamp)).getName()})`;
|
||||||
|
|
|
||||||
|
|
@ -54,5 +54,6 @@ export enum BattlerTagType {
|
||||||
SALT_CURED = "SALT_CURED",
|
SALT_CURED = "SALT_CURED",
|
||||||
CURSED = "CURSED",
|
CURSED = "CURSED",
|
||||||
CHARGED = "CHARGED",
|
CHARGED = "CHARGED",
|
||||||
GROUNDED = "GROUNDED"
|
GROUNDED = "GROUNDED",
|
||||||
|
MAGNET_RISEN = "MAGNET_RISEN"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -685,7 +685,7 @@ export class RecoilAttr extends MoveEffectAttr {
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
const recoilDamage = Math.max(Math.floor((!this.useHp ? user.turnData.damageDealt : user.getMaxHp()) * this.damageRatio),
|
const recoilDamage = Math.max(Math.floor((!this.useHp ? user.turnData.damageDealt : user.getMaxHp()) * this.damageRatio),
|
||||||
!this.useHp && user.turnData.damageDealt ? 1 : 0);
|
user.turnData.damageDealt ? 1 : 0);
|
||||||
if (!recoilDamage)
|
if (!recoilDamage)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
@ -1496,6 +1496,23 @@ export class StatChangeAttr extends MoveEffectAttr {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class AcupressureStatChangeAttr extends MoveEffectAttr {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean | Promise<boolean> {
|
||||||
|
let randStats = [ BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD, BattleStat.ACC, BattleStat.EVA ];
|
||||||
|
randStats = randStats.filter(s => target.summonData.battleStats[s] < 6);
|
||||||
|
if (randStats.length > 0) {
|
||||||
|
let boostStat = [randStats[Utils.randInt(randStats.length)]];
|
||||||
|
user.scene.unshiftPhase(new StatChangePhase(user.scene, target.getBattlerIndex(), this.selfTarget, boostStat, 2));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class GrowthStatChangeAttr extends StatChangeAttr {
|
export class GrowthStatChangeAttr extends StatChangeAttr {
|
||||||
constructor() {
|
constructor() {
|
||||||
super([ BattleStat.ATK, BattleStat.SPATK ], 1, true);
|
super([ BattleStat.ATK, BattleStat.SPATK ], 1, true);
|
||||||
|
|
@ -1573,7 +1590,7 @@ export class CopyStatsAttr extends MoveEffectAttr {
|
||||||
user.addTag(BattlerTagType.CRIT_BOOST, 0, move.id);
|
user.addTag(BattlerTagType.CRIT_BOOST, 0, move.id);
|
||||||
else
|
else
|
||||||
user.removeTag(BattlerTagType.CRIT_BOOST);
|
user.removeTag(BattlerTagType.CRIT_BOOST);
|
||||||
|
target.updateInfo();
|
||||||
user.updateInfo();
|
user.updateInfo();
|
||||||
|
|
||||||
target.scene.queueMessage(getPokemonMessage(user, 'copied\n') + getPokemonMessage(target, `'s stat changes!`));
|
target.scene.queueMessage(getPokemonMessage(user, 'copied\n') + getPokemonMessage(target, `'s stat changes!`));
|
||||||
|
|
@ -1589,7 +1606,7 @@ export class InvertStatsAttr extends MoveEffectAttr {
|
||||||
|
|
||||||
for (let s = 0; s < target.summonData.battleStats.length; s++)
|
for (let s = 0; s < target.summonData.battleStats.length; s++)
|
||||||
target.summonData.battleStats[s] *= -1;
|
target.summonData.battleStats[s] *= -1;
|
||||||
|
target.updateInfo();
|
||||||
user.updateInfo();
|
user.updateInfo();
|
||||||
|
|
||||||
target.scene.queueMessage(getPokemonMessage(target, `'s stat changes\nwere all reversed!`));
|
target.scene.queueMessage(getPokemonMessage(target, `'s stat changes\nwere all reversed!`));
|
||||||
|
|
@ -1605,7 +1622,7 @@ export class ResetStatsAttr extends MoveEffectAttr {
|
||||||
|
|
||||||
for (let s = 0; s < target.summonData.battleStats.length; s++)
|
for (let s = 0; s < target.summonData.battleStats.length; s++)
|
||||||
target.summonData.battleStats[s] = 0;
|
target.summonData.battleStats[s] = 0;
|
||||||
|
target.updateInfo();
|
||||||
user.updateInfo();
|
user.updateInfo();
|
||||||
|
|
||||||
target.scene.queueMessage(getPokemonMessage(target, `'s stat changes\nwere eliminated!`));
|
target.scene.queueMessage(getPokemonMessage(target, `'s stat changes\nwere eliminated!`));
|
||||||
|
|
@ -2021,6 +2038,17 @@ export class PresentPowerAttr extends VariablePowerAttr {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class KnockOffPowerAttr extends VariablePowerAttr {
|
||||||
|
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||||
|
if(target.getHeldItems().length > 0){
|
||||||
|
(args[0] as Utils.NumberHolder).value *= 1.5;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class VariableAtkAttr extends MoveAttr {
|
export class VariableAtkAttr extends MoveAttr {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
|
@ -4602,6 +4630,7 @@ export function initMoves() {
|
||||||
.attr(AddBattlerTagAttr, BattlerTagType.DROWSY, false, true)
|
.attr(AddBattlerTagAttr, BattlerTagType.DROWSY, false, true)
|
||||||
.condition((user, target, move) => !target.status),
|
.condition((user, target, move) => !target.status),
|
||||||
new AttackMove(Moves.KNOCK_OFF, Type.DARK, MoveCategory.PHYSICAL, 65, 100, 20, -1, 0, 3)
|
new AttackMove(Moves.KNOCK_OFF, Type.DARK, MoveCategory.PHYSICAL, 65, 100, 20, -1, 0, 3)
|
||||||
|
.attr(KnockOffPowerAttr)
|
||||||
.partial(),
|
.partial(),
|
||||||
new AttackMove(Moves.ENDEAVOR, Type.NORMAL, MoveCategory.PHYSICAL, -1, 100, 5, -1, 0, 3)
|
new AttackMove(Moves.ENDEAVOR, Type.NORMAL, MoveCategory.PHYSICAL, -1, 100, 5, -1, 0, 3)
|
||||||
.attr(MatchHpAttr)
|
.attr(MatchHpAttr)
|
||||||
|
|
@ -4830,7 +4859,7 @@ export function initMoves() {
|
||||||
.attr(AddArenaTagAttr, ArenaTagType.TAILWIND, 4, true)
|
.attr(AddArenaTagAttr, ArenaTagType.TAILWIND, 4, true)
|
||||||
.target(MoveTarget.USER_SIDE),
|
.target(MoveTarget.USER_SIDE),
|
||||||
new StatusMove(Moves.ACUPRESSURE, Type.NORMAL, -1, 30, -1, 0, 4)
|
new StatusMove(Moves.ACUPRESSURE, Type.NORMAL, -1, 30, -1, 0, 4)
|
||||||
.attr(StatChangeAttr, BattleStat.RAND, 2)
|
.attr(AcupressureStatChangeAttr)
|
||||||
.target(MoveTarget.USER_OR_NEAR_ALLY),
|
.target(MoveTarget.USER_OR_NEAR_ALLY),
|
||||||
new AttackMove(Moves.METAL_BURST, Type.STEEL, MoveCategory.PHYSICAL, -1, 100, 10, -1, 0, 4)
|
new AttackMove(Moves.METAL_BURST, Type.STEEL, MoveCategory.PHYSICAL, -1, 100, 10, -1, 0, 4)
|
||||||
.attr(CounterDamageAttr, (move: Move) => (move.category === MoveCategory.PHYSICAL || move.category === MoveCategory.SPECIAL), 1.5)
|
.attr(CounterDamageAttr, (move: Move) => (move.category === MoveCategory.PHYSICAL || move.category === MoveCategory.SPECIAL), 1.5)
|
||||||
|
|
@ -4902,6 +4931,10 @@ export function initMoves() {
|
||||||
new SelfStatusMove(Moves.AQUA_RING, Type.WATER, -1, 20, -1, 0, 4)
|
new SelfStatusMove(Moves.AQUA_RING, Type.WATER, -1, 20, -1, 0, 4)
|
||||||
.attr(AddBattlerTagAttr, BattlerTagType.AQUA_RING, true, true),
|
.attr(AddBattlerTagAttr, BattlerTagType.AQUA_RING, true, true),
|
||||||
new SelfStatusMove(Moves.MAGNET_RISE, Type.ELECTRIC, -1, 10, -1, 0, 4)
|
new SelfStatusMove(Moves.MAGNET_RISE, Type.ELECTRIC, -1, 10, -1, 0, 4)
|
||||||
|
.attr(AddBattlerTagAttr, BattlerTagType.MAGNET_RISEN, true, true)
|
||||||
|
.condition((user, target, move) => !user.scene.arena.getTag(ArenaTagType.GRAVITY) &&
|
||||||
|
!user.getTag(BattlerTagType.IGNORE_FLYING) && !user.getTag(BattlerTagType.INGRAIN) &&
|
||||||
|
!user.getTag(BattlerTagType.MAGNET_RISEN))
|
||||||
.unimplemented(),
|
.unimplemented(),
|
||||||
new AttackMove(Moves.FLARE_BLITZ, Type.FIRE, MoveCategory.PHYSICAL, 120, 100, 15, 10, 0, 4)
|
new AttackMove(Moves.FLARE_BLITZ, Type.FIRE, MoveCategory.PHYSICAL, 120, 100, 15, 10, 0, 4)
|
||||||
.attr(RecoilAttr, false, 0.33)
|
.attr(RecoilAttr, false, 0.33)
|
||||||
|
|
@ -5451,7 +5484,7 @@ export function initMoves() {
|
||||||
new StatusMove(Moves.EERIE_IMPULSE, Type.ELECTRIC, 100, 15, -1, 0, 6)
|
new StatusMove(Moves.EERIE_IMPULSE, Type.ELECTRIC, 100, 15, -1, 0, 6)
|
||||||
.attr(StatChangeAttr, BattleStat.SPATK, -2),
|
.attr(StatChangeAttr, BattleStat.SPATK, -2),
|
||||||
new StatusMove(Moves.VENOM_DRENCH, Type.POISON, 100, 20, 100, 0, 6)
|
new StatusMove(Moves.VENOM_DRENCH, Type.POISON, 100, 20, 100, 0, 6)
|
||||||
.attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPATK, BattleStat.SPD ], -1, false, (user, target, move) => target.status?.effect === StatusEffect.POISON)
|
.attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPATK, BattleStat.SPD ], -1, false, (user, target, move) => target.status?.effect === StatusEffect.POISON || target.status?.effect === StatusEffect.TOXIC)
|
||||||
.target(MoveTarget.ALL_NEAR_ENEMIES),
|
.target(MoveTarget.ALL_NEAR_ENEMIES),
|
||||||
new StatusMove(Moves.POWDER, Type.BUG, 100, 20, -1, 1, 6)
|
new StatusMove(Moves.POWDER, Type.BUG, 100, 20, -1, 1, 6)
|
||||||
.powderMove()
|
.powderMove()
|
||||||
|
|
@ -6436,6 +6469,7 @@ export function initMoves() {
|
||||||
new AttackMove(Moves.THUNDERCLAP, Type.ELECTRIC, MoveCategory.SPECIAL, 70, 100, 5, -1, 1, 9)
|
new AttackMove(Moves.THUNDERCLAP, Type.ELECTRIC, MoveCategory.SPECIAL, 70, 100, 5, -1, 1, 9)
|
||||||
.condition((user, target, move) => user.scene.currentBattle.turnCommands[target.getBattlerIndex()].command === Command.FIGHT && !target.turnData.acted && allMoves[user.scene.currentBattle.turnCommands[target.getBattlerIndex()].move.move].category !== MoveCategory.STATUS),
|
.condition((user, target, move) => user.scene.currentBattle.turnCommands[target.getBattlerIndex()].command === Command.FIGHT && !target.turnData.acted && allMoves[user.scene.currentBattle.turnCommands[target.getBattlerIndex()].move.move].category !== MoveCategory.STATUS),
|
||||||
new AttackMove(Moves.MIGHTY_CLEAVE, Type.ROCK, MoveCategory.PHYSICAL, 95, 100, 5, -1, 0, 9)
|
new AttackMove(Moves.MIGHTY_CLEAVE, Type.ROCK, MoveCategory.PHYSICAL, 95, 100, 5, -1, 0, 9)
|
||||||
|
.slicingMove()
|
||||||
.ignoresProtect(),
|
.ignoresProtect(),
|
||||||
new AttackMove(Moves.TACHYON_CUTTER, Type.STEEL, MoveCategory.SPECIAL, 50, -1, 10, -1, 0, 9)
|
new AttackMove(Moves.TACHYON_CUTTER, Type.STEEL, MoveCategory.SPECIAL, 50, -1, 10, -1, 0, 9)
|
||||||
.attr(MultiHitAttr, MultiHitType._2)
|
.attr(MultiHitAttr, MultiHitType._2)
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||||
[ 24, Moves.SWEET_SCENT ],
|
[ 24, Moves.SWEET_SCENT ],
|
||||||
[ 27, Moves.SYNTHESIS ],
|
[ 27, Moves.SYNTHESIS ],
|
||||||
[ 30, Moves.WORRY_SEED ],
|
[ 30, Moves.WORRY_SEED ],
|
||||||
[ 33, Moves.DOUBLE_EDGE ],
|
[ 33, Moves.POWER_WHIP ],
|
||||||
[ 36, Moves.SOLAR_BEAM ],
|
[ 36, Moves.SOLAR_BEAM ],
|
||||||
],
|
],
|
||||||
[Species.IVYSAUR]: [
|
[Species.IVYSAUR]: [
|
||||||
|
|
@ -47,16 +47,16 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||||
[ 30, Moves.SWEET_SCENT ],
|
[ 30, Moves.SWEET_SCENT ],
|
||||||
[ 35, Moves.SYNTHESIS ],
|
[ 35, Moves.SYNTHESIS ],
|
||||||
[ 40, Moves.WORRY_SEED ],
|
[ 40, Moves.WORRY_SEED ],
|
||||||
[ 45, Moves.DOUBLE_EDGE ],
|
[ 45, Moves.POWER_WHIP ],
|
||||||
[ 50, Moves.SOLAR_BEAM ],
|
[ 50, Moves.SOLAR_BEAM ],
|
||||||
],
|
],
|
||||||
[Species.VENUSAUR]: [
|
[Species.VENUSAUR]: [
|
||||||
[ 0, Moves.PETAL_BLIZZARD ],
|
[ 0, Moves.PETAL_BLIZZARD ],
|
||||||
|
[ 1, Moves.GROWTH ],
|
||||||
|
[ 1, Moves.PETAL_DANCE ],
|
||||||
[ 1, Moves.VINE_WHIP ],
|
[ 1, Moves.VINE_WHIP ],
|
||||||
[ 1, Moves.TACKLE ],
|
[ 1, Moves.TACKLE ],
|
||||||
[ 1, Moves.GROWL ],
|
[ 1, Moves.GROWL ],
|
||||||
[ 1, Moves.GROWTH ],
|
|
||||||
[ 1, Moves.PETAL_DANCE ],
|
|
||||||
[ 9, Moves.LEECH_SEED ],
|
[ 9, Moves.LEECH_SEED ],
|
||||||
[ 12, Moves.RAZOR_LEAF ],
|
[ 12, Moves.RAZOR_LEAF ],
|
||||||
[ 15, Moves.POISON_POWDER ],
|
[ 15, Moves.POISON_POWDER ],
|
||||||
|
|
@ -66,7 +66,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||||
[ 30, Moves.SWEET_SCENT ],
|
[ 30, Moves.SWEET_SCENT ],
|
||||||
[ 37, Moves.SYNTHESIS ],
|
[ 37, Moves.SYNTHESIS ],
|
||||||
[ 44, Moves.WORRY_SEED ],
|
[ 44, Moves.WORRY_SEED ],
|
||||||
[ 51, Moves.DOUBLE_EDGE ],
|
[ 51, Moves.POWER_WHIP ],
|
||||||
[ 58, Moves.SOLAR_BEAM ],
|
[ 58, Moves.SOLAR_BEAM ],
|
||||||
],
|
],
|
||||||
[Species.CHARMANDER]: [
|
[Species.CHARMANDER]: [
|
||||||
|
|
@ -127,7 +127,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||||
[ 27, Moves.SHELL_SMASH ],
|
[ 27, Moves.SHELL_SMASH ],
|
||||||
[ 30, Moves.IRON_DEFENSE ],
|
[ 30, Moves.IRON_DEFENSE ],
|
||||||
[ 33, Moves.HYDRO_PUMP ],
|
[ 33, Moves.HYDRO_PUMP ],
|
||||||
[ 36, Moves.SKULL_BASH ],
|
[ 36, Moves.WAVE_CRASH ],
|
||||||
],
|
],
|
||||||
[Species.WARTORTLE]: [
|
[Species.WARTORTLE]: [
|
||||||
[ 1, Moves.TACKLE ],
|
[ 1, Moves.TACKLE ],
|
||||||
|
|
@ -143,7 +143,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||||
[ 35, Moves.SHELL_SMASH ],
|
[ 35, Moves.SHELL_SMASH ],
|
||||||
[ 40, Moves.IRON_DEFENSE ],
|
[ 40, Moves.IRON_DEFENSE ],
|
||||||
[ 45, Moves.HYDRO_PUMP ],
|
[ 45, Moves.HYDRO_PUMP ],
|
||||||
[ 50, Moves.SKULL_BASH ],
|
[ 50, Moves.WAVE_CRASH ],
|
||||||
],
|
],
|
||||||
[Species.BLASTOISE]: [
|
[Species.BLASTOISE]: [
|
||||||
[ 0, Moves.FLASH_CANNON ],
|
[ 0, Moves.FLASH_CANNON ],
|
||||||
|
|
@ -160,7 +160,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||||
[ 35, Moves.SHELL_SMASH ],
|
[ 35, Moves.SHELL_SMASH ],
|
||||||
[ 42, Moves.IRON_DEFENSE ],
|
[ 42, Moves.IRON_DEFENSE ],
|
||||||
[ 49, Moves.HYDRO_PUMP ],
|
[ 49, Moves.HYDRO_PUMP ],
|
||||||
[ 56, Moves.SKULL_BASH ],
|
[ 56, Moves.WAVE_CRASH ],
|
||||||
],
|
],
|
||||||
[Species.CATERPIE]: [
|
[Species.CATERPIE]: [
|
||||||
[ 1, Moves.TACKLE ],
|
[ 1, Moves.TACKLE ],
|
||||||
|
|
@ -341,9 +341,9 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||||
[ 12, Moves.GLARE ],
|
[ 12, Moves.GLARE ],
|
||||||
[ 17, Moves.SCREECH ],
|
[ 17, Moves.SCREECH ],
|
||||||
[ 20, Moves.ACID ],
|
[ 20, Moves.ACID ],
|
||||||
|
[ 25, Moves.SWALLOW ],
|
||||||
[ 25, Moves.STOCKPILE ],
|
[ 25, Moves.STOCKPILE ],
|
||||||
[ 25, Moves.SPIT_UP ],
|
[ 25, Moves.SPIT_UP ],
|
||||||
[ 25, Moves.SWALLOW ],
|
|
||||||
[ 28, Moves.ACID_SPRAY ],
|
[ 28, Moves.ACID_SPRAY ],
|
||||||
[ 33, Moves.SLUDGE_BOMB ],
|
[ 33, Moves.SLUDGE_BOMB ],
|
||||||
[ 36, Moves.GASTRO_ACID ],
|
[ 36, Moves.GASTRO_ACID ],
|
||||||
|
|
@ -1780,14 +1780,15 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||||
[ 4, Moves.DOUBLE_KICK ],
|
[ 4, Moves.DOUBLE_KICK ],
|
||||||
[ 8, Moves.LOW_KICK ],
|
[ 8, Moves.LOW_KICK ],
|
||||||
[ 12, Moves.ENDURE ],
|
[ 12, Moves.ENDURE ],
|
||||||
[ 16, Moves.REVENGE ],
|
[ 16, Moves.SUCKER_PUNCH ],
|
||||||
[ 21, Moves.WIDE_GUARD ],
|
[ 21, Moves.WIDE_GUARD ],
|
||||||
[ 24, Moves.BLAZE_KICK ],
|
[ 24, Moves.BLAZE_KICK ],
|
||||||
[ 28, Moves.MIND_READER ],
|
[ 28, Moves.FEINT ],
|
||||||
[ 32, Moves.MEGA_KICK ],
|
[ 32, Moves.MEGA_KICK ],
|
||||||
[ 36, Moves.CLOSE_COMBAT ],
|
[ 36, Moves.CLOSE_COMBAT ],
|
||||||
[ 40, Moves.REVERSAL ],
|
[ 40, Moves.REVERSAL ],
|
||||||
[ 44, Moves.HIGH_JUMP_KICK ],
|
[ 44, Moves.HIGH_JUMP_KICK ],
|
||||||
|
[ 50, Moves.AXE_KICK ],
|
||||||
],
|
],
|
||||||
[Species.HITMONCHAN]: [
|
[Species.HITMONCHAN]: [
|
||||||
[ 0, Moves.DRAIN_PUNCH ],
|
[ 0, Moves.DRAIN_PUNCH ],
|
||||||
|
|
@ -1796,16 +1797,14 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
||||||
[ 1, Moves.FAKE_OUT ],
|
[ 1, Moves.FAKE_OUT ],
|
||||||
[ 1, Moves.HELPING_HAND ],
|
[ 1, Moves.HELPING_HAND ],
|
||||||
[ 1, Moves.FEINT ],
|
[ 1, Moves.FEINT ],
|
||||||
[ 1, Moves.VACUUM_WAVE ],
|
|
||||||
[ 1, Moves.BULLET_PUNCH ],
|
|
||||||
[ 4, Moves.MACH_PUNCH ],
|
[ 4, Moves.MACH_PUNCH ],
|
||||||
[ 8, Moves.POWER_UP_PUNCH ],
|
[ 8, Moves.VACUUM_WAVE ],
|
||||||
[ 12, Moves.DETECT ],
|
[ 12, Moves.DETECT ],
|
||||||
[ 16, Moves.REVENGE ],
|
[ 16, Moves.BULLET_PUNCH ],
|
||||||
[ 21, Moves.QUICK_GUARD ],
|
[ 21, Moves.QUICK_GUARD ],
|
||||||
[ 24, Moves.FIRE_PUNCH ],
|
|
||||||
[ 24, Moves.ICE_PUNCH ],
|
|
||||||
[ 24, Moves.THUNDER_PUNCH ],
|
[ 24, Moves.THUNDER_PUNCH ],
|
||||||
|
[ 24, Moves.ICE_PUNCH ],
|
||||||
|
[ 24, Moves.FIRE_PUNCH ],
|
||||||
[ 28, Moves.AGILITY ],
|
[ 28, Moves.AGILITY ],
|
||||||
[ 32, Moves.MEGA_PUNCH ],
|
[ 32, Moves.MEGA_PUNCH ],
|
||||||
[ 36, Moves.CLOSE_COMBAT ],
|
[ 36, Moves.CLOSE_COMBAT ],
|
||||||
|
|
|
||||||
|
|
@ -3209,7 +3209,7 @@ export const starterPassiveAbilities = {
|
||||||
[Species.BELLSPROUT]: Abilities.CORROSION,
|
[Species.BELLSPROUT]: Abilities.CORROSION,
|
||||||
[Species.TENTACOOL]: Abilities.INNARDS_OUT,
|
[Species.TENTACOOL]: Abilities.INNARDS_OUT,
|
||||||
[Species.GEODUDE]: Abilities.ROCKY_PAYLOAD,
|
[Species.GEODUDE]: Abilities.ROCKY_PAYLOAD,
|
||||||
[Species.PONYTA]: Abilities.PIXILATE,
|
[Species.PONYTA]: Abilities.MAGIC_GUARD,
|
||||||
[Species.SLOWPOKE]: Abilities.UNAWARE,
|
[Species.SLOWPOKE]: Abilities.UNAWARE,
|
||||||
[Species.MAGNEMITE]: Abilities.MOTOR_DRIVE,
|
[Species.MAGNEMITE]: Abilities.MOTOR_DRIVE,
|
||||||
[Species.FARFETCHD]: Abilities.PURE_POWER,
|
[Species.FARFETCHD]: Abilities.PURE_POWER,
|
||||||
|
|
@ -3235,7 +3235,7 @@ export const starterPassiveAbilities = {
|
||||||
[Species.SCYTHER]: Abilities.SPEED_BOOST,
|
[Species.SCYTHER]: Abilities.SPEED_BOOST,
|
||||||
[Species.PINSIR]: Abilities.SAP_SIPPER,
|
[Species.PINSIR]: Abilities.SAP_SIPPER,
|
||||||
[Species.TAUROS]: Abilities.ROCK_HEAD,
|
[Species.TAUROS]: Abilities.ROCK_HEAD,
|
||||||
[Species.MAGIKARP]: Abilities.BERSERK,
|
[Species.MAGIKARP]: Abilities.MULTISCALE,
|
||||||
[Species.LAPRAS]: Abilities.LIQUID_VOICE,
|
[Species.LAPRAS]: Abilities.LIQUID_VOICE,
|
||||||
[Species.DITTO]: Abilities.GOOEY,
|
[Species.DITTO]: Abilities.GOOEY,
|
||||||
[Species.EEVEE]: Abilities.PROTEAN,
|
[Species.EEVEE]: Abilities.PROTEAN,
|
||||||
|
|
@ -3249,16 +3249,16 @@ export const starterPassiveAbilities = {
|
||||||
[Species.DRATINI]: Abilities.DELTA_STREAM,
|
[Species.DRATINI]: Abilities.DELTA_STREAM,
|
||||||
[Species.MEWTWO]: Abilities.NEUROFORCE,
|
[Species.MEWTWO]: Abilities.NEUROFORCE,
|
||||||
[Species.MEW]: Abilities.PROTEAN,
|
[Species.MEW]: Abilities.PROTEAN,
|
||||||
[Species.CHIKORITA]: Abilities.RIPEN,
|
[Species.CHIKORITA]: Abilities.THICK_FAT,
|
||||||
[Species.CYNDAQUIL]: Abilities.TURBOBLAZE,
|
[Species.CYNDAQUIL]: Abilities.TURBOBLAZE,
|
||||||
[Species.TOTODILE]: Abilities.TOUGH_CLAWS,
|
[Species.TOTODILE]: Abilities.TOUGH_CLAWS,
|
||||||
[Species.SENTRET]: Abilities.FLUFFY,
|
[Species.SENTRET]: Abilities.FLUFFY,
|
||||||
[Species.HOOTHOOT]: Abilities.CURSED_BODY,
|
[Species.HOOTHOOT]: Abilities.CURSED_BODY,
|
||||||
[Species.LEDYBA]: Abilities.SCREEN_CLEANER,
|
[Species.LEDYBA]: Abilities.PRANKSTER,
|
||||||
[Species.SPINARAK]: Abilities.PRANKSTER,
|
[Species.SPINARAK]: Abilities.PRANKSTER,
|
||||||
[Species.CHINCHOU]: Abilities.REGENERATOR,
|
[Species.CHINCHOU]: Abilities.REGENERATOR,
|
||||||
[Species.PICHU]: Abilities.TRANSISTOR,
|
[Species.PICHU]: Abilities.TRANSISTOR,
|
||||||
[Species.CLEFFA]: Abilities.MISTY_SURGE,
|
[Species.CLEFFA]: Abilities.MAGIC_BOUNCE,
|
||||||
[Species.IGGLYBUFF]: Abilities.SERENE_GRACE,
|
[Species.IGGLYBUFF]: Abilities.SERENE_GRACE,
|
||||||
[Species.TOGEPI]: Abilities.OPPORTUNIST,
|
[Species.TOGEPI]: Abilities.OPPORTUNIST,
|
||||||
[Species.NATU]: Abilities.TINTED_LENS,
|
[Species.NATU]: Abilities.TINTED_LENS,
|
||||||
|
|
@ -3276,7 +3276,7 @@ export const starterPassiveAbilities = {
|
||||||
[Species.DUNSPARCE]: Abilities.MARVEL_SCALE,
|
[Species.DUNSPARCE]: Abilities.MARVEL_SCALE,
|
||||||
[Species.GLIGAR]: Abilities.MERCILESS,
|
[Species.GLIGAR]: Abilities.MERCILESS,
|
||||||
[Species.SNUBBULL]: Abilities.BALL_FETCH,
|
[Species.SNUBBULL]: Abilities.BALL_FETCH,
|
||||||
[Species.QWILFISH]: Abilities.LIQUID_OOZE,
|
[Species.QWILFISH]: Abilities.TOXIC_DEBRIS,
|
||||||
[Species.SHUCKLE]: Abilities.WELL_BAKED_BODY,
|
[Species.SHUCKLE]: Abilities.WELL_BAKED_BODY,
|
||||||
[Species.HERACROSS]: Abilities.QUICK_FEET,
|
[Species.HERACROSS]: Abilities.QUICK_FEET,
|
||||||
[Species.SNEASEL]: Abilities.MOXIE,
|
[Species.SNEASEL]: Abilities.MOXIE,
|
||||||
|
|
@ -3292,7 +3292,7 @@ export const starterPassiveAbilities = {
|
||||||
[Species.STANTLER]: Abilities.MAGIC_GUARD,
|
[Species.STANTLER]: Abilities.MAGIC_GUARD,
|
||||||
[Species.SMEARGLE]: Abilities.QUICK_DRAW,
|
[Species.SMEARGLE]: Abilities.QUICK_DRAW,
|
||||||
[Species.TYROGUE]: Abilities.STAMINA,
|
[Species.TYROGUE]: Abilities.STAMINA,
|
||||||
[Species.SMOOCHUM]: Abilities.CUTE_CHARM,
|
[Species.SMOOCHUM]: Abilities.DAZZLING,
|
||||||
[Species.ELEKID]: Abilities.IRON_FIST,
|
[Species.ELEKID]: Abilities.IRON_FIST,
|
||||||
[Species.MAGBY]: Abilities.CONTRARY,
|
[Species.MAGBY]: Abilities.CONTRARY,
|
||||||
[Species.MILTANK]: Abilities.GLUTTONY,
|
[Species.MILTANK]: Abilities.GLUTTONY,
|
||||||
|
|
@ -3300,10 +3300,10 @@ export const starterPassiveAbilities = {
|
||||||
[Species.ENTEI]: Abilities.MOXIE,
|
[Species.ENTEI]: Abilities.MOXIE,
|
||||||
[Species.SUICUNE]: Abilities.UNAWARE,
|
[Species.SUICUNE]: Abilities.UNAWARE,
|
||||||
[Species.LARVITAR]: Abilities.SAND_FORCE,
|
[Species.LARVITAR]: Abilities.SAND_FORCE,
|
||||||
[Species.LUGIA]: Abilities.STORM_DRAIN,
|
[Species.LUGIA]: Abilities.DELTA_STREAM,
|
||||||
[Species.HO_OH]: Abilities.MAGIC_GUARD,
|
[Species.HO_OH]: Abilities.MAGIC_GUARD,
|
||||||
[Species.CELEBI]: Abilities.GRASSY_SURGE,
|
[Species.CELEBI]: Abilities.GRASSY_SURGE,
|
||||||
[Species.TREECKO]: Abilities.GRASSY_SURGE,
|
[Species.TREECKO]: Abilities.TINTED_LENS,
|
||||||
[Species.TORCHIC]: Abilities.RECKLESS,
|
[Species.TORCHIC]: Abilities.RECKLESS,
|
||||||
[Species.MUDKIP]: Abilities.REGENERATOR,
|
[Species.MUDKIP]: Abilities.REGENERATOR,
|
||||||
[Species.POOCHYENA]: Abilities.STRONG_JAW,
|
[Species.POOCHYENA]: Abilities.STRONG_JAW,
|
||||||
|
|
@ -3320,7 +3320,7 @@ export const starterPassiveAbilities = {
|
||||||
[Species.NINCADA]: Abilities.OVERCOAT,
|
[Species.NINCADA]: Abilities.OVERCOAT,
|
||||||
[Species.WHISMUR]: Abilities.PUNK_ROCK,
|
[Species.WHISMUR]: Abilities.PUNK_ROCK,
|
||||||
[Species.MAKUHITA]: Abilities.STAMINA,
|
[Species.MAKUHITA]: Abilities.STAMINA,
|
||||||
[Species.AZURILL]: Abilities.UNNERVE,
|
[Species.AZURILL]: Abilities.MISTY_SURGE,
|
||||||
[Species.NOSEPASS]: Abilities.LEVITATE,
|
[Species.NOSEPASS]: Abilities.LEVITATE,
|
||||||
[Species.SKITTY]: Abilities.SCRAPPY,
|
[Species.SKITTY]: Abilities.SCRAPPY,
|
||||||
[Species.SABLEYE]: Abilities.UNNERVE,
|
[Species.SABLEYE]: Abilities.UNNERVE,
|
||||||
|
|
@ -3351,7 +3351,7 @@ export const starterPassiveAbilities = {
|
||||||
[Species.BALTOY]: Abilities.OWN_TEMPO,
|
[Species.BALTOY]: Abilities.OWN_TEMPO,
|
||||||
[Species.LILEEP]: Abilities.WATER_ABSORB,
|
[Species.LILEEP]: Abilities.WATER_ABSORB,
|
||||||
[Species.ANORITH]: Abilities.WATER_ABSORB,
|
[Species.ANORITH]: Abilities.WATER_ABSORB,
|
||||||
[Species.FEEBAS]: Abilities.PASTEL_VEIL,
|
[Species.FEEBAS]: Abilities.MAGIC_GUARD,
|
||||||
[Species.CASTFORM]: Abilities.ADAPTABILITY,
|
[Species.CASTFORM]: Abilities.ADAPTABILITY,
|
||||||
[Species.KECLEON]: Abilities.ADAPTABILITY,
|
[Species.KECLEON]: Abilities.ADAPTABILITY,
|
||||||
[Species.SHUPPET]: Abilities.MUMMY,
|
[Species.SHUPPET]: Abilities.MUMMY,
|
||||||
|
|
@ -3366,13 +3366,13 @@ export const starterPassiveAbilities = {
|
||||||
[Species.LUVDISC]: Abilities.PICKUP,
|
[Species.LUVDISC]: Abilities.PICKUP,
|
||||||
[Species.BAGON]: Abilities.GALE_WINGS,
|
[Species.BAGON]: Abilities.GALE_WINGS,
|
||||||
[Species.BELDUM]: Abilities.IRON_FIST,
|
[Species.BELDUM]: Abilities.IRON_FIST,
|
||||||
[Species.REGIROCK]: Abilities.REGENERATOR,
|
[Species.REGIROCK]: Abilities.SAND_STREAM,
|
||||||
[Species.REGICE]: Abilities.ICE_SCALES,
|
[Species.REGICE]: Abilities.SNOW_WARNING,
|
||||||
[Species.REGISTEEL]: Abilities.STEELY_SPIRIT,
|
[Species.REGISTEEL]: Abilities.FILTER,
|
||||||
[Species.LATIAS]: Abilities.SERENE_GRACE,
|
[Species.LATIAS]: Abilities.SOUL_HEART,
|
||||||
[Species.LATIOS]: Abilities.SERENE_GRACE,
|
[Species.LATIOS]: Abilities.TINTED_LENS,
|
||||||
[Species.KYOGRE]: Abilities.HYDRATION,
|
[Species.KYOGRE]: Abilities.HYDRATION,
|
||||||
[Species.GROUDON]: Abilities.EARTH_EATER,
|
[Species.GROUDON]: Abilities.PROTOSYNTHESIS,
|
||||||
[Species.RAYQUAZA]: Abilities.UNNERVE,
|
[Species.RAYQUAZA]: Abilities.UNNERVE,
|
||||||
[Species.JIRACHI]: Abilities.COMATOSE,
|
[Species.JIRACHI]: Abilities.COMATOSE,
|
||||||
[Species.DEOXYS]: Abilities.PROTEAN,
|
[Species.DEOXYS]: Abilities.PROTEAN,
|
||||||
|
|
@ -3414,16 +3414,16 @@ export const starterPassiveAbilities = {
|
||||||
[Species.MANTYKE]: Abilities.STORM_DRAIN,
|
[Species.MANTYKE]: Abilities.STORM_DRAIN,
|
||||||
[Species.SNOVER]: Abilities.SNOW_CLOAK,
|
[Species.SNOVER]: Abilities.SNOW_CLOAK,
|
||||||
[Species.ROTOM]: Abilities.HADRON_ENGINE,
|
[Species.ROTOM]: Abilities.HADRON_ENGINE,
|
||||||
[Species.UXIE]: Abilities.ILLUSION,
|
[Species.UXIE]: Abilities.UNAWARE,
|
||||||
[Species.MESPRIT]: Abilities.MOODY,
|
[Species.MESPRIT]: Abilities.MOODY,
|
||||||
[Species.AZELF]: Abilities.NEUROFORCE,
|
[Species.AZELF]: Abilities.NEUROFORCE,
|
||||||
[Species.DIALGA]: Abilities.SPEED_BOOST,
|
[Species.DIALGA]: Abilities.SPEED_BOOST,
|
||||||
[Species.PALKIA]: Abilities.MAGIC_BOUNCE,
|
[Species.PALKIA]: Abilities.MULTISCALE,
|
||||||
[Species.HEATRAN]: Abilities.ROUGH_SKIN,
|
[Species.HEATRAN]: Abilities.FILTER,
|
||||||
[Species.REGIGIGAS]: Abilities.MINDS_EYE,
|
[Species.REGIGIGAS]: Abilities.MINDS_EYE,
|
||||||
[Species.GIRATINA]: Abilities.SHADOW_TAG,
|
[Species.GIRATINA]: Abilities.SHADOW_SHIELD,
|
||||||
[Species.CRESSELIA]: Abilities.MAGIC_BOUNCE,
|
[Species.CRESSELIA]: Abilities.MAGIC_BOUNCE,
|
||||||
[Species.PHIONE]: Abilities.SWIFT_SWIM,
|
[Species.PHIONE]: Abilities.SIMPLE,
|
||||||
[Species.MANAPHY]: Abilities.SIMPLE,
|
[Species.MANAPHY]: Abilities.SIMPLE,
|
||||||
[Species.DARKRAI]: Abilities.UNNERVE,
|
[Species.DARKRAI]: Abilities.UNNERVE,
|
||||||
[Species.SHAYMIN]: Abilities.FLOWER_VEIL,
|
[Species.SHAYMIN]: Abilities.FLOWER_VEIL,
|
||||||
|
|
@ -3431,7 +3431,7 @@ export const starterPassiveAbilities = {
|
||||||
[Species.VICTINI]: Abilities.SUPER_LUCK,
|
[Species.VICTINI]: Abilities.SUPER_LUCK,
|
||||||
[Species.SNIVY]: Abilities.MULTISCALE,
|
[Species.SNIVY]: Abilities.MULTISCALE,
|
||||||
[Species.TEPIG]: Abilities.ROCK_HEAD,
|
[Species.TEPIG]: Abilities.ROCK_HEAD,
|
||||||
[Species.OSHAWOTT]: Abilities.MOLD_BREAKER,
|
[Species.OSHAWOTT]: Abilities.QUICK_DRAW,
|
||||||
[Species.PATRAT]: Abilities.STAKEOUT,
|
[Species.PATRAT]: Abilities.STAKEOUT,
|
||||||
[Species.LILLIPUP]: Abilities.BALL_FETCH,
|
[Species.LILLIPUP]: Abilities.BALL_FETCH,
|
||||||
[Species.PURRLOIN]: Abilities.DEFIANT,
|
[Species.PURRLOIN]: Abilities.DEFIANT,
|
||||||
|
|
@ -3444,14 +3444,14 @@ export const starterPassiveAbilities = {
|
||||||
[Species.ROGGENROLA]: Abilities.SOLID_ROCK,
|
[Species.ROGGENROLA]: Abilities.SOLID_ROCK,
|
||||||
[Species.WOOBAT]: Abilities.SOUL_HEART,
|
[Species.WOOBAT]: Abilities.SOUL_HEART,
|
||||||
[Species.DRILBUR]: Abilities.SAND_STREAM,
|
[Species.DRILBUR]: Abilities.SAND_STREAM,
|
||||||
[Species.AUDINO]: Abilities.SERENE_GRACE,
|
[Species.AUDINO]: Abilities.FRIEND_GUARD,
|
||||||
[Species.TIMBURR]: Abilities.STAMINA,
|
[Species.TIMBURR]: Abilities.STAMINA,
|
||||||
[Species.TYMPOLE]: Abilities.MOODY,
|
[Species.TYMPOLE]: Abilities.MOODY,
|
||||||
[Species.THROH]: Abilities.SIMPLE,
|
[Species.THROH]: Abilities.SIMPLE,
|
||||||
[Species.SAWK]: Abilities.DEFIANT,
|
[Species.SAWK]: Abilities.DEFIANT,
|
||||||
[Species.SEWADDLE]: Abilities.SHARPNESS,
|
[Species.SEWADDLE]: Abilities.SHARPNESS,
|
||||||
[Species.VENIPEDE]: Abilities.INTIMIDATE,
|
[Species.VENIPEDE]: Abilities.INTIMIDATE,
|
||||||
[Species.COTTONEE]: Abilities.MISTY_SURGE,
|
[Species.COTTONEE]: Abilities.FLUFFY,
|
||||||
[Species.PETILIL]: Abilities.DANCER,
|
[Species.PETILIL]: Abilities.DANCER,
|
||||||
[Species.BASCULIN]: Abilities.OPPORTUNIST,
|
[Species.BASCULIN]: Abilities.OPPORTUNIST,
|
||||||
[Species.SANDILE]: Abilities.STRONG_JAW,
|
[Species.SANDILE]: Abilities.STRONG_JAW,
|
||||||
|
|
@ -3460,7 +3460,7 @@ export const starterPassiveAbilities = {
|
||||||
[Species.DWEBBLE]: Abilities.STAMINA,
|
[Species.DWEBBLE]: Abilities.STAMINA,
|
||||||
[Species.SCRAGGY]: Abilities.ROCK_HEAD,
|
[Species.SCRAGGY]: Abilities.ROCK_HEAD,
|
||||||
[Species.SIGILYPH]: Abilities.MAGICIAN,
|
[Species.SIGILYPH]: Abilities.MAGICIAN,
|
||||||
[Species.YAMASK]: Abilities.GOOD_AS_GOLD,
|
[Species.YAMASK]: Abilities.PURIFYING_SALT,
|
||||||
[Species.TIRTOUGA]: Abilities.SHELL_ARMOR,
|
[Species.TIRTOUGA]: Abilities.SHELL_ARMOR,
|
||||||
[Species.ARCHEN]: Abilities.ROCKY_PAYLOAD,
|
[Species.ARCHEN]: Abilities.ROCKY_PAYLOAD,
|
||||||
[Species.TRUBBISH]: Abilities.GOOEY,
|
[Species.TRUBBISH]: Abilities.GOOEY,
|
||||||
|
|
@ -3500,16 +3500,16 @@ export const starterPassiveAbilities = {
|
||||||
[Species.LARVESTA]: Abilities.DROUGHT,
|
[Species.LARVESTA]: Abilities.DROUGHT,
|
||||||
[Species.COBALION]: Abilities.INTREPID_SWORD,
|
[Species.COBALION]: Abilities.INTREPID_SWORD,
|
||||||
[Species.TERRAKION]: Abilities.ROCKY_PAYLOAD,
|
[Species.TERRAKION]: Abilities.ROCKY_PAYLOAD,
|
||||||
[Species.VIRIZION]: Abilities.SYMBIOSIS,
|
[Species.VIRIZION]: Abilities.SHARPNESS,
|
||||||
[Species.TORNADUS]: Abilities.DELTA_STREAM,
|
[Species.TORNADUS]: Abilities.DRIZZLE,
|
||||||
[Species.THUNDURUS]: Abilities.DRIZZLE,
|
[Species.THUNDURUS]: Abilities.DRIZZLE,
|
||||||
[Species.RESHIRAM]: Abilities.ORICHALCUM_PULSE,
|
[Species.RESHIRAM]: Abilities.ORICHALCUM_PULSE,
|
||||||
[Species.ZEKROM]: Abilities.HADRON_ENGINE,
|
[Species.ZEKROM]: Abilities.HADRON_ENGINE,
|
||||||
[Species.LANDORUS]: Abilities.PRANKSTER,
|
[Species.LANDORUS]: Abilities.STORM_DRAIN,
|
||||||
[Species.KYUREM]: Abilities.SNOW_WARNING,
|
[Species.KYUREM]: Abilities.SNOW_WARNING,
|
||||||
[Species.KELDEO]: Abilities.SHARPNESS,
|
[Species.KELDEO]: Abilities.GRIM_NEIGH,
|
||||||
[Species.MELOETTA]: Abilities.PUNK_ROCK,
|
[Species.MELOETTA]: Abilities.MINDS_EYE,
|
||||||
[Species.GENESECT]: Abilities.MEGA_LAUNCHER,
|
[Species.GENESECT]: Abilities.REGENERATOR,
|
||||||
[Species.CHESPIN]: Abilities.IRON_BARBS,
|
[Species.CHESPIN]: Abilities.IRON_BARBS,
|
||||||
[Species.FENNEKIN]: Abilities.MAGIC_BOUNCE,
|
[Species.FENNEKIN]: Abilities.MAGIC_BOUNCE,
|
||||||
[Species.FROAKIE]: Abilities.ADAPTABILITY,
|
[Species.FROAKIE]: Abilities.ADAPTABILITY,
|
||||||
|
|
@ -3521,7 +3521,7 @@ export const starterPassiveAbilities = {
|
||||||
[Species.SKIDDO]: Abilities.GRASSY_SURGE,
|
[Species.SKIDDO]: Abilities.GRASSY_SURGE,
|
||||||
[Species.PANCHAM]: Abilities.FLUFFY,
|
[Species.PANCHAM]: Abilities.FLUFFY,
|
||||||
[Species.FURFROU]: Abilities.BALL_FETCH,
|
[Species.FURFROU]: Abilities.BALL_FETCH,
|
||||||
[Species.ESPURR]: Abilities.PSYCHIC_SURGE,
|
[Species.ESPURR]: Abilities.FUR_COAT,
|
||||||
[Species.HONEDGE]: Abilities.SHARPNESS,
|
[Species.HONEDGE]: Abilities.SHARPNESS,
|
||||||
[Species.SPRITZEE]: Abilities.MISTY_SURGE,
|
[Species.SPRITZEE]: Abilities.MISTY_SURGE,
|
||||||
[Species.SWIRLIX]: Abilities.WELL_BAKED_BODY,
|
[Species.SWIRLIX]: Abilities.WELL_BAKED_BODY,
|
||||||
|
|
@ -3541,14 +3541,14 @@ export const starterPassiveAbilities = {
|
||||||
[Species.PUMPKABOO]: Abilities.FLASH_FIRE,
|
[Species.PUMPKABOO]: Abilities.FLASH_FIRE,
|
||||||
[Species.BERGMITE]: Abilities.MIRROR_ARMOR,
|
[Species.BERGMITE]: Abilities.MIRROR_ARMOR,
|
||||||
[Species.NOIBAT]: Abilities.PUNK_ROCK,
|
[Species.NOIBAT]: Abilities.PUNK_ROCK,
|
||||||
[Species.XERNEAS]: Abilities.COMPETITIVE,
|
[Species.XERNEAS]: Abilities.MISTY_SURGE,
|
||||||
[Species.YVELTAL]: Abilities.DEFIANT,
|
[Species.YVELTAL]: Abilities.SOUL_HEART,
|
||||||
[Species.ZYGARDE]: Abilities.REGENERATOR,
|
[Species.ZYGARDE]: Abilities.HUGE_POWER,
|
||||||
[Species.DIANCIE]: Abilities.QUEENLY_MAJESTY,
|
[Species.DIANCIE]: Abilities.LEVITATE,
|
||||||
[Species.HOOPA]: Abilities.TRACE,
|
[Species.HOOPA]: Abilities.OPPORTUNIST,
|
||||||
[Species.VOLCANION]: Abilities.FILTER,
|
[Species.VOLCANION]: Abilities.FILTER,
|
||||||
[Species.ROWLET]: Abilities.SNIPER,
|
[Species.ROWLET]: Abilities.SNIPER,
|
||||||
[Species.LITTEN]: Abilities.PRANKSTER,
|
[Species.LITTEN]: Abilities.FLAME_BODY,
|
||||||
[Species.POPPLIO]: Abilities.PUNK_ROCK,
|
[Species.POPPLIO]: Abilities.PUNK_ROCK,
|
||||||
[Species.PIKIPEK]: Abilities.ANGER_POINT,
|
[Species.PIKIPEK]: Abilities.ANGER_POINT,
|
||||||
[Species.YUNGOOS]: Abilities.HUGE_POWER,
|
[Species.YUNGOOS]: Abilities.HUGE_POWER,
|
||||||
|
|
@ -3577,39 +3577,39 @@ export const starterPassiveAbilities = {
|
||||||
[Species.KOMALA]: Abilities.GUTS,
|
[Species.KOMALA]: Abilities.GUTS,
|
||||||
[Species.TURTONATOR]: Abilities.ANGER_SHELL,
|
[Species.TURTONATOR]: Abilities.ANGER_SHELL,
|
||||||
[Species.TOGEDEMARU]: Abilities.STATIC,
|
[Species.TOGEDEMARU]: Abilities.STATIC,
|
||||||
[Species.MIMIKYU]: Abilities.CURSED_BODY,
|
[Species.MIMIKYU]: Abilities.TOUGH_CLAWS,
|
||||||
[Species.BRUXISH]: Abilities.MULTISCALE,
|
[Species.BRUXISH]: Abilities.MULTISCALE,
|
||||||
[Species.DRAMPA]: Abilities.FLASH_FIRE,
|
[Species.DRAMPA]: Abilities.FLASH_FIRE,
|
||||||
[Species.DHELMISE]: Abilities.INFILTRATOR,
|
[Species.DHELMISE]: Abilities.INFILTRATOR,
|
||||||
[Species.JANGMO_O]: Abilities.DANCER,
|
[Species.JANGMO_O]: Abilities.DANCER,
|
||||||
[Species.TAPU_KOKO]: Abilities.GALVANIZE,
|
[Species.TAPU_KOKO]: Abilities.TRANSISTOR,
|
||||||
[Species.TAPU_LELE]: Abilities.BERSERK,
|
[Species.TAPU_LELE]: Abilities.SHEER_FORCE,
|
||||||
[Species.TAPU_BULU]: Abilities.FLOWER_VEIL,
|
[Species.TAPU_BULU]: Abilities.GRASS_PELT,
|
||||||
[Species.TAPU_FINI]: Abilities.FAIRY_AURA,
|
[Species.TAPU_FINI]: Abilities.FAIRY_AURA,
|
||||||
[Species.COSMOG]: Abilities.BEAST_BOOST,
|
[Species.COSMOG]: Abilities.BEAST_BOOST,
|
||||||
[Species.NIHILEGO]: Abilities.POISON_PUPPETEER,
|
[Species.NIHILEGO]: Abilities.LEVITATE,
|
||||||
[Species.BUZZWOLE]: Abilities.MOXIE,
|
[Species.BUZZWOLE]: Abilities.MOXIE,
|
||||||
[Species.PHEROMOSA]: Abilities.MOXIE,
|
[Species.PHEROMOSA]: Abilities.TINTED_LENS,
|
||||||
[Species.XURKITREE]: Abilities.LIGHTNING_ROD,
|
[Species.XURKITREE]: Abilities.TRANSISTOR,
|
||||||
[Species.CELESTEELA]: Abilities.CHLOROPHYLL,
|
[Species.CELESTEELA]: Abilities.HEATPROOF,
|
||||||
[Species.KARTANA]: Abilities.SHARPNESS,
|
[Species.KARTANA]: Abilities.SHARPNESS,
|
||||||
[Species.GUZZLORD]: Abilities.GLUTTONY,
|
[Species.GUZZLORD]: Abilities.INNARDS_OUT,
|
||||||
[Species.NECROZMA]: Abilities.BEAST_BOOST,
|
[Species.NECROZMA]: Abilities.BEAST_BOOST,
|
||||||
[Species.MAGEARNA]: Abilities.STEELY_SPIRIT,
|
[Species.MAGEARNA]: Abilities.STEELY_SPIRIT,
|
||||||
[Species.MARSHADOW]: Abilities.IRON_FIST,
|
[Species.MARSHADOW]: Abilities.IRON_FIST,
|
||||||
[Species.POIPOLE]: Abilities.MERCILESS,
|
[Species.POIPOLE]: Abilities.SHEER_FORCE,
|
||||||
[Species.STAKATAKA]: Abilities.DAUNTLESS_SHIELD,
|
[Species.STAKATAKA]: Abilities.SOLID_ROCK,
|
||||||
[Species.BLACEPHALON]: Abilities.MAGIC_GUARD,
|
[Species.BLACEPHALON]: Abilities.MAGIC_GUARD,
|
||||||
[Species.ZERAORA]: Abilities.MOTOR_DRIVE,
|
[Species.ZERAORA]: Abilities.TOUGH_CLAWS,
|
||||||
[Species.MELTAN]: Abilities.FULL_METAL_BODY,
|
[Species.MELTAN]: Abilities.STEELY_SPIRIT,
|
||||||
[Species.GROOKEY]: Abilities.GRASS_PELT,
|
[Species.GROOKEY]: Abilities.GRASS_PELT,
|
||||||
[Species.SCORBUNNY]: Abilities.RECKLESS,
|
[Species.SCORBUNNY]: Abilities.RECKLESS,
|
||||||
[Species.SOBBLE]: Abilities.SUPER_LUCK,
|
[Species.SOBBLE]: Abilities.SUPER_LUCK,
|
||||||
[Species.SKWOVET]: Abilities.HONEY_GATHER,
|
[Species.SKWOVET]: Abilities.HONEY_GATHER,
|
||||||
[Species.ROOKIDEE]: Abilities.IRON_BARBS,
|
[Species.ROOKIDEE]: Abilities.IRON_BARBS,
|
||||||
[Species.BLIPBUG]: Abilities.TINTED_LENS,
|
[Species.BLIPBUG]: Abilities.PSYCHIC_SURGE,
|
||||||
[Species.NICKIT]: Abilities.INTIMIDATE,
|
[Species.NICKIT]: Abilities.INTIMIDATE,
|
||||||
[Species.GOSSIFLEUR]: Abilities.STORM_DRAIN,
|
[Species.GOSSIFLEUR]: Abilities.GRASSY_SURGE,
|
||||||
[Species.WOOLOO]: Abilities.ROCK_HEAD,
|
[Species.WOOLOO]: Abilities.ROCK_HEAD,
|
||||||
[Species.CHEWTLE]: Abilities.ROCK_HEAD,
|
[Species.CHEWTLE]: Abilities.ROCK_HEAD,
|
||||||
[Species.YAMPER]: Abilities.STAKEOUT,
|
[Species.YAMPER]: Abilities.STAKEOUT,
|
||||||
|
|
@ -3624,7 +3624,7 @@ export const starterPassiveAbilities = {
|
||||||
[Species.SINISTEA]: Abilities.WATER_ABSORB,
|
[Species.SINISTEA]: Abilities.WATER_ABSORB,
|
||||||
[Species.HATENNA]: Abilities.MAGIC_GUARD,
|
[Species.HATENNA]: Abilities.MAGIC_GUARD,
|
||||||
[Species.IMPIDIMP]: Abilities.TANGLING_HAIR,
|
[Species.IMPIDIMP]: Abilities.TANGLING_HAIR,
|
||||||
[Species.MILCERY]: Abilities.WELL_BAKED_BODY,
|
[Species.MILCERY]: Abilities.MISTY_SURGE,
|
||||||
[Species.FALINKS]: Abilities.MOXIE,
|
[Species.FALINKS]: Abilities.MOXIE,
|
||||||
[Species.PINCURCHIN]: Abilities.IRON_BARBS,
|
[Species.PINCURCHIN]: Abilities.IRON_BARBS,
|
||||||
[Species.SNOM]: Abilities.SNOW_WARNING,
|
[Species.SNOM]: Abilities.SNOW_WARNING,
|
||||||
|
|
@ -3639,17 +3639,17 @@ export const starterPassiveAbilities = {
|
||||||
[Species.ARCTOVISH]: Abilities.STRONG_JAW,
|
[Species.ARCTOVISH]: Abilities.STRONG_JAW,
|
||||||
[Species.DURALUDON]: Abilities.MEGA_LAUNCHER,
|
[Species.DURALUDON]: Abilities.MEGA_LAUNCHER,
|
||||||
[Species.DREEPY]: Abilities.PARENTAL_BOND,
|
[Species.DREEPY]: Abilities.PARENTAL_BOND,
|
||||||
[Species.ZACIAN]: Abilities.GUARD_DOG,
|
[Species.ZACIAN]: Abilities.UNNERVE,
|
||||||
[Species.ZAMAZENTA]: Abilities.GUARD_DOG,
|
[Species.ZAMAZENTA]: Abilities.STAMINA,
|
||||||
[Species.ETERNATUS]: Abilities.SUPREME_OVERLORD,
|
[Species.ETERNATUS]: Abilities.SUPREME_OVERLORD,
|
||||||
[Species.KUBFU]: Abilities.IRON_FIST,
|
[Species.KUBFU]: Abilities.IRON_FIST,
|
||||||
[Species.ZARUDE]: Abilities.PRANKSTER,
|
[Species.ZARUDE]: Abilities.GRASSY_SURGE,
|
||||||
[Species.REGIELEKI]: Abilities.LEVITATE,
|
[Species.REGIELEKI]: Abilities.ELECTRIC_SURGE,
|
||||||
[Species.REGIDRAGO]: Abilities.INTIMIDATE,
|
[Species.REGIDRAGO]: Abilities.MULTISCALE,
|
||||||
[Species.GLASTRIER]: Abilities.FILTER,
|
[Species.GLASTRIER]: Abilities.FILTER,
|
||||||
[Species.SPECTRIER]: Abilities.PERISH_BODY,
|
[Species.SPECTRIER]: Abilities.SHADOW_SHIELD,
|
||||||
[Species.CALYREX]: Abilities.HARVEST,
|
[Species.CALYREX]: Abilities.HARVEST,
|
||||||
[Species.ENAMORUS]: Abilities.PRANKSTER,
|
[Species.ENAMORUS]: Abilities.FAIRY_AURA,
|
||||||
[Species.SPRIGATITO]: Abilities.MAGICIAN,
|
[Species.SPRIGATITO]: Abilities.MAGICIAN,
|
||||||
[Species.FUECOCO]: Abilities.EARTH_EATER,
|
[Species.FUECOCO]: Abilities.EARTH_EATER,
|
||||||
[Species.QUAXLY]: Abilities.DANCER,
|
[Species.QUAXLY]: Abilities.DANCER,
|
||||||
|
|
@ -3674,9 +3674,9 @@ export const starterPassiveAbilities = {
|
||||||
[Species.RELLOR]: Abilities.MAGIC_GUARD,
|
[Species.RELLOR]: Abilities.MAGIC_GUARD,
|
||||||
[Species.FLITTLE]: Abilities.COMPETITIVE,
|
[Species.FLITTLE]: Abilities.COMPETITIVE,
|
||||||
[Species.TINKATINK]: Abilities.HUGE_POWER,
|
[Species.TINKATINK]: Abilities.HUGE_POWER,
|
||||||
[Species.WIGLETT]: Abilities.STORM_DRAIN,
|
[Species.WIGLETT]: Abilities.STURDY,
|
||||||
[Species.BOMBIRDIER]: Abilities.UNAWARE,
|
[Species.BOMBIRDIER]: Abilities.UNAWARE,
|
||||||
[Species.FINIZEN]: Abilities.LIQUID_VOICE,
|
[Species.FINIZEN]: Abilities.IRON_FIST,
|
||||||
[Species.VAROOM]: Abilities.SPEED_BOOST,
|
[Species.VAROOM]: Abilities.SPEED_BOOST,
|
||||||
[Species.CYCLIZAR]: Abilities.PROTEAN,
|
[Species.CYCLIZAR]: Abilities.PROTEAN,
|
||||||
[Species.ORTHWORM]: Abilities.HEATPROOF,
|
[Species.ORTHWORM]: Abilities.HEATPROOF,
|
||||||
|
|
@ -3688,55 +3688,55 @@ export const starterPassiveAbilities = {
|
||||||
[Species.DONDOZO]: Abilities.GLUTTONY,
|
[Species.DONDOZO]: Abilities.GLUTTONY,
|
||||||
[Species.TATSUGIRI]: Abilities.WATER_BUBBLE,
|
[Species.TATSUGIRI]: Abilities.WATER_BUBBLE,
|
||||||
[Species.GREAT_TUSK]: Abilities.INTIMIDATE,
|
[Species.GREAT_TUSK]: Abilities.INTIMIDATE,
|
||||||
[Species.SCREAM_TAIL]: Abilities.PIXILATE,
|
[Species.SCREAM_TAIL]: Abilities.UNAWARE,
|
||||||
[Species.BRUTE_BONNET]: Abilities.BEAST_BOOST,
|
[Species.BRUTE_BONNET]: Abilities.BEAST_BOOST,
|
||||||
[Species.FLUTTER_MANE]: Abilities.DAZZLING,
|
[Species.FLUTTER_MANE]: Abilities.DAZZLING,
|
||||||
[Species.SLITHER_WING]: Abilities.MOXIE,
|
[Species.SLITHER_WING]: Abilities.SCRAPPY,
|
||||||
[Species.SANDY_SHOCKS]: Abilities.EARTH_EATER,
|
[Species.SANDY_SHOCKS]: Abilities.EARTH_EATER,
|
||||||
[Species.IRON_TREADS]: Abilities.BULLETPROOF,
|
[Species.IRON_TREADS]: Abilities.STEELY_SPIRIT,
|
||||||
[Species.IRON_BUNDLE]: Abilities.SNOW_WARNING,
|
[Species.IRON_BUNDLE]: Abilities.SNOW_WARNING,
|
||||||
[Species.IRON_HANDS]: Abilities.IRON_FIST,
|
[Species.IRON_HANDS]: Abilities.IRON_FIST,
|
||||||
[Species.IRON_JUGULIS]: Abilities.NO_GUARD,
|
[Species.IRON_JUGULIS]: Abilities.AERILATE,
|
||||||
[Species.IRON_MOTH]: Abilities.LEVITATE,
|
[Species.IRON_MOTH]: Abilities.LEVITATE,
|
||||||
[Species.IRON_THORNS]: Abilities.SAND_STREAM,
|
[Species.IRON_THORNS]: Abilities.SAND_STREAM,
|
||||||
[Species.FRIGIBAX]: Abilities.THICK_FAT,
|
[Species.FRIGIBAX]: Abilities.THICK_FAT,
|
||||||
[Species.GIMMIGHOUL]: Abilities.SUPER_LUCK,
|
[Species.GIMMIGHOUL]: Abilities.SUPER_LUCK,
|
||||||
[Species.WO_CHIEN]: Abilities.TRIAGE,
|
[Species.WO_CHIEN]: Abilities.GRASSY_SURGE,
|
||||||
[Species.CHIEN_PAO]: Abilities.REFRIGERATE,
|
[Species.CHIEN_PAO]: Abilities.INTREPID_SWORD,
|
||||||
[Species.TING_LU]: Abilities.STAMINA,
|
[Species.TING_LU]: Abilities.STAMINA,
|
||||||
[Species.CHI_YU]: Abilities.BLAZE,
|
[Species.CHI_YU]: Abilities.DROUGHT,
|
||||||
[Species.ROARING_MOON]: Abilities.AERILATE,
|
[Species.ROARING_MOON]: Abilities.TOUGH_CLAWS,
|
||||||
[Species.IRON_VALIANT]: Abilities.DOWNLOAD,
|
[Species.IRON_VALIANT]: Abilities.DOWNLOAD,
|
||||||
[Species.KORAIDON]: Abilities.PROTOSYNTHESIS,
|
[Species.KORAIDON]: Abilities.PROTOSYNTHESIS,
|
||||||
[Species.MIRAIDON]: Abilities.QUARK_DRIVE,
|
[Species.MIRAIDON]: Abilities.QUARK_DRIVE,
|
||||||
[Species.WALKING_WAKE]: Abilities.BEAST_BOOST,
|
[Species.WALKING_WAKE]: Abilities.BEAST_BOOST,
|
||||||
[Species.IRON_LEAVES]: Abilities.SHARPNESS,
|
[Species.IRON_LEAVES]: Abilities.SHARPNESS,
|
||||||
[Species.POLTCHAGEIST]: Abilities.FLAME_BODY,
|
[Species.POLTCHAGEIST]: Abilities.FLAME_BODY,
|
||||||
[Species.OKIDOGI]: Abilities.INTIMIDATE,
|
[Species.OKIDOGI]: Abilities.FUR_COAT,
|
||||||
[Species.MUNKIDORI]: Abilities.PRANKSTER,
|
[Species.MUNKIDORI]: Abilities.NEUROFORCE,
|
||||||
[Species.FEZANDIPITI]: Abilities.DAZZLING,
|
[Species.FEZANDIPITI]: Abilities.LEVITATE,
|
||||||
[Species.OGERPON]: Abilities.OPPORTUNIST,
|
[Species.OGERPON]: Abilities.OPPORTUNIST,
|
||||||
[Species.GOUGING_FIRE]: Abilities.BEAST_BOOST,
|
[Species.GOUGING_FIRE]: Abilities.BEAST_BOOST,
|
||||||
[Species.RAGING_BOLT]: Abilities.BEAST_BOOST,
|
[Species.RAGING_BOLT]: Abilities.BEAST_BOOST,
|
||||||
[Species.IRON_BOULDER]: Abilities.SHARPNESS,
|
[Species.IRON_BOULDER]: Abilities.SHARPNESS,
|
||||||
[Species.IRON_CROWN]: Abilities.SHARPNESS,
|
[Species.IRON_CROWN]: Abilities.SHARPNESS,
|
||||||
[Species.TERAPAGOS]: Abilities.PROTEAN,
|
[Species.TERAPAGOS]: Abilities.REGENERATOR,
|
||||||
[Species.PECHARUNT]: Abilities.CORROSION,
|
[Species.PECHARUNT]: Abilities.TOXIC_CHAIN,
|
||||||
[Species.ALOLA_RATTATA]: Abilities.CHEEK_POUCH,
|
[Species.ALOLA_RATTATA]: Abilities.CHEEK_POUCH,
|
||||||
[Species.ALOLA_SANDSHREW]: Abilities.ICE_BODY,
|
[Species.ALOLA_SANDSHREW]: Abilities.ICE_BODY,
|
||||||
[Species.ALOLA_VULPIX]: Abilities.ICE_BODY,
|
[Species.ALOLA_VULPIX]: Abilities.ICE_BODY,
|
||||||
[Species.ALOLA_DIGLETT]: Abilities.CUTE_CHARM,
|
[Species.ALOLA_DIGLETT]: Abilities.STURDY,
|
||||||
[Species.ALOLA_MEOWTH]: Abilities.UNNERVE,
|
[Species.ALOLA_MEOWTH]: Abilities.UNNERVE,
|
||||||
[Species.ALOLA_GEODUDE]: Abilities.ELECTROMORPHOSIS,
|
[Species.ALOLA_GEODUDE]: Abilities.ELECTROMORPHOSIS,
|
||||||
[Species.ALOLA_GRIMER]: Abilities.MERCILESS,
|
[Species.ALOLA_GRIMER]: Abilities.MERCILESS,
|
||||||
[Species.ETERNAL_FLOETTE]: Abilities.MAGIC_GUARD,
|
[Species.ETERNAL_FLOETTE]: Abilities.MAGIC_GUARD,
|
||||||
[Species.GALAR_MEOWTH]: Abilities.SUPER_LUCK,
|
[Species.GALAR_MEOWTH]: Abilities.SUPER_LUCK,
|
||||||
[Species.GALAR_PONYTA]: Abilities.MAGIC_GUARD,
|
[Species.GALAR_PONYTA]: Abilities.PIXILATE,
|
||||||
[Species.GALAR_SLOWPOKE]: Abilities.POISON_TOUCH,
|
[Species.GALAR_SLOWPOKE]: Abilities.POISON_TOUCH,
|
||||||
[Species.GALAR_FARFETCHD]: Abilities.SUPER_LUCK,
|
[Species.GALAR_FARFETCHD]: Abilities.SUPER_LUCK,
|
||||||
[Species.GALAR_ARTICUNO]: Abilities.SERENE_GRACE,
|
[Species.GALAR_ARTICUNO]: Abilities.SERENE_GRACE,
|
||||||
[Species.GALAR_ZAPDOS]: Abilities.TOUGH_CLAWS,
|
[Species.GALAR_ZAPDOS]: Abilities.TOUGH_CLAWS,
|
||||||
[Species.GALAR_MOLTRES]: Abilities.REGENERATOR,
|
[Species.GALAR_MOLTRES]: Abilities.DARK_AURA,
|
||||||
[Species.GALAR_CORSOLA]: Abilities.SHADOW_TAG,
|
[Species.GALAR_CORSOLA]: Abilities.SHADOW_TAG,
|
||||||
[Species.GALAR_ZIGZAGOON]: Abilities.PICKPOCKET,
|
[Species.GALAR_ZIGZAGOON]: Abilities.PICKPOCKET,
|
||||||
[Species.GALAR_DARUMAKA]: Abilities.FLASH_FIRE,
|
[Species.GALAR_DARUMAKA]: Abilities.FLASH_FIRE,
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { Variant, VariantSet, variantColorCache } from '#app/data/variant';
|
||||||
import { variantData } from '#app/data/variant';
|
import { variantData } from '#app/data/variant';
|
||||||
import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from '../ui/battle-info';
|
import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from '../ui/battle-info';
|
||||||
import { Moves } from "../data/enums/moves";
|
import { Moves } from "../data/enums/moves";
|
||||||
import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr } from "../data/move";
|
import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr, CounterDamageAttr } from "../data/move";
|
||||||
import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from '../data/pokemon-species';
|
import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from '../data/pokemon-species';
|
||||||
import * as Utils from '../utils';
|
import * as Utils from '../utils';
|
||||||
import { Type, TypeDamageMultiplier, getTypeDamageMultiplier, getTypeRgb } from '../data/type';
|
import { Type, TypeDamageMultiplier, getTypeDamageMultiplier, getTypeRgb } from '../data/type';
|
||||||
|
|
@ -27,7 +27,7 @@ import { TempBattleStat } from '../data/temp-battle-stat';
|
||||||
import { ArenaTagSide, WeakenMoveScreenTag, WeakenMoveTypeTag } from '../data/arena-tag';
|
import { ArenaTagSide, WeakenMoveScreenTag, WeakenMoveTypeTag } from '../data/arena-tag';
|
||||||
import { ArenaTagType } from "../data/enums/arena-tag-type";
|
import { ArenaTagType } from "../data/enums/arena-tag-type";
|
||||||
import { Biome } from "../data/enums/biome";
|
import { Biome } from "../data/enums/biome";
|
||||||
import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr } from '../data/ability';
|
import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr, NoFusionAbilityAbAttr, MultCritAbAttr } from '../data/ability';
|
||||||
import { Abilities } from "#app/data/enums/abilities";
|
import { Abilities } from "#app/data/enums/abilities";
|
||||||
import PokemonData from '../system/pokemon-data';
|
import PokemonData from '../system/pokemon-data';
|
||||||
import Battle, { BattlerIndex } from '../battle';
|
import Battle, { BattlerIndex } from '../battle';
|
||||||
|
|
@ -43,8 +43,8 @@ import { Nature, getNatureStatMultiplier } from '../data/nature';
|
||||||
import { SpeciesFormChange, SpeciesFormChangeActiveTrigger, SpeciesFormChangeMoveLearnedTrigger, SpeciesFormChangePostMoveTrigger, SpeciesFormChangeStatusEffectTrigger } from '../data/pokemon-forms';
|
import { SpeciesFormChange, SpeciesFormChangeActiveTrigger, SpeciesFormChangeMoveLearnedTrigger, SpeciesFormChangePostMoveTrigger, SpeciesFormChangeStatusEffectTrigger } from '../data/pokemon-forms';
|
||||||
import { TerrainType } from '../data/terrain';
|
import { TerrainType } from '../data/terrain';
|
||||||
import { TrainerSlot } from '../data/trainer-config';
|
import { TrainerSlot } from '../data/trainer-config';
|
||||||
|
import { ABILITY_OVERRIDE, MOVE_OVERRIDE, MOVE_OVERRIDE_2, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE, OPP_MOVE_OVERRIDE_2, OPP_SHINY_OVERRIDE, OPP_VARIANT_OVERRIDE } from '../overrides';
|
||||||
import { BerryType } from '../data/berry';
|
import { BerryType } from '../data/berry';
|
||||||
import { ABILITY_OVERRIDE, MOVE_OVERRIDE, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE, OPP_SHINY_OVERRIDE, OPP_VARIANT_OVERRIDE } from '../overrides';
|
|
||||||
import i18next from '../plugins/i18n';
|
import i18next from '../plugins/i18n';
|
||||||
|
|
||||||
export enum FieldPosition {
|
export enum FieldPosition {
|
||||||
|
|
@ -725,6 +725,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
this.moveset[0] = new PokemonMove(MOVE_OVERRIDE, Math.min(this.moveset[0].ppUsed, allMoves[MOVE_OVERRIDE].pp));
|
this.moveset[0] = new PokemonMove(MOVE_OVERRIDE, Math.min(this.moveset[0].ppUsed, allMoves[MOVE_OVERRIDE].pp));
|
||||||
else if (OPP_MOVE_OVERRIDE && !this.isPlayer())
|
else if (OPP_MOVE_OVERRIDE && !this.isPlayer())
|
||||||
this.moveset[0] = new PokemonMove(OPP_MOVE_OVERRIDE, Math.min(this.moveset[0].ppUsed, allMoves[OPP_MOVE_OVERRIDE].pp));
|
this.moveset[0] = new PokemonMove(OPP_MOVE_OVERRIDE, Math.min(this.moveset[0].ppUsed, allMoves[OPP_MOVE_OVERRIDE].pp));
|
||||||
|
if (MOVE_OVERRIDE_2 && this.isPlayer())
|
||||||
|
this.moveset[1] = new PokemonMove(MOVE_OVERRIDE_2, Math.min(this.moveset[1].ppUsed, allMoves[MOVE_OVERRIDE_2].pp));
|
||||||
|
else if (OPP_MOVE_OVERRIDE_2 && !this.isPlayer())
|
||||||
|
this.moveset[1] = new PokemonMove(OPP_MOVE_OVERRIDE_2, Math.min(this.moveset[1].ppUsed, allMoves[OPP_MOVE_OVERRIDE_2].pp));
|
||||||
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
@ -1332,7 +1337,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
}
|
}
|
||||||
const sourceAtk = new Utils.IntegerHolder(source.getBattleStat(isPhysical ? Stat.ATK : Stat.SPATK, this, null, isCritical));
|
const sourceAtk = new Utils.IntegerHolder(source.getBattleStat(isPhysical ? Stat.ATK : Stat.SPATK, this, null, isCritical));
|
||||||
const targetDef = new Utils.IntegerHolder(this.getBattleStat(isPhysical ? Stat.DEF : Stat.SPDEF, source, move, isCritical));
|
const targetDef = new Utils.IntegerHolder(this.getBattleStat(isPhysical ? Stat.DEF : Stat.SPDEF, source, move, isCritical));
|
||||||
const criticalMultiplier = isCritical ? 1.5 : 1;
|
const criticalMultiplier = new Utils.NumberHolder(isCritical ? 1.5 : 1);
|
||||||
|
applyAbAttrs(MultCritAbAttr, source, null, criticalMultiplier);
|
||||||
const screenMultiplier = new Utils.NumberHolder(1);
|
const screenMultiplier = new Utils.NumberHolder(1);
|
||||||
if (!isCritical) {
|
if (!isCritical) {
|
||||||
this.scene.arena.applyTagsForSide(WeakenMoveScreenTag, this.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY, move.category, this.scene.currentBattle.double, screenMultiplier);
|
this.scene.arena.applyTagsForSide(WeakenMoveScreenTag, this.isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY, move.category, this.scene.currentBattle.double, screenMultiplier);
|
||||||
|
|
@ -1355,7 +1361,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
applyMoveAttrs(VariableDefAttr, source, this, move, targetDef);
|
applyMoveAttrs(VariableDefAttr, source, this, move, targetDef);
|
||||||
|
|
||||||
if (!isTypeImmune) {
|
if (!isTypeImmune) {
|
||||||
damage.value = Math.ceil(((((2 * source.level / 5 + 2) * power.value * sourceAtk.value / targetDef.value) / 50) + 2) * stabMultiplier.value * typeMultiplier.value * arenaAttackTypeMultiplier * screenMultiplier.value * ((this.scene.randBattleSeedInt(15) + 85) / 100) * criticalMultiplier);
|
damage.value = Math.ceil(((((2 * source.level / 5 + 2) * power.value * sourceAtk.value / targetDef.value) / 50) + 2) * stabMultiplier.value * typeMultiplier.value * arenaAttackTypeMultiplier * screenMultiplier.value * ((this.scene.randBattleSeedInt(15) + 85) / 100) * criticalMultiplier.value);
|
||||||
if (isPhysical && source.status && source.status.effect === StatusEffect.BURN) {
|
if (isPhysical && source.status && source.status.effect === StatusEffect.BURN) {
|
||||||
const burnDamageReductionCancelled = new Utils.BooleanHolder(false);
|
const burnDamageReductionCancelled = new Utils.BooleanHolder(false);
|
||||||
applyAbAttrs(BypassBurnDamageReductionAbAttr, source, burnDamageReductionCancelled);
|
applyAbAttrs(BypassBurnDamageReductionAbAttr, source, burnDamageReductionCancelled);
|
||||||
|
|
@ -2473,9 +2479,10 @@ export class PlayerPokemon extends Pokemon {
|
||||||
if (newEvolution.condition.predicate(this)) {
|
if (newEvolution.condition.predicate(this)) {
|
||||||
const newPokemon = this.scene.addPlayerPokemon(this.species, this.level, this.abilityIndex, this.formIndex, undefined, this.shiny, this.variant, this.ivs, this.nature);
|
const newPokemon = this.scene.addPlayerPokemon(this.species, this.level, this.abilityIndex, this.formIndex, undefined, this.shiny, this.variant, this.ivs, this.nature);
|
||||||
newPokemon.natureOverride = this.natureOverride;
|
newPokemon.natureOverride = this.natureOverride;
|
||||||
|
newPokemon.passive = this.passive;
|
||||||
|
newPokemon.moveset = this.moveset.slice();
|
||||||
newPokemon.moveset = this.copyMoveset();
|
newPokemon.moveset = this.copyMoveset();
|
||||||
newPokemon.luck = this.luck;
|
newPokemon.luck = this.luck;
|
||||||
|
|
||||||
newPokemon.fusionSpecies = this.fusionSpecies;
|
newPokemon.fusionSpecies = this.fusionSpecies;
|
||||||
newPokemon.fusionFormIndex = this.fusionFormIndex;
|
newPokemon.fusionFormIndex = this.fusionFormIndex;
|
||||||
newPokemon.fusionAbilityIndex = this.fusionAbilityIndex;
|
newPokemon.fusionAbilityIndex = this.fusionAbilityIndex;
|
||||||
|
|
@ -2730,6 +2737,10 @@ export class EnemyPokemon extends Pokemon {
|
||||||
let targetScores: integer[] = [];
|
let targetScores: integer[] = [];
|
||||||
|
|
||||||
for (let mt of moveTargets[move.id]) {
|
for (let mt of moveTargets[move.id]) {
|
||||||
|
// Prevent a target score from being calculated when the target is whoever attacks the user
|
||||||
|
if (mt === BattlerIndex.ATTACKER)
|
||||||
|
break;
|
||||||
|
|
||||||
const target = this.scene.getField()[mt];
|
const target = this.scene.getField()[mt];
|
||||||
let targetScore = move.getUserBenefitScore(this, target, move) + move.getTargetBenefitScore(this, target, move) * (mt < BattlerIndex.ENEMY === this.isPlayer() ? 1 : -1);
|
let targetScore = move.getUserBenefitScore(this, target, move) + move.getTargetBenefitScore(this, target, move) * (mt < BattlerIndex.ENEMY === this.isPlayer() ? 1 : -1);
|
||||||
if (move.name.endsWith(' (N)') || !move.applyConditions(this, target, move))
|
if (move.name.endsWith(' (N)') || !move.applyConditions(this, target, move))
|
||||||
|
|
@ -2800,8 +2811,14 @@ export class EnemyPokemon extends Pokemon {
|
||||||
return scoreA < scoreB ? 1 : scoreA > scoreB ? -1 : 0;
|
return scoreA < scoreB ? 1 : scoreA > scoreB ? -1 : 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!sortedBenefitScores.length)
|
if (!sortedBenefitScores.length) {
|
||||||
|
// Set target to BattlerIndex.ATTACKER when using a counter move
|
||||||
|
// This is the same as when the player does so
|
||||||
|
if (!!move.findAttr(attr => attr instanceof CounterDamageAttr))
|
||||||
|
return [BattlerIndex.ATTACKER];
|
||||||
|
|
||||||
return [];
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
let targetWeights = sortedBenefitScores.map(s => s[1]);
|
let targetWeights = sortedBenefitScores.map(s => s[1]);
|
||||||
const lowestWeight = targetWeights[targetWeights.length - 1];
|
const lowestWeight = targetWeights[targetWeights.length - 1];
|
||||||
|
|
|
||||||
|
|
@ -223,6 +223,7 @@ export class LoadingScene extends SceneBase {
|
||||||
this.loadSe('sparkle');
|
this.loadSe('sparkle');
|
||||||
this.loadSe('restore');
|
this.loadSe('restore');
|
||||||
this.loadSe('shine');
|
this.loadSe('shine');
|
||||||
|
this.loadSe('shing');
|
||||||
this.loadSe('charge');
|
this.loadSe('charge');
|
||||||
this.loadSe('beam');
|
this.loadSe('beam');
|
||||||
this.loadSe('upgrade');
|
this.loadSe('upgrade');
|
||||||
|
|
|
||||||
|
|
@ -39,5 +39,9 @@ export const menu: SimpleTranslationEntries = {
|
||||||
"weeklyRankings": "Weekly Rankings",
|
"weeklyRankings": "Weekly Rankings",
|
||||||
"noRankings": "No Rankings",
|
"noRankings": "No Rankings",
|
||||||
"loading": "Loading…",
|
"loading": "Loading…",
|
||||||
"playersOnline": "Players Online"
|
"playersOnline": "Players Online",
|
||||||
|
"empty":"Empty",
|
||||||
|
"yes":"Yes",
|
||||||
|
"no":"No",
|
||||||
|
"confirmStartTeam":'Begin with these Pokémon?',
|
||||||
} as const;
|
} as const;
|
||||||
|
|
@ -605,208 +605,208 @@ export const pokemon: SimpleTranslationEntries = {
|
||||||
"tynamo": "Zapplardin",
|
"tynamo": "Zapplardin",
|
||||||
"eelektrik": "Zapplalek",
|
"eelektrik": "Zapplalek",
|
||||||
"eelektross": "Zapplarang",
|
"eelektross": "Zapplarang",
|
||||||
"elgyem": "Elgyem",
|
"elgyem": "Pygraulon",
|
||||||
"beheeyem": "Beheeyem",
|
"beheeyem": "Megalon",
|
||||||
"litwick": "Litwick",
|
"litwick": "Lichtel",
|
||||||
"lampent": "Lampent",
|
"lampent": "Laternecto",
|
||||||
"chandelure": "Chandelure",
|
"chandelure": "Skelabra",
|
||||||
"axew": "Axew",
|
"axew": "Milza",
|
||||||
"fraxure": "Fraxure",
|
"fraxure": "Scharfax",
|
||||||
"haxorus": "Haxorus",
|
"haxorus": "Maxax",
|
||||||
"cubchoo": "Cubchoo",
|
"cubchoo": "Petznief",
|
||||||
"beartic": "Beartic",
|
"beartic": "Siberio",
|
||||||
"cryogonal": "Cryogonal",
|
"cryogonal": "Frigometri",
|
||||||
"shelmet": "Shelmet",
|
"shelmet": "Schnuthelm",
|
||||||
"accelgor": "Accelgor",
|
"accelgor": "Hydragil",
|
||||||
"stunfisk": "Stunfisk",
|
"stunfisk": "Flunschlik",
|
||||||
"mienfoo": "Mienfoo",
|
"mienfoo": "Lin-Fu",
|
||||||
"mienshao": "Mienshao",
|
"mienshao": "Wie-Shu",
|
||||||
"druddigon": "Druddigon",
|
"druddigon": "Shardrago",
|
||||||
"golett": "Golett",
|
"golett": "Golbit",
|
||||||
"golurk": "Golurk",
|
"golurk": "Golgantes",
|
||||||
"pawniard": "Pawniard",
|
"pawniard": "Gladiantri",
|
||||||
"bisharp": "Bisharp",
|
"bisharp": "Ceasurio",
|
||||||
"bouffalant": "Bouffalant",
|
"bouffalant": "Bisofank",
|
||||||
"rufflet": "Rufflet",
|
"rufflet": "Geronimatz",
|
||||||
"braviary": "Braviary",
|
"braviary": "Washakwil",
|
||||||
"vullaby": "Vullaby",
|
"vullaby": "Skallyk",
|
||||||
"mandibuzz": "Mandibuzz",
|
"mandibuzz": "Grypheldis",
|
||||||
"heatmor": "Heatmor",
|
"heatmor": "Furnifraß",
|
||||||
"durant": "Durant",
|
"durant": "Fermicula",
|
||||||
"deino": "Deino",
|
"deino": "Kapuno",
|
||||||
"zweilous": "Zweilous",
|
"zweilous": "Duodino",
|
||||||
"hydreigon": "Hydreigon",
|
"hydreigon": "Trikephalo",
|
||||||
"larvesta": "Larvesta",
|
"larvesta": "Ignivor",
|
||||||
"volcarona": "Volcarona",
|
"volcarona": "Ramoth",
|
||||||
"cobalion": "Cobalion",
|
"cobalion": "Kobalium",
|
||||||
"terrakion": "Terrakion",
|
"terrakion": "Terrakium",
|
||||||
"virizion": "Virizion",
|
"virizion": "Viridium",
|
||||||
"tornadus": "Tornadus",
|
"tornadus": "Boreos",
|
||||||
"thundurus": "Thundurus",
|
"thundurus": "Voltolos",
|
||||||
"reshiram": "Reshiram",
|
"reshiram": "Reshiram",
|
||||||
"zekrom": "Zekrom",
|
"zekrom": "Zekrom",
|
||||||
"landorus": "Landorus",
|
"landorus": "Dementeros",
|
||||||
"kyurem": "Kyurem",
|
"kyurem": "Kyurem",
|
||||||
"keldeo": "Keldeo",
|
"keldeo": "Keldeo",
|
||||||
"meloetta": "Meloetta",
|
"meloetta": "Meloetta",
|
||||||
"genesect": "Genesect",
|
"genesect": "Genesect",
|
||||||
"chespin": "Chespin",
|
"chespin": "Igamaro",
|
||||||
"quilladin": "Quilladin",
|
"quilladin": "Igastarnish",
|
||||||
"chesnaught": "Chesnaught",
|
"chesnaught": "Brigaron",
|
||||||
"fennekin": "Fennekin",
|
"fennekin": "Fynx",
|
||||||
"braixen": "Braixen",
|
"braixen": "Rutena",
|
||||||
"delphox": "Delphox",
|
"delphox": "Fennexis",
|
||||||
"froakie": "Froakie",
|
"froakie": "Froxy",
|
||||||
"frogadier": "Frogadier",
|
"frogadier": "Amphizel",
|
||||||
"greninja": "Greninja",
|
"greninja": "Quajutsu",
|
||||||
"bunnelby": "Bunnelby",
|
"bunnelby": "Scoppel",
|
||||||
"diggersby": "Diggersby",
|
"diggersby": "Grebbit",
|
||||||
"fletchling": "Fletchling",
|
"fletchling": "Dartiri",
|
||||||
"fletchinder": "Fletchinder",
|
"fletchinder": "Dartignis",
|
||||||
"talonflame": "Talonflame",
|
"talonflame": "Fiaro",
|
||||||
"scatterbug": "Scatterbug",
|
"scatterbug": "Purmel",
|
||||||
"spewpa": "Spewpa",
|
"spewpa": "Puponcho",
|
||||||
"vivillon": "Vivillon",
|
"vivillon": "Vivillon",
|
||||||
"litleo": "Litleo",
|
"litleo": "Leufeo",
|
||||||
"pyroar": "Pyroar",
|
"pyroar": "Pyroleo",
|
||||||
"flabebe": "Flabébé",
|
"flabebe": "Flabébé",
|
||||||
"floette": "Floette",
|
"floette": "Floette",
|
||||||
"florges": "Florges",
|
"florges": "Florges",
|
||||||
"skiddo": "Skiddo",
|
"skiddo": "Mähikel",
|
||||||
"gogoat": "Gogoat",
|
"gogoat": "Chevrumm",
|
||||||
"pancham": "Pancham",
|
"pancham": "Pam-Pam",
|
||||||
"pangoro": "Pangoro",
|
"pangoro": "Pandrago",
|
||||||
"furfrou": "Furfrou",
|
"furfrou": "Coiffwaff",
|
||||||
"espurr": "Espurr",
|
"espurr": "Psiau",
|
||||||
"meowstic": "Meowstic",
|
"meowstic": "Psiaugon",
|
||||||
"honedge": "Honedge",
|
"honedge": "Gramokles",
|
||||||
"doublade": "Doublade",
|
"doublade": "Duokles",
|
||||||
"aegislash": "Aegislash",
|
"aegislash": "Durengard",
|
||||||
"spritzee": "Spritzee",
|
"spritzee": "Parfi",
|
||||||
"aromatisse": "Aromatisse",
|
"aromatisse": "Parfinesse",
|
||||||
"swirlix": "Swirlix",
|
"swirlix": "Flauschling",
|
||||||
"slurpuff": "Slurpuff",
|
"slurpuff": "Sabbaione",
|
||||||
"inkay": "Inkay",
|
"inkay": "Iscalar",
|
||||||
"malamar": "Malamar",
|
"malamar": "Calamanero",
|
||||||
"binacle": "Binacle",
|
"binacle": "Bithora",
|
||||||
"barbaracle": "Barbaracle",
|
"barbaracle": "Thanathora",
|
||||||
"skrelp": "Skrelp",
|
"skrelp": "Algitt",
|
||||||
"dragalge": "Dragalge",
|
"dragalge": "Tandrak",
|
||||||
"clauncher": "Clauncher",
|
"clauncher": "Scampisto",
|
||||||
"clawitzer": "Clawitzer",
|
"clawitzer": "Wummer",
|
||||||
"helioptile": "Helioptile",
|
"helioptile": "Eguana",
|
||||||
"heliolisk": "Heliolisk",
|
"heliolisk": "Elezard",
|
||||||
"tyrunt": "Tyrunt",
|
"tyrunt": "Balgoras",
|
||||||
"tyrantrum": "Tyrantrum",
|
"tyrantrum": "Monargoras",
|
||||||
"amaura": "Amaura",
|
"amaura": "Amarino",
|
||||||
"aurorus": "Aurorus",
|
"aurorus": "Amagarga",
|
||||||
"sylveon": "Sylveon",
|
"sylveon": "Feelinara",
|
||||||
"hawlucha": "Hawlucha",
|
"hawlucha": "Resladero",
|
||||||
"dedenne": "Dedenne",
|
"dedenne": "Dedenne",
|
||||||
"carbink": "Carbink",
|
"carbink": "Rocara",
|
||||||
"goomy": "Goomy",
|
"goomy": "Viscora",
|
||||||
"sliggoo": "Sliggoo",
|
"sliggoo": "Viscargot",
|
||||||
"goodra": "Goodra",
|
"goodra": "Viscogon",
|
||||||
"klefki": "Klefki",
|
"klefki": "Clavion",
|
||||||
"phantump": "Phantump",
|
"phantump": "Paragoni",
|
||||||
"trevenant": "Trevenant",
|
"trevenant": "Trombork",
|
||||||
"pumpkaboo": "Pumpkaboo",
|
"pumpkaboo": "Irrbis",
|
||||||
"gourgeist": "Gourgeist",
|
"gourgeist": "Pumpdjinn",
|
||||||
"bergmite": "Bergmite",
|
"bergmite": "Arktip",
|
||||||
"avalugg": "Avalugg",
|
"avalugg": "Arktilas",
|
||||||
"noibat": "Noibat",
|
"noibat": "eF-eM",
|
||||||
"noivern": "Noivern",
|
"noivern": "UHaFnir",
|
||||||
"xerneas": "Xerneas",
|
"xerneas": "Xerneas",
|
||||||
"yveltal": "Yveltal",
|
"yveltal": "Yveltal",
|
||||||
"zygarde": "Zygarde",
|
"zygarde": "Zygarde",
|
||||||
"diancie": "Diancie",
|
"diancie": "Diancie",
|
||||||
"hoopa": "Hoopa",
|
"hoopa": "Hoopa",
|
||||||
"volcanion": "Volcanion",
|
"volcanion": "Volcanion",
|
||||||
"rowlet": "Rowlet",
|
"rowlet": "Bauz",
|
||||||
"dartrix": "Dartrix",
|
"dartrix": "Arboretoss",
|
||||||
"decidueye": "Decidueye",
|
"decidueye": "Silvarro",
|
||||||
"litten": "Litten",
|
"litten": "Flamiau",
|
||||||
"torracat": "Torracat",
|
"torracat": "Miezunder",
|
||||||
"incineroar": "Incineroar",
|
"incineroar": "Fuegro",
|
||||||
"popplio": "Popplio",
|
"popplio": "Robball",
|
||||||
"brionne": "Brionne",
|
"brionne": "Marikeck",
|
||||||
"primarina": "Primarina",
|
"primarina": "Primarene",
|
||||||
"pikipek": "Pikipek",
|
"pikipek": "Peppeck",
|
||||||
"trumbeak": "Trumbeak",
|
"trumbeak": "Trompeck",
|
||||||
"toucannon": "Toucannon",
|
"toucannon": "Tukanon",
|
||||||
"yungoos": "Yungoos",
|
"yungoos": "Mangunior",
|
||||||
"gumshoos": "Gumshoos",
|
"gumshoos": "Manguspektor",
|
||||||
"grubbin": "Grubbin",
|
"grubbin": "Mabula",
|
||||||
"charjabug": "Charjabug",
|
"charjabug": "Akkup",
|
||||||
"vikavolt": "Vikavolt",
|
"vikavolt": "Donarion",
|
||||||
"crabrawler": "Crabrawler",
|
"crabrawler": "Krabbox",
|
||||||
"crabominable": "Crabominable",
|
"crabominable": "Krawell",
|
||||||
"oricorio": "Oricorio",
|
"oricorio": "Choreogel",
|
||||||
"cutiefly": "Cutiefly",
|
"cutiefly": "Wommel",
|
||||||
"ribombee": "Ribombee",
|
"ribombee": "Bandelby",
|
||||||
"rockruff": "Rockruff",
|
"rockruff": "Wuffels",
|
||||||
"lycanroc": "Lycanroc",
|
"lycanroc": "Wolwerock",
|
||||||
"wishiwashi": "Wishiwashi",
|
"wishiwashi": "Lusardin",
|
||||||
"mareanie": "Mareanie",
|
"mareanie": "Garstella",
|
||||||
"toxapex": "Toxapex",
|
"toxapex": "Aggrostella",
|
||||||
"mudbray": "Mudbray",
|
"mudbray": "Pampuli",
|
||||||
"mudsdale": "Mudsdale",
|
"mudsdale": "Pampross",
|
||||||
"dewpider": "Dewpider",
|
"dewpider": "Araqua",
|
||||||
"araquanid": "Araquanid",
|
"araquanid": "Aranestro",
|
||||||
"fomantis": "Fomantis",
|
"fomantis": "Imantis",
|
||||||
"lurantis": "Lurantis",
|
"lurantis": "Mantidea",
|
||||||
"morelull": "Morelull",
|
"morelull": "Bubungus",
|
||||||
"shiinotic": "Shiinotic",
|
"shiinotic": "Lamellus",
|
||||||
"salandit": "Salandit",
|
"salandit": "Molunk",
|
||||||
"salazzle": "Salazzle",
|
"salazzle": "Amfira",
|
||||||
"stufful": "Stufful",
|
"stufful": "Velursi",
|
||||||
"bewear": "Bewear",
|
"bewear": "Kosturso",
|
||||||
"bounsweet": "Bounsweet",
|
"bounsweet": "Frubberl",
|
||||||
"steenee": "Steenee",
|
"steenee": "Frubaila",
|
||||||
"tsareena": "Tsareena",
|
"tsareena": "Fruyal",
|
||||||
"comfey": "Comfey",
|
"comfey": "Curelei",
|
||||||
"oranguru": "Oranguru",
|
"oranguru": "Kommandutan",
|
||||||
"passimian": "Passimian",
|
"passimian": "Quartermak",
|
||||||
"wimpod": "Wimpod",
|
"wimpod": "Reißlaus",
|
||||||
"golisopod": "Golisopod",
|
"golisopod": "Tectass",
|
||||||
"sandygast": "Sandygast",
|
"sandygast": "Sankabuh",
|
||||||
"palossand": "Palossand",
|
"palossand": "Colossand",
|
||||||
"pyukumuku": "Pyukumuku",
|
"pyukumuku": "Gufa",
|
||||||
"type_null": "Type: Null",
|
"type_null": "Typ:Null",
|
||||||
"silvally": "Silvally",
|
"silvally": "Amigento",
|
||||||
"minior": "Minior",
|
"minior": "Meteno",
|
||||||
"komala": "Komala",
|
"komala": "Koalelu",
|
||||||
"turtonator": "Turtonator",
|
"turtonator": "Turtonator",
|
||||||
"togedemaru": "Togedemaru",
|
"togedemaru": "Togedemaru",
|
||||||
"mimikyu": "Mimikyu",
|
"mimikyu": "Mimigma",
|
||||||
"bruxish": "Bruxish",
|
"bruxish": "Knirfish",
|
||||||
"drampa": "Drampa",
|
"drampa": "Sen-Long",
|
||||||
"dhelmise": "Dhelmise",
|
"dhelmise": "Moruda",
|
||||||
"jangmo_o": "Jangmo-o",
|
"jangmo_o": "Miniras",
|
||||||
"hakamo_o": "Hakamo-o",
|
"hakamo_o": "Mediras",
|
||||||
"kommo_o": "Kommo-o",
|
"kommo_o": "Grandiras",
|
||||||
"tapu_koko": "Tapu Koko",
|
"tapu_koko": "Kapu-Riki",
|
||||||
"tapu_lele": "Tapu Lele",
|
"tapu_lele": "Kapu-Fala",
|
||||||
"tapu_bulu": "Tapu Bulu",
|
"tapu_bulu": "Kapu-Toro",
|
||||||
"tapu_fini": "Tapu Fini",
|
"tapu_fini": "Kapu-Kime",
|
||||||
"cosmog": "Cosmog",
|
"cosmog": "Cosmog",
|
||||||
"cosmoem": "Cosmoem",
|
"cosmoem": "Cosmovum",
|
||||||
"solgaleo": "Solgaleo",
|
"solgaleo": "Solgaleo",
|
||||||
"lunala": "Lunala",
|
"lunala": "Lunala",
|
||||||
"nihilego": "Nihilego",
|
"nihilego": "Anego",
|
||||||
"buzzwole": "Buzzwole",
|
"buzzwole": "Masskito",
|
||||||
"pheromosa": "Pheromosa",
|
"pheromosa": "Schabelle",
|
||||||
"xurkitree": "Xurkitree",
|
"xurkitree": "Voltriant",
|
||||||
"celesteela": "Celesteela",
|
"celesteela": "Kaguron",
|
||||||
"kartana": "Kartana",
|
"kartana": "Katagami",
|
||||||
"guzzlord": "Guzzlord",
|
"guzzlord": "Schlingking",
|
||||||
"necrozma": "Necrozma",
|
"necrozma": "Necrozma",
|
||||||
"magearna": "Magearna",
|
"magearna": "Magearna",
|
||||||
"marshadow": "Marshadow",
|
"marshadow": "Marshadow",
|
||||||
"poipole": "Poipole",
|
"poipole": "Venicro",
|
||||||
"naganadel": "Naganadel",
|
"naganadel": "Agoyon",
|
||||||
"stakataka": "Stakataka",
|
"stakataka": "Muramura",
|
||||||
"blacephalon": "Blacephalon",
|
"blacephalon": "Kopplosio",
|
||||||
"zeraora": "Zeraora",
|
"zeraora": "Zeraora",
|
||||||
"meltan": "Meltan",
|
"meltan": "Meltan",
|
||||||
"melmetal": "Melmetal",
|
"melmetal": "Melmetal",
|
||||||
|
|
|
||||||
|
|
@ -39,5 +39,9 @@ export const menu: SimpleTranslationEntries = {
|
||||||
"weeklyRankings": "Weekly Rankings",
|
"weeklyRankings": "Weekly Rankings",
|
||||||
"noRankings": "No Rankings",
|
"noRankings": "No Rankings",
|
||||||
"loading": "Loading…",
|
"loading": "Loading…",
|
||||||
"playersOnline": "Players Online"
|
"playersOnline": "Players Online",
|
||||||
|
"empty":"Empty",
|
||||||
|
"yes":"Yes",
|
||||||
|
"no":"No",
|
||||||
|
"confirmStartTeam":'Begin with these Pokémon?',
|
||||||
} as const;
|
} as const;
|
||||||
|
|
@ -2,7 +2,7 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
export const commandUiHandler: SimpleTranslationEntries = {
|
export const commandUiHandler: SimpleTranslationEntries = {
|
||||||
"fight": "Luchar",
|
"fight": "Luchar",
|
||||||
"ball": "Ball",
|
"ball": "Balls",
|
||||||
"pokemon": "Pokémon",
|
"pokemon": "Pokémon",
|
||||||
"run": "Huir",
|
"run": "Huir",
|
||||||
"actionMessage": "¿Qué debería\nhacer {{pokemonName}}?",
|
"actionMessage": "¿Qué debería\nhacer {{pokemonName}}?",
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,13 @@ export const menu: SimpleTranslationEntries = {
|
||||||
"boyOrGirl": "¿Eres un chico o una chica?",
|
"boyOrGirl": "¿Eres un chico o una chica?",
|
||||||
"boy": "Chico",
|
"boy": "Chico",
|
||||||
"girl": "Chica",
|
"girl": "Chica",
|
||||||
"dailyRankings": "Daily Rankings",
|
"dailyRankings": "Rankings Diarios",
|
||||||
"weeklyRankings": "Weekly Rankings",
|
"weeklyRankings": "Rankings Semanales",
|
||||||
"noRankings": "No Rankings",
|
"noRankings": "Sin Rankings",
|
||||||
"loading": "Loading…",
|
"loading": "Cargando…",
|
||||||
"playersOnline": "Players Online"
|
"playersOnline": "Jugadores en Línea",
|
||||||
|
"empty":"Vacío",
|
||||||
|
"yes":"Sí",
|
||||||
|
"no":"No",
|
||||||
|
"confirmStartTeam":'¿Comenzar con estos Pokémon?',
|
||||||
} as const;
|
} as const;
|
||||||
|
|
@ -1,42 +1,49 @@
|
||||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
export const tutorial: SimpleTranslationEntries = {
|
export const tutorial: SimpleTranslationEntries = {
|
||||||
"intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
|
"intro": `¡Bienvenido/a a PokéRogue! Este es un fangame de Pokémon centrado en el combate con elementos roguelite.
|
||||||
$This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
|
$Este juego no está monetizado y no reclamamos ningún derecho de propiedad sobre Pokémon ni sobre ninguno de
|
||||||
$The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
|
$los recursos con copyright utilizados.
|
||||||
$If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`,
|
$El juego está en proceso, pero es completamente jugable.\nPara reportar bugs, por favor, hazlo en nuestra
|
||||||
|
$comunidad de Discord.
|
||||||
|
$Si el juego va lento, por favor, asegúrate de que tengas activada la opción 'Aceleración de gráficos' en los
|
||||||
|
$ajustes de tu navegador.`,
|
||||||
|
|
||||||
"accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`,
|
"accessMenu": `Para acceder al menú, pulsa M o Escape cuando\ntengas el control.
|
||||||
|
$El menú contiene la configuración y otras funciones.`,
|
||||||
|
|
||||||
"menu": `From this menu you can access the settings.
|
"menu": `Desde este menú podrás acceder a la configuración.
|
||||||
$From the settings you can change game speed, window style, and other options.
|
$Podrás cambiar la velocidad del juego, el estilo de la ventana y demás.
|
||||||
$There are also various other features here, so be sure to check them all!`,
|
$Hay más opciones, ¡así que pruébalas todas!`,
|
||||||
|
|
||||||
"starterSelect": `From this screen, you can select your starters.\nThese are your initial party members.
|
"starterSelect": `En esta pantalla podrás elegir tus iniciales. Estos serán tus\nmiembros de equipo al comenzar la partida.
|
||||||
$Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
|
$Cada inicial tiene un valor. Tu equipo puede contener hasta 6\nmiembros mientras el valor total no pase de 10.
|
||||||
$You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
|
$También puedes elegir su género, habilidad y forma\ndependiendo de las variantes que hayas conseguido.
|
||||||
$The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`,
|
$Los IVs de los iniciales corresponderán al valor más alto de\nlos Pokémon de la misma especie que hayas obtenido.
|
||||||
|
$¡Así que intenta conseguir muchos Pokémon de la misma\nespecie!`,
|
||||||
|
|
||||||
"pokerus": `A daily random 3 selectable starters have a purple border.
|
"pokerus": `Cada día, 3 iniciales aleatorios tendrán un borde morado.
|
||||||
$If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`,
|
$Si ves un inicial que tengas con este borde, prueba a\nañadirlo a tu equipo. ¡No olvides revisar sus datos!`,
|
||||||
|
|
||||||
"statChange": `Stat changes persist across battles as long as your Pokémon aren't recalled.
|
"statChange": `Los cambios de estadísticas se mantienen entre combates\nmientras que el Pokémon no vuelva a la Poké Ball.
|
||||||
$Your Pokémon are recalled before a trainer battle and before entering a new biome.
|
$Tus Pokémon vuelven a sus Poké Balls antes de combates contra entrenadores y de entrar a un nuevo bioma.
|
||||||
$You can also view the stat changes for the Pokémon on the field by holding C or Shift.`,
|
$También puedes ver los cambios de estadísticas del Pokémon en campo manteniendo pulsado C o Shift.`,
|
||||||
|
|
||||||
"selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
|
"selectItem": `Tras cada combate, tendrás la opción de elegir entre tres objetos aleatorios. Solo podrás escoger uno.
|
||||||
$These range from consumables, to Pokémon held items, to passive permanent items.
|
$Estos objetos pueden ser consumibles, objetos equipables u objetos pasivos permanentes (hasta acabar la partida).
|
||||||
$Most non-consumable item effects will stack in various ways.
|
$La mayoría de los efectos de objetos no consumibles se acumularán de varias maneras.
|
||||||
$Some items will only show up if they can be used, such as evolution items.
|
$Algunos objetos solo aparecerán si pueden ser utilizados, como las piedras evolutivas.
|
||||||
$You can also transfer held items between Pokémon using the transfer option.
|
$También puedes transferir objetos equipados entre Pokémon utilizando la opción de transferir.
|
||||||
$The transfer option will appear in the bottom right once you have obtained a held item.
|
$La opción de transferir aparecerá en la parte inferior derecha una vez hayas obtenido un objeto equipable.
|
||||||
$You may purchase consumable items with money, and a larger variety will be available the further you get.
|
$También puedes comprar objetos consumibles con dinero y su variedad irá aumentando según tu avance.
|
||||||
$Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`,
|
$Asegúrate de comprar antes de escoger un objeto aleatorio, ya que se avanzará al siguiente combate.`,
|
||||||
|
|
||||||
"eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs.
|
"eggGacha": `En esta pantalla podrás canjear tus vales por huevos\nde Pokémon.
|
||||||
$Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
|
$Los huevos deben eclosionar y estarán más cerca de\nhacerlo tras cada combate.
|
||||||
$Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
|
$Los huevos más raros tardarán más en eclosionar.
|
||||||
$Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
|
$Los Pokémon que hayan salido del huevo no se\nañadirán a tu equipo, pero sí a tus iniciales.
|
||||||
$Some Pokémon can only even be obtained from eggs.
|
$Los Pokémon salidos de un huevo suelen tener mejores\nIVs que los Pokémon salvajes.
|
||||||
$There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`,
|
$Algunos Pokémon solo pueden ser obtenidos de huevos.
|
||||||
|
$Hay 3 máquinas diferentes entre las que elegir, cada\nuna con zdiferentes bonificaciones.
|
||||||
|
$¡Así que escoge la que más te interese!`,
|
||||||
} as const;
|
} as const;
|
||||||
|
|
@ -9,16 +9,16 @@ export const battle: SimpleTranslationEntries = {
|
||||||
"trainerComeBack": "{{trainerName}} retire {{pokemonName}} !",
|
"trainerComeBack": "{{trainerName}} retire {{pokemonName}} !",
|
||||||
"playerGo": "{{pokemonName}} ! Go !",
|
"playerGo": "{{pokemonName}} ! Go !",
|
||||||
"trainerGo": "{{pokemonName}} est envoyé par\n{{trainerName}} !",
|
"trainerGo": "{{pokemonName}} est envoyé par\n{{trainerName}} !",
|
||||||
"switchQuestion": "Voulez-vous changer\n{{pokemonName}} ?",
|
"switchQuestion": "Voulez-vous changer\nvotre {{pokemonName}} ?",
|
||||||
"trainerDefeated": `Vous avez battu\n{{trainerName}} !`,
|
"trainerDefeated": `Vous avez battu\n{{trainerName}} !`,
|
||||||
"pokemonCaught": "Vous avez attrapé {{pokemonName}} !",
|
"pokemonCaught": "Vous avez attrapé {{pokemonName}} !",
|
||||||
"pokemon": "Pokémon",
|
"pokemon": "Pokémon",
|
||||||
"sendOutPokemon": "{{pokemonName}} ! Go !",
|
"sendOutPokemon": "{{pokemonName}} ! Go !",
|
||||||
"hitResultCriticalHit": "Coup critique!",
|
"hitResultCriticalHit": "Coup critique !",
|
||||||
"hitResultSuperEffective": "C’est super efficace!",
|
"hitResultSuperEffective": "C’est super efficace !",
|
||||||
"hitResultNotVeryEffective": "Ce n’est pas très efficace…",
|
"hitResultNotVeryEffective": "Ce n’est pas très efficace…",
|
||||||
"hitResultNoEffect": "Ça n’affecte pas {{pokemonName}}…",
|
"hitResultNoEffect": "Ça n’affecte pas {{pokemonName}}…",
|
||||||
"hitResultOneHitKO": "K.O. en un coup!",
|
"hitResultOneHitKO": "K.O. en un coup !",
|
||||||
"attackFailed": "Mais cela échoue !",
|
"attackFailed": "Mais cela échoue !",
|
||||||
"attackHitsCount": `Touché {{count}} fois !`,
|
"attackHitsCount": `Touché {{count}} fois !`,
|
||||||
"expGain": "{{pokemonName}} gagne\n{{exp}} Points d’Exp !",
|
"expGain": "{{pokemonName}} gagne\n{{exp}} Points d’Exp !",
|
||||||
|
|
@ -36,7 +36,7 @@ export const battle: SimpleTranslationEntries = {
|
||||||
"moveDisabled": "{{moveName}} est sous entrave !",
|
"moveDisabled": "{{moveName}} est sous entrave !",
|
||||||
"noPokeballForce": "Une force mystérieuse\nempêche l’utilisation des Poké Balls.",
|
"noPokeballForce": "Une force mystérieuse\nempêche l’utilisation des Poké Balls.",
|
||||||
"noPokeballTrainer": "Le Dresseur détourne la Ball\nVoler, c’est mal !",
|
"noPokeballTrainer": "Le Dresseur détourne la Ball\nVoler, c’est mal !",
|
||||||
"noPokeballMulti": "Impossible ! On ne peut pas viser\nquand il y a deux Pokémon!",
|
"noPokeballMulti": "Impossible ! On ne peut pas viser\nquand il y a deux Pokémon !",
|
||||||
"noPokeballStrong": "Le Pokémon est trop fort pour être capturé !\nVous devez d’abord l’affaiblir !",
|
"noPokeballStrong": "Le Pokémon est trop fort pour être capturé !\nVous devez d’abord l’affaiblir !",
|
||||||
"noEscapeForce": "Une force mystérieuse\nempêche la fuite.",
|
"noEscapeForce": "Une force mystérieuse\nempêche la fuite.",
|
||||||
"noEscapeTrainer": "On ne s’enfuit pas d’un\ncombat de Dresseurs !",
|
"noEscapeTrainer": "On ne s’enfuit pas d’un\ncombat de Dresseurs !",
|
||||||
|
|
@ -49,4 +49,4 @@ export const battle: SimpleTranslationEntries = {
|
||||||
"skipItemQuestion": "Êtes-vous sûr·e de ne pas vouloir prendre d’objet ?",
|
"skipItemQuestion": "Êtes-vous sûr·e de ne pas vouloir prendre d’objet ?",
|
||||||
"eggHatching": "Oh ?",
|
"eggHatching": "Oh ?",
|
||||||
"ivScannerUseQuestion": "Utiliser le Scanner d’IV sur {{pokemonName}} ?"
|
"ivScannerUseQuestion": "Utiliser le Scanner d’IV sur {{pokemonName}} ?"
|
||||||
} as const;
|
} as const;
|
||||||
|
|
|
||||||
|
|
@ -34,5 +34,9 @@ export const menu: SimpleTranslationEntries = {
|
||||||
"weeklyRankings": "Classement de la Semaine",
|
"weeklyRankings": "Classement de la Semaine",
|
||||||
"noRankings": "Pas de Classement",
|
"noRankings": "Pas de Classement",
|
||||||
"loading": "Chargement…",
|
"loading": "Chargement…",
|
||||||
"playersOnline": "Joueurs Connectés"
|
"playersOnline": "Joueurs Connectés",
|
||||||
|
"empty":"Vide",
|
||||||
|
"yes":"Oui",
|
||||||
|
"no":"Non",
|
||||||
|
"confirmStartTeam":'Commencer avec ces Pokémon ?',
|
||||||
} as const;
|
} as const;
|
||||||
|
|
|
||||||
|
|
@ -25,12 +25,9 @@ export const tutorial: SimpleTranslationEntries = {
|
||||||
$violet. Si un starter que vous possédez l’a, essayez de
|
$violet. Si un starter que vous possédez l’a, essayez de
|
||||||
$l’ajouter à votre équipe. Vérifiez bien son résumé !`,
|
$l’ajouter à votre équipe. Vérifiez bien son résumé !`,
|
||||||
|
|
||||||
"statChange": `Les changements de stats restent à travers les combats tant que le Pokémon
|
"statChange": `Les changements de stats restent à travers les combats tant que le Pokémon n’est pas rappelé.
|
||||||
$n’est pas rappelé.
|
$Vos Pokémon sont rappelés avant un combat de Dresseur et avant d’entrer dans un nouveau biome.
|
||||||
$Vos Pokémon sont rappelés avant un combat de Dresseur et avant d’entrer
|
$Vous pouvez également voir en combat les changements de stats d’un Pokémon en maintenant C ou Maj.`,
|
||||||
$dans un nouveau biome.
|
|
||||||
$Vous pouvez également voir en combat les changements de stats d’un Pokémon
|
|
||||||
$en maintenant C ou Maj.`,
|
|
||||||
|
|
||||||
"selectItem": `Après chaque combat, vous avez le choix entre 3 objets\ntirés au sort. Vous ne pouvez en prendre qu’un.
|
"selectItem": `Après chaque combat, vous avez le choix entre 3 objets\ntirés au sort. Vous ne pouvez en prendre qu’un.
|
||||||
$Cela peut être des objets consommables, des objets à\nfaire tenir, ou des objets passifs aux effets permanents.
|
$Cela peut être des objets consommables, des objets à\nfaire tenir, ou des objets passifs aux effets permanents.
|
||||||
|
|
|
||||||
|
|
@ -39,5 +39,9 @@ export const menu: SimpleTranslationEntries = {
|
||||||
"weeklyRankings": "Weekly Rankings",
|
"weeklyRankings": "Weekly Rankings",
|
||||||
"noRankings": "No Rankings",
|
"noRankings": "No Rankings",
|
||||||
"loading": "Loading…",
|
"loading": "Loading…",
|
||||||
"playersOnline": "Players Online"
|
"playersOnline": "Players Online",
|
||||||
|
"empty":"Empty",
|
||||||
|
"yes":"Yes",
|
||||||
|
"no":"No",
|
||||||
|
"confirmStartTeam":'Begin with these Pokémon?',
|
||||||
} as const;
|
} as const;
|
||||||
|
|
@ -1151,7 +1151,7 @@ const enemyBuffModifierPool: ModifierPool = {
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_ATTACK_FREEZE_CHANCE, 2),
|
new WeightedModifierType(modifierTypes.ENEMY_ATTACK_FREEZE_CHANCE, 2),
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_ATTACK_BURN_CHANCE, 2),
|
new WeightedModifierType(modifierTypes.ENEMY_ATTACK_BURN_CHANCE, 2),
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_STATUS_EFFECT_HEAL_CHANCE, 10),
|
new WeightedModifierType(modifierTypes.ENEMY_STATUS_EFFECT_HEAL_CHANCE, 10),
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_ENDURE_CHANCE, 10000),
|
new WeightedModifierType(modifierTypes.ENEMY_ENDURE_CHANCE, 5),
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 1)
|
new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 1)
|
||||||
].map(m => { m.setTier(ModifierTier.COMMON); return m; }),
|
].map(m => { m.setTier(ModifierTier.COMMON); return m; }),
|
||||||
[ModifierTier.GREAT]: [
|
[ModifierTier.GREAT]: [
|
||||||
|
|
@ -1162,12 +1162,12 @@ const enemyBuffModifierPool: ModifierPool = {
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 1)
|
new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 1)
|
||||||
].map(m => { m.setTier(ModifierTier.GREAT); return m; }),
|
].map(m => { m.setTier(ModifierTier.GREAT); return m; }),
|
||||||
[ModifierTier.ULTRA]: [
|
[ModifierTier.ULTRA]: [
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_BOOSTER, 5),
|
new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_BOOSTER, 10),
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_REDUCTION, 5),
|
new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_REDUCTION, 10),
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_HEAL, 5),
|
new WeightedModifierType(modifierTypes.ENEMY_HEAL, 10),
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_STATUS_EFFECT_HEAL_CHANCE, 5),
|
new WeightedModifierType(modifierTypes.ENEMY_STATUS_EFFECT_HEAL_CHANCE, 10),
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_ENDURE_CHANCE, 5),
|
new WeightedModifierType(modifierTypes.ENEMY_ENDURE_CHANCE, 10),
|
||||||
new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 300)
|
new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 5)
|
||||||
].map(m => { m.setTier(ModifierTier.ULTRA); return m; }),
|
].map(m => { m.setTier(ModifierTier.ULTRA); return m; }),
|
||||||
[ModifierTier.ROGUE]: [ ].map(m => { m.setTier(ModifierTier.ROGUE); return m; }),
|
[ModifierTier.ROGUE]: [ ].map(m => { m.setTier(ModifierTier.ROGUE); return m; }),
|
||||||
[ModifierTier.MASTER]: [ ].map(m => { m.setTier(ModifierTier.MASTER); return m; })
|
[ModifierTier.MASTER]: [ ].map(m => { m.setTier(ModifierTier.MASTER); return m; })
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,11 @@ export const WEATHER_OVERRIDE = WeatherType.NONE;
|
||||||
|
|
||||||
export const ABILITY_OVERRIDE = Abilities.NONE;
|
export const ABILITY_OVERRIDE = Abilities.NONE;
|
||||||
export const MOVE_OVERRIDE = Moves.NONE;
|
export const MOVE_OVERRIDE = Moves.NONE;
|
||||||
|
export const MOVE_OVERRIDE_2 = Moves.NONE;
|
||||||
export const OPP_SPECIES_OVERRIDE = 0;
|
export const OPP_SPECIES_OVERRIDE = 0;
|
||||||
export const OPP_ABILITY_OVERRIDE = Abilities.NONE;
|
export const OPP_ABILITY_OVERRIDE = Abilities.NONE;
|
||||||
export const OPP_MOVE_OVERRIDE = Moves.NONE;
|
export const OPP_MOVE_OVERRIDE = Moves.NONE;
|
||||||
|
export const OPP_MOVE_OVERRIDE_2 = Moves.NONE;
|
||||||
|
|
||||||
export const OPP_SHINY_OVERRIDE = false;
|
export const OPP_SHINY_OVERRIDE = false;
|
||||||
export const OPP_VARIANT_OVERRIDE = 0;
|
export const OPP_VARIANT_OVERRIDE = 0;
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ import { fetchDailyRunSeed, getDailyRunStarters } from "./data/daily-run";
|
||||||
import { GameModes, gameModes } from "./game-mode";
|
import { GameModes, gameModes } from "./game-mode";
|
||||||
import { getPokemonSpecies, speciesStarters } from "./data/pokemon-species";
|
import { getPokemonSpecies, speciesStarters } from "./data/pokemon-species";
|
||||||
import i18next from './plugins/i18n';
|
import i18next from './plugins/i18n';
|
||||||
|
import { Abilities } from "./data/enums/abilities";
|
||||||
import { STARTER_FORM_OVERRIDE, STARTER_SPECIES_OVERRIDE } from './overrides';
|
import { STARTER_FORM_OVERRIDE, STARTER_SPECIES_OVERRIDE } from './overrides';
|
||||||
|
|
||||||
export class LoginPhase extends Phase {
|
export class LoginPhase extends Phase {
|
||||||
|
|
@ -1729,7 +1730,7 @@ export class CommandPhase extends FieldPhase {
|
||||||
}, null, true);
|
}, null, true);
|
||||||
} else if (cursor < 5) {
|
} else if (cursor < 5) {
|
||||||
const targetPokemon = this.scene.getEnemyField().find(p => p.isActive(true));
|
const targetPokemon = this.scene.getEnemyField().find(p => p.isActive(true));
|
||||||
if (targetPokemon.isBoss() && targetPokemon.bossSegmentIndex >= 1 && cursor < PokeballType.MASTER_BALL) {
|
if (targetPokemon.isBoss() && targetPokemon.bossSegmentIndex >= 1 && !targetPokemon.hasAbility(Abilities.WONDER_GUARD, false, true) && cursor < PokeballType.MASTER_BALL) {
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
this.scene.ui.showText(i18next.t('battle:noPokeballStrong'), null, () => {
|
this.scene.ui.showText(i18next.t('battle:noPokeballStrong'), null, () => {
|
||||||
|
|
@ -3219,19 +3220,22 @@ export class VictoryPhase extends PokemonPhase {
|
||||||
const expShareModifier = this.scene.findModifier(m => m instanceof ExpShareModifier) as ExpShareModifier;
|
const expShareModifier = this.scene.findModifier(m => m instanceof ExpShareModifier) as ExpShareModifier;
|
||||||
const expBalanceModifier = this.scene.findModifier(m => m instanceof ExpBalanceModifier) as ExpBalanceModifier;
|
const expBalanceModifier = this.scene.findModifier(m => m instanceof ExpBalanceModifier) as ExpBalanceModifier;
|
||||||
const multipleParticipantExpBonusModifier = this.scene.findModifier(m => m instanceof MultipleParticipantExpBonusModifier) as MultipleParticipantExpBonusModifier;
|
const multipleParticipantExpBonusModifier = this.scene.findModifier(m => m instanceof MultipleParticipantExpBonusModifier) as MultipleParticipantExpBonusModifier;
|
||||||
const expPartyMembers = party.filter(p => p.hp && p.level < this.scene.getMaxExpLevel());
|
const nonFaintedPartyMembers = party.filter(p => p.hp);
|
||||||
|
const expPartyMembers = nonFaintedPartyMembers.filter(p => p.level < this.scene.getMaxExpLevel());
|
||||||
const partyMemberExp = [];
|
const partyMemberExp = [];
|
||||||
|
|
||||||
if (participantIds.size) {
|
if (participantIds.size) {
|
||||||
let expValue = this.getPokemon().getExpValue();
|
let expValue = this.getPokemon().getExpValue();
|
||||||
if (this.scene.currentBattle.battleType === BattleType.TRAINER)
|
if (this.scene.currentBattle.battleType === BattleType.TRAINER)
|
||||||
expValue = Math.floor(expValue * 1.5);
|
expValue = Math.floor(expValue * 1.5);
|
||||||
for (let partyMember of expPartyMembers) {
|
for (let partyMember of nonFaintedPartyMembers) {
|
||||||
const pId = partyMember.id;
|
const pId = partyMember.id;
|
||||||
const participated = participantIds.has(pId);
|
const participated = participantIds.has(pId);
|
||||||
if (participated)
|
if (participated)
|
||||||
partyMember.addFriendship(2);
|
partyMember.addFriendship(2);
|
||||||
else if (!expShareModifier) {
|
if (!expPartyMembers.includes(partyMember))
|
||||||
|
continue;
|
||||||
|
if (!participated && !expShareModifier) {
|
||||||
partyMemberExp.push(0);
|
partyMemberExp.push(0);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,8 @@ export default class CandyBar extends Phaser.GameObjects.Container {
|
||||||
if (this.tween)
|
if (this.tween)
|
||||||
this.tween.stop();
|
this.tween.stop();
|
||||||
|
|
||||||
|
(this.scene as BattleScene).playSound('shing');
|
||||||
|
|
||||||
this.tween = this.scene.tweens.add({
|
this.tween = this.scene.tweens.add({
|
||||||
targets: this,
|
targets: this,
|
||||||
x: (this.scene.game.canvas.width / 6) - (this.bg.width - 5),
|
x: (this.scene.game.canvas.width / 6) - (this.bg.width - 5),
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import BattleScene, { Button } from "../battle-scene";
|
import BattleScene, { Button } from "../battle-scene";
|
||||||
import AbstractOptionSelectUiHandler, { OptionSelectConfig } from "./abstact-option-select-ui-handler";
|
import AbstractOptionSelectUiHandler, { OptionSelectConfig } from "./abstact-option-select-ui-handler";
|
||||||
import { Mode } from "./ui";
|
import { Mode } from "./ui";
|
||||||
|
import i18next from "i18next";
|
||||||
|
|
||||||
export default class ConfirmUiHandler extends AbstractOptionSelectUiHandler {
|
export default class ConfirmUiHandler extends AbstractOptionSelectUiHandler {
|
||||||
private switchCheck: boolean;
|
private switchCheck: boolean;
|
||||||
|
|
@ -19,14 +20,14 @@ export default class ConfirmUiHandler extends AbstractOptionSelectUiHandler {
|
||||||
const config: OptionSelectConfig = {
|
const config: OptionSelectConfig = {
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
label: 'Yes',
|
label: i18next.t("menu:yes"),
|
||||||
handler: () => {
|
handler: () => {
|
||||||
args[0]();
|
args[0]();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'No',
|
label: i18next.t("menu:no"),
|
||||||
handler: () => {
|
handler: () => {
|
||||||
args[1]();
|
args[1]();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import * as Utils from "../utils";
|
||||||
import PokemonData from "../system/pokemon-data";
|
import PokemonData from "../system/pokemon-data";
|
||||||
import { PokemonHeldItemModifier } from "../modifier/modifier";
|
import { PokemonHeldItemModifier } from "../modifier/modifier";
|
||||||
import MessageUiHandler from "./message-ui-handler";
|
import MessageUiHandler from "./message-ui-handler";
|
||||||
|
import i18next from "i18next";
|
||||||
|
|
||||||
const sessionSlotCount = 5;
|
const sessionSlotCount = 5;
|
||||||
|
|
||||||
|
|
@ -258,7 +259,7 @@ class SessionSlot extends Phaser.GameObjects.Container {
|
||||||
async setupWithData(data: SessionSaveData) {
|
async setupWithData(data: SessionSaveData) {
|
||||||
this.remove(this.loadingLabel, true);
|
this.remove(this.loadingLabel, true);
|
||||||
|
|
||||||
const gameModeLabel = addTextObject(this.scene, 8, 5, `${gameModes[data.gameMode].getName()} - Wave ${data.waveIndex}`, TextStyle.WINDOW);
|
const gameModeLabel = addTextObject(this.scene, 8, 5, `${gameModes[data.gameMode]?.getName() || 'Unknown'} - Wave ${data.waveIndex}`, TextStyle.WINDOW);
|
||||||
this.add(gameModeLabel);
|
this.add(gameModeLabel);
|
||||||
|
|
||||||
const timestampLabel = addTextObject(this.scene, 8, 19, new Date(data.timestamp).toLocaleString(), TextStyle.WINDOW);
|
const timestampLabel = addTextObject(this.scene, 8, 19, new Date(data.timestamp).toLocaleString(), TextStyle.WINDOW);
|
||||||
|
|
@ -314,7 +315,7 @@ class SessionSlot extends Phaser.GameObjects.Container {
|
||||||
this.scene.gameData.getSession(this.slotId).then(async sessionData => {
|
this.scene.gameData.getSession(this.slotId).then(async sessionData => {
|
||||||
if (!sessionData) {
|
if (!sessionData) {
|
||||||
this.hasData = false;
|
this.hasData = false;
|
||||||
this.loadingLabel.setText('Empty');
|
this.loadingLabel.setText(i18next.t("menu:empty"));
|
||||||
resolve(false);
|
resolve(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ import { argbFromRgba } from "@material/material-color-utilities";
|
||||||
import { OptionSelectItem } from "./abstact-option-select-ui-handler";
|
import { OptionSelectItem } from "./abstact-option-select-ui-handler";
|
||||||
import { pokemonPrevolutions } from "#app/data/pokemon-evolutions";
|
import { pokemonPrevolutions } from "#app/data/pokemon-evolutions";
|
||||||
import { Variant, getVariantTint } from "#app/data/variant";
|
import { Variant, getVariantTint } from "#app/data/variant";
|
||||||
|
import i18next from "i18next";
|
||||||
|
|
||||||
export type StarterSelectCallback = (starters: Starter[]) => void;
|
export type StarterSelectCallback = (starters: Starter[]) => void;
|
||||||
|
|
||||||
|
|
@ -127,6 +128,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
|
||||||
private starterSelectMessageBox: Phaser.GameObjects.NineSlice;
|
private starterSelectMessageBox: Phaser.GameObjects.NineSlice;
|
||||||
private starterSelectMessageBoxContainer: Phaser.GameObjects.Container;
|
private starterSelectMessageBoxContainer: Phaser.GameObjects.Container;
|
||||||
private statsContainer: StatsContainer;
|
private statsContainer: StatsContainer;
|
||||||
|
private pokemonFormText: Phaser.GameObjects.Text;
|
||||||
|
|
||||||
private genMode: boolean;
|
private genMode: boolean;
|
||||||
private statsMode: boolean;
|
private statsMode: boolean;
|
||||||
|
|
@ -433,6 +435,10 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
|
||||||
this.pokemonCandyIcon.setOrigin(0, 0);
|
this.pokemonCandyIcon.setOrigin(0, 0);
|
||||||
this.starterSelectContainer.add(this.pokemonCandyIcon);
|
this.starterSelectContainer.add(this.pokemonCandyIcon);
|
||||||
|
|
||||||
|
this.pokemonFormText = addTextObject(this.scene, 6, 42, 'Form', TextStyle.WINDOW_ALT, { fontSize: '42px' });
|
||||||
|
this.pokemonFormText.setOrigin(0, 0);
|
||||||
|
this.starterSelectContainer.add(this.pokemonFormText);
|
||||||
|
|
||||||
this.pokemonCandyOverlayIcon = this.scene.add.sprite(1, 12, 'items', 'candy_overlay');
|
this.pokemonCandyOverlayIcon = this.scene.add.sprite(1, 12, 'items', 'candy_overlay');
|
||||||
this.pokemonCandyOverlayIcon.setScale(0.5);
|
this.pokemonCandyOverlayIcon.setScale(0.5);
|
||||||
this.pokemonCandyOverlayIcon.setOrigin(0, 0);
|
this.pokemonCandyOverlayIcon.setOrigin(0, 0);
|
||||||
|
|
@ -1287,6 +1293,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
|
||||||
this.pokemonCandyOverlayIcon.setVisible(true);
|
this.pokemonCandyOverlayIcon.setVisible(true);
|
||||||
this.pokemonCandyCountText.setText(`x${this.scene.gameData.starterData[species.speciesId].candyCount}`);
|
this.pokemonCandyCountText.setText(`x${this.scene.gameData.starterData[species.speciesId].candyCount}`);
|
||||||
this.pokemonCandyCountText.setVisible(true);
|
this.pokemonCandyCountText.setVisible(true);
|
||||||
|
this.pokemonFormText.setVisible(true);
|
||||||
}
|
}
|
||||||
this.iconAnimHandler.addOrUpdate(this.starterSelectGenIconContainers[species.generation - 1].getAt(this.genSpecies[species.generation - 1].indexOf(species)) as Phaser.GameObjects.Sprite, PokemonIconAnimMode.PASSIVE);
|
this.iconAnimHandler.addOrUpdate(this.starterSelectGenIconContainers[species.generation - 1].getAt(this.genSpecies[species.generation - 1].indexOf(species)) as Phaser.GameObjects.Sprite, PokemonIconAnimMode.PASSIVE);
|
||||||
|
|
||||||
|
|
@ -1336,6 +1343,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
|
||||||
this.pokemonCandyIcon.setVisible(false);
|
this.pokemonCandyIcon.setVisible(false);
|
||||||
this.pokemonCandyOverlayIcon.setVisible(false);
|
this.pokemonCandyOverlayIcon.setVisible(false);
|
||||||
this.pokemonCandyCountText.setVisible(false);
|
this.pokemonCandyCountText.setVisible(false);
|
||||||
|
this.pokemonFormText.setVisible(false);
|
||||||
|
|
||||||
const defaultDexAttr = this.scene.gameData.getSpeciesDefaultDexAttr(species, true, true);
|
const defaultDexAttr = this.scene.gameData.getSpeciesDefaultDexAttr(species, true, true);
|
||||||
const defaultAbilityIndex = this.scene.gameData.getStarterSpeciesDefaultAbilityIndex(species);
|
const defaultAbilityIndex = this.scene.gameData.getStarterSpeciesDefaultAbilityIndex(species);
|
||||||
|
|
@ -1362,6 +1370,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
|
||||||
this.pokemonCandyIcon.setVisible(false);
|
this.pokemonCandyIcon.setVisible(false);
|
||||||
this.pokemonCandyOverlayIcon.setVisible(false);
|
this.pokemonCandyOverlayIcon.setVisible(false);
|
||||||
this.pokemonCandyCountText.setVisible(false);
|
this.pokemonCandyCountText.setVisible(false);
|
||||||
|
this.pokemonFormText.setVisible(false);
|
||||||
|
|
||||||
this.setSpeciesDetails(species, false, 0, false, 0, 0, 0);
|
this.setSpeciesDetails(species, false, 0, false, 0, 0, 0);
|
||||||
this.pokemonSprite.clearTint();
|
this.pokemonSprite.clearTint();
|
||||||
|
|
@ -1521,6 +1530,13 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
|
||||||
this.starterMoveset.push(...availableStarterMoves.filter(sm => this.starterMoveset.indexOf(sm) === -1).slice(0, 4 - this.starterMoveset.length));
|
this.starterMoveset.push(...availableStarterMoves.filter(sm => this.starterMoveset.indexOf(sm) === -1).slice(0, 4 - this.starterMoveset.length));
|
||||||
|
|
||||||
const speciesForm = getPokemonSpeciesForm(species.speciesId, formIndex);
|
const speciesForm = getPokemonSpeciesForm(species.speciesId, formIndex);
|
||||||
|
|
||||||
|
const formText = species?.forms[formIndex]?.formKey.split('-');
|
||||||
|
for (let i = 0; i < formText?.length; i++)
|
||||||
|
formText[i] = formText[i].charAt(0).toUpperCase() + formText[i].substring(1);
|
||||||
|
|
||||||
|
this.pokemonFormText.setText(formText?.join(' '));
|
||||||
|
|
||||||
this.setTypeIcons(speciesForm.type1, speciesForm.type2);
|
this.setTypeIcons(speciesForm.type1, speciesForm.type2);
|
||||||
} else {
|
} else {
|
||||||
this.pokemonAbilityText.setText('');
|
this.pokemonAbilityText.setText('');
|
||||||
|
|
@ -1653,7 +1669,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
|
||||||
this.clearText();
|
this.clearText();
|
||||||
};
|
};
|
||||||
|
|
||||||
ui.showText('Begin with these Pokémon?', null, () => {
|
ui.showText(i18next.t("menu:confirmStartTeam"), null, () => {
|
||||||
ui.setModeWithoutClear(Mode.CONFIRM, () => {
|
ui.setModeWithoutClear(Mode.CONFIRM, () => {
|
||||||
const startRun = (gameMode: GameModes) => {
|
const startRun = (gameMode: GameModes) => {
|
||||||
this.scene.gameMode = gameModes[gameMode];
|
this.scene.gameMode = gameModes[gameMode];
|
||||||
|
|
|
||||||
|
|
@ -441,6 +441,7 @@ export default class SummaryUiHandler extends UiHandler {
|
||||||
const selectedMove = this.getSelectedMove();
|
const selectedMove = this.getSelectedMove();
|
||||||
|
|
||||||
if (selectedMove) {
|
if (selectedMove) {
|
||||||
|
this.moveDescriptionText.setY(84);
|
||||||
this.movePowerText.setText(selectedMove.power >= 0 ? selectedMove.power.toString() : '---');
|
this.movePowerText.setText(selectedMove.power >= 0 ? selectedMove.power.toString() : '---');
|
||||||
this.moveAccuracyText.setText(selectedMove.accuracy >= 0 ? selectedMove.accuracy.toString() : '---');
|
this.moveAccuracyText.setText(selectedMove.accuracy >= 0 ? selectedMove.accuracy.toString() : '---');
|
||||||
this.moveCategoryIcon.setFrame(MoveCategory[selectedMove.category].toLowerCase());
|
this.moveCategoryIcon.setFrame(MoveCategory[selectedMove.category].toLowerCase());
|
||||||
|
|
@ -457,7 +458,6 @@ export default class SummaryUiHandler extends UiHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (moveDescriptionLineCount > 3) {
|
if (moveDescriptionLineCount > 3) {
|
||||||
this.moveDescriptionText.setY(84);
|
|
||||||
this.descriptionScrollTween = this.scene.tweens.add({
|
this.descriptionScrollTween = this.scene.tweens.add({
|
||||||
targets: this.moveDescriptionText,
|
targets: this.moveDescriptionText,
|
||||||
delay: Utils.fixedInt(2000),
|
delay: Utils.fixedInt(2000),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue