From 76bb903d0620eb32d36534cae816febce288ea9f Mon Sep 17 00:00:00 2001 From: kittenchilly Date: Sat, 22 Mar 2025 02:54:52 -0500 Subject: [PATCH] Update Battle Debug menu with new AI flags (#6444) --- src/battle_debug.c | 63 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 44 insertions(+), 19 deletions(-) diff --git a/src/battle_debug.c b/src/battle_debug.c index 44a92b5f93..e82f7a90df 100644 --- a/src/battle_debug.c +++ b/src/battle_debug.c @@ -218,7 +218,7 @@ enum LIST_AI_CHECK_BAD_MOVE, LIST_AI_TRY_TO_FAINT, LIST_AI_CHECK_VIABILITY, - LIST_AI_SETUP_FIRST_TURN, + LIST_AI_FORCE_SETUP_FIRST_TURN, LIST_AI_RISKY, LIST_AI_TRY_TO_2HKO, LIST_AI_PREFER_BATON_PASS, @@ -227,13 +227,20 @@ enum LIST_AI_POWERFUL_STATUS, LIST_AI_NEGATE_UNAWARE, LIST_AI_WILL_SUICIDE, - LIST_AI_HELP_PARTNER, LIST_AI_PREFER_STATUS_MOVES, LIST_AI_STALL, LIST_AI_SMART_SWITCHING, LIST_AI_ACE_POKEMON, LIST_AI_OMNISCIENT, LIST_AI_SMART_MON_CHOICES, + LIST_AI_CONSERVATIVE, + LIST_AI_SEQUENCE_SWITCHING, + LIST_AI_DOUBLE_ACE_POKEMON, + LIST_AI_WEIGH_ABILITY_PREDICTION, + LIST_AI_PREFER_HIGHEST_DAMAGE_MOVE, + LIST_AI_PREDICT_SWITCH, + LIST_AI_PREDICT_INCOMING_MON, + LIST_AI_DYNAMIC_FUNC, LIST_AI_ROAMING, LIST_AI_SAFARI, LIST_AI_FIRST_BATTLE, @@ -383,7 +390,7 @@ static const u8 sText_Swamp[] = _("Swamp"); static const u8 sText_CheckBadMove[] = _("Check Bad Move"); static const u8 sText_TryToFaint[] = _("Try to Faint"); static const u8 sText_CheckViability[] = _("Check Viability"); -static const u8 sText_SetUpFirstTurn[] = _("Setup First Turn"); +static const u8 sText_ForceSetupFirstTurn[] = _("Force Setup First Turn"); static const u8 sText_Risky[] = _("Risky"); static const u8 sText_TryTo2HKO[] = _("Try to 2HKO"); static const u8 sText_PreferBatonPass[] = _("Prefer Baton Pass"); @@ -392,13 +399,20 @@ static const u8 sText_HpAware[] = _("HP Aware"); static const u8 sText_PowerfulStatus[] = _("Powerful Status"); static const u8 sText_NegateUnaware[] = _("Negate Unaware"); static const u8 sText_WillSuicide[] = _("Will Suicide"); -static const u8 sText_HelpPartner[] = _("Help Partner"); static const u8 sText_PreferStatusMoves[] = _("Prefer Status Moves"); static const u8 sText_Stall[] = _("Stall"); static const u8 sText_SmartSwitching[] = _("Smart Switching"); -static const u8 sText_AcePokemon[] = _("Ace Pokemon"); +static const u8 sText_AcePokemon[] = _("Ace Pokémon"); static const u8 sText_Omniscient[] = _("Omniscient"); static const u8 sText_SmartMonChoices[] = _("Smart Mon Choices"); +static const u8 sText_Conservative[] = _("Conservative"); +static const u8 sText_SequenceSwitching[] = _("Sequence Switching"); +static const u8 sText_DoubleAcePokemon[] = _("Double Ace Pokémon"); +static const u8 sText_WeighAbilityPrediction[] = _("Weigh Ability Prediction"); +static const u8 sText_PreferHighestDamageMove[] = _("Prefer Highest Damage Move"); +static const u8 sText_PredictSwitch[] = _("Predict Switch"); +static const u8 sText_PredictIncomingMon[] = _("Predict Incoming Mon"); +static const u8 sText_DynamicFunc[] = _("Dynamic Func"); static const u8 sText_Roaming[] = _("Roaming"); static const u8 sText_Safari[] = _("Safari"); static const u8 sText_FirstBattle[] = _("First Battle"); @@ -479,7 +493,7 @@ static const struct BitfieldInfo sAIBitfield[] = {/*Check Bad Move*/ 1, 0}, {/*Try to Faint*/ 1, 1}, {/*Check Viability*/ 1, 2}, - {/*Setup First Turn*/ 1, 3}, + {/*Force Setup First Turn*/ 1, 3}, {/*Risky*/ 1, 4}, {/*Prefer Strongest Move*/ 1, 5}, {/*Prefer Baton Pass*/ 1, 6}, @@ -488,16 +502,20 @@ static const struct BitfieldInfo sAIBitfield[] = {/*Powerful Status*/ 1, 9}, {/*Negate Unaware*/ 1, 10}, {/*Will Suicide*/ 1, 11}, - {/*Help Partner*/ 1, 12}, - {/*Prefer Status Moves*/ 1, 13}, - {/*Stall*/ 1, 14}, - {/*Smart Switching*/ 1, 15}, - {/*Ace Pokemon*/ 1, 16}, - {/*Omniscient*/ 1, 17}, - {/*Smart Mon Choices*/ 1, 18}, - {/*Ace Pokemon*/ 1, 16}, - {/*Omniscient*/ 1, 17}, - {/*Smart Mon Choices*/ 1, 18}, + {/*Prefer Status Moves*/ 1, 12}, + {/*Stall*/ 1, 13}, + {/*Smart Switching*/ 1, 14}, + {/*Ace Pokemon*/ 1, 15}, + {/*Omniscient*/ 1, 16}, + {/*Smart Mon Choices*/ 1, 17}, + {/*Conservative*/ 1, 18}, + {/*Sequence Switching*/ 1, 19}, + {/*Double Ace Pokemon*/ 1, 20}, + {/*Weigh Ability Prediction*/ 1, 21}, + {/*Prefer Highest Damage Move*/ 1, 22}, + {/*Predict Switch*/ 1, 23}, + {/*Predict Incoming Mon*/ 1, 24}, + {/*Dynamic Func*/ 1, 28}, {/*Roaming*/ 1, 29}, {/*Safari*/ 1, 30}, {/*First Battle*/ 1, 31}, @@ -626,7 +644,7 @@ static const struct ListMenuItem sAIListItems[] = {sText_CheckBadMove, LIST_AI_CHECK_BAD_MOVE}, {sText_TryToFaint, LIST_AI_TRY_TO_FAINT}, {sText_CheckViability, LIST_AI_CHECK_VIABILITY}, - {sText_SetUpFirstTurn, LIST_AI_SETUP_FIRST_TURN}, + {sText_ForceSetupFirstTurn, LIST_AI_FORCE_SETUP_FIRST_TURN}, {sText_Risky, LIST_AI_RISKY}, {sText_TryTo2HKO, LIST_AI_TRY_TO_2HKO}, {sText_PreferBatonPass, LIST_AI_PREFER_BATON_PASS}, @@ -635,13 +653,20 @@ static const struct ListMenuItem sAIListItems[] = {sText_PowerfulStatus, LIST_AI_POWERFUL_STATUS}, {sText_NegateUnaware, LIST_AI_NEGATE_UNAWARE}, {sText_WillSuicide, LIST_AI_WILL_SUICIDE}, - {sText_HelpPartner, LIST_AI_HELP_PARTNER}, {sText_PreferStatusMoves, LIST_AI_PREFER_STATUS_MOVES}, {sText_Stall, LIST_AI_STALL}, {sText_SmartSwitching, LIST_AI_SMART_SWITCHING}, {sText_AcePokemon, LIST_AI_ACE_POKEMON}, {sText_Omniscient, LIST_AI_OMNISCIENT}, {sText_SmartMonChoices, LIST_AI_SMART_MON_CHOICES}, + {sText_Conservative, LIST_AI_CONSERVATIVE}, + {sText_SequenceSwitching, LIST_AI_SEQUENCE_SWITCHING}, + {sText_DoubleAcePokemon, LIST_AI_DOUBLE_ACE_POKEMON}, + {sText_WeighAbilityPrediction, LIST_AI_WEIGH_ABILITY_PREDICTION}, + {sText_PreferHighestDamageMove, LIST_AI_PREFER_HIGHEST_DAMAGE_MOVE}, + {sText_PredictSwitch, LIST_AI_PREDICT_SWITCH}, + {sText_PredictIncomingMon, LIST_AI_PREDICT_INCOMING_MON}, + {sText_DynamicFunc, LIST_AI_DYNAMIC_FUNC}, {sText_Roaming, LIST_AI_ROAMING}, {sText_Safari, LIST_AI_SAFARI}, {sText_FirstBattle, LIST_AI_FIRST_BATTLE}, @@ -2580,8 +2605,8 @@ static const u8 *const sHoldEffectNames[] = [HOLD_EFFECT_COVERT_CLOAK] = sText_HoldEffectCovertCloak, [HOLD_EFFECT_LOADED_DICE] = sText_HoldEffectLoadedDice, [HOLD_EFFECT_BOOSTER_ENERGY] = sText_HoldEffectBoosterEnergy, - [HOLD_EFFECT_BERSERK_GENE] = sText_HoldEffectBerserkGene, [HOLD_EFFECT_OGERPON_MASK] = sText_HoldEffectOgerponMask, + [HOLD_EFFECT_BERSERK_GENE] = sText_HoldEffectBerserkGene, }; static const u8 *GetHoldEffectName(u16 holdEffect) {