AI Improvements

This fixes some of the issues with the current AI system to make them better. In short:

- Most Trainers should correctly recognise when a move is not very effective, and not use it. If they have a supereffective move and a regular-effective move, they will slightly prioritise the supereffective one, but not always use it like in regular RBY. This prevents the Lorelei softlock, for example.

- Trainers won't attempt to set status effects on Pokemon that already have one, won't try recovering at full health, and won't attempt to set up multiple Reflects or Light Screen

- Certain high-level trainers will recognise when a Pokemon does not have a status, and will try to inflict one if so. This makes Agatha's, Erika's and Koga's team types much more effective.

- Youngsters and Cue Balls no longer pick moves randomly and will actually give it some thought

- Brock and the Engineers now recognize type effectiveness, Students do not given how early they're encountered.

- General improvements to move choices for all Gym Leaders, E4 and Shinjuku Jacky.

We're almost done.
This commit is contained in:
Martha Schilling 2024-01-05 13:59:27 +00:00
parent a486ec7657
commit e6763371e4
6 changed files with 157 additions and 127 deletions

View file

@ -50,7 +50,7 @@ PredefPointers::
add_predef UpdateHPBar
add_predef HPBarLength
add_predef Diploma_TextBoxBorder
; add_predef DoubleOrHalveSelectedStats
add_predef DoubleOrHalveSelectedStats
add_predef ShowPokedexMenu
add_predef EvolutionAfterBattle
add_predef SaveSAVtoSRAM0

View file

@ -9,7 +9,7 @@ ENDM
; move choice modification methods that are applied for each trainer class
TrainerClassMoveChoiceModifications:
list_start TrainerClassMoveChoiceModifications
move_choices ; YOUNGSTER
move_choices 1 ; YOUNGSTER
move_choices 1 ; BUG CATCHER
move_choices 1 ; LASS
move_choices 1, 3 ; SAILOR
@ -20,10 +20,10 @@ TrainerClassMoveChoiceModifications:
move_choices 1 ; HIKER
move_choices 1 ; BIKER
move_choices 1, 3 ; BURGLAR
move_choices 1 ; ENGINEER
move_choices 1, 3 ; ENGINEER
move_choices 1, 3 ; FISHER
move_choices 1, 3 ; SWIMMER
move_choices ; CUE_BALL
move_choices 1 ; CUE_BALL
move_choices 1 ; GAMBLER
move_choices 1, 3 ; BEAUTY
move_choices 1, 2 ; PSYCHIC_TR
@ -33,32 +33,32 @@ TrainerClassMoveChoiceModifications:
move_choices 1 ; BIRD_KEEPER
move_choices 1 ; BLACKBELT
move_choices 1 ; RIVAL1
move_choices 1, 3 ; PROF_OAK
move_choices 1, 2 ; CHIEF
move_choices 1, 2 ; SCIENTIST
move_choices 1, 3 ; GIOVANNI
move_choices 1, 2, 3, 4 ; PROF_OAK
move_choices 1, 2, 3, 4 ; CHIEF
move_choices 1, 2, 4 ; SCIENTIST
move_choices 1, 2, 3 ; GIOVANNI
move_choices 1 ; ROCKET
move_choices 1, 3 ; COOLTRAINER_M
move_choices 1, 3 ; COOLTRAINER_F
move_choices 1 ; BRUNO
move_choices 1 ; BROCK
move_choices 1, 3 ; MISTY
move_choices 1, 3 ; LT_SURGE
move_choices 1, 3 ; ERIKA
move_choices 1, 3 ; KOGA
move_choices 1, 3 ; BLAINE
move_choices 1, 3 ; SABRINA
move_choices 1, 3, 4 ; COOLTRAINER_M
move_choices 1, 3, 4 ; COOLTRAINER_F
move_choices 1, 2, 3 ; BRUNO
move_choices 1, 3 ; BROCK
move_choices 1, 3, 4 ; MISTY
move_choices 1, 2, 3 ; LT_SURGE
move_choices 1, 3, 4 ; ERIKA
move_choices 1, 3, 4 ; KOGA
move_choices 1, 2, 3 ; BLAINE
move_choices 1, 3, 4 ; SABRINA
move_choices 1, 2 ; GENTLEMAN
move_choices 1, 3 ; RIVAL2
move_choices 1, 3 ; RIVAL3
move_choices 1, 2, 3 ; LORELEI
move_choices 1, 2, 3, 4 ; RIVAL3
move_choices 1, 2, 3, 4 ; LORELEI
move_choices 1 ; CHANNELER
move_choices 1 ; AGATHA
move_choices 1, 3 ; LANCE
move_choices 1, 3, ; YUJIROU, was UNUSED_JUGGLER
move_choices 1, 3, ; STUDENT
move_choices 1, 2, 3, 4 ; AGATHA
move_choices 1, 2, 3, 4 ; LANCE
move_choices 1, 3, ; YUJIROU
move_choices 1 ; STUDENT
move_choices 1, 3, ; FIREFIGHTER
move_choices 1, 3, ; KOICHI
move_choices 1, 3, ; JACK
move_choices 1, 2, 3 ; KOICHI
move_choices 1, 2, 3, 4 ; JACK
move_choices 1, 3, ; JESSIE_JAMES
assert_list_length NUM_TRAINERS