mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-15 12:52:20 +02:00
Transfer held items from released Pokemon
This commit is contained in:
parent
0aca9aed9c
commit
46870f1288
@ -465,6 +465,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
return this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier && (m as PokemonHeldItemModifier).pokemonId === this.id, this.isPlayer()) as PokemonHeldItemModifier[];
|
||||
}
|
||||
|
||||
getTransferrableHeldItems(): PokemonHeldItemModifier[] {
|
||||
return this.getHeldItems().filter(m => m.getTransferrable(true));
|
||||
}
|
||||
|
||||
updateScale(): void {
|
||||
this.setScale(this.getSpriteScale());
|
||||
}
|
||||
|
@ -4455,8 +4455,7 @@ export class SelectModifierPhase extends BattlePhase {
|
||||
this.scene.ui.setModeWithoutClear(Mode.PARTY, PartyUiMode.MODIFIER_TRANSFER, -1, (fromSlotIndex: integer, itemIndex: integer, toSlotIndex: integer) => {
|
||||
if (toSlotIndex !== undefined && fromSlotIndex < 6 && toSlotIndex < 6 && fromSlotIndex !== toSlotIndex && itemIndex > -1) {
|
||||
this.scene.ui.setMode(Mode.MODIFIER_SELECT, this.isPlayer(), typeOptions, modifierSelectCallback, this.getRerollCost(typeOptions, this.scene.lockModifierTiers)).then(() => {
|
||||
const itemModifiers = this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier
|
||||
&& (m as PokemonHeldItemModifier).getTransferrable(true) && (m as PokemonHeldItemModifier).pokemonId === party[fromSlotIndex].id) as PokemonHeldItemModifier[];
|
||||
const itemModifiers = party[fromSlotIndex].getTransferrableHeldItems();
|
||||
const itemModifier = itemModifiers[itemIndex];
|
||||
this.scene.tryTransferHeldItemModifier(itemModifier, party[toSlotIndex], true, true);
|
||||
});
|
||||
|
@ -246,8 +246,7 @@ export default class PartyUiHandler extends MessageUiHandler {
|
||||
filterResult = this.moveSelectFilter(pokemon.moveset[this.optionsCursor]);
|
||||
} else {
|
||||
const transferPokemon = this.scene.getParty()[this.transferCursor];
|
||||
const itemModifiers = this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier
|
||||
&& (m as PokemonHeldItemModifier).getTransferrable(true) && (m as PokemonHeldItemModifier).pokemonId === transferPokemon.id) as PokemonHeldItemModifier[];
|
||||
const itemModifiers = transferPokemon.getTransferrableHeldItems();
|
||||
filterResult = (this.selectFilter as PokemonModifierTransferSelectFilter)(pokemon, itemModifiers[this.transferOptionCursor]);
|
||||
}
|
||||
if (filterResult === null) {
|
||||
@ -548,8 +547,7 @@ export default class PartyUiHandler extends MessageUiHandler {
|
||||
: null;
|
||||
|
||||
const itemModifiers = this.partyUiMode === PartyUiMode.MODIFIER_TRANSFER
|
||||
? this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier
|
||||
&& (m as PokemonHeldItemModifier).getTransferrable(true) && (m as PokemonHeldItemModifier).pokemonId === pokemon.id) as PokemonHeldItemModifier[]
|
||||
? pokemon.getTransferrableHeldItems()
|
||||
: null;
|
||||
|
||||
if (this.options.length) {
|
||||
@ -732,15 +730,24 @@ export default class PartyUiHandler extends MessageUiHandler {
|
||||
this.clearPartySlots();
|
||||
this.scene.removePartyMemberModifiers(slotIndex);
|
||||
const releasedPokemon = this.scene.getParty().splice(slotIndex, 1)[0];
|
||||
const releasedItems = releasedPokemon.getTransferrableHeldItems();
|
||||
|
||||
releasedPokemon.destroy();
|
||||
this.populatePartySlots();
|
||||
|
||||
if (this.cursor >= this.scene.getParty().length)
|
||||
this.setCursor(this.cursor - 1);
|
||||
if (this.partyUiMode === PartyUiMode.RELEASE) {
|
||||
const selectCallback = this.selectCallback;
|
||||
this.selectCallback = null;
|
||||
selectCallback(this.cursor, PartyOption.RELEASE);
|
||||
if (releasedItems && releasedItems.length > 0) {
|
||||
const newPokemon = this.scene.getParty()[this.scene.getParty().length - 1];
|
||||
releasedItems.forEach(i => this.scene.tryTransferHeldItemModifier(i, newPokemon, true, false));
|
||||
this.showText("Items were transferred beep boop");
|
||||
}
|
||||
}
|
||||
|
||||
this.showText(null, 0);
|
||||
}, null, true);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user