diff options
Diffstat (limited to 'battle/ai/items.asm')
-rw-r--r-- | battle/ai/items.asm | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/battle/ai/items.asm b/battle/ai/items.asm index 325c7b555..09595077a 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -9,7 +9,7 @@ AI_SwitchOrTryItem: ; 38000 and a ret nz - callba CheckEnemyLockedIn + farcall CheckEnemyLockedIn ret nz ld a, [PlayerSubStatus5] @@ -27,7 +27,7 @@ AI_SwitchOrTryItem: ; 38000 ld a, [TrainerClass] dec a - ld bc, 7 + ld bc, NUM_TRAINER_ATTRIBUTES call AddNTimes .ok bit SWITCH_OFTEN_F, [hl] @@ -44,7 +44,7 @@ DontSwitch: ; 38041 ; 38045 SwitchOften: ; 38045 - callab CheckAbleToSwitch + callfar CheckAbleToSwitch ld a, [wEnemySwitchMonParam] and $f0 jp z, DontSwitch @@ -80,7 +80,7 @@ SwitchOften: ; 38045 ; 38083 SwitchRarely: ; 38083 - callab CheckAbleToSwitch + callfar CheckAbleToSwitch ld a, [wEnemySwitchMonParam] and $f0 jp z, DontSwitch @@ -115,7 +115,7 @@ SwitchRarely: ; 38083 ; 380c1 SwitchSometimes: ; 380c1 - callab CheckAbleToSwitch + callfar CheckAbleToSwitch ld a, [wEnemySwitchMonParam] and $f0 jp z, DontSwitch @@ -174,8 +174,8 @@ AI_TryItem: ; 38105 ld a, [TrainerClass] dec a - ld hl, TrainerClassAttributes + 5 - ld bc, 7 + ld hl, TrainerClassAttributes + TRNATTR_AI_ITEM_SWITCH + ld bc, NUM_TRAINER_ATTRIBUTES call AddNTimes ld b, h ld c, l @@ -358,12 +358,12 @@ AI_Items: ; 39196 ld a, [bc] bit CONTEXT_USE_F, a jr nz, .CheckHalfOrQuarterHP - callab AICheckEnemyHalfHP + callfar AICheckEnemyHalfHP jp c, .DontUse ld a, [bc] bit UNKNOWN_USE_F, a jp nz, .CheckQuarterHP - callab AICheckEnemyQuarterHP + callfar AICheckEnemyQuarterHP jp nc, .UseHealItem call Random cp 1 + 50 percent @@ -371,7 +371,7 @@ AI_Items: ; 39196 jp .DontUse .CheckQuarterHP: ; 38254 (e:4254) - callab AICheckEnemyQuarterHP + callfar AICheckEnemyQuarterHP jp c, .DontUse call Random cp -1 + 20 percent @@ -379,9 +379,9 @@ AI_Items: ; 39196 jr .UseHealItem .CheckHalfOrQuarterHP: ; 38267 (e:4267) - callab AICheckEnemyHalfHP + callfar AICheckEnemyHalfHP jp c, .DontUse - callab AICheckEnemyQuarterHP + callfar AICheckEnemyQuarterHP jp nc, .UseHealItem call Random cp -1 + 20 percent @@ -416,7 +416,7 @@ AI_Items: ; 39196 ; 382ae .asm_382ae ; This appears to be unused - callab AICheckEnemyMaxHP + callfar AICheckEnemyMaxHP jr c, .dont_use push bc ld de, EnemyMonMaxHP + 1 @@ -433,7 +433,7 @@ AI_Items: ; 39196 ld a, c cp b jp c, .check_50_percent - callab AICheckEnemyQuarterHP + callfar AICheckEnemyQuarterHP jr c, .check_40_percent .check_50_percent @@ -545,7 +545,7 @@ AI_Items: ; 39196 AIUpdateHUD: ; 38387 call UpdateEnemyMonInParty - callba UpdateEnemyHUD + farcall UpdateEnemyHUD ld a, $1 ld [hBGMapMode], a ld hl, wEnemyItemState @@ -705,7 +705,7 @@ AI_Switch: ; 3846c res SUBSTATUS_RAGE, [hl] xor a ld [hBattleTurn], a - callab PursuitSwitch + callfar PursuitSwitch push af ld a, [CurOTMon] @@ -726,12 +726,12 @@ AI_Switch: ; 3846c .skiptext ld a, 1 ld [wBattleHasJustStarted], a - callab NewEnemyMonStatus - callab ResetEnemyStatLevels + callfar NewEnemyMonStatus + callfar ResetEnemyStatLevels ld hl, PlayerSubStatus1 res SUBSTATUS_IN_LOVE, [hl] - callba EnemySwitch - callba ResetBattleParticipants + farcall EnemySwitch + farcall ResetBattleParticipants xor a ld [wBattleHasJustStarted], a ld a, [wLinkMode] @@ -749,7 +749,7 @@ TextJump_EnemyWithdrew: ; 384d0 Function384d5: ; This appears to be unused call AIUsedItemSound call AI_HealStatus - ld a, X_SPEED + ld a, FULL_HEAL_RED ; X_SPEED jp PrintText_UsedItemOn_AND_AIUpdateHUD ; 384e0 @@ -761,6 +761,10 @@ AI_HealStatus: ; 384e0 xor a ld [hl], a ld [EnemyMonStatus], a + ; Bug: this should reset SUBSTATUS_NIGHTMARE too + ; Uncomment the lines below to fix + ; ld hl, EnemySubStatus1 + ; res SUBSTATUS_NIGHTMARE, [hl] ld hl, EnemySubStatus5 res SUBSTATUS_TOXIC, [hl] ret @@ -847,7 +851,7 @@ EnemyUsedXItem: push bc call PrintText_UsedItemOn pop bc - callba CheckIfStatCanBeRaised + farcall CheckIfStatCanBeRaised jp AIUpdateHUD ; 38568 |