mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-06-21 09:02:47 +02:00
Merge branch 'beta' into terrain-fail-msg
This commit is contained in:
commit
c1816a3814
@ -40,7 +40,6 @@ import {
|
||||
type TerastallizeModifierType,
|
||||
type TmModifierType,
|
||||
getModifierType,
|
||||
ModifierPoolType,
|
||||
ModifierTypeGenerator,
|
||||
modifierTypes,
|
||||
PokemonHeldItemModifierType,
|
||||
@ -3232,8 +3231,7 @@ export abstract class HeldItemTransferModifier extends PokemonHeldItemModifier {
|
||||
}
|
||||
|
||||
/**
|
||||
* Steals an item from a set of target Pokemon.
|
||||
* This prioritizes high-tier held items when selecting the item to steal.
|
||||
* Steals an item, chosen randomly, from a set of target Pokemon.
|
||||
* @param pokemon The {@linkcode Pokemon} holding this item
|
||||
* @param target The {@linkcode Pokemon} to steal from (optional)
|
||||
* @param _args N/A
|
||||
@ -3253,31 +3251,16 @@ export abstract class HeldItemTransferModifier extends PokemonHeldItemModifier {
|
||||
return false;
|
||||
}
|
||||
|
||||
const poolType = pokemon.isPlayer()
|
||||
? ModifierPoolType.PLAYER
|
||||
: pokemon.hasTrainer()
|
||||
? ModifierPoolType.TRAINER
|
||||
: ModifierPoolType.WILD;
|
||||
|
||||
const transferredModifierTypes: ModifierType[] = [];
|
||||
const itemModifiers = globalScene.findModifiers(
|
||||
m => m instanceof PokemonHeldItemModifier && m.pokemonId === targetPokemon.id && m.isTransferable,
|
||||
targetPokemon.isPlayer(),
|
||||
) as PokemonHeldItemModifier[];
|
||||
let highestItemTier = itemModifiers
|
||||
.map(m => m.type.getOrInferTier(poolType))
|
||||
.reduce((highestTier, tier) => Math.max(tier!, highestTier), 0); // TODO: is this bang correct?
|
||||
let tierItemModifiers = itemModifiers.filter(m => m.type.getOrInferTier(poolType) === highestItemTier);
|
||||
|
||||
for (let i = 0; i < transferredItemCount; i++) {
|
||||
if (!tierItemModifiers.length) {
|
||||
while (highestItemTier-- && !tierItemModifiers.length) {
|
||||
tierItemModifiers = itemModifiers.filter(m => m.type.tier === highestItemTier);
|
||||
}
|
||||
if (!tierItemModifiers.length) {
|
||||
if (!itemModifiers.length) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
const randItemIndex = pokemon.randBattleSeedInt(itemModifiers.length);
|
||||
const randItem = itemModifiers[randItemIndex];
|
||||
if (globalScene.tryTransferHeldItemModifier(randItem, pokemon, false)) {
|
||||
|
Loading…
Reference in New Issue
Block a user