mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-11-08 06:31:01 +13:00
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.
65 lines
1.9 KiB
NASM
65 lines
1.9 KiB
NASM
MACRO move_choices
|
|
IF _NARG
|
|
db \# ; all args
|
|
ENDC
|
|
db 0 ; end
|
|
DEF list_index += 1
|
|
ENDM
|
|
|
|
; move choice modification methods that are applied for each trainer class
|
|
TrainerClassMoveChoiceModifications:
|
|
list_start TrainerClassMoveChoiceModifications
|
|
move_choices 1 ; YOUNGSTER
|
|
move_choices 1 ; BUG CATCHER
|
|
move_choices 1 ; LASS
|
|
move_choices 1, 3 ; SAILOR
|
|
move_choices 1 ; JR_TRAINER_M
|
|
move_choices 1 ; JR_TRAINER_F
|
|
move_choices 1, 2, 3 ; POKEMANIAC
|
|
move_choices 1, 2 ; SUPER_NERD
|
|
move_choices 1 ; HIKER
|
|
move_choices 1 ; BIKER
|
|
move_choices 1, 3 ; BURGLAR
|
|
move_choices 1, 3 ; ENGINEER
|
|
move_choices 1, 3 ; FISHER
|
|
move_choices 1, 3 ; SWIMMER
|
|
move_choices 1 ; CUE_BALL
|
|
move_choices 1 ; GAMBLER
|
|
move_choices 1, 3 ; BEAUTY
|
|
move_choices 1, 2 ; PSYCHIC_TR
|
|
move_choices 1, 3 ; ROCKER
|
|
move_choices 1 ; JUGGLER
|
|
move_choices 1 ; TAMER
|
|
move_choices 1 ; BIRD_KEEPER
|
|
move_choices 1 ; BLACKBELT
|
|
move_choices 1 ; RIVAL1
|
|
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, 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, 2, 3, 4 ; RIVAL3
|
|
move_choices 1, 2, 3, 4 ; LORELEI
|
|
move_choices 1 ; CHANNELER
|
|
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, 2, 3 ; KOICHI
|
|
move_choices 1, 2, 3, 4 ; JACK
|
|
move_choices 1, 3, ; JESSIE_JAMES
|
|
assert_list_length NUM_TRAINERS
|