diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 0f53c81ea..15752259b 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -3356,37 +3356,9 @@ AI_PreferStrongestMove_End: end AI_Risky: - if_target_is_ally AI_Ret - get_considered_move_effect - if_move_flag FLAG_HIGH_CRIT, AI_Risky_RandChance - if_not_in_bytes AI_Risky_EffectsToEncourage, AI_Risky_End -AI_Risky_RandChance: - if_random_less_than 128, AI_Risky_End - score +2 -AI_Risky_End: end -AI_Risky_EffectsToEncourage: - .byte EFFECT_SLEEP - .byte EFFECT_EXPLOSION - .byte EFFECT_MIRROR_MOVE - .byte EFFECT_OHKO - .byte EFFECT_CONFUSE - .byte EFFECT_METRONOME - .byte EFFECT_PSYWAVE - .byte EFFECT_COUNTER - .byte EFFECT_DESTINY_BOND - .byte EFFECT_SWAGGER - .byte EFFECT_ATTRACT - .byte EFFECT_PRESENT - .byte EFFECT_ALL_STATS_UP_HIT - .byte EFFECT_BELLY_DRUM - .byte EFFECT_MIRROR_COAT - .byte EFFECT_FOCUS_PUNCH - .byte EFFECT_REVENGE - .byte EFFECT_TEETER_DANCE - .byte -1 - + .align 1 sMovesTable_ProtectMoves: .2byte MOVE_PROTECT diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index fa6510bba..22087be14 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -5918,7 +5918,7 @@ static s16 AI_SetupFirstTurn(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (IsTargetingPartner(battlerAtk, battlerDef) || gBattleResults.battleTurnCounter != 0) return score; - switch (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect) + switch (gBattleMoves[move].effect) { case EFFECT_ATTACK_UP: case EFFECT_DEFENSE_UP: @@ -6009,6 +6009,40 @@ static s16 AI_SetupFirstTurn(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) static s16 AI_Risky(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) { + if (IsTargetingPartner(battlerAtk, battlerDef)) + return score; + + if (TestMoveFlags(move, FLAG_HIGH_CRIT)) + score += 2; + + switch (gBattleMoves[move].effect) + { + case EFFECT_SLEEP: + case EFFECT_EXPLOSION: + case EFFECT_MIRROR_MOVE: + case EFFECT_OHKO: + case EFFECT_CONFUSE: + case EFFECT_METRONOME: + case EFFECT_PSYWAVE: + case EFFECT_COUNTER: + case EFFECT_DESTINY_BOND: + case EFFECT_SWAGGER: + case EFFECT_ATTRACT: + case EFFECT_PRESENT: + case EFFECT_ALL_STATS_UP_HIT: + case EFFECT_BELLY_DRUM: + case EFFECT_MIRROR_COAT: + case EFFECT_FOCUS_PUNCH: + case EFFECT_REVENGE: + case EFFECT_TEETER_DANCE: + if (Random() & 1) + score += 2; + break; + default: + break; + } + + return score; } static s16 AI_PreferStrongestMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score)