risky ai script -> c

This commit is contained in:
Evan 2020-12-19 22:12:31 -07:00
parent cd119ed6c3
commit b2e5760479
2 changed files with 36 additions and 30 deletions

View File

@ -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

View File

@ -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)