diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 6143ecd7d7a..8c575dfe50b 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -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(effect: T, params: ApplyTrainerItemsParams[T]) { + applyPlayerItems(effect: T, params: TrainerItemEffectParamMap[T]) { applyTrainerItems(effect, this.trainerItems, params); } diff --git a/src/battle.ts b/src/battle.ts index 709e7a23164..fd447e9cbf8 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -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"; diff --git a/src/data/balance/pokemon-evolutions.ts b/src/data/balance/pokemon-evolutions.ts index 54938fe4d17..82dc4390fb9 100644 --- a/src/data/balance/pokemon-evolutions.ts +++ b/src/data/balance/pokemon-evolutions.ts @@ -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; diff --git a/src/data/moves/move.ts b/src/data/moves/move.ts index 5d1f6e6b570..aba5c672138 100644 --- a/src/data/moves/move.ts +++ b/src/data/moves/move.ts @@ -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}. diff --git a/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts b/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts index 3aedfab1e1f..09256ea4003 100644 --- a/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts +++ b/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts @@ -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 { diff --git a/src/data/mystery-encounters/encounters/safari-zone-encounter.ts b/src/data/mystery-encounters/encounters/safari-zone-encounter.ts index 0528f334182..a654a5fd487 100644 --- a/src/data/mystery-encounters/encounters/safari-zone-encounter.ts +++ b/src/data/mystery-encounters/encounters/safari-zone-encounter.ts @@ -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, diff --git a/src/data/mystery-encounters/encounters/weird-dream-encounter.ts b/src/data/mystery-encounters/encounters/weird-dream-encounter.ts index 88ffba42000..e0d8845aabe 100644 --- a/src/data/mystery-encounters/encounters/weird-dream-encounter.ts +++ b/src/data/mystery-encounters/encounters/weird-dream-encounter.ts @@ -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"; diff --git a/src/data/pokeball.ts b/src/data/pokeball.ts index 967928f4d43..5611fddb254 100644 --- a/src/data/pokeball.ts +++ b/src/data/pokeball.ts @@ -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"; diff --git a/src/enums/trainer-item-effect.ts b/src/enums/trainer-item-effect.ts new file mode 100644 index 00000000000..3669de16382 --- /dev/null +++ b/src/enums/trainer-item-effect.ts @@ -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]; diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index e8360b13acc..76edc853086 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -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"; diff --git a/src/items/all-trainer-items.ts b/src/items/all-trainer-items.ts index 487bd3224d0..23fe6a4b089 100644 --- a/src/items/all-trainer-items.ts +++ b/src/items/all-trainer-items.ts @@ -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( + 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); + } + } + } +} diff --git a/src/items/held-item.ts b/src/items/held-item.ts index ab79aa54c2c..ebd70a6d580 100644 --- a/src/items/held-item.ts +++ b/src/items/held-item.ts @@ -174,5 +174,6 @@ export abstract class ConsumableHeldItem 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 {} diff --git a/src/items/held-items/berry.ts b/src/items/held-items/berry.ts index 1eaa9825301..52d46a71725 100644 --- a/src/items/held-items/berry.ts +++ b/src/items/held-items/berry.ts @@ -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"; diff --git a/src/items/held-items/damage-money-reward.ts b/src/items/held-items/damage-money-reward.ts index 13a6d44682c..602d73e43f0 100644 --- a/src/items/held-items/damage-money-reward.ts +++ b/src/items/held-items/damage-money-reward.ts @@ -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]> { diff --git a/src/items/reward.ts b/src/items/reward.ts index f52806b04b9..0f549217524 100644 --- a/src/items/reward.ts +++ b/src/items/reward.ts @@ -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"; diff --git a/src/items/apply-trainer-items.ts b/src/items/trainer-item-parameter.ts similarity index 65% rename from src/items/apply-trainer-items.ts rename to src/items/trainer-item-parameter.ts index 7abeee18df9..bf5b1f8ba29 100644 --- a/src/items/apply-trainer-items.ts +++ b/src/items/trainer-item-parameter.ts @@ -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( - 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); - } - } - } -} diff --git a/src/items/trainer-item.ts b/src/items/trainer-item.ts index f19f370594f..d247361e4fb 100644 --- a/src/items/trainer-item.ts +++ b/src/items/trainer-item.ts @@ -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; diff --git a/src/phases/berry-phase.ts b/src/phases/berry-phase.ts index fd8783a9e28..62f3ae40594 100644 --- a/src/phases/berry-phase.ts +++ b/src/phases/berry-phase.ts @@ -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) { diff --git a/src/phases/exp-phase.ts b/src/phases/exp-phase.ts index 4ab58bdbf9c..f400d7e278e 100644 --- a/src/phases/exp-phase.ts +++ b/src/phases/exp-phase.ts @@ -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"; diff --git a/src/phases/money-reward-phase.ts b/src/phases/money-reward-phase.ts index 1b6b4ded6b1..9fa00489580 100644 --- a/src/phases/money-reward-phase.ts +++ b/src/phases/money-reward-phase.ts @@ -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"; diff --git a/src/phases/move-effect-phase.ts b/src/phases/move-effect-phase.ts index 04a17ae4ad6..0bac0dae684 100644 --- a/src/phases/move-effect-phase.ts +++ b/src/phases/move-effect-phase.ts @@ -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"; diff --git a/src/phases/pokemon-heal-phase.ts b/src/phases/pokemon-heal-phase.ts index c89e1c081e7..2d1f8edc294 100644 --- a/src/phases/pokemon-heal-phase.ts +++ b/src/phases/pokemon-heal-phase.ts @@ -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"; diff --git a/src/phases/select-reward-phase.ts b/src/phases/select-reward-phase.ts index ad0cce1c4f8..be752fb4539 100644 --- a/src/phases/select-reward-phase.ts +++ b/src/phases/select-reward-phase.ts @@ -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"; diff --git a/src/phases/show-party-exp-bar-phase.ts b/src/phases/show-party-exp-bar-phase.ts index 4599c4b37cc..6d80b09c103 100644 --- a/src/phases/show-party-exp-bar-phase.ts +++ b/src/phases/show-party-exp-bar-phase.ts @@ -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"; diff --git a/src/phases/stat-stage-change-phase.ts b/src/phases/stat-stage-change-phase.ts index 8156149628a..b5ffb07366d 100644 --- a/src/phases/stat-stage-change-phase.ts +++ b/src/phases/stat-stage-change-phase.ts @@ -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(); diff --git a/src/phases/turn-end-phase.ts b/src/phases/turn-end-phase.ts index 2a42c560433..efa0a4dbd81 100644 --- a/src/phases/turn-end-phase.ts +++ b/src/phases/turn-end-phase.ts @@ -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"; diff --git a/src/ui/reward-select-ui-handler.ts b/src/ui/reward-select-ui-handler.ts index 27dead9277b..ddf5c5bc234 100644 --- a/src/ui/reward-select-ui-handler.ts +++ b/src/ui/reward-select-ui-handler.ts @@ -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";