.include "asm/macros.inc" .include "asm/macros/battle_script.inc" .include "constants/constants.inc" .include "constants/battle_constants.inc" .include "constants/battle_script_constants.inc" .include "constants/battle_text.inc" .section script_data, "aw", %progbits gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectHit .4byte BattleScript_EffectSleep .4byte BattleScript_EffectPoisonHit .4byte BattleScript_EffectAbsorb .4byte BattleScript_EffectBurnHit .4byte BattleScript_EffectFreezeHit .4byte BattleScript_EffectParalyzeHit .4byte BattleScript_EffectExplosion .4byte BattleScript_EffectDreamEater .4byte BattleScript_EffectMirrorMove .4byte BattleScript_EffectAttackUp .4byte BattleScript_EffectDefenseUp .4byte BattleScript_EffectHit .4byte BattleScript_EffectSpecialAttackUp .4byte BattleScript_EffectHit .4byte BattleScript_EffectHit .4byte BattleScript_EffectEvasionUp .4byte BattleScript_EffectHit .4byte BattleScript_EffectAttackDown .4byte BattleScript_EffectDefenseDown .4byte BattleScript_EffectSpeedDown .4byte BattleScript_EffectHit .4byte BattleScript_EffectHit .4byte BattleScript_EffectAccuracyDown .4byte BattleScript_EffectEvasionDown .4byte BattleScript_EffectHaze .4byte BattleScript_EffectBide .4byte BattleScript_EffectRampage .4byte BattleScript_EffectRoar .4byte BattleScript_EffectMultiHit .4byte BattleScript_EffectConversion .4byte BattleScript_EffectFlinchHit .4byte BattleScript_EffectRestoreHp .4byte BattleScript_EffectToxic .4byte BattleScript_EffectPayDay .4byte BattleScript_EffectLightScreen .4byte BattleScript_EffectTriAttack .4byte BattleScript_EffectRest .4byte BattleScript_EffectOhko .4byte BattleScript_EffectRazorWind .4byte BattleScript_EffectSuperFang .4byte BattleScript_EffectDragonRage .4byte BattleScript_EffectTrap .4byte BattleScript_EffectHit .4byte BattleScript_EffectDoubleHit .4byte BattleScript_EffectRecoilIfMiss .4byte BattleScript_EffectMist .4byte BattleScript_EffectFocusEnergy .4byte BattleScript_EffectRecoil .4byte BattleScript_EffectConfuse .4byte BattleScript_EffectAttackUp2 .4byte BattleScript_EffectDefenseUp2 .4byte BattleScript_EffectSpeedUp2 .4byte BattleScript_EffectSpecialAttackUp2 .4byte BattleScript_EffectSpecialDefenseUp2 .4byte BattleScript_EffectHit .4byte BattleScript_EffectHit .4byte BattleScript_EffectTransform .4byte BattleScript_EffectAttackDown2 .4byte BattleScript_EffectDefenseDown2 .4byte BattleScript_EffectSpeedDown2 .4byte BattleScript_EffectHit .4byte BattleScript_EffectSpecialDefenseDown2 .4byte BattleScript_EffectHit .4byte BattleScript_EffectHit .4byte BattleScript_EffectReflect .4byte BattleScript_EffectPoison .4byte BattleScript_EffectParalyze .4byte BattleScript_EffectAttackDownHit .4byte BattleScript_EffectDefenseDownHit .4byte BattleScript_EffectSpeedDownHit .4byte BattleScript_EffectSpecialAttackDownHit .4byte BattleScript_EffectSpecialDefenseDownHit .4byte BattleScript_EffectAccuracyDownHit .4byte BattleScript_EffectHit .4byte BattleScript_EffectSkyAttack .4byte BattleScript_EffectConfuseHit .4byte BattleScript_EffectTwineedle .4byte BattleScript_EffectHit .4byte BattleScript_EffectSubstitute .4byte BattleScript_EffectRecharge .4byte BattleScript_EffectRage .4byte BattleScript_EffectMimic .4byte BattleScript_EffectMetronome .4byte BattleScript_EffectLeechSeed .4byte BattleScript_EffectSplash .4byte BattleScript_EffectDisable .4byte BattleScript_EffectLevelDamage .4byte BattleScript_EffectPsywave .4byte BattleScript_EffectCounter .4byte BattleScript_EffectEncore .4byte BattleScript_EffectPainSplit .4byte BattleScript_EffectSnore .4byte BattleScript_EffectConversion2 .4byte BattleScript_EffectLockOn .4byte BattleScript_EffectSketch .4byte BattleScript_EffectHit .4byte BattleScript_EffectSleepTalk .4byte BattleScript_EffectDestinyBond .4byte BattleScript_EffectFlail .4byte BattleScript_EffectSpite .4byte BattleScript_EffectHit .4byte BattleScript_EffectHealBell .4byte BattleScript_EffectHit .4byte BattleScript_EffectTripleKick .4byte BattleScript_EffectThief .4byte BattleScript_EffectMeanLook .4byte BattleScript_EffectNightmare .4byte BattleScript_EffectMinimize .4byte BattleScript_EffectCurse .4byte BattleScript_EffectHit .4byte BattleScript_EffectProtect .4byte BattleScript_EffectSpikes .4byte BattleScript_EffectForesight .4byte BattleScript_EffectPerishSong .4byte BattleScript_EffectSandstorm .4byte BattleScript_EffectProtect .4byte BattleScript_EffectRollout .4byte BattleScript_EffectSwagger .4byte BattleScript_EffectFuryCutter .4byte BattleScript_EffectAttract .4byte BattleScript_EffectReturn .4byte BattleScript_EffectPresent .4byte BattleScript_EffectReturn .4byte BattleScript_EffectSafeguard .4byte BattleScript_EffectThawHit .4byte BattleScript_EffectMagnitude .4byte BattleScript_EffectBatonPass .4byte BattleScript_EffectHit .4byte BattleScript_EffectRapidSpin .4byte BattleScript_EffectSonicboom .4byte BattleScript_EffectHit .4byte BattleScript_EffectMorningSun .4byte BattleScript_EffectMorningSun .4byte BattleScript_EffectMorningSun .4byte BattleScript_EffectHiddenPower .4byte BattleScript_EffectRainDance .4byte BattleScript_EffectSunnyDay .4byte BattleScript_EffectDefenseUpHit .4byte BattleScript_EffectAttackUpHit .4byte BattleScript_EffectAllStatsUpHit .4byte BattleScript_EffectHit .4byte BattleScript_EffectBellyDrum .4byte BattleScript_EffectPsychUp .4byte BattleScript_EffectMirrorCoat .4byte BattleScript_EffectSkullBash .4byte BattleScript_EffectTwister .4byte BattleScript_EffectEarthquake .4byte BattleScript_EffectFutureSight .4byte BattleScript_EffectGust .4byte BattleScript_EffectStomp .4byte BattleScript_EffectSolarbeam .4byte BattleScript_EffectThunder .4byte BattleScript_EffectTeleport .4byte BattleScript_EffectBeatUp .4byte BattleScript_EffectFly .4byte BattleScript_EffectDefenseCurl .4byte BattleScript_EffectSoftboiled .4byte BattleScript_EffectFakeOut .4byte BattleScript_EffectUproar .4byte BattleScript_EffectStockpile .4byte BattleScript_EffectSpitUp .4byte BattleScript_EffectSwallow .4byte BattleScript_EffectHit .4byte BattleScript_EffectHail .4byte BattleScript_EffectTorment .4byte BattleScript_EffectFlatter .4byte BattleScript_EffectWillOWisp .4byte BattleScript_EffectMemento .4byte BattleScript_EffectFacade .4byte BattleScript_EffectFocusPunch .4byte BattleScript_EffectSmellingsalt .4byte BattleScript_EffectFollowMe .4byte BattleScript_EffectNaturePower .4byte BattleScript_EffectCharge .4byte BattleScript_EffectTaunt .4byte BattleScript_EffectHelpingHand .4byte BattleScript_EffectTrick .4byte BattleScript_EffectRolePlay .4byte BattleScript_EffectWish .4byte BattleScript_EffectAssist .4byte BattleScript_EffectIngrain .4byte BattleScript_EffectSuperpower .4byte BattleScript_EffectMagicCoat .4byte BattleScript_EffectRecycle .4byte BattleScript_EffectRevenge .4byte BattleScript_EffectBrickBreak .4byte BattleScript_EffectYawn .4byte BattleScript_EffectKnockOff .4byte BattleScript_EffectEndeavor .4byte BattleScript_EffectEruption .4byte BattleScript_EffectSkillSwap .4byte BattleScript_EffectImprison .4byte BattleScript_EffectRefresh .4byte BattleScript_EffectGrudge .4byte BattleScript_EffectSnatch .4byte BattleScript_EffectLowKick .4byte BattleScript_EffectSecretPower .4byte BattleScript_EffectDoubleEdge .4byte BattleScript_EffectTeeterDance .4byte BattleScript_EffectBurnHit .4byte BattleScript_EffectMudSport .4byte BattleScript_EffectPoisonFang .4byte BattleScript_EffectWeatherBall .4byte BattleScript_EffectOverheat .4byte BattleScript_EffectTickle .4byte BattleScript_EffectCosmicPower .4byte BattleScript_EffectSkyUppercut .4byte BattleScript_EffectBulkUp .4byte BattleScript_EffectPoisonHit .4byte BattleScript_EffectMudSport .4byte BattleScript_EffectCalmMind .4byte BattleScript_EffectDragonDance .4byte BattleScript_EffectCamouflage BattleScript_EffectHit:: jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_SURF, BattleScript_HitFromAtkCanceler jumpifstatus3 TARGET, STATUS3_UNDERWATER, 0x1, BattleScript_HitFromAtkCanceler orword gHitMarker, HITMARKER_IGNORE_UNDERWATER setbyte sDMG_MULTIPLIER, 0x2 BattleScript_HitFromAtkCanceler:: attackcanceler BattleScript_HitFromAccCheck:: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE BattleScript_HitFromAtkString:: attackstring ppreduce BattleScript_HitFromCritCalc:: critcalc damagecalc typecalc adjustnormaldamage BattleScript_HitFromAtkAnimation:: attackanimation waitanimation effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 seteffectwithchance tryfaintmon TARGET, FALSE, NULL BattleScript_MoveEnd:: setbyte sMOVEEND_STATE, 0x0 moveend 0x0, 0x0 end BattleScript_MakeMoveMissed:: orbyte gBattleMoveFlags, MOVESTATUS_MISSED BattleScript_PrintMoveMissed:: attackstring ppreduce BattleScript_MoveMissedPause:: pause 0x20 BattleScript_MoveMissed:: effectivenesssound resultmessage waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectSleep:: attackcanceler attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8AB0 jumpifcantmakeasleep BattleScript_82D8ACF jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 attackanimation waitanimation setmoveeffect EFFECT_SLEEP seteffectprimary goto BattleScript_MoveEnd BattleScript_82D8AB0:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNALREADYASLEEP waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82D8AC1:: pause 0x20 printstring STRINGID_PKMNWASNTAFFECTED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82D8ACF:: pause 0x20 printfromtable 0x85CC896 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectPoisonHit:: setmoveeffect EFFECT_POISON goto BattleScript_EffectHit BattleScript_EffectAbsorb:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce critcalc damagecalc typecalc adjustnormaldamage attackanimation waitanimation effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 negativedamage orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE jumpifability TARGET, ABILITY_LIQUID_OOZE, BattleScript_82D8B26 setbyte cMULTISTRING_CHOOSER, 0x0 goto BattleScript_82D8B2E BattleScript_82D8B26:: manipulatedamage ATK80_DMG_CHANGE_SIGN setbyte cMULTISTRING_CHOOSER, 0x1 BattleScript_82D8B2E:: healthbarupdate ATTACKER datahpupdate ATTACKER jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8B45 printfromtable 0x85CC8FC waitmessage 0x40 BattleScript_82D8B45:: tryfaintmon ATTACKER, FALSE, NULL tryfaintmon TARGET, FALSE, NULL goto BattleScript_MoveEnd BattleScript_EffectBurnHit:: setmoveeffect EFFECT_BURN goto BattleScript_EffectHit BattleScript_EffectFreezeHit:: setmoveeffect EFFECT_FREEZE goto BattleScript_EffectHit BattleScript_EffectParalyzeHit:: setmoveeffect EFFECT_PARALYSIS goto BattleScript_EffectHit BattleScript_EffectExplosion:: attackcanceler attackstring ppreduce faintifabilitynotdamp setatkhptozero waitstate jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_82D8B94 call BattleScript_82D8BEA goto BattleScript_82D8B96 BattleScript_82D8B94:: attackanimation waitanimation BattleScript_82D8B96:: movevaluescleanup critcalc damagecalc typecalc adjustnormaldamage accuracycheck BattleScript_82D8BCF, ACC_CURR_MOVE effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 tryfaintmon TARGET, FALSE, NULL setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 jumpifnexttargetvalid BattleScript_82D8B96 tryfaintmon ATTACKER, FALSE, NULL end BattleScript_82D8BCF:: effectivenesssound resultmessage waitmessage 0x40 setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 jumpifnexttargetvalid BattleScript_82D8B96 tryfaintmon ATTACKER, FALSE, NULL end BattleScript_82D8BEA:: bicbyte gBattleMoveFlags, MOVESTATUS_MISSED attackanimation waitanimation orbyte gBattleMoveFlags, MOVESTATUS_MISSED return BattleScript_EffectDreamEater:: attackcanceler jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82D8C0E jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8C18 BattleScript_82D8C0E:: attackstring ppreduce waitmessage 0x40 goto BattleScript_82D8AC1 BattleScript_82D8C18:: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce critcalc damagecalc typecalc adjustnormaldamage attackanimation waitanimation effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 negativedamage orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate ATTACKER datahpupdate ATTACKER jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8C56 printstring STRINGID_PKMNDREAMEATEN waitmessage 0x40 BattleScript_82D8C56:: tryfaintmon TARGET, FALSE, NULL goto BattleScript_MoveEnd BattleScript_EffectMirrorMove:: attackcanceler attackstring pause 0x40 trymirrormove ppreduce orbyte gBattleMoveFlags, MOVESTATUS_FAILED printstring STRINGID_MIRRORMOVEFAILED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectAttackUp:: setstatchanger ATK, 1, FALSE goto BattleScript_EffectStatUp BattleScript_EffectDefenseUp:: setstatchanger DEF, 1, FALSE goto BattleScript_EffectStatUp BattleScript_EffectSpecialAttackUp:: setstatchanger SPATK, 1, FALSE goto BattleScript_EffectStatUp BattleScript_EffectEvasionUp:: setstatchanger EVASION, 1, FALSE BattleScript_EffectStatUp:: attackcanceler BattleScript_EffectStatUpAfterAtkCanceler:: attackstring ppreduce statbuffchange 0x41, BattleScript_82D8CCF jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8CBD pause 0x20 goto BattleScript_82D8CC7 BattleScript_82D8CBD:: attackanimation waitanimation BattleScript_82D8CBF:: setgraphicalstatchangevalues playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 BattleScript_82D8CC7:: printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82D8CCF:: goto BattleScript_MoveEnd BattleScript_StatUp:: playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 printfromtable 0x85CC89C waitmessage 0x40 return BattleScript_EffectAttackDown:: setstatchanger ATK, 1, TRUE goto BattleScript_EffectStatDown BattleScript_EffectDefenseDown:: setstatchanger DEF, 1, TRUE goto BattleScript_EffectStatDown BattleScript_EffectSpeedDown:: setstatchanger SPEED, 1, TRUE goto BattleScript_EffectStatDown BattleScript_EffectAccuracyDown:: setstatchanger ACC, 1, TRUE goto BattleScript_EffectStatDown BattleScript_EffectEvasionDown:: setstatchanger EVASION, 1, TRUE BattleScript_EffectStatDown:: attackcanceler jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailedAtkStringPpReduce accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce statbuffchange 0x1, BattleScript_82D8D60 jumpifbyte LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8D4E jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_82D8D60 pause 0x20 goto BattleScript_82D8D58 BattleScript_82D8D4E:: attackanimation waitanimation setgraphicalstatchangevalues playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 BattleScript_82D8D58:: printfromtable 0x85CC8A8 waitmessage 0x40 BattleScript_82D8D60:: goto BattleScript_MoveEnd BattleScript_StatDown:: playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 printfromtable 0x85CC8A8 waitmessage 0x40 return BattleScript_EffectHaze:: attackcanceler attackstring ppreduce attackanimation waitanimation normalisebuffs printstring STRINGID_STATCHANGESGONE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectBide:: attackcanceler attackstring ppreduce attackanimation waitanimation orword gHitMarker, HITMARKER_x8000000 setbide goto BattleScript_MoveEnd BattleScript_EffectRampage:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D8DAE ppreduce BattleScript_82D8DAE:: confuseifrepeatingattackends goto BattleScript_HitFromCritCalc BattleScript_EffectRoar:: attackcanceler attackstring ppreduce jumpifability TARGET, ABILITY_SUCTION_CUPS, BattleScript_82DB5B9 jumpifstatus3 TARGET, STATUS3_ROOTED, 0x0, BattleScript_82DB109 accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_ARENA, BattleScript_ButItFailed forcerandomswitch BattleScript_ButItFailed BattleScript_EffectMultiHit:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce setmultihitcounter 0x0 initmultihitstring setbyte sFIELD_16, 0x0 BattleScript_82D8DFD:: jumpifhasnohp ATTACKER, BattleScript_82D8E93 jumpifhasnohp TARGET, BattleScript_82D8E74 jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D8E1F jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D8E74 BattleScript_82D8E1F:: movevaluescleanup copybyte cEFFECT_CHOOSER, sFIELD_16 critcalc damagecalc typecalc jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8E71 adjustnormaldamage attackanimation waitanimation effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET critmessage waitmessage 0x40 printstring STRINGID_EMPTYSTRING3 waitmessage 0x1 addbyte sMULTIHIT_STRING + 4, 0x1 setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_82D8E74 decrementmultihit BattleScript_82D8DFD goto BattleScript_82D8E74 BattleScript_82D8E71:: pause 0x20 BattleScript_82D8E74:: resultmessage waitmessage 0x40 jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8E93 copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 printstring STRINGID_HITXTIMES waitmessage 0x40 BattleScript_82D8E93:: seteffectwithchance tryfaintmon TARGET, FALSE, NULL setbyte sMOVEEND_STATE, 0x2 moveend 0x1, 0x0 setbyte sMOVEEND_STATE, 0x4 moveend 0x0, 0x0 end BattleScript_EffectConversion:: attackcanceler attackstring ppreduce tryconversiontypechange BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNCHANGEDTYPE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectFlinchHit:: setmoveeffect EFFECT_FLINCH goto BattleScript_EffectHit BattleScript_EffectRestoreHp:: attackcanceler attackstring ppreduce tryhealhalfhealth BattleScript_AlreadyAtFullHp, ATTACKER attackanimation waitanimation orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate ATTACKER datahpupdate ATTACKER printstring STRINGID_PKMNREGAINEDHEALTH waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectToxic:: attackcanceler attackstring ppreduce jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_82D8F63 jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 attackanimation waitanimation setmoveeffect EFFECT_TOXIC seteffectprimary resultmessage waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_AlreadyPoisoned:: various ATTACKER, 0x17 pause 0x40 printstring STRINGID_PKMNALREADYPOISONED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82D8F63:: copybyte gEffectBank, gBankTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PSNPrevention goto BattleScript_MoveEnd BattleScript_EffectPayDay:: setmoveeffect EFFECT_PAYDAY goto BattleScript_EffectHit BattleScript_EffectLightScreen:: attackcanceler attackstring ppreduce setlightscreen goto BattleScript_82D928C BattleScript_EffectTriAttack:: setmoveeffect EFFECT_TRI_ATTACK goto BattleScript_EffectHit BattleScript_EffectRest:: attackcanceler attackstring ppreduce jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D8FD6 jumpifcantmakeasleep BattleScript_82D8FC6 trysetrest BattleScript_AlreadyAtFullHp pause 0x20 printfromtable 0x85CC882 waitmessage 0x40 updatestatusicon ATTACKER waitstate goto BattleScript_PresentHealTarget BattleScript_82D8FC6:: pause 0x40 printfromtable 0x85CC896 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82D8FD6:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNALREADYASLEEP2 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectOhko:: attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON typecalc jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_HitFromAtkAnimation tryKO BattleScript_82D9008 trysetdestinybondtohappen goto BattleScript_HitFromAtkAnimation BattleScript_82D9008:: pause 0x40 printfromtable 0x85CC8F4 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectRazorWind:: jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 setbyte sFIELD_F, 0x0 call BattleScript_82D906F goto BattleScript_MoveEnd BattleScript_82D9040:: attackcanceler setmoveeffect EFFECT_CHARGING setbyte sANIM_TURN, 0x1 clearstatusfromeffect ATTACKER orword gHitMarker, HITMARKER_NO_PPDEDUCT jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck setmoveeffect EFFECT_FLINCH goto BattleScript_HitFromAccCheck BattleScript_82D906F:: attackcanceler printstring STRINGID_EMPTYSTRING3 ppreduce attackanimation waitanimation orword gHitMarker, HITMARKER_x8000000 setmoveeffect EFFECT_CHARGING | AFFECTS_USER seteffectprimary copybyte cMULTISTRING_CHOOSER, sFIELD_F printfromtable 0x85CC8B0 waitmessage 0x40 return BattleScript_EffectSuperFang:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE damagetohalftargethp goto BattleScript_HitFromAtkAnimation BattleScript_EffectDragonRage:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE setword gBattleMoveDamage, 40 adjustsetdamage goto BattleScript_HitFromAtkAnimation BattleScript_EffectTrap:: jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_WHIRLPOOL, BattleScript_82D9105 jumpifstatus3 TARGET, STATUS3_UNDERWATER, 0x1, BattleScript_82D9105 orword gHitMarker, HITMARKER_IGNORE_UNDERWATER setbyte sDMG_MULTIPLIER, 0x2 BattleScript_82D9105:: setmoveeffect EFFECT_WRAP goto BattleScript_EffectHit BattleScript_EffectDoubleHit:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce setmultihitcounter 0x2 initmultihitstring setbyte sFIELD_16, 0x0 goto BattleScript_82D8DFD BattleScript_EffectRecoilIfMiss:: attackcanceler accuracycheck BattleScript_82D9135, ACC_CURR_MOVE goto BattleScript_HitFromAtkString BattleScript_82D9135:: attackstring ppreduce pause 0x40 resultmessage waitmessage 0x40 jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_MoveEnd printstring STRINGID_PKMNCRASHED waitmessage 0x40 damagecalc typecalc adjustnormaldamage manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP bicbyte gBattleMoveFlags, MOVESTATUS_MISSED orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate ATTACKER datahpupdate ATTACKER tryfaintmon ATTACKER, FALSE, NULL orbyte gBattleMoveFlags, MOVESTATUS_MISSED goto BattleScript_MoveEnd BattleScript_EffectMist:: attackcanceler attackstring ppreduce setmist attackanimation waitanimation printfromtable 0x85CC8CC waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectFocusEnergy:: attackcanceler attackstring ppreduce jumpifstatus2 ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed setfocusenergy attackanimation waitanimation printfromtable 0x85CC8D0 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectRecoil:: setmoveeffect EFFECT_RECOIL_25 | AFFECTS_USER | CERTAIN jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_EffectHit incrementgamestat 0x1B goto BattleScript_EffectHit BattleScript_EffectConfuse:: attackcanceler attackstring ppreduce jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_82D9201 accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 attackanimation waitanimation setmoveeffect EFFECT_CONFUSION seteffectprimary resultmessage waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82D9201:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNALREADYCONFUSED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectAttackUp2:: setstatchanger ATK, 2, FALSE goto BattleScript_EffectStatUp BattleScript_EffectDefenseUp2:: setstatchanger DEF, 2, FALSE goto BattleScript_EffectStatUp BattleScript_EffectSpeedUp2:: setstatchanger SPEED, 2, FALSE goto BattleScript_EffectStatUp BattleScript_EffectSpecialAttackUp2:: setstatchanger SPATK, 2, FALSE goto BattleScript_EffectStatUp BattleScript_EffectSpecialDefenseUp2:: setstatchanger SPDEF, 2, FALSE goto BattleScript_EffectStatUp BattleScript_EffectTransform:: attackcanceler attackstring ppreduce transformdataexecution attackanimation waitanimation printfromtable 0x85CC8D4 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectAttackDown2:: setstatchanger ATK, 2, TRUE goto BattleScript_EffectStatDown BattleScript_EffectDefenseDown2:: setstatchanger DEF, 2, TRUE goto BattleScript_EffectStatDown BattleScript_EffectSpeedDown2:: setstatchanger SPEED, 2, TRUE goto BattleScript_EffectStatDown BattleScript_EffectSpecialDefenseDown2:: setstatchanger SPDEF, 2, TRUE goto BattleScript_EffectStatDown BattleScript_EffectReflect:: attackcanceler attackstring ppreduce setreflect BattleScript_82D928C:: attackanimation waitanimation printfromtable 0x85CC86C waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectPoison:: attackcanceler attackstring ppreduce jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_82D8F63 jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 attackanimation waitanimation setmoveeffect EFFECT_POISON seteffectprimary resultmessage waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectParalyze:: attackcanceler attackstring ppreduce jumpifability TARGET, ABILITY_LIMBER, BattleScript_82D9362 jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed typecalc jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_ButItFailed jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_82D9351 jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 attackanimation waitanimation setmoveeffect EFFECT_PARALYSIS seteffectprimary resultmessage waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82D9351:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNISALREADYPARALYZED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82D9362:: copybyte gEffectBank, gBankTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PRLZPrevention goto BattleScript_MoveEnd BattleScript_EffectAttackDownHit:: setmoveeffect EFFECT_ATK_MINUS_1 goto BattleScript_EffectHit BattleScript_EffectDefenseDownHit:: setmoveeffect EFFECT_DEF_MINUS_1 goto BattleScript_EffectHit BattleScript_EffectSpeedDownHit:: setmoveeffect EFFECT_SPD_MINUS_1 goto BattleScript_EffectHit BattleScript_EffectSpecialAttackDownHit:: setmoveeffect EFFECT_SP_ATK_MINUS_1 goto BattleScript_EffectHit BattleScript_EffectSpecialDefenseDownHit:: setmoveeffect EFFECT_SP_DEF_MINUS_1 goto BattleScript_EffectHit BattleScript_EffectAccuracyDownHit:: setmoveeffect EFFECT_ACC_MINUS_1 goto BattleScript_EffectHit BattleScript_EffectSkyAttack:: jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 setbyte sFIELD_F, 0x3 call BattleScript_82D906F goto BattleScript_MoveEnd BattleScript_EffectConfuseHit:: setmoveeffect EFFECT_CONFUSION goto BattleScript_EffectHit BattleScript_EffectTwineedle:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE setbyte sFIELD_16, 0x2 attackstring ppreduce setmultihitcounter 0x2 initmultihitstring goto BattleScript_82D8DFD BattleScript_EffectSubstitute:: attackcanceler ppreduce attackstring waitstate jumpifstatus2 ATTACKER, STATUS2_SUBSTITUTE, BattleScript_82D943E setsubstitute jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_82D942B pause 0x20 goto BattleScript_82D9431 BattleScript_82D942B:: attackanimation waitanimation healthbarupdate ATTACKER datahpupdate ATTACKER BattleScript_82D9431:: printfromtable 0x85CC8D8 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82D943E:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNHASSUBSTITUTE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectRecharge:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE setmoveeffect EFFECT_RECHARGE | AFFECTS_USER | CERTAIN goto BattleScript_HitFromAtkString BattleScript_MoveUsedMustRecharge:: printstring STRINGID_PKMNMUSTRECHARGE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectRage:: attackcanceler accuracycheck BattleScript_82D9487, ACC_CURR_MOVE setmoveeffect EFFECT_RAGE seteffectprimary setmoveeffect 0 goto BattleScript_HitFromAtkString BattleScript_82D9487:: setmoveeffect EFFECT_RAGE clearstatusfromeffect ATTACKER goto BattleScript_PrintMoveMissed BattleScript_EffectMimic:: attackcanceler attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON mimicattackcopy BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNLEARNEDMOVE2 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectMetronome:: attackcanceler attackstring pause 0x20 attackanimation waitanimation setbyte sANIM_TURN, 0x0 setbyte sANIM_TARGETS_HIT, 0x0 metronome BattleScript_EffectLeechSeed:: attackcanceler attackstring pause 0x20 ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed accuracycheck BattleScript_82D94E5, ACC_CURR_MOVE BattleScript_82D94E5:: setseeded attackanimation waitanimation printfromtable 0x85CC878 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectSplash:: attackcanceler attackstring ppreduce attackanimation waitanimation incrementgamestat 0x1A printstring STRINGID_BUTNOTHINGHAPPENED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectDisable:: attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE disablelastusedattack BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNMOVEWASDISABLED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectLevelDamage:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE dmgtolevel adjustsetdamage goto BattleScript_HitFromAtkAnimation BattleScript_EffectPsywave:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE psywavedamageeffect adjustsetdamage goto BattleScript_HitFromAtkAnimation BattleScript_EffectCounter:: attackcanceler counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc2 adjustsetdamage goto BattleScript_HitFromAtkAnimation BattleScript_EffectEncore:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce trysetencore BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNGOTENCORE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectPainSplit:: attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON painsplitdmgcalc BattleScript_ButItFailed attackanimation waitanimation orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate ATTACKER datahpupdate ATTACKER copyword gBattleMoveDamage, sPAINSPLIT_HP healthbarupdate TARGET datahpupdate TARGET printstring STRINGID_SHAREDPAIN waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectSnore:: attackcanceler jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D95CE attackstring ppreduce goto BattleScript_ButItFailed BattleScript_82D95CE:: jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D95E2 printstring STRINGID_PKMNFASTASLEEP waitmessage 0x40 statusanimation ATTACKER BattleScript_82D95E2:: attackstring ppreduce accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE setmoveeffect EFFECT_FLINCH goto BattleScript_HitFromCritCalc BattleScript_EffectConversion2:: attackcanceler attackstring ppreduce settypetorandomresistance BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNCHANGEDTYPE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectLockOn:: attackcanceler attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE setalwayshitflag attackanimation waitanimation printstring STRINGID_PKMNTOOKAIM waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectSketch:: attackcanceler attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed copymovepermanently BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNSKETCHEDMOVE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectSleepTalk:: attackcanceler jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D965E attackstring ppreduce goto BattleScript_ButItFailed BattleScript_82D965E:: printstring STRINGID_PKMNFASTASLEEP waitmessage 0x40 statusanimation ATTACKER attackstring ppreduce orword gHitMarker, HITMARKER_NO_PPDEDUCT sleeptalk_choose_move BattleScript_82D967E pause 0x40 goto BattleScript_ButItFailed BattleScript_82D967E:: attackanimation waitanimation setbyte sANIM_TURN, 0x0 setbyte sANIM_TARGETS_HIT, 0x0 jumptorandomattack 0x1 BattleScript_EffectDestinyBond:: attackcanceler attackstring ppreduce setdestinybond attackanimation waitanimation printstring STRINGID_PKMNTRYINGTOTAKEFOE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectFlail:: remaininghptopower goto BattleScript_EffectHit BattleScript_EffectSpite:: attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE tryspiteppreduce BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNREDUCEDPP waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectHealBell:: attackcanceler attackstring ppreduce healpartystatus waitstate attackanimation waitanimation printfromtable 0x85CC904 waitmessage 0x40 jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_HEAL_BELL, BattleScript_82D96FE jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_82D96ED printstring STRINGID_PKMNSXBLOCKSY waitmessage 0x40 BattleScript_82D96ED:: jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D96FE printstring STRINGID_PKMNSXBLOCKSY2 waitmessage 0x40 BattleScript_82D96FE:: updatestatusicon ATTACKER_WITH_PARTNER waitstate goto BattleScript_MoveEnd BattleScript_EffectTripleKick:: attackcanceler attackstring ppreduce setbyte sTRIPLE_KICK_POWER, 0x0 setbyte sFIELD_13, 0x0 initmultihitstring setmultihit 0x3 BattleScript_82D9718:: jumpifhasnohp ATTACKER, BattleScript_82D97D7 jumpifhasnohp TARGET, BattleScript_82D9799 jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D973A jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D9799 BattleScript_82D973A:: accuracycheck BattleScript_82D9799, ACC_CURR_MOVE movevaluescleanup addbyte sTRIPLE_KICK_POWER, 0xA addbyte sMULTIHIT_STRING + 4, 0x1 copyarray gDynamicBasePower, sTRIPLE_KICK_POWER, 0x2 critcalc damagecalc typecalc adjustnormaldamage jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D9799 attackanimation waitanimation effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET critmessage waitmessage 0x40 printstring STRINGID_EMPTYSTRING3 waitmessage 0x1 setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_82D97AD decrementmultihit BattleScript_82D9718 goto BattleScript_82D97AD BattleScript_82D9799:: pause 0x20 jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_82D97AD bicbyte gBattleMoveFlags, MOVESTATUS_MISSED BattleScript_82D97AD:: resultmessage waitmessage 0x40 jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_82D97D7 jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_82D97D7 copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 printstring STRINGID_HITXTIMES waitmessage 0x40 BattleScript_82D97D7:: seteffectwithchance tryfaintmon TARGET, FALSE, NULL setbyte sMOVEEND_STATE, 0xE moveend 0x0, 0x0 end BattleScript_EffectThief:: setmoveeffect EFFECT_STEAL_ITEM goto BattleScript_EffectHit BattleScript_EffectMeanLook:: attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, NO_ACC_CALC jumpifstatus2 TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed attackanimation waitanimation setmoveeffect EFFECT_PREVENT_ESCAPE seteffectprimary printstring STRINGID_TARGETCANTESCAPENOW waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectNightmare:: attackcanceler attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed jumpifstatus TARGET, STATUS_SLEEP, BattleScript_NightmareWorked goto BattleScript_ButItFailed BattleScript_NightmareWorked:: attackanimation waitanimation setmoveeffect EFFECT_NIGHTMARE seteffectprimary printstring STRINGID_PKMNFELLINTONIGHTMARE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectMinimize:: attackcanceler setminimize setstatchanger EVASION, 1, FALSE goto BattleScript_EffectStatUpAfterAtkCanceler BattleScript_EffectCurse:: jumpiftype2 ATTACKER, TYPE_GHOST, BattleScript_82D98E5 attackcanceler attackstring ppreduce jumpifstat ATTACKER, GREATER_THAN, SPEED, 0x0, BattleScript_82D9892 jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_82D9892 jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed BattleScript_82D9892:: copybyte gBankTarget, gBankAttacker setbyte sANIM_TURN, 0x1 attackanimation waitanimation setstatchanger SPEED, 1, TRUE statbuffchange 0x41, BattleScript_82D98B8 printfromtable 0x85CC8A8 waitmessage 0x40 BattleScript_82D98B8:: setstatchanger ATK, 1, FALSE statbuffchange 0x41, BattleScript_82D98CC printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82D98CC:: setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82D98E0 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82D98E0:: goto BattleScript_MoveEnd BattleScript_82D98E5:: jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_82D98F6 various ATTACKER, VARIOUS_GET_MOVE_TARGET BattleScript_82D98F6:: attackcanceler attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON cursetarget BattleScript_ButItFailed orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE setbyte sANIM_TURN, 0x0 attackanimation waitanimation healthbarupdate ATTACKER datahpupdate ATTACKER printstring STRINGID_PKMNLAIDCURSE waitmessage 0x40 tryfaintmon ATTACKER, FALSE, NULL goto BattleScript_MoveEnd BattleScript_EffectProtect:: attackcanceler attackstring ppreduce setprotectlike attackanimation waitanimation printfromtable 0x85CC866 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectSpikes:: attackcanceler trysetspikes BattleScript_ButItFailedAtkStringPpReduce attackstring ppreduce attackanimation waitanimation printstring STRINGID_SPIKESSCATTERED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectForesight:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce setforesight attackanimation waitanimation printstring STRINGID_PKMNIDENTIFIED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectPerishSong:: attackcanceler attackstring ppreduce trysetperishsong BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_FAINTINTHREE waitmessage 0x40 setbyte sBANK, 0x0 BattleScript_PerishSongLoop:: jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected BattleScript_PerishSongLoopIncrement:: addbyte sBANK, 0x1 jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_PerishSongLoop goto BattleScript_MoveEnd BattleScript_PerishSongNotAffected:: printstring STRINGID_PKMNSXBLOCKSY2 waitmessage 0x40 goto BattleScript_PerishSongLoopIncrement BattleScript_EffectSandstorm:: attackcanceler attackstring ppreduce setsandstorm goto BattleScript_82D9B41 BattleScript_EffectRollout:: attackcanceler attackstring jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D99CD ppreduce BattleScript_82D99CD:: accuracycheck BattleScript_82D99D4, ACC_CURR_MOVE BattleScript_82D99D4:: typecalc2 rolloutdamagecalculation goto BattleScript_HitFromCritCalc BattleScript_EffectSwagger:: attackcanceler jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce jumpifconfusedandstatmaxed ATK, BattleScript_ButItFailed attackanimation waitanimation setstatchanger ATK, 2, FALSE statbuffchange 0x1, BattleScript_82D9A1E jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D9A1E setgraphicalstatchangevalues playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82D9A1E:: jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 setmoveeffect EFFECT_CONFUSION seteffectprimary goto BattleScript_MoveEnd BattleScript_EffectFuryCutter:: attackcanceler attackstring ppreduce accuracycheck BattleScript_82D9A43, ACC_CURR_MOVE BattleScript_82D9A43:: furycuttercalc critcalc damagecalc typecalc jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D9A43 adjustnormaldamage goto BattleScript_HitFromAtkAnimation BattleScript_EffectAttract:: attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE tryinfatuating BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNFELLINLOVE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectReturn:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE happinesstodamagecalculation goto BattleScript_HitFromAtkString BattleScript_EffectPresent:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc presentdamagecalculation BattleScript_EffectSafeguard:: attackcanceler attackstring ppreduce setsafeguard goto BattleScript_82D928C BattleScript_EffectThawHit:: setmoveeffect EFFECT_BURN goto BattleScript_EffectHit BattleScript_EffectMagnitude:: attackcanceler attackstring ppreduce selectfirstvalidtarget magnitudedamagecalculation pause 0x20 printstring STRINGID_MAGNITUDESTRENGTH waitmessage 0x40 goto BattleScript_82D9C44 BattleScript_EffectBatonPass:: attackcanceler attackstring ppreduce jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_ARENA, BattleScript_ButItFailed jumpifcantswitch ATK4F_DONT_CHECK_STATUSES | ATTACKER, BattleScript_ButItFailed attackanimation waitanimation openpartyscreen 0x1, BattleScript_ButItFailed switchoutabilities ATTACKER waitstate switchhandleorder ATTACKER, 0x2 returntoball ATTACKER getswitchedmondata ATTACKER switchindataupdate ATTACKER hpthresholds ATTACKER printstring STRINGID_SWITCHINMON switchinanim ATTACKER, 0x1 waitstate switchineffects ATTACKER goto BattleScript_MoveEnd BattleScript_EffectRapidSpin:: setmoveeffect EFFECT_RAPIDSPIN | AFFECTS_USER | CERTAIN goto BattleScript_EffectHit BattleScript_EffectSonicboom:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE setword gBattleMoveDamage, 20 adjustsetdamage goto BattleScript_HitFromAtkAnimation BattleScript_EffectMorningSun:: attackcanceler attackstring ppreduce recoverbasedonsunlight BattleScript_AlreadyAtFullHp goto BattleScript_PresentHealTarget BattleScript_EffectHiddenPower:: hiddenpowercalc goto BattleScript_EffectHit BattleScript_EffectRainDance:: attackcanceler attackstring ppreduce setrain BattleScript_82D9B41:: attackanimation waitanimation printfromtable 0x85CC848 waitmessage 0x40 call BattleScript_82DB48D goto BattleScript_MoveEnd BattleScript_EffectSunnyDay:: attackcanceler attackstring ppreduce setsunny goto BattleScript_82D9B41 BattleScript_EffectDefenseUpHit:: setmoveeffect EFFECT_DEF_PLUS_1 | AFFECTS_USER goto BattleScript_EffectHit BattleScript_EffectAttackUpHit:: setmoveeffect EFFECT_ATK_PLUS_1 | AFFECTS_USER goto BattleScript_EffectHit BattleScript_EffectAllStatsUpHit:: setmoveeffect EFFECT_ALL_STATS_UP | AFFECTS_USER goto BattleScript_EffectHit BattleScript_EffectBellyDrum:: attackcanceler attackstring ppreduce maxattackhalvehp BattleScript_ButItFailed orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE attackanimation waitanimation healthbarupdate ATTACKER datahpupdate ATTACKER printstring STRINGID_PKMNCUTHPMAXEDATTACK waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectPsychUp:: attackcanceler attackstring ppreduce copyfoestats BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNCOPIEDSTATCHANGES waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectMirrorCoat:: attackcanceler mirrorcoatdamagecalculator BattleScript_ButItFailedAtkStringPpReduce accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce typecalc2 adjustsetdamage goto BattleScript_HitFromAtkAnimation BattleScript_EffectSkullBash:: jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 setbyte sFIELD_F, 0x2 call BattleScript_82D906F setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82D9C16 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D9C16 setgraphicalstatchangevalues playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82D9C16:: goto BattleScript_MoveEnd BattleScript_EffectTwister:: jumpifstatus3 TARGET, STATUS3_ON_AIR, 0x1, BattleScript_82D9C35 orword gHitMarker, HITMARKER_IGNORE_ON_AIR setbyte sDMG_MULTIPLIER, 0x2 BattleScript_82D9C35:: setmoveeffect EFFECT_FLINCH goto BattleScript_EffectHit BattleScript_EffectEarthquake:: attackcanceler attackstring ppreduce selectfirstvalidtarget BattleScript_82D9C44:: movevaluescleanup jumpifstatus3 TARGET, STATUS3_UNDERGROUND, 0x1, BattleScript_82D9C64 orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND setbyte sDMG_MULTIPLIER, 0x2 goto BattleScript_82D9C73 BattleScript_82D9C64:: bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND setbyte sDMG_MULTIPLIER, 0x1 BattleScript_82D9C73:: accuracycheck BattleScript_82D9CAC, ACC_CURR_MOVE critcalc damagecalc typecalc adjustnormaldamage attackanimation waitanimation effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 printstring STRINGID_EMPTYSTRING3 waitmessage 0x1 tryfaintmon TARGET, FALSE, NULL setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 jumpifnexttargetvalid BattleScript_82D9C44 end BattleScript_82D9CAC:: pause 0x20 typecalc effectivenesssound resultmessage waitmessage 0x40 setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 jumpifnexttargetvalid BattleScript_82D9C44 end BattleScript_EffectFutureSight:: attackcanceler attackstring ppreduce trysetfutureattack BattleScript_ButItFailed attackanimation waitanimation printfromtable 0x85CC90E waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectGust:: jumpifstatus3 TARGET, STATUS3_ON_AIR, 0x1, BattleScript_EffectHit orword gHitMarker, HITMARKER_IGNORE_ON_AIR setbyte sDMG_MULTIPLIER, 0x2 goto BattleScript_EffectHit BattleScript_EffectStomp:: jumpifstatus3 TARGET, STATUS3_MINIMIZED, 0x1, BattleScript_82D9C35 setbyte sDMG_MULTIPLIER, 0x2 goto BattleScript_82D9C35 BattleScript_EffectSolarbeam:: jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_82D9D28 jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_82D9D28 jumpifhalfword COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_82D9D50 BattleScript_82D9D28:: jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 setbyte sFIELD_F, 0x1 call BattleScript_82D906F goto BattleScript_MoveEnd BattleScript_82D9D50:: orword gHitMarker, HITMARKER_x8000000 setmoveeffect EFFECT_CHARGING | AFFECTS_USER seteffectprimary ppreduce goto BattleScript_82D9040 BattleScript_EffectThunder:: setmoveeffect EFFECT_PARALYSIS orword gHitMarker, HITMARKER_IGNORE_ON_AIR goto BattleScript_EffectHit BattleScript_EffectTeleport:: attackcanceler attackstring ppreduce jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_ButItFailed various ATTACKER, VARIOUS_IS_RUNNING_IMPOSSIBLE jumpifbyte EQUAL, gBattleCommunication, 0x1, BattleScript_ButItFailed jumpifbyte EQUAL, gBattleCommunication, 0x2, BattleScript_82DA382 attackanimation waitanimation printstring STRINGID_PKMNFLEDFROMBATTLE waitmessage 0x40 various ATTACKER, VARIOUS_SET_TELEPORT_OUTCOME goto BattleScript_MoveEnd BattleScript_EffectBeatUp:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring pause 0x20 ppreduce setbyte gBattleCommunication, 0x0 BattleScript_BeatUpLoop:: movevaluescleanup trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed printstring STRINGID_PKMNATTACK critcalc jumpifbyte NOT_EQUAL, gCritMultiplier, 0x2, BattleScript_BeatUpAttack manipulatedamage ATK80_DMG_DOUBLED BattleScript_BeatUpAttack:: adjustnormaldamage attackanimation waitanimation effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 tryfaintmon TARGET, FALSE, NULL setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 goto BattleScript_BeatUpLoop BattleScript_BeatUpEnd:: end BattleScript_EffectFly:: jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9E79 jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9E79 jumpifhalfword EQUAL, gCurrentMove, MOVE_FLY, BattleScript_82D9E68 jumpifhalfword EQUAL, gCurrentMove, MOVE_DIVE, BattleScript_82D9E5D jumpifhalfword EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_82D9E52 setbyte sFIELD_F, 0x5 goto BattleScript_82D9E6E BattleScript_82D9E52:: setbyte sFIELD_F, 0x7 goto BattleScript_82D9E6E BattleScript_82D9E5D:: setbyte sFIELD_F, 0x6 goto BattleScript_82D9E6E BattleScript_82D9E68:: setbyte sFIELD_F, 0x4 BattleScript_82D9E6E:: call BattleScript_82D906F setsemiinvulnerablebit goto BattleScript_MoveEnd BattleScript_82D9E79:: attackcanceler setmoveeffect EFFECT_CHARGING setbyte sANIM_TURN, 0x1 clearstatusfromeffect ATTACKER orword gHitMarker, HITMARKER_NO_PPDEDUCT jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_82D9EA3 setmoveeffect EFFECT_PARALYSIS BattleScript_82D9EA3:: accuracycheck BattleScript_82D9EB0, ACC_CURR_MOVE clearsemiinvulnerablebit goto BattleScript_HitFromAtkString BattleScript_82D9EB0:: clearsemiinvulnerablebit goto BattleScript_PrintMoveMissed BattleScript_EffectDefenseCurl:: attackcanceler attackstring ppreduce setdefensecurlbit setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82D9ED3 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8CC7 attackanimation waitanimation BattleScript_82D9ED3:: goto BattleScript_82D8CBF BattleScript_EffectSoftboiled:: attackcanceler attackstring ppreduce tryhealhalfhealth BattleScript_AlreadyAtFullHp, TARGET BattleScript_PresentHealTarget:: attackanimation waitanimation orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate TARGET datahpupdate TARGET printstring STRINGID_PKMNREGAINEDHEALTH waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_AlreadyAtFullHp:: pause 0x20 printstring STRINGID_PKMNHPFULL waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectFakeOut:: attackcanceler jumpifnotfirstturn BattleScript_ButItFailedAtkStringPpReduce setmoveeffect EFFECT_FLINCH | CERTAIN goto BattleScript_EffectHit BattleScript_ButItFailedAtkStringPpReduce:: attackstring BattleScript_ButItFailedPpReduce:: ppreduce BattleScript_ButItFailed:: pause 0x20 orbyte gBattleMoveFlags, MOVESTATUS_FAILED resultmessage waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_NotAffected:: pause 0x20 orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED resultmessage waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectUproar:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE setmoveeffect EFFECT_UPROAR | AFFECTS_USER attackstring jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9F5A ppreduce BattleScript_82D9F5A:: nop goto BattleScript_HitFromCritCalc BattleScript_EffectStockpile:: attackcanceler attackstring ppreduce stockpile attackanimation waitanimation printfromtable 0x85CC88A waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectSpitUp:: attackcanceler jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82D9FA2 attackstring ppreduce accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE stockpiletobasedamage BattleScript_SpitUpFail typecalc adjustsetdamage goto BattleScript_HitFromAtkAnimation BattleScript_SpitUpFail:: pause 0x20 printstring STRINGID_FAILEDTOSPITUP waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82D9FA2:: attackstring ppreduce pause 0x40 stockpiletobasedamage BattleScript_SpitUpFail resultmessage waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectSwallow:: attackcanceler attackstring ppreduce stockpiletohpheal BattleScript_SwallowFail goto BattleScript_PresentHealTarget BattleScript_SwallowFail:: pause 0x20 printfromtable 0x85CC892 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectHail:: attackcanceler attackstring ppreduce sethail goto BattleScript_82D9B41 BattleScript_EffectTorment:: attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE settorment BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNSUBJECTEDTOTORMENT waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectFlatter:: attackcanceler jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce jumpifconfusedandstatmaxed SPATK, BattleScript_ButItFailed attackanimation waitanimation setstatchanger SPATK, 1, FALSE statbuffchange 0x1, BattleScript_82DA03A jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA03A setgraphicalstatchangevalues playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DA03A:: jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 setmoveeffect EFFECT_CONFUSION seteffectprimary goto BattleScript_MoveEnd BattleScript_EffectWillOWisp:: attackcanceler attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus TARGET, STATUS_BURN, BattleScript_82DA0BB jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_82DA0A1 jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 attackanimation waitanimation setmoveeffect EFFECT_BURN seteffectprimary goto BattleScript_MoveEnd BattleScript_82DA0A1:: copybyte gEffectBank, gBankTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_BRNPrevention goto BattleScript_MoveEnd BattleScript_82DA0BB:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNALREADYHASBURN waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectMemento:: attackcanceler jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82DA153 attackstring ppreduce jumpifattackandspecialattackcannotfall BattleScript_ButItFailed setatkhptozero attackanimation waitanimation jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DA148 setbyte sFIELD_1B, 0x0 playstatchangeanimation TARGET, 0x12, 0x7 playstatchangeanimation TARGET, 0x2, 0x3 setstatchanger ATK, 2, TRUE statbuffchange 0x1, BattleScript_82DA119 jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA119 printfromtable 0x85CC8A8 waitmessage 0x40 BattleScript_82DA119:: playstatchangeanimation TARGET, 0x10, 0x3 setstatchanger SPATK, 2, TRUE statbuffchange 0x1, BattleScript_82DA13C jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA13C printfromtable 0x85CC8A8 waitmessage 0x40 BattleScript_82DA13C:: tryfaintmon ATTACKER, FALSE, NULL goto BattleScript_MoveEnd BattleScript_82DA148:: printstring STRINGID_BUTNOEFFECT waitmessage 0x40 goto BattleScript_82DA13C BattleScript_82DA153:: attackstring ppreduce jumpifattackandspecialattackcannotfall BattleScript_82DA15A BattleScript_82DA15A:: setatkhptozero pause 0x40 effectivenesssound resultmessage waitmessage 0x40 tryfaintmon ATTACKER, FALSE, NULL goto BattleScript_MoveEnd BattleScript_EffectFacade:: jumpifstatus ATTACKER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleScript_FacadeDoubleDmg goto BattleScript_EffectHit BattleScript_FacadeDoubleDmg:: setbyte sDMG_MULTIPLIER, 0x2 goto BattleScript_EffectHit BattleScript_EffectFocusPunch:: attackcanceler jumpifnodamage BattleScript_HitFromAccCheck ppreduce printstring STRINGID_PKMNLOSTFOCUS waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectSmellingsalt:: jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit setmoveeffect EFFECT_REMOVE_PARALYSIS | CERTAIN jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_82DA1BA goto BattleScript_EffectHit BattleScript_82DA1BA:: setbyte sDMG_MULTIPLIER, 0x2 goto BattleScript_EffectHit BattleScript_EffectFollowMe:: attackcanceler attackstring ppreduce setforcedtarget attackanimation waitanimation printstring STRINGID_PKMNCENTERATTENTION waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectNaturePower:: attackcanceler attackstring pause 0x20 callterrainattack printstring STRINGID_NATUREPOWERTURNEDINTO waitmessage 0x40 return BattleScript_EffectCharge:: attackcanceler attackstring ppreduce setcharge attackanimation waitanimation printstring STRINGID_PKMNCHARGINGPOWER waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectTaunt:: attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE settaunt BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNFELLFORTAUNT waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectHelpingHand:: attackcanceler attackstring ppreduce trysethelpinghand BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNREADYTOHELP waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectTrick:: attackcanceler attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE tryswapitems BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNSWITCHEDITEMS waitmessage 0x40 printfromtable 0x85CC970 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectRolePlay:: attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON trycopyability BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNCOPIEDFOE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectWish:: attackcanceler attackstring ppreduce trywish 0x0, BattleScript_ButItFailed attackanimation waitanimation goto BattleScript_MoveEnd BattleScript_EffectAssist:: attackcanceler attackstring asistattackselect BattleScript_ButItFailedPpReduce attackanimation waitanimation setbyte sANIM_TURN, 0x0 setbyte sANIM_TARGETS_HIT, 0x0 jumptorandomattack 0x1 BattleScript_EffectIngrain:: attackcanceler attackstring ppreduce trysetroots BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNPLANTEDROOTS waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectSuperpower:: setmoveeffect EFFECT_ATK_DEF_DOWN | AFFECTS_USER | CERTAIN goto BattleScript_EffectHit BattleScript_EffectMagicCoat:: attackcanceler trysetmagiccoat BattleScript_ButItFailedAtkStringPpReduce attackstring ppreduce attackanimation waitanimation printstring STRINGID_PKMNSHROUDEDITSELF waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectRecycle:: attackcanceler attackstring ppreduce tryrecycleitem BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_XFOUNDONEY waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectRevenge:: doubledamagedealtifdamaged goto BattleScript_EffectHit BattleScript_EffectBrickBreak:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce removelightscreenreflect critcalc damagecalc typecalc adjustnormaldamage jumpifbyte EQUAL, sANIM_TURN, 0x0, BattleScript_82DA306 bicbyte gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED BattleScript_82DA306:: attackanimation waitanimation jumpifbyte LESS_THAN, sANIM_TURN, 0x2, BattleScript_82DA319 printstring STRINGID_THEWALLSHATTERED waitmessage 0x40 BattleScript_82DA319:: typecalc2 effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 seteffectwithchance tryfaintmon TARGET, FALSE, NULL goto BattleScript_MoveEnd BattleScript_EffectYawn:: attackcanceler attackstring ppreduce jumpifability TARGET, ABILITY_VITAL_SPIRIT, BattleScript_82DA378 jumpifability TARGET, ABILITY_INSOMNIA, BattleScript_82DA378 jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON jumpifcantmakeasleep BattleScript_ButItFailed setyawn BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNWASMADEDROWSY waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82DA378:: copybyte sBANK, sFIELD_15 BattleScript_82DA382:: pause 0x20 printstring STRINGID_PKMNSXMADEITINEFFECTIVE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectKnockOff:: setmoveeffect EFFECT_KNOCK_OFF goto BattleScript_EffectHit BattleScript_EffectEndeavor:: attackcanceler attackstring ppreduce setdamagetohealthdifference BattleScript_ButItFailed copyword gHpDealt, gBattleMoveDamage accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE typecalc jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_HitFromAtkAnimation bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE copyword gBattleMoveDamage, gHpDealt adjustsetdamage goto BattleScript_HitFromAtkAnimation BattleScript_EffectEruption:: scaledamagebyhealthratio goto BattleScript_EffectHit BattleScript_EffectSkillSwap:: attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON tryswapabilities BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNSWAPPEDABILITIES waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectImprison:: attackcanceler attackstring ppreduce tryimprision BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNSEALEDOPPONENTMOVE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectRefresh:: attackcanceler attackstring ppreduce cureifburnedparalysedorpoisoned BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNSTATUSNORMAL waitmessage 0x40 updatestatusicon ATTACKER goto BattleScript_MoveEnd BattleScript_EffectGrudge:: attackcanceler attackstring ppreduce trysetgrudge BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNWANTSGRUDGE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectSnatch:: attackcanceler trysetsnatch BattleScript_ButItFailedAtkStringPpReduce attackstring ppreduce attackanimation waitanimation pause 0x20 printstring STRINGID_PKMNWAITSFORTARGET waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectLowKick:: attackcanceler attackstring ppreduce weightdamagecalculation accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE goto BattleScript_HitFromCritCalc BattleScript_EffectSecretPower:: getsecretpowereffect goto BattleScript_EffectHit BattleScript_EffectDoubleEdge:: setmoveeffect EFFECT_RECOIL_33_PARALYSIS | AFFECTS_USER | CERTAIN goto BattleScript_EffectHit BattleScript_EffectTeeterDance:: attackcanceler attackstring ppreduce setbyte gBankTarget, 0x0 BattleScript_82DA47B:: movevaluescleanup setmoveeffect EFFECT_CONFUSION jumpifbyteequal gBankAttacker, gBankTarget, BattleScript_82DA4D0 jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DA4E5 jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DA501 jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_82DA50F jumpifhasnohp TARGET, BattleScript_82DA4D0 accuracycheck BattleScript_82DA520, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DA4F3 attackanimation waitanimation seteffectprimary resultmessage waitmessage 0x40 BattleScript_82DA4C7:: setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 BattleScript_82DA4D0:: addbyte gBankTarget, 0x1 jumpifbytenotequal gBankTarget, gNoOfAllBanks, BattleScript_82DA47B end BattleScript_82DA4E5:: pause 0x20 printstring STRINGID_PKMNPREVENTSCONFUSIONWITH waitmessage 0x40 goto BattleScript_82DA4C7 BattleScript_82DA4F3:: pause 0x20 printstring STRINGID_PKMNUSEDSAFEGUARD waitmessage 0x40 goto BattleScript_82DA4C7 BattleScript_82DA501:: pause 0x20 printstring STRINGID_BUTITFAILED waitmessage 0x40 goto BattleScript_82DA4C7 BattleScript_82DA50F:: various ATTACKER, 0x17 pause 0x20 printstring STRINGID_PKMNALREADYCONFUSED waitmessage 0x40 goto BattleScript_82DA4C7 BattleScript_82DA520:: resultmessage waitmessage 0x40 goto BattleScript_82DA4C7 BattleScript_EffectMudSport:: attackcanceler attackstring ppreduce settypebasedhalvers BattleScript_ButItFailed attackanimation waitanimation printfromtable 0x85CC900 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectPoisonFang:: setmoveeffect EFFECT_TOXIC goto BattleScript_EffectHit BattleScript_EffectWeatherBall:: setweatherballtype goto BattleScript_EffectHit BattleScript_EffectOverheat:: setmoveeffect EFFECT_SP_ATK_TWO_DOWN | AFFECTS_USER | CERTAIN goto BattleScript_EffectHit BattleScript_EffectTickle:: attackcanceler attackstring ppreduce jumpifstat TARGET, GREATER_THAN, ATK, 0x0, BattleScript_82DA571 jumpifstat TARGET, EQUAL, DEF, 0x0, BattleScript_82DA5CF BattleScript_82DA571:: accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE attackanimation waitanimation setbyte sFIELD_1B, 0x0 playstatchangeanimation TARGET, 0x6, 0x5 playstatchangeanimation TARGET, 0x2, 0x1 setstatchanger ATK, 1, TRUE statbuffchange 0x1, BattleScript_82DA5A7 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA5A7 printfromtable 0x85CC8A8 waitmessage 0x40 BattleScript_82DA5A7:: playstatchangeanimation TARGET, 0x4, 0x1 setstatchanger DEF, 1, TRUE statbuffchange 0x1, BattleScript_82DA5CA jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA5CA printfromtable 0x85CC8A8 waitmessage 0x40 BattleScript_82DA5CA:: goto BattleScript_MoveEnd BattleScript_82DA5CF:: pause 0x20 orbyte gBattleMoveFlags, MOVESTATUS_FAILED printstring STRINGID_STATSWONTDECREASE2 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectCosmicPower:: attackcanceler attackstring ppreduce jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_82DA5F8 jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats BattleScript_82DA5F8:: attackanimation waitanimation setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x24, 0x0 setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82DA623 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA623 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DA623:: setstatchanger SPDEF, 1, FALSE statbuffchange 0x41, BattleScript_82DA642 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA642 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DA642:: goto BattleScript_MoveEnd BattleScript_EffectSkyUppercut:: orword gHitMarker, HITMARKER_IGNORE_ON_AIR goto BattleScript_EffectHit BattleScript_EffectBulkUp:: attackcanceler attackstring ppreduce jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DA66A jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_CantRaiseMultipleStats BattleScript_82DA66A:: attackanimation waitanimation setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x6, 0x0 setstatchanger ATK, 1, FALSE statbuffchange 0x41, BattleScript_82DA695 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA695 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DA695:: setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82DA6B4 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6B4 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DA6B4:: goto BattleScript_MoveEnd BattleScript_EffectCalmMind:: attackcanceler attackstring ppreduce jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_82DA6CE jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats BattleScript_82DA6CE:: attackanimation waitanimation setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x30, 0x0 setstatchanger SPATK, 1, FALSE statbuffchange 0x41, BattleScript_82DA6F9 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6F9 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DA6F9:: setstatchanger SPDEF, 1, FALSE statbuffchange 0x41, BattleScript_82DA718 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA718 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DA718:: goto BattleScript_MoveEnd BattleScript_CantRaiseMultipleStats:: pause 0x20 orbyte gBattleMoveFlags, MOVESTATUS_FAILED printstring STRINGID_STATSWONTINCREASE2 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_EffectDragonDance:: attackcanceler attackstring ppreduce jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DA746 jumpifstat ATTACKER, EQUAL, SPEED, 0xC, BattleScript_CantRaiseMultipleStats BattleScript_82DA746:: attackanimation waitanimation setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0xA, 0x0 setstatchanger ATK, 1, FALSE statbuffchange 0x41, BattleScript_82DA771 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA771 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DA771:: setstatchanger SPEED, 1, FALSE statbuffchange 0x41, BattleScript_82DA790 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA790 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DA790:: goto BattleScript_MoveEnd BattleScript_EffectCamouflage:: attackcanceler attackstring ppreduce settypetoterrain BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNCHANGEDTYPE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_FaintAttacker:: playfaintcry ATTACKER pause 0x40 dofaintanimation ATTACKER cleareffectsonfaint ATTACKER printstring STRINGID_ATTACKERFAINTED return BattleScript_FaintTarget:: playfaintcry TARGET pause 0x40 dofaintanimation TARGET cleareffectsonfaint TARGET printstring STRINGID_TARGETFAINTED return BattleScript_82DA7C4:: setbyte sGIVEEXP_STATE, 0x0 getexp TARGET end2 BattleScript_82DA7CD:: atk24 BattleScript_82DA8F6 jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_82DA8F5 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA816 jumpifword NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_82DA816 printstring STRINGID_USENEXTPKMN setbyte gBattleCommunication, 0x0 yesnobox jumpifbyte EQUAL, gBattleCommunication + 1, 0x0, BattleScript_82DA816 jumpifplayerran BattleScript_82DA8F5 printstring STRINGID_CANTESCAPE2 BattleScript_82DA816:: openpartyscreen 0x3, BattleScript_82DA8F5 switchhandleorder GBANK_1, 0x2 jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA8D0 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_LINK, BattleScript_82DA8D0 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x2000000, BattleScript_82DA8D0 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID, BattleScript_82DA8D0 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DA8D0 jumpifword COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_82DA8D0 jumpifbyte EQUAL, sBATTLE_STYLE, 0x1, BattleScript_82DA8D0 jumpifcantswitch 11, BattleScript_82DA8D0 printstring STRINGID_ENEMYABOUTTOSWITCHPKMN setbyte gBattleCommunication, 0x0 yesnobox jumpifbyte EQUAL, gBattleCommunication + 1, 0x1, BattleScript_82DA8D0 setatktoplayer0 openpartyscreen 0x81, BattleScript_82DA8D0 switchhandleorder ATTACKER, 0x2 jumpifbyte EQUAL, gBattleCommunication, 0x6, BattleScript_82DA8D0 atknameinbuff1 various ATTACKER, VARIOUS_RESET_INTIMIDATE_TRACE_BITS hpthresholds2 ATTACKER printstring STRINGID_RETURNMON switchoutabilities ATTACKER waitstate returnatktoball waitstate drawpartystatussummary ATTACKER getswitchedmondata ATTACKER switchindataupdate ATTACKER hpthresholds ATTACKER printstring STRINGID_SWITCHINMON atk62 ATTACKER switchinanim ATTACKER, 0x0 waitstate switchineffects ATTACKER resetsentmonsvalue BattleScript_82DA8D0:: drawpartystatussummary GBANK_1 getswitchedmondata GBANK_1 switchindataupdate GBANK_1 hpthresholds GBANK_1 printstring STRINGID_SWITCHINMON atk62 GBANK_1 switchinanim GBANK_1, 0x0 waitstate various ATTACKER, 0x7 switchineffects GBANK_1 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DA8F5 cancelallactions BattleScript_82DA8F5:: end2 BattleScript_82DA8F6:: openpartyscreen 0x5, BattleScript_82DA8FC BattleScript_82DA8FC:: switchhandleorder GBANK_1, 0x0 openpartyscreen 0x6, BattleScript_82DA92C switchhandleorder GBANK_1, 0x0 BattleScript_82DA908:: switchhandleorder GBANK_1, 0x3 drawpartystatussummary GBANK_1 getswitchedmondata GBANK_1 switchindataupdate GBANK_1 hpthresholds GBANK_1 printstring STRINGID_SWITCHINMON atk62 GBANK_1 switchinanim GBANK_1, 0x0 waitstate switchineffects 5 jumpifbytenotequal gBank1, gNoOfAllBanks, BattleScript_82DA908 BattleScript_82DA92C:: end2 BattleScript_LocalTrainerBattleWon:: jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DA943 printstring STRINGID_PLAYERDEFEATEDTRAINER1 goto BattleScript_82DA946 BattleScript_82DA943:: printstring STRINGID_TWOENEMIESDEFEATED BattleScript_82DA946:: trainerslidein ATTACKER waitstate printstring STRINGID_TRAINER1LOSETEXT jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DA963 trainerslideout IDENTITY_OPPONENT_MON1 waitstate trainerslidein GBANK_1 waitstate printstring STRINGID_TRAINER2LOSETEXT BattleScript_82DA963:: getmoneyreward printstring STRINGID_PLAYERGOTMONEY waitmessage 0x40 BattleScript_PayDayMoneyAndPickUpItems:: givepaydaymoney pickup end2 BattleScript_LocalBattleLost:: jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOME, BattleScript_82DA9BE jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID, BattleScript_82DA9C9 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x4000000, BattleScript_82DA9C9 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_EREADER_TRAINER, BattleScript_82DA9BD jumpifhalfword EQUAL, gTrainerBattleOpponent_A, 0x400, BattleScript_82DA9BD BattleScript_82DA9B1:: printstring STRINGID_PLAYERWHITEOUT waitmessage 0x40 printstring STRINGID_PLAYERWHITEOUT2 waitmessage 0x40 BattleScript_82DA9BD:: end2 BattleScript_82DA9BE:: jumpifbyte EQUAL, gBattleOutcome, DREW, BattleScript_82DAA0A BattleScript_82DA9C9:: jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA9B1 various ATTACKER, VARIOUS_RETURN_OPPONENT_MON1 waitstate various ATTACKER, VARIOUS_RETURN_OPPONENT_MON2 waitstate trainerslidein ATTACKER waitstate printstring STRINGID_TRAINER1WINTEXT jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x800000, BattleScript_82DAA01 jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAA0A BattleScript_82DAA01:: trainerslideout IDENTITY_OPPONENT_MON1 waitstate trainerslidein GBANK_1 waitstate printstring STRINGID_TRAINER2WINTEXT BattleScript_82DAA0A:: end2 BattleScript_82DAA0B:: various ATTACKER, VARIOUS_RETURN_OPPONENT_MON1 waitstate various ATTACKER, VARIOUS_RETURN_OPPONENT_MON2 waitstate trainerslidein ATTACKER waitstate printstring STRINGID_TRAINER1WINTEXT trainerslideout IDENTITY_OPPONENT_MON1 waitstate trainerslidein GBANK_1 waitstate printstring STRINGID_TRAINER2WINTEXT jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA31 atk57 BattleScript_82DAA31:: waitmessage 0x40 end2 BattleScript_LinkBattleWonOrLost:: jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER, BattleScript_82DAA5C printstring STRINGID_BATTLEEND waitmessage 0x40 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA58 atk57 BattleScript_82DAA58:: waitmessage 0x40 end2 BattleScript_82DAA5C:: various ATTACKER, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC printstring STRINGID_BATTLEEND waitmessage 0x40 trainerslidein ATTACKER waitstate printstring STRINGID_TRAINER1LOSETEXT trainerslideout IDENTITY_OPPONENT_MON1 waitstate trainerslidein GBANK_1 waitstate printstring STRINGID_TRAINER2LOSETEXT jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA83 atk57 BattleScript_82DAA83:: waitmessage 0x40 end2 BattleScript_FrontierTrainerBattleWon:: jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_PayDayMoneyAndPickUpItems jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAAAB printstring STRINGID_PLAYERDEFEATEDTRAINER1 goto BattleScript_82DAAAE BattleScript_82DAAAB:: printstring STRINGID_TWOENEMIESDEFEATED BattleScript_82DAAAE:: trainerslidein ATTACKER waitstate printstring STRINGID_TRAINER1LOSETEXT jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAACB trainerslideout IDENTITY_OPPONENT_MON1 waitstate trainerslidein GBANK_1 waitstate printstring STRINGID_TRAINER2LOSETEXT BattleScript_82DAACB:: jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_PYRAMID, BattleScript_82DAADA pickup BattleScript_82DAADA:: end2 BattleScript_SmokeBallEscape:: playanimation ATTACKER, ANIM_SMOKEBALL_ESCAPE, NULL printstring STRINGID_PKMNFLEDUSINGITS waitmessage 0x40 end2 BattleScript_RanAwayUsingMonAbility:: printstring STRINGID_PKMNFLEDUSING waitmessage 0x40 end2 BattleScript_GotAwaySafely:: printstring STRINGID_GOTAWAYSAFELY waitmessage 0x40 end2 BattleScript_WildMonFled:: printstring STRINGID_WILDPKMNFLED waitmessage 0x40 end2 BattleScript_82DAAFE:: printstring STRINGID_NORUNNINGFROMTRAINERS end2 BattleScript_PrintFailedToRunString:: printfromtable 0x85CC83E waitmessage 0x40 end2 BattleScript_82DAB0B:: printselectionstringfromtable 0x85CC83E endselectionscript BattleScript_82DAB11:: printselectionstring STRINGID_BOXISFULL endselectionscript BattleScript_ActionSwitch:: hpthresholds2 ATTACKER printstring STRINGID_RETURNMON setbyte sDMG_MULTIPLIER, 0x2 jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DAB35 setmultihit 0x1 goto BattleScript_82DAB37 BattleScript_82DAB35:: setmultihit 0x2 BattleScript_82DAB37:: jumpifnopursuitswitchdmg BattleScript_82DAB44 atk5F trysetdestinybondtohappen call BattleScript_82DAB77 atk5F BattleScript_82DAB44:: decrementmultihit BattleScript_82DAB37 switchoutabilities ATTACKER waitstate returnatktoball waitstate drawpartystatussummary ATTACKER switchhandleorder ATTACKER, 0x1 getswitchedmondata ATTACKER switchindataupdate ATTACKER hpthresholds ATTACKER printstring STRINGID_SWITCHINMON atk62 ATTACKER switchinanim ATTACKER, 0x0 waitstate switchineffects ATTACKER setbyte sMOVEEND_STATE, 0x4 moveend 0x1, 0x0 setbyte sMOVEEND_STATE, 0xF moveend 0x1, 0x0 end2 BattleScript_82DAB77:: pause 0x20 attackstring ppreduce critcalc damagecalc typecalc adjustnormaldamage attackanimation waitanimation effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 tryfaintmon TARGET, FALSE, NULL setbyte sMOVEEND_STATE, 0x3 moveend 0x2, 0x6 various TARGET, 0x4 jumpifbyte EQUAL, gBattleCommunication, 0x0, BattleScript_82DABB8 setbyte sGIVEEXP_STATE, 0x0 getexp TARGET BattleScript_82DABB8:: return BattleScript_Pausex20:: pause 0x20 return BattleScript_LevelUp:: fanfare BGM_FANFA1 printstring STRINGID_PKMNGREWTOLV setbyte sLVLBOX_STATE, 0x0 drawlvlupbox handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, TRUE goto BattleScript_AskToLearnMove BattleScript_TryLearnMoveLoop:: handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, FALSE BattleScript_AskToLearnMove:: buffermovetolearn printstring STRINGID_TRYTOLEARNMOVE1 printstring STRINGID_TRYTOLEARNMOVE2 printstring STRINGID_TRYTOLEARNMOVE3 waitstate setbyte sLEARNMOVE_STATE, 0x0 yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove printstring STRINGID_STOPLEARNINGMOVE waitstate setbyte sLEARNMOVE_STATE, 0x0 yesnoboxstoplearningmove BattleScript_AskToLearnMove printstring STRINGID_DIDNOTLEARNMOVE goto BattleScript_TryLearnMoveLoop BattleScript_ForgotAndLearnedNewMove:: printstring STRINGID_123POOF printstring STRINGID_PKMNFORGOTMOVE printstring STRINGID_ANDELLIPSIS BattleScript_LearnedNewMove:: buffermovetolearn fanfare BGM_FANFA1 printstring STRINGID_PKMNLEARNEDMOVE waitmessage 0x40 various ATTACKER, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP goto BattleScript_TryLearnMoveLoop BattleScript_LearnMoveReturn:: return BattleScript_82DAC2C:: printfromtable 0x85CC860 waitmessage 0x40 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DAC46 playanimation ATTACKER, ANIM_RAIN_CONTINUES, NULL BattleScript_82DAC46:: end2 BattleScript_82DAC47:: printfromtable 0x85CC854 waitmessage 0x40 playanimation2 ATTACKER, sANIM_ARG1, NULL setbyte gBattleCommunication, 0x0 BattleScript_82DAC5F:: copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 0x1 weatherdamage jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_82DACA0 printfromtable 0x85CC858 waitmessage 0x40 orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE effectivenesssound hitanimation ATTACKER healthbarupdate ATTACKER datahpupdate ATTACKER tryfaintmon ATTACKER, FALSE, NULL atk24 BattleScript_82DACA0 BattleScript_82DACA0:: jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_82DACBF addbyte gBattleCommunication, 0x1 jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_82DAC5F BattleScript_82DACBF:: bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE end2 BattleScript_82DACC9:: printfromtable 0x85CC85C waitmessage 0x40 end2 BattleScript_82DACD2:: printstring STRINGID_SUNLIGHTSTRONG waitmessage 0x40 playanimation ATTACKER, ANIM_SUN_CONTINUES, NULL end2 BattleScript_82DACE0:: printstring STRINGID_SUNLIGHTFADED waitmessage 0x40 end2 BattleScript_82DACE7:: printfromtable 0x85CC91A waitmessage 0x40 playanimation2 ATTACKER, sANIM_ARG1, NULL end3 BattleScript_82DACFA:: printstring STRINGID_PKMNSXWOREOFF waitmessage 0x40 end2 BattleScript_82DAD01:: pause 0x20 printstring STRINGID_PKMNUSEDSAFEGUARD waitmessage 0x40 end2 BattleScript_82DAD0B:: pause 0x20 printstring STRINGID_PKMNSAFEGUARDEXPIRED waitmessage 0x40 end2 BattleScript_LeechSeedTurnDrain:: playanimation ATTACKER, ANIM_LEECH_SEED_DRAIN, sANIM_ARG1 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate ATTACKER datahpupdate ATTACKER copyword gBattleMoveDamage, gHpDealt jumpifability ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_82DAD47 manipulatedamage ATK80_DMG_CHANGE_SIGN setbyte cMULTISTRING_CHOOSER, 0x3 goto BattleScript_82DAD4D BattleScript_82DAD47:: setbyte cMULTISTRING_CHOOSER, 0x4 BattleScript_82DAD4D:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate TARGET datahpupdate TARGET printfromtable 0x85CC878 waitmessage 0x40 tryfaintmon ATTACKER, FALSE, NULL tryfaintmon TARGET, FALSE, NULL end2 BattleScript_BideStoringEnergy:: printstring STRINGID_PKMNSTORINGENERGY waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_BideAttack:: attackcanceler setmoveeffect EFFECT_CHARGING clearstatusfromeffect ATTACKER printstring STRINGID_PKMNUNLEASHEDENERGY waitmessage 0x40 accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE typecalc bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE copyword gBattleMoveDamage, sBIDE_DMG adjustsetdamage setbyte sANIM_TURN, 0x1 attackanimation waitanimation effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET resultmessage waitmessage 0x40 tryfaintmon TARGET, FALSE, NULL goto BattleScript_MoveEnd BattleScript_BideNoEnergyToAttack:: attackcanceler setmoveeffect EFFECT_CHARGING clearstatusfromeffect ATTACKER printstring STRINGID_PKMNUNLEASHEDENERGY waitmessage 0x40 goto BattleScript_ButItFailed BattleScript_82DADD8:: attackanimation waitanimation switchoutabilities TARGET returntoball TARGET waitstate jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DADF1 various ATTACKER, VARIOUS_SET_TELEPORT_OUTCOME finishaction BattleScript_82DADF1:: getswitchedmondata TARGET switchindataupdate TARGET switchinanim TARGET, 0x0 waitstate printstring STRINGID_PKMNWASDRAGGEDOUT switchineffects TARGET goto BattleScript_MoveEnd BattleScript_MistProtected:: pause 0x20 printstring STRINGID_PKMNPROTECTEDBYMIST waitmessage 0x40 return BattleScript_RageIsBuilding:: printstring STRINGID_PKMNRAGEBUILDING waitmessage 0x40 return BattleScript_MoveUsedIsDisabled:: printstring STRINGID_PKMNMOVEISDISABLED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82DAE1F:: printselectionstring STRINGID_PKMNMOVEISDISABLED endselectionscript BattleScript_DisabledNoMore:: printstring STRINGID_PKMNMOVEDISABLEDNOMORE waitmessage 0x40 end2 BattleScript_82DAE2A:: printstring STRINGID_PKMNMOVEISDISABLED BattleScript_82DAE2D:: setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 end BattleScript_EncoredNoMore:: printstring STRINGID_PKMNENCOREENDED waitmessage 0x40 end2 BattleScript_DestinyBondTakesLife:: printstring STRINGID_PKMNTOOKFOE waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate ATTACKER datahpupdate ATTACKER tryfaintmon ATTACKER, FALSE, NULL return BattleScript_SpikesOnAttacker:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate ATTACKER datahpupdate ATTACKER call BattleScript_82DAEFE tryfaintmon ATTACKER, FALSE, NULL tryfaintmon ATTACKER, TRUE, BattleScript_82DAE7A return BattleScript_82DAE7A:: setbyte sGIVEEXP_STATE, 0x0 getexp ATTACKER setbyte sMOVEEND_STATE, 0x0 moveend 0x0, 0x0 goto BattleScript_82DA7CD BattleScript_SpikesOnTarget:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate TARGET datahpupdate TARGET call BattleScript_82DAEFE tryfaintmon TARGET, FALSE, NULL tryfaintmon TARGET, TRUE, BattleScript_82DAEB1 return BattleScript_82DAEB1:: setbyte sGIVEEXP_STATE, 0x0 getexp TARGET setbyte sMOVEEND_STATE, 0x0 moveend 0x0, 0x0 goto BattleScript_82DA7CD BattleScript_SpikesOngBank1:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate GBANK_1 datahpupdate GBANK_1 call BattleScript_82DAEFE tryfaintmon GBANK_1, FALSE, NULL tryfaintmon GBANK_1, TRUE, BattleScript_82DAEE8 return BattleScript_82DAEE8:: setbyte sGIVEEXP_STATE, 0x0 getexp GBANK_1 setbyte sMOVEEND_STATE, 0x0 moveend 0x0, 0x0 goto BattleScript_82DA7CD BattleScript_82DAEFE:: printstring STRINGID_PKMNHURTBYSPIKES waitmessage 0x40 return BattleScript_82DAF05:: printstring STRINGID_PKMNPERISHCOUNTFELL waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate ATTACKER datahpupdate ATTACKER tryfaintmon ATTACKER, FALSE, NULL end2 BattleScript_82DAF20:: printstring STRINGID_PKMNPERISHCOUNTFELL waitmessage 0x40 end2 BattleScript_AllStatsUp:: jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DAF54 jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_82DAF54 jumpifstat ATTACKER, LESS_THAN, SPEED, 0xC, BattleScript_82DAF54 jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_82DAF54 jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_82DAFC2 BattleScript_82DAF54:: setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x3E, 0x0 setstatchanger ATK, 1, FALSE statbuffchange 0x41, BattleScript_82DAF72 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DAF72:: setstatchanger DEF, 1, FALSE statbuffchange 0x41, BattleScript_82DAF86 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DAF86:: setstatchanger SPEED, 1, FALSE statbuffchange 0x41, BattleScript_82DAF9A printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DAF9A:: setstatchanger SPATK, 1, FALSE statbuffchange 0x41, BattleScript_82DAFAE printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DAFAE:: setstatchanger SPDEF, 1, FALSE statbuffchange 0x41, BattleScript_82DAFC2 printfromtable 0x85CC89C waitmessage 0x40 BattleScript_82DAFC2:: return BattleScript_RapidSpinAway:: rapidspinfree return BattleScript_WrapFree:: printstring STRINGID_PKMNGOTFREE waitmessage 0x40 copybyte gBankTarget, sBANK return BattleScript_LeechSeedFree:: printstring STRINGID_PKMNSHEDLEECHSEED waitmessage 0x40 return BattleScript_SpikesFree:: printstring STRINGID_PKMNBLEWAWAYSPIKES waitmessage 0x40 return BattleScript_82DAFE4:: printstring STRINGID_PKMNTOOKATTACK waitmessage 0x40 jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB001 accuracycheck BattleScript_82DB058, MOVE_FUTURE_SIGHT goto BattleScript_82DB008 BattleScript_82DB001:: accuracycheck BattleScript_82DB058, MOVE_DOOM_DESIRE BattleScript_82DB008:: adjustnormaldamage2 jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB020 playanimation ATTACKER, ANIM_FUTURE_SIGHT_HIT, NULL goto BattleScript_82DB027 BattleScript_82DB020:: playanimation ATTACKER, ANIM_x13, NULL BattleScript_82DB027:: effectivenesssound hitanimation TARGET waitstate healthbarupdate TARGET datahpupdate TARGET resultmessage waitmessage 0x40 tryfaintmon TARGET, FALSE, NULL atk24 BattleScript_82DB03F BattleScript_82DB03F:: setbyte sMOVEEND_STATE, 0x0 moveend 0x1, 0x0 setbyte sMOVEEND_STATE, 0xB moveend 0x2, 0xE setbyte gBattleMoveFlags, 0 end2 BattleScript_82DB058:: pause 0x20 setbyte gBattleMoveFlags, 0 orbyte gBattleMoveFlags, MOVESTATUS_FAILED resultmessage waitmessage 0x40 setbyte gBattleMoveFlags, 0 end2 BattleScript_NoMovesLeft:: printselectionstring STRINGID_PKMNHASNOMOVESLEFT endselectionscript BattleScript_82DB076:: printselectionstring STRINGID_NOPPLEFT endselectionscript BattleScript_NoPPForMove:: attackstring pause 0x20 printstring STRINGID_BUTNOPPLEFT waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82DB089:: printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT endselectionscript BattleScript_82DB08D:: printstring STRINGID_PKMNCANTUSEMOVETORMENT waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82DB098:: printstring STRINGID_PKMNCANTUSEMOVETORMENT goto BattleScript_82DAE2D BattleScript_82DB0A0:: printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT endselectionscript BattleScript_MoveUsedIsTaunted:: printstring STRINGID_PKMNCANTUSEMOVETAUNT waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82DB0AF:: printstring STRINGID_PKMNCANTUSEMOVETAUNT goto BattleScript_82DAE2D BattleScript_WishComesTrue:: trywish 0x1, BattleScript_82DB0DE playanimation TARGET, ANIM_WISH_HEAL, NULL printstring STRINGID_PKMNWISHCAMETRUE waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate TARGET datahpupdate TARGET printstring STRINGID_PKMNREGAINEDHEALTH waitmessage 0x40 end2 BattleScript_82DB0DE:: printstring STRINGID_PKMNWISHCAMETRUE waitmessage 0x40 pause 0x20 printstring STRINGID_PKMNHPFULL waitmessage 0x40 end2 BattleScript_IngrainTurnHeal:: playanimation ATTACKER, ANIM_INGRAIN_HEAL, NULL printstring STRINGID_PKMNABSORBEDNUTRIENTS waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate ATTACKER datahpupdate ATTACKER end2 BattleScript_82DB109:: pause 0x20 printstring STRINGID_PKMNANCHOREDITSELF waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_AtkDefDown:: setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x6, 0xD playstatchangeanimation ATTACKER, 0x2, 0x9 setstatchanger ATK, 1, TRUE statbuffchange 0xC1, BattleScript_82DB144 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144 printfromtable 0x85CC8A8 waitmessage 0x40 BattleScript_82DB144:: playstatchangeanimation ATTACKER, 0x4, 0x9 setstatchanger DEF, 1, TRUE statbuffchange 0xC1, BattleScript_82DB167 jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167 printfromtable 0x85CC8A8 waitmessage 0x40 BattleScript_82DB167:: return BattleScript_KnockedOff:: playanimation TARGET, ANIM_ITEM_KNOCKOFF, NULL printstring STRINGID_PKMNKNOCKEDOFF waitmessage 0x40 return BattleScript_MoveUsedIsImprisoned:: printstring STRINGID_PKMNCANTUSEMOVESEALED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82DB181:: printselectionstring STRINGID_PKMNCANTUSEMOVESEALED endselectionscript BattleScript_82DB185:: printstring STRINGID_PKMNCANTUSEMOVESEALED goto BattleScript_82DAE2D BattleScript_GrudgeTakesPp:: printstring STRINGID_PKMNLOSTPPGRUDGE waitmessage 0x40 return BattleScript_MagicCoatBounce:: attackstring ppreduce pause 0x20 printstring STRINGID_PKMNMOVEBOUNCED waitmessage 0x40 orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 various ATTACKER, VARIOUS_SET_MAGIC_COAT_TARGET return BattleScript_SnatchedMove:: attackstring ppreduce snatchsetbanks playanimation TARGET, ANIM_SNATCH_MOVE, NULL printstring STRINGID_PKMNSNATCHEDMOVE waitmessage 0x40 orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 atk5F return BattleScript_EnduredMsg:: printstring STRINGID_PKMNENDUREDHIT waitmessage 0x40 return BattleScript_OneHitKOMsg:: printstring STRINGID_ONEHITKO waitmessage 0x40 return BattleScript_SAtkDown2:: setbyte sFIELD_1B, 0x0 playstatchangeanimation ATTACKER, 0x10, 0xB setstatchanger SPATK, 2, TRUE statbuffchange 0xC1, BattleScript_82DB1FE jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB1FE printfromtable 0x85CC8A8 waitmessage 0x40 BattleScript_82DB1FE:: return BattleScript_FocusPunchSetUp:: printstring STRINGID_EMPTYSTRING3 waitmessage 0x1 playanimation ATTACKER, ANIM_x14, NULL printstring STRINGID_PKMNTIGHTENINGFOCUS waitmessage 0x40 end2 BattleScript_MoveUsedIsAsleep:: printstring STRINGID_PKMNFASTASLEEP waitmessage 0x40 statusanimation ATTACKER goto BattleScript_MoveEnd BattleScript_MoveUsedWokeUp:: bicword gHitMarker, HITMARKER_x10 printfromtable 0x85CC88E waitmessage 0x40 updatestatusicon ATTACKER return BattleScript_82DB234:: printstring STRINGID_PKMNWOKEUPINUPROAR waitmessage 0x40 updatestatusicon ATTACKER end2 BattleScript_PoisonTurnDmg:: printstring STRINGID_PKMNHURTBYPOISON waitmessage 0x40 BattleScript_82DB243:: statusanimation ATTACKER BattleScript_82DB245:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate ATTACKER datahpupdate ATTACKER tryfaintmon ATTACKER, FALSE, NULL atk24 BattleScript_82DB25E BattleScript_82DB25E:: end2 BattleScript_BurnTurnDmg:: printstring STRINGID_PKMNHURTBYBURN waitmessage 0x40 goto BattleScript_82DB243 BattleScript_MoveUsedIsFrozen:: printstring STRINGID_PKMNISFROZEN waitmessage 0x40 statusanimation ATTACKER goto BattleScript_MoveEnd BattleScript_MoveUsedUnfroze:: printfromtable 0x85CC8F0 waitmessage 0x40 updatestatusicon ATTACKER return BattleScript_DefrostedViaFireMove:: printstring STRINGID_PKMNWASDEFROSTED waitmessage 0x40 updatestatusicon TARGET return BattleScript_MoveUsedIsParalyzed:: printstring STRINGID_PKMNISPARALYZED waitmessage 0x40 statusanimation ATTACKER various ATTACKER, VARIOUS_CANCEL_MULTI_TURN_MOVES goto BattleScript_MoveEnd BattleScript_MoveUsedFlinched:: printstring STRINGID_PKMNFLINCHED waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82DB2A6:: printfromtable 0x85CC886 waitmessage 0x40 end2 BattleScript_ThrashConfuses:: chosenstatus2animation ATTACKER, STATUS2_CONFUSION printstring STRINGID_PKMNFATIGUECONFUSION waitmessage 0x40 end2 BattleScript_MoveUsedIsConfused:: printstring STRINGID_PKMNISCONFUSED waitmessage 0x40 status2animation ATTACKER, STATUS2_CONFUSION jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB2FF BattleScript_82DB2D4:: various ATTACKER, VARIOUS_CANCEL_MULTI_TURN_MOVES adjustnormaldamage2 printstring STRINGID_ITHURTCONFUSION waitmessage 0x40 effectivenesssound hitanimation ATTACKER waitstate orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate ATTACKER datahpupdate ATTACKER resultmessage waitmessage 0x40 tryfaintmon ATTACKER, FALSE, NULL goto BattleScript_MoveEnd BattleScript_82DB2FF:: return BattleScript_MoveUsedIsConfusedNoMore:: printstring STRINGID_PKMNHEALEDCONFUSION waitmessage 0x40 return BattleScript_PrintPayDayMoneyString:: printstring STRINGID_PKMNPICKEDUPITEM waitmessage 0x40 return BattleScript_WrapTurnDmg:: playanimation ATTACKER, ANIM_TURN_TRAP, sANIM_ARG1 printstring STRINGID_PKMNHURTBY waitmessage 0x40 goto BattleScript_82DB245 BattleScript_WrapEnds:: printstring STRINGID_PKMNFREEDFROM waitmessage 0x40 end2 BattleScript_MoveUsedIsInLove:: printstring STRINGID_PKMNINLOVE waitmessage 0x40 status2animation ATTACKER, STATUS2_INFATUATION return BattleScript_MoveUsedIsParalyzedCantAttack:: printstring STRINGID_PKMNIMMOBILIZEDBYLOVE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_NightmareTurnDmg:: printstring STRINGID_PKMNLOCKEDINNIGHTMARE waitmessage 0x40 status2animation ATTACKER, STATUS2_NIGHTMARE goto BattleScript_82DB245 BattleScript_CurseTurnDmg:: printstring STRINGID_PKMNAFFLICTEDBYCURSE waitmessage 0x40 status2animation ATTACKER, STATUS2_CURSED goto BattleScript_82DB245 BattleScript_TargetPRLZHeal:: printstring STRINGID_PKMNHEALEDPARALYSIS waitmessage 0x40 updatestatusicon TARGET return BattleScript_MoveEffectSleep:: statusanimation EFFECT_BANK printfromtable 0x85CC8E4 waitmessage 0x40 BattleScript_82DB374:: updatestatusicon EFFECT_BANK waitstate return BattleScript_YawnMakesAsleep:: statusanimation EFFECT_BANK printstring STRINGID_PKMNFELLASLEEP waitmessage 0x40 updatestatusicon EFFECT_BANK waitstate makevisible EFFECT_BANK end2 BattleScript_MoveEffectPoison:: statusanimation EFFECT_BANK printfromtable 0x85CC8DC waitmessage 0x40 goto BattleScript_82DB374 BattleScript_MoveEffectBurn:: statusanimation EFFECT_BANK printfromtable 0x85CC8E8 waitmessage 0x40 goto BattleScript_82DB374 BattleScript_MoveEffectFreeze:: statusanimation EFFECT_BANK printfromtable 0x85CC8EC waitmessage 0x40 goto BattleScript_82DB374 BattleScript_MoveEffectParalysis:: statusanimation EFFECT_BANK printfromtable 0x85CC8E0 waitmessage 0x40 goto BattleScript_82DB374 BattleScript_MoveEffectUproar:: printstring STRINGID_PKMNCAUSEDUPROAR waitmessage 0x40 return BattleScript_MoveEffectToxic:: statusanimation EFFECT_BANK printstring STRINGID_PKMNBADLYPOISONED waitmessage 0x40 goto BattleScript_82DB374 BattleScript_MoveEffectPayDay:: printstring STRINGID_COINSSCATTERED waitmessage 0x40 return BattleScript_MoveEffectWrap:: printfromtable 0x85CC8C0 waitmessage 0x40 return BattleScript_MoveEffectConfusion:: chosenstatus2animation EFFECT_BANK, STATUS2_CONFUSION printstring STRINGID_PKMNWASCONFUSED waitmessage 0x40 return BattleScript_MoveEffectRecoil33:: jumpifhalfword EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_82DB407 jumpifability ATTACKER, ABILITY_ROCK_HEAD, BattleScript_82DB421 BattleScript_82DB407:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate ATTACKER datahpupdate ATTACKER printstring STRINGID_PKMNHITWITHRECOIL waitmessage 0x40 tryfaintmon ATTACKER, FALSE, NULL BattleScript_82DB421:: return BattleScript_ItemSteal:: playanimation TARGET, ANIM_ITEM_STEAL, NULL printstring STRINGID_PKMNSTOLEITEM waitmessage 0x40 return BattleScript_DrizzleActivates:: pause 0x20 printstring STRINGID_PKMNMADEITRAIN waitstate playanimation BANK0, ANIM_RAIN_CONTINUES, NULL call BattleScript_82DB48D end3 BattleScript_SpeedBoostActivates:: playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 printstring STRINGID_PKMNRAISEDSPEED waitmessage 0x40 end3 BattleScript_TraceActivates:: pause 0x20 printstring STRINGID_PKMNTRACED waitmessage 0x40 end3 BattleScript_RainDishActivates:: printstring STRINGID_PKMNSXRESTOREDHPALITTLE2 waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate ATTACKER datahpupdate ATTACKER end3 BattleScript_SandstreamActivates:: pause 0x20 printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM waitstate playanimation BANK0, ANIM_SANDSTORM_CONTINUES, NULL call BattleScript_82DB48D end3 BattleScript_ShedSkinActivates:: printstring STRINGID_PKMNSXCUREDYPROBLEM waitmessage 0x40 updatestatusicon ATTACKER end3 BattleScript_82DB48D:: setbyte sBANK, 0x0 BattleScript_82DB493:: trycastformdatachange addbyte sBANK, 0x1 jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_82DB493 return BattleScript_CastformChange:: call BattleScript_82DB4AF end3 BattleScript_82DB4AF:: docastformchangeanimation waitstate printstring STRINGID_PKMNTRANSFORMED waitmessage 0x40 return BattleScript_82DB4B8:: call BattleScript_82DB4BE end3 BattleScript_82DB4BE:: pause 0x20 BattleScript_82DB4C1:: setbyte gBankTarget, 0x0 setstatchanger ATK, 1, TRUE BattleScript_82DB4CD:: trygetintimidatetarget BattleScript_82DB51B jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DB510 jumpifability TARGET, ABILITY_CLEAR_BODY, BattleScript_82DB51C jumpifability TARGET, ABILITY_HYPER_CUTTER, BattleScript_82DB51C jumpifability TARGET, ABILITY_WHITE_SMOKE, BattleScript_82DB51C statbuffchange 0x21, BattleScript_82DB510 jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DB510 setgraphicalstatchangevalues playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 printstring STRINGID_PKMNCUTSATTACKWITH waitmessage 0x40 BattleScript_82DB510:: addbyte gBankTarget, 0x1 goto BattleScript_82DB4CD BattleScript_82DB51B:: return BattleScript_82DB51C:: pause 0x20 printstring STRINGID_PREVENTEDFROMWORKING waitmessage 0x40 goto BattleScript_82DB510 BattleScript_DroughtActivates:: pause 0x20 printstring STRINGID_PKMNSXINTENSIFIEDSUN waitstate playanimation BANK0, ANIM_SUN_CONTINUES, NULL call BattleScript_82DB48D end3 BattleScript_TookAttack:: attackstring pause 0x20 printstring STRINGID_PKMNSXTOOKATTACK waitmessage 0x40 orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED return BattleScript_SturdyPreventsOHKO:: pause 0x20 printstring STRINGID_PKMNPROTECTEDBY pause 0x40 goto BattleScript_MoveEnd BattleScript_DampStopsExplosion:: pause 0x20 printstring STRINGID_PKMNPREVENTSUSAGE pause 0x40 goto BattleScript_MoveEnd BattleScript_MoveHPDrain_PPLoss:: ppreduce BattleScript_MoveHPDrain:: attackstring pause 0x20 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate TARGET datahpupdate TARGET printstring STRINGID_PKMNRESTOREDHPUSING waitmessage 0x40 orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED goto BattleScript_MoveEnd BattleScript_82DB591:: ppreduce BattleScript_82DB592:: attackstring pause 0x20 printstring STRINGID_PKMNSXMADEYUSELESS waitmessage 0x40 orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED goto BattleScript_MoveEnd BattleScript_FlashFireBoost_PPLoss:: ppreduce BattleScript_FlashFireBoost:: attackstring pause 0x20 printfromtable 0x85CC976 waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82DB5B9:: pause 0x20 printstring STRINGID_PKMNANCHORSITSELFWITH waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_AbilityNoStatLoss:: pause 0x20 printstring STRINGID_PKMNPREVENTSSTATLOSSWITH waitmessage 0x40 return BattleScript_BRNPrevention:: pause 0x20 printfromtable 0x85CC95E waitmessage 0x40 return BattleScript_PRLZPrevention:: pause 0x20 printfromtable 0x85CC964 waitmessage 0x40 return BattleScript_PSNPrevention:: pause 0x20 printfromtable 0x85CC96A waitmessage 0x40 return BattleScript_ObliviousPreventsAttraction:: pause 0x20 printstring STRINGID_PKMNPREVENTSROMANCEWITH waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_FlinchPrevention:: pause 0x20 printstring STRINGID_PKMNSXPREVENTSFLINCHING waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_82DB611:: pause 0x20 printstring STRINGID_PKMNPREVENTSCONFUSIONWITH waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_SoundproofProtected:: attackstring ppreduce pause 0x20 printstring STRINGID_PKMNSXBLOCKSY waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_AbilityNoSpecificStatLoss:: pause 0x20 printstring STRINGID_PKMNSXPREVENTSYLOSS waitmessage 0x40 setbyte cMULTISTRING_CHOOSER, 0x3 return BattleScript_StickyHoldActivates:: pause 0x20 printstring STRINGID_PKMNSXMADEYINEFFECTIVE waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_ColorChangeActivates:: printstring STRINGID_PKMNCHANGEDTYPEWITH waitmessage 0x40 return BattleScript_RoughSkinActivates:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate ATTACKER datahpupdate ATTACKER printstring STRINGID_PKMNHURTSWITH waitmessage 0x40 tryfaintmon ATTACKER, FALSE, NULL return BattleScript_CuteCharmActivates:: status2animation ATTACKER, STATUS2_INFATUATION printstring STRINGID_PKMNSXINFATUATEDY waitmessage 0x40 return BattleScript_ApplySecondaryEffect:: waitstate seteffectsecondary return BattleScript_SynchronizeActivates:: waitstate seteffectprimary return BattleScript_NoItemSteal:: pause 0x20 printstring STRINGID_PKMNSXMADEYINEFFECTIVE waitmessage 0x40 return BattleScript_82DB68C:: printstring STRINGID_PKMNSXCUREDITSYPROBLEM waitmessage 0x40 updatestatusicon SCRIPTING_BANK return BattleScript_82DB695:: printstring STRINGID_PKMNIGNORESASLEEP waitmessage 0x40 setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 end BattleScript_82DB6A5:: printstring STRINGID_PKMNIGNOREDORDERS waitmessage 0x40 jumptorandomattack 0x0 BattleScript_MoveUsedLoafingAround:: jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x4, BattleScript_82DB6C7 setbyte gBattleCommunication, 0x0 various ATTACKER, 0x18 setbyte cMULTISTRING_CHOOSER, 0x4 BattleScript_82DB6C7:: printfromtable 0x85CC93A waitmessage 0x40 setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 end BattleScript_82DB6D9:: printstring STRINGID_PKMNBEGANTONAP waitmessage 0x40 setmoveeffect EFFECT_SLEEP | AFFECTS_USER seteffectprimary setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 end BattleScript_82DB6F0:: printstring STRINGID_PKMNWONTOBEY waitmessage 0x40 goto BattleScript_82DB2D4 BattleScript_SubstituteFade:: playanimation TARGET, ANIM_SUBSTITUTE_FADE, NULL printstring STRINGID_PKMNSUBSTITUTEFADED return BattleScript_BerryCurePrlzEnd2:: call BattleScript_BerryCureParRet end2 BattleScript_BerryCureParRet:: playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMCUREDPARALYSIS waitmessage 0x40 updatestatusicon SCRIPTING_BANK removeitem SCRIPTING_BANK return BattleScript_BerryCurePsnEnd2:: call BattleScript_BerryCurePsnRet end2 BattleScript_BerryCurePsnRet:: playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMCUREDPOISON waitmessage 0x40 updatestatusicon SCRIPTING_BANK removeitem SCRIPTING_BANK return BattleScript_BerryCureBrnEnd2:: call BattleScript_BerryCureBrnRet end2 BattleScript_BerryCureBrnRet:: playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMHEALEDBURN waitmessage 0x40 updatestatusicon SCRIPTING_BANK removeitem SCRIPTING_BANK return BattleScript_BerryCureFrzEnd2:: call BattleScript_BerryCureFrzRet end2 BattleScript_BerryCureFrzRet:: playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMDEFROSTEDIT waitmessage 0x40 updatestatusicon SCRIPTING_BANK removeitem SCRIPTING_BANK return BattleScript_BerryCureSlpEnd2:: call BattleScript_BerryCureSlpRet end2 BattleScript_BerryCureSlpRet:: playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMWOKEIT waitmessage 0x40 updatestatusicon SCRIPTING_BANK removeitem SCRIPTING_BANK return BattleScript_BerryCureConfusionEnd2:: call BattleScript_BerryCureConfusionRet end2 BattleScript_BerryCureConfusionRet:: playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMSNAPPEDOUT waitmessage 0x40 removeitem SCRIPTING_BANK return BattleScript_BerryCureChosenStatusEnd2:: call BattleScript_BerryCureChosenStatusRet end2 BattleScript_BerryCureChosenStatusRet:: playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL printfromtable 0x85CC95A waitmessage 0x40 updatestatusicon SCRIPTING_BANK removeitem SCRIPTING_BANK return BattleScript_WhiteHerbEnd2:: call BattleScript_WhiteHerbRet end2 BattleScript_WhiteHerbRet:: playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMRESTOREDSTATUS waitmessage 0x40 removeitem SCRIPTING_BANK return BattleScript_ItemHealHP_RemoveItem:: playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate ATTACKER datahpupdate ATTACKER removeitem ATTACKER end2 BattleScript_BerryPPHealEnd2:: playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMRESTOREDPP waitmessage 0x40 removeitem ATTACKER end2 BattleScript_ItemHealHP_End2:: call BattleScript_ItemHealHP_Ret end2 BattleScript_ItemHealHP_Ret:: playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate ATTACKER datahpupdate ATTACKER return BattleScript_82DB812:: printselectionstring STRINGID_ITEMALLOWSONLYYMOVE endselectionscript BattleScript_HangedOnMsg:: playanimation TARGET, ANIM_HANGED_ON, NULL printstring STRINGID_PKMNHUNGONWITHX waitmessage 0x40 return BattleScript_BerryConfuseHealEnd2:: playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate ATTACKER datahpupdate ATTACKER printstring STRINGID_FORXCOMMAYZ waitmessage 0x40 setmoveeffect EFFECT_CONFUSION | AFFECTS_USER seteffectprimary removeitem ATTACKER end2 BattleScript_BerryStatRaiseEnd2:: playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL statbuffchange 0x41, BattleScript_82DB85B BattleScript_82DB85B:: setbyte cMULTISTRING_CHOOSER, 0x4 call BattleScript_StatUp removeitem ATTACKER end2 BattleScript_BerryFocusEnergyEnd2:: playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNUSEDXTOGETPUMPED waitmessage 0x40 removeitem ATTACKER end2 BattleScript_ActionSelectionItemsCantBeUsed:: printselectionstring STRINGID_ITEMSCANTBEUSEDNOW endselectionscript BattleScript_82DB87D:: printstring STRINGID_EMPTYSTRING3 return BattleScript_82DB881:: setbyte gBattleCommunication + 1, 0x0 BattleScript_82DB887:: various ATTACKER, 0x8 jumpifbyte NOT_EQUAL, gBattleCommunication, 0x1, BattleScript_82DB89D printfromtable 0x85CCF0A waitmessage 0x40 BattleScript_82DB89D:: addbyte gBattleCommunication + 1, 0x1 jumpifbytenotequal gBattleCommunication + 1, gNoOfAllBanks, BattleScript_82DB887 setbyte gBattleCommunication, 0x0 setbyte gBattleCommunication + 1, 0x0 end2 BattleScript_82DB8BE:: various ATTACKER, VARIOUS_WAIT_CRY various ATTACKER, 0x15 playse 0x109 pause 0x8 playse 0x109 various ATTACKER, 0xE various 8, 0x10 various 8, 0x11 pause 0x40 various ATTACKER, 0xF various ATTACKER, 0x16 end2 BattleScript_82DB8E0:: playse SE_PINPON various ATTACKER, 0xE various TARGET, 0x10 various TARGET, 0x11 pause 0x40 various ATTACKER, 0xF end2 BattleScript_82DB8F3:: makevisible 11 waitstate makevisible OPPONENT1 waitstate various ATTACKER, 0x15 playse 0x109 pause 0x8 playse 0x109 pause 0x40 various ATTACKER, 0xE various ATTACKER, 0x10 various ATTACKER, 0x11 pause 0x40 setbyte gBattleCommunication, 0x0 various ATTACKER, 0x9 pause 0x40 various ATTACKER, 0x9 various EFFECT_BANK, 0x10 various EFFECT_BANK, 0x11 various ATTACKER, 0x9 various GBANK_1, 0x10 various GBANK_1, 0x11 various ATTACKER, 0x9 various 4, 0x10 various 4, 0x11 various ATTACKER, 0x9 jumpifbyte EQUAL, gBattleCommunication + 1, 0x3, BattleScript_82DB973 jumpifbyte EQUAL, gBattleCommunication + 1, 0x4, BattleScript_82DB992 various 5, 0x10 various 5, 0x11 various ATTACKER, 0x9 various ATTACKER, 0xF printstring STRINGID_DEFEATEDOPPONENTBYREFEREE waitmessage 0x40 playfaintcry OPPONENT1 various ATTACKER, VARIOUS_WAIT_CRY dofaintanimation OPPONENT1 cleareffectsonfaint OPPONENT1 various ATTACKER, 0xA end2 BattleScript_82DB973:: various 6, 0x10 various 6, 0x11 various ATTACKER, 0x9 various ATTACKER, 0xF printstring STRINGID_LOSTTOOPPONENTBYREFEREE waitmessage 0x40 playfaintcry 11 various ATTACKER, VARIOUS_WAIT_CRY dofaintanimation 11 cleareffectsonfaint 11 various ATTACKER, 0xB end2 BattleScript_82DB992:: various BANK0, 0x10 various BANK0, 0x11 various ATTACKER, 0x9 various ATTACKER, 0xF printstring STRINGID_TIEDOPPONENTBYREFEREE waitmessage 0x40 playfaintcry 11 various ATTACKER, VARIOUS_WAIT_CRY dofaintanimation 11 cleareffectsonfaint 11 playfaintcry OPPONENT1 various ATTACKER, VARIOUS_WAIT_CRY dofaintanimation OPPONENT1 cleareffectsonfaint OPPONENT1 various ATTACKER, 0xC end2 BattleScript_82DB9BA:: printselectionstring STRINGID_QUESTIONFORFEITMATCH various ATTACKER, VARIOUS_EMIT_YESNOBOX endselectionscript BattleScript_82DB9C1:: printstring STRINGID_FORFEITEDMATCH waitmessage 0x40 end2 BattleScript_82DB9C8:: printstring STRINGID_FORFEITEDMATCH waitmessage 0x40 atk57 waitmessage 0x40 end2