mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-09-23 15:03:24 +02:00
Fixed various errors, moved some files for trainer items
This commit is contained in:
parent
ebaccae77c
commit
22a74f765e
@ -64,6 +64,7 @@ import { ShopCursorTarget } from "#enums/shop-cursor-target";
|
||||
import { SpeciesId } from "#enums/species-id";
|
||||
import { StatusEffect } from "#enums/status-effect";
|
||||
import { TextStyle } from "#enums/text-style";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { TrainerItemId } from "#enums/trainer-item-id";
|
||||
import type { TrainerSlot } from "#enums/trainer-slot";
|
||||
import { TrainerType } from "#enums/trainer-type";
|
||||
@ -77,11 +78,11 @@ import { EnemyPokemon, PlayerPokemon } from "#field/pokemon";
|
||||
import { PokemonSpriteSparkleHandler } from "#field/pokemon-sprite-sparkle-handler";
|
||||
import { Trainer } from "#field/trainer";
|
||||
import { applyHeldItems } from "#items/all-held-items";
|
||||
import { type ApplyTrainerItemsParams, applyTrainerItems } from "#items/apply-trainer-items";
|
||||
import { applyTrainerItems } from "#items/all-trainer-items";
|
||||
import type { HeldItemConfiguration } from "#items/held-item-data-types";
|
||||
import { assignEnemyHeldItemsForWave, assignItemsFromConfiguration } from "#items/held-item-pool";
|
||||
import type { MatchExact, Reward } from "#items/reward";
|
||||
import { type EnemyAttackStatusEffectChanceTrainerItem, TrainerItemEffect } from "#items/trainer-item";
|
||||
import type { EnemyAttackStatusEffectChanceTrainerItem } from "#items/trainer-item";
|
||||
import {
|
||||
isTrainerItemPool,
|
||||
isTrainerItemSpecs,
|
||||
@ -89,6 +90,7 @@ import {
|
||||
type TrainerItemSaveData,
|
||||
} from "#items/trainer-item-data-types";
|
||||
import { TrainerItemManager } from "#items/trainer-item-manager";
|
||||
import type { TrainerItemEffectParamMap } from "#items/trainer-item-parameter";
|
||||
import { getNewTrainerItemFromPool } from "#items/trainer-item-pool";
|
||||
import { MysteryEncounter } from "#mystery-encounters/mystery-encounter";
|
||||
import { MysteryEncounterSaveData } from "#mystery-encounters/mystery-encounter-save-data";
|
||||
@ -2608,7 +2610,7 @@ export class BattleScene extends SceneBase {
|
||||
return Math.floor(moneyValue / 10) * 10;
|
||||
}
|
||||
|
||||
applyPlayerItems<T extends TrainerItemEffect>(effect: T, params: ApplyTrainerItemsParams[T]) {
|
||||
applyPlayerItems<T extends TrainerItemEffect>(effect: T, params: TrainerItemEffectParamMap[T]) {
|
||||
applyTrainerItems(effect, this.trainerItems, params);
|
||||
}
|
||||
|
||||
|
@ -12,12 +12,12 @@ import type { MysteryEncounterType } from "#enums/mystery-encounter-type";
|
||||
import type { PokeballType } from "#enums/pokeball";
|
||||
import { SpeciesFormKey } from "#enums/species-form-key";
|
||||
import { SpeciesId } from "#enums/species-id";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { TrainerType } from "#enums/trainer-type";
|
||||
import { TrainerVariant } from "#enums/trainer-variant";
|
||||
import type { EnemyPokemon, PlayerPokemon, Pokemon } from "#field/pokemon";
|
||||
import { Trainer } from "#field/trainer";
|
||||
import type { CustomRewardSettings } from "#items/reward-pool-utils";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import type { MysteryEncounter } from "#mystery-encounters/mystery-encounter";
|
||||
import i18next from "#plugins/i18n";
|
||||
import { MusicPreference } from "#system/settings";
|
||||
|
@ -159,7 +159,7 @@ export class SpeciesEvolutionCondition {
|
||||
case EvoCondKey.SPECIES_CAUGHT:
|
||||
return i18next.t("pokemonEvolutions:caught", {species: getPokemonSpecies(cond.speciesCaught).name});
|
||||
case EvoCondKey.HELD_ITEM:
|
||||
return i18next.t(`pokemonEvolutions:heldItem.${toCamelCase(cond.itemKey)}`);
|
||||
return i18next.t(`pokemonEvolutions:heldItem.${toCamelCase(allHeldItems[cond.itemKey].name)}`);
|
||||
}
|
||||
}).filter(s => !isNullOrUndefined(s)); // Filter out stringless conditions
|
||||
return this.desc;
|
||||
|
@ -71,7 +71,6 @@ import type { EnemyPokemon, Pokemon } from "#field/pokemon";
|
||||
import { applyHeldItems } from "#items/all-held-items";
|
||||
import { BerryHeldItem, berryTypeToHeldItem } from "#items/berry";
|
||||
import { HeldItemEffect } from "#enums/held-item-effect";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { applyMoveAttrs } from "#moves/apply-attrs";
|
||||
import { invalidAssistMoves, invalidCopycatMoves, invalidMetronomeMoves, invalidMirrorMoveMoves, invalidSketchMoves, invalidSleepTalkMoves } from "#moves/invalid-moves";
|
||||
import { frenzyMissFunc, getMoveTargets } from "#moves/move-utils";
|
||||
@ -90,6 +89,7 @@ import { toCamelCase, toTitleCase } from "#utils/strings";
|
||||
import i18next from "i18next";
|
||||
import { applyChallenges } from "#utils/challenge-utils";
|
||||
import type { AbstractConstructor } from "#types/type-helpers";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
|
||||
/**
|
||||
* A function used to conditionally determine execution of a given {@linkcode MoveAttr}.
|
||||
|
@ -15,6 +15,7 @@ import type { PokeballType } from "#enums/pokeball";
|
||||
import { RewardPoolType } from "#enums/reward-pool-type";
|
||||
import { RarityTier } from "#enums/reward-tier";
|
||||
import { SpeciesId } from "#enums/species-id";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { TrainerSlot } from "#enums/trainer-slot";
|
||||
import { TrainerType } from "#enums/trainer-type";
|
||||
import { doShinySparkleAnim } from "#field/anims";
|
||||
@ -24,7 +25,6 @@ import { getHeldItemTier } from "#items/held-item-default-tiers";
|
||||
import type { RewardOption } from "#items/reward";
|
||||
import { generatePlayerRewardOptions, generateRewardPoolWeights, getRewardPoolForType } from "#items/reward-pool-utils";
|
||||
import { isTmReward } from "#items/reward-utils";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { PokemonMove } from "#moves/pokemon-move";
|
||||
import { getEncounterText, showEncounterText } from "#mystery-encounters/encounter-dialogue-utils";
|
||||
import {
|
||||
|
@ -8,10 +8,10 @@ import { MysteryEncounterTier } from "#enums/mystery-encounter-tier";
|
||||
import { MysteryEncounterType } from "#enums/mystery-encounter-type";
|
||||
import { PlayerGender } from "#enums/player-gender";
|
||||
import { PokeballType } from "#enums/pokeball";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { TrainerItemId } from "#enums/trainer-item-id";
|
||||
import { TrainerSlot } from "#enums/trainer-slot";
|
||||
import type { EnemyPokemon } from "#field/pokemon";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { getEncounterText, showEncounterText } from "#mystery-encounters/encounter-dialogue-utils";
|
||||
import {
|
||||
initSubsequentOptionSelect,
|
||||
|
@ -16,10 +16,10 @@ import { RewardId } from "#enums/reward-id";
|
||||
import { RarityTier } from "#enums/reward-tier";
|
||||
import { SpeciesId } from "#enums/species-id";
|
||||
import { StatusEffect } from "#enums/status-effect";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { TrainerType } from "#enums/trainer-type";
|
||||
import type { PlayerPokemon, Pokemon } from "#field/pokemon";
|
||||
import type { HeldItemConfiguration } from "#items/held-item-data-types";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { PokemonMove } from "#moves/pokemon-move";
|
||||
import { showEncounterText } from "#mystery-encounters/encounter-dialogue-utils";
|
||||
import type { EnemyPartyConfig, EnemyPokemonConfig } from "#mystery-encounters/encounter-phase-utils";
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { globalScene } from "#app/global-scene";
|
||||
import { PokeballType } from "#enums/pokeball";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { NumberHolder } from "#utils/common";
|
||||
import i18next from "i18next";
|
||||
|
||||
|
28
src/enums/trainer-item-effect.ts
Normal file
28
src/enums/trainer-item-effect.ts
Normal file
@ -0,0 +1,28 @@
|
||||
export const TrainerItemEffect = {
|
||||
LEVEL_INCREMENT_BOOSTER: 1,
|
||||
PRESERVE_BERRY: 2,
|
||||
HEALING_BOOSTER: 3,
|
||||
EXP_BOOSTER: 4,
|
||||
MONEY_MULTIPLIER: 5,
|
||||
HIDDEN_ABILITY_CHANCE_BOOSTER: 6,
|
||||
SHINY_RATE_BOOSTER: 7,
|
||||
CRITICAL_CATCH_CHANCE_BOOSTER: 8,
|
||||
EXTRA_REWARD: 9,
|
||||
|
||||
HEAL_SHOP_COST: 10,
|
||||
DOUBLE_BATTLE_CHANCE_BOOSTER: 11,
|
||||
|
||||
TEMP_STAT_STAGE_BOOSTER: 12,
|
||||
TEMP_ACCURACY_BOOSTER: 13,
|
||||
TEMP_CRIT_BOOSTER: 14,
|
||||
|
||||
ENEMY_DAMAGE_BOOSTER: 15,
|
||||
ENEMY_DAMAGE_REDUCER: 16,
|
||||
ENEMY_HEAL: 17,
|
||||
ENEMY_ATTACK_STATUS_CHANCE: 18,
|
||||
ENEMY_STATUS_HEAL_CHANCE: 19,
|
||||
ENEMY_ENDURE_CHANCE: 20,
|
||||
ENEMY_FUSED_CHANCE: 21,
|
||||
} as const;
|
||||
|
||||
export type TrainerItemEffect = (typeof TrainerItemEffect)[keyof typeof TrainerItemEffect];
|
@ -106,6 +106,7 @@ import {
|
||||
} from "#enums/stat";
|
||||
import { StatusEffect } from "#enums/status-effect";
|
||||
import { SwitchType } from "#enums/switch-type";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import type { TrainerSlot } from "#enums/trainer-slot";
|
||||
import { UiMode } from "#enums/ui-mode";
|
||||
import { WeatherType } from "#enums/weather-type";
|
||||
@ -114,7 +115,6 @@ import { applyHeldItems } from "#items/all-held-items";
|
||||
import type { HeldItemConfiguration } from "#items/held-item-data-types";
|
||||
import { HeldItemManager } from "#items/held-item-manager";
|
||||
import { assignItemsFromConfiguration } from "#items/held-item-pool";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { applyMoveAttrs } from "#moves/apply-attrs";
|
||||
import type { Move } from "#moves/move";
|
||||
import { getMoveTargets } from "#moves/move-utils";
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { allTrainerItems } from "#data/data-lists";
|
||||
import { Stat, type TempBattleStat } from "#enums/stat";
|
||||
import { StatusEffect } from "#enums/status-effect";
|
||||
import type { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { TrainerItemId } from "#enums/trainer-item-id";
|
||||
import {
|
||||
CriticalCatchChanceBoosterTrainerItem,
|
||||
@ -27,6 +28,8 @@ import {
|
||||
TrainerItem,
|
||||
tempStatToTrainerItem,
|
||||
} from "#items/trainer-item";
|
||||
import type { TrainerItemManager } from "./trainer-item-manager";
|
||||
import type { TrainerItemEffectParamMap } from "./trainer-item-parameter";
|
||||
|
||||
export function initTrainerItems() {
|
||||
allTrainerItems[TrainerItemId.MAP] = new TrainerItem(TrainerItemId.MAP, 1);
|
||||
@ -112,3 +115,17 @@ export function initTrainerItems() {
|
||||
10,
|
||||
);
|
||||
}
|
||||
|
||||
export function applyTrainerItems<T extends TrainerItemEffect>(
|
||||
effect: T,
|
||||
manager: TrainerItemManager,
|
||||
params: TrainerItemEffectParamMap[T],
|
||||
) {
|
||||
if (manager) {
|
||||
for (const item of Object.keys(manager.trainerItems)) {
|
||||
if (allTrainerItems[item].effects.includes(effect)) {
|
||||
allTrainerItems[item].apply(manager, params);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -174,5 +174,6 @@ export abstract class ConsumableHeldItem<T extends EffectTuple> extends HeldItem
|
||||
}
|
||||
|
||||
/** Abstract class for all items that are purely cosmetic.
|
||||
* Currently coincides with the {@linkcode HeldItemBase} class. */
|
||||
* Currently coincides with the {@linkcode HeldItemBase} class.
|
||||
* Might become concrete later on if we want cosmetic items without a subclass. */
|
||||
export abstract class CosmeticHeldItem extends HeldItemBase {}
|
||||
|
@ -3,10 +3,10 @@ import { getBerryEffectDescription, getBerryEffectFunc, getBerryName, getBerryPr
|
||||
import { BerryType } from "#enums/berry-type";
|
||||
import { HeldItemEffect } from "#enums/held-item-effect";
|
||||
import { HeldItemId } from "#enums/held-item-id";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { BerryUsedEvent } from "#events/battle-scene";
|
||||
import { ConsumableHeldItem } from "#items/held-item";
|
||||
import type { BerryParams } from "#items/held-item-parameter";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import type { ObjectValues } from "#types/type-helpers";
|
||||
import { BooleanHolder } from "#utils/common";
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
import { globalScene } from "#app/global-scene";
|
||||
import { HeldItemEffect } from "#enums/held-item-effect";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { HeldItem } from "#items/held-item";
|
||||
import type { DamageMoneyRewardParams } from "#items/held-item-parameter";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { NumberHolder } from "#utils/common";
|
||||
|
||||
export class DamageMoneyRewardHeldItem extends HeldItem<[typeof HeldItemEffect.DAMAGE_MONEY_REWARD]> {
|
||||
|
@ -25,6 +25,7 @@ import { SpeciesFormKey } from "#enums/species-form-key";
|
||||
import { SpeciesId } from "#enums/species-id";
|
||||
import type { PermanentStat, TempBattleStat } from "#enums/stat";
|
||||
import { Stat, TEMP_BATTLE_STATS } from "#enums/stat";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { TrainerItemId } from "#enums/trainer-item-id";
|
||||
import type { PlayerPokemon, Pokemon } from "#field/pokemon";
|
||||
import { attackTypeToHeldItem } from "#items/attack-type-booster";
|
||||
@ -32,7 +33,7 @@ import { permanentStatToHeldItem, statBoostItems } from "#items/base-stat-booste
|
||||
import { berryTypeToHeldItem } from "#items/berry";
|
||||
import { getNewAttackTypeBoosterHeldItem, getNewBerryHeldItem, getNewVitaminHeldItem } from "#items/held-item-pool";
|
||||
import type { SpeciesStatBoosterItemId, SpeciesStatBoostHeldItem } from "#items/stat-booster";
|
||||
import { TrainerItemEffect, tempStatToTrainerItem } from "#items/trainer-item";
|
||||
import { tempStatToTrainerItem } from "#items/trainer-item";
|
||||
import type { PokemonMove } from "#moves/pokemon-move";
|
||||
import { getVoucherTypeIcon, getVoucherTypeName, type VoucherType } from "#system/voucher";
|
||||
import type { Exact } from "#types/type-helpers";
|
||||
|
@ -1,14 +1,25 @@
|
||||
import { allTrainerItems } from "#data/data-lists";
|
||||
import {
|
||||
type BooleanHolderParams,
|
||||
type NumberHolderParams,
|
||||
type PokemonParams,
|
||||
type PreserveBerryParams,
|
||||
TrainerItemEffect,
|
||||
} from "#items/trainer-item";
|
||||
import type { TrainerItemManager } from "#items/trainer-item-manager";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import type { Pokemon } from "#field/pokemon";
|
||||
import type { BooleanHolder, NumberHolder } from "#utils/common";
|
||||
|
||||
export type ApplyTrainerItemsParams = {
|
||||
export interface NumberHolderParams {
|
||||
numberHolder: NumberHolder;
|
||||
}
|
||||
|
||||
export interface BooleanHolderParams {
|
||||
booleanHolder: BooleanHolder;
|
||||
}
|
||||
|
||||
export interface PokemonParams {
|
||||
pokemon: Pokemon;
|
||||
}
|
||||
|
||||
export interface PreserveBerryParams {
|
||||
pokemon: Pokemon;
|
||||
doPreserve: BooleanHolder;
|
||||
}
|
||||
|
||||
export type TrainerItemEffectParamMap = {
|
||||
[TrainerItemEffect.LEVEL_INCREMENT_BOOSTER]: NumberHolderParams;
|
||||
[TrainerItemEffect.PRESERVE_BERRY]: PreserveBerryParams;
|
||||
[TrainerItemEffect.HEALING_BOOSTER]: NumberHolderParams;
|
||||
@ -31,17 +42,3 @@ export type ApplyTrainerItemsParams = {
|
||||
[TrainerItemEffect.ENEMY_ENDURE_CHANCE]: PokemonParams;
|
||||
[TrainerItemEffect.ENEMY_FUSED_CHANCE]: BooleanHolderParams;
|
||||
};
|
||||
|
||||
export function applyTrainerItems<T extends TrainerItemEffect>(
|
||||
effect: T,
|
||||
manager: TrainerItemManager,
|
||||
params: ApplyTrainerItemsParams[T],
|
||||
) {
|
||||
if (manager) {
|
||||
for (const item of Object.keys(manager.trainerItems)) {
|
||||
if (allTrainerItems[item].effects.includes(effect)) {
|
||||
allTrainerItems[item].apply(manager, params);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -5,53 +5,18 @@ import { BattlerTagType } from "#enums/battler-tag-type";
|
||||
import { getStatKey, Stat, type TempBattleStat } from "#enums/stat";
|
||||
import { StatusEffect } from "#enums/status-effect";
|
||||
import { TextStyle } from "#enums/text-style";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { TrainerItemId, TrainerItemNames } from "#enums/trainer-item-id";
|
||||
import type { Pokemon } from "#field/pokemon";
|
||||
import type { TrainerItemManager } from "#items/trainer-item-manager";
|
||||
import { addTextObject } from "#ui/text";
|
||||
import { type BooleanHolder, hslToHex, type NumberHolder, randSeedFloat, toDmgValue } from "#utils/common";
|
||||
import { hslToHex, randSeedFloat, toDmgValue } from "#utils/common";
|
||||
import i18next from "i18next";
|
||||
|
||||
export const TrainerItemEffect = {
|
||||
LEVEL_INCREMENT_BOOSTER: 1,
|
||||
PRESERVE_BERRY: 2,
|
||||
HEALING_BOOSTER: 3,
|
||||
EXP_BOOSTER: 4,
|
||||
MONEY_MULTIPLIER: 5,
|
||||
HIDDEN_ABILITY_CHANCE_BOOSTER: 6,
|
||||
SHINY_RATE_BOOSTER: 7,
|
||||
CRITICAL_CATCH_CHANCE_BOOSTER: 8,
|
||||
EXTRA_REWARD: 9,
|
||||
|
||||
HEAL_SHOP_COST: 10,
|
||||
DOUBLE_BATTLE_CHANCE_BOOSTER: 11,
|
||||
|
||||
TEMP_STAT_STAGE_BOOSTER: 12,
|
||||
TEMP_ACCURACY_BOOSTER: 13,
|
||||
TEMP_CRIT_BOOSTER: 14,
|
||||
|
||||
ENEMY_DAMAGE_BOOSTER: 15,
|
||||
ENEMY_DAMAGE_REDUCER: 16,
|
||||
ENEMY_HEAL: 17,
|
||||
ENEMY_ATTACK_STATUS_CHANCE: 18,
|
||||
ENEMY_STATUS_HEAL_CHANCE: 19,
|
||||
ENEMY_ENDURE_CHANCE: 20,
|
||||
ENEMY_FUSED_CHANCE: 21,
|
||||
} as const;
|
||||
|
||||
export type TrainerItemEffect = (typeof TrainerItemEffect)[keyof typeof TrainerItemEffect];
|
||||
|
||||
export interface NumberHolderParams {
|
||||
numberHolder: NumberHolder;
|
||||
}
|
||||
|
||||
export interface BooleanHolderParams {
|
||||
booleanHolder: BooleanHolder;
|
||||
}
|
||||
|
||||
export interface PokemonParams {
|
||||
pokemon: Pokemon;
|
||||
}
|
||||
import type {
|
||||
BooleanHolderParams,
|
||||
NumberHolderParams,
|
||||
PokemonParams,
|
||||
PreserveBerryParams,
|
||||
} from "./trainer-item-parameter";
|
||||
|
||||
export class TrainerItem {
|
||||
// public pokemonId: number;
|
||||
@ -130,11 +95,6 @@ export class LevelIncrementBoosterTrainerItem extends TrainerItem {
|
||||
}
|
||||
|
||||
// Berry Pouch
|
||||
export interface PreserveBerryParams {
|
||||
pokemon: Pokemon;
|
||||
doPreserve: BooleanHolder;
|
||||
}
|
||||
|
||||
export class PreserveBerryTrainerItem extends TrainerItem {
|
||||
public effects: TrainerItemEffect[] = [TrainerItemEffect.PRESERVE_BERRY];
|
||||
|
||||
@ -491,7 +451,7 @@ export class EnemyAttackStatusEffectChanceTrainerItem extends TrainerItem {
|
||||
const chance = this.getChance();
|
||||
|
||||
if (randSeedFloat() <= chance * stack) {
|
||||
return enemyPokemon.trySetStatus(this.effect, true);
|
||||
return enemyPokemon.trySetStatus(this.effect);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -35,7 +35,10 @@ export class BerryPhase extends FieldPhase {
|
||||
*/
|
||||
eatBerries(pokemon: Pokemon): void {
|
||||
const hasUsableBerry = pokemon.getHeldItems().some(m => {
|
||||
return isItemInCategory(m, HeldItemCategoryId.BERRY) && (allHeldItems[m] as BerryHeldItem).shouldApply(pokemon);
|
||||
return (
|
||||
isItemInCategory(m, HeldItemCategoryId.BERRY) &&
|
||||
(allHeldItems[m] as BerryHeldItem).shouldApply(HeldItemEffect.BERRY, { pokemon: pokemon })
|
||||
);
|
||||
});
|
||||
|
||||
if (!hasUsableBerry) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { globalScene } from "#app/global-scene";
|
||||
import { getPokemonNameWithAffix } from "#app/messages";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { PlayerPartyMemberPokemonPhase } from "#phases/player-party-member-pokemon-phase";
|
||||
import { NumberHolder } from "#utils/common";
|
||||
import i18next from "i18next";
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { globalScene } from "#app/global-scene";
|
||||
import { ArenaTagType } from "#enums/arena-tag-type";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { BattlePhase } from "#phases/battle-phase";
|
||||
import { NumberHolder } from "#utils/common";
|
||||
import i18next from "i18next";
|
||||
|
@ -22,9 +22,9 @@ import { MoveResult } from "#enums/move-result";
|
||||
import { MoveTarget } from "#enums/move-target";
|
||||
import { isReflected, MoveUseMode } from "#enums/move-use-mode";
|
||||
import { PokemonType } from "#enums/pokemon-type";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import type { Pokemon } from "#field/pokemon";
|
||||
import { applyHeldItems } from "#items/all-held-items";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { applyFilteredMoveAttrs, applyMoveAttrs } from "#moves/apply-attrs";
|
||||
import type { Move, MoveAttr } from "#moves/move";
|
||||
import { getMoveTargets, isFieldTargeted } from "#moves/move-utils";
|
||||
|
@ -7,7 +7,7 @@ import { BattlerTagType } from "#enums/battler-tag-type";
|
||||
import { HitResult } from "#enums/hit-result";
|
||||
import { CommonAnim } from "#enums/move-anims-common";
|
||||
import { StatusEffect } from "#enums/status-effect";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { CommonAnimPhase } from "#phases/common-anim-phase";
|
||||
import { HealAchv } from "#system/achv";
|
||||
import { NumberHolder } from "#utils/common";
|
||||
|
@ -3,6 +3,7 @@ import Overrides from "#app/overrides";
|
||||
import type { MoveId } from "#enums/move-id";
|
||||
import { RewardPoolType } from "#enums/reward-pool-type";
|
||||
import type { RarityTier } from "#enums/reward-tier";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { UiMode } from "#enums/ui-mode";
|
||||
import type {
|
||||
PokemonMoveRecallRewardParams,
|
||||
@ -19,7 +20,6 @@ import {
|
||||
getRewardPoolForType,
|
||||
} from "#items/reward-pool-utils";
|
||||
import { getPlayerShopRewardOptionsForWave, isMoveReward, isRememberMoveReward, isTmReward } from "#items/reward-utils";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { BattlePhase } from "#phases/battle-phase";
|
||||
import { PartyOption, PartyUiHandler, PartyUiMode, type PokemonMoveSelectFilter } from "#ui/party-ui-handler";
|
||||
import { type RewardSelectUiHandler, SHOP_OPTIONS_ROW_LIMIT } from "#ui/reward-select-ui-handler";
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { globalScene } from "#app/global-scene";
|
||||
import { ExpGainsSpeed } from "#enums/exp-gains-speed";
|
||||
import { ExpNotification } from "#enums/exp-notification";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { PlayerPartyMemberPokemonPhase } from "#phases/player-party-member-pokemon-phase";
|
||||
import { NumberHolder } from "#utils/common";
|
||||
|
||||
|
@ -233,7 +233,7 @@ export class StatStageChangePhase extends PokemonPhase {
|
||||
);
|
||||
if (!existingPhase?.is("StatStageChangePhase")) {
|
||||
// Apply White Herb if needed
|
||||
applyHeldItems(HeldItemEffect.RESET_NEGATIVE_STAT_STAGE, { pokemon: pokemon, isPlayer: this.player });
|
||||
applyHeldItems(HeldItemEffect.RESET_NEGATIVE_STAT_STAGE, { pokemon: pokemon });
|
||||
}
|
||||
|
||||
pokemon.updateInfo();
|
||||
|
@ -4,11 +4,11 @@ import { getPokemonNameWithAffix } from "#app/messages";
|
||||
import { TerrainType } from "#data/terrain";
|
||||
import { BattlerTagLapseType } from "#enums/battler-tag-lapse-type";
|
||||
import { HeldItemEffect } from "#enums/held-item-effect";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { WeatherType } from "#enums/weather-type";
|
||||
import { TurnEndEvent } from "#events/battle-scene";
|
||||
import type { Pokemon } from "#field/pokemon";
|
||||
import { applyHeldItems } from "#items/all-held-items";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { FieldPhase } from "#phases/field-phase";
|
||||
import i18next from "i18next";
|
||||
|
||||
|
@ -7,11 +7,11 @@ import { Button } from "#enums/buttons";
|
||||
import type { PokeballType } from "#enums/pokeball";
|
||||
import { ShopCursorTarget } from "#enums/shop-cursor-target";
|
||||
import { TextStyle } from "#enums/text-style";
|
||||
import { TrainerItemEffect } from "#enums/trainer-item-effect";
|
||||
import { TrainerItemId } from "#enums/trainer-item-id";
|
||||
import { UiMode } from "#enums/ui-mode";
|
||||
import type { RewardOption } from "#items/reward";
|
||||
import { getPlayerShopRewardOptionsForWave, isTmReward } from "#items/reward-utils";
|
||||
import { TrainerItemEffect } from "#items/trainer-item";
|
||||
import { AwaitableUiHandler } from "#ui/awaitable-ui-handler";
|
||||
import { MoveInfoOverlay } from "#ui/move-info-overlay";
|
||||
import { addTextObject, getRarityTierTextTint, getTextColor, getTextStyleOptions } from "#ui/text";
|
||||
|
Loading…
Reference in New Issue
Block a user