summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2013-05-05 19:56:17 -0400
committeryenatch <yenatch@gmail.com>2013-05-05 19:56:17 -0400
commit3beab7dd925fc9a25670acde6076cd146a3f9a2c (patch)
tree81b1e3b9a86b354e7afc60bf59b237f746501607 /main.asm
parentc82216441a68d5598a213a27ed63ee12866057b4 (diff)
move ai scoring out of main.asm
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm3139
1 files changed, 3 insertions, 3136 deletions
diff --git a/main.asm b/main.asm
index 51c98f510..f246de4f0 100644
--- a/main.asm
+++ b/main.asm
@@ -7135,3141 +7135,8 @@ SECTION "bankE",DATA,BANK[$E]
INCBIN "baserom.gbc", $38000, $38591 - $38000
-Function_0x38591: ; 38591
- ld hl, Buffer1 - 1
- ld de, EnemyMonMoves
- ld b, EnemyMonMovesEnd - EnemyMonMoves + 1
-.asm_38599
- dec b
- ret z
-
- inc hl
- ld a, [de]
- and a
- ret z
-
- inc de
- call $5508
-
- ld a, [EnemyMoveEffect]
- ld c, a
-
- push hl
- push de
- push bc
- ld a, $b
- ld hl, $441a
- rst FarCall
- pop bc
- pop de
- pop hl
- jr nz, .asm_385d6
-
- ld a, [EnemyMoveEffect]
- push hl
- push de
- push bc
- ld hl, .table_385db
- ld de, 1
- call IsInArray
-
- pop bc
- pop de
- pop hl
- jr nc, .asm_38599
-
- ld a, [BattleMonStatus]
- and a
- jr nz, .asm_385d6
-
- ld a, [PlayerScreens]
- bit 2, a
- jr z, .asm_38599
-
-.asm_385d6
- call $5503
-
- jr .asm_38599
-; 385db
-
-.table_385db
- db EFFECT_SLEEP
- db EFFECT_TOXIC
- db EFFECT_POISON
- db EFFECT_PARALYZE
- db $ff
-; 385e0
-
-
-
-Function_0x385e0: ; 385e0
- ld hl, Buffer1 - 1
- ld de, EnemyMonMoves
- ld b, EnemyMonMovesEnd - EnemyMonMoves + 1
-.next
- dec b
- ret z
-
- inc hl
- ld a, [de]
- and a
- ret z
-
- inc de
- call $5508
-
- ld a, [EnemyMoveEffect]
-
- cp EFFECT_ATTACK_UP
- jr c, .next
- cp EFFECT_EVASION_UP + 1
- jr c, .statup
-
-; cp EFFECT_ATTACK_DOWN - 1
- jr z, .next
- cp EFFECT_EVASION_DOWN + 1
- jr c, .statdown
-
- cp EFFECT_ATTACK_UP_2
- jr c, .next
- cp EFFECT_EVASION_UP_2 + 1
- jr c, .statup
-
-; cp EFFECT_ATTACK_DOWN_2 - 1
- jr z, .next
- cp EFFECT_EVASION_DOWN_2 + 1
- jr c, .statdown
-
- jr .next
-
-.statup
- ld a, [EnemyTurnsTaken]
- and a
- jr nz, .asm_3862a
-
- jr .asm_38621
-
-.statdown
- ld a, [PlayerTurnsTaken]
- and a
- jr nz, .asm_3862a
-
-.asm_38621
- call $5527
-
- jr c, .next
-
- dec [hl]
- dec [hl]
- jr .next
-
-.asm_3862a
- call RNG
-
- cp $1e
- jr c, .next
-
- inc [hl]
- inc [hl]
- jr .next
-; 38635
-
-
-
-Function_0x38635: ; 38635
- ld hl, Buffer1 - 1
- ld de, EnemyMonMoves
- ld b, EnemyMonMovesEnd - EnemyMonMoves + 1
-.asm_3863d
- dec b
- ret z
-
- inc hl
- ld a, [de]
- and a
- ret z
-
- inc de
- call $5508
-
- push hl
- push bc
- push de
- ld a, 1
- ld [hBattleTurn], a
- ld hl, $47c8
- ld a, $d
- rst FarCall
-
- pop de
- pop bc
- pop hl
- ld a, [$d265]
- and a
- jr z, .asm_3869d
-
- cp $a
- jr z, .asm_3863d
-
- jr c, .asm_3866c
-
- ld a, [EnemyMovePower]
- and a
- jr z, .asm_3863d
-
- dec [hl]
- jr .asm_3863d
-
-.asm_3866c
- push hl
- push de
- push bc
- ld a, [EnemyMoveType]
- ld d, a
- ld hl, EnemyMonMoves
- ld b, EnemyMonMovesEnd - EnemyMonMoves + 1
- ld c, 0
-.asm_3867a
- dec b
- jr z, .asm_38693
-
- ld a, [hli]
- and a
- jr z, .asm_38693
-
- call $5508
-
- ld a, [EnemyMoveType]
- cp d
- jr z, .asm_3867a
-
- ld a, [EnemyMovePower]
- and a
- jr nz, .asm_38692
-
- jr .asm_3867a
-
-.asm_38692
- ld c, a
-.asm_38693
- ld a, c
- pop bc
- pop de
- pop hl
- and a
- jr z, .asm_3863d
-
- inc [hl]
- jr .asm_3863d
-
-.asm_3869d
- call $5503
-
- jr .asm_3863d
-; 386a2
-
-
-
-Function_0x386a2: ; 386a2
- ld hl, Buffer1 - 1
- ld de, EnemyMonMoves
- ld b, EnemyMonMovesEnd - EnemyMonMoves + 1
-.asm_386aa
- dec b
- ret z
-
- inc hl
- ld a, [de]
- and a
- ret z
-
- inc de
- call $5508
-
- ld a, [EnemyMovePower]
- and a
- jr nz, .asm_386aa
-
- inc [hl]
- inc [hl]
- jr .asm_386aa
-; 386be
-
-
-
-Function_0x386be: ; 386be
- ld hl, Buffer1
- ld de, EnemyMonMoves
- ld b, EnemyMonMovesEnd - EnemyMonMoves + 1
-.asm_386c6
- dec b
- ret z
-
- ld a, [de]
- inc de
- and a
- ret z
-
- push de
- push bc
- push hl
- call $5508
-
- ld a, [EnemyMoveEffect]
- ld hl, .table_386f2
- ld de, 3
- call IsInArray
-
- inc hl
- jr nc, .asm_386ec
-
- ld a, [hli]
- ld e, a
- ld d, [hl]
- pop hl
- push hl
- ld bc, .asm_386ec
- push bc
- push de
- ret
-
-.asm_386ec
- pop hl
- pop bc
- pop de
- inc hl
- jr .asm_386c6
-; 386f2
-
-.table_386f2 ; 386f2
- dbw EFFECT_SLEEP, AIScoring_Sleep
- dbw EFFECT_LEECH_HIT, AIScoring_LeechHit
- dbw EFFECT_EXPLOSION, AIScoring_Explosion
- dbw EFFECT_DREAM_EATER, AIScoring_DreamEater
- dbw EFFECT_MIRROR_MOVE, AIScoring_MirrorMove
- dbw EFFECT_EVASION_UP, AIScoring_EvasionUp
- dbw EFFECT_ALWAYS_HIT, AIScoring_AlwaysHit
- dbw EFFECT_ACCURACY_DOWN, AIScoring_AccuracyDown
- dbw EFFECT_HAZE, AIScoring_Haze
- dbw EFFECT_BIDE, AIScoring_Bide
- dbw EFFECT_WHIRLWIND, AIScoring_Whirlwind
- dbw EFFECT_HEAL, AIScoring_Heal
- dbw EFFECT_TOXIC, AIScoring_Toxic
- dbw EFFECT_LIGHT_SCREEN, AIScoring_LightScreen
- dbw EFFECT_OHKO, AIScoring_Ohko
- dbw EFFECT_RAZOR_WIND, AIScoring_RazorWind
- dbw EFFECT_SUPER_FANG, AIScoring_SuperFang
- dbw EFFECT_BIND, AIScoring_Bind
- dbw EFFECT_UNUSED_2B, AIScoring_Unused2B
- dbw EFFECT_CONFUSE, AIScoring_Confuse
- dbw EFFECT_SP_DEFENSE_UP_2, AIScoring_SpDefenseUp2
- dbw EFFECT_REFLECT, AIScoring_Reflect
- dbw EFFECT_PARALYZE, AIScoring_Paralyze
- dbw EFFECT_SPEED_DOWN_HIT, AIScoring_SpeedDownHit
- dbw EFFECT_SUBSTITUTE, AIScoring_Substitute
- dbw EFFECT_HYPER_BEAM, AIScoring_HyperBeam
- dbw EFFECT_RAGE, AIScoring_Rage
- dbw EFFECT_MIMIC, AIScoring_Mimic
- dbw EFFECT_LEECH_SEED, AIScoring_LeechSeed
- dbw EFFECT_DISABLE, AIScoring_Disable
- dbw EFFECT_COUNTER, AIScoring_Counter
- dbw EFFECT_ENCORE, AIScoring_Encore
- dbw EFFECT_PAIN_SPLIT, AIScoring_PainSplit
- dbw EFFECT_SNORE, AIScoring_Snore
- dbw EFFECT_CONVERSION2, AIScoring_Conversion2
- dbw EFFECT_LOCK_ON, AIScoring_LockOn
- dbw EFFECT_DEFROST_OPPONENT, AIScoring_DefrostOpponent
- dbw EFFECT_SLEEP_TALK, AIScoring_SleepTalk
- dbw EFFECT_DESTINY_BOND, AIScoring_DestinyBond
- dbw EFFECT_REVERSAL, AIScoring_Reversal
- dbw EFFECT_SPITE, AIScoring_Spite
- dbw EFFECT_HEAL_BELL, AIScoring_HealBell
- dbw EFFECT_PRIORITY_HIT, AIScoring_PriorityHit
- dbw EFFECT_THIEF, AIScoring_Thief
- dbw EFFECT_MEAN_LOOK, AIScoring_MeanLook
- dbw EFFECT_NIGHTMARE, AIScoring_Nightmare
- dbw EFFECT_FLAME_WHEEL, AIScoring_FlameWheel
- dbw EFFECT_CURSE, AIScoring_Curse
- dbw EFFECT_PROTECT, AIScoring_Protect
- dbw EFFECT_FORESIGHT, AIScoring_Foresight
- dbw EFFECT_PERISH_SONG, AIScoring_PerishSong
- dbw EFFECT_SANDSTORM, AIScoring_Sandstorm
- dbw EFFECT_ENDURE, AIScoring_Endure
- dbw EFFECT_ROLLOUT, AIScoring_Rollout
- dbw EFFECT_SWAGGER, AIScoring_Swagger
- dbw EFFECT_FURY_CUTTER, AIScoring_FuryCutter
- dbw EFFECT_ATTRACT, AIScoring_Attract
- dbw EFFECT_SAFEGUARD, AIScoring_Safeguard
- dbw EFFECT_MAGNITUDE, AIScoring_Magnitude
- dbw EFFECT_BATON_PASS, AIScoring_BatonPass
- dbw EFFECT_PURSUIT, AIScoring_Pursuit
- dbw EFFECT_RAPID_SPIN, AIScoring_RapidSpin
- dbw EFFECT_MORNING_SUN, AIScoring_MorningSun
- dbw EFFECT_SYNTHESIS, AIScoring_Synthesis
- dbw EFFECT_MOONLIGHT, AIScoring_Moonlight
- dbw EFFECT_HIDDEN_POWER, AIScoring_HiddenPower
- dbw EFFECT_RAIN_DANCE, AIScoring_RainDance
- dbw EFFECT_SUNNY_DAY, AIScoring_SunnyDay
- dbw EFFECT_BELLY_DRUM, AIScoring_BellyDrum
- dbw EFFECT_PSYCH_UP, AIScoring_PsychUp
- dbw EFFECT_MIRROR_COAT, AIScoring_MirrorCoat
- dbw EFFECT_SKULL_BASH, AIScoring_SkullBash
- dbw EFFECT_TWISTER, AIScoring_Twister
- dbw EFFECT_EARTHQUAKE, AIScoring_Earthquake
- dbw EFFECT_FUTURE_SIGHT, AIScoring_FutureSight
- dbw EFFECT_GUST, AIScoring_Gust
- dbw EFFECT_STOMP, AIScoring_Stomp
- dbw EFFECT_SOLARBEAM, AIScoring_Solarbeam
- dbw EFFECT_THUNDER, AIScoring_Thunder
- dbw EFFECT_FLY, AIScoring_Fly
- db $ff
-; 387e3
-
-
-AIScoring_Sleep: ; 387e3
- ld b, $8
- call $52ca
-
- jr c, .asm_387f0
-
- ld b, $6b
- call $52ca
-
- ret nc
-
-.asm_387f0
- call $5527
-
- ret c
- dec [hl]
- dec [hl]
- ret
-; 387f7
-
-
-AIScoring_LeechHit: ; 387f7
- push hl
- ld a, $1
- ld [hBattleTurn], a
- ld hl, $47c8
- ld a, $d
- rst FarCall
-
- pop hl
- ld a, [$d265]
- cp $a
- jr c, .asm_38815
-
- ret z
- call $5251
-
- ret c
- call $5521
-
- ret c
- dec [hl]
- ret
-
-.asm_38815
- call RNG
-
- cp $64
- ret c
- inc [hl]
- ret
-; 3881d
-
-
-AIScoring_LockOn: ; 3881d
- ld a, [PlayerSubStatus5]
- bit 5, a
- jr nz, .asm_38882
-
- push hl
- call $5298
-
- jr nc, .asm_38877
-
- call $5281
-
- jr c, .asm_38834
-
- call $5233
-
- jr nc, .asm_38877
-
-
-.asm_38834
- ld a, [PlayerEvaLevel]
- cp $a
- jr nc, .asm_3887a
-
- cp $8
- jr nc, .asm_38875
-
- ld a, [EnemyAccLevel]
- cp $5
- jr c, .asm_3887a
-
- cp $7
- jr c, .asm_38875
-
- ld hl, EnemyMonMove1
- ld c, $5
-
-.asm_3884f
- dec c
- jr z, .asm_38877
-
- ld a, [hli]
- and a
- jr z, .asm_38877
-
- call $5508
-
- ld a, [EnemyMoveAccuracy]
- cp $b4
- jr nc, .asm_3884f
-
- ld a, $1
- ld [hBattleTurn], a
- push hl
- push bc
- ld a, $d
- ld hl, $47c8
- rst FarCall
-
- ld a, [$d265]
- cp $a
- pop bc
- pop hl
- jr c, .asm_3884f
-
-
-.asm_38875
- pop hl
- ret
-
-.asm_38877
- pop hl
- inc [hl]
- ret
-
-.asm_3887a
- pop hl
- call $5527
-
- ret c
- dec [hl]
- dec [hl]
- ret
-
-.asm_38882
- push hl
- ld hl, $d1e9
- ld de, EnemyMonMove1
- ld c, $5
-
-.asm_3888b
- inc hl
- dec c
- jr z, .asm_388a2
-
- ld a, [de]
- and a
- jr z, .asm_388a2
-
- inc de
- call $5508
-
- ld a, [EnemyMoveAccuracy]
- cp $b4
- jr nc, .asm_3888b
-
- dec [hl]
- dec [hl]
- jr .asm_3888b
-
-
-.asm_388a2
- pop hl
- jp $5503
-
-; 388a6
-
-
-AIScoring_Explosion: ; 388a6
- push hl
- ld a, $d
- ld hl, $49f4
- rst FarCall
-
- pop hl
- jr nc, .asm_388b7
-
- push hl
- call $4e2e
-
- pop hl
- jr nz, .asm_388c6
-
-
-.asm_388b7
- call $5281
-
- jr c, .asm_388c6
-
- call $5298
-
- ret nc
- call RNG
-
- cp $14
- ret c
-
-.asm_388c6
- inc [hl]
- inc [hl]
- inc [hl]
- ret
-; 388ca
-
-
-AIScoring_DreamEater: ; 388ca
- call RNG
-
- cp $19
- ret c
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-; 388d4
-
-
-AIScoring_EvasionUp: ; 388d4
- ld a, [EnemyEvaLevel]
- cp $d
- jp nc, $5503
-
- call $5251
-
- jr nc, .asm_388f2
-
- ld a, [PlayerSubStatus5]
- bit 0, a
- jr nz, .asm_388ef
-
- call RNG
-
- cp $b2
- jr nc, .asm_38911
-
-
-.asm_388ef
- dec [hl]
- dec [hl]
- ret
-
-.asm_388f2
- call $5298
-
- jr nc, .asm_3890f
-
- call RNG
-
- cp $a
- jr c, .asm_388ef
-
- call $5281
-
- jr nc, .asm_3890a
-
- call $5521
-
- jr c, .asm_388ef
-
- jr .asm_38911
-
-
-.asm_3890a
- call $5527
-
- jr c, .asm_38911
-
-
-.asm_3890f
- inc [hl]
- inc [hl]
-
-.asm_38911
- ld a, [PlayerSubStatus5]
- bit 0, a
- jr nz, .asm_38938
-
- ld a, [PlayerSubStatus4]
- bit 7, a
- jr nz, .asm_38941
-
- ld a, [EnemyEvaLevel]
- ld b, a
- ld a, [PlayerAccLevel]
- cp b
- jr c, .asm_38936
-
- ld a, [PlayerFuryCutterCount]
- and a
- jr nz, .asm_388ef
-
- ld a, [PlayerSubStatus1]
- bit 6, a
- jr nz, .asm_388ef
-
-
-.asm_38936
- inc [hl]
- ret
-
-.asm_38938
- call RNG
-
- cp $50
- ret c
- dec [hl]
- dec [hl]
- ret
-
-.asm_38941
- call $5527
-
- ret c
- dec [hl]
- ret
-; 38947
-
-
-AIScoring_AlwaysHit: ; 38947
- ld a, [EnemyAccLevel]
- cp $5
- jr c, .asm_38954
-
- ld a, [PlayerEvaLevel]
- cp $a
- ret c
-
-.asm_38954
- call $5521
-
- ret c
- dec [hl]
- dec [hl]
- ret
-; 3895b
-
-
-AIScoring_MirrorMove: ; 3895b
- ld a, [LastEnemyCounterMove]
- and a
- jr nz, .asm_38968
-
- call $5233
-
- ret nc
- jp $5503
-
-
-.asm_38968
- push hl
- ld hl, $5301
- ld de, $0001
- call IsInArray
-
- pop hl
- ret nc
- call $5527
-
- ret c
- dec [hl]
- call $5233
-
- ret nc
- call RNG
-
- cp $19
- ret c
- dec [hl]
- ret
-; 38985
-
-
-AIScoring_AccuracyDown: ; 38985
- call $5246
-
- jr nc, .asm_389a0
-
- call $5281
-
- jr nc, .asm_389a0
-
- ld a, [PlayerSubStatus5]
- bit 0, a
- jr nz, .asm_3899d
-
- call RNG
-
- cp $b2
- jr nc, .asm_389bf
-
-
-.asm_3899d
- dec [hl]
- dec [hl]
- ret
-
-.asm_389a0
- call $52b3
-
- jr nc, .asm_389bd
-
- call RNG
-
- cp $a
- jr c, .asm_3899d
-
- call $526e
-
- jr nc, .asm_389b8
-
- call $5521
-
- jr c, .asm_3899d
-
- jr .asm_389bf
-
-
-.asm_389b8
- call $5527
-
- jr c, .asm_389bf
-
-
-.asm_389bd
- inc [hl]
- inc [hl]
-
-.asm_389bf
- ld a, [PlayerSubStatus5]
- bit 0, a
- jr nz, .asm_389e6
-
- ld a, [PlayerSubStatus4]
- bit 7, a
- jr nz, .asm_389ef
-
- ld a, [EnemyEvaLevel]
- ld b, a
- ld a, [PlayerAccLevel]
- cp b
- jr c, .asm_389e4
-
- ld a, [PlayerFuryCutterCount]
- and a
- jr nz, .asm_3899d
-
- ld a, [PlayerSubStatus1]
- bit 6, a
- jr nz, .asm_3899d
-
-
-.asm_389e4
- inc [hl]
- ret
-
-.asm_389e6
- call RNG
-
- cp $50
- ret c
- dec [hl]
- dec [hl]
- ret
-
-.asm_389ef
- call $5527
-
- ret c
- dec [hl]
- ret
-; 389f5
-
-
-AIScoring_Haze: ; 389f5
- push hl
- ld hl, EnemyAtkLevel
- ld c, $8
-
-.asm_389fb
- dec c
- jr z, .asm_38a05
-
- ld a, [hli]
- cp $5
- jr c, .asm_38a12
-
- jr .asm_389fb
-
-
-.asm_38a05
- ld hl, PlayerAtkLevel
- ld c, $8
-
-.asm_38a0a
- dec c
- jr z, .asm_38a1b
-
- ld a, [hli]
- cp $a
- jr c, .asm_38a0a
-
-
-.asm_38a12
- pop hl
- call RNG
-
- cp $28
- ret c
- dec [hl]
- ret
-
-.asm_38a1b
- pop hl
- inc [hl]
- ret
-; 38a1e
-
-
-AIScoring_Bide: ; 38a1e
- call $5251
-
- ret c
- call RNG
-
- cp $19
- ret c
- inc [hl]
- ret
-; 38a2a
-
-
-AIScoring_Whirlwind: ; 38a2a
- push hl
- ld hl, $484e
- ld a, $d
- rst FarCall
-
- ld a, [$c716]
- cp $a
- pop hl
- ret c
- inc [hl]
- ret
-; 38a3a
-
-
-AIScoring_Heal:
-AIScoring_MorningSun:
-AIScoring_Synthesis:
-AIScoring_Moonlight: ; 38a3a
- call $5298
-
- jr nc, .asm_38a45
-
- call $5281
-
- ret nc
- inc [hl]
- ret
-
-.asm_38a45
- call RNG
-
- cp $19
- ret c
- dec [hl]
- dec [hl]
- ret
-; 38a4e
-
-
-AIScoring_Toxic:
-AIScoring_LeechSeed: ; 38a4e
- call $526e
-
- ret c
- inc [hl]
- ret
-; 38a54
-
-
-AIScoring_LightScreen:
-AIScoring_Reflect: ; 38a54
- call $5251
-
- ret c
- call RNG
-
- cp $14
- ret c
- inc [hl]
- ret
-; 38a60
-
-
-AIScoring_Ohko: ; 38a60
- ld a, [BattleMonLevel]
- ld b, a
- ld a, [EnemyMonLevel]
- cp b
- jp c, $5503
-
- call $526e
-
- ret c
- inc [hl]
- ret
-; 38a71
-
-
-AIScoring_Bind: ; 38a71
- ld a, [$c730]
- and a
- jr nz, .asm_38a8b
-
- ld a, [PlayerSubStatus5]
- bit 0, a
- jr nz, .asm_38a91
-
- ld a, [PlayerSubStatus1]
- and $c9
- jr nz, .asm_38a91
-
- ld a, [PlayerTurnsTaken]
- and a
- jr z, .asm_38a91
-
-
-.asm_38a8b
- call $5527
-
- ret c
- inc [hl]
- ret
-
-.asm_38a91
- call $5298
-
- ret nc
- call $5527
-
- ret c
- dec [hl]
- dec [hl]
- ret
-; 38a9c
-
-
-AIScoring_RazorWind:
-AIScoring_Unused2B: ; 38a9c
- ld a, [EnemySubStatus1]
- bit 4, a
- jr z, .asm_38aaa
-
- ld a, [EnemyPerishCount]
- cp $3
- jr c, .asm_38ad3
-
-
-.asm_38aaa
- push hl
- ld hl, PlayerUsedMoves
- ld c, $4
-
-.asm_38ab0
- ld a, [hli]
- and a
- jr z, .asm_38ac1
-
- call $5508
-
- ld a, [EnemyMoveEffect]
- cp $6f
- jr z, .asm_38ad5
-
- dec c
- jr nz, .asm_38ab0
-
-
-.asm_38ac1
- pop hl
- ld a, [EnemySubStatus3]
- bit 7, a
- jr nz, .asm_38acd
-
- call $5281
-
- ret c
-
-.asm_38acd
- call RNG
-
- cp $c8
- ret c
-
-.asm_38ad3
- inc [hl]
- ret
-
-.asm_38ad5
- pop hl
- ld a, [hl]
- add $6
- ld [hl], a
- ret
-; 38adb
-
-
-AIScoring_Confuse: ; 38adb
- call $526e
-
- ret c
- call RNG
-
- cp $19
- jr c, .asm_38ae7
-
- inc [hl]
-
-.asm_38ae7
- call $52b3
-
- ret c
- inc [hl]
- ret
-; 38aed
-
-
-AIScoring_SpDefenseUp2: ; 38aed
- call $5281
-
- jr nc, .asm_38b10
-
- ld a, [EnemySDefLevel]
- cp $b
- jr nc, .asm_38b10
-
- cp $9
- ret nc
- ld a, [BattleMonType1]
- cp $14
- jr nc, .asm_38b09
-
- ld a, [BattleMonType2]
- cp $14
- ret c
-
-.asm_38b09
- call $5521
-
- ret c
- dec [hl]
- dec [hl]
- ret
-
-.asm_38b10
- inc [hl]
- ret
-; 38b12
-
-
-AIScoring_Fly: ; 38b12
- ld a, [PlayerSubStatus3]
- and $60
- ret z
- call $5233
-
- ret nc
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-; 38b20
-
-
-AIScoring_SuperFang: ; 38b20
- call $52b3
-
- ret c
- inc [hl]
- ret
-; 38b26
-
-
-AIScoring_Paralyze: ; 38b26
- call $52b3
-
- jr nc, .asm_38b3a
-
- call $5233
-
- ret c
- call $5298
-
- ret nc
- call $5521
-
- ret c
- dec [hl]
- dec [hl]
- ret
-
-.asm_38b3a
- call $5527
-
- ret c
- inc [hl]
- ret
-; 38b40
-
-
-AIScoring_SpeedDownHit: ; 38b40
- ld a, [EnemyMoveAnimation]
- cp $c4
- ret nz
- call $5298
-
- ret nc
- ld a, [PlayerTurnsTaken]
- and a
- ret nz
- call $5233
-
- ret c
- call RNG
-
- cp $1e
- ret c
- dec [hl]
- dec [hl]
- ret
-; 38b5c
-
-
-AIScoring_Substitute: ; 38b5c
- call $5281
-
- ret c
- jp $5503
-
-; 38b63
-
-
-AIScoring_HyperBeam: ; 38b63
- call $5281
-
- jr c, .asm_38b72
-
- call $5298
-
- ret c
- call $5527
-
- ret c
- dec [hl]
- ret
-
-.asm_38b72
- call RNG
-
- cp $28
- ret c
- inc [hl]
- call $5527
-
- ret c
- inc [hl]
- ret
-; 38b7f
-
-
-AIScoring_Rage: ; 38b7f
- ld a, [EnemySubStatus4]
- bit 6, a
- jr z, .asm_38b9b
-
- call $5527
-
- jr c, .asm_38b8c
-
- dec [hl]
-
-.asm_38b8c
- ld a, [$c72c]
- cp $2
- ret c
- dec [hl]
- ld a, [$c72c]
- cp $3
- ret c
- dec [hl]
- ret
-
-.asm_38b9b
- call $5281
-
- jr nc, .asm_38ba6
-
- call $5521
-
- ret nc
- dec [hl]
- ret
-
-.asm_38ba6
- inc [hl]
- ret
-; 38ba8
-
-
-AIScoring_Mimic: ; 38ba8
- ld a, [LastEnemyCounterMove]
- and a
- jr z, .asm_38be9
-
- call $5281
-
- jr nc, .asm_38bef
-
- push hl
- ld a, [LastEnemyCounterMove]
- call $5508
-
- ld a, $1
- ld [hBattleTurn], a
- ld hl, $47c8
- ld a, $d
- rst FarCall
-
- ld a, [$d265]
- cp $a
- pop hl
- jr c, .asm_38bef
-
- jr z, .asm_38bd4
-
- call $5527
-
- jr c, .asm_38bd4
-
- dec [hl]
-
-.asm_38bd4
- ld a, [LastEnemyCounterMove]
- push hl
- ld hl, $5301
- ld de, $0001
- call IsInArray
-
- pop hl
- ret nc
- call $5527
-
- ret c
- dec [hl]
- ret
-
-.asm_38be9
- call $5233
-
- jp c, $5503
-
-
-.asm_38bef
- inc [hl]
- ret
-; 38bf1
-
-
-AIScoring_Counter: ; 38bf1
- push hl
- ld hl, PlayerUsedMoves
- ld c, $4
- ld b, $0
-
-.asm_38bf9
- ld a, [hli]
- and a
- jr z, .asm_38c0e
-
- call $5508
-
- ld a, [EnemyMovePower]
- and a
- jr z, .asm_38c0e
-
- ld a, [EnemyMoveType]
- cp $14
- jr nc, .asm_38c0e
-
- inc b
-
-.asm_38c0e
- dec c
- jr nz, .asm_38bf9
-
- pop hl
- ld a, b
- and a
- jr z, .asm_38c39
-
- cp $3
- jr nc, .asm_38c30
-
- ld a, [LastEnemyCounterMove]
- and a
- jr z, .asm_38c38
-
- call $5508
-
- ld a, [EnemyMovePower]
- and a
- jr z, .asm_38c38
-
- ld a, [EnemyMoveType]
- cp $14
- jr nc, .asm_38c38
-
-
-.asm_38c30
- call RNG
-
- cp $64
- jr c, .asm_38c38
-
- dec [hl]
-
-.asm_38c38
- ret
-
-.asm_38c39
- inc [hl]
- ret
-; 38c3b
-
-
-AIScoring_Encore: ; 38c3b
- call $5233
-
- jr nc, .asm_38c81
-
- ld a, [LastPlayerMove]
- and a
- jp z, $5503
-
- call $5508
-
- ld a, [EnemyMovePower]
- and a
- jr z, .asm_38c68
-
- push hl
- ld a, [EnemyMoveType]
- ld hl, EnemyMonType1
- ld a, $41
- call Predef
-
- pop hl
- ld a, [$d265]
- cp $a
- jr nc, .asm_38c68
-
- and a
- ret nz
- jr .asm_38c78
-
-
-.asm_38c68
- push hl
- ld a, [LastEnemyCounterMove]
- ld hl, $4c85
- ld de, $0001
- call IsInArray
-
- pop hl
- jr nc, .asm_38c81
-
-
-.asm_38c78
- call RNG
-
- cp $46
- ret c
- dec [hl]
- dec [hl]
- ret
-
-.asm_38c81
- inc [hl]
- inc [hl]
- inc [hl]
- ret
-; 38c85
-
-
-
-INCBIN "baserom.gbc", $38c85, $38ca4 - $38c85
-
-
-
-AIScoring_PainSplit: ; 38ca4
- push hl
- ld hl, EnemyMonHPHi
- ld b, [hl]
- inc hl
- ld c, [hl]
- sla c
- rl b
- ld hl, $c63d
- ld a, [hld]
- cp c
- ld a, [hl]
- sbc b
- pop hl
- ret nc
- inc [hl]
- ret
-; 38cba
-
-
-AIScoring_Snore:
-AIScoring_SleepTalk: ; 38cba
- ld a, [EnemyMonStatus]
- and $7
- cp $1
- jr z, .asm_38cc7
-
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-
-.asm_38cc7
- inc [hl]
- inc [hl]
- inc [hl]
- ret
-; 38ccb
-
-
-AIScoring_DefrostOpponent: ; 38ccb
- ld a, [EnemyMonStatus]
- and $20
- ret z
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-; 38cd5
-
-
-AIScoring_Spite: ; 38cd5
- ld a, [LastEnemyCounterMove]
- and a
- jr nz, .asm_38ce7
-
- call $5233
-
- jp c, $5503
-
- call $5527
-
- ret c
- inc [hl]
- ret
-
-.asm_38ce7
- push hl
- ld b, a
- ld c, $4
- ld hl, BattleMonMove1
- ld de, BattleMonPPMove1
-
-.asm_38cf1
- ld a, [hli]
- cp b
- jr z, .asm_38cfb
-
- inc de
- dec c
- jr nz, .asm_38cf1
-
- pop hl
- ret
-
-.asm_38cfb
- pop hl
- ld a, [de]
- cp $6
- jr c, .asm_38d0d
-
- cp $f
- jr nc, .asm_38d0b
-
- call RNG
-
- cp $64
- ret nc
-
-.asm_38d0b
- inc [hl]
- ret
-
-.asm_38d0d
- call RNG
-
- cp $64
- ret c
- dec [hl]
- dec [hl]
- ret
-; 38d16
-
-
-
-INCBIN "baserom.gbc", $38d16, $38d19 - $38d16
-
-
-
-AIScoring_DestinyBond:
-AIScoring_Reversal:
-AIScoring_SkullBash: ; 38d19
- call $5298
-
- ret nc
- inc [hl]
- ret
-; 38d1f
-
-
-AIScoring_HealBell: ; 38d1f
- push hl
- ld a, [OTPartyCount]
- ld b, a
- ld c, $0
- ld hl, OTPartyMon1CurHP
- ld de, $0030
-
-.asm_38d2c
- push hl
- ld a, [hli]
- or [hl]
- jr z, .asm_38d37
-
- dec hl
- dec hl
- dec hl
- ld a, [hl]
- or c
- ld c, a
-
-.asm_38d37
- pop hl
- add hl, de
- dec b
- jr nz, .asm_38d2c
-
- pop hl
- ld a, c
- and a
- jr z, .asm_38d52
-
- ld a, [EnemyMonStatus]
- and a
- jr z, .asm_38d48
-
- dec [hl]
-
-.asm_38d48
- and $27
- ret z
- call $5527
-
- ret c
- dec [hl]
- dec [hl]
- ret
-
-.asm_38d52
- ld a, [EnemyMonStatus]
- and a
- ret nz
- jp $5503
-
-; 38d5a
-
-
-AIScoring_PriorityHit: ; 38d5a
- call $5233
-
- ret c
- ld a, [PlayerSubStatus3]
- and $60
- jp nz, $5503
-
- ld a, $1
- ld [hBattleTurn], a
- push hl
- ld hl, $53f6
- ld a, $d
- rst FarCall
-
- ld hl, $5612
- ld a, $d
- rst FarCall
-
- ld hl, $46d2
- ld a, $d
- rst FarCall
-
- pop hl
- ld a, [$d257]
- ld c, a
- ld a, [CurDamage]
- ld b, a
- ld a, [$c63d]
- cp c
- ld a, [BattleMonHP]
- sbc b
- ret nc
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-; 38d93
-
-
-AIScoring_Thief: ; 38d93
- ld a, [hl]
- add $1e
- ld [hl], a
- ret
-; 38d98
-
-
-AIScoring_Conversion2: ; 38d98
- ld a, [LastPlayerMove]
- and a
- jr nz, .asm_38dc9
-
- push hl
- dec a
- ld hl, $5afe
- ld bc, $0007
- call AddNTimes
-
- ld a, $10
- call GetFarByte
-
- ld [PlayerMoveType], a
- xor a
- ld [hBattleTurn], a
- ld hl, $47c8
- ld a, $d
- rst FarCall
-
- ld a, [$d265]
- cp $a
- pop hl
- jr c, .asm_38dc9
-
- ret z
- call $5527
-
- ret c
- dec [hl]
- ret
-
-.asm_38dc9
- call RNG
-
- cp $19
- ret c
- inc [hl]
- ret
-; 38dd1
-
-
-AIScoring_Disable: ; 38dd1
- call $5233
-
- jr nc, .asm_38df3
-
- push hl
- ld a, [LastEnemyCounterMove]
- ld hl, $5301
- ld de, $0001
- call IsInArray
-
- pop hl
- jr nc, .asm_38dee
-
- call RNG
-
- cp $64
- ret c
- dec [hl]
- ret
-
-.asm_38dee
- ld a, [EnemyMovePower]
- and a
- ret nz
-
-.asm_38df3
- call RNG
-
- cp $14
- ret c
- inc [hl]
- ret
-; 38dfb
-
-
-AIScoring_MeanLook: ; 38dfb
- call $5281
-
- jr nc, .asm_38e24
-
- push hl
- call $4e2e
-
- pop hl
- jp z, $5503
-
- ld a, [EnemySubStatus5]
- bit 0, a
- jr nz, .asm_38e26
-
- ld a, [PlayerSubStatus1]
- and $c9
- jr nz, .asm_38e26
-
- push hl
- ld hl, $484e
- ld a, $d
- rst FarCall
-
- ld a, [$c716]
- cp $b
- pop hl
- ret nc
-
-.asm_38e24
- inc [hl]
- ret
-
-.asm_38e26
- call $5521
-
- ret c
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-; 38e2e
-
-
-
-INCBIN "baserom.gbc", $38e2e, $38e4a - $38e2e
-
-
-
-AIScoring_Nightmare: ; 38e4a
- call $5527
-
- ret c
- dec [hl]
- ret
-; 38e50
-
-
-AIScoring_FlameWheel: ; 38e50
- ld a, [EnemyMonStatus]
- bit 5, a
- ret z
- dec [hl]
- dec [hl]
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-; 38e5c
-
-
-AIScoring_Curse: ; 38e5c
- ld a, [EnemyMonType1]
- cp $8
- jr z, .asm_38e95
-
- ld a, [EnemyMonType2]
- cp $8
- jr z, .asm_38e95
-
- call $5281
-
- jr nc, .asm_38e93
-
- ld a, [EnemyAtkLevel]
- cp $b
- jr nc, .asm_38e93
-
- cp $9
- ret nc
- ld a, [BattleMonType1]
- cp $8
- jr z, .asm_38e92
-
- cp $14
- ret nc
- ld a, [BattleMonType2]
- cp $14
- ret nc
- call $5521
-
- ret c
- dec [hl]
- dec [hl]
- ret
-
-.asm_38e90
- inc [hl]
- inc [hl]
-
-.asm_38e92
- inc [hl]
-
-.asm_38e93
- inc [hl]
- ret
-
-.asm_38e95
- ld a, [PlayerSubStatus1]
- bit 1, a
- jp nz, $5503
-
- push hl
- ld a, $d
- ld hl, $49f4
- rst FarCall
-
- pop hl
- jr nc, .asm_38eb0
-
- push hl
- call $4e2e
-
- pop hl
- jr nz, .asm_38e90
-
- jr .asm_38eb7
-
-
-.asm_38eb0
- push hl
- call $4e2e
-
- pop hl
- jr z, .asm_38ecb
-
-
-.asm_38eb7
- call $5298
-
- jp nc, $4e90
-
- call $5281
-
- jr nc, .asm_38e92
-
- call $5251
-
- ret nc
- ld a, [PlayerTurnsTaken]
- and a
- ret nz
-
-.asm_38ecb
- call $5527
-
- ret c
- dec [hl]
- dec [hl]
- ret
-; 38ed2
-
-
-AIScoring_Protect: ; 38ed2
- ld a, [$c681]
- and a
- jr nz, .asm_38f13
-
- ld a, [PlayerSubStatus5]
- bit 5, a
- jr nz, .asm_38f14
-
- ld a, [PlayerFuryCutterCount]
- cp $3
- jr nc, .asm_38f0d
-
- ld a, [PlayerSubStatus3]
- bit 4, a
- jr nz, .asm_38f0d
-
- ld a, [PlayerSubStatus5]
- bit 0, a
- jr nz, .asm_38f0d
-
- ld a, [PlayerSubStatus4]
- bit 7, a
- jr nz, .asm_38f0d
-
- ld a, [PlayerSubStatus1]
- bit 1, a
- jr nz, .asm_38f0d
-
- bit 6, a
- jr z, .asm_38f14
-
- ld a, [PlayerRolloutCount]
- cp $3
- jr c, .asm_38f14
-
-
-.asm_38f0d
- call $5521
-
- ret c
- dec [hl]
- ret
-
-.asm_38f13
- inc [hl]
-
-.asm_38f14
- call RNG
-
- cp $14
- ret c
- inc [hl]
- inc [hl]
- ret
-; 38f1d
-
-
-AIScoring_Foresight: ; 38f1d
- ld a, [EnemyAccLevel]
- cp $5
- jr c, .asm_38f41
-
- ld a, [PlayerEvaLevel]
- cp $a
- jr nc, .asm_38f41
-
- ld a, [BattleMonType1]
- cp $8
- jr z, .asm_38f41
-
- ld a, [BattleMonType2]
- cp $8
- jr z, .asm_38f41
-
- call RNG
-
- cp $14
- ret c
- inc [hl]
- ret
-
-.asm_38f41
- call RNG
-
- cp $64
- ret c
- dec [hl]
- dec [hl]
- ret
-; 38f4a
-
-
-AIScoring_PerishSong: ; 38f4a
- push hl
- ld hl, $49f4
- ld a, $d
- rst FarCall
-
- pop hl
- jr c, .asm_38f75
-
- ld a, [PlayerSubStatus5]
- bit 7, a
- jr nz, .asm_38f6f
-
- push hl
- ld hl, $484e
- ld a, $d
- rst FarCall
-
- ld a, [$c716]
- cp $a
- pop hl
- ret c
- call $5527
-
- ret c
- inc [hl]
- ret
-
-.asm_38f6f
- call $5527
-
- ret c
- dec [hl]
- ret
-
-.asm_38f75
- ld a, [hl]
- add $5
- ld [hl], a
- ret
-; 38f7a
-
-
-AIScoring_Sandstorm: ; 38f7a
- ld a, [BattleMonType1]
- push hl
- ld hl, $4fa8
- ld de, $0001
- call IsInArray
-
- pop hl
- jr c, .asm_38fa5
-
- ld a, [BattleMonType2]
- push hl
- ld hl, $4fa8
- ld de, $0001
- call IsInArray
-
- pop hl
- jr c, .asm_38fa5
-
- call $526e
-
- jr nc, .asm_38fa6
-
- call $5527
-
- ret c
- dec [hl]
- ret
-
-.asm_38fa5
- inc [hl]
-
-.asm_38fa6
- inc [hl]
- ret
-; 38fa8
-
-
-
-INCBIN "baserom.gbc", $38fa8, $38fac - $38fa8
-
-
-
-AIScoring_Endure: ; 38fac
- ld a, [$c681]
- and a
- jr nz, .asm_38fd8
-
- call $5251
-
- jr c, .asm_38fd8
-
- call $5298
-
- jr c, .asm_38fd9
-
- ld b, $63
- call $52ca
-
- jr nc, .asm_38fcb
-
- call $5521
-
- ret c
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-
-.asm_38fcb
- ld a, [EnemySubStatus5]
- bit 5, a
- ret z
- call $5527
-
- ret c
- dec [hl]
- dec [hl]
- ret
-
-.asm_38fd8
- inc [hl]
-
-.asm_38fd9
- inc [hl]
- ret
-; 38fdb
-
-
-AIScoring_FuryCutter: ; 38fdb
- ld a, [EnemyFuryCutterCount]
- and a
- jr z, AIScoring_Rollout
-
- dec [hl]
- cp $2
- jr c, AIScoring_Rollout
-
- dec [hl]
- dec [hl]
- cp $3
- jr c, AIScoring_Rollout
-
- dec [hl]
- dec [hl]
- dec [hl]
-
- ; fallthrough
-; 38fef
-
-
-AIScoring_Rollout: ; 38fef
- ld a, [EnemySubStatus1]
- bit 7, a
- jr nz, .asm_39020
-
- ld a, [EnemySubStatus3]
- bit 7, a
- jr nz, .asm_39020
-
- ld a, [EnemyMonStatus]
- bit 6, a
- jr nz, .asm_39020
-
- call $5298
-
- jr nc, .asm_39020
-
- ld a, [EnemyAccLevel]
- cp $7
- jr c, .asm_39020
-
- ld a, [PlayerEvaLevel]
- cp $8
- jr nc, .asm_39020
-
- call RNG
-
- cp $c8
- ret nc
- dec [hl]
- dec [hl]
- ret
-
-.asm_39020
- call $5521
-
- ret c
- inc [hl]
- ret
-; 39026
-
-
-AIScoring_Swagger:
-AIScoring_Attract: ; 39026
- ld a, [PlayerTurnsTaken]
- and a
- jr z, .asm_39032
-
- call $5521
-
- ret c
- inc [hl]
- ret
-
-.asm_39032
- call RNG
-
- cp $c8
- ret nc
- dec [hl]
- ret
-; 3903a
-
-
-AIScoring_Safeguard: ; 3903a
- call $526e
-
- ret c
- call $5521
-
- ret c
- inc [hl]
- ret
-; 39044
-
-
-AIScoring_Magnitude:
-AIScoring_Earthquake: ; 39044
- ld a, [LastEnemyCounterMove]
- cp $5b
- ret nz
- ld a, [PlayerSubStatus3]
- bit 5, a
- jr z, .asm_39058
-
- call $5233
-
- ret nc
- dec [hl]
- dec [hl]
- ret
-
-.asm_39058
- call $5233
-
- ret c
- call $5527
-
- ret c
- dec [hl]
- ret
-; 39062
-
-
-AIScoring_BatonPass: ; 39062
- push hl
- ld hl, $484e
- ld a, $d
- rst FarCall
-
- ld a, [$c716]
- cp $a
- pop hl
- ret c
- inc [hl]
- ret
-; 39072
-
-
-AIScoring_Pursuit: ; 39072
- call $52b3
-
- jr nc, .asm_3907d
-
- call $5521
-
- ret c
- inc [hl]
- ret
-
-.asm_3907d
- call $5527
-
- ret c
- dec [hl]
- dec [hl]
- ret
-; 39084
-
-
-AIScoring_RapidSpin: ; 39084
- ld a, [$c731]
- and a
- jr nz, .asm_39097
-
- ld a, [EnemySubStatus4]
- bit 7, a
- jr nz, .asm_39097
-
- ld a, [EnemyScreens]
- bit 0, a
- ret z
-
-.asm_39097
- call $5521
-
- ret c
- dec [hl]
- dec [hl]
- ret
-; 3909e
-
-
-AIScoring_HiddenPower: ; 3909e
- push hl
- ld a, $1
- ld [hBattleTurn], a
- ld hl, $7ced
- ld a, $3e
- rst FarCall
-
- ld hl, $47c8
- ld a, $d
- rst FarCall
-
- pop hl
- ld a, [$d265]
- cp $a
- jr c, .asm_390c9
-
- ld a, d
- cp $32
- jr c, .asm_390c9
-
- ld a, [$d265]
- cp $b
- jr nc, .asm_390c7
-
- ld a, d
- cp $46
- ret c
-
-.asm_390c7
- dec [hl]
- ret
-
-.asm_390c9
- inc [hl]
- ret
-; 390cb
-
-
-AIScoring_RainDance: ; 390cb
- ld a, [BattleMonType1]
- cp $15
- jr z, Function_0x3911e
-
- cp $14
- jr z, Function_0x39122
-
- ld a, [BattleMonType2]
- cp $15
- jr z, Function_0x3911e
-
- cp $14
- jr z, Function_0x39122
-
- push hl
- ld hl, $50e7
- jr Function_0x3910d
-; 390e7
-
-
-
-INCBIN "baserom.gbc", $390e7, $390f3 - $390e7
-
-
-
-AIScoring_SunnyDay: ; 390f3
- ld a, [BattleMonType1]
- cp $14
- jr z, Function_0x3911e
-
- cp $15
- jr z, Function_0x39122
-
- ld a, [BattleMonType2]
- cp $14
- jr z, Function_0x3911e
-
- cp $15
- jr z, Function_0x39122
-
- push hl
- ld hl, $5134
-
- ; fallthrough
-; 3910d
-
-
-Function_0x3910d: ; 3910d
- call $52e6
-
- pop hl
- jr nc, Function_0x3911e
-
- call $526e
-
- jr nc, Function_0x3911e
-
- call $5527
-
- ret c
- dec [hl]
- ret
-
-Function_0x3911e: ; 3911e
- inc [hl]
- inc [hl]
- inc [hl]
- ret
-
-Function_0x39122: ; 39122
- call $526e
-
- ret nc
- ld a, [PlayerTurnsTaken]
- and a
- jr z, .asm_39131
-
- ld a, [EnemyTurnsTaken]
- and a
- ret nz
-
-.asm_39131
- dec [hl]
- dec [hl]
- ret
-; 39134
-
-
-
-INCBIN "baserom.gbc", $39134, $3913d - $39134
-
-
-
-AIScoring_BellyDrum: ; 3913d
- ld a, [EnemyAtkLevel]
- cp $a
- jr nc, .asm_3914d
-
- call $5251
-
- ret c
- inc [hl]
- call $5281
-
- ret c
-
-.asm_3914d
- ld a, [hl]
- add $5
- ld [hl], a
- ret
-; 39152
-
-
-AIScoring_PsychUp: ; 39152
- push hl
- ld hl, EnemyAtkLevel
- ld b, $8
- ld c, $64
-
-.asm_3915a
- ld a, [hli]
- sub $7
- add c
- ld c, a
- dec b
- jr nz, .asm_3915a
-
- ld hl, PlayerAtkLevel
- ld b, $8
- ld d, $64
-
-.asm_39169
- ld a, [hli]
- sub $7
- add d
- ld d, a
- dec b
- jr nz, .asm_39169
-
- ld a, c
- sub d
- pop hl
- jr nc, .asm_39188
-
- ld a, [PlayerAccLevel]
- cp $6
- ret c
- ld a, [EnemyEvaLevel]
- cp $8
- ret nc
- call $5521
-
- ret c
- dec [hl]
- ret
-
-.asm_39188
- inc [hl]
- inc [hl]
- ret
-; 3918b
-
-
-AIScoring_MirrorCoat: ; 3918b
- push hl
- ld hl, PlayerUsedMoves
- ld c, $4
- ld b, $0
-
-.asm_39193
- ld a, [hli]
- and a
- jr z, .asm_391a8
-
- call $5508
-
- ld a, [EnemyMovePower]
- and a
- jr z, .asm_391a8
-
- ld a, [EnemyMoveType]
- cp $14
- jr c, .asm_391a8
-
- inc b
-
-.asm_391a8
- dec c
- jr nz, .asm_39193
-
- pop hl
- ld a, b
- and a
- jr z, .asm_391d3
-
- cp $3
- jr nc, .asm_391ca
-
- ld a, [LastEnemyCounterMove]
- and a
- jr z, .asm_391d2
-
- call $5508
-
- ld a, [EnemyMovePower]
- and a
- jr z, .asm_391d2
-
- ld a, [EnemyMoveType]
- cp $14
- jr c, .asm_391d2
-
-
-.asm_391ca
- call RNG
-
- cp $64
- jr c, .asm_391d2
-
- dec [hl]
-
-.asm_391d2
- ret
-
-.asm_391d3
- inc [hl]
- ret
-; 391d5
-
-
-AIScoring_Twister:
-AIScoring_Gust: ; 391d5
- ld a, [LastEnemyCounterMove]
- cp $13
- ret nz
- ld a, [PlayerSubStatus3]
- bit 6, a
- jr z, .asm_391e9
-
- call $5233
-
- ret nc
- dec [hl]
- dec [hl]
- ret
-
-.asm_391e9
- call $5233
-
- ret c
- call $5527
-
- ret c
- dec [hl]
- ret
-; 391f3
-
-
-AIScoring_FutureSight: ; 391f3
- call $5233
-
- ret nc
- ld a, [PlayerSubStatus3]
- and $60
- ret z
- dec [hl]
- dec [hl]
- ret
-; 39200
-
-
-AIScoring_Stomp: ; 39200
- ld a, [$c6fe]
- and a
- ret z
- call $5521
-
- ret c
- dec [hl]
- ret
-; 3920b
-
-
-AIScoring_Solarbeam: ; 3920b
- ld a, [Weather]
- cp $2
- jr z, .asm_3921e
-
- cp $1
- ret nz
- call RNG
-
- cp $19
- ret c
- inc [hl]
- inc [hl]
- ret
-
-.asm_3921e
- call $5521
-
- ret c
- dec [hl]
- dec [hl]
- ret
-; 39225
-
-
-AIScoring_Thunder: ; 39225
- ld a, [Weather]
- cp $2
- ret nz
- call RNG
-
- cp $19
- ret c
- inc [hl]
- ret
-; 39233
-
-
-
-INCBIN "baserom.gbc", $39233, $39315 - $39233
-
-
-
-Function_0x39315: ; 39315
- call $5281
- ret c
-
- call $5298
- jr nc, .asm_39322
-
- call $5527
- ret c
-
-.asm_39322
- ld hl, Buffer1 - 1
- ld de, EnemyMonMoves
- ld c, EnemyMonMovesEnd - EnemyMonMoves + 1
-.asm_3932a
- inc hl
- dec c
- jr z, .asm_39347
-
- ld a, [de]
- inc de
- and a
- jr z, .asm_39347
-
- push hl
- push de
- push bc
- ld hl, .table_39348
- ld de, 1
- call IsInArray
-
- pop bc
- pop de
- pop hl
- jr nc, .asm_3932a
-
- inc [hl]
- jr .asm_3932a
-
-.asm_39347
- ret
-
-.table_39348
- db SWORDS_DANCE
- db TAIL_WHIP
- db LEER
- db GROWL
- db DISABLE
- db MIST
- db COUNTER
- db LEECH_SEED
- db GROWTH
- db STRING_SHOT
- db MEDITATE
- db AGILITY
- db RAGE
- db MIMIC
- db SCREECH
- db HARDEN
- db WITHDRAW
- db DEFENSE_CURL
- db BARRIER
- db LIGHT_SCREEN
- db HAZE
- db REFLECT
- db FOCUS_ENERGY
- db BIDE
- db AMNESIA
- db TRANSFORM
- db SPLASH
- db ACID_ARMOR
- db SHARPEN
- db CONVERSION
- db SUBSTITUTE
- db FLAME_WHEEL
- db $ff
-; 39369
-
-
-
-Function_0x39369: ; 39369
- ld hl, EnemyMonMoves
- ld bc, 0
- ld de, 0
-.asm_39372
- inc b
- ld a, b
- cp EnemyMonMovesEnd - EnemyMonMoves + 1
- jr z, .asm_393a8
-
- ld a, [hli]
- and a
- jr z, .asm_393a8
-
- push hl
- push de
- push bc
- call $5508
-
- ld a, [EnemyMovePower]
- and a
- jr z, .asm_393a3
-
- call $53e7
-
- pop bc
- pop de
- pop hl
- ld a, [CurDamage + 1]
- cp e
- ld a, [CurDamage]
- sbc d
- jr c, .asm_39372
-
- ld a, [CurDamage + 1]
- ld e, a
- ld a, [CurDamage]
- ld d, a
- ld c, b
- jr .asm_39372
-
-.asm_393a3
- pop bc
- pop de
- pop hl
- jr .asm_39372
-
-.asm_393a8
- ld a, c
- and a
- jr z, .asm_393e1
-
- ld hl, Buffer1 - 1
- ld de, EnemyMonMoves
- ld b, $0
-.asm_393b4
- inc b
- ld a, b
- cp EnemyMonMovesEnd - EnemyMonMoves + 1
- jr z, .asm_393e1
-
- cp c
- ld a, [de]
- inc de
- inc hl
- jr z, .asm_393b4
-
- call $5508
-
- ld a, [EnemyMovePower]
- cp $2
- jr c, .asm_393b4
-
- push hl
- push de
- push bc
- ld a, [EnemyMoveEffect]
- ld hl, $53e2
- ld de, 1
- call IsInArray
-
- pop bc
- pop de
- pop hl
- jr c, .asm_393b4
-
- inc [hl]
- jr .asm_393b4
-
-.asm_393e1
- ret
-
-; 393e2
-
-
-INCBIN "baserom.gbc", $393e2, $39418 - $393e2
-
-
-Function_0x39418: ; 39418
- ld a, [EnemyTurnsTaken]
- and a
- ret z
-
- ld hl, Buffer1 - 1
- ld de, EnemyMonMoves
- ld c, EnemyMonMovesEnd - EnemyMonMoves + 1
-.asm_39425
- inc hl
- dec c
- ret z
-
- ld a, [de]
- inc de
- and a
- ret z
-
- push hl
- push de
- push bc
- ld hl, .table_39446
- ld de, 1
- call IsInArray
-
- pop bc
- pop de
- pop hl
- jr nc, .asm_39425
-
- call RNG
- cp $e6
- ret nc
-
- inc [hl]
- jr .asm_39425
-
-.table_39446
- db MIST
- db LEECH_SEED
- db POISONPOWDER
- db STUN_SPORE
- db THUNDER_WAVE
- db FOCUS_ENERGY
- db BIDE
- db POISON_GAS
- db TRANSFORM
- db CONVERSION
- db SUBSTITUTE
- db SPIKES
- db $ff
-; 39453
-
-
-
-Function_0x39453: ; 39453
- ld hl, Buffer1 - 1
- ld de, EnemyMonMoves
- ld b, EnemyMonMovesEnd - EnemyMonMoves + 1
-.asm_3945b
- dec b
- ret z
-
- inc hl
- ld a, [de]
- and a
- ret z
-
- inc de
- call $5508
-
- ld a, [EnemyMoveEffect]
- cp EFFECT_TOXIC
- jr z, .asm_39480
- cp EFFECT_POISON
- jr z, .asm_39480
- cp EFFECT_SLEEP
- jr z, .asm_3948e
- cp EFFECT_PARALYZE
- jr z, .asm_3948e
-
- ld a, [EnemyMovePower]
- and a
- jr z, .asm_3945b
-
- jr .asm_3948e
-
-.asm_39480
- ld a, [BattleMonType1]
- cp POISON
- jr z, .asm_394a4
- ld a, [BattleMonType2]
- cp POISON
- jr z, .asm_394a4
-
-.asm_3948e
- push hl
- push bc
- push de
-
- ld a, 1
- ld [hBattleTurn], a
-
- ld hl, $47c8
- ld a, $d
- rst FarCall
-
- pop de
- pop bc
- pop hl
-
- ld a, [$d265]
- and a
- jr nz, .asm_3945b
-
-.asm_394a4
- call $5503
- jr .asm_3945b
-; 394a9
-
-
-
-Function_0x394a9: ; 394a9
- ld hl, Buffer1 - 1
- ld de, EnemyMonMoves
- ld c, EnemyMonMovesEnd - EnemyMonMoves + 1
-.asm_394b1
- inc hl
- dec c
- ret z
-
- ld a, [de]
- inc de
- and a
- ret z
-
- push de
- push bc
- push hl
- call $5508
-
- ld a, [EnemyMovePower]
- and a
- jr z, .asm_394fa
-
- ld a, [EnemyMoveEffect]
- ld de, 1
- ld hl, .table_394ff
- call IsInArray
- jr nc, .asm_394de
-
- call $5251
- jr c, .asm_394fa
-
- call RNG
- cp $c8
- jr c, .asm_394fa
-
-.asm_394de
- call $53e7
-
- ld a, [CurDamage + 1]
- ld e, a
- ld a, [CurDamage]
- ld d, a
- ld a, [BattleMonHP + 1]
- cp e
- ld a, [BattleMonHP]
- sbc d
- jr nc, .asm_394fa
-
- pop hl
- dec [hl]
- dec [hl]
- dec [hl]
- dec [hl]
- dec [hl]
- push hl
-.asm_394fa
- pop hl
- pop bc
- pop de
- jr .asm_394b1
-
-.table_394ff
- db EFFECT_EXPLOSION
- db EFFECT_OHKO
- db $ff
-; 39502
-
-
-
-Function_0x39502: ; 39502
- ret
-; 39503
-
-
-INCBIN "baserom.gbc", $39503, $39999 - $39503
+AIScoring: ; 38591
+INCLUDE "battle/ai/scoring.asm"
TrainerGroups: ; 0x39999
@@ -11569,7 +8436,7 @@ AIChooseMove: ; 440ce
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, $e ; bank
+ ld a, BANK(AIScoring)
call FarJpHl
jr .CheckLayer