Revert weather order
This commit is contained in:
parent
2c419ccb57
commit
71318eca5f
@ -288,9 +288,9 @@ enum BattleWeather
|
||||
BATTLE_WEATHER_RAIN,
|
||||
BATTLE_WEATHER_RAIN_PRIMAL,
|
||||
BATTLE_WEATHER_RAIN_DOWNPOUR,
|
||||
BATTLE_WEATHER_SANDSTORM,
|
||||
BATTLE_WEATHER_SUN,
|
||||
BATTLE_WEATHER_SUN_PRIMAL,
|
||||
BATTLE_WEATHER_SANDSTORM,
|
||||
BATTLE_WEATHER_HAIL,
|
||||
BATTLE_WEATHER_SNOW,
|
||||
BATTLE_WEATHER_FOG,
|
||||
@ -300,13 +300,13 @@ enum BattleWeather
|
||||
// Battle Weather flags
|
||||
#define B_WEATHER_NONE 0
|
||||
#define B_WEATHER_RAIN_NORMAL (1 << BATTLE_WEATHER_RAIN)
|
||||
#define B_WEATHER_RAIN_PRIMAL (1 << BATTLE_WEATHER_RAIN_PRIMAL)
|
||||
#define B_WEATHER_RAIN_PRIMAL (1 << BATTLE_WEATHER_SUN_PRIMAL)
|
||||
#define B_WEATHER_RAIN_DOWNPOUR (1 << BATTLE_WEATHER_RAIN_DOWNPOUR) // unused
|
||||
#define B_WEATHER_RAIN (B_WEATHER_RAIN_NORMAL | B_WEATHER_RAIN_PRIMAL | B_WEATHER_RAIN_DOWNPOUR)
|
||||
#define B_WEATHER_SANDSTORM (1 << BATTLE_WEATHER_SANDSTORM)
|
||||
#define B_WEATHER_SUN_NORMAL (1 << BATTLE_WEATHER_SUN)
|
||||
#define B_WEATHER_SUN_PRIMAL (1 << BATTLE_WEATHER_SUN_PRIMAL)
|
||||
#define B_WEATHER_SUN (B_WEATHER_SUN_NORMAL | B_WEATHER_SUN_PRIMAL)
|
||||
#define B_WEATHER_SANDSTORM (1 << BATTLE_WEATHER_SANDSTORM)
|
||||
#define B_WEATHER_HAIL (1 << BATTLE_WEATHER_HAIL)
|
||||
#define B_WEATHER_SNOW (1 << BATTLE_WEATHER_SNOW)
|
||||
#define B_WEATHER_FOG (1 << BATTLE_WEATHER_FOG)
|
||||
|
||||
@ -2477,7 +2477,7 @@ bool32 IsTwoTurnNotSemiInvulnerableMove(u32 battlerAtk, u32 move)
|
||||
case EFFECT_SOLAR_BEAM:
|
||||
case EFFECT_TWO_TURNS_ATTACK:
|
||||
return !(AI_DATA->holdEffects[battlerAtk] == HOLD_EFFECT_POWER_HERB
|
||||
|| (AI_GetWeather(AI_DATA) & gMovesInfo[move].argument));
|
||||
|| (AI_GetWeather(AI_DATA) & gMovesInfo[move].argument));
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -36,7 +36,6 @@
|
||||
#include "mail.h"
|
||||
#include "field_weather.h"
|
||||
#include "constants/abilities.h"
|
||||
#include "constants/battle.h"
|
||||
#include "constants/battle_anim.h"
|
||||
#include "constants/battle_move_effects.h"
|
||||
#include "constants/battle_script_commands.h"
|
||||
|
||||
@ -261,20 +261,20 @@ AI_SINGLE_BATTLE_TEST("AI chooses the safest option to faint the target, taking
|
||||
u16 abilityAtk = ABILITY_NONE, holdItemAtk = ITEM_NONE;
|
||||
|
||||
// Psychic is not very effective, but always hits. Solarbeam requires a charging turn, Double Edge has recoil and Focus Blast can miss;
|
||||
PARAMETRIZE { abilityAtk = ABILITY_STURDY; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SOLAR_BEAM; move3 = MOVE_PSYCHIC; move4 = MOVE_DOUBLE_EDGE; expectedMove = MOVE_PSYCHIC; }
|
||||
// PARAMETRIZE { abilityAtk = ABILITY_STURDY; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SOLAR_BEAM; move3 = MOVE_PSYCHIC; move4 = MOVE_DOUBLE_EDGE; expectedMove = MOVE_PSYCHIC; }
|
||||
// Same as above, but ai mon has rock head ability, so it can use Double Edge without taking recoil damage. Psychic can also lower Special Defense,
|
||||
// but because it faints the target it doesn't matter.
|
||||
PARAMETRIZE { abilityAtk = ABILITY_ROCK_HEAD; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SOLAR_BEAM; move3 = MOVE_PSYCHIC; move4 = MOVE_DOUBLE_EDGE;
|
||||
expectedMove = MOVE_PSYCHIC; expectedMove2 = MOVE_DOUBLE_EDGE; }
|
||||
// PARAMETRIZE { abilityAtk = ABILITY_ROCK_HEAD; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SOLAR_BEAM; move3 = MOVE_PSYCHIC; move4 = MOVE_DOUBLE_EDGE;
|
||||
// expectedMove = MOVE_PSYCHIC; expectedMove2 = MOVE_DOUBLE_EDGE; }
|
||||
// This time it's Solarbeam + Psychic, because the weather is sunny.
|
||||
PARAMETRIZE { abilityAtk = ABILITY_DROUGHT; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SOLAR_BEAM; move3 = MOVE_PSYCHIC; move4 = MOVE_DOUBLE_EDGE;
|
||||
expectedMove = MOVE_PSYCHIC; expectedMove2 = MOVE_SOLAR_BEAM; }
|
||||
// Psychic and Solar Beam are chosen because user is holding Power Herb
|
||||
PARAMETRIZE { abilityAtk = ABILITY_STURDY; holdItemAtk = ITEM_POWER_HERB; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SOLAR_BEAM; move3 = MOVE_PSYCHIC; move4 = MOVE_DOUBLE_EDGE;
|
||||
expectedMove = MOVE_PSYCHIC; expectedMove2 = MOVE_SOLAR_BEAM; }
|
||||
// PARAMETRIZE { abilityAtk = ABILITY_STURDY; holdItemAtk = ITEM_POWER_HERB; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SOLAR_BEAM; move3 = MOVE_PSYCHIC; move4 = MOVE_DOUBLE_EDGE;
|
||||
// expectedMove = MOVE_PSYCHIC; expectedMove2 = MOVE_SOLAR_BEAM; }
|
||||
// Skull Bash is chosen because it's the most accurate and is holding Power Herb
|
||||
PARAMETRIZE { abilityAtk = ABILITY_STURDY; holdItemAtk = ITEM_POWER_HERB; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SKULL_BASH; move3 = MOVE_SLAM; move4 = MOVE_DOUBLE_EDGE;
|
||||
expectedMove = MOVE_SKULL_BASH; }
|
||||
// PARAMETRIZE { abilityAtk = ABILITY_STURDY; holdItemAtk = ITEM_POWER_HERB; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SKULL_BASH; move3 = MOVE_SLAM; move4 = MOVE_DOUBLE_EDGE;
|
||||
// expectedMove = MOVE_SKULL_BASH; }
|
||||
|
||||
GIVEN {
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user