AIActionTable_LegendaryDragonite: dw .do_turn ; unused dw .do_turn dw .start_duel dw .forced_switch dw .ko_switch dw .take_prize .do_turn call AIDoTurn_LegendaryDragonite ret .start_duel call InitAIDuelVars call .store_list_pointers call SetUpBossStartingHandAndDeck call TrySetUpBossStartingPlayArea ret nc call AIPlayInitialBasicCards ret .forced_switch call AIDecideBenchPokemonToSwitchTo ret .ko_switch call AIDecideBenchPokemonToSwitchTo ret .take_prize call AIPickPrizeCards ret .list_arena db KANGASKHAN db LAPRAS db CHARMANDER db DRATINI db MAGIKARP db $00 .list_bench db CHARMANDER db MAGIKARP db DRATINI db LAPRAS db KANGASKHAN db $00 .list_retreat ai_retreat CHARMANDER, -1 ai_retreat MAGIKARP, -5 db $00 .list_energy ai_energy CHARMANDER, 3, +1 ai_energy CHARMELEON, 4, +1 ai_energy CHARIZARD, 5, +0 ai_energy MAGIKARP, 3, +1 ai_energy GYARADOS, 4, -1 ai_energy DRATINI, 2, +0 ai_energy DRAGONAIR, 4, +0 ai_energy DRAGONITE1, 3, -1 ai_energy KANGASKHAN, 2, -2 ai_energy LAPRAS, 3, +0 db $00 .list_prize db GAMBLER db DRAGONITE1 db KANGASKHAN db $00 .store_list_pointers store_list_pointer wAICardListAvoidPrize, .list_prize store_list_pointer wAICardListArenaPriority, .list_arena store_list_pointer wAICardListBenchPriority, .list_bench store_list_pointer wAICardListPlayFromHandPriority, .list_bench ; missing store_list_pointer wAICardListRetreatBonus, .list_retreat store_list_pointer wAICardListEnergyBonus, .list_energy ret AIDoTurn_LegendaryDragonite: ; initialize variables call InitAITurnVars ld a, AI_TRAINER_CARD_PHASE_01 call AIProcessHandTrainerCards farcall HandleAIAntiMewtwoDeckStrategy jp nc, .try_attack ; process Trainer cards ld a, AI_TRAINER_CARD_PHASE_02 call AIProcessHandTrainerCards ; play Pokemon from hand call AIDecidePlayPokemonCard ret c ; return if turn ended ld a, AI_TRAINER_CARD_PHASE_07 call AIProcessHandTrainerCards call AIProcessRetreat ld a, AI_TRAINER_CARD_PHASE_10 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_11 call AIProcessHandTrainerCards ; play Energy card if possible ld a, [wAlreadyPlayedEnergy] or a jr nz, .skip_energy_attach_1 ; if Arena card is Kangaskhan and doesn't ; have Energy cards attached, try attaching from hand. ; otherwise run normal AI energy attach routine. ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable call GetCardIDFromDeckIndex ld a, KANGASKHAN cp e jr nz, .attach_normally call CreateEnergyCardListFromHand jr c, .skip_energy_attach_1 ld e, PLAY_AREA_ARENA call CountNumberOfEnergyCardsAttached or a jr nz, .attach_normally xor a ldh [hTempPlayAreaLocation_ff9d], a call AITryToPlayEnergyCard jr c, .skip_energy_attach_1 .attach_normally call AIProcessAndTryToPlayEnergy .skip_energy_attach_1 ; play Pokemon from hand again call AIDecidePlayPokemonCard ld a, AI_TRAINER_CARD_PHASE_15 call AIProcessHandTrainerCards ; if used Professor Oak, process new hand ; if not, then proceed to attack. ld a, [wPreviousAIFlags] and AI_FLAG_USED_PROFESSOR_OAK jr z, .try_attack ld a, AI_TRAINER_CARD_PHASE_01 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_02 call AIProcessHandTrainerCards call AIDecidePlayPokemonCard ret c ; return if turn ended ld a, AI_TRAINER_CARD_PHASE_07 call AIProcessHandTrainerCards call AIProcessRetreat ld a, AI_TRAINER_CARD_PHASE_10 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_11 call AIProcessHandTrainerCards ld a, [wAlreadyPlayedEnergy] or a jr nz, .skip_energy_attach_2 call AIProcessAndTryToPlayEnergy .skip_energy_attach_2 call AIDecidePlayPokemonCard .try_attack ; attack if possible, if not, ; finish turn without attacking. call AIProcessAndTryToUseAttack ret c ; return if turn ended ld a, OPPACTION_FINISH_NO_ATTACK bank1call AIMakeDecision ret