summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorElectroDeoxys <ElectroDeoxys@gmail.com>2019-07-29 21:03:59 +0100
committerElectroDeoxys <ElectroDeoxys@gmail.com>2019-08-07 23:24:59 +0100
commitdb61293ce6344e03da2676df3d000101eda187f2 (patch)
tree7de7b94396899d988b98bbbc11a43c583283a8e0 /src
parent18ddc4a504514d310c6e9b8fa81b4eb67b4d6faf (diff)
Label wAIScore
Diffstat (limited to 'src')
-rw-r--r--src/engine/bank05.asm152
-rw-r--r--src/wram.asm5
2 files changed, 80 insertions, 77 deletions
diff --git a/src/engine/bank05.asm b/src/engine/bank05.asm
index 309a17d..64a15f1 100644
--- a/src/engine/bank05.asm
+++ b/src/engine/bank05.asm
@@ -109,13 +109,13 @@ CheckIfMoveKnocksOutDefendingCard: ; 140b5 (5:40b5)
INCROM $140c5, $140fe
-; adds wcdbe to a, and stores result in wcdbe
+; adds a to wAIScore
; if there's overflow, it's capped at $ff
; output:
-; a = a + wcdbe (capped at $ff)
-AddToWcdbe: ; 140fe (5:40fe)
+; a = a + wAIScore (capped at $ff)
+AddToAIScore: ; 140fe (5:40fe)
push hl
- ld hl, wcdbe
+ ld hl, wAIScore
add [hl]
jr nc, .no_cap
ld a, $ff
@@ -125,13 +125,13 @@ AddToWcdbe: ; 140fe (5:40fe)
ret
; 0x1410a
-; subs a from wcdbe, and stores result in wcdbe
+; subs a from wAIScore
; if there's underflow, it's capped at $00
-SubFromWcdbe: ; 1410a (5:410a)
+SubFromAIScore: ; 1410a (5:410a)
push hl
push de
ld e, a
- ld hl, wcdbe
+ ld hl, wAIScore
ld a, [hl]
or a
jr z, .done
@@ -1232,14 +1232,14 @@ Func_158b2: ; 158b2 (5:58b2)
ld [$cdd7], a
call StoreDefendingPokemonColorWRAndPrizeCards
ld a, 128 ; initial retreat score
- ld [wcdbe], a
+ ld [wAIScore], a
ld a, [$cdb4]
or a
jr z, .check_status
srl a
srl a
sla a
- call AddToWcdbe
+ call AddToAIScore
.check_status
ld a, DUELVARS_ARENA_CARD_STATUS
@@ -1249,14 +1249,14 @@ Func_158b2: ; 158b2 (5:58b2)
and DOUBLE_POISONED
jr z, .check_cnf ; no poison
ld a, 2
- call AddToWcdbe
+ call AddToAIScore
.check_cnf
ld a, [hl]
and CNF_SLP_PRZ
cp CONFUSED
jr nz, .check_ko_1
ld a, 1
- call AddToWcdbe
+ call AddToAIScore
.check_ko_1
xor a
@@ -1270,18 +1270,18 @@ Func_158b2: ; 158b2 (5:58b2)
.active_cant_use_move
ld a, 5
- call SubFromWcdbe
+ call SubFromAIScore
ld a, [wAIOpponentPrizeCount]
cp 2
jr nc, .active_cant_ko
ld a, 35
- call SubFromWcdbe
+ call SubFromAIScore
.active_cant_ko
call CheckIfDefendingPokemonCanKnockOut
jr nc, .defending_cant_ko
ld a, 2
- call AddToWcdbe
+ call AddToAIScore
call CheckIfNotABossDeckID
jr c, .check_resistance_1
@@ -1298,14 +1298,14 @@ Func_158b2: ; 158b2 (5:58b2)
cp 2
jr nc, .check_prize_count
ld a, 2
- call AddToWcdbe
+ call AddToAIScore
.check_prize_count
ld a, [wAIOpponentPrizeCount]
cp 2
jr nc, .check_resistance_1
ld a, 2
- call SubFromWcdbe
+ call SubFromAIScore
.check_resistance_1
call GetArenaCardColor
@@ -1315,11 +1315,11 @@ Func_158b2: ; 158b2 (5:58b2)
and b
jr z, .check_weakness_1
ld a, 1
- call AddToWcdbe
+ call AddToAIScore
; check bench for Pokémon that
; the defending card is not resistant to
-; if one is found, skip SubFromWcdbe
+; if one is found, skip SubFromAIScore
ld a, [wAIPlayerResistance]
ld b, a
ld a, DUELVARS_BENCH
@@ -1336,7 +1336,7 @@ Func_158b2: ; 158b2 (5:58b2)
jr .check_weakness_1
.exit_loop_resistance_1
ld a, 2
- call SubFromWcdbe
+ call SubFromAIScore
.check_weakness_1
ld a, [wAIPlayerColor]
@@ -1345,11 +1345,11 @@ Func_158b2: ; 158b2 (5:58b2)
and b
jr z, .check_resistance_2
ld a, 2
- call AddToWcdbe
+ call AddToAIScore
; check bench for Pokémon that
; is not weak to defending Pokémon
-; if one is found, skip SubFromWcdbe
+; if one is found, skip SubFromAIScore
ld a, [wAIPlayerColor]
ld b, a
ld a, DUELVARS_BENCH
@@ -1365,7 +1365,7 @@ Func_158b2: ; 158b2 (5:58b2)
jr .check_resistance_2
.exit_loop_weakness_1
ld a, 3
- call SubFromWcdbe
+ call SubFromAIScore
.check_resistance_2
ld a, [wAIPlayerColor]
@@ -1374,11 +1374,11 @@ Func_158b2: ; 158b2 (5:58b2)
and b
jr z, .check_weakness_2
ld a, 3
- call SubFromWcdbe
+ call SubFromAIScore
; check bench for Pokémon that
; is the defending Pokémon's weakness
-; if none is found, skip AddToWcdbe
+; if none is found, skip AddToAIScore
.check_weakness_2
ld a, [wAIPlayerWeakness]
ld b, a
@@ -1398,7 +1398,7 @@ Func_158b2: ; 158b2 (5:58b2)
and b
jr z, .loop_weakness_2
ld a, 2
- call AddToWcdbe
+ call AddToAIScore
push de
ld a, DUELVARS_ARENA_CARD
@@ -1414,7 +1414,7 @@ Func_158b2: ; 158b2 (5:58b2)
call CheckIfCanDamageDefendingPokemon
jr nc, .check_weakness_3
ld a, 10
- call AddToWcdbe
+ call AddToAIScore
jr .check_resistance_3
.check_weakness_3
@@ -1425,11 +1425,11 @@ Func_158b2: ; 158b2 (5:58b2)
and b
jr z, .check_resistance_3
ld a, 3
- call SubFromWcdbe
+ call SubFromAIScore
; check bench for Pokémon that
; is resistant to defending Pokémon
-; if none is found, skip AddToWcdbe
+; if none is found, skip AddToAIScore
.check_resistance_3
ld a, [wAIPlayerColor]
ld b, a
@@ -1444,11 +1444,11 @@ Func_158b2: ; 158b2 (5:58b2)
and b
jr z, .loop_resistance_2
ld a, 1
- call AddToWcdbe
+ call AddToAIScore
; check bench for Pokémon that
; is can KO defending Pokémon
-; if none is found, skipp AddToWcdbe
+; if none is found, skipp AddToAIScore
.check_ko_2
ld a, DUELVARS_BENCH
call GetTurnDuelistVariable
@@ -1476,7 +1476,7 @@ Func_158b2: ; 158b2 (5:58b2)
pop bc
pop hl
ld a, 2
- call AddToWcdbe
+ call AddToAIScore
ld a, [wAIOpponentPrizeCount]
cp 2
@@ -1493,7 +1493,7 @@ Func_158b2: ; 158b2 (5:58b2)
jp nc, .check_defending_id
.active_can_ko
ld a, 40
- call AddToWcdbe
+ call AddToAIScore
ld a, $01
ld [$cdd7], a
@@ -1537,14 +1537,14 @@ Func_158b2: ; 158b2 (5:58b2)
pop bc
pop hl
ld a, 5
- call AddToWcdbe
+ call AddToAIScore
ld a, $01
ld [$cdd7], a
-; subtract from wcdbe if retreat cost is larger than 2
+; subtract from wAIScore if retreat cost is larger than 2
; if it's fewer, check if any cards have at least half HP,
; are final evolutions and can use second move in the bench
-; and adds to wcdbe if the active Pokémon doesn't meet
+; and adds to wAIScore if the active Pokémon doesn't meet
; these conditions
.check_retreat_cost
xor a
@@ -1556,12 +1556,12 @@ Func_158b2: ; 158b2 (5:58b2)
jr nc, .three_or_more
; exactly two
ld a, 1
- call SubFromWcdbe
+ call SubFromAIScore
jr .one_or_none
.three_or_more
ld a, 2
- call SubFromWcdbe
+ call SubFromAIScore
.one_or_none
call CheckIfArenaCardIsAtHalfHPCanEvolveAndUseSecondMove
@@ -1569,11 +1569,11 @@ Func_158b2: ; 158b2 (5:58b2)
call CheckIfBenchCardsAreAtHalfHPCanEvolveAndUseSecondMove
cp 2
jr c, .check_defending_can_ko
- call AddToWcdbe
+ call AddToAIScore
; check bench for Pokémon that
; the defending Pokémon can't knock out
-; if none is found, skip SubFromWcdbe
+; if none is found, skip SubFromAIScore
.check_defending_can_ko
ld a, DUELVARS_BENCH
call GetTurnDuelistVariable
@@ -1604,7 +1604,7 @@ Func_158b2: ; 158b2 (5:58b2)
jr .check_active_id
.exit_loop_ko
ld a, 20
- call SubFromWcdbe
+ call SubFromAIScore
.check_active_id
ld a, DUELVARS_ARENA_CARD
@@ -1616,8 +1616,8 @@ Func_158b2: ; 158b2 (5:58b2)
cp CLEFAIRY_DOLL
jr z, .mysterious_fossil_or_clefairy_doll
-; if wcdbe is at least 131, set carry
- ld a, [wcdbe]
+; if wAIScore is at least 131, set carry
+ ld a, [wAIScore]
cp 131
jr nc, .set_carry
.no_carry
@@ -1698,46 +1698,46 @@ Func_15eae: ; 15eae (5:5eae)
; skip non-basic pokemon
ld a, $82
- ld [wcdbe], a
+ ld [wAIScore], a
call Func_161d5
ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY_AREA
call GetTurnDuelistVariable
cp $04
jr c, .asm_15ef2
ld a, $14
- call SubFromWcdbe
+ call SubFromAIScore
jr .asm_15ef7
.asm_15ef2
ld a, $32
- call AddToWcdbe
+ call AddToAIScore
.asm_15ef7
xor a
ldh [hTempPlayAreaLocation_ff9d], a
call CheckIfDefendingPokemonCanKnockOut
jr nc, .asm_15f04
ld a, $14
- call AddToWcdbe
+ call AddToAIScore
.asm_15f04
ld a, [wTempEvolutionCard]
call Func_163c9
call Func_1637b
jr nc, .asm_15f14
ld a, $14
- call AddToWcdbe
+ call AddToAIScore
.asm_15f14
ld a, [wTempEvolutionCard]
call Func_16422
jr nc, .asm_15f21
ld a, $14
- call AddToWcdbe
+ call AddToAIScore
.asm_15f21
ld a, [wTempEvolutionCard]
call Func_16451
jr nc, .asm_15f2e
ld a, $0a
- call AddToWcdbe
+ call AddToAIScore
.asm_15f2e
- ld a, [wcdbe]
+ ld a, [wAIScore]
cp $b4
jr c, .skip
ld a, [wTempEvolutionCard]
@@ -1801,11 +1801,13 @@ Func_15f4c: ; 15f4c (5:5f4c)
push bc
jp c, .end_bench_pokemon
+; store this Play Area location
+; and initialize the AI score
ld a, b
ld [wcdf1], a
ldh [hTempPlayAreaLocation_ff9d], a
ld a, 128
- ld [wcdbe], a
+ ld [wAIScore], a
call Func_16120
xor a
@@ -1847,21 +1849,21 @@ Func_15f4c: ; 15f4c (5:5f4c)
jr c, .asm_15ffa
.asm_15ff3
ld a, 5
- call AddToWcdbe
+ call AddToAIScore
jr .asm_16015
.asm_15ffa
ld a, [$cdf2]
or a
jr z, .asm_16015
ld a, 2
- call SubFromWcdbe
+ call SubFromAIScore
ld a, [wAlreadyPlayedEnergy]
or a
jr nz, .asm_16015
call Func_162c8
jr nc, .asm_16015
ld a, 7
- call AddToWcdbe
+ call AddToAIScore
.asm_16015
ld a, [$cdf2]
or a
@@ -1874,14 +1876,14 @@ Func_15f4c: ; 15f4c (5:5f4c)
call CheckIfCardCanUseSelectedMove
jr c, .asm_16032
ld a, 5
- call AddToWcdbe
+ call AddToAIScore
jr .asm_1603d
.asm_16032
ld a, [$cdf4]
or a
jr z, .asm_1603d
ld a, 20
- call SubFromWcdbe
+ call SubFromAIScore
.asm_1603d
ld a, [wcdf1]
or a
@@ -1891,13 +1893,13 @@ Func_15f4c: ; 15f4c (5:5f4c)
call CheckIfDefendingPokemonCanKnockOut
jr nc, .asm_16050
ld a, 5
- call SubFromWcdbe
+ call SubFromAIScore
.asm_16050
ld a, [wcdf1]
call Func_16270
jr c, .asm_1605d
ld a, 20
- call SubFromWcdbe
+ call SubFromAIScore
.asm_1605d
ld a, [wcdf1]
add DUELVARS_ARENA_CARD
@@ -1912,27 +1914,27 @@ Func_15f4c: ; 15f4c (5:5f4c)
call CheckIfDefendingPokemonCanKnockOut
jr nc, .asm_1607a
ld a, 5
- call AddToWcdbe
+ call AddToAIScore
.asm_1607a
ld a, DUELVARS_ARENA_CARD_STATUS
call GetTurnDuelistVariable
or a
jr z, .asm_16087
ld a, 4
- call AddToWcdbe
+ call AddToAIScore
.asm_16087
ld a, [wTempEvolutionCard]
call Func_16422
jr nc, .asm_16096
ld a, 2
- call AddToWcdbe
+ call AddToAIScore
jr .asm_160a3
.asm_16096
ld a, [wTempEvolutionCard]
call Func_16451
jr nc, .asm_160a3
ld a, 1
- call AddToWcdbe
+ call AddToAIScore
.asm_160a3
ld a, [wcdf1]
ld e, a
@@ -1942,7 +1944,7 @@ Func_15f4c: ; 15f4c (5:5f4c)
srl a
srl a
call Func_1576b
- call SubFromWcdbe
+ call SubFromAIScore
.asm_160b7
ld a, [wcdf1]
@@ -1956,11 +1958,11 @@ Func_15f4c: ; 15f4c (5:5f4c)
cp $02
jr nz, .pikachu_deck
ld a, 2
- call AddToWcdbe
+ call AddToAIScore
jr .pikachu_deck
.asm_160d7
ld a, 5
- call AddToWcdbe
+ call AddToAIScore
.pikachu_deck
ld a, [wOpponentDeckID]
@@ -1977,10 +1979,10 @@ Func_15f4c: ; 15f4c (5:5f4c)
jr nz, .decide_evolution
.pikachu
ld a, 3
- call SubFromWcdbe
+ call SubFromAIScore
.decide_evolution
- ld a, [wcdbe]
+ ld a, [wAIScore]
cp 133
jr c, .end_bench_pokemon
ld a, [wcdf1]
@@ -2043,11 +2045,11 @@ Func_16120: ; 16120 (5:6120)
cp $06
jr c, .asm_1615b
ld a, 3
- call AddToWcdbe
+ call AddToAIScore
ret
.asm_1615b
ld a, 10
- call SubFromWcdbe
+ call SubFromAIScore
ret
; check if Magikarp is not the active card
@@ -2061,7 +2063,7 @@ Func_16120: ; 16120 (5:6120)
cp 2
ret c
ld a, 3
- call AddToWcdbe
+ call AddToAIScore
ret
.invincible_ronald
@@ -2076,7 +2078,7 @@ Func_16120: ; 16120 (5:6120)
or a ; active card
ret z
ld a, 10
- call AddToWcdbe
+ call AddToAIScore
ret
.legendary_ronald
@@ -2114,7 +2116,7 @@ Func_16120: ; 16120 (5:6120)
jr c, .check_muk
.asm_161ab
ld a, 10
- call SubFromWcdbe
+ call SubFromAIScore
ret
.check_muk
@@ -2122,7 +2124,7 @@ Func_16120: ; 16120 (5:6120)
call CountPokemonIDInBothPlayAreas
jr c, .asm_161ab
ld a, 10
- call AddToWcdbe
+ call AddToAIScore
ret
; if Dragonair is active, check its damage in HP
@@ -2222,11 +2224,11 @@ Func_161d5: ; 161d5 (5:61d5)
; add
ld a, 70
- call AddToWcdbe
+ call AddToAIScore
ret
.subtract
ld a, 100
- call SubFromWcdbe
+ call SubFromAIScore
ret
.moltres
diff --git a/src/wram.asm b/src/wram.asm
index 1f251e9..51ecef3 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -1203,7 +1203,8 @@ wTempLoadedMoveEnergyNeededAmount:: ; cdb7
ds $6
-wcdbe:: ; cdbe
+; used for AI to score decisions for actions
+wAIScore:: ; cdbe
ds $1
ds $10
@@ -1246,7 +1247,7 @@ wcdf1:: ; cdf1
wcdf2:: ; cdf2
ds $1
-; used to temporarily store the evolution card
+; used to temporarily store the evolution card deck index
; while AI is deciding whether to evolve Pokémon
wTempEvolutionCard:: ; cdf3
ds $1