diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 4eb608d7e4fb..c552f446db83 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -3769,9 +3769,9 @@ static u32 AI_CalcMoveScore(u32 battlerAtk, u32 battlerDef, u32 move) IncreaseStatUpScore(battlerAtk, battlerDef, STAT_CHANGE_DEF, &score); break; case EFFECT_FIRST_TURN_ONLY: - if (ShouldFakeOut(battlerAtk, battlerDef, move)) + if (ShouldFakeOut(battlerAtk, battlerDef, move) && MoveHasAdditionalEffectWithChance(move, MOVE_EFFECT_FLINCH, 100)) ADJUST_SCORE(GOOD_EFFECT); - else if (gMovesInfo[move].argument == MOVE_FIRST_IMPRESSION && gDisableStructs[battlerAtk].isFirstTurn && GetBestDmgMoveFromBattler(battlerAtk, battlerDef) == move) + else if (gDisableStructs[battlerAtk].isFirstTurn && GetBestDmgMoveFromBattler(battlerAtk, battlerDef) == move) ADJUST_SCORE(BEST_EFFECT); break; case EFFECT_STOCKPILE: diff --git a/test/battle/ability/dancer.c b/test/battle/ability/dancer.c index 97435a2ea752..7e520f440bca 100644 --- a/test/battle/ability/dancer.c +++ b/test/battle/ability/dancer.c @@ -33,3 +33,23 @@ SINGLE_BATTLE_TEST("Dancer can copy Teeter Dance") ANIMATION(ANIM_TYPE_MOVE, MOVE_TEETER_DANCE, opponent); } } + +DOUBLE_BATTLE_TEST("Dancer can copy Teeter Dance and confuse both opposing targets") +{ + KNOWN_FAILING; // Fails because copied move that targets both opposing mons, targets only one when copied by Dancer + GIVEN { + ASSUME(gMovesInfo[MOVE_TEETER_DANCE].danceMove == TRUE); + PLAYER(SPECIES_WOBBUFFET) + PLAYER(SPECIES_WYNAUT) + OPPONENT(SPECIES_ORICORIO) { Ability(ABILITY_DANCER); Item(ITEM_LUM_BERRY); } + OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_TEETER_DANCE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TEETER_DANCE, playerLeft); + ABILITY_POPUP(opponentLeft, ABILITY_DANCER); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TEETER_DANCE, opponentLeft); + MESSAGE("Wobbuffet became confused!"); + MESSAGE("Wynaut became confusef!"); + } +}