first turn ai script

This commit is contained in:
Evan 2020-12-19 22:07:21 -07:00
parent 31ec3e8479
commit cd119ed6c3
2 changed files with 91 additions and 90 deletions

View file

@ -3344,98 +3344,8 @@ AI_CV_DragonDance_End:
AI_SetupFirstTurn:
if_target_is_ally AI_Ret
get_turn_count
if_not_equal 0, AI_SetupFirstTurn_End
get_considered_move_effect
if_not_in_hwords AI_SetupFirstTurn_SetupEffectsToEncourage, AI_SetupFirstTurn_End
score +2
AI_SetupFirstTurn_End:
end
.align 1
AI_SetupFirstTurn_SetupEffectsToEncourage:
.2byte EFFECT_ATTACK_UP
.2byte EFFECT_DEFENSE_UP
.2byte EFFECT_SPEED_UP
.2byte EFFECT_SPECIAL_ATTACK_UP
.2byte EFFECT_SPECIAL_DEFENSE_UP
.2byte EFFECT_ACCURACY_UP
.2byte EFFECT_EVASION_UP
.2byte EFFECT_ATTACK_DOWN
.2byte EFFECT_DEFENSE_DOWN
.2byte EFFECT_SPEED_DOWN
.2byte EFFECT_SPECIAL_ATTACK_DOWN
.2byte EFFECT_SPECIAL_DEFENSE_DOWN
.2byte EFFECT_ACCURACY_DOWN
.2byte EFFECT_EVASION_DOWN
.2byte EFFECT_CONVERSION
.2byte EFFECT_LIGHT_SCREEN
.2byte EFFECT_SPECIAL_DEFENSE_UP_2
.2byte EFFECT_FOCUS_ENERGY
.2byte EFFECT_CONFUSE
.2byte EFFECT_ATTACK_UP_2
.2byte EFFECT_DEFENSE_UP_2
.2byte EFFECT_SPEED_UP_2
.2byte EFFECT_SPECIAL_ATTACK_UP_2
.2byte EFFECT_SPECIAL_DEFENSE_UP_2
.2byte EFFECT_ACCURACY_UP_2
.2byte EFFECT_EVASION_UP_2
.2byte EFFECT_ATTACK_DOWN_2
.2byte EFFECT_DEFENSE_DOWN_2
.2byte EFFECT_SPEED_DOWN_2
.2byte EFFECT_SPECIAL_ATTACK_DOWN_2
.2byte EFFECT_SPECIAL_DEFENSE_DOWN_2
.2byte EFFECT_ACCURACY_DOWN_2
.2byte EFFECT_EVASION_DOWN_2
.2byte EFFECT_REFLECT
.2byte EFFECT_POISON
.2byte EFFECT_PARALYZE
.2byte EFFECT_SUBSTITUTE
.2byte EFFECT_LEECH_SEED
.2byte EFFECT_MINIMIZE
.2byte EFFECT_CURSE
.2byte EFFECT_SWAGGER
.2byte EFFECT_CAMOUFLAGE
.2byte EFFECT_YAWN
.2byte EFFECT_DEFENSE_CURL
.2byte EFFECT_TORMENT
.2byte EFFECT_FLATTER
.2byte EFFECT_WILL_O_WISP
.2byte EFFECT_INGRAIN
.2byte EFFECT_IMPRISON
.2byte EFFECT_TEETER_DANCE
.2byte EFFECT_TICKLE
.2byte EFFECT_COSMIC_POWER
.2byte EFFECT_BULK_UP
.2byte EFFECT_CALM_MIND
.2byte EFFECT_ACUPRESSURE
.2byte EFFECT_AUTOTOMIZE
.2byte EFFECT_SHIFT_GEAR
.2byte EFFECT_SHELL_SMASH
.2byte EFFECT_GROWTH
.2byte EFFECT_QUIVER_DANCE
.2byte EFFECT_ATTACK_SPATK_UP
.2byte EFFECT_ATTACK_ACCURACY_UP
.2byte EFFECT_PSYCHIC_TERRAIN
.2byte EFFECT_GRASSY_TERRAIN
.2byte EFFECT_ELECTRIC_TERRAIN
.2byte EFFECT_MISTY_TERRAIN
.2byte EFFECT_STEALTH_ROCK
.2byte EFFECT_TOXIC_SPIKES
.2byte EFFECT_TRICK_ROOM
.2byte EFFECT_WONDER_ROOM
.2byte EFFECT_MAGIC_ROOM
.2byte EFFECT_TAILWIND
.2byte EFFECT_DRAGON_DANCE
.2byte EFFECT_STICKY_WEB
.2byte EFFECT_RAIN_DANCE
.2byte EFFECT_SUNNY_DAY
.2byte EFFECT_SANDSTORM
.2byte EFFECT_HAIL
.2byte EFFECT_GEOMANCY
.2byte -1
AI_PreferStrongestMove:
if_target_is_ally AI_Ret
get_how_powerful_move_is

View file

@ -5912,8 +5912,99 @@ static s16 AI_CheckGoodMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score)
return score;
}
// Effects that are encouraged on the first turn of battle
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)
{
case EFFECT_ATTACK_UP:
case EFFECT_DEFENSE_UP:
case EFFECT_SPEED_UP:
case EFFECT_SPECIAL_ATTACK_UP:
case EFFECT_SPECIAL_DEFENSE_UP:
case EFFECT_ACCURACY_UP:
case EFFECT_EVASION_UP:
case EFFECT_ATTACK_DOWN:
case EFFECT_DEFENSE_DOWN:
case EFFECT_SPEED_DOWN:
case EFFECT_SPECIAL_ATTACK_DOWN:
case EFFECT_SPECIAL_DEFENSE_DOWN:
case EFFECT_ACCURACY_DOWN:
case EFFECT_EVASION_DOWN:
case EFFECT_CONVERSION:
case EFFECT_LIGHT_SCREEN:
case EFFECT_FOCUS_ENERGY:
case EFFECT_CONFUSE:
case EFFECT_ATTACK_UP_2:
case EFFECT_DEFENSE_UP_2:
case EFFECT_SPEED_UP_2:
case EFFECT_SPECIAL_ATTACK_UP_2:
case EFFECT_SPECIAL_DEFENSE_UP_2:
case EFFECT_ACCURACY_UP_2:
case EFFECT_EVASION_UP_2:
case EFFECT_ATTACK_DOWN_2:
case EFFECT_DEFENSE_DOWN_2:
case EFFECT_SPEED_DOWN_2:
case EFFECT_SPECIAL_ATTACK_DOWN_2:
case EFFECT_SPECIAL_DEFENSE_DOWN_2:
case EFFECT_ACCURACY_DOWN_2:
case EFFECT_EVASION_DOWN_2:
case EFFECT_REFLECT:
case EFFECT_POISON:
case EFFECT_PARALYZE:
case EFFECT_SUBSTITUTE:
case EFFECT_LEECH_SEED:
case EFFECT_MINIMIZE:
case EFFECT_CURSE:
case EFFECT_SWAGGER:
case EFFECT_CAMOUFLAGE:
case EFFECT_YAWN:
case EFFECT_DEFENSE_CURL:
case EFFECT_TORMENT:
case EFFECT_FLATTER:
case EFFECT_WILL_O_WISP:
case EFFECT_INGRAIN:
case EFFECT_IMPRISON:
case EFFECT_TEETER_DANCE:
case EFFECT_TICKLE:
case EFFECT_COSMIC_POWER:
case EFFECT_BULK_UP:
case EFFECT_CALM_MIND:
case EFFECT_ACUPRESSURE:
case EFFECT_AUTOTOMIZE:
case EFFECT_SHIFT_GEAR:
case EFFECT_SHELL_SMASH:
case EFFECT_GROWTH:
case EFFECT_QUIVER_DANCE:
case EFFECT_ATTACK_SPATK_UP:
case EFFECT_ATTACK_ACCURACY_UP:
case EFFECT_PSYCHIC_TERRAIN:
case EFFECT_GRASSY_TERRAIN:
case EFFECT_ELECTRIC_TERRAIN:
case EFFECT_MISTY_TERRAIN:
case EFFECT_STEALTH_ROCK:
case EFFECT_TOXIC_SPIKES:
case EFFECT_TRICK_ROOM:
case EFFECT_WONDER_ROOM:
case EFFECT_MAGIC_ROOM:
case EFFECT_TAILWIND:
case EFFECT_DRAGON_DANCE:
case EFFECT_STICKY_WEB:
case EFFECT_RAIN_DANCE:
case EFFECT_SUNNY_DAY:
case EFFECT_SANDSTORM:
case EFFECT_HAIL:
case EFFECT_GEOMANCY:
score += 2;
break;
default:
break;
}
return score;
}
static s16 AI_Risky(u8 battlerAtk, u8 battlerDef, u16 move, s16 score)