Metronome move fix (#3852)

* Draft Indigo Disk move data

* Add basic defines (flags, targets and priority missing)

* Update move flags

* Temper Flare is Stomping Tantrum

* Fix failing tests

* Disable Burning Bulwark for now
This commit is contained in:
Bassoonian 2023-12-28 16:57:29 +01:00 committed by GitHub
parent 41ff985bb6
commit fde3fc0a52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 428 additions and 41 deletions

View File

@ -860,21 +860,21 @@ gBattleAnims_Moves::
.4byte Move_MATCHA_GOTCHA
.4byte Move_SYRUP_BOMB
.4byte Move_IVY_CUDGEL
.4byte Move_833
.4byte Move_834
.4byte Move_835
.4byte Move_836
.4byte Move_837
.4byte Move_838
.4byte Move_839
.4byte Move_840
.4byte Move_841
.4byte Move_842
.4byte Move_843
.4byte Move_844
.4byte Move_845
.4byte Move_846
.4byte Move_847
.4byte Move_ELECTRO_SHOT
.4byte Move_TERA_STARSTORM
.4byte Move_FICKLE_BEAM
.4byte Move_BURNING_BULWARK
.4byte Move_THUNDERCLAP
.4byte Move_MIGHTY_CLEAVE
.4byte Move_TACHYON_CUTTER
.4byte Move_HARD_PRESS
.4byte Move_DRAGON_CHEER
.4byte Move_ALLURING_VOICE
.4byte Move_TEMPER_FLARE
.4byte Move_SUPERCELL_SLAM
.4byte Move_PSYCHIC_NOISE
.4byte Move_UPPER_HAND
.4byte Move_MALIGNANT_CHAIN
@@@@ Z MOVES
.4byte Move_BREAKNECK_BLITZ
.4byte Move_ALL_OUT_PUMMELING
@ -16972,6 +16972,21 @@ Move_HYDRO_STEAM::
Move_BLOOD_MOON::
Move_MATCHA_GOTCHA::
Move_IVY_CUDGEL::
Move_ELECTRO_SHOT::
Move_TERA_STARSTORM::
Move_FICKLE_BEAM::
Move_BURNING_BULWARK::
Move_THUNDERCLAP::
Move_MIGHTY_CLEAVE::
Move_TACHYON_CUTTER::
Move_HARD_PRESS::
Move_DRAGON_CHEER::
Move_ALLURING_VOICE::
Move_TEMPER_FLARE::
Move_SUPERCELL_SLAM::
Move_PSYCHIC_NOISE::
Move_UPPER_HAND::
Move_MALIGNANT_CHAIN::
end @to do
@@@@@@@@@@@@@@@@@@@@@@@ GEN 1-3 @@@@@@@@@@@@@@@@@@@@@@@

View File

@ -111,6 +111,7 @@
#define B_WIDE_GUARD GEN_LATEST // In Gen5 only, Quick Guard has a chance to fail if used consecutively.
#define B_QUICK_GUARD GEN_LATEST // In Gen5 only, Wide Guard has a chance to fail if used consecutively.
#define B_IMPRISON GEN_LATEST // In Gen5+, Imprison doesn't fail if opposing pokemon don't have any moves the user knows.
#define B_SKETCH_BANS GEN_LATEST // In Gen9+, Sketch is unable to copy more moves than in previous generations.
// Ability settings
#define B_EXPANDED_ABILITY_NAMES TRUE // If TRUE, ability names are increased from 12 characters to 16 characters.

View File

@ -886,25 +886,27 @@
#define MOVE_MAGICAL_TORQUE 826
#define MOVE_PSYBLADE 827
#define MOVE_HYDRO_STEAM 828
// The Teal Mask Moves
#define MOVE_BLOOD_MOON 829
#define MOVE_MATCHA_GOTCHA 830
#define MOVE_SYRUP_BOMB 831
#define MOVE_IVY_CUDGEL 832
#define MOVE_833 833
#define MOVE_834 834
#define MOVE_835 835
#define MOVE_836 836
#define MOVE_837 837
#define MOVE_838 838
#define MOVE_839 839
#define MOVE_840 840
#define MOVE_841 841
#define MOVE_842 842
#define MOVE_843 843
#define MOVE_844 844
#define MOVE_845 845
#define MOVE_846 846
#define MOVE_847 847
// The Indigo Disk Moves
#define MOVE_ELECTRO_SHOT 833
#define MOVE_TERA_STARSTORM 834
#define MOVE_FICKLE_BEAM 835
#define MOVE_BURNING_BULWARK 836
#define MOVE_THUNDERCLAP 837
#define MOVE_MIGHTY_CLEAVE 838
#define MOVE_TACHYON_CUTTER 839
#define MOVE_HARD_PRESS 840
#define MOVE_DRAGON_CHEER 841
#define MOVE_ALLURING_VOICE 842
#define MOVE_TEMPER_FLARE 843
#define MOVE_SUPERCELL_SLAM 844
#define MOVE_PSYCHIC_NOISE 845
#define MOVE_UPPER_HAND 846
#define MOVE_MALIGNANT_CHAIN 847
#define MOVES_COUNT_GEN9 848

View File

@ -461,6 +461,7 @@ struct BattleMove
u32 encoreBanned:1;
u32 parentalBondBanned:1;
u32 skyBattleBanned:1;
u32 sketchBanned:1;
};
#define SPINDA_SPOT_WIDTH 16

View File

@ -12650,10 +12650,8 @@ static void Cmd_copymovepermanently(void)
gChosenMove = MOVE_UNAVAILABLE;
if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED)
&& gLastPrintedMoves[gBattlerTarget] != MOVE_STRUGGLE
&& gLastPrintedMoves[gBattlerTarget] != MOVE_NONE
&& gLastPrintedMoves[gBattlerTarget] != MOVE_UNAVAILABLE
&& gLastPrintedMoves[gBattlerTarget] != MOVE_SKETCH)
&& !gBattleMoves[gLastPrintedMoves[gBattlerTarget]].sketchBanned)
{
s32 i;

View File

@ -13,6 +13,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.split = SPLIT_PHYSICAL,
.metronomeBanned = TRUE,
.mirrorMoveBanned = TRUE,
.sketchBanned = TRUE,
},
[MOVE_POUND] =
@ -2951,6 +2952,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = TRUE,
},
[MOVE_SKETCH] =
@ -2975,6 +2977,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = TRUE,
},
[MOVE_TRIPLE_KICK] =
@ -3176,6 +3179,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.split = SPLIT_SPECIAL,
.zMoveEffect = Z_EFFECT_NONE,
.highCritRatio = TRUE,
.windMove = TRUE,
},
[MOVE_COTTON_SPORE] =
@ -5290,7 +5294,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
[MOVE_LUSTER_PURGE] =
{
.effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT,
.power = 70,
.power = (B_UPDATED_MOVE_DATA >= GEN_9) ? 95 : 70,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 5,
@ -5305,7 +5309,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
[MOVE_MIST_BALL] =
{
.effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT,
.power = 70,
.power = (B_UPDATED_MOVE_DATA >= GEN_9) ? 95 : 70,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 5,
@ -8191,6 +8195,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.split = SPLIT_STATUS,
.zMoveEffect = Z_EFFECT_RESET_STATS,
.magicCoatAffected = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
},
[MOVE_SEED_FLARE] =
@ -10849,6 +10854,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.ignoresProtect = TRUE,
.ignoresSubstitute = TRUE,
.metronomeBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
},
[MOVE_SHORE_UP] =
@ -13758,6 +13764,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.healBlockBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
},
[MOVE_SALT_CURE] =
@ -14179,7 +14187,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.zMoveEffect = Z_EFFECT_NONE,
.makesContact = TRUE,
.slicingMove = TRUE,
.healBlockBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.healBlockBanned = TRUE,
},
[MOVE_DOUBLE_SHOCK] =
@ -14268,6 +14276,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
},
[MOVE_WICKED_TORQUE] =
@ -14292,6 +14301,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
},
[MOVE_NOXIOUS_TORQUE] =
@ -14316,6 +14326,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
},
[MOVE_COMBAT_TORQUE] =
@ -14340,6 +14351,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
},
[MOVE_MAGICAL_TORQUE] =
@ -14364,6 +14376,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.instructBanned = TRUE,
.encoreBanned = TRUE,
.assistBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
},
[MOVE_PSYBLADE] =
@ -14426,7 +14439,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.zMoveEffect = Z_EFFECT_NONE,
.thawsUser = TRUE,
.metronomeBanned = TRUE,
.healBlockBanned = B_EXTRAPOLATED_MOVE_FLAGS,
.healBlockBanned = TRUE,
},
[MOVE_SYRUP_BOMB] =
@ -14462,6 +14475,240 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
.metronomeBanned = TRUE,
},
[MOVE_ELECTRO_SHOT] =
{
.effect = EFFECT_PLACEHOLDER, //EFFECT_ELECTRO_SHOT
.power = 130,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 10,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.split = SPLIT_SPECIAL,
.zMoveEffect = Z_EFFECT_NONE,
//.sheerForceBoost = TRUE, (uncomment when effect is implemented, otherwise it breaks the Sheer Force Test)
},
[MOVE_TERA_STARSTORM] =
{
.effect = EFFECT_PLACEHOLDER, //EFFECT_TERA_STARSTORM
.power = 120,
.type = TYPE_NORMAL, // Stellar type if used by Terapagos-Stellar
.accuracy = 100,
.pp = 5,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED, // MOVE_TARGET_BOTH if used by Terapagos-Stellar
.priority = 0,
.split = SPLIT_SPECIAL,
.zMoveEffect = Z_EFFECT_NONE,
.assistBanned = TRUE,
.copycatBanned = TRUE,
.mimicBanned = TRUE,
.sketchBanned = (B_SKETCH_BANS >= GEN_9),
},
[MOVE_FICKLE_BEAM] =
{
.effect = EFFECT_PLACEHOLDER, //EFFECT_FICKLE_BEAM
.power = 80,
.type = TYPE_DRAGON,
.accuracy = 100,
.pp = 5,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.split = SPLIT_SPECIAL,
.zMoveEffect = Z_EFFECT_NONE,
},
[MOVE_BURNING_BULWARK] =
{
.effect = EFFECT_PLACEHOLDER, // EFFECT_PROTECT with effects
.power = 0,
.type = TYPE_FIRE,
.accuracy = 0,
.pp = 10,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_USER,
.priority = 4,
.split = SPLIT_STATUS,
.zMoveEffect = Z_EFFECT_DEF_UP_1,
.protectionMove = TRUE,
.ignoresProtect = TRUE,
.mirrorMoveBanned = TRUE,
.metronomeBanned = TRUE,
.copycatBanned = TRUE,
.assistBanned = TRUE,
},
[MOVE_THUNDERCLAP] =
{
.effect = EFFECT_SUCKER_PUNCH,
.power = 70,
.type = TYPE_ELECTRIC,
.accuracy = 100,
.pp = 5,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 1,
.split = SPLIT_SPECIAL,
.zMoveEffect = Z_EFFECT_NONE,
},
[MOVE_MIGHTY_CLEAVE] =
{
.effect = EFFECT_FEINT,
.power = 95,
.type = TYPE_ROCK,
.accuracy = 100,
.pp = 5,
.secondaryEffectChance = 100,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.split = SPLIT_PHYSICAL,
.zMoveEffect = Z_EFFECT_NONE,
.makesContact = TRUE,
.slicingMove = TRUE,
},
[MOVE_TACHYON_CUTTER] =
{
.effect = EFFECT_HIT,
.power = 50,
.type = TYPE_STEEL,
.accuracy = 0,
.pp = 10,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.split = SPLIT_SPECIAL,
.zMoveEffect = Z_EFFECT_NONE,
.strikeCount = 2,
.slicingMove = TRUE,
},
[MOVE_HARD_PRESS] =
{
.effect = EFFECT_WRING_OUT,
.power = 1,
.type = TYPE_STEEL,
.accuracy = 100,
.pp = 10,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.split = SPLIT_PHYSICAL,
.zMoveEffect = Z_EFFECT_NONE,
.makesContact = TRUE,
},
[MOVE_DRAGON_CHEER] =
{
.effect = EFFECT_PLACEHOLDER, //EFFECT_DRAGON_CHEER
.power = 0,
.type = TYPE_DRAGON,
.accuracy = 0,
.pp = 15,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_ALLY,
.priority = 0,
.split = SPLIT_STATUS,
.zMoveEffect = Z_EFFECT_NONE,
.ignoresSubstitute = TRUE,
},
[MOVE_ALLURING_VOICE] =
{
.effect = EFFECT_PLACEHOLDER, //EFFECT_ALLURING_VOICE
.power = 80,
.type = TYPE_FAIRY,
.accuracy = 100,
.pp = 10,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.split = SPLIT_SPECIAL,
.zMoveEffect = Z_EFFECT_NONE,
.soundMove = TRUE,
.ignoresSubstitute = TRUE,
},
[MOVE_TEMPER_FLARE] =
{
.effect = EFFECT_STOMPING_TANTRUM,
.power = 75,
.type = TYPE_FIRE,
.accuracy = 100,
.pp = 10,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.split = SPLIT_PHYSICAL,
.zMoveEffect = Z_EFFECT_NONE,
.makesContact = TRUE,
},
[MOVE_SUPERCELL_SLAM] =
{
.effect = EFFECT_RECOIL_IF_MISS,
.power = 100,
.type = TYPE_ELECTRIC,
.accuracy = 95,
.pp = 15,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.split = SPLIT_PHYSICAL,
.zMoveEffect = Z_EFFECT_NONE,
.makesContact = TRUE,
},
[MOVE_PSYCHIC_NOISE] =
{
.effect = EFFECT_PLACEHOLDER, //EFFECT_PSYCHIC_NOISE
.power = 75,
.type = TYPE_PSYCHIC,
.accuracy = 100,
.pp = 10,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.split = SPLIT_SPECIAL,
.zMoveEffect = Z_EFFECT_NONE,
.soundMove = TRUE,
.ignoresSubstitute = TRUE,
},
[MOVE_UPPER_HAND] =
{
.effect = EFFECT_PLACEHOLDER, //EFFECT_UPPER_HAND
.power = 65,
.type = TYPE_FIGHTING,
.accuracy = 100,
.pp = 15,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
.priority = 3,
.split = SPLIT_PHYSICAL,
.zMoveEffect = Z_EFFECT_NONE,
.makesContact = TRUE,
},
[MOVE_MALIGNANT_CHAIN] =
{
.effect = EFFECT_POISON_FANG,
.power = 100,
.type = TYPE_POISON,
.accuracy = 100,
.pp = 5,
.secondaryEffectChance = 50,
.target = MOVE_TARGET_SELECTED,
.priority = 0,
.split = SPLIT_SPECIAL,
.zMoveEffect = Z_EFFECT_NONE,
},
// Z-Moves
[MOVE_BREAKNECK_BLITZ] =
{

View File

@ -6074,6 +6074,36 @@ const struct ContestMove gContestMoves[MOVES_COUNT] =
[MOVE_SYRUP_BOMB] = {0}, // TODO
[MOVE_IVY_CUDGEL] = {0}, // TODO
[MOVE_ELECTRO_SHOT] = {0}, // TODO
[MOVE_TERA_STARSTORM] = {0}, // TODO
[MOVE_FICKLE_BEAM] = {0}, // TODO
[MOVE_BURNING_BULWARK] = {0}, // TODO
[MOVE_THUNDERCLAP] = {0}, // TODO
[MOVE_MIGHTY_CLEAVE] = {0}, // TODO
[MOVE_TACHYON_CUTTER] = {0}, // TODO
[MOVE_HARD_PRESS] = {0}, // TODO
[MOVE_DRAGON_CHEER] = {0}, // TODO
[MOVE_ALLURING_VOICE] = {0}, // TODO
[MOVE_TEMPER_FLARE] = {0}, // TODO
[MOVE_SUPERCELL_SLAM] = {0}, // TODO
[MOVE_PSYCHIC_NOISE] = {0}, // TODO
[MOVE_UPPER_HAND] = {0}, // TODO
[MOVE_MALIGNANT_CHAIN] = {0}, // TODO
};
const struct ContestEffect gContestEffects[] =

View File

@ -3284,6 +3284,54 @@ static const u8 sIvyCudgelDescription[] = _(
"Type changes with held mask.\n"
"High critical-hit ratio.");
static const u8 sElectroShotDescription[] = _(
"Absorbs electricity in one turn,\n"
"then attacks next turn.");
static const u8 sTeraStarstormDescription[] = _(
"Damages all opponents if user is\n"
"Stellar form Terapagos.");
static const u8 sFickleBeamDescription[] = _(
"Shoots a beam of light. Sometimes\n"
"twice as strong.");
static const u8 sBurningBulwarkDescription[] = _(
"Evades attack, and burns\n"
"the foe if struck.");
static const u8 sTachyonCutterDescription[] = _(
"Launches particle blades at\n"
"the target. Strikes twice.");
static const u8 sDragonCheerDescription[] = _(
"Increases allies' critical hit\n"
"ration, especially if Dragons.");
static const u8 sAlluringVoiceDescription[] = _(
"Confuses the target if their\n"
"stats were boosted this turn.");
static const u8 sTemperFlareDescription[] = _(
"A desperation attack. Power\n"
"doubles if last move failed.");
static const u8 sSupercellSlamDescription[] = _(
"An electrified slam. If it\n"
"misses, the user is hurt.");
static const u8 sPsychicNoiseDescription[] = _(
"Unpleasant sound waves that\n"
"damage and prevent healing.");
static const u8 sUpperHandDescription[] = _(
"Makes the target flinch if\n"
"readying a priority move.");
static const u8 sMalignantChainDescription[] = _(
"A corrosive chain attack\n"
"that may badly poison.");
const u8 gNotDoneYetDescription[] = _(
"This move can't be used. Its\n"
"effect is in development.");
@ -4127,4 +4175,19 @@ const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] =
[MOVE_MATCHA_GOTCHA - 1] = sMatchaGotchaDescription,
[MOVE_SYRUP_BOMB - 1] = sSyrupBombDescription,
[MOVE_IVY_CUDGEL - 1] = sIvyCudgelDescription,
[MOVE_ELECTRO_SHOT - 1] = sElectroShotDescription,
[MOVE_TERA_STARSTORM - 1] = sTeraStarstormDescription,
[MOVE_FICKLE_BEAM - 1] = sFickleBeamDescription,
[MOVE_BURNING_BULWARK - 1] = sBurningBulwarkDescription,
[MOVE_THUNDERCLAP - 1] = sSuckerPunchDescription,
[MOVE_MIGHTY_CLEAVE - 1] = sFeintDescription,
[MOVE_TACHYON_CUTTER - 1] = sTachyonCutterDescription,
[MOVE_HARD_PRESS - 1] = sWringOutDescription,
[MOVE_DRAGON_CHEER - 1] = sDragonCheerDescription,
[MOVE_ALLURING_VOICE - 1] = sAlluringVoiceDescription,
[MOVE_TEMPER_FLARE - 1] = sTemperFlareDescription,
[MOVE_SUPERCELL_SLAM - 1] = sSupercellSlamDescription,
[MOVE_PSYCHIC_NOISE - 1] = sPsychicNoiseDescription,
[MOVE_UPPER_HAND - 1] = sUpperHandDescription,
[MOVE_MALIGNANT_CHAIN - 1] = sMalignantChainDescription,
};

View File

@ -835,6 +835,21 @@ const u8 gMoveNames[MOVES_COUNT_DYNAMAX][MOVE_NAME_LENGTH + 1] =
[MOVE_MATCHA_GOTCHA] = _("Matcha Gotcha"),
[MOVE_SYRUP_BOMB] = _("Syrup Bomb"),
[MOVE_IVY_CUDGEL] = _("Ivy Cudgel"),
[MOVE_ELECTRO_SHOT] = _("Electro Shot"),
[MOVE_TERA_STARSTORM] = _("Tera Starstorm"),
[MOVE_FICKLE_BEAM] = _("Fickle Beam"),
[MOVE_BURNING_BULWARK] = _("Burning Bulwark"),
[MOVE_THUNDERCLAP] = _("Thunderclap"),
[MOVE_MIGHTY_CLEAVE] = _("Mighty Cleave"),
[MOVE_TACHYON_CUTTER] = _("Tachyon Cutter"),
[MOVE_HARD_PRESS] = _("Hard Press"),
[MOVE_DRAGON_CHEER] = _("Dragon Cheer"),
[MOVE_ALLURING_VOICE] = _("Alluring Voice"),
[MOVE_TEMPER_FLARE] = _("Temper Flare"),
[MOVE_SUPERCELL_SLAM] = _("Supercell Slam"),
[MOVE_PSYCHIC_NOISE] = _("Psychic Noise"),
[MOVE_UPPER_HAND] = _("Upper Hand"),
[MOVE_MALIGNANT_CHAIN] = _("Malignant Chain"),
// Max Moves
[MOVE_MAX_GUARD] = _("Max Guard"),
[MOVE_MAX_STRIKE] = _("Max Strike"),
@ -1727,6 +1742,21 @@ const u8 gMoveNames[MOVES_COUNT_DYNAMAX][MOVE_NAME_LENGTH + 1] =
[MOVE_MATCHA_GOTCHA] = _("MatchaGotcha"),
[MOVE_SYRUP_BOMB] = _("Syrup Bomb"),
[MOVE_IVY_CUDGEL] = _("Ivy Cudgel"),
[MOVE_ELECTRO_SHOT] = _("Electro Shot"),
[MOVE_TERA_STARSTORM] = _("TeraStarstrm"),
[MOVE_FICKLE_BEAM] = _("Fickle Beam"),
[MOVE_BURNING_BULWARK] = _("BurnngBulwrk"),
[MOVE_THUNDERCLAP] = _("Thunderclap"),
[MOVE_MIGHTY_CLEAVE] = _("MightyCleave"),
[MOVE_TACHYON_CUTTER] = _("TachyonCuttr"),
[MOVE_HARD_PRESS] = _("Hard Press"),
[MOVE_DRAGON_CHEER] = _("Dragon Cheer"),
[MOVE_ALLURING_VOICE] = _("AllurngVoice"),
[MOVE_TEMPER_FLARE] = _("Temper Flare"),
[MOVE_SUPERCELL_SLAM] = _("SuprcellSlam"),
[MOVE_PSYCHIC_NOISE] = _("PsychicNoise"),
[MOVE_UPPER_HAND] = _("Upper Hand"),
[MOVE_MALIGNANT_CHAIN] = _("MalignntChan"),
// Max Moves
[MOVE_MAX_GUARD] = _("M-Guard"),
[MOVE_MAX_STRIKE] = _("M-Strike"),

View File

@ -177,15 +177,15 @@ AI_SINGLE_BATTLE_TEST("AI chooses moves with secondary effect that have a 100% c
AI_LOG;
ASSUME(gBattleMoves[MOVE_SHADOW_BALL].effect == EFFECT_SPECIAL_DEFENSE_DOWN_HIT);
ASSUME(gBattleMoves[MOVE_SHADOW_BALL].secondaryEffectChance == 20);
ASSUME(gBattleMoves[MOVE_LUSTER_PURGE].effect == EFFECT_SPECIAL_DEFENSE_DOWN_HIT);
ASSUME(gBattleMoves[MOVE_LUSTER_PURGE].secondaryEffectChance == 50);
ASSUME(gBattleMoves[MOVE_OCTAZOOKA].effect == EFFECT_ACCURACY_DOWN_HIT);
ASSUME(gBattleMoves[MOVE_OCTAZOOKA].secondaryEffectChance == 50);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_REGICE);
OPPONENT(SPECIES_REGIROCK) { Ability(ability); Moves(MOVE_SHADOW_BALL, MOVE_LUSTER_PURGE); }
OPPONENT(SPECIES_REGIROCK) { Ability(ability); Moves(MOVE_SHADOW_BALL, MOVE_OCTAZOOKA); }
} WHEN {
if (ability == ABILITY_NONE)
TURN { EXPECT_MOVE(opponent, MOVE_SHADOW_BALL); }
else
TURN { EXPECT_MOVES(opponent, MOVE_LUSTER_PURGE); }
TURN { EXPECT_MOVES(opponent, MOVE_OCTAZOOKA); }
}
}