AI uses Life Dew. (#7643)
This commit is contained in:
parent
16fa6c8f71
commit
3ff23ef212
@ -2165,6 +2165,20 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||
else if ((AI_GetWeather() & (B_WEATHER_LOW_LIGHT)))
|
||||
ADJUST_SCORE(-3);
|
||||
break;
|
||||
case EFFECT_LIFE_DEW:
|
||||
if (AI_BattlerAtMaxHp(battlerAtk))
|
||||
{
|
||||
if (hasPartner)
|
||||
{
|
||||
if (AI_BattlerAtMaxHp(BATTLE_PARTNER(battlerAtk)))
|
||||
ADJUST_SCORE(-10);
|
||||
}
|
||||
else
|
||||
{
|
||||
ADJUST_SCORE(-10);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case EFFECT_PURIFY:
|
||||
if (!(gBattleMons[battlerDef].status1 & STATUS1_ANY))
|
||||
ADJUST_SCORE(-10);
|
||||
@ -4310,6 +4324,12 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move)
|
||||
if (ShouldRecover(battlerAtk, battlerDef, move, 50))
|
||||
ADJUST_SCORE(GOOD_EFFECT);
|
||||
break;
|
||||
case EFFECT_LIFE_DEW:
|
||||
if (ShouldRecover(battlerAtk, battlerDef, move, 25))
|
||||
ADJUST_SCORE(GOOD_EFFECT);
|
||||
if (ShouldRecover(BATTLE_PARTNER(battlerAtk), battlerDef, move, 25))
|
||||
ADJUST_SCORE(GOOD_EFFECT);
|
||||
break;
|
||||
case EFFECT_LIGHT_SCREEN:
|
||||
case EFFECT_REFLECT:
|
||||
case EFFECT_AURORA_VEIL:
|
||||
|
||||
@ -595,7 +595,6 @@ AI_DOUBLE_BATTLE_TEST("AI can use all moves, 701-800")
|
||||
{
|
||||
//TODO: AI HANDLING
|
||||
case EFFECT_CLANGOROUS_SOUL:
|
||||
case EFFECT_LIFE_DEW:
|
||||
case EFFECT_POLTERGEIST:
|
||||
case EFFECT_COACHING:
|
||||
case EFFECT_REVIVAL_BLESSING:
|
||||
@ -611,6 +610,7 @@ AI_DOUBLE_BATTLE_TEST("AI can use all moves, 701-800")
|
||||
// tests exist elsewhere
|
||||
case EFFECT_COURT_CHANGE:
|
||||
case EFFECT_DOODLE:
|
||||
case EFFECT_LIFE_DEW:
|
||||
|
||||
// Skipped on purpose.
|
||||
case EFFECT_PROTECT:
|
||||
|
||||
@ -84,3 +84,30 @@ DOUBLE_BATTLE_TEST("Life Dew only works on partner if user is at full hp")
|
||||
HP_BAR(playerRight);
|
||||
}
|
||||
}
|
||||
|
||||
AI_SINGLE_BATTLE_TEST("AI uses Life Dew if it outheals your damage and outspeeds (singles)")
|
||||
{
|
||||
PASSES_RANDOMLY(100, 100, RNG_AI_SHOULD_RECOVER);
|
||||
GIVEN {
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_OMNISCIENT);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(2); Moves(MOVE_TACKLE); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(5); Moves(MOVE_SCALD, MOVE_LIFE_DEW); HP(1); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_TACKLE); EXPECT_MOVE(opponent, MOVE_LIFE_DEW); }
|
||||
}
|
||||
}
|
||||
|
||||
AI_DOUBLE_BATTLE_TEST("AI uses Life Dew if it outheals your damage and outspeeds (doubles)")
|
||||
{
|
||||
PASSES_RANDOMLY(100, 100, RNG_AI_SHOULD_RECOVER);
|
||||
GIVEN {
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_OMNISCIENT);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(2); Moves(MOVE_TACKLE); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(2); Moves(MOVE_TACKLE); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(5); Moves(MOVE_SCALD, MOVE_LIFE_DEW); HP(1); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(5); Moves(MOVE_SCALD); HP(1); }
|
||||
} WHEN {
|
||||
TURN { MOVE(playerLeft, MOVE_TACKLE); MOVE(playerRight, MOVE_TACKLE); EXPECT_MOVE(opponentLeft, MOVE_LIFE_DEW); }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user