; acts just like a general deck AI except never retreats AIActionTable_GeneralNoRetreat: dw .do_turn ; unused dw .do_turn dw .start_duel dw .forced_switch dw .ko_switch dw .take_prize .do_turn call AIDoTurn_GeneralNoRetreat ret .start_duel call InitAIDuelVars call AIPlayInitialBasicCards ret .forced_switch call AIDecideBenchPokemonToSwitchTo ret .ko_switch call AIDecideBenchPokemonToSwitchTo ret .take_prize call AIPickPrizeCards ret AIDoTurn_GeneralNoRetreat: ; initialize variables call InitAITurnVars ld a, AI_TRAINER_CARD_PHASE_01 call AIProcessHandTrainerCards farcall HandleAIAntiMewtwoDeckStrategy jp nc, .try_attack ; handle Pkmn Powers farcall HandleAIGoGoRainDanceEnergy farcall HandleAIDamageSwap farcall HandleAIPkmnPowers ret c ; return if turn ended farcall HandleAICowardice ; process Trainer cards ; phase 2 through 4. ld a, AI_TRAINER_CARD_PHASE_02 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_03 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_04 call AIProcessHandTrainerCards ; play Pokemon from hand call AIDecidePlayPokemonCard ret c ; return if turn ended ; process Trainer cards ; phase 5 through 12. ld a, AI_TRAINER_CARD_PHASE_05 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_06 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_07 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_08 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_10 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_11 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_12 call AIProcessHandTrainerCards ; play Energy card if possible ld a, [wAlreadyPlayedEnergy] or a jr nz, .skip_energy_attach_1 call AIProcessAndTryToPlayEnergy .skip_energy_attach_1 ; play Pokemon from hand again call AIDecidePlayPokemonCard ; handle Pkmn Powers again farcall HandleAIDamageSwap farcall HandleAIPkmnPowers ret c ; return if turn ended farcall HandleAIGoGoRainDanceEnergy ld a, AI_ENERGY_TRANS_ATTACK farcall HandleAIEnergyTrans ; process Trainer cards phases 13 and 15 ld a, AI_TRAINER_CARD_PHASE_13 call AIProcessHandTrainerCards 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 ld a, AI_TRAINER_CARD_PHASE_03 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_04 call AIProcessHandTrainerCards call AIDecidePlayPokemonCard ret c ; return if turn ended ld a, AI_TRAINER_CARD_PHASE_05 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_06 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_07 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_08 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_10 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_11 call AIProcessHandTrainerCards ld a, AI_TRAINER_CARD_PHASE_12 call AIProcessHandTrainerCards ld a, [wAlreadyPlayedEnergy] or a jr nz, .skip_energy_attach_2 call AIProcessAndTryToPlayEnergy .skip_energy_attach_2 call AIDecidePlayPokemonCard farcall HandleAIDamageSwap farcall HandleAIPkmnPowers ret c ; return if turn ended farcall HandleAIGoGoRainDanceEnergy ld a, AI_TRAINER_CARD_PHASE_13 call AIProcessHandTrainerCards ; skip AI_TRAINER_CARD_PHASE_15 .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