Update Item Check
Updated item check for when applying item to a Pokemon Used similar code to when generating map for After Battle items list. Gets all item triggers for the Pokemon, then maps it and flattens it down to just a list of items the pokemon can use to change form. Then finally it checks if the current item exists in the list.pull/826/head
parent
ed87293867
commit
1902da079d
|
@ -577,8 +577,11 @@ export class FormChangeItemModifierType extends PokemonModifierType implements G
|
|||
constructor(formChangeItem: FormChangeItem) {
|
||||
super(Utils.toReadableString(FormChangeItem[formChangeItem]), `Causes certain Pokémon to change form`, (_type, args) => new Modifiers.PokemonFormChangeItemModifier(this, (args[0] as PlayerPokemon).id, formChangeItem, true),
|
||||
(pokemon: PlayerPokemon) => {
|
||||
if (pokemonFormChanges.hasOwnProperty(pokemon.species.speciesId) && !!pokemonFormChanges[pokemon.species.speciesId].find(fc => fc.trigger.hasTriggerType(SpeciesFormChangeItemTrigger)
|
||||
&& (fc.trigger as SpeciesFormChangeItemTrigger).item === this.formChangeItem))
|
||||
if (pokemonFormChanges.hasOwnProperty(pokemon.species.speciesId)
|
||||
&& !!pokemonFormChanges[pokemon.species.speciesId].find(fc => fc.trigger.hasTriggerType(SpeciesFormChangeItemTrigger))
|
||||
&& pokemonFormChanges[pokemon.species.speciesId].filter(fc => fc.trigger.hasTriggerType(SpeciesFormChangeItemTrigger))
|
||||
.map(fc => fc.findTrigger(SpeciesFormChangeItemTrigger) as SpeciesFormChangeItemTrigger)
|
||||
.flat().flatMap(fc => fc.item).includes(this.formChangeItem))
|
||||
return null;
|
||||
|
||||
return PartyUiHandler.NoEffectMessage;
|
||||
|
|
Loading…
Reference in New Issue