AI uses Magnetic Flux. (#7642)
This commit is contained in:
parent
f07112bda6
commit
9bfae7fa93
@ -1557,12 +1557,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||
else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPDEF))
|
||||
ADJUST_SCORE(-8);
|
||||
}
|
||||
else if (!hasPartner)
|
||||
{
|
||||
ADJUST_SCORE(-10); // our stats wont rise from this move
|
||||
}
|
||||
|
||||
if (hasPartner)
|
||||
else if (hasPartner)
|
||||
{
|
||||
if (aiData->abilities[BATTLE_PARTNER(battlerAtk)] == ABILITY_PLUS || aiData->abilities[BATTLE_PARTNER(battlerAtk)] == ABILITY_MINUS)
|
||||
{
|
||||
@ -1576,6 +1571,10 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||
ADJUST_SCORE(-10); // nor our or our partner's ability is plus/minus
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ADJUST_SCORE(-10); // our stats wont rise from this move
|
||||
}
|
||||
break;
|
||||
// stat lowering effects
|
||||
case EFFECT_ATTACK_DOWN:
|
||||
@ -4178,6 +4177,18 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move)
|
||||
ADJUST_SCORE(-2); // Should be either removed or turned into increasing score
|
||||
case EFFECT_ACUPRESSURE:
|
||||
break;
|
||||
case EFFECT_MAGNETIC_FLUX:
|
||||
if (aiData->abilities[battlerAtk] == ABILITY_PLUS || aiData->abilities[battlerAtk] == ABILITY_MINUS)
|
||||
{
|
||||
ADJUST_SCORE(IncreaseStatUpScore(battlerAtk, battlerDef, STAT_CHANGE_DEF));
|
||||
ADJUST_SCORE(IncreaseStatUpScore(battlerAtk, battlerDef, STAT_CHANGE_SPDEF));
|
||||
}
|
||||
if (hasPartner && (aiData->abilities[BATTLE_PARTNER(battlerAtk)] == ABILITY_PLUS || aiData->abilities[BATTLE_PARTNER(battlerAtk)] == ABILITY_MINUS))
|
||||
{
|
||||
ADJUST_SCORE(IncreaseStatUpScore(BATTLE_PARTNER(battlerAtk), battlerDef, STAT_CHANGE_DEF));
|
||||
ADJUST_SCORE(IncreaseStatUpScore(BATTLE_PARTNER(battlerAtk), battlerDef, STAT_CHANGE_SPDEF));
|
||||
}
|
||||
break;
|
||||
case EFFECT_ATTACK_ACCURACY_UP: // hone claws
|
||||
ADJUST_SCORE(IncreaseStatUpScore(battlerAtk, battlerDef, STAT_CHANGE_ATK));
|
||||
ADJUST_SCORE(IncreaseStatUpScore(battlerAtk, battlerDef, STAT_CHANGE_ACC));
|
||||
|
||||
@ -522,7 +522,6 @@ AI_DOUBLE_BATTLE_TEST("AI can use all moves, 601-700")
|
||||
switch (effect)
|
||||
{
|
||||
//TODO: AI HANDLING
|
||||
case EFFECT_MAGNETIC_FLUX:
|
||||
case EFFECT_GEAR_UP:
|
||||
case EFFECT_FAIL_IF_NOT_ARG_TYPE:
|
||||
case EFFECT_STUFF_CHEEKS:
|
||||
@ -541,6 +540,7 @@ AI_DOUBLE_BATTLE_TEST("AI can use all moves, 601-700")
|
||||
// tests exist elsewhere
|
||||
case EFFECT_ELECTRIC_TERRAIN:
|
||||
case EFFECT_PSYCHIC_TERRAIN:
|
||||
case EFFECT_MAGNETIC_FLUX:
|
||||
case EFFECT_AURORA_VEIL:
|
||||
|
||||
// Skipped on purpose.
|
||||
|
||||
@ -2,3 +2,16 @@
|
||||
#include "test/battle.h"
|
||||
|
||||
TO_DO_BATTLE_TEST("TODO: Write Magnetic Flux (Move Effect) test titles")
|
||||
|
||||
AI_DOUBLE_BATTLE_TEST("AI uses Magnetic Flux")
|
||||
{
|
||||
GIVEN {
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_OMNISCIENT);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_POUND, MOVE_CELEBRATE); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_POUND, MOVE_CELEBRATE); }
|
||||
OPPONENT(SPECIES_KLINK) { Ability(ABILITY_PLUS); Moves(MOVE_MAGNETIC_FLUX, MOVE_POUND); }
|
||||
OPPONENT(SPECIES_KLINK) { Ability(ABILITY_PLUS); Moves(MOVE_MAGNETIC_FLUX, MOVE_POUND); }
|
||||
} WHEN {
|
||||
TURN { EXPECT_MOVE(opponentLeft, MOVE_MAGNETIC_FLUX); }
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user