diff --git a/src/modifier/modifier-bar.ts b/src/modifier/modifier-bar.ts index bef021d7484..1581f26d63e 100644 --- a/src/modifier/modifier-bar.ts +++ b/src/modifier/modifier-bar.ts @@ -62,18 +62,15 @@ export class ModifierBar extends Phaser.GameObjects.Container { * @param {PersistentModifier[]} modifiers - The list of modifiers to be displayed in the {@linkcode ModifierBar} * @param {boolean} hideHeldItems - If set to "true", only modifiers not assigned to a Pokémon are displayed */ - updateModifiers(modifiers: PersistentModifier[], pokemonA: Pokemon, pokemonB?: Pokemon, hideHeldItems = false) { + updateModifiers(modifiers: PersistentModifier[], pokemonA?: Pokemon, pokemonB?: Pokemon) { this.removeAll(true); const sortedVisibleModifiers = modifiers.filter(m => m.isIconVisible()).sort(modifierSortFunc); - const heldItemsA = pokemonA.getHeldItems().sort(heldItemSortFunc); + const heldItemsA = pokemonA ? pokemonA.getHeldItems().sort(heldItemSortFunc) : []; const heldItemsB = pokemonB ? pokemonB.getHeldItems().sort(heldItemSortFunc) : []; - this.totalVisibleLength = sortedVisibleModifiers.length; - if (!hideHeldItems) { - this.totalVisibleLength += heldItemsA.length + heldItemsB.length; - } + this.totalVisibleLength = sortedVisibleModifiers.length + heldItemsA.length + heldItemsB.length; sortedVisibleModifiers.forEach((modifier: PersistentModifier, i: number) => { const icon = modifier.getIcon(); diff --git a/src/ui/modifier-select-ui-handler.ts b/src/ui/modifier-select-ui-handler.ts index fceb6a8d175..13f98fe42e5 100644 --- a/src/ui/modifier-select-ui-handler.ts +++ b/src/ui/modifier-select-ui-handler.ts @@ -5,7 +5,7 @@ import { getPokeballAtlasKey } from "#app/data/pokeball"; import { addTextObject, getTextStyleOptions, getModifierTierTextTint, getTextColor, TextStyle } from "./text"; import AwaitableUiHandler from "./awaitable-ui-handler"; import { UiMode } from "#enums/ui-mode"; -import { LockModifierTiersModifier, PokemonHeldItemModifier, HealShopCostModifier } from "../modifier/modifier"; +import { LockModifierTiersModifier, HealShopCostModifier } from "../modifier/modifier"; import { handleTutorial, Tutorial } from "../tutorial"; import { Button } from "#enums/buttons"; import MoveInfoOverlay from "./move-info-overlay"; @@ -183,7 +183,10 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { this.player = args[0]; const partyHasHeldItem = - this.player && !!globalScene.findModifiers(m => m instanceof PokemonHeldItemModifier && m.isTransferable).length; + globalScene + .getPlayerParty() + .map(p => p.heldItemManager.getTransferableHeldItems().length) + .reduce((tot, i) => tot + i, 0) > 0; const canLockRarities = !!globalScene.findModifier(m => m instanceof LockModifierTiersModifier); this.transferButtonContainer.setVisible(false); @@ -265,8 +268,8 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { // const maxUpgradeCount = typeOptions.map(to => to.upgradeCount).reduce((max, current) => Math.max(current, max), 0); const maxUpgradeCount = 0; - /* Force updateModifiers without pokemonSpecificModifiers */ - globalScene.getModifierBar().updateModifiers(globalScene.modifiers, true); + /* Force updateModifiers without pokemon held items */ + globalScene.getModifierBar().updateModifiers(globalScene.modifiers); /* Multiplies the appearance duration by the speed parameter so that it is always constant, and avoids "flashbangs" at game speed x5 */ globalScene.showShopOverlay(750 * globalScene.gameSpeed); diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index 217b5bb1d09..95d1072346a 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -1369,7 +1369,8 @@ export default class PartyUiHandler extends MessageUiHandler { optionName = move.getName(); } break; - default: + } + default: { const formChangeItems = this.getFormChangeItems(pokemon); if (formChangeItems && option >= PartyOption.FORM_CHANGE_ITEM) { const item = formChangeItems[option - PartyOption.FORM_CHANGE_ITEM];