summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorElectroDeoxys <ElectroDeoxys@gmail.com>2020-04-22 10:45:03 +0100
committerElectroDeoxys <ElectroDeoxys@gmail.com>2020-04-22 10:45:03 +0100
commiteebe2ce0026f6b1d30f33ff3fd12b2a2ad1d0e39 (patch)
treecac9e460e1127b5c1d3907fe5c084b9bb8a81679 /src
parent6960c4f3ac186349828e85616f1c189c20db9b9b (diff)
Added some AI related constants
Diffstat (limited to 'src')
-rw-r--r--src/constants/card_data_constants.asm5
-rw-r--r--src/constants/duel_constants.asm19
-rw-r--r--src/data/cards.asm18
-rw-r--r--src/engine/bank05.asm5
-rw-r--r--src/engine/bank08.asm81
-rw-r--r--src/wram.asm2
6 files changed, 79 insertions, 51 deletions
diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm
index 3f3dd3a..3f26e4d 100644
--- a/src/constants/card_data_constants.asm
+++ b/src/constants/card_data_constants.asm
@@ -230,3 +230,8 @@ UNABLE_RETREAT EQU $64
; attack index constants
FIRST_ATTACK_OR_PKMN_POWER EQU $0
SECOND_ATTACK EQU $1
+
+; whether move with the ATTACHED_ENERGY_BOOST flag
+; has limit on attached energy cards boost.
+MAX_ENERGY_BOOST_IS_LIMITED EQU $2
+MAX_ENERGY_BOOST_IS_NOT_LIMITED EQU $3
diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm
index b1063dc..65f58e3 100644
--- a/src/constants/duel_constants.asm
+++ b/src/constants/duel_constants.asm
@@ -231,3 +231,22 @@ AI_FLAG_USED_SWITCH EQU 1 << 1
AI_FLAG_USED_PROFESSOR_OAK EQU 1 << 2
AI_FLAG_MODIFIED_HAND EQU 1 << 3
AI_FLAG_USED_GUST_OF_WIND EQU 1 << 4
+
+; used to determine which Trainer cards for AI
+; to process in AIProcessHandTrainerCards.
+; aside from a few exceptions, these go in chronological order.
+AI_TRAINER_CARD_PHASE_01 EQU $1
+AI_TRAINER_CARD_PHASE_02 EQU $2
+AI_TRAINER_CARD_PHASE_03 EQU $3
+AI_TRAINER_CARD_PHASE_04 EQU $4
+AI_TRAINER_CARD_PHASE_05 EQU $5
+AI_TRAINER_CARD_PHASE_06 EQU $6
+AI_TRAINER_CARD_PHASE_07 EQU $7
+AI_TRAINER_CARD_PHASE_08 EQU $8
+AI_TRAINER_CARD_PHASE_09 EQU $9
+AI_TRAINER_CARD_PHASE_10 EQU $a
+AI_TRAINER_CARD_PHASE_11 EQU $b
+AI_TRAINER_CARD_PHASE_12 EQU $c
+AI_TRAINER_CARD_PHASE_13 EQU $d
+AI_TRAINER_CARD_PHASE_14 EQU $e
+AI_TRAINER_CARD_PHASE_15 EQU $f
diff --git a/src/data/cards.asm b/src/data/cards.asm
index 8bbc091..48a1ba2 100644
--- a/src/data/cards.asm
+++ b/src/data/cards.asm
@@ -1952,7 +1952,7 @@ ExeggutorCard: ; 31689 (c:5689)
db NONE ; flags 1
db ATTACHED_ENERGY_BOOST ; flags 2
db NONE ; flags 3
- db 3
+ db MAX_ENERGY_BOOST_IS_NOT_LIMITED
db 2 ; animation
db 3 ; retreat cost
@@ -3278,7 +3278,7 @@ BlastoiseCard: ; 31d23 (c:5d23)
db NONE ; flags 1
db ATTACHED_ENERGY_BOOST ; flags 2
db NONE ; flags 3
- db 2
+ db MAX_ENERGY_BOOST_IS_LIMITED
db 22 ; animation
db 3 ; retreat cost
@@ -3417,7 +3417,7 @@ PoliwagCard: ; 31de6 (c:5de6)
db NONE ; flags 1
db ATTACHED_ENERGY_BOOST ; flags 2
db NONE ; flags 3
- db 2
+ db MAX_ENERGY_BOOST_IS_LIMITED
db 19 ; animation
; move 2
@@ -3519,7 +3519,7 @@ PoliwrathCard: ; 31e68 (c:5e68)
db NONE ; flags 1
db ATTACHED_ENERGY_BOOST ; flags 2
db NONE ; flags 3
- db 2
+ db MAX_ENERGY_BOOST_IS_LIMITED
db 19 ; animation
; move 2
@@ -4029,7 +4029,7 @@ SeadraCard: ; 320f2 (c:60f2)
db NONE ; flags 1
db ATTACHED_ENERGY_BOOST ; flags 2
db NONE ; flags 3
- db 2
+ db MAX_ENERGY_BOOST_IS_LIMITED
db 19 ; animation
; move 2
@@ -4386,7 +4386,7 @@ LaprasCard: ; 322b9 (c:62b9)
db NONE ; flags 1
db ATTACHED_ENERGY_BOOST ; flags 2
db NONE ; flags 3
- db 2
+ db MAX_ENERGY_BOOST_IS_LIMITED
db 19 ; animation
; move 2
@@ -4502,7 +4502,7 @@ Vaporeon2Card: ; 3233b (c:633b)
db NONE ; flags 1
db ATTACHED_ENERGY_BOOST ; flags 2
db NONE ; flags 3
- db 2
+ db MAX_ENERGY_BOOST_IS_LIMITED
db 19 ; animation
db 1 ; retreat cost
@@ -4553,7 +4553,7 @@ OmanyteCard: ; 3237c (c:637c)
db NONE ; flags 1
db ATTACHED_ENERGY_BOOST ; flags 2
db NONE ; flags 3
- db 2
+ db MAX_ENERGY_BOOST_IS_LIMITED
db 19 ; animation
db 1 ; retreat cost
@@ -4590,7 +4590,7 @@ OmastarCard: ; 323bd (c:63bd)
db NONE ; flags 1
db ATTACHED_ENERGY_BOOST ; flags 2
db NONE ; flags 3
- db 2
+ db MAX_ENERGY_BOOST_IS_LIMITED
db 19 ; animation
; move 2
diff --git a/src/engine/bank05.asm b/src/engine/bank05.asm
index ec205ce..7b0d7aa 100644
--- a/src/engine/bank05.asm
+++ b/src/engine/bank05.asm
@@ -4375,8 +4375,11 @@ DetermineAIScoreOfMoveEnergyRequirement: ; 16695 (5:6695)
.attached_energy_boost
ld a, [wLoadedMoveEffectParam]
- cp $02
+ cp MAX_ENERGY_BOOST_IS_LIMITED
jr z, .check_surplus_energy
+
+ ; is MAX_ENERGY_BOOST_IS_NOT_LIMITED,
+ ; which is equal to 3, add to score.
call AddToAIScore
jp .check_evolution
diff --git a/src/engine/bank08.asm b/src/engine/bank08.asm
index ad36e90..bac8d61 100644
--- a/src/engine/bank08.asm
+++ b/src/engine/bank08.asm
@@ -6,44 +6,44 @@ unknown_data_20000: MACRO
ENDM
Data_20000: ; 20000 (8:4000)
- unknown_data_20000 $07, POTION, AIDecide_Potion1, AIPlay_Potion
- unknown_data_20000 $0a, POTION, AIDecide_Potion2, AIPlay_Potion
- unknown_data_20000 $08, SUPER_POTION, AIDecide_SuperPotion1, AIPlay_SuperPotion
- unknown_data_20000 $0b, SUPER_POTION, AIDecide_SuperPotion2, AIPlay_SuperPotion
- unknown_data_20000 $0d, DEFENDER, AIDecide_Defender1, AIPlay_Defender
- unknown_data_20000 $0e, DEFENDER, AIDecide_Defender2, AIPlay_Defender
- unknown_data_20000 $0d, PLUSPOWER, AIDecide_Pluspower1, AIPlay_Pluspower
- unknown_data_20000 $0e, PLUSPOWER, AIDecide_Pluspower2, AIPlay_Pluspower
- unknown_data_20000 $09, SWITCH, AIDecide_Switch, AIPlay_Switch
- unknown_data_20000 $07, GUST_OF_WIND, AIDecide_GustOfWind, AIPlay_GustOfWind
- unknown_data_20000 $0a, GUST_OF_WIND, AIDecide_GustOfWind, AIPlay_GustOfWind
- unknown_data_20000 $04, BILL, AIDecide_Bill, AIPlay_Bill
- unknown_data_20000 $05, ENERGY_REMOVAL, AIDecide_EnergyRemoval, AIPlay_EnergyRemoval
- unknown_data_20000 $05, SUPER_ENERGY_REMOVAL, AIDecide_SuperEnergyRemoval, AIPlay_SuperEnergyRemoval
- unknown_data_20000 $07, POKEMON_BREEDER, AIDecide_PokemonBreeder, AIPlay_PokemonBreeder
- unknown_data_20000 $0f, PROFESSOR_OAK, AIDecide_ProfessorOak, AIPlay_ProfessorOak
- unknown_data_20000 $0a, ENERGY_RETRIEVAL, AIDecide_EnergyRetrieval, AIPlay_EnergyRetrieval
- unknown_data_20000 $0b, SUPER_ENERGY_RETRIEVAL, AIDecide_SuperEnergyRetrieval, AIPlay_SuperEnergyRetrieval
- unknown_data_20000 $06, POKEMON_CENTER, AIDecide_PokemonCenter, AIPlay_PokemonCenter
- unknown_data_20000 $07, IMPOSTER_PROFESSOR_OAK, AIDecide_ImposterProfessorOak, AIPlay_ImposterProfessorOak
- unknown_data_20000 $0c, ENERGY_SEARCH, AIDecide_EnergySearch, AIPlay_EnergySearch
- unknown_data_20000 $03, POKEDEX, AIDecide_Pokedex, AIPlay_Pokedex
- unknown_data_20000 $07, FULL_HEAL, AIDecide_FullHeal, AIPlay_FullHeal
- unknown_data_20000 $0a, MR_FUJI, AIDecide_MrFuji, AIPlay_MrFuji
- unknown_data_20000 $0a, SCOOP_UP, AIDecide_ScoopUp, AIPlay_ScoopUp
- unknown_data_20000 $02, MAINTENANCE, AIDecide_Maintenance, AIPlay_Maintenance
- unknown_data_20000 $03, RECYCLE, AIDecide_Recycle, AIPlay_Recycle
- unknown_data_20000 $0d, LASS, AIDecide_Lass, AIPlay_Lass
- unknown_data_20000 $04, ITEM_FINDER, AIDecide_ItemFinder, AIPlay_ItemFinder
- unknown_data_20000 $01, IMAKUNI_CARD, AIDecide_Imakuni, AIPlay_Imakuni
- unknown_data_20000 $01, GAMBLER, AIDecide_Gambler, AIPlay_Gambler
- unknown_data_20000 $05, REVIVE, AIDecide_Revive, AIPlay_Revive
- unknown_data_20000 $0d, POKEMON_FLUTE, AIDecide_PokemonFlute, AIPlay_PokemonFlute
- unknown_data_20000 $05, CLEFAIRY_DOLL, AIDecide_ClefairyDollOrMysteriousFossil, AIPlay_ClefairyDollOrMysteriousFossil
- unknown_data_20000 $05, MYSTERIOUS_FOSSIL, AIDecide_ClefairyDollOrMysteriousFossil, AIPlay_ClefairyDollOrMysteriousFossil
- unknown_data_20000 $02, POKE_BALL, AIDecide_Pokeball, AIPlay_Pokeball
- unknown_data_20000 $02, COMPUTER_SEARCH, AIDecide_ComputerSearch, AIPlay_ComputerSearch
- unknown_data_20000 $02, POKEMON_TRADER, AIDecide_PokemonTrader, AIPlay_PokemonTrader
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_07, POTION, AIDecide_Potion1, AIPlay_Potion
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_10, POTION, AIDecide_Potion2, AIPlay_Potion
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_08, SUPER_POTION, AIDecide_SuperPotion1, AIPlay_SuperPotion
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_11, SUPER_POTION, AIDecide_SuperPotion2, AIPlay_SuperPotion
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_13, DEFENDER, AIDecide_Defender1, AIPlay_Defender
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_14, DEFENDER, AIDecide_Defender2, AIPlay_Defender
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_13, PLUSPOWER, AIDecide_Pluspower1, AIPlay_Pluspower
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_14, PLUSPOWER, AIDecide_Pluspower2, AIPlay_Pluspower
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_09, SWITCH, AIDecide_Switch, AIPlay_Switch
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_07, GUST_OF_WIND, AIDecide_GustOfWind, AIPlay_GustOfWind
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_10, GUST_OF_WIND, AIDecide_GustOfWind, AIPlay_GustOfWind
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_04, BILL, AIDecide_Bill, AIPlay_Bill
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_05, ENERGY_REMOVAL, AIDecide_EnergyRemoval, AIPlay_EnergyRemoval
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_05, SUPER_ENERGY_REMOVAL, AIDecide_SuperEnergyRemoval, AIPlay_SuperEnergyRemoval
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_07, POKEMON_BREEDER, AIDecide_PokemonBreeder, AIPlay_PokemonBreeder
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_15, PROFESSOR_OAK, AIDecide_ProfessorOak, AIPlay_ProfessorOak
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_10, ENERGY_RETRIEVAL, AIDecide_EnergyRetrieval, AIPlay_EnergyRetrieval
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_11, SUPER_ENERGY_RETRIEVAL, AIDecide_SuperEnergyRetrieval, AIPlay_SuperEnergyRetrieval
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_06, POKEMON_CENTER, AIDecide_PokemonCenter, AIPlay_PokemonCenter
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_07, IMPOSTER_PROFESSOR_OAK, AIDecide_ImposterProfessorOak, AIPlay_ImposterProfessorOak
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_12, ENERGY_SEARCH, AIDecide_EnergySearch, AIPlay_EnergySearch
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_03, POKEDEX, AIDecide_Pokedex, AIPlay_Pokedex
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_07, FULL_HEAL, AIDecide_FullHeal, AIPlay_FullHeal
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_10, MR_FUJI, AIDecide_MrFuji, AIPlay_MrFuji
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_10, SCOOP_UP, AIDecide_ScoopUp, AIPlay_ScoopUp
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_02, MAINTENANCE, AIDecide_Maintenance, AIPlay_Maintenance
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_03, RECYCLE, AIDecide_Recycle, AIPlay_Recycle
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_13, LASS, AIDecide_Lass, AIPlay_Lass
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_04, ITEM_FINDER, AIDecide_ItemFinder, AIPlay_ItemFinder
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_01, IMAKUNI_CARD, AIDecide_Imakuni, AIPlay_Imakuni
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_01, GAMBLER, AIDecide_Gambler, AIPlay_Gambler
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_05, REVIVE, AIDecide_Revive, AIPlay_Revive
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_13, POKEMON_FLUTE, AIDecide_PokemonFlute, AIPlay_PokemonFlute
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_05, CLEFAIRY_DOLL, AIDecide_ClefairyDollOrMysteriousFossil, AIPlay_ClefairyDollOrMysteriousFossil
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_05, MYSTERIOUS_FOSSIL, AIDecide_ClefairyDollOrMysteriousFossil, AIPlay_ClefairyDollOrMysteriousFossil
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_02, POKE_BALL, AIDecide_Pokeball, AIPlay_Pokeball
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_02, COMPUTER_SEARCH, AIDecide_ComputerSearch, AIPlay_ComputerSearch
+ unknown_data_20000 AI_TRAINER_CARD_PHASE_02, POKEMON_TRADER, AIDecide_PokemonTrader, AIPlay_PokemonTrader
db $ff
_AIProcessHandTrainerCards: ; 200e5 (8:40e5)
@@ -7133,5 +7133,6 @@ Func_22bad: ; 22bad (8:6bad)
ret
; 0x22bc6
-Func_22bc6 ; 22bc6 (8:6bc6)
- INCROM $22bc6, $24000
+rept $143a
+ db $ff
+endr
diff --git a/src/wram.asm b/src/wram.asm
index ac4648e..7ff0dfe 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -1378,7 +1378,7 @@ wce17:: ; ce17
wce18:: ; ce18
ds $1
-; paramaters output by AI Trainer card logic routines
+; parameters output by AI Trainer card logic routines
; (e.g. what Pokemon in Play Area to use card on, etc)
wAITrainerCardParameter:: ; ce19
ds $1