fix other move that might get the illusion type as well

This commit is contained in:
Lylian 2025-05-04 23:21:56 +02:00
parent 91fb7a47b5
commit 070d5083d0

View File

@ -5669,7 +5669,7 @@ export class JawLockAttr extends AddBattlerTagAttr {
export class CurseAttr extends MoveEffectAttr {
apply(user: Pokemon, target: Pokemon, move:Move, args: any[]): boolean {
if (user.getTypes(true).includes(PokemonType.GHOST)) {
if (user.getTypes(true, false, undefined, false).includes(PokemonType.GHOST)) {
if (target.getTag(BattlerTagType.CURSED)) {
globalScene.queueMessage(i18next.t("battle:attackFailed"));
return false;
@ -6511,7 +6511,7 @@ export class CopyTypeAttr extends MoveEffectAttr {
return false;
}
const targetTypes = target.getTypes(true);
const targetTypes = target.getTypes(true, false, undefined, false);
if (targetTypes.includes(PokemonType.UNKNOWN) && targetTypes.indexOf(PokemonType.UNKNOWN) > -1) {
targetTypes[targetTypes.indexOf(PokemonType.UNKNOWN)] = PokemonType.NORMAL;
}
@ -6683,7 +6683,7 @@ export class AddTypeAttr extends MoveEffectAttr {
}
getCondition(): MoveConditionFunc {
return (user, target, move) => !target.isTerastallized && !target.getTypes().includes(this.type);
return (user, target, move) => !target.isTerastallized && !target.getTypes(false, false, undefined, false).includes(this.type);
}
}
@ -8054,7 +8054,7 @@ export class UpperHandCondition extends MoveCondition {
export class hitsSameTypeAttr extends VariableMoveTypeMultiplierAttr {
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
const multiplier = args[0] as NumberHolder;
if (!user.getTypes().some(type => target.getTypes().includes(type))) {
if (!user.getTypes(false, false, undefined, false).some(type => target.getTypes(false, false, undefined, false).includes(type))) {
multiplier.value = 0;
return true;
}
@ -8097,7 +8097,7 @@ export class ResistLastMoveTypeAttr extends MoveEffectAttr {
if (moveData.type === PokemonType.STELLAR || moveData.type === PokemonType.UNKNOWN) {
return false;
}
const userTypes = user.getTypes();
const userTypes = user.getTypes(false, false, undefined, false);
const validTypes = this.getTypeResistances(globalScene.gameMode, moveData.type).filter(t => !userTypes.includes(t)); // valid types are ones that are not already the user's types
if (!validTypes.length) {
return false;
@ -8238,7 +8238,7 @@ export function getMoveTargets(user: Pokemon, move: Moves, replaceTarget?: MoveT
break;
case MoveTarget.CURSE:
const extraTargets = !isNullOrUndefined(ally) ? [ ally ] : [];
set = user.getTypes(true).includes(PokemonType.GHOST) ? (opponents.concat(extraTargets)) : [ user ];
set = user.getTypes(true, false, undefined, false).includes(PokemonType.GHOST) ? (opponents.concat(extraTargets)) : [ user ];
break;
}
@ -10076,7 +10076,7 @@ export function initMoves() {
.condition(failIfLastCondition),
new StatusMove(Moves.FLOWER_SHIELD, PokemonType.FAIRY, -1, 10, -1, 0, 6)
.target(MoveTarget.ALL)
.attr(StatStageChangeAttr, [ Stat.DEF ], 1, false, { condition: (user, target, move) => target.getTypes().includes(PokemonType.GRASS) && !target.getTag(SemiInvulnerableTag) }),
.attr(StatStageChangeAttr, [ Stat.DEF ], 1, false, { condition: (user, target, move) => target.getTypes(false, false, undefined, false).includes(PokemonType.GRASS) && !target.getTag(SemiInvulnerableTag) }),
new StatusMove(Moves.GRASSY_TERRAIN, PokemonType.GRASS, -1, 10, -1, 0, 6)
.attr(TerrainChangeAttr, TerrainType.GRASSY)
.target(MoveTarget.BOTH_SIDES),
@ -10364,7 +10364,7 @@ export function initMoves() {
.attr(PositiveStatStagePowerAttr),
new AttackMove(Moves.BURN_UP, PokemonType.FIRE, MoveCategory.SPECIAL, 130, 100, 5, -1, 0, 7)
.condition((user) => {
const userTypes = user.getTypes(true);
const userTypes = user.getTypes(true, false, undefined, false);
return userTypes.includes(PokemonType.FIRE);
})
.attr(HealStatusEffectAttr, true, StatusEffect.FREEZE)
@ -11149,7 +11149,7 @@ export function initMoves() {
.triageMove(),
new AttackMove(Moves.DOUBLE_SHOCK, PokemonType.ELECTRIC, MoveCategory.PHYSICAL, 120, 100, 5, -1, 0, 9)
.condition((user) => {
const userTypes = user.getTypes(true);
const userTypes = user.getTypes(true, false, undefined, false);
return userTypes.includes(PokemonType.ELECTRIC);
})
.attr(AddBattlerTagAttr, BattlerTagType.DOUBLE_SHOCKED, true, false)