AI uses Gear Up. (#7641)
This commit is contained in:
parent
3ff23ef212
commit
e1381dd7b5
@ -1526,12 +1526,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||
ADJUST_SCORE(-8);
|
||||
break;
|
||||
}
|
||||
else if (!hasPartner)
|
||||
{
|
||||
ADJUST_SCORE(-10); // no partner and our stats wont rise, so don't use
|
||||
}
|
||||
|
||||
if (hasPartner)
|
||||
else if (hasPartner)
|
||||
{
|
||||
if (aiData->abilities[BATTLE_PARTNER(battlerAtk)] == ABILITY_PLUS || aiData->abilities[BATTLE_PARTNER(battlerAtk)] == ABILITY_MINUS)
|
||||
{
|
||||
@ -1544,6 +1539,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); // no partner and our stats wont rise, so don't use
|
||||
}
|
||||
break;
|
||||
case EFFECT_ACUPRESSURE:
|
||||
if (DoesSubstituteBlockMove(battlerAtk, battlerDef, move) || AreBattlersStatsMaxed(battlerDef))
|
||||
@ -4191,6 +4190,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_GEAR_UP:
|
||||
if (aiData->abilities[battlerAtk] == ABILITY_PLUS || aiData->abilities[battlerAtk] == ABILITY_MINUS)
|
||||
{
|
||||
ADJUST_SCORE(IncreaseStatUpScore(battlerAtk, battlerDef, STAT_CHANGE_ATK));
|
||||
ADJUST_SCORE(IncreaseStatUpScore(battlerAtk, battlerDef, STAT_CHANGE_SPATK));
|
||||
}
|
||||
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_ATK));
|
||||
ADJUST_SCORE(IncreaseStatUpScore(BATTLE_PARTNER(battlerAtk), battlerDef, STAT_CHANGE_SPATK));
|
||||
}
|
||||
break;
|
||||
case EFFECT_MAGNETIC_FLUX:
|
||||
if (aiData->abilities[battlerAtk] == ABILITY_PLUS || aiData->abilities[battlerAtk] == ABILITY_MINUS)
|
||||
{
|
||||
|
||||
@ -522,7 +522,6 @@ AI_DOUBLE_BATTLE_TEST("AI can use all moves, 601-700")
|
||||
switch (effect)
|
||||
{
|
||||
//TODO: AI HANDLING
|
||||
case EFFECT_GEAR_UP:
|
||||
case EFFECT_FAIL_IF_NOT_ARG_TYPE:
|
||||
case EFFECT_STUFF_CHEEKS:
|
||||
case EFFECT_NO_RETREAT:
|
||||
@ -540,8 +539,9 @@ 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:
|
||||
case EFFECT_GEAR_UP:
|
||||
case EFFECT_MAGNETIC_FLUX:
|
||||
|
||||
// Skipped on purpose.
|
||||
case EFFECT_PROTECT:
|
||||
|
||||
@ -2,3 +2,16 @@
|
||||
#include "test/battle.h"
|
||||
|
||||
TO_DO_BATTLE_TEST("TODO: Write Gear Up (Move Effect) test titles")
|
||||
|
||||
AI_DOUBLE_BATTLE_TEST("AI uses Gear Up")
|
||||
{
|
||||
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_KLINKLANG) { Ability(ABILITY_PLUS); Moves(MOVE_GEAR_UP, MOVE_WATER_GUN, MOVE_POUND); }
|
||||
OPPONENT(SPECIES_KLINKLANG) { Ability(ABILITY_PLUS); Moves(MOVE_GEAR_UP, MOVE_WATER_GUN, MOVE_POUND); }
|
||||
} WHEN {
|
||||
TURN { EXPECT_MOVE(opponentLeft, MOVE_GEAR_UP); }
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user