pokefirered/data/battle_scripts_1.s
2019-11-06 13:31:43 -05:00

4388 lines
120 KiB
ArmAsm

#include "constants/moves.h"
#include "constants/battle.h"
#include "constants/battle_move_effects.h"
#include "constants/battle_script_commands.h"
#include "constants/battle_anim.h"
#include "constants/items.h"
#include "constants/abilities.h"
#include "constants/species.h"
#include "constants/pokemon.h"
#include "constants/songs.h"
#include "constants/game_stat.h"
#include "battle_string_ids.h"
.include "asm/macros/battle_script.inc"
@ Define these here since misc_constants.inc conflicts with the C headers
.set NULL, 0
.set FALSE, 0
.set TRUE, 1
.section script_data, "aw", %progbits
.align 2
gBattleScriptsForMoveEffects:: @ 81D65A8
.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_EffectFlinchMinimizeHit
.4byte BattleScript_EffectSolarbeam
.4byte BattleScript_EffectThunder
.4byte BattleScript_EffectTeleport
.4byte BattleScript_EffectBeatUp
.4byte BattleScript_EffectSemiInvulnerable
.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:: @ 81D6900
jumpifnotmove MOVE_SURF, BattleScript_81D6926
jumpifnostatus3 BS_TARGET, STATUS3_UNDERWATER, BattleScript_81D6926
orword gHitMarker, HITMARKER_IGNORE_UNDERWATER
setbyte sDMG_MULTIPLIER, 2
BattleScript_81D6926:: @ 81D6926
attackcanceler
BattleScript_81D6927:: @ 81D6927
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
BattleScript_81D692E:: @ 81D692E
attackstring
ppreduce
BattleScript_HitFromCritCalc:: @ 81D6930
critcalc
damagecalc
typecalc
adjustnormaldamage
BattleScript_81D6934:: @ 81D6934
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 64
resultmessage
waitmessage 64
seteffectwithchance
tryfaintmon BS_TARGET, 0, NULL
BattleScript_MoveEnd:: @ 81D694E
moveendall
end
BattleScript_81D6958:: @ 81D6958
orbyte gMoveResultFlags, MOVE_RESULT_MISSED
BattleScript_81D695E:: @ 81D695E
attackstring
ppreduce
BattleScript_MoveMissedPause:: @ 81D6960
pause 32
BattleScript_81D6963:: @ 81D6963
effectivenesssound
resultmessage
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectSleep:: @ 81D696D
attackcanceler
attackstring
ppreduce
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_81D69B0
jumpifcantmakeasleep BattleScript_81D69CC
jumpifstatus BS_TARGET, STATUS1_FREEZE | STATUS1_SLEEP | STATUS1_POISON | STATUS1_TOXIC_POISON | STATUS1_PARALYSIS | STATUS1_BURN, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_81D8B39
attackanimation
waitanimation
setmoveeffect MOVE_EFFECT_SLEEP
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_81D69B0:: @ 81D69B0
pause 32
printstring STRINGID_PKMNALREADYASLEEP
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D69BE:: @ 81D69BE
pause 32
printstring STRINGID_PKMNWASNTAFFECTED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D69CC:: @ 81D69CC
pause 32
printfromtable gUproarAwakeStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectPoisonHit:: @ 81D69DC
setmoveeffect MOVE_EFFECT_POISON
goto BattleScript_EffectHit
BattleScript_EffectAbsorb:: @ 81D69E7
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
typecalc
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 64
resultmessage
waitmessage 64
negativedamage
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_81D6A23
setbyte cMULTISTRING_CHOOSER, 0
goto BattleScript_81D6A2B
BattleScript_81D6A23:: @ 81D6A23
manipulatedamage 0
setbyte cMULTISTRING_CHOOSER, 1
BattleScript_81D6A2B:: @ 81D6A2B
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
jumpifmovehadnoeffect BattleScript_81D6A42
printfromtable gLeechSeedDrainStringIds
waitmessage 64
BattleScript_81D6A42:: @ 81D6A42
tryfaintmon BS_ATTACKER, 0, NULL
tryfaintmon BS_TARGET, 0, NULL
goto BattleScript_MoveEnd
BattleScript_EffectBurnHit:: @ 81D6A55
setmoveeffect MOVE_EFFECT_BURN
goto BattleScript_EffectHit
BattleScript_EffectFreezeHit:: @ 81D6A60
setmoveeffect MOVE_EFFECT_FREEZE
goto BattleScript_EffectHit
BattleScript_EffectParalyzeHit:: @ 81D6A6B
setmoveeffect MOVE_EFFECT_PARALYSIS
goto BattleScript_EffectHit
BattleScript_EffectExplosion:: @ 81D6A76
attackcanceler
attackstring
ppreduce
faintifabilitynotdamp
setatkhptozero
waitstate
jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_81D6A91
call BattleScript_81D6AE7
goto BattleScript_81D6A93
BattleScript_81D6A91:: @ 81D6A91
attackanimation
waitanimation
BattleScript_81D6A93:: @ 81D6A93
movevaluescleanup
critcalc
damagecalc
typecalc
adjustnormaldamage
accuracycheck BattleScript_81D6ACC, ACC_CURR_MOVE
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 64
resultmessage
waitmessage 64
tryfaintmon BS_TARGET, 0, NULL
moveendto 16
jumpifnexttargetvalid BattleScript_81D6A93
tryfaintmon BS_ATTACKER, 0, NULL
end
BattleScript_81D6ACC:: @ 81D6ACC
effectivenesssound
resultmessage
waitmessage 64
moveendto 16
jumpifnexttargetvalid BattleScript_81D6A93
tryfaintmon BS_ATTACKER, 0, NULL
end
BattleScript_81D6AE7:: @ 81D6AE7
bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
attackanimation
waitanimation
orbyte gMoveResultFlags, MOVE_RESULT_MISSED
return
BattleScript_EffectDreamEater:: @ 81D6AF6
attackcanceler
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D6B0B
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_81D6B15
BattleScript_81D6B0B:: @ 81D6B0B
attackstring
ppreduce
waitmessage 64
goto BattleScript_81D69BE
BattleScript_81D6B15:: @ 81D6B15
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
typecalc
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 64
resultmessage
waitmessage 64
negativedamage
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
jumpifmovehadnoeffect BattleScript_81D6B53
printstring STRINGID_PKMNDREAMEATEN
waitmessage 64
BattleScript_81D6B53:: @ 81D6B53
tryfaintmon BS_TARGET, 0, NULL
goto BattleScript_MoveEnd
BattleScript_EffectMirrorMove:: @ 81D6B5F
attackcanceler
attackstring
pause 64
trymirrormove
ppreduce
orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_MIRRORMOVEFAILED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectAttackUp:: @ 81D6B77
setstatchanger STAT_ATK, 1, FALSE
goto BattleScript_81D6B9E
BattleScript_EffectDefenseUp:: @ 81D6B82
setstatchanger STAT_DEF, 1, FALSE
goto BattleScript_81D6B9E
BattleScript_EffectSpecialAttackUp:: @ 81D6B8D
setstatchanger STAT_SPATK, 1, FALSE
goto BattleScript_81D6B9E
BattleScript_EffectEvasionUp:: @ 81D6B98
setstatchanger STAT_EVASION, 1, FALSE
BattleScript_81D6B9E:: @ 81D6B9E
attackcanceler
BattleScript_81D6B9F:: @ 81D6B9F
attackstring
ppreduce
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D6BCC
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D6BBA
pause 32
goto BattleScript_81D6BC4
BattleScript_81D6BBA:: @ 81D6BBA
attackanimation
waitanimation
BattleScript_81D6BBC:: @ 81D6BBC
setgraphicalstatchangevalues
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
BattleScript_81D6BC4:: @ 81D6BC4
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D6BCC:: @ 81D6BCC
goto BattleScript_MoveEnd
BattleScript_StatUp:: @ 81D6BD1
playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 64
return
BattleScript_EffectAttackDown:: @ 81D6BE1
setstatchanger STAT_ATK, 1, TRUE
goto BattleScript_81D6C13
BattleScript_EffectDefenseDown:: @ 81D6BEC
setstatchanger STAT_DEF, 1, TRUE
goto BattleScript_81D6C13
BattleScript_EffectSpeedDown:: @ 81D6BF7
setstatchanger STAT_SPEED, 1, TRUE
goto BattleScript_81D6C13
BattleScript_EffectAccuracyDown:: @ 81D6C02
setstatchanger STAT_ACC, 1, TRUE
goto BattleScript_81D6C13
BattleScript_EffectEvasionDown:: @ 81D6C0D
setstatchanger STAT_EVASION, 1, TRUE
BattleScript_81D6C13:: @ 81D6C13
attackcanceler
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D7DF0
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_81D6C5D
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 2, BattleScript_81D6C4B
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 3, BattleScript_81D6C5D
pause 32
goto BattleScript_81D6C55
BattleScript_81D6C4B:: @ 81D6C4B
attackanimation
waitanimation
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
BattleScript_81D6C55:: @ 81D6C55
printfromtable gStatDownStringIds
waitmessage 64
BattleScript_81D6C5D:: @ 81D6C5D
goto BattleScript_MoveEnd
BattleScript_StatDown:: @ 81D6C62
playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatDownStringIds
waitmessage 64
return
BattleScript_EffectHaze:: @ 81D6C72
attackcanceler
attackstring
ppreduce
attackanimation
waitanimation
normalisebuffs
printstring STRINGID_STATCHANGESGONE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectBide:: @ 81D6C83
attackcanceler
attackstring
ppreduce
attackanimation
waitanimation
orword gHitMarker, HITMARKER_CHARGING
setbide
goto BattleScript_MoveEnd
BattleScript_EffectRampage:: @ 81D6C97
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D6CAB
ppreduce
BattleScript_81D6CAB:: @ 81D6CAB
confuseifrepeatingattackends
goto BattleScript_HitFromCritCalc
BattleScript_EffectRoar:: @ 81D6CB1
attackcanceler
attackstring
ppreduce
jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_81D9408
jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_81D8F27
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
forcerandomswitch BattleScript_ButItFailed
BattleScript_EffectMultiHit:: @ 81D6CD9
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
setmultihitcounter 0
initmultihitstring
setbyte sMULTIHIT_EFFECT, 0
BattleScript_81D6CEC:: @ 81D6CEC
jumpifhasnohp BS_ATTACKER, BattleScript_81D6D82
jumpifhasnohp BS_TARGET, BattleScript_81D6D63
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_81D6D0E
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_81D6D63
BattleScript_81D6D0E:: @ 81D6D0E
movevaluescleanup
copybyte cEFFECT_CHOOSER, sMULTIHIT_EFFECT
critcalc
damagecalc
typecalc
jumpifmovehadnoeffect BattleScript_81D6D60
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 64
printstring STRINGID_EMPTYSTRING3
waitmessage 1
addbyte gBattleScripting + 12, 1
moveendto 16
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_81D6D63
decrementmultihit BattleScript_81D6CEC
goto BattleScript_81D6D63
BattleScript_81D6D60:: @ 81D6D60
pause 32
BattleScript_81D6D63:: @ 81D6D63
resultmessage
waitmessage 64
jumpifmovehadnoeffect BattleScript_81D6D82
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 6
printstring STRINGID_HITXTIMES
waitmessage 64
BattleScript_81D6D82:: @ 81D6D82
seteffectwithchance
tryfaintmon BS_TARGET, 0, NULL
moveendcase 2
moveendfrom 4
end
BattleScript_EffectConversion:: @ 81D6D9D
attackcanceler
attackstring
ppreduce
tryconversiontypechange BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCHANGEDTYPE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectFlinchHit:: @ 81D6DB2
setmoveeffect MOVE_EFFECT_FLINCH
goto BattleScript_EffectHit
BattleScript_EffectRestoreHp:: @ 81D6DBD
attackcanceler
attackstring
ppreduce
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER
attackanimation
waitanimation
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectToxic:: @ 81D6DE0
attackcanceler
attackstring
ppreduce
jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_81D6E4F
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_81D6E41
jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_81D6E41
jumpifstatus BS_TARGET, STATUS1_FREEZE | STATUS1_SLEEP | STATUS1_POISON | STATUS1_TOXIC_POISON | STATUS1_PARALYSIS | STATUS1_BURN, BattleScript_ButItFailed
jumpiftype BS_TARGET, TYPE_POISON, BattleScript_81D7E04
jumpiftype BS_TARGET, TYPE_STEEL, BattleScript_81D7E04
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_81D8B39
attackanimation
waitanimation
setmoveeffect MOVE_EFFECT_TOXIC
seteffectprimary
resultmessage
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D6E41:: @ 81D6E41
pause 64
printstring STRINGID_PKMNALREADYPOISONED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D6E4F:: @ 81D6E4F
copybyte gEffectBattler, gBattlerTarget
setbyte cMULTISTRING_CHOOSER, 0
call BattleScript_PSNPrevention
goto BattleScript_MoveEnd
BattleScript_EffectPayDay:: @ 81D6E69
setmoveeffect MOVE_EFFECT_PAYDAY
goto BattleScript_EffectHit
BattleScript_EffectLightScreen:: @ 81D6E74
attackcanceler
attackstring
ppreduce
setlightscreen
goto BattleScript_81D7172
BattleScript_EffectTriAttack:: @ 81D6E7D
setmoveeffect MOVE_EFFECT_TRI_ATTACK
goto BattleScript_EffectHit
BattleScript_EffectRest:: @ 81D6E88
attackcanceler
attackstring
ppreduce
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_81D6EC2
jumpifcantmakeasleep BattleScript_81D6EB2
trysetrest BattleScript_AlreadyAtFullHp
pause 32
printfromtable gRestUsedStringIds
waitmessage 64
updatestatusicon BS_ATTACKER
waitstate
goto BattleScript_PresentHealTarget
BattleScript_81D6EB2:: @ 81D6EB2
pause 64
printfromtable gUproarAwakeStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D6EC2:: @ 81D6EC2
pause 32
printstring STRINGID_PKMNALREADYASLEEP2
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectOhko:: @ 81D6ED0
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
typecalc
jumpifmovehadnoeffect BattleScript_81D6934
tryKO BattleScript_81D6EF1
trysetdestinybondtohappen
goto BattleScript_81D6934
BattleScript_81D6EF1:: @ 81D6EF1
pause 64
printfromtable gKOFailedStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectRazorWind:: @ 81D6F01
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D6F29
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_81D6F29
setbyte sTWOTURN_STRINGID, 0
call BattleScript_81D6F58
goto BattleScript_MoveEnd
BattleScript_81D6F29:: @ 81D6F29
attackcanceler
setmoveeffect MOVE_EFFECT_CHARGING
setbyte sB_ANIM_TURN, 1
clearstatusfromeffect BS_ATTACKER
orword gHitMarker, HITMARKER_NO_PPDEDUCT
jumpifnotmove MOVE_SKY_ATTACK, BattleScript_81D6927
setmoveeffect MOVE_EFFECT_FLINCH
goto BattleScript_81D6927
BattleScript_81D6F58:: @ 81D6F58
attackcanceler
printstring STRINGID_EMPTYSTRING3
ppreduce
attackanimation
waitanimation
orword gHitMarker, HITMARKER_CHARGING
setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER
seteffectprimary
copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID
printfromtable gFirstTurnOfTwoStringIds
waitmessage 64
return
BattleScript_EffectSuperFang:: @ 81D6F82
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
damagetohalftargethp
goto BattleScript_81D6934
BattleScript_EffectDragonRage:: @ 81D6F99
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
setword gBattleMoveDamage, 40
adjustsetdamage
goto BattleScript_81D6934
BattleScript_EffectTrap:: @ 81D6FC8
jumpifnotmove MOVE_WHIRLPOOL, BattleScript_81D6FEE
jumpifnostatus3 BS_TARGET, STATUS3_UNDERWATER, BattleScript_81D6FEE
orword gHitMarker, HITMARKER_IGNORE_UNDERWATER
setbyte sDMG_MULTIPLIER, 2
BattleScript_81D6FEE:: @ 81D6FEE
setmoveeffect MOVE_EFFECT_WRAP
goto BattleScript_EffectHit
BattleScript_EffectDoubleHit:: @ 81D6FF9
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
setmultihitcounter 2
initmultihitstring
setbyte sMULTIHIT_EFFECT, 0
goto BattleScript_81D6CEC
BattleScript_EffectRecoilIfMiss:: @ 81D7011
attackcanceler
accuracycheck BattleScript_81D701E, ACC_CURR_MOVE
goto BattleScript_81D692E
BattleScript_81D701E:: @ 81D701E
attackstring
ppreduce
pause 64
resultmessage
waitmessage 64
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd
printstring STRINGID_PKMNCRASHED
waitmessage 64
damagecalc
typecalc
adjustnormaldamage
manipulatedamage 1
bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, 0, NULL
orbyte gMoveResultFlags, MOVE_RESULT_MISSED
goto BattleScript_MoveEnd
BattleScript_EffectMist:: @ 81D7062
attackcanceler
attackstring
ppreduce
setmist
attackanimation
waitanimation
printfromtable gMistUsedStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectFocusEnergy:: @ 81D7075
attackcanceler
attackstring
ppreduce
jumpifstatus2 BS_ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed
setfocusenergy
attackanimation
waitanimation
printfromtable gFocusEnergyUsedStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectRecoil:: @ 81D7092
setmoveeffect MOVE_EFFECT_RECOIL_25 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit
incrementgamestat GAME_STAT_USED_STRUGGLE
goto BattleScript_EffectHit
BattleScript_EffectConfuse:: @ 81D70AB
attackcanceler
attackstring
ppreduce
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_81D9460
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_81D70EA
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_81D8B39
attackanimation
waitanimation
setmoveeffect MOVE_EFFECT_CONFUSION
seteffectprimary
resultmessage
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D70EA:: @ 81D70EA
pause 32
printstring STRINGID_PKMNALREADYCONFUSED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectAttackUp2:: @ 81D70F8
setstatchanger STAT_ATK, 2, FALSE
goto BattleScript_81D6B9E
BattleScript_EffectDefenseUp2:: @ 81D7103
setstatchanger STAT_DEF, 2, FALSE
goto BattleScript_81D6B9E
BattleScript_EffectSpeedUp2:: @ 81D710E
setstatchanger STAT_SPEED, 2, FALSE
goto BattleScript_81D6B9E
BattleScript_EffectSpecialAttackUp2:: @ 81D7119
setstatchanger STAT_SPATK, 2, FALSE
goto BattleScript_81D6B9E
BattleScript_EffectSpecialDefenseUp2:: @ 81D7124
setstatchanger STAT_SPDEF, 2, FALSE
goto BattleScript_81D6B9E
BattleScript_EffectTransform:: @ 81D712F
attackcanceler
attackstring
ppreduce
transformdataexecution
attackanimation
waitanimation
printfromtable gTransformUsedStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectAttackDown2:: @ 81D7142
setstatchanger STAT_ATK, 2, TRUE
goto BattleScript_81D6C13
BattleScript_EffectDefenseDown2:: @ 81D714D
setstatchanger STAT_DEF, 2, TRUE
goto BattleScript_81D6C13
BattleScript_EffectSpeedDown2:: @ 81D7158
setstatchanger STAT_SPEED, 2, TRUE
goto BattleScript_81D6C13
BattleScript_EffectSpecialDefenseDown2:: @ 81D7163
setstatchanger STAT_SPDEF, 2, TRUE
goto BattleScript_81D6C13
BattleScript_EffectReflect:: @ 81D716E
attackcanceler
attackstring
ppreduce
setreflect
BattleScript_81D7172:: @ 81D7172
attackanimation
waitanimation
printfromtable gReflectLightScreenSafeguardStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectPoison:: @ 81D7181
attackcanceler
attackstring
ppreduce
jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_81D6E4F
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_81D6E41
jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_81D6E41
jumpiftype BS_TARGET, TYPE_POISON, BattleScript_81D7E04
jumpiftype BS_TARGET, TYPE_STEEL, BattleScript_81D7E04
jumpifstatus BS_TARGET, STATUS1_FREEZE | STATUS1_SLEEP | STATUS1_POISON | STATUS1_TOXIC_POISON | STATUS1_PARALYSIS | STATUS1_BURN, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_81D8B39
attackanimation
waitanimation
setmoveeffect MOVE_EFFECT_POISON
seteffectprimary
resultmessage
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectParalyze:: @ 81D71E2
attackcanceler
attackstring
ppreduce
jumpifability BS_TARGET, ABILITY_LIMBER, BattleScript_81D7245
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
typecalc
jumpifmovehadnoeffect BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_81D7237
jumpifstatus BS_TARGET, STATUS1_FREEZE | STATUS1_SLEEP | STATUS1_POISON | STATUS1_TOXIC_POISON | STATUS1_PARALYSIS | STATUS1_BURN, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_81D8B39
attackanimation
waitanimation
setmoveeffect MOVE_EFFECT_PARALYSIS
seteffectprimary
resultmessage
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D7237:: @ 81D7237
pause 32
printstring STRINGID_PKMNISALREADYPARALYZED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D7245:: @ 81D7245
copybyte gEffectBattler, gBattlerTarget
setbyte cMULTISTRING_CHOOSER, 0
call BattleScript_PRLZPrevention
goto BattleScript_MoveEnd
BattleScript_EffectAttackDownHit:: @ 81D725F
setmoveeffect MOVE_EFFECT_ATK_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectDefenseDownHit:: @ 81D726A
setmoveeffect MOVE_EFFECT_DEF_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSpeedDownHit:: @ 81D7275
setmoveeffect MOVE_EFFECT_SPD_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSpecialAttackDownHit:: @ 81D7280
setmoveeffect MOVE_EFFECT_SP_ATK_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSpecialDefenseDownHit:: @ 81D728B
setmoveeffect MOVE_EFFECT_SP_DEF_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectAccuracyDownHit:: @ 81D7296
setmoveeffect MOVE_EFFECT_ACC_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSkyAttack:: @ 81D72A1
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D6F29
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_81D6F29
setbyte sTWOTURN_STRINGID, 3
call BattleScript_81D6F58
goto BattleScript_MoveEnd
BattleScript_EffectConfuseHit:: @ 81D72C9
setmoveeffect MOVE_EFFECT_CONFUSION
goto BattleScript_EffectHit
BattleScript_EffectTwineedle:: @ 81D72D4
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
setbyte sMULTIHIT_EFFECT, 2
attackstring
ppreduce
setmultihitcounter 2
initmultihitstring
goto BattleScript_81D6CEC
BattleScript_EffectSubstitute:: @ 81D72EC
attackcanceler
ppreduce
attackstring
waitstate
jumpifstatus2 BS_ATTACKER, STATUS2_SUBSTITUTE, BattleScript_81D7321
setsubstitute
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 1, BattleScript_81D730E
pause 32
goto BattleScript_81D7314
BattleScript_81D730E:: @ 81D730E
attackanimation
waitanimation
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
BattleScript_81D7314:: @ 81D7314
printfromtable gSubsituteUsedStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D7321:: @ 81D7321
pause 32
printstring STRINGID_PKMNHASSUBSTITUTE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectRecharge:: @ 81D732F
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
setmoveeffect MOVE_EFFECT_RECHARGE | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_81D692E
BattleScript_MoveUsedMustRecharge:: @ 81D7342
printstring STRINGID_PKMNMUSTRECHARGE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectRage:: @ 81D734D
attackcanceler
accuracycheck BattleScript_81D7367, ACC_CURR_MOVE
setmoveeffect MOVE_EFFECT_RAGE
seteffectprimary
setmoveeffect MOVE_EFFECT_NOTHING_0
goto BattleScript_81D692E
BattleScript_81D7367:: @ 81D7367
setmoveeffect MOVE_EFFECT_RAGE
clearstatusfromeffect BS_ATTACKER
goto BattleScript_81D695E
BattleScript_EffectMimic:: @ 81D7374
attackcanceler
attackstring
ppreduce
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
mimicattackcopy BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNLEARNEDMOVE2
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectMetronome:: @ 81D739A
attackcanceler
attackstring
pause 32
attackanimation
waitanimation
setbyte sB_ANIM_TURN, 0
setbyte sB_ANIM_TARGETS_HIT, 0
metronome
BattleScript_EffectLeechSeed:: @ 81D73AE
attackcanceler
attackstring
pause 32
ppreduce
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_81D73C5, ACC_CURR_MOVE
BattleScript_81D73C5:: @ 81D73C5
setseeded
attackanimation
waitanimation
printfromtable gLeechSeedStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectSplash:: @ 81D73D5
attackcanceler
attackstring
ppreduce
attackanimation
waitanimation
incrementgamestat GAME_STAT_USED_SPLASH
printstring STRINGID_BUTNOTHINGHAPPENED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectDisable:: @ 81D73E7
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
disablelastusedattack BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNMOVEWASDISABLED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectLevelDamage:: @ 81D7403
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
dmgtolevel
adjustsetdamage
goto BattleScript_81D6934
BattleScript_EffectPsywave:: @ 81D741B
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
psywavedamageeffect
adjustsetdamage
goto BattleScript_81D6934
BattleScript_EffectCounter:: @ 81D7433
attackcanceler
counterdamagecalculator BattleScript_81D7DF0
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
typecalc2
adjustsetdamage
goto BattleScript_81D6934
BattleScript_EffectEncore:: @ 81D7449
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
trysetencore BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNGOTENCORE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectPainSplit:: @ 81D7465
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
painsplitdmgcalc BattleScript_ButItFailed
attackanimation
waitanimation
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
copyword gBattleMoveDamage, gBattleScripting
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printstring STRINGID_SHAREDPAIN
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectSnore:: @ 81D749C
attackcanceler
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_81D74AE
attackstring
ppreduce
goto BattleScript_ButItFailed
BattleScript_81D74AE:: @ 81D74AE
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_81D74C2
printstring STRINGID_PKMNFASTASLEEP
waitmessage 64
statusanimation BS_ATTACKER
BattleScript_81D74C2:: @ 81D74C2
attackstring
ppreduce
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
setmoveeffect MOVE_EFFECT_FLINCH
goto BattleScript_HitFromCritCalc
BattleScript_EffectConversion2:: @ 81D74D6
attackcanceler
attackstring
ppreduce
settypetorandomresistance BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCHANGEDTYPE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectLockOn:: @ 81D74EB
attackcanceler
attackstring
ppreduce
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
setalwayshitflag
attackanimation
waitanimation
printstring STRINGID_PKMNTOOKAIM
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectSketch:: @ 81D750D
attackcanceler
attackstring
ppreduce
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
copymovepermanently BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSKETCHEDMOVE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectSleepTalk:: @ 81D752C
attackcanceler
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_81D753E
attackstring
ppreduce
goto BattleScript_ButItFailed
BattleScript_81D753E:: @ 81D753E
printstring STRINGID_PKMNFASTASLEEP
waitmessage 64
statusanimation BS_ATTACKER
attackstring
ppreduce
orword gHitMarker, HITMARKER_NO_PPDEDUCT
trychoosesleeptalkmove BattleScript_81D755E
pause 64
goto BattleScript_ButItFailed
BattleScript_81D755E:: @ 81D755E
attackanimation
waitanimation
setbyte sB_ANIM_TURN, 0
setbyte sB_ANIM_TARGETS_HIT, 0
jumptocalledmove 1
BattleScript_EffectDestinyBond:: @ 81D756E
attackcanceler
attackstring
ppreduce
setdestinybond
attackanimation
waitanimation
printstring STRINGID_PKMNTRYINGTOTAKEFOE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectFlail:: @ 81D757F
remaininghptopower
goto BattleScript_EffectHit
BattleScript_EffectSpite:: @ 81D7585
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
tryspiteppreduce BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNREDUCEDPP
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectHealBell:: @ 81D75A1
attackcanceler
attackstring
ppreduce
healpartystatus
waitstate
attackanimation
waitanimation
printfromtable gPartyStatusHealStringIds
waitmessage 64
jumpifnotmove MOVE_HEAL_BELL, BattleScript_81D75DE
jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, 1, BattleScript_81D75CD
printstring STRINGID_PKMNSXBLOCKSY
waitmessage 64
BattleScript_81D75CD:: @ 81D75CD
jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, 2, BattleScript_81D75DE
printstring STRINGID_PKMNSXBLOCKSY2
waitmessage 64
BattleScript_81D75DE:: @ 81D75DE
updatestatusicon BS_ATTACKER_WITH_PARTNER
waitstate
goto BattleScript_MoveEnd
BattleScript_EffectTripleKick:: @ 81D75E6
attackcanceler
attackstring
ppreduce
setbyte sTRIPLE_KICK_POWER, 0
setbyte gBattleScripting + 19, 0
initmultihitstring
setmultihit 3
BattleScript_81D75F8:: @ 81D75F8
jumpifhasnohp BS_ATTACKER, BattleScript_81D76B7
jumpifhasnohp BS_TARGET, BattleScript_81D7679
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_81D761A
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_81D7679
BattleScript_81D761A:: @ 81D761A
accuracycheck BattleScript_81D7679, ACC_CURR_MOVE
movevaluescleanup
addbyte sTRIPLE_KICK_POWER, 10
addbyte gBattleScripting + 12, 1
copyhword gDynamicBasePower, sTRIPLE_KICK_POWER
critcalc
damagecalc
typecalc
adjustnormaldamage
jumpifmovehadnoeffect BattleScript_81D7679
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 64
printstring STRINGID_EMPTYSTRING3
waitmessage 1
moveendto 16
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_81D768D
decrementmultihit BattleScript_81D75F8
goto BattleScript_81D768D
BattleScript_81D7679:: @ 81D7679
pause 32
jumpifbyte CMP_EQUAL, gBattleScripting + 12, 0, BattleScript_81D768D
bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
BattleScript_81D768D:: @ 81D768D
resultmessage
waitmessage 64
jumpifbyte CMP_EQUAL, gBattleScripting + 12, 0, BattleScript_81D76B7
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_81D76B7
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 6
printstring STRINGID_HITXTIMES
waitmessage 64
BattleScript_81D76B7:: @ 81D76B7
seteffectwithchance
tryfaintmon BS_TARGET, 0, NULL
moveendfrom 14
end
BattleScript_EffectThief:: @ 81D76C9
setmoveeffect MOVE_EFFECT_STEAL_ITEM
goto BattleScript_EffectHit
BattleScript_EffectMeanLook:: @ 81D76D4
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC
jumpifstatus2 BS_TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
attackanimation
waitanimation
setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE
seteffectprimary
printstring STRINGID_TARGETCANTESCAPENOW
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectNightmare:: @ 81D7706
attackcanceler
attackstring
ppreduce
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus2 BS_TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_81D772C
goto BattleScript_ButItFailed
BattleScript_81D772C:: @ 81D772C
attackanimation
waitanimation
setmoveeffect MOVE_EFFECT_NIGHTMARE
seteffectprimary
printstring STRINGID_PKMNFELLINTONIGHTMARE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectMinimize:: @ 81D7740
attackcanceler
setminimize
setstatchanger STAT_EVASION, 1, FALSE
goto BattleScript_81D6B9F
BattleScript_EffectCurse:: @ 81D774D
jumpiftype2 BS_ATTACKER, TYPE_GHOST, BattleScript_81D77C5
attackcanceler
attackstring
ppreduce
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, 0, BattleScript_81D7772
jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, 12, BattleScript_81D7772
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 12, BattleScript_ButItFailed
BattleScript_81D7772:: @ 81D7772
copybyte gBattlerTarget, gBattlerAttacker
setbyte sB_ANIM_TURN, 1
attackanimation
waitanimation
setstatchanger STAT_SPEED, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D7798
printfromtable gStatDownStringIds
waitmessage 64
BattleScript_81D7798:: @ 81D7798
setstatchanger STAT_ATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D77AC
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D77AC:: @ 81D77AC
setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D77C0
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D77C0:: @ 81D77C0
goto BattleScript_MoveEnd
BattleScript_81D77C5:: @ 81D77C5
jumpifbytenotequal gBattlerAttacker, gBattlerTarget, BattleScript_81D77D6
getmovetarget BS_ATTACKER
BattleScript_81D77D6:: @ 81D77D6
attackcanceler
attackstring
ppreduce
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
cursetarget BattleScript_ButItFailed
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
setbyte sB_ANIM_TURN, 0
attackanimation
waitanimation
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNLAIDCURSE
waitmessage 64
tryfaintmon BS_ATTACKER, 0, NULL
goto BattleScript_MoveEnd
BattleScript_EffectProtect:: @ 81D7816
attackcanceler
attackstring
ppreduce
setprotectlike
attackanimation
waitanimation
printfromtable gProtectLikeUsedStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectSpikes:: @ 81D7829
attackcanceler
trysetspikes BattleScript_81D7DF0
attackstring
ppreduce
attackanimation
waitanimation
printstring STRINGID_SPIKESSCATTERED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectForesight:: @ 81D783E
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
setforesight
attackanimation
waitanimation
printstring STRINGID_PKMNIDENTIFIED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectPerishSong:: @ 81D7856
attackcanceler
attackstring
ppreduce
trysetperishsong BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_FAINTINTHREE
waitmessage 64
setbyte sBATTLER, 0
BattleScript_81D786C:: @ 81D786C
jumpifability BS_SCRIPTING, ABILITY_SOUNDPROOF, BattleScript_81D788C
BattleScript_81D7873:: @ 81D7873
addbyte sBATTLER, 1
jumpifbytenotequal sBATTLER, gBattlersCount, BattleScript_81D786C
goto BattleScript_MoveEnd
BattleScript_81D788C:: @ 81D788C
printstring STRINGID_PKMNSXBLOCKSY2
waitmessage 64
goto BattleScript_81D7873
BattleScript_EffectSandstorm:: @ 81D7897
attackcanceler
attackstring
ppreduce
setsandstorm
goto BattleScript_81D7A14
BattleScript_EffectRollout:: @ 81D78A0
attackcanceler
attackstring
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D78AD
ppreduce
BattleScript_81D78AD:: @ 81D78AD
accuracycheck BattleScript_81D78B4, ACC_CURR_MOVE
BattleScript_81D78B4:: @ 81D78B4
typecalc2
rolloutdamagecalculation
goto BattleScript_HitFromCritCalc
BattleScript_EffectSwagger:: @ 81D78BB
attackcanceler
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D6958
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
jumpifconfusedandstatmaxed 1, BattleScript_ButItFailed
attackanimation
waitanimation
setstatchanger STAT_ATK, 2, FALSE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_81D78FE
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D78FE
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D78FE:: @ 81D78FE
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_81D9460
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_81D8B39
setmoveeffect MOVE_EFFECT_CONFUSION
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_EffectFuryCutter:: @ 81D7919
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_81D7923, ACC_CURR_MOVE
BattleScript_81D7923:: @ 81D7923
furycuttercalc
critcalc
damagecalc
typecalc
jumpifmovehadnoeffect BattleScript_81D7923
adjustnormaldamage
goto BattleScript_81D6934
BattleScript_EffectAttract:: @ 81D7938
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
tryinfatuating BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNFELLINLOVE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectReturn:: @ 81D7954
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
happinesstodamagecalculation
goto BattleScript_81D692E
BattleScript_EffectPresent:: @ 81D7962
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
presentdamagecalculation
BattleScript_EffectSafeguard:: @ 81D796E
attackcanceler
attackstring
ppreduce
setsafeguard
goto BattleScript_81D7172
BattleScript_EffectThawHit:: @ 81D7977
setmoveeffect MOVE_EFFECT_BURN
goto BattleScript_EffectHit
BattleScript_EffectMagnitude:: @ 81D7982
attackcanceler
attackstring
ppreduce
selectfirstvalidtarget
magnitudedamagecalculation
pause 32
printstring STRINGID_MAGNITUDESTRENGTH
waitmessage 64
goto BattleScript_81D7B17
BattleScript_EffectBatonPass:: @ 81D7995
attackcanceler
attackstring
ppreduce
jumpifcantswitch BS_ATTACKER | 0x80, BattleScript_ButItFailed
attackanimation
waitanimation
openpartyscreen 1, BattleScript_ButItFailed
switchoutabilities BS_ATTACKER
waitstate
switchhandleorder BS_ATTACKER, 2
returntoball BS_ATTACKER
getswitchedmondata BS_ATTACKER
switchindataupdate BS_ATTACKER
hpthresholds BS_ATTACKER
printstring STRINGID_SWITCHINMON
switchinanim BS_ATTACKER, 1
waitstate
switchineffects BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_EffectRapidSpin:: @ 81D79C2
setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectSonicboom:: @ 81D79CD
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
setword gBattleMoveDamage, 20
adjustsetdamage
goto BattleScript_81D6934
BattleScript_EffectMorningSun:: @ 81D79FC
attackcanceler
attackstring
ppreduce
recoverbasedonsunlight BattleScript_AlreadyAtFullHp
goto BattleScript_PresentHealTarget
BattleScript_EffectHiddenPower:: @ 81D7A09
attackcanceler
hiddenpowercalc
goto BattleScript_81D6927
BattleScript_EffectRainDance:: @ 81D7A10
attackcanceler
attackstring
ppreduce
setrain
BattleScript_81D7A14:: @ 81D7A14
attackanimation
waitanimation
printfromtable gMoveWeatherChangeStringIds
waitmessage 64
call BattleScript_81D92DC
goto BattleScript_MoveEnd
BattleScript_EffectSunnyDay:: @ 81D7A28
attackcanceler
attackstring
ppreduce
setsunny
goto BattleScript_81D7A14
BattleScript_EffectDefenseUpHit:: @ 81D7A31
setmoveeffect MOVE_EFFECT_DEF_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
BattleScript_EffectAttackUpHit:: @ 81D7A3C
setmoveeffect MOVE_EFFECT_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
BattleScript_EffectAllStatsUpHit:: @ 81D7A47
setmoveeffect MOVE_EFFECT_ALL_STATS_UP | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
BattleScript_EffectBellyDrum:: @ 81D7A52
attackcanceler
attackstring
ppreduce
maxattackhalvehp BattleScript_ButItFailed
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
attackanimation
waitanimation
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNCUTHPMAXEDATTACK
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectPsychUp:: @ 81D7A74
attackcanceler
attackstring
ppreduce
copyfoestats BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCOPIEDSTATCHANGES
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectMirrorCoat:: @ 81D7A89
attackcanceler
mirrorcoatdamagecalculator BattleScript_81D7DF0
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
typecalc2
adjustsetdamage
goto BattleScript_81D6934
BattleScript_EffectSkullBash:: @ 81D7A9F
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D6F29
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_81D6F29
setbyte sTWOTURN_STRINGID, 2
call BattleScript_81D6F58
setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D7AE9
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D7AE9
setgraphicalstatchangevalues
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D7AE9:: @ 81D7AE9
goto BattleScript_MoveEnd
BattleScript_EffectTwister:: @ 81D7AEE
jumpifnostatus3 BS_TARGET, STATUS3_ON_AIR, BattleScript_81D7B08
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
setbyte sDMG_MULTIPLIER, 2
BattleScript_81D7B08:: @ 81D7B08
setmoveeffect MOVE_EFFECT_FLINCH
goto BattleScript_EffectHit
BattleScript_EffectEarthquake:: @ 81D7B13
attackcanceler
attackstring
ppreduce
selectfirstvalidtarget
BattleScript_81D7B17:: @ 81D7B17
movevaluescleanup
jumpifnostatus3 BS_TARGET, STATUS3_UNDERGROUND, BattleScript_81D7B37
orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND
setbyte sDMG_MULTIPLIER, 2
goto BattleScript_81D7B46
BattleScript_81D7B37:: @ 81D7B37
bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND
setbyte sDMG_MULTIPLIER, 1
BattleScript_81D7B46:: @ 81D7B46
accuracycheck BattleScript_81D7B7F, ACC_CURR_MOVE
critcalc
damagecalc
typecalc
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 64
resultmessage
waitmessage 64
printstring STRINGID_EMPTYSTRING3
waitmessage 1
tryfaintmon BS_TARGET, 0, NULL
moveendto 16
jumpifnexttargetvalid BattleScript_81D7B17
end
BattleScript_81D7B7F:: @ 81D7B7F
pause 32
typecalc
effectivenesssound
resultmessage
waitmessage 64
moveendto 16
jumpifnexttargetvalid BattleScript_81D7B17
end
BattleScript_EffectFutureSight:: @ 81D7B97
attackcanceler
attackstring
ppreduce
trysetfutureattack BattleScript_ButItFailed
attackanimation
waitanimation
printfromtable gFutureMoveUsedStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectGust:: @ 81D7BAE
jumpifnostatus3 BS_TARGET, STATUS3_ON_AIR, BattleScript_EffectHit
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
setbyte sDMG_MULTIPLIER, 2
goto BattleScript_EffectHit
BattleScript_EffectFlinchMinimizeHit:: @ 81D7BCD
jumpifnostatus3 BS_TARGET, STATUS3_MINIMIZED, BattleScript_81D7B08
setbyte sDMG_MULTIPLIER, 2
goto BattleScript_81D7B08
BattleScript_EffectSolarbeam:: @ 81D7BE3
jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_81D7BFB
jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_81D7BFB
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, 96, BattleScript_81D7C23
BattleScript_81D7BFB:: @ 81D7BFB
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D6F29
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_81D6F29
setbyte sTWOTURN_STRINGID, 1
call BattleScript_81D6F58
goto BattleScript_MoveEnd
BattleScript_81D7C23:: @ 81D7C23
orword gHitMarker, HITMARKER_CHARGING
setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER
seteffectprimary
ppreduce
goto BattleScript_81D6F29
BattleScript_EffectThunder:: @ 81D7C39
setmoveeffect MOVE_EFFECT_PARALYSIS
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
goto BattleScript_EffectHit
BattleScript_EffectTeleport:: @ 81D7C4D
attackcanceler
attackstring
ppreduce
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed
getifcantrunfrombattle BS_ATTACKER
jumpifbyte CMP_EQUAL, gBattleCommunication, 1, BattleScript_ButItFailed
jumpifbyte CMP_EQUAL, gBattleCommunication, 2, BattleScript_81D8255
attackanimation
waitanimation
printstring STRINGID_PKMNFLEDFROMBATTLE
waitmessage 64
setbyte gBattleOutcome, B_OUTCOME_PLAYER_TELEPORTED
goto BattleScript_MoveEnd
BattleScript_EffectBeatUp:: @ 81D7C8A
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
pause 32
ppreduce
setbyte gBattleCommunication, 0
BattleScript_81D7C9D:: @ 81D7C9D
movevaluescleanup
trydobeatup BattleScript_81D7CE0, BattleScript_ButItFailed
printstring STRINGID_PKMNATTACK
critcalc
jumpifbyte CMP_NOT_EQUAL, gCritMultiplier, 2, BattleScript_81D7CB8
manipulatedamage 2
BattleScript_81D7CB8:: @ 81D7CB8
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 64
resultmessage
waitmessage 64
tryfaintmon BS_TARGET, 0, NULL
moveendto 16
goto BattleScript_81D7C9D
BattleScript_81D7CE0:: @ 81D7CE0
end
BattleScript_EffectSemiInvulnerable:: @ 81D7CE1
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D7D4F
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_81D7D4F
jumpifmove MOVE_FLY, BattleScript_81D7D3E
jumpifmove MOVE_DIVE, BattleScript_81D7D33
jumpifmove MOVE_BOUNCE, BattleScript_81D7D28
setbyte sTWOTURN_STRINGID, 5
goto BattleScript_81D7D44
BattleScript_81D7D28:: @ 81D7D28
setbyte sTWOTURN_STRINGID, 7
goto BattleScript_81D7D44
BattleScript_81D7D33:: @ 81D7D33
setbyte sTWOTURN_STRINGID, 6
goto BattleScript_81D7D44
BattleScript_81D7D3E:: @ 81D7D3E
setbyte sTWOTURN_STRINGID, 4
BattleScript_81D7D44:: @ 81D7D44
call BattleScript_81D6F58
setsemiinvulnerablebit
goto BattleScript_MoveEnd
BattleScript_81D7D4F:: @ 81D7D4F
attackcanceler
setmoveeffect MOVE_EFFECT_CHARGING
setbyte sB_ANIM_TURN, 1
clearstatusfromeffect BS_ATTACKER
orword gHitMarker, HITMARKER_NO_PPDEDUCT
jumpifnotmove MOVE_BOUNCE, BattleScript_81D7D79
setmoveeffect MOVE_EFFECT_PARALYSIS
BattleScript_81D7D79:: @ 81D7D79
accuracycheck BattleScript_81D7D86, ACC_CURR_MOVE
clearsemiinvulnerablebit
goto BattleScript_81D692E
BattleScript_81D7D86:: @ 81D7D86
clearsemiinvulnerablebit
goto BattleScript_81D695E
BattleScript_EffectDefenseCurl:: @ 81D7D8C
attackcanceler
attackstring
ppreduce
setdefensecurlbit
setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D7DA9
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D6BC4
attackanimation
waitanimation
BattleScript_81D7DA9:: @ 81D7DA9
goto BattleScript_81D6BBC
BattleScript_EffectSoftboiled:: @ 81D7DAE
attackcanceler
attackstring
ppreduce
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_TARGET
BattleScript_PresentHealTarget:: @ 81D7DB7
attackanimation
waitanimation
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_AlreadyAtFullHp:: @ 81D7DD1
pause 32
printstring STRINGID_PKMNHPFULL
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectFakeOut:: @ 81D7DDF
attackcanceler
jumpifnotfirstturn BattleScript_81D7DF0
setmoveeffect MOVE_EFFECT_FLINCH | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_81D7DF0:: @ 81D7DF0
attackstring
BattleScript_81D7DF1:: @ 81D7DF1
ppreduce
BattleScript_ButItFailed:: @ 81D7DF2
pause 32
orbyte gMoveResultFlags, MOVE_RESULT_FAILED
resultmessage
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D7E04:: @ 81D7E04
pause 32
orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
resultmessage
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectUproar:: @ 81D7E16
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
setmoveeffect MOVE_EFFECT_UPROAR | MOVE_EFFECT_AFFECTS_USER
attackstring
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D7E30
ppreduce
BattleScript_81D7E30:: @ 81D7E30
nop
goto BattleScript_HitFromCritCalc
BattleScript_EffectStockpile:: @ 81D7E36
attackcanceler
attackstring
ppreduce
stockpile
attackanimation
waitanimation
printfromtable gStockpileUsedStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectSpitUp:: @ 81D7E49
attackcanceler
jumpifbyte CMP_EQUAL, gBattleCommunication + 6, 1, BattleScript_81D7E78
attackstring
ppreduce
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
stockpiletobasedamage BattleScript_81D7E6A
typecalc
adjustsetdamage
goto BattleScript_81D6934
BattleScript_81D7E6A:: @ 81D7E6A
pause 32
printstring STRINGID_FAILEDTOSPITUP
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D7E78:: @ 81D7E78
attackstring
ppreduce
pause 64
stockpiletobasedamage BattleScript_81D7E6A
resultmessage
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectSwallow:: @ 81D7E8B
attackcanceler
attackstring
ppreduce
stockpiletohpheal BattleScript_81D7E98
goto BattleScript_PresentHealTarget
BattleScript_81D7E98:: @ 81D7E98
pause 32
printfromtable gSwallowFailStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectHail:: @ 81D7EA8
attackcanceler
attackstring
ppreduce
sethail
goto BattleScript_81D7A14
BattleScript_EffectTorment:: @ 81D7EB1
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
settorment BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSUBJECTEDTOTORMENT
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectFlatter:: @ 81D7ECD
attackcanceler
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D6958
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
jumpifconfusedandstatmaxed 4, BattleScript_ButItFailed
attackanimation
waitanimation
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_81D7F10
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D7F10
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D7F10:: @ 81D7F10
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_81D9460
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_81D8B39
setmoveeffect MOVE_EFFECT_CONFUSION
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_EffectWillOWisp:: @ 81D7F2B
attackcanceler
attackstring
ppreduce
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_BURN, BattleScript_81D7F91
jumpiftype BS_TARGET, TYPE_FIRE, BattleScript_81D7E04
jumpifability BS_TARGET, ABILITY_WATER_VEIL, BattleScript_81D7F77
jumpifstatus BS_TARGET, STATUS1_FREEZE | STATUS1_SLEEP | STATUS1_POISON | STATUS1_TOXIC_POISON | STATUS1_PARALYSIS | STATUS1_BURN, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_81D8B39
attackanimation
waitanimation
setmoveeffect MOVE_EFFECT_BURN
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_81D7F77:: @ 81D7F77
copybyte gEffectBattler, gBattlerTarget
setbyte cMULTISTRING_CHOOSER, 0
call BattleScript_BRNPrevention
goto BattleScript_MoveEnd
BattleScript_81D7F91:: @ 81D7F91
pause 32
printstring STRINGID_PKMNALREADYHASBURN
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectMemento:: @ 81D7F9F
attackcanceler
jumpifbyte CMP_EQUAL, gBattleCommunication + 6, 1, BattleScript_81D8026
attackstring
ppreduce
jumpifattackandspecialattackcannotfall BattleScript_ButItFailed
setatkhptozero
attackanimation
waitanimation
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D801B
setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO | ATK48_ONLY_MULTIPLE
playstatchangeanimation BS_TARGET, BIT_ATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO
setstatchanger STAT_ATK, 2, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_81D7FEC
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_81D7FEC
printfromtable gStatDownStringIds
waitmessage 64
BattleScript_81D7FEC:: @ 81D7FEC
playstatchangeanimation BS_TARGET, BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO
setstatchanger STAT_SPATK, 2, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_81D800F
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_81D800F
printfromtable gStatDownStringIds
waitmessage 64
BattleScript_81D800F:: @ 81D800F
tryfaintmon BS_ATTACKER, 0, NULL
goto BattleScript_MoveEnd
BattleScript_81D801B:: @ 81D801B
printstring STRINGID_BUTNOEFFECT
waitmessage 64
goto BattleScript_81D800F
BattleScript_81D8026:: @ 81D8026
attackstring
ppreduce
jumpifattackandspecialattackcannotfall BattleScript_81D802D
BattleScript_81D802D:: @ 81D802D
setatkhptozero
pause 64
effectivenesssound
resultmessage
waitmessage 64
tryfaintmon BS_ATTACKER, 0, NULL
goto BattleScript_MoveEnd
BattleScript_EffectFacade:: @ 81D8042
jumpifstatus BS_ATTACKER, STATUS1_POISON | STATUS1_PARALYSIS | STATUS1_BURN | STATUS1_TOXIC_POISON, BattleScript_81D8051
goto BattleScript_EffectHit
BattleScript_81D8051:: @ 81D8051
setbyte sDMG_MULTIPLIER, 2
goto BattleScript_EffectHit
BattleScript_EffectFocusPunch:: @ 81D805C
attackcanceler
jumpifnodamage BattleScript_81D6927
ppreduce
printstring STRINGID_PKMNLOSTFOCUS
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectSmellingsalt:: @ 81D806E
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit
setmoveeffect MOVE_EFFECT_REMOVE_PARALYSIS | MOVE_EFFECT_CERTAIN
jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_81D808D
goto BattleScript_EffectHit
BattleScript_81D808D:: @ 81D808D
setbyte sDMG_MULTIPLIER, 2
goto BattleScript_EffectHit
BattleScript_EffectFollowMe:: @ 81D8098
attackcanceler
attackstring
ppreduce
setforcedtarget
attackanimation
waitanimation
printstring STRINGID_PKMNCENTERATTENTION
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectNaturePower:: @ 81D80A9
attackcanceler
attackstring
pause 32
callterrainattack
printstring STRINGID_NATUREPOWERTURNEDINTO
waitmessage 64
return
BattleScript_EffectCharge:: @ 81D80B6
attackcanceler
attackstring
ppreduce
setcharge
attackanimation
waitanimation
printstring STRINGID_PKMNCHARGINGPOWER
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectTaunt:: @ 81D80C7
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
settaunt BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNFELLFORTAUNT
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectHelpingHand:: @ 81D80E3
attackcanceler
attackstring
ppreduce
trysethelpinghand BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNREADYTOHELP
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectTrick:: @ 81D80F8
attackcanceler
attackstring
ppreduce
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
tryswapitems BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSWITCHEDITEMS
waitmessage 64
printfromtable gItemSwapStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectRolePlay:: @ 81D8126
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
trycopyability BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCOPIEDFOE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectWish:: @ 81D8142
attackcanceler
attackstring
ppreduce
trywish 0, BattleScript_ButItFailed
attackanimation
waitanimation
goto BattleScript_MoveEnd
BattleScript_EffectAssist:: @ 81D8152
attackcanceler
attackstring
assistattackselect BattleScript_81D7DF1
attackanimation
waitanimation
setbyte sB_ANIM_TURN, 0
setbyte sB_ANIM_TARGETS_HIT, 0
jumptocalledmove 1
BattleScript_EffectIngrain:: @ 81D8169
attackcanceler
attackstring
ppreduce
trysetroots BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNPLANTEDROOTS
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectSuperpower:: @ 81D817E
setmoveeffect MOVE_EFFECT_ATK_DEF_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectMagicCoat:: @ 81D8189
attackcanceler
trysetmagiccoat BattleScript_81D7DF0
attackstring
ppreduce
attackanimation
waitanimation
printstring STRINGID_PKMNSHROUDEDITSELF
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectRecycle:: @ 81D819E
attackcanceler
attackstring
ppreduce
tryrecycleitem BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_XFOUNDONEY
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectRevenge:: @ 81D81B3
doubledamagedealtifdamaged
goto BattleScript_EffectHit
BattleScript_EffectBrickBreak:: @ 81D81B9
attackcanceler
accuracycheck BattleScript_81D695E, ACC_CURR_MOVE
attackstring
ppreduce
removelightscreenreflect
critcalc
damagecalc
typecalc
adjustnormaldamage
jumpifbyte CMP_EQUAL, sB_ANIM_TURN, 0, BattleScript_81D81D9
bicbyte gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE
BattleScript_81D81D9:: @ 81D81D9
attackanimation
waitanimation
jumpifbyte CMP_LESS_THAN, sB_ANIM_TURN, 2, BattleScript_81D81EC
printstring STRINGID_THEWALLSHATTERED
waitmessage 64
BattleScript_81D81EC:: @ 81D81EC
typecalc2
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 64
resultmessage
waitmessage 64
seteffectwithchance
tryfaintmon BS_TARGET, 0, NULL
goto BattleScript_MoveEnd
BattleScript_EffectYawn:: @ 81D820A
attackcanceler
attackstring
ppreduce
jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_81D824B
jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_81D824B
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_81D8B39
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
jumpifcantmakeasleep BattleScript_ButItFailed
setyawn BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNWASMADEDROWSY
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D824B:: @ 81D824B
copybyte sBATTLER, sBATTLER_WITH_ABILITY
BattleScript_81D8255:: @ 81D8255
pause 32
printstring STRINGID_PKMNSXMADEITINEFFECTIVE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectKnockOff:: @ 81D8263
setmoveeffect MOVE_EFFECT_KNOCK_OFF
goto BattleScript_EffectHit
BattleScript_EffectEndeavor:: @ 81D826E
attackcanceler
attackstring
ppreduce
setdamagetohealthdifference BattleScript_ButItFailed
copyword gHpDealt, gBattleMoveDamage
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc
jumpifmovehadnoeffect BattleScript_81D6934
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
copyword gBattleMoveDamage, gHpDealt
adjustsetdamage
goto BattleScript_81D6934
BattleScript_EffectEruption:: @ 81D82A9
scaledamagebyhealthratio
goto BattleScript_EffectHit
BattleScript_EffectSkillSwap:: @ 81D82AF
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
tryswapabilities BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSWAPPEDABILITIES
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectImprison:: @ 81D82CB
attackcanceler
attackstring
ppreduce
tryimprison BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSEALEDOPPONENTMOVE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectRefresh:: @ 81D82E0
attackcanceler
attackstring
ppreduce
cureifburnedparalysedorpoisoned BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSTATUSNORMAL
waitmessage 64
updatestatusicon BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_EffectGrudge:: @ 81D82F7
attackcanceler
attackstring
ppreduce
trysetgrudge BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNWANTSGRUDGE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectSnatch:: @ 81D830C
attackcanceler
trysetsnatch BattleScript_81D7DF0
attackstring
ppreduce
attackanimation
waitanimation
pause 32
printstring STRINGID_PKMNWAITSFORTARGET
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectLowKick:: @ 81D8324
attackcanceler
attackstring
ppreduce
weightdamagecalculation
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
goto BattleScript_HitFromCritCalc
BattleScript_EffectSecretPower:: @ 81D8334
getsecretpowereffect
goto BattleScript_EffectHit
BattleScript_EffectDoubleEdge:: @ 81D833A
setmoveeffect MOVE_EFFECT_RECOIL_33 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectTeeterDance:: @ 81D8345
attackcanceler
attackstring
ppreduce
setbyte gBattlerTarget, 0
BattleScript_81D834E:: @ 81D834E
movevaluescleanup
setmoveeffect MOVE_EFFECT_CONFUSION
jumpifbyteequal gBattlerAttacker, gBattlerTarget, BattleScript_81D8394
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_81D83B2
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D83CE
jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_81D83DC
accuracycheck BattleScript_81D83EA, ACC_CURR_MOVE
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_81D83C0
attackanimation
waitanimation
seteffectprimary
resultmessage
waitmessage 64
BattleScript_81D8394:: @ 81D8394
moveendto 16
addbyte gBattlerTarget, 1
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_81D834E
end
BattleScript_81D83B2:: @ 81D83B2
pause 32
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
waitmessage 64
goto BattleScript_81D8394
BattleScript_81D83C0:: @ 81D83C0
pause 32
printstring STRINGID_PKMNUSEDSAFEGUARD
waitmessage 64
goto BattleScript_81D8394
BattleScript_81D83CE:: @ 81D83CE
pause 32
printstring STRINGID_BUTITFAILED
waitmessage 64
goto BattleScript_81D8394
BattleScript_81D83DC:: @ 81D83DC
pause 32
printstring STRINGID_PKMNALREADYCONFUSED
waitmessage 64
goto BattleScript_81D8394
BattleScript_81D83EA:: @ 81D83EA
resultmessage
waitmessage 64
goto BattleScript_81D8394
BattleScript_EffectMudSport:: @ 81D83F3
attackcanceler
attackstring
ppreduce
settypebasedhalvers BattleScript_ButItFailed
attackanimation
waitanimation
printfromtable gSportsUsedStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectPoisonFang:: @ 81D840A
setmoveeffect MOVE_EFFECT_TOXIC
goto BattleScript_EffectHit
BattleScript_EffectWeatherBall:: @ 81D8415
setweatherballtype
goto BattleScript_EffectHit
BattleScript_EffectOverheat:: @ 81D841B
setmoveeffect MOVE_EFFECT_SP_ATK_TWO_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectTickle:: @ 81D8426
attackcanceler
attackstring
ppreduce
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0, BattleScript_81D843B
jumpifstat BS_TARGET, CMP_EQUAL, STAT_DEF, 0, BattleScript_81D8499
BattleScript_81D843B:: @ 81D843B
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, ATK48_STAT_NEGATIVE | ATK48_ONLY_MULTIPLE
playstatchangeanimation BS_TARGET, BIT_ATK, ATK48_STAT_NEGATIVE
setstatchanger STAT_ATK, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_81D8471
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D8471
printfromtable gStatDownStringIds
waitmessage 64
BattleScript_81D8471:: @ 81D8471
playstatchangeanimation BS_TARGET, BIT_DEF, ATK48_STAT_NEGATIVE
setstatchanger STAT_DEF, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_81D8494
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D8494
printfromtable gStatDownStringIds
waitmessage 64
BattleScript_81D8494:: @ 81D8494
goto BattleScript_MoveEnd
BattleScript_81D8499:: @ 81D8499
pause 32
orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_STATSWONTDECREASE2
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectCosmicPower:: @ 81D84AD
attackcanceler
attackstring
ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 12, BattleScript_81D84C2
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 12, BattleScript_81D85E7
BattleScript_81D84C2:: @ 81D84C2
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0
setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D84ED
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D84ED
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D84ED:: @ 81D84ED
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D850C
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D850C
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D850C:: @ 81D850C
goto BattleScript_MoveEnd
BattleScript_EffectSkyUppercut:: @ 81D8511
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
goto BattleScript_EffectHit
BattleScript_EffectBulkUp:: @ 81D851F
attackcanceler
attackstring
ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 12, BattleScript_81D8534
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 12, BattleScript_81D85E7
BattleScript_81D8534:: @ 81D8534
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0
setstatchanger STAT_ATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D855F
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D855F
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D855F:: @ 81D855F
setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D857E
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D857E
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D857E:: @ 81D857E
goto BattleScript_MoveEnd
BattleScript_EffectCalmMind:: @ 81D8583
attackcanceler
attackstring
ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 12, BattleScript_81D8598
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 12, BattleScript_81D85E7
BattleScript_81D8598:: @ 81D8598
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D85C3
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D85C3
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D85C3:: @ 81D85C3
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D85E2
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D85E2
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D85E2:: @ 81D85E2
goto BattleScript_MoveEnd
BattleScript_81D85E7:: @ 81D85E7
pause 32
orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_STATSWONTINCREASE2
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_EffectDragonDance:: @ 81D85FB
attackcanceler
attackstring
ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 12, BattleScript_81D8610
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 12, BattleScript_81D85E7
BattleScript_81D8610:: @ 81D8610
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0
setstatchanger STAT_ATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D863B
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D863B
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D863B:: @ 81D863B
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D865A
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D865A
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D865A:: @ 81D865A
goto BattleScript_MoveEnd
BattleScript_EffectCamouflage:: @ 81D865F
attackcanceler
attackstring
ppreduce
settypetoterrain BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCHANGEDTYPE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_FaintAttacker:: @ 81D8674
playfaintcry BS_ATTACKER
pause 64
dofaintanimation BS_ATTACKER
cleareffectsonfaint BS_ATTACKER
printstring STRINGID_ATTACKERFAINTED
printstring STRINGID_EMPTYSTRING3
return
BattleScript_FaintTarget:: @ 81D8684
playfaintcry BS_TARGET
pause 64
dofaintanimation BS_TARGET
cleareffectsonfaint BS_TARGET
printstring STRINGID_TARGETFAINTED
printstring STRINGID_EMPTYSTRING3
return
BattleScript_GiveExp:: @ 81D8694
setbyte sGIVEEXP_STATE, 0
getexp BS_TARGET
end2
BattleScript_HandleFaintedMon:: @ 81D869D
atk24 BattleScript_81D87B8
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_81D87B7
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_81D86E6
jumpifword CMP_NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_81D86E6
printstring STRINGID_USENEXTPKMN
setbyte gBattleCommunication, 0
yesnobox
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0, BattleScript_81D86E6
jumpifplayerran BattleScript_81D87B7
printstring STRINGID_CANTESCAPE2
BattleScript_81D86E6:: @ 81D86E6
openpartyscreen 3, BattleScript_81D87B7
switchhandleorder BS_FAINTED, 2
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_81D8792
jumpifbattletype BATTLE_TYPE_LINK, BattleScript_81D8792
jumpifbattletype BATTLE_TYPE_BATTLE_TOWER, BattleScript_81D8792
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_81D8792
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_81D8792
jumpifbyte CMP_EQUAL, sBATTLE_STYLE, 1, BattleScript_81D8792
jumpifcantswitch BS_PLAYER1, BattleScript_81D8792
printstring STRINGID_ENEMYABOUTTOSWITCHPKMN
setbyte gBattleCommunication, 0
yesnobox
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 1, BattleScript_81D8792
setatktoplayer0
openpartyscreen 129, BattleScript_81D8792
switchhandleorder BS_ATTACKER, 2
jumpifbyte CMP_EQUAL, gBattleCommunication, 6, BattleScript_81D8792
atknameinbuff1
resetintimidatetracebits BS_ATTACKER
hpthresholds2 BS_ATTACKER
printstring STRINGID_RETURNMON
switchoutabilities BS_ATTACKER
waitstate
returnatktoball
waitstate
drawpartystatussummary BS_ATTACKER
getswitchedmondata BS_ATTACKER
switchindataupdate BS_ATTACKER
hpthresholds BS_ATTACKER
printstring STRINGID_SWITCHINMON
hidepartystatussummary BS_ATTACKER
switchinanim BS_ATTACKER, 0
waitstate
switchineffects BS_ATTACKER
resetsentmonsvalue
BattleScript_81D8792:: @ 81D8792
drawpartystatussummary BS_FAINTED
getswitchedmondata BS_FAINTED
switchindataupdate BS_FAINTED
hpthresholds BS_FAINTED
printstring STRINGID_SWITCHINMON
hidepartystatussummary BS_FAINTED
switchinanim BS_FAINTED, 0
waitstate
various7 BS_ATTACKER
switchineffects BS_FAINTED
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_81D87B7
cancelallactions
BattleScript_81D87B7:: @ 81D87B7
end2
BattleScript_81D87B8:: @ 81D87B8
openpartyscreen 5, BattleScript_81D87BE
BattleScript_81D87BE:: @ 81D87BE
switchhandleorder BS_FAINTED, 0
openpartyscreen 6, BattleScript_81D87EE
switchhandleorder BS_FAINTED, 0
BattleScript_81D87CA:: @ 81D87CA
switchhandleorder BS_FAINTED, 2
drawpartystatussummary BS_FAINTED
getswitchedmondata BS_FAINTED
switchindataupdate BS_FAINTED
hpthresholds BS_FAINTED
printstring STRINGID_SWITCHINMON
hidepartystatussummary BS_FAINTED
switchinanim BS_FAINTED, 0
waitstate
switchineffects 5
jumpifbytenotequal gBattlerFainted, gBattlersCount, BattleScript_81D87CA
BattleScript_81D87EE:: @ 81D87EE
end2
BattleScript_LocalTrainerBattleWon:: @ 81D87EF
printstring STRINGID_PLAYERDEFEATEDTRAINER1
trainerslidein BS_ATTACKER
waitstate
printstring STRINGID_TRAINER1LOSETEXT
getmoneyreward BattleScript_81D87FD
BattleScript_81D87FD:: @ 81D87FD
printstring STRINGID_PLAYERGOTMONEY
waitmessage 64
BattleScript_PayDayMoneyAndPickUpItems:: @ 81D8803
givepaydaymoney
pickup
end2
BattleScript_LocalBattleLost:: @ 81D8806
jumpifbattletype BATTLE_TYPE_TRAINER_TOWER, BattleScript_81D8896
jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_81D886E
jumpifhalfword CMP_EQUAL, gTrainerBattleOpponent_A, 1024, BattleScript_81D886E
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_81D8876
BattleScript_81D8839:: @ 81D8839
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_81D885D
printstring STRINGID_PLAYERWHITEOUT
waitmessage 64
getmoneyreward BattleScript_81D886F
printstring STRINGID_PLAYERWHITEOUT2
waitmessage 64
goto BattleScript_81D886E
BattleScript_81D885D:: @ 81D885D
printstring STRINGID_PLAYERLOSTAGAINSTENEMYTRAINER
waitmessage 64
getmoneyreward BattleScript_81D886F
printstring STRINGID_PLAYERPAIDPRIZEMONEY
waitmessage 64
BattleScript_81D886E:: @ 81D886E
end2
BattleScript_81D886F:: @ 81D886F
printstring STRINGID_PLAYERWHITEDOUT
waitmessage 64
end2
BattleScript_81D8876:: @ 81D8876
jumpifhasnohp BS_ATTACKER, BattleScript_81D8884
printstring STRINGID_TRAINER1MON1COMEBACK
waitmessage 64
returnatktoball
waitstate
BattleScript_81D8884:: @ 81D8884
trainerslidein BS_ATTACKER
waitstate
printstring STRINGID_TRAINER1WINTEXT
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D8839
end2
BattleScript_81D8896:: @ 81D8896
various8 BS_ATTACKER
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_81D88B4
printfromtable gDoubleBattleRecallStrings
waitmessage 64
returnopponentmon1toball BS_ATTACKER
waitstate
returnopponentmon2toball BS_ATTACKER
waitstate
BattleScript_81D88B4:: @ 81D88B4
trainerslidein BS_ATTACKER
waitstate
printstring STRINGID_TRAINER1WINTEXT
jumpifnotbattletype BATTLE_TYPE_DOUBLE, BattleScript_81D88CB
printstring STRINGID_TRAINER2NAME
BattleScript_81D88CB:: @ 81D88CB
end2
BattleScript_LinkBattleWonOrLost:: @ 81D88CC
printstring STRINGID_BATTLEEND
waitmessage 64
atk57
waitmessage 64
end2
gUnknown_81D88D7:: @ 81D88D7
printstring STRINGID_PLAYERDEFEATEDTRAINER1
trainerslidein BS_ATTACKER
waitstate
jumpifnotbattletype BATTLE_TYPE_TRAINER_TOWER, BattleScript_81D88FF
printstring STRINGID_TRAINER1LOSETEXT
jumpifnotbattletype BATTLE_TYPE_DOUBLE, BattleScript_81D88FF
printstring STRINGID_TRAINER2CLASS
BattleScript_81D88FF:: @ 81D88FF
pickup
end2
BattleScript_SmokeBallEscape:: @ 81D8901
playanimation BS_ATTACKER, B_ANIM_SMOKEBALL_ESCAPE, NULL
printstring STRINGID_PKMNFLEDUSINGITS
waitmessage 64
end2
BattleScript_RanAwayUsingMonAbility:: @ 81D890F
printstring STRINGID_PKMNFLEDUSING
waitmessage 64
end2
BattleScript_GotAwaySafely:: @ 81D8916
printstring STRINGID_GOTAWAYSAFELY
waitmessage 64
end2
BattleScript_WildMonFled:: @ 81D891D
printstring STRINGID_WILDPKMNFLED
waitmessage 64
end2
BattleScript_PrintCantRunFromTrainer:: @ 81D8924
jumpifbattletype BATTLE_TYPE_FIRST_BATTLE, BattleScript_81D8936
printstring STRINGID_NORUNNINGFROMTRAINERS
end2
BattleScript_81D8936:: @ 81D8936
printstring STRINGID_DONTLEAVEBIRCH
end2
BattleScript_PrintFailedToRunString:: @ 81D893A
printfromtable gNoEscapeStringIds
waitmessage 64
end2
BattleScript_PrintCantEscapeFromBattle:: @ 81D8943
printselectionstringfromtable gNoEscapeStringIds
endselectionscript
BattleScript_PrintFullBox:: @ 81D8949
printselectionstring STRINGID_BOXISFULL
endselectionscript
BattleScript_ActionSwitch:: @ 81D894D
hpthresholds2 BS_ATTACKER
printstring STRINGID_RETURNMON
setbyte sDMG_MULTIPLIER, 2
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_81D896D
setmultihit 1
goto BattleScript_81D896F
BattleScript_81D896D:: @ 81D896D
setmultihit 2
BattleScript_81D896F:: @ 81D896F
jumpifnopursuitswitchdmg BattleScript_81D897C
swapattackerwithtarget
trysetdestinybondtohappen
call BattleScript_81D89AF
swapattackerwithtarget
BattleScript_81D897C:: @ 81D897C
decrementmultihit BattleScript_81D896F
switchoutabilities BS_ATTACKER
waitstate
returnatktoball
waitstate
drawpartystatussummary BS_ATTACKER
switchhandleorder BS_ATTACKER, 1
getswitchedmondata BS_ATTACKER
switchindataupdate BS_ATTACKER
hpthresholds BS_ATTACKER
printstring STRINGID_SWITCHINMON
hidepartystatussummary BS_ATTACKER
switchinanim BS_ATTACKER, 0
waitstate
switchineffects BS_ATTACKER
moveendcase 4
moveendcase 15
end2
BattleScript_81D89AF:: @ 81D89AF
pause 32
attackstring
ppreduce
critcalc
damagecalc
typecalc
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 64
resultmessage
waitmessage 64
tryfaintmon BS_TARGET, 0, NULL
moveendfromto 3, 6
various4 BS_TARGET
jumpifbyte CMP_EQUAL, gBattleCommunication, 0, BattleScript_81D89F0
setbyte sGIVEEXP_STATE, 0
getexp BS_TARGET
BattleScript_81D89F0:: @ 81D89F0
return
BattleScript_Pausex20:: @ 81D89F1
pause 32
return
BattleScript_LevelUp:: @ 81D89F5
fanfare MUS_FANFA1
printstring STRINGID_PKMNGREWTOLV
setbyte sLVLBOX_STATE, 0
drawlvlupbox
handlelearnnewmove BattleScript_81D8A51, BattleScript_81D8A63, 1
goto BattleScript_81D8A1B
BattleScript_81D8A11:: @ 81D8A11
handlelearnnewmove BattleScript_81D8A51, BattleScript_81D8A63, 0
BattleScript_81D8A1B:: @ 81D8A1B
buffermovetolearn
printstring STRINGID_TRYTOLEARNMOVE1
printstring STRINGID_TRYTOLEARNMOVE2
printstring STRINGID_TRYTOLEARNMOVE3
waitstate
setbyte sLEARNMOVE_STATE, 0
yesnoboxlearnmove BattleScript_81D8A48
printstring STRINGID_STOPLEARNINGMOVE
waitstate
setbyte sLEARNMOVE_STATE, 0
yesnoboxstoplearningmove BattleScript_81D8A1B
printstring STRINGID_DIDNOTLEARNMOVE
goto BattleScript_81D8A11
BattleScript_81D8A48:: @ 81D8A48
printstring STRINGID_123POOF
printstring STRINGID_PKMNFORGOTMOVE
printstring STRINGID_ANDELLIPSIS
BattleScript_81D8A51:: @ 81D8A51
buffermovetolearn
fanfare MUS_FANFA1
printstring STRINGID_PKMNLEARNEDMOVE
waitmessage 64
updatechoicemoveonlvlup BS_ATTACKER
goto BattleScript_81D8A11
BattleScript_81D8A63:: @ 81D8A63
return
BattleScript_RainContinuesOrEnds:: @ 81D8A64
printfromtable gRainContinuesStringIds
waitmessage 64
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D8A7E
playanimation BS_ATTACKER, B_ANIM_RAIN_CONTINUES, NULL
BattleScript_81D8A7E:: @ 81D8A7E
end2
BattleScript_DamagingWeatherContinues:: @ 81D8A7F
printfromtable gSandStormHailContinuesStringIds
waitmessage 64
playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL
setbyte gBattleCommunication, 0
BattleScript_81D8A97:: @ 81D8A97
copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 1
weatherdamage
jumpifword CMP_EQUAL, gBattleMoveDamage, NULL, BattleScript_81D8AD8
printfromtable gSandStormHailDmgStringIds
waitmessage 64
orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
effectivenesssound
hitanimation BS_ATTACKER
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, 0, NULL
atk24 BattleScript_81D8AD8
BattleScript_81D8AD8:: @ 81D8AD8
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_81D8AF7
addbyte gBattleCommunication, 1
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_81D8A97
BattleScript_81D8AF7:: @ 81D8AF7
bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
end2
BattleScript_SandStormHailEnds:: @ 81D8B01
printfromtable gSandStormHailEndStringIds
waitmessage 64
end2
BattleScript_SunlightContinues:: @ 81D8B0A
printstring STRINGID_SUNLIGHTSTRONG
waitmessage 64
playanimation BS_ATTACKER, B_ANIM_SUN_CONTINUES, NULL
end2
BattleScript_SunlightFaded:: @ 81D8B18
printstring STRINGID_SUNLIGHTFADED
waitmessage 64
end2
BattleScript_OverworldWeatherStarts:: @ 81D8B1F
printfromtable gWeatherContinuesStringIds
waitmessage 64
playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL
end3
BattleScript_SideStatusWoreOff:: @ 81D8B32
printstring STRINGID_PKMNSXWOREOFF
waitmessage 64
end2
BattleScript_81D8B39:: @ 81D8B39
pause 32
printstring STRINGID_PKMNUSEDSAFEGUARD
waitmessage 64
end2
BattleScript_SafeguardEnds:: @ 81D8B43
pause 32
printstring STRINGID_PKMNSAFEGUARDEXPIRED
waitmessage 64
end2
BattleScript_LeechSeedTurnDrain:: @ 81D8B4D
playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
copyword gBattleMoveDamage, gHpDealt
jumpifability BS_ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_81D8B7F
manipulatedamage 0
setbyte cMULTISTRING_CHOOSER, 3
goto BattleScript_81D8B85
BattleScript_81D8B7F:: @ 81D8B7F
setbyte cMULTISTRING_CHOOSER, 4
BattleScript_81D8B85:: @ 81D8B85
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printfromtable gLeechSeedStringIds
waitmessage 64
tryfaintmon BS_ATTACKER, 0, NULL
tryfaintmon BS_TARGET, 0, NULL
end2
BattleScript_BideStoringEnergy:: @ 81D8BA9
printstring STRINGID_PKMNSTORINGENERGY
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_BideAttack:: @ 81D8BB4
attackcanceler
setmoveeffect MOVE_EFFECT_CHARGING
clearstatusfromeffect BS_ATTACKER
printstring STRINGID_PKMNUNLEASHEDENERGY
waitmessage 64
accuracycheck BattleScript_81D6963, ACC_CURR_MOVE
typecalc
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
copyword gBattleMoveDamage, sBIDE_DMG
adjustsetdamage
setbyte sB_ANIM_TURN, 1
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
resultmessage
waitmessage 64
tryfaintmon BS_TARGET, 0, NULL
goto BattleScript_MoveEnd
BattleScript_BideNoEnergyToAttack:: @ 81D8BFC
attackcanceler
setmoveeffect MOVE_EFFECT_CHARGING
clearstatusfromeffect BS_ATTACKER
printstring STRINGID_PKMNUNLEASHEDENERGY
waitmessage 64
goto BattleScript_ButItFailed
BattleScript_SuccessForceOut:: @ 81D8C10
attackanimation
waitanimation
switchoutabilities BS_TARGET
returntoball BS_TARGET
waitstate
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_81D8C2C
setbyte gBattleOutcome, B_OUTCOME_PLAYER_TELEPORTED
finishaction
BattleScript_81D8C2C:: @ 81D8C2C
getswitchedmondata BS_TARGET
switchindataupdate BS_TARGET
switchinanim BS_TARGET, 0
waitstate
printstring STRINGID_PKMNWASDRAGGEDOUT
switchineffects BS_TARGET
goto BattleScript_MoveEnd
BattleScript_MistProtected:: @ 81D8C3E
pause 32
printstring STRINGID_PKMNPROTECTEDBYMIST
waitmessage 64
return
BattleScript_RageIsBuilding:: @ 81D8C48
printstring STRINGID_PKMNRAGEBUILDING
waitmessage 64
return
BattleScript_MoveUsedIsDisabled:: @ 81D8C4F
printstring STRINGID_PKMNMOVEISDISABLED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_SelectingDisabledMove:: @ 81D8C5A
printselectionstring STRINGID_PKMNMOVEISDISABLED
endselectionscript
BattleScript_DisabledNoMore:: @ 81D8C5E
printstring STRINGID_PKMNMOVEDISABLEDNOMORE
waitmessage 64
end2
BattleScript_EncoredNoMore:: @ 81D8C65
printstring STRINGID_PKMNENCOREENDED
waitmessage 64
end2
BattleScript_DestinyBondTakesLife:: @ 81D8C6C
printstring STRINGID_PKMNTOOKFOE
waitmessage 64
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, 0, NULL
return
BattleScript_SpikesOnAttacker:: @ 81D8C87
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
call BattleScript_81D8D2C
tryfaintmon BS_ATTACKER, 0, NULL
tryfaintmon BS_ATTACKER, 1, BattleScript_81D8CA8
return
BattleScript_81D8CA8:: @ 81D8CA8
setbyte sGIVEEXP_STATE, 0
getexp BS_ATTACKER
moveendall
goto BattleScript_HandleFaintedMon
BattleScript_SpikesOnTarget:: @ 81D8CBE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
call BattleScript_81D8D2C
tryfaintmon BS_TARGET, 0, NULL
tryfaintmon BS_TARGET, 1, BattleScript_81D8CDF
return
BattleScript_81D8CDF:: @ 81D8CDF
setbyte sGIVEEXP_STATE, 0
getexp BS_TARGET
moveendall
goto BattleScript_HandleFaintedMon
BattleScript_SpikesOnFaintedBattler:: @ 81D8CF5
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_FAINTED
datahpupdate BS_FAINTED
call BattleScript_81D8D2C
tryfaintmon BS_FAINTED, 0, NULL
tryfaintmon BS_FAINTED, 1, BattleScript_81D8D16
return
BattleScript_81D8D16:: @ 81D8D16
setbyte sGIVEEXP_STATE, 0
getexp BS_FAINTED
moveendall
goto BattleScript_HandleFaintedMon
BattleScript_81D8D2C:: @ 81D8D2C
printstring STRINGID_PKMNHURTBYSPIKES
waitmessage 64
return
BattleScript_PerishSongTakesLife:: @ 81D8D33
printstring STRINGID_PKMNPERISHCOUNTFELL
waitmessage 64
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, 0, NULL
end2
BattleScript_PerishSongCountGoesDown:: @ 81D8D4E
printstring STRINGID_PKMNPERISHCOUNTFELL
waitmessage 64
end2
BattleScript_AllStatsUp:: @ 81D8D55
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 12, BattleScript_81D8D82
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 12, BattleScript_81D8D82
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, 12, BattleScript_81D8D82
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 12, BattleScript_81D8D82
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 12, BattleScript_81D8DF0
BattleScript_81D8D82:: @ 81D8D82
setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0
setstatchanger STAT_ATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D8DA0
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D8DA0:: @ 81D8DA0
setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D8DB4
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D8DB4:: @ 81D8DB4
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D8DC8
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D8DC8:: @ 81D8DC8
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D8DDC
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D8DDC:: @ 81D8DDC
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D8DF0
printfromtable gStatUpStringIds
waitmessage 64
BattleScript_81D8DF0:: @ 81D8DF0
return
BattleScript_RapidSpinAway:: @ 81D8DF1
rapidspinfree
return
BattleScript_WrapFree:: @ 81D8DF3
printstring STRINGID_PKMNGOTFREE
waitmessage 64
copybyte gBattlerTarget, sBATTLER
return
BattleScript_LeechSeedFree:: @ 81D8E04
printstring STRINGID_PKMNSHEDLEECHSEED
waitmessage 64
return
BattleScript_SpikesFree:: @ 81D8E0B
printstring STRINGID_PKMNBLEWAWAYSPIKES
waitmessage 64
return
BattleScript_MonTookFutureAttack:: @ 81D8E12
printstring STRINGID_PKMNTOOKATTACK
waitmessage 64
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_81D8E2F
accuracycheck BattleScript_81D8E86, MOVE_FUTURE_SIGHT
goto BattleScript_81D8E36
BattleScript_81D8E2F:: @ 81D8E2F
accuracycheck BattleScript_81D8E86, MOVE_DOOM_DESIRE
BattleScript_81D8E36:: @ 81D8E36
adjustnormaldamage2
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_81D8E4E
playanimation BS_ATTACKER, B_ANIM_FUTURE_SIGHT_HIT, NULL
goto BattleScript_81D8E55
BattleScript_81D8E4E:: @ 81D8E4E
playanimation BS_ATTACKER, B_ANIM_DOOM_DESIRE_HIT, NULL
BattleScript_81D8E55:: @ 81D8E55
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
resultmessage
waitmessage 64
tryfaintmon BS_TARGET, 0, NULL
atk24 BattleScript_81D8E6D
BattleScript_81D8E6D:: @ 81D8E6D
moveendcase 0
moveendfromto 11, 14
setbyte gMoveResultFlags, 0
end2
BattleScript_81D8E86:: @ 81D8E86
pause 32
setbyte gMoveResultFlags, 0
orbyte gMoveResultFlags, MOVE_RESULT_FAILED
resultmessage
waitmessage 64
setbyte gMoveResultFlags, 0
end2
BattleScript_NoMovesLeft:: @ 81D8EA0
printselectionstring STRINGID_PKMNHASNOMOVESLEFT
endselectionscript
BattleScript_SelectingMoveWithNoPP:: @ 81D8EA4
printselectionstring STRINGID_NOPPLEFT
endselectionscript
BattleScript_NoPPForMove:: @ 81D8EA8
attackstring
pause 32
printstring STRINGID_BUTNOPPLEFT
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_SelectingTormentedMove:: @ 81D8EB7
printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT
endselectionscript
printstring STRINGID_PKMNCANTUSEMOVETORMENT
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_SelectingNotAllowedMoveTaunt:: @ 81D8EC6
printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT
endselectionscript
BattleScript_MoveUsedIsTaunted:: @ 81D8ECA
printstring STRINGID_PKMNCANTUSEMOVETAUNT
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_WishComesTrue:: @ 81D8ED5
trywish 1, BattleScript_81D8EFC
playanimation BS_TARGET, B_ANIM_WISH_HEAL, NULL
printstring STRINGID_PKMNWISHCAMETRUE
waitmessage 64
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage 64
end2
BattleScript_81D8EFC:: @ 81D8EFC
printstring STRINGID_PKMNWISHCAMETRUE
waitmessage 64
pause 32
printstring STRINGID_PKMNHPFULL
waitmessage 64
end2
BattleScript_IngrainTurnHeal:: @ 81D8F0C
playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL, NULL
printstring STRINGID_PKMNABSORBEDNUTRIENTS
waitmessage 64
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
end2
BattleScript_81D8F27:: @ 81D8F27
pause 32
printstring STRINGID_PKMNANCHOREDITSELF
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_AtkDefDown:: @ 81D8F35
setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, ATK48_STAT_NEGATIVE | ATK48_ONLY_MULTIPLE | ATK48_DONT_CHECK_LOWER
playstatchangeanimation BS_ATTACKER, BIT_ATK, ATK48_STAT_NEGATIVE | ATK48_DONT_CHECK_LOWER
setstatchanger STAT_ATK, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_81D8F62
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D8F62
printfromtable gStatDownStringIds
waitmessage 64
BattleScript_81D8F62:: @ 81D8F62
playstatchangeanimation BS_ATTACKER, BIT_DEF, ATK48_STAT_NEGATIVE | ATK48_DONT_CHECK_LOWER
setstatchanger STAT_DEF, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_81D8F85
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D8F85
printfromtable gStatDownStringIds
waitmessage 64
BattleScript_81D8F85:: @ 81D8F85
return
BattleScript_KnockedOff:: @ 81D8F86
playanimation BS_TARGET, B_ANIM_ITEM_KNOCKOFF, NULL
printstring STRINGID_PKMNKNOCKEDOFF
waitmessage 64
return
BattleScript_MoveUsedIsImprisoned:: @ 81D8F94
printstring STRINGID_PKMNCANTUSEMOVESEALED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_SelectingImprisonedMove:: @ 81D8F9F
printselectionstring STRINGID_PKMNCANTUSEMOVESEALED
endselectionscript
BattleScript_GrudgeTakesPp:: @ 81D8FA3
printstring STRINGID_PKMNLOSTPPGRUDGE
waitmessage 64
return
BattleScript_MagicCoatBounce:: @ 81D8FAA
attackstring
ppreduce
pause 32
printstring STRINGID_PKMNMOVEBOUNCED
waitmessage 64
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000
setmagiccoattarget BS_ATTACKER
return
BattleScript_SnatchedMove:: @ 81D8FC2
attackstring
ppreduce
snatchsetbattlers
playanimation BS_TARGET, B_ANIM_SNATCH_MOVE, NULL
printstring STRINGID_PKMNSNATCHEDMOVE
waitmessage 64
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000
swapattackerwithtarget
return
BattleScript_EnduredMsg:: @ 81D8FDD
printstring STRINGID_PKMNENDUREDHIT
waitmessage 64
return
BattleScript_OneHitKOMsg:: @ 81D8FE4
printstring STRINGID_ONEHITKO
waitmessage 64
return
BattleScript_SAtkDown2:: @ 81D8FEB
setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO | ATK48_DONT_CHECK_LOWER
setstatchanger STAT_SPATK, 2, TRUE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_81D9014
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_81D9014
printfromtable gStatDownStringIds
waitmessage 64
BattleScript_81D9014:: @ 81D9014
return
BattleScript_FocusPunchSetUp:: @ 81D9015
printstring STRINGID_EMPTYSTRING3
waitmessage 1
playanimation BS_ATTACKER, B_ANIM_FOCUS_PUNCH_SETUP, NULL
printstring STRINGID_PKMNTIGHTENINGFOCUS
waitmessage 64
end2
BattleScript_MoveUsedIsAsleep:: @ 81D9029
printstring STRINGID_PKMNFASTASLEEP
waitmessage 64
statusanimation BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_MoveUsedWokeUp:: @ 81D9036
bicword gHitMarker, HITMARKER_x10
printfromtable gWokeUpStringIds
waitmessage 64
updatestatusicon BS_ATTACKER
return
BattleScript_MonWokeUpInUproar:: @ 81D904A
printstring STRINGID_PKMNWOKEUPINUPROAR
waitmessage 64
updatestatusicon BS_ATTACKER
end2
BattleScript_PoisonTurnDmg:: @ 81D9053
printstring STRINGID_PKMNHURTBYPOISON
waitmessage 64
BattleScript_81D9059:: @ 81D9059
statusanimation BS_ATTACKER
BattleScript_81D905B:: @ 81D905B
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, 0, NULL
atk24 BattleScript_81D9074
BattleScript_81D9074:: @ 81D9074
end2
BattleScript_BurnTurnDmg:: @ 81D9075
printstring STRINGID_PKMNHURTBYBURN
waitmessage 64
goto BattleScript_81D9059
BattleScript_MoveUsedIsFrozen:: @ 81D9080
printstring STRINGID_PKMNISFROZEN
waitmessage 64
statusanimation BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_MoveUsedUnfroze:: @ 81D908D
printfromtable gGotDefrostedStringIds
waitmessage 64
updatestatusicon BS_ATTACKER
return
BattleScript_DefrostedViaFireMove:: @ 81D9098
printstring STRINGID_PKMNWASDEFROSTED
waitmessage 64
updatestatusicon BS_TARGET
return
BattleScript_MoveUsedIsParalyzed:: @ 81D90A1
printstring STRINGID_PKMNISPARALYZED
waitmessage 64
statusanimation BS_ATTACKER
cancelmultiturnmoves BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_MoveUsedFlinched:: @ 81D90B1
printstring STRINGID_PKMNFLINCHED
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_PrintUproarOverTurns:: @ 81D90BC
printfromtable gUproarOverTurnStringIds
waitmessage 64
end2
BattleScript_ThrashConfuses:: @ 81D90C5
chosenstatusanimation BS_ATTACKER, 1, STATUS2_CONFUSION
printstring STRINGID_PKMNFATIGUECONFUSION
waitmessage 64
end2
BattleScript_MoveUsedIsConfused:: @ 81D90D3
printstring STRINGID_PKMNISCONFUSED
waitmessage 64
status2animation BS_ATTACKER, STATUS2_CONFUSION
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_81D9115
BattleScript_81D90EA:: @ 81D90EA
cancelmultiturnmoves BS_ATTACKER
adjustnormaldamage2
printstring STRINGID_ITHURTCONFUSION
waitmessage 64
effectivenesssound
hitanimation BS_ATTACKER
waitstate
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
resultmessage
waitmessage 64
tryfaintmon BS_ATTACKER, 0, NULL
goto BattleScript_MoveEnd
BattleScript_81D9115:: @ 81D9115
return
BattleScript_MoveUsedIsConfusedNoMore:: @ 81D9116
printstring STRINGID_PKMNHEALEDCONFUSION
waitmessage 64
return
BattleScript_PrintPayDayMoneyString:: @ 81D911D
printstring STRINGID_PKMNPICKEDUPITEM
waitmessage 64
return
BattleScript_WrapTurnDmg:: @ 81D9124
playanimation BS_ATTACKER, B_ANIM_TURN_TRAP, sB_ANIM_ARG1
printstring STRINGID_PKMNHURTBY
waitmessage 64
goto BattleScript_81D905B
BattleScript_WrapEnds:: @ 81D9136
printstring STRINGID_PKMNFREEDFROM
waitmessage 64
end2
BattleScript_MoveUsedIsInLove:: @ 81D913D
printstring STRINGID_PKMNINLOVE
waitmessage 64
status2animation BS_ATTACKER, STATUS2_INFATUATION
return
BattleScript_MoveUsedIsInLoveCantAttack:: @ 81D914A
printstring STRINGID_PKMNIMMOBILIZEDBYLOVE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_NightmareTurnDmg:: @ 81D9155
printstring STRINGID_PKMNLOCKEDINNIGHTMARE
waitmessage 64
status2animation BS_ATTACKER, STATUS2_NIGHTMARE
goto BattleScript_81D905B
BattleScript_CurseTurnDmg:: @ 81D9166
printstring STRINGID_PKMNAFFLICTEDBYCURSE
waitmessage 64
status2animation BS_ATTACKER, STATUS2_CURSED
goto BattleScript_81D905B
BattleScript_TargetPRLZHeal:: @ 81D9177
printstring STRINGID_PKMNHEALEDPARALYSIS
waitmessage 64
updatestatusicon BS_TARGET
return
gUnknown_81D9180:: @ 81D9180
printstring STRINGID_MONTOOSCAREDTOMOVE
waitmessage 64
playanimation BS_ATTACKER, B_ANIM_MON_SCARED, NULL
goto BattleScript_MoveEnd
gUnknown_81D9192:: @ 81D9192
printstring STRINGID_GHOSTGETOUTGETOUT
playanimation BS_ATTACKER, B_ANIM_GHOST_GET_OUT, NULL
goto BattleScript_MoveEnd
gUnknown_81D91A1:: @ 81D91A1
pause 32
printstring STRINGID_SILPHSCOPEUNVEILED
waitstate
playanimation BS_OPPONENT1, B_ANIM_SILPH_SCOPED, NULL
pause 32
printstring STRINGID_GHOSTWASMAROWAK
waitmessage 64
end2
BattleScript_MoveEffectSleep:: @ 81D91B9
statusanimation BS_EFFECT_BATTLER
printfromtable gFellAsleepStringIds
waitmessage 64
BattleScript_81D91C3:: @ 81D91C3
updatestatusicon BS_EFFECT_BATTLER
waitstate
return
BattleScript_YawnMakesAsleep:: @ 81D91C7
statusanimation BS_EFFECT_BATTLER
printstring STRINGID_PKMNFELLASLEEP
waitmessage 64
updatestatusicon BS_EFFECT_BATTLER
waitstate
makevisible BS_EFFECT_BATTLER
end2
BattleScript_MoveEffectPoison:: @ 81D91D5
statusanimation BS_EFFECT_BATTLER
printfromtable gGotPoisonedStringIds
waitmessage 64
goto BattleScript_81D91C3
BattleScript_MoveEffectBurn:: @ 81D91E4
statusanimation BS_EFFECT_BATTLER
printfromtable gGotBurnedStringIds
waitmessage 64
goto BattleScript_81D91C3
BattleScript_MoveEffectFreeze:: @ 81D91F3
statusanimation BS_EFFECT_BATTLER
printfromtable gGotFrozenStringIds
waitmessage 64
goto BattleScript_81D91C3
BattleScript_MoveEffectParalysis:: @ 81D9202
statusanimation BS_EFFECT_BATTLER
printfromtable gGotParalyzedStringIds
waitmessage 64
goto BattleScript_81D91C3
BattleScript_MoveEffectUproar:: @ 81D9211
printstring STRINGID_PKMNCAUSEDUPROAR
waitmessage 64
return
BattleScript_MoveEffectToxic:: @ 81D9218
statusanimation BS_EFFECT_BATTLER
printstring STRINGID_PKMNBADLYPOISONED
waitmessage 64
goto BattleScript_81D91C3
BattleScript_MoveEffectPayDay:: @ 81D9225
printstring STRINGID_COINSSCATTERED
waitmessage 64
return
BattleScript_MoveEffectWrap:: @ 81D922C
printfromtable gWrappedStringIds
waitmessage 64
return
BattleScript_MoveEffectConfusion:: @ 81D9235
chosenstatusanimation BS_EFFECT_BATTLER, 1, STATUS2_CONFUSION
printstring STRINGID_PKMNWASCONFUSED
waitmessage 64
return
BattleScript_MoveEffectRecoil:: @ 81D9243
jumpifmove MOVE_STRUGGLE, BattleScript_81D9256
jumpifability BS_ATTACKER, ABILITY_ROCK_HEAD, BattleScript_81D9270
BattleScript_81D9256:: @ 81D9256
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNHITWITHRECOIL
waitmessage 64
tryfaintmon BS_ATTACKER, 0, NULL
BattleScript_81D9270:: @ 81D9270
return
BattleScript_ItemSteal:: @ 81D9271
playanimation BS_TARGET, B_ANIM_ITEM_STEAL, NULL
printstring STRINGID_PKMNSTOLEITEM
waitmessage 64
return
BattleScript_DrizzleActivates:: @ 81D927F
pause 32
printstring STRINGID_PKMNMADEITRAIN
waitstate
playanimation BS_BATTLER_0, B_ANIM_RAIN_CONTINUES, NULL
call BattleScript_81D92DC
end3
BattleScript_SpeedBoostActivates:: @ 81D9293
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printstring STRINGID_PKMNRAISEDSPEED
waitmessage 64
end3
BattleScript_TraceActivates:: @ 81D92A1
pause 32
printstring STRINGID_PKMNTRACED
waitmessage 64
end3
BattleScript_RainDishActivates:: @ 81D92AB
printstring STRINGID_PKMNSXRESTOREDHPALITTLE2
waitmessage 64
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
end3
BattleScript_SandstreamActivates:: @ 81D92BF
pause 32
printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM
waitstate
playanimation BS_BATTLER_0, B_ANIM_SANDSTORM_CONTINUES, NULL
call BattleScript_81D92DC
end3
BattleScript_ShedSkinActivates:: @ 81D92D3
printstring STRINGID_PKMNSXCUREDYPROBLEM
waitmessage 64
updatestatusicon BS_ATTACKER
end3
BattleScript_81D92DC:: @ 81D92DC
setbyte sBATTLER, 0
BattleScript_81D92E2:: @ 81D92E2
trycastformdatachange
addbyte sBATTLER, 1
jumpifbytenotequal sBATTLER, gBattlersCount, BattleScript_81D92E2
return
BattleScript_CastformChange:: @ 81D92F8
call BattleScript_81D92FE
end3
BattleScript_81D92FE:: @ 81D92FE
docastformchangeanimation
waitstate
printstring STRINGID_PKMNTRANSFORMED
waitmessage 64
return
BattleScript_IntimidateActivatesEnd3:: @ 81D9307
call BattleScript_81D930D
end3
BattleScript_81D930D:: @ 81D930D
pause 32
BattleScript_IntimidateActivates:: @ 81D9310
setbyte gBattlerTarget, 0
setstatchanger STAT_ATK, 1, TRUE
BattleScript_81D931C:: @ 81D931C
trygetintimidatetarget BattleScript_81D936A
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D935F
jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_81D936B
jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_81D936B
jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_81D936B
statbuffchange STAT_CHANGE_BS_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_81D935F
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_81D935F
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printstring STRINGID_PKMNCUTSATTACKWITH
waitmessage 64
BattleScript_81D935F:: @ 81D935F
addbyte gBattlerTarget, 1
goto BattleScript_81D931C
BattleScript_81D936A:: @ 81D936A
return
BattleScript_81D936B:: @ 81D936B
pause 32
printstring STRINGID_PREVENTEDFROMWORKING
waitmessage 64
goto BattleScript_81D935F
BattleScript_DroughtActivates:: @ 81D9379
pause 32
printstring STRINGID_PKMNSXINTENSIFIEDSUN
waitstate
playanimation BS_BATTLER_0, B_ANIM_SUN_CONTINUES, NULL
call BattleScript_81D92DC
end3
BattleScript_TookAttack:: @ 81D938D
attackstring
pause 32
printstring STRINGID_PKMNSXTOOKATTACK
waitmessage 64
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED
return
BattleScript_SturdyPreventsOHKO:: @ 81D93A1
pause 32
printstring STRINGID_PKMNPROTECTEDBY
pause 64
goto BattleScript_MoveEnd
BattleScript_DampStopsExplosion:: @ 81D93AF
pause 32
printstring STRINGID_PKMNPREVENTSUSAGE
pause 64
goto BattleScript_MoveEnd
BattleScript_MoveHPDrain_PPLoss:: @ 81D93BD
ppreduce
BattleScript_MoveHPDrain:: @ 81D93BE
attackstring
pause 32
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printstring STRINGID_PKMNRESTOREDHPUSING
waitmessage 64
orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
goto BattleScript_MoveEnd
BattleScript_MonMadeMoveUseless_PPLoss:: @ 81D93E0
ppreduce
BattleScript_MonMadeMoveUseless:: @ 81D93E1
attackstring
pause 32
printstring STRINGID_PKMNSXMADEYUSELESS
waitmessage 64
orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
goto BattleScript_MoveEnd
BattleScript_FlashFireBoost_PPLoss:: @ 81D93F6
ppreduce
BattleScript_FlashFireBoost:: @ 81D93F7
attackstring
pause 32
printfromtable gFlashFireStringIds
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D9408:: @ 81D9408
pause 32
printstring STRINGID_PKMNANCHORSITSELFWITH
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_AbilityNoStatLoss:: @ 81D9416
pause 32
printstring STRINGID_PKMNPREVENTSSTATLOSSWITH
waitmessage 64
return
BattleScript_BRNPrevention:: @ 81D9420
pause 32
printfromtable gBRNPreventionStringIds
waitmessage 64
return
BattleScript_PRLZPrevention:: @ 81D942C
pause 32
printfromtable gPRLZPreventionStringIds
waitmessage 64
return
BattleScript_PSNPrevention:: @ 81D9438
pause 32
printfromtable gPSNPreventionStringIds
waitmessage 64
return
BattleScript_ObliviousPreventsAttraction:: @ 81D9444
pause 32
printstring STRINGID_PKMNPREVENTSROMANCEWITH
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_FlinchPrevention:: @ 81D9452
pause 32
printstring STRINGID_PKMNSXPREVENTSFLINCHING
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_81D9460:: @ 81D9460
pause 32
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_SoundproofProtected:: @ 81D946E
attackstring
ppreduce
pause 32
printstring STRINGID_PKMNSXBLOCKSY
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_AbilityNoSpecificStatLoss:: @ 81D947E
pause 32
printstring STRINGID_PKMNSXPREVENTSYLOSS
waitmessage 64
setbyte cMULTISTRING_CHOOSER, 3
return
BattleScript_StickyHoldActivates:: @ 81D948E
pause 32
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
waitmessage 64
goto BattleScript_MoveEnd
BattleScript_ColorChangeActivates:: @ 81D949C
printstring STRINGID_PKMNCHANGEDTYPEWITH
waitmessage 64
return
BattleScript_RoughSkinActivates:: @ 81D94A3
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNHURTSWITH
waitmessage 64
tryfaintmon BS_ATTACKER, 0, NULL
return
BattleScript_CuteCharmActivates:: @ 81D94BE
status2animation BS_ATTACKER, STATUS2_INFATUATION
printstring STRINGID_PKMNSXINFATUATEDY
waitmessage 64
return
BattleScript_ApplySecondaryEffect:: @ 81D94CB
waitstate
seteffectsecondary
return
BattleScript_SynchronizeActivates:: @ 81D94CE
waitstate
seteffectprimary
return
BattleScript_AbilityCuredStatus:: @ 81D94D1
printstring STRINGID_PKMNSXCUREDITSYPROBLEM
waitmessage 64
updatestatusicon BS_SCRIPTING
return
BattleScript_IgnoresWhileAsleep:: @ 81D94DA
printstring STRINGID_PKMNIGNORESASLEEP
waitmessage 64
moveendto 16
end
BattleScript_IgnoresAndUsesRandomMove:: @ 81D94EA
printstring STRINGID_PKMNIGNOREDORDERS
waitmessage 64
jumptocalledmove 0
BattleScript_MoveUsedLoafingAround:: @ 81D94F2
printfromtable gInobedientStringIds
waitmessage 64
moveendto 16
end
BattleScript_IgnoresAndFallsAsleep:: @ 81D9504
printstring STRINGID_PKMNBEGANTONAP
waitmessage 64
setmoveeffect MOVE_EFFECT_SLEEP | MOVE_EFFECT_AFFECTS_USER
seteffectprimary
moveendto 16
end
BattleScript_IgnoresAndHitsItself:: @ 81D951B
printstring STRINGID_PKMNWONTOBEY
waitmessage 64
goto BattleScript_81D90EA
BattleScript_SubstituteFade:: @ 81D9526
playanimation BS_TARGET, B_ANIM_SUBSTITUTE_FADE, NULL
printstring STRINGID_PKMNSUBSTITUTEFADED
return
BattleScript_BerryCurePrlzEnd2:: @ 81D9531
call BattleScript_BerryCureParRet
end2
BattleScript_BerryCureParRet:: @ 81D9537
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMCUREDPARALYSIS
waitmessage 64
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCurePsnEnd2:: @ 81D9549
call BattleScript_BerryCurePsnRet
end2
BattleScript_BerryCurePsnRet:: @ 81D954F
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMCUREDPOISON
waitmessage 64
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCureBrnEnd2:: @ 81D9561
call BattleScript_BerryCureBrnRet
end2
BattleScript_BerryCureBrnRet:: @ 81D9567
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMHEALEDBURN
waitmessage 64
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCureFrzEnd2:: @ 81D9579
call BattleScript_BerryCureFrzRet
end2
BattleScript_BerryCureFrzRet:: @ 81D957F
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMDEFROSTEDIT
waitmessage 64
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCureSlpEnd2:: @ 81D9591
call BattleScript_BerryCureSlpRet
end2
BattleScript_BerryCureSlpRet:: @ 81D9597
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMWOKEIT
waitmessage 64
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCureConfusionEnd2:: @ 81D95A9
call BattleScript_BerryCureConfusionRet
end2
BattleScript_BerryCureConfusionRet:: @ 81D95AF
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMSNAPPEDOUT
waitmessage 64
removeitem BS_SCRIPTING
return
BattleScript_BerryCureChosenStatusEnd2:: @ 81D95BF
call BattleScript_BerryCureChosenStatusRet
end2
BattleScript_BerryCureChosenStatusRet:: @ 81D95C5
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
printfromtable gBerryEffectStringIds
waitmessage 64
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_WhiteHerbEnd2:: @ 81D95D9
call BattleScript_WhiteHerbRet
end2
BattleScript_WhiteHerbRet:: @ 81D95DF
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDSTATUS
waitmessage 64
removeitem BS_SCRIPTING
return
BattleScript_ItemHealHP_RemoveItem:: @ 81D95EF
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage 64
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
removeitem BS_ATTACKER
end2
BattleScript_BerryPPHealEnd2:: @ 81D960C
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDPP
waitmessage 64
removeitem BS_ATTACKER
end2
BattleScript_ItemHealHP_End2:: @ 81D961C
call BattleScript_ItemHealHP_Ret
end2
BattleScript_ItemHealHP_Ret:: @ 81D9622
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE
waitmessage 64
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
return
BattleScript_SelectingNotAllowedMoveChoiceItem:: @ 81D963D
printselectionstring STRINGID_ITEMALLOWSONLYYMOVE
endselectionscript
BattleScript_HangedOnMsg:: @ 81D9641
playanimation BS_TARGET, B_ANIM_HANGED_ON, NULL
printstring STRINGID_PKMNHUNGONWITHX
waitmessage 64
return
BattleScript_BerryConfuseHealEnd2:: @ 81D964F
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage 64
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_FORXCOMMAYZ
waitmessage 64
setmoveeffect MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER
seteffectprimary
removeitem BS_ATTACKER
end2
BattleScript_BerryStatRaiseEnd2:: @ 81D9679
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_81D9686
BattleScript_81D9686:: @ 81D9686
setbyte cMULTISTRING_CHOOSER, 4
call BattleScript_StatUp
removeitem BS_ATTACKER
end2
BattleScript_BerryFocusEnergyEnd2:: @ 81D9694
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNUSEDXTOGETPUMPED
waitmessage 64
removeitem BS_ATTACKER
end2
BattleScript_ActionSelectionItemsCantBeUsed:: @ 81D96A4
printselectionstring STRINGID_ITEMSCANTBEUSEDNOW
endselectionscript
BattleScript_FlushMessageBox:: @ 81D96A8
printstring STRINGID_EMPTYSTRING3
return