even more ai cleanup

This commit is contained in:
yenatch 2013-05-07 00:58:35 -04:00
parent 573db5b1b4
commit 3a7edf8b1a

View File

@ -391,19 +391,16 @@ AIScoring_Smart: ; 386be
AIScoring_Sleep: ; 387e3
ld b, $8
call Function_0x392ca
ld b, EFFECT_DREAM_EATER
call AIHasMove
jr c, .asm_387f0
ld b, $6b
call Function_0x392ca
ld b, EFFECT_NIGHTMARE
call AIHasMove
ret nc
.asm_387f0
call Function_0x39527
ret c
dec [hl]
dec [hl]
@ -413,15 +410,13 @@ AIScoring_Sleep: ; 387e3
AIScoring_LeechHit: ; 387f7
push hl
ld a, $1
ld a, 1
ld [hBattleTurn], a
ld hl, $47c8
ld a, $d
rst FarCall
callab Function0x347c8
pop hl
ld a, [$d265]
cp $a
cp 10 ; 1.0
jr c, .asm_38815
ret z
@ -564,31 +559,24 @@ AIScoring_LockOn: ; 3881d
AIScoring_Explosion: ; 388a6
push hl
ld a, $d
ld hl, $49f4
rst FarCall
callba Function0x349f4
pop hl
jr nc, .asm_388b7
push hl
call Function_0x38e2e
call AICheckLastPlayerMon
pop hl
jr nz, .asm_388c6
.asm_388b7
call AICheckEnemyHalfHP
jr c, .asm_388c6
call AICheckEnemyQuarterHP
ret nc
call RNG
cp $14
call RNG
cp 20
ret c
.asm_388c6
@ -916,9 +904,7 @@ AIScoring_Bide: ; 38a1e
AIScoring_Whirlwind: ; 38a2a
push hl
ld hl, $484e
ld a, $d
rst FarCall
callab Function0x3484e
ld a, [$c716]
cp $a
pop hl
@ -1171,7 +1157,7 @@ AIScoring_SpeedDownHit: ; 38b40
call AICompareSpeed
ret c
call RNG
cp $1e
cp 30
ret c
dec [hl]
dec [hl]
@ -1198,7 +1184,7 @@ AIScoring_HyperBeam: ; 38b63
.asm_38b72
call RNG
cp $28
cp 40
ret c
inc [hl]
call Function_0x39527
@ -1725,7 +1711,6 @@ AIScoring_Conversion2: ; 38d98
AIScoring_Disable: ; 38dd1
call AICompareSpeed
jr nc, .asm_38df3
push hl
@ -1738,8 +1723,7 @@ AIScoring_Disable: ; 38dd1
jr nc, .asm_38dee
call RNG
cp $64
cp 100
ret c
dec [hl]
ret
@ -1751,8 +1735,7 @@ AIScoring_Disable: ; 38dd1
.asm_38df3
call RNG
cp $14
cp 20
ret c
inc [hl]
ret
@ -1761,28 +1744,23 @@ AIScoring_Disable: ; 38dd1
AIScoring_MeanLook: ; 38dfb
call AICheckEnemyHalfHP
jr nc, .asm_38e24
push hl
call Function_0x38e2e
call AICheckLastPlayerMon
pop hl
jp z, AIDiscourageMove
ld a, [EnemySubStatus5]
bit 0, a
bit SUBSTATUS_TOXIC, a
jr nz, .asm_38e26
ld a, [PlayerSubStatus1]
and $c9
and 1<<SUBSTATUS_IN_LOVE | 1<<SUBSTATUS_ENCORED | 1<<SUBSTATUS_IDENTIFIED | 1<<SUBSTATUS_NIGHTMARE
jr nz, .asm_38e26
push hl
ld hl, $484e
ld a, $d
rst FarCall
callab Function0x3484e
ld a, [$c716]
cp $b
pop hl
@ -1794,7 +1772,6 @@ AIScoring_MeanLook: ; 38dfb
.asm_38e26
call Function_0x39521
ret c
dec [hl]
dec [hl]
@ -1803,7 +1780,7 @@ AIScoring_MeanLook: ; 38dfb
; 38e2e
Function_0x38e2e: ; 38e2e
AICheckLastPlayerMon: ; 38e2e
ld a, [PartyCount]
ld b, a
ld c, 0
@ -1832,7 +1809,6 @@ Function_0x38e2e: ; 38e2e
AIScoring_Nightmare: ; 38e4a
call Function_0x39527
ret c
dec [hl]
ret
@ -1841,7 +1817,7 @@ AIScoring_Nightmare: ; 38e4a
AIScoring_FlameWheel: ; 38e50
ld a, [EnemyMonStatus]
bit 5, a
bit FRZ, a
ret z
dec [hl]
dec [hl]
@ -1854,34 +1830,30 @@ AIScoring_FlameWheel: ; 38e50
AIScoring_Curse: ; 38e5c
ld a, [EnemyMonType1]
cp $8
jr z, .asm_38e95
cp GHOST
jr z, .ghostcurse
ld a, [EnemyMonType2]
cp $8
jr z, .asm_38e95
cp GHOST
jr z, .ghostcurse
call AICheckEnemyHalfHP
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
ld a, [BattleMonType1]
cp GHOST
jr z, .asm_38e92
cp FIRE
ret nc
ld a, [BattleMonType2]
cp $14
cp FIRE
ret nc
call Function_0x39521
ret c
dec [hl]
dec [hl]
@ -1890,30 +1862,24 @@ AIScoring_Curse: ; 38e5c
.asm_38e90
inc [hl]
inc [hl]
.asm_38e92
inc [hl]
.asm_38e93
inc [hl]
ret
.asm_38e95
.ghostcurse
ld a, [PlayerSubStatus1]
bit 1, a
bit SUBSTATUS_CURSE, a
jp nz, AIDiscourageMove
push hl
ld a, $d
ld hl, $49f4
rst FarCall
callba Function0x349f4
pop hl
jr nc, .asm_38eb0
push hl
call Function_0x38e2e
call AICheckLastPlayerMon
pop hl
jr nz, .asm_38e90
@ -1922,24 +1888,21 @@ AIScoring_Curse: ; 38e5c
.asm_38eb0
push hl
call Function_0x38e2e
call AICheckLastPlayerMon
pop hl
jr z, .asm_38ecb
.asm_38eb7
call AICheckEnemyQuarterHP
jp nc, .asm_38e90
call AICheckEnemyHalfHP
jr nc, .asm_38e92
call AICheckEnemyMaxHP
ret nc
ld a, [PlayerTurnsTaken]
and a
ret nz
@ -1960,40 +1923,36 @@ AIScoring_Protect: ; 38ed2
jr nz, .asm_38f13
ld a, [PlayerSubStatus5]
bit 5, a
bit SUBSTATUS_LOCK_ON, a
jr nz, .asm_38f14
ld a, [PlayerFuryCutterCount]
cp $3
cp 3
jr nc, .asm_38f0d
ld a, [PlayerSubStatus3]
bit 4, a
bit SUBSTATUS_CHARGED, a
jr nz, .asm_38f0d
ld a, [PlayerSubStatus5]
bit 0, a
bit SUBSTATUS_TOXIC, a
jr nz, .asm_38f0d
ld a, [PlayerSubStatus4]
bit 7, a
bit SUBSTATUS_LEECH_SEED, a
jr nz, .asm_38f0d
ld a, [PlayerSubStatus1]
bit 1, a
bit SUBSTATUS_CURSE, a
jr nz, .asm_38f0d
bit 6, a
bit SUBSTATUS_ENCORED, a
jr z, .asm_38f14
ld a, [PlayerRolloutCount]
cp $3
cp 3
jr c, .asm_38f14
.asm_38f0d
call Function_0x39521
ret c
dec [hl]
ret
@ -2003,8 +1962,7 @@ AIScoring_Protect: ; 38ed2
.asm_38f14
call RNG
cp $14
cp 20
ret c
inc [hl]
inc [hl]
@ -2016,30 +1974,26 @@ 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
cp GHOST
jr z, .asm_38f41
ld a, [BattleMonType2]
cp $8
cp GHOST
jr z, .asm_38f41
call RNG
cp $14
cp 20
ret c
inc [hl]
ret
.asm_38f41
call RNG
cp $64
cp 100
ret c
dec [hl]
dec [hl]
@ -2049,10 +2003,7 @@ AIScoring_Foresight: ; 38f1d
AIScoring_PerishSong: ; 38f4a
push hl
ld hl, $49f4
ld a, $d
rst FarCall
callab Function0x349f4
pop hl
jr c, .asm_38f75
@ -2061,17 +2012,15 @@ AIScoring_PerishSong: ; 38f4a
jr nz, .asm_38f6f
push hl
ld hl, $484e
ld a, $d
rst FarCall
callab Function0x3484e
ld a, [$c716]
cp $a
cp 10 ; 1.0
pop hl
ret c
call Function_0x39527
call Function_0x39527
ret c
inc [hl]
ret
@ -2084,7 +2033,7 @@ AIScoring_PerishSong: ; 38f4a
.asm_38f75
ld a, [hl]
add $5
add 5
ld [hl], a
ret
; 38f7a
@ -2137,21 +2086,18 @@ AIScoring_Endure: ; 38fac
jr nz, .asm_38fd8
call AICheckEnemyMaxHP
jr c, .asm_38fd8
call AICheckEnemyQuarterHP
jr c, .asm_38fd9
ld b, $63
call Function_0x392ca
ld b, EFFECT_REVERSAL
call AIHasMove
jr nc, .asm_38fcb
call Function_0x39521
ret c
dec [hl]
dec [hl]
dec [hl]
@ -2159,7 +2105,7 @@ AIScoring_Endure: ; 38fac
.asm_38fcb
ld a, [EnemySubStatus5]
bit 5, a
bit SUBSTATUS_LOCK_ON, a
ret z
call Function_0x39527
@ -2180,20 +2126,21 @@ AIScoring_Endure: ; 38fac
AIScoring_FuryCutter: ; 38fdb
ld a, [EnemyFuryCutterCount]
and a
jr z, AIScoring_Rollout
jr z, .end
dec [hl]
cp 2
jr c, .end
dec [hl]
dec [hl]
cp $2
jr c, AIScoring_Rollout
cp 3
jr c, .end
dec [hl]
dec [hl]
dec [hl]
cp $3
jr c, AIScoring_Rollout
dec [hl]
dec [hl]
dec [hl]
.end
; fallthrough
; 38fef
@ -2201,32 +2148,29 @@ AIScoring_FuryCutter: ; 38fdb
AIScoring_Rollout: ; 38fef
ld a, [EnemySubStatus1]
bit 7, a
bit SUBSTATUS_IN_LOVE, a
jr nz, .asm_39020
ld a, [EnemySubStatus3]
bit 7, a
bit SUBSTATUS_CONFUSED, a
jr nz, .asm_39020
ld a, [EnemyMonStatus]
bit 6, a
bit PAR, a
jr nz, .asm_39020
call AICheckEnemyQuarterHP
jr nc, .asm_39020
ld a, [EnemyAccLevel]
cp $7
cp 7
jr c, .asm_39020
ld a, [PlayerEvaLevel]
cp $8
cp 8
jr nc, .asm_39020
call RNG
cp $c8
cp 200
ret nc
dec [hl]
dec [hl]
@ -2234,7 +2178,6 @@ AIScoring_Rollout: ; 38fef
.asm_39020
call Function_0x39521
ret c
inc [hl]
ret
@ -2248,15 +2191,13 @@ AIScoring_Attract: ; 39026
jr z, .asm_39032
call Function_0x39521
ret c
inc [hl]
ret
.asm_39032
call RNG
cp $c8
cp 200
ret nc
dec [hl]
ret
@ -2265,10 +2206,8 @@ AIScoring_Attract: ; 39026
AIScoring_Safeguard: ; 3903a
call AICheckPlayerHalfHP
ret c
call Function_0x39521
ret c
inc [hl]
ret
@ -2278,14 +2217,14 @@ AIScoring_Safeguard: ; 3903a
AIScoring_Magnitude:
AIScoring_Earthquake: ; 39044
ld a, [LastEnemyCounterMove]
cp $5b
cp DIG
ret nz
ld a, [PlayerSubStatus3]
bit 5, a
bit SUBSTATUS_UNDERGROUND, a
jr z, .asm_39058
call AICompareSpeed
ret nc
dec [hl]
dec [hl]
@ -2293,10 +2232,8 @@ AIScoring_Earthquake: ; 39044
.asm_39058
call AICompareSpeed
ret c
call Function_0x39527
ret c
dec [hl]
ret
@ -2305,12 +2242,9 @@ AIScoring_Earthquake: ; 39044
AIScoring_BatonPass: ; 39062
push hl
ld hl, $484e
ld a, $d
rst FarCall
callab Function0x3484e
ld a, [$c716]
cp $a
cp 10 ; 1.0
pop hl
ret c
inc [hl]
@ -2320,18 +2254,14 @@ AIScoring_BatonPass: ; 39062
AIScoring_Pursuit: ; 39072
call AICheckPlayerQuarterHP
jr nc, .asm_3907d
call Function_0x39521
ret c
inc [hl]
ret
.asm_3907d
call Function_0x39527
ret c
dec [hl]
dec [hl]
@ -2345,11 +2275,11 @@ AIScoring_RapidSpin: ; 39084
jr nz, .asm_39097
ld a, [EnemySubStatus4]
bit 7, a
bit SUBSTATUS_LEECH_SEED, a
jr nz, .asm_39097
ld a, [EnemyScreens]
bit 0, a
bit SCREENS_SPIKES, a
ret z
.asm_39097
@ -2364,17 +2294,14 @@ AIScoring_RapidSpin: ; 39084
AIScoring_HiddenPower: ; 3909e
push hl
ld a, $1
ld a, 1
ld [hBattleTurn], a
ld hl, $7ced
ld a, $3e
rst FarCall
ld hl, $47c8
ld a, $d
rst FarCall
callab Function0x347c8
pop hl
ld a, [$d265]
cp $a
jr c, .asm_390c9
@ -2404,22 +2331,21 @@ AIScoring_HiddenPower: ; 3909e
AIScoring_RainDance: ; 390cb
ld a, [BattleMonType1]
cp WATER
jr z, Function_0x3911e
jr z, AIBadWeatherType
cp FIRE
jr z, Function_0x39122
jr z, AIGoodWeatherType
ld a, [BattleMonType2]
cp WATER
jr z, Function_0x3911e
jr z, AIBadWeatherType
cp FIRE
jr z, Function_0x39122
jr z, AIGoodWeatherType
push hl
ld hl, RainDanceMoves
jr Function_0x3910d
jr AIScoring_WeatherMove
; 390e7
RainDanceMoves: ; 390e7
db WATER_GUN
db HYDRO_PUMP
@ -2439,15 +2365,15 @@ RainDanceMoves: ; 390e7
AIScoring_SunnyDay: ; 390f3
ld a, [BattleMonType1]
cp FIRE
jr z, Function_0x3911e
jr z, AIBadWeatherType
cp WATER
jr z, Function_0x39122
jr z, AIGoodWeatherType
ld a, [BattleMonType2]
cp FIRE
jr z, Function_0x3911e
jr z, AIBadWeatherType
cp WATER
jr z, Function_0x39122
jr z, AIGoodWeatherType
push hl
ld hl, SunnyDayMoves
@ -2456,39 +2382,41 @@ AIScoring_SunnyDay: ; 390f3
; 3910d
Function_0x3910d: ; 3910d
call Function_0x392e6
AIScoring_WeatherMove: ; 3910d
call AIHasMoveInArray
pop hl
jr nc, Function_0x3911e
jr nc, AIBadWeatherType
call AICheckPlayerHalfHP
jr nc, Function_0x3911e
jr nc, AIBadWeatherType
call Function_0x39527
ret c
dec [hl]
ret
; 3911e
Function_0x3911e: ; 3911e
AIBadWeatherType: ; 3911e
inc [hl]
inc [hl]
inc [hl]
ret
; 39122
Function_0x39122: ; 39122
AIGoodWeatherType: ; 39122
call AICheckPlayerHalfHP
ret nc
ld a, [PlayerTurnsTaken]
and a
jr z, .asm_39131
jr z, .good
ld a, [EnemyTurnsTaken]
and a
ret nz
.asm_39131
.good
dec [hl]
dec [hl]
ret
@ -2597,7 +2525,7 @@ AIScoring_MirrorCoat: ; 3918b
jr z, .asm_391a8
ld a, [EnemyMoveType]
cp $14
cp FIRE
jr c, .asm_391a8
inc b
@ -2625,16 +2553,14 @@ AIScoring_MirrorCoat: ; 3918b
jr z, .asm_391d2
ld a, [EnemyMoveType]
cp $14
cp FIRE
jr c, .asm_391d2
.asm_391ca
call RNG
cp $64
cp 100
jr c, .asm_391d2
dec [hl]
.asm_391d2
@ -2649,25 +2575,24 @@ AIScoring_MirrorCoat: ; 3918b
AIScoring_Twister:
AIScoring_Gust: ; 391d5
ld a, [LastEnemyCounterMove]
cp $13
cp FLY
ret nz
ld a, [PlayerSubStatus3]
bit 6, a
bit SUBSTATUS_FLYING, a
jr z, .asm_391e9
call AICompareSpeed
ret nc
dec [hl]
dec [hl]
ret
.asm_391e9
call AICompareSpeed
ret c
call Function_0x39527
ret c
dec [hl]
ret
@ -2676,11 +2601,12 @@ AIScoring_Gust: ; 391d5
AIScoring_FutureSight: ; 391f3
call AICompareSpeed
ret nc
ld a, [PlayerSubStatus3]
and $60
and 1<<SUBSTATUS_FLYING | 1<<SUBSTATUS_UNDERGROUND
ret z
dec [hl]
dec [hl]
ret
@ -2691,9 +2617,10 @@ AIScoring_Stomp: ; 39200
ld a, [$c6fe]
and a
ret z
call Function_0x39521
call Function_0x39521
ret c
dec [hl]
ret
; 3920b
@ -2889,12 +2816,13 @@ AICheckPlayerQuarterHP: ; 392b3
; 392ca
Function_0x392ca: ; 392ca
AIHasMove: ; 392ca
; Return carry if the enemy has move b.
push hl
ld hl, EnemyMonMoves
ld c, EnemyMonMovesEnd - EnemyMonMoves
.asm_392d0
.checkmove
ld a, [hli]
and a
jr z, .asm_392e0
@ -2906,7 +2834,7 @@ Function_0x392ca: ; 392ca
jr z, .asm_392e3
dec c
jr nz, .asm_392d0
jr nz, .checkmove
.asm_392e0
pop hl
@ -2920,7 +2848,9 @@ Function_0x392ca: ; 392ca
; 392e6
Function_0x392e6: ; 392e6
AIHasMoveInArray: ; 392e6
; Return carry if the enemy has a move in array hl.
push hl
push de
push bc