pokeemerald/data/battle_scripts_1.s

4595 lines
123 KiB
ArmAsm
Raw Normal View History

2017-12-11 19:27:51 +01:00
#include "constants/abilities.h"
#include "constants/moves.h"
#include "constants/songs.h"
2016-11-01 16:29:13 +01:00
.include "asm/macros.inc"
.include "asm/macros/battle_script.inc"
2016-11-01 16:29:13 +01:00
.include "constants/constants.inc"
.include "constants/battle_constants.inc"
.include "constants/battle_script_constants.inc"
.include "constants/battle_text.inc"
2016-09-03 19:20:06 +02:00
.section script_data, "aw", %progbits
2017-12-31 16:28:57 +01:00
.align 2
2017-09-23 20:13:45 +02:00
gBattleScriptsForMoveEffects:: @ 82D86A8
.4byte BattleScript_EffectHit
.4byte BattleScript_EffectSleep
.4byte BattleScript_EffectPoisonHit
.4byte BattleScript_EffectAbsorb
.4byte BattleScript_EffectBurnHit
.4byte BattleScript_EffectFreezeHit
.4byte BattleScript_EffectParalyzeHit
.4byte BattleScript_EffectExplosion
.4byte BattleScript_EffectDreamEater
.4byte BattleScript_EffectMirrorMove
.4byte BattleScript_EffectAttackUp
.4byte BattleScript_EffectDefenseUp
.4byte BattleScript_EffectSpeedUp
.4byte BattleScript_EffectSpecialAttackUp
.4byte BattleScript_EffectSpecialDefenseUp
.4byte BattleScript_EffectAccuracyUp
.4byte BattleScript_EffectEvasionUp
.4byte BattleScript_EffectAlwaysHit
.4byte BattleScript_EffectAttackDown
.4byte BattleScript_EffectDefenseDown
.4byte BattleScript_EffectSpeedDown
.4byte BattleScript_EffectSpecialAttackDown
.4byte BattleScript_EffectSpecialDefenseDown
.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_EffectHighCritical
.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_EffectAccuracyUp2
.4byte BattleScript_EffectEvasionUp2
.4byte BattleScript_EffectTransform
.4byte BattleScript_EffectAttackDown2
.4byte BattleScript_EffectDefenseDown2
.4byte BattleScript_EffectSpeedDown2
.4byte BattleScript_EffectSpecialAttackDown2
.4byte BattleScript_EffectSpecialDefenseDown2
.4byte BattleScript_EffectAccuracyDown2
.4byte BattleScript_EffectEvasionDown2
.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_EffectEvasionDownHit
.4byte BattleScript_EffectSkyAttack
.4byte BattleScript_EffectConfuseHit
.4byte BattleScript_EffectTwineedle
.4byte BattleScript_EffectVitalThrow
.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_EffectUnused60//Thaw
.4byte BattleScript_EffectSleepTalk
.4byte BattleScript_EffectDestinyBond
.4byte BattleScript_EffectFlail
.4byte BattleScript_EffectSpite
.4byte BattleScript_EffectFalseSwipe
.4byte BattleScript_EffectHealBell
.4byte BattleScript_EffectQuickAttack
.4byte BattleScript_EffectTripleKick
.4byte BattleScript_EffectThief
.4byte BattleScript_EffectMeanLook
.4byte BattleScript_EffectNightmare
.4byte BattleScript_EffectMinimize
.4byte BattleScript_EffectCurse
.4byte BattleScript_EffectUnused6e
.4byte BattleScript_EffectProtect
.4byte BattleScript_EffectSpikes
.4byte BattleScript_EffectForesight
.4byte BattleScript_EffectPerishSong
.4byte BattleScript_EffectSandstorm
.4byte BattleScript_EffectEndure
.4byte BattleScript_EffectRollout
.4byte BattleScript_EffectSwagger
.4byte BattleScript_EffectFuryCutter
.4byte BattleScript_EffectAttract
.4byte BattleScript_EffectReturn
.4byte BattleScript_EffectPresent
.4byte BattleScript_EffectFrustration
.4byte BattleScript_EffectSafeguard
.4byte BattleScript_EffectThawHit
.4byte BattleScript_EffectMagnitude
.4byte BattleScript_EffectBatonPass
.4byte BattleScript_EffectPursuit
.4byte BattleScript_EffectRapidSpin
.4byte BattleScript_EffectSonicboom
.4byte BattleScript_EffectUnused83
.4byte BattleScript_EffectMorningSun
.4byte BattleScript_EffectSynthesis
.4byte BattleScript_EffectMoonlight
.4byte BattleScript_EffectHiddenPower
.4byte BattleScript_EffectRainDance
.4byte BattleScript_EffectSunnyDay
.4byte BattleScript_EffectDefenseUpHit
.4byte BattleScript_EffectAttackUpHit
.4byte BattleScript_EffectAllStatsUpHit
.4byte BattleScript_EffectUnused8d
.4byte BattleScript_EffectBellyDrum
.4byte BattleScript_EffectPsychUp
.4byte BattleScript_EffectMirrorCoat
.4byte BattleScript_EffectSkullBash
.4byte BattleScript_EffectTwister
.4byte BattleScript_EffectEarthquake
.4byte BattleScript_EffectFutureSight
.4byte BattleScript_EffectGust
.4byte BattleScript_EffectStomp
.4byte BattleScript_EffectSolarbeam
.4byte BattleScript_EffectThunder
.4byte BattleScript_EffectTeleport
.4byte BattleScript_EffectBeatUp
.4byte BattleScript_EffectSemiInvulnerable
.4byte BattleScript_EffectDefenseCurl
.4byte BattleScript_EffectSoftboiled
.4byte BattleScript_EffectFakeOut
.4byte BattleScript_EffectUproar
.4byte BattleScript_EffectStockpile
.4byte BattleScript_EffectSpitUp
.4byte BattleScript_EffectSwallow
.4byte BattleScript_EffectUnusedA3
.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_EffectBlazeKick
.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_EffectPoisonTail
.4byte BattleScript_EffectWaterSport
.4byte BattleScript_EffectCalmMind
.4byte BattleScript_EffectDragonDance
.4byte BattleScript_EffectCamouflage
BattleScript_EffectSpeedUp::
BattleScript_EffectSpecialDefenseUp::
BattleScript_EffectAccuracyUp::
BattleScript_EffectAlwaysHit::
BattleScript_EffectSpecialAttackDown::
BattleScript_EffectSpecialDefenseDown::
BattleScript_EffectHighCritical::
BattleScript_EffectAccuracyUp2::
BattleScript_EffectEvasionUp2::
BattleScript_EffectSpecialAttackDown2::
BattleScript_EffectAccuracyDown2::
BattleScript_EffectEvasionDown2::
BattleScript_EffectEvasionDownHit::
BattleScript_EffectVitalThrow::
BattleScript_EffectUnused60::
BattleScript_EffectFalseSwipe::
BattleScript_EffectQuickAttack::
BattleScript_EffectUnused6e::
BattleScript_EffectPursuit::
BattleScript_EffectUnused83::
BattleScript_EffectUnused8d::
BattleScript_EffectUnusedA3::
BattleScript_EffectHit::
2017-11-26 11:55:17 +01:00
jumpifnotmove MOVE_SURF, BattleScript_HitFromAtkCanceler
jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_HitFromAtkCanceler
orword gHitMarker, HITMARKER_IGNORE_UNDERWATER
setbyte sDMG_MULTIPLIER, 0x2
BattleScript_HitFromAtkCanceler::
attackcanceler
BattleScript_HitFromAccCheck::
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
BattleScript_HitFromAtkString::
attackstring
ppreduce
BattleScript_HitFromCritCalc::
critcalc
damagecalc
typecalc
adjustnormaldamage
BattleScript_HitFromAtkAnimation::
attackanimation
waitanimation
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
seteffectwithchance
tryfaintmon TARGET, FALSE, NULL
BattleScript_MoveEnd::
setbyte sMOVEEND_STATE, 0x0
moveend 0x0, 0x0
end
BattleScript_MakeMoveMissed::
orbyte gBattleMoveFlags, MOVESTATUS_MISSED
BattleScript_PrintMoveMissed::
attackstring
ppreduce
BattleScript_MoveMissedPause::
pause 0x20
BattleScript_MoveMissed::
effectivenesssound
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSleep::
attackcanceler
attackstring
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus TARGET, STATUS_SLEEP, BattleScript_AlreadyAsleep
jumpifcantmakeasleep BattleScript_CantMakeAsleep
jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2017-11-26 01:19:57 +01:00
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
waitanimation
setmoveeffect EFFECT_SLEEP
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_AlreadyAsleep::
2017-11-26 21:04:00 +01:00
various23 ATTACKER
pause 0x20
printstring STRINGID_PKMNALREADYASLEEP
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_WasntAffected::
pause 0x20
printstring STRINGID_PKMNWASNTAFFECTED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_CantMakeAsleep::
pause 0x20
printfromtable gUproarAwakeStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectPoisonHit::
BattleScript_EffectPoisonTail::
setmoveeffect EFFECT_POISON
goto BattleScript_EffectHit
BattleScript_EffectAbsorb::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
typecalc
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
negativedamage
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2017-12-02 00:03:46 +01:00
jumpifability TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze
setbyte cMULTISTRING_CHOOSER, 0x0
2017-12-02 00:03:46 +01:00
goto BattleScript_AbsorbUpdateHp
BattleScript_AbsorbLiquidOoze::
manipulatedamage ATK80_DMG_CHANGE_SIGN
setbyte cMULTISTRING_CHOOSER, 0x1
2017-12-02 00:03:46 +01:00
BattleScript_AbsorbUpdateHp::
healthbarupdate ATTACKER
datahpupdate ATTACKER
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_AbsorbTryFainting
printfromtable gLeechSeedDrainStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AbsorbTryFainting::
tryfaintmon ATTACKER, FALSE, NULL
tryfaintmon TARGET, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectBurnHit::
BattleScript_EffectBlazeKick::
setmoveeffect EFFECT_BURN
goto BattleScript_EffectHit
BattleScript_EffectFreezeHit::
setmoveeffect EFFECT_FREEZE
goto BattleScript_EffectHit
BattleScript_EffectParalyzeHit::
setmoveeffect EFFECT_PARALYSIS
goto BattleScript_EffectHit
BattleScript_EffectExplosion::
attackcanceler
attackstring
ppreduce
faintifabilitynotdamp
setatkhptozero
waitstate
jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_82D8B94
call BattleScript_82D8BEA
goto BattleScript_82D8B96
BattleScript_82D8B94::
attackanimation
waitanimation
BattleScript_82D8B96::
movevaluescleanup
critcalc
damagecalc
typecalc
adjustnormaldamage
accuracycheck BattleScript_82D8BCF, ACC_CURR_MOVE
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
tryfaintmon TARGET, FALSE, NULL
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
jumpifnexttargetvalid BattleScript_82D8B96
tryfaintmon ATTACKER, FALSE, NULL
end
BattleScript_82D8BCF::
effectivenesssound
resultmessage
waitmessage 0x40
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
jumpifnexttargetvalid BattleScript_82D8B96
tryfaintmon ATTACKER, FALSE, NULL
end
BattleScript_82D8BEA::
bicbyte gBattleMoveFlags, MOVESTATUS_MISSED
attackanimation
waitanimation
orbyte gBattleMoveFlags, MOVESTATUS_MISSED
return
BattleScript_EffectDreamEater::
attackcanceler
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82D8C0E
jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8C18
BattleScript_82D8C0E::
attackstring
ppreduce
waitmessage 0x40
goto BattleScript_WasntAffected
BattleScript_82D8C18::
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
typecalc
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
negativedamage
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER
datahpupdate ATTACKER
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_DreamEaterTryFaintEnd
printstring STRINGID_PKMNDREAMEATEN
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_DreamEaterTryFaintEnd::
tryfaintmon TARGET, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectMirrorMove::
attackcanceler
attackstring
pause 0x40
trymirrormove
ppreduce
orbyte gBattleMoveFlags, MOVESTATUS_FAILED
printstring STRINGID_MIRRORMOVEFAILED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectAttackUp::
setstatchanger ATK, 1, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectDefenseUp::
setstatchanger DEF, 1, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectSpecialAttackUp::
setstatchanger SPATK, 1, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectEvasionUp::
setstatchanger EVASION, 1, FALSE
BattleScript_EffectStatUp::
attackcanceler
BattleScript_EffectStatUpAfterAtkCanceler::
attackstring
ppreduce
2017-11-26 11:55:17 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_StatUpEnd
2017-11-26 01:19:57 +01:00
jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpAttackAnim
pause 0x20
2017-11-26 01:19:57 +01:00
goto BattleScript_StatUpPrintString
BattleScript_StatUpAttackAnim::
attackanimation
waitanimation
2017-11-26 01:19:57 +01:00
BattleScript_StatUpDoAnim::
setgraphicalstatchangevalues
playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1
2017-11-26 01:19:57 +01:00
BattleScript_StatUpPrintString::
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
BattleScript_StatUpEnd::
goto BattleScript_MoveEnd
BattleScript_StatUp::
playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 0x40
return
BattleScript_EffectAttackDown::
setstatchanger ATK, 1, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectDefenseDown::
setstatchanger DEF, 1, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectSpeedDown::
setstatchanger SPEED, 1, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectAccuracyDown::
setstatchanger ACC, 1, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectEvasionDown::
setstatchanger EVASION, 1, TRUE
BattleScript_EffectStatDown::
attackcanceler
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailedAtkStringPpReduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
2017-11-26 01:19:57 +01:00
statbuffchange 0x1, BattleScript_StatDownEnd
jumpifbyte LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatDownDoAnim
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StatDownEnd
pause 0x20
2017-11-26 01:19:57 +01:00
goto BattleScript_StatDownPrintString
BattleScript_StatDownDoAnim::
attackanimation
waitanimation
setgraphicalstatchangevalues
playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1
2017-11-26 01:19:57 +01:00
BattleScript_StatDownPrintString::
printfromtable gStatDownStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
BattleScript_StatDownEnd::
goto BattleScript_MoveEnd
BattleScript_StatDown::
playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1
printfromtable gStatDownStringIds
waitmessage 0x40
return
BattleScript_EffectHaze::
attackcanceler
attackstring
ppreduce
attackanimation
waitanimation
normalisebuffs
printstring STRINGID_STATCHANGESGONE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectBide::
attackcanceler
attackstring
ppreduce
attackanimation
waitanimation
orword gHitMarker, HITMARKER_x8000000
setbide
goto BattleScript_MoveEnd
BattleScript_EffectRampage::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D8DAE
ppreduce
BattleScript_82D8DAE::
confuseifrepeatingattackends
goto BattleScript_HitFromCritCalc
BattleScript_EffectRoar::
attackcanceler
attackstring
ppreduce
2017-12-03 00:47:21 +01:00
jumpifability TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
jumpifstatus3 TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
forcerandomswitch BattleScript_ButItFailed
BattleScript_EffectMultiHit::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setmultihitcounter 0x0
initmultihitstring
setbyte sMULTIHIT_EFFECT, 0x0
BattleScript_MultiHitLoop::
jumpifhasnohp ATTACKER, BattleScript_MultiHitEnd
jumpifhasnohp TARGET, BattleScript_MultiHitPrintStrings
jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoMultiHit
jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_MultiHitPrintStrings
BattleScript_DoMultiHit::
movevaluescleanup
copybyte cEFFECT_CHOOSER, sMULTIHIT_EFFECT
critcalc
damagecalc
typecalc
jumpifmovehadnoeffect BattleScript_MultiHitNoMoreHits
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
critmessage
waitmessage 0x40
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
addbyte sMULTIHIT_STRING + 4, 0x1
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_MultiHitPrintStrings
decrementmultihit BattleScript_MultiHitLoop
goto BattleScript_MultiHitPrintStrings
BattleScript_MultiHitNoMoreHits::
pause 0x20
BattleScript_MultiHitPrintStrings::
resultmessage
waitmessage 0x40
jumpifmovehadnoeffect BattleScript_MultiHitEnd
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6
printstring STRINGID_HITXTIMES
waitmessage 0x40
BattleScript_MultiHitEnd::
seteffectwithchance
tryfaintmon TARGET, FALSE, NULL
setbyte sMOVEEND_STATE, 0x2
moveend 0x1, 0x0
setbyte sMOVEEND_STATE, 0x4
moveend 0x0, 0x0
end
BattleScript_EffectConversion::
attackcanceler
attackstring
ppreduce
tryconversiontypechange BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCHANGEDTYPE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectFlinchHit::
setmoveeffect EFFECT_FLINCH
goto BattleScript_EffectHit
BattleScript_EffectRestoreHp::
attackcanceler
attackstring
ppreduce
tryhealhalfhealth BattleScript_AlreadyAtFullHp, ATTACKER
attackanimation
waitanimation
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER
datahpupdate ATTACKER
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectToxic::
attackcanceler
attackstring
ppreduce
2017-11-26 01:19:57 +01:00
jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned
jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned
jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed
jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected
jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2017-11-26 01:19:57 +01:00
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
waitanimation
setmoveeffect EFFECT_TOXIC
seteffectprimary
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_AlreadyPoisoned::
2017-11-26 21:04:00 +01:00
various23 ATTACKER
pause 0x40
printstring STRINGID_PKMNALREADYPOISONED
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_ImmunityProtected::
2017-11-25 21:32:17 +01:00
copybyte gEffectBank, gBankTarget
setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_PSNPrevention
goto BattleScript_MoveEnd
BattleScript_EffectPayDay::
setmoveeffect EFFECT_PAYDAY
goto BattleScript_EffectHit
BattleScript_EffectLightScreen::
attackcanceler
attackstring
ppreduce
setlightscreen
2017-11-26 17:15:28 +01:00
goto BattleScript_PrintReflectLightScreenSafeguardString
BattleScript_EffectTriAttack::
setmoveeffect EFFECT_TRI_ATTACK
goto BattleScript_EffectHit
BattleScript_EffectRest::
attackcanceler
attackstring
ppreduce
2017-11-26 17:15:28 +01:00
jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_RestIsAlreadyAsleep
jumpifcantmakeasleep BattleScript_RestCantSleep
trysetrest BattleScript_AlreadyAtFullHp
pause 0x20
printfromtable gRestUsedStringIds
waitmessage 0x40
updatestatusicon ATTACKER
waitstate
goto BattleScript_PresentHealTarget
2017-11-26 17:15:28 +01:00
BattleScript_RestCantSleep::
pause 0x40
printfromtable gUproarAwakeStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_RestIsAlreadyAsleep::
2017-11-26 21:04:00 +01:00
various23 ATTACKER
pause 0x20
printstring STRINGID_PKMNALREADYASLEEP2
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectOHKO::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
typecalc
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
tryKO BattleScript_KOFail
trysetdestinybondtohappen
goto BattleScript_HitFromAtkAnimation
BattleScript_KOFail::
pause 0x40
printfromtable gKOFailedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectRazorWind::
2017-11-26 17:15:28 +01:00
jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
setbyte sTWOTURN_STRINGID, 0x0
call BattleScriptFirstChargingTurn
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_TwoTurnMovesSecondTurn::
attackcanceler
setmoveeffect EFFECT_CHARGING
setbyte sANIM_TURN, 0x1
clearstatusfromeffect ATTACKER
orword gHitMarker, HITMARKER_NO_PPDEDUCT
2017-11-26 11:55:17 +01:00
jumpifnotmove MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck
setmoveeffect EFFECT_FLINCH
goto BattleScript_HitFromAccCheck
BattleScriptFirstChargingTurn::
attackcanceler
printstring STRINGID_EMPTYSTRING3
ppreduce
attackanimation
waitanimation
orword gHitMarker, HITMARKER_x8000000
setmoveeffect EFFECT_CHARGING | AFFECTS_USER
seteffectprimary
copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID
printfromtable gFirstTurnOfTwoStringIds
waitmessage 0x40
return
BattleScript_EffectSuperFang::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
damagetohalftargethp
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectDragonRage::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
2017-11-25 21:11:20 +01:00
setword gBattleMoveDamage, 40
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectTrap::
2017-11-26 17:15:28 +01:00
jumpifnotmove MOVE_WHIRLPOOL, BattleScript_DoWrapEffect
jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_DoWrapEffect
orword gHitMarker, HITMARKER_IGNORE_UNDERWATER
setbyte sDMG_MULTIPLIER, 0x2
2017-11-26 17:15:28 +01:00
BattleScript_DoWrapEffect::
setmoveeffect EFFECT_WRAP
goto BattleScript_EffectHit
BattleScript_EffectDoubleHit::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setmultihitcounter 0x2
initmultihitstring
setbyte sMULTIHIT_EFFECT, 0x0
goto BattleScript_MultiHitLoop
BattleScript_EffectRecoilIfMiss::
attackcanceler
2017-12-02 00:03:46 +01:00
accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE
goto BattleScript_HitFromAtkString
2017-12-02 00:03:46 +01:00
BattleScript_MoveMissedDoDamage::
attackstring
ppreduce
pause 0x40
resultmessage
waitmessage 0x40
jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_MoveEnd
printstring STRINGID_PKMNCRASHED
waitmessage 0x40
damagecalc
typecalc
adjustnormaldamage
manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP
bicbyte gBattleMoveFlags, MOVESTATUS_MISSED
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER
datahpupdate ATTACKER
tryfaintmon ATTACKER, FALSE, NULL
orbyte gBattleMoveFlags, MOVESTATUS_MISSED
goto BattleScript_MoveEnd
BattleScript_EffectMist::
attackcanceler
attackstring
ppreduce
setmist
attackanimation
waitanimation
printfromtable gMistUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectFocusEnergy::
attackcanceler
attackstring
ppreduce
jumpifstatus2 ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed
setfocusenergy
attackanimation
waitanimation
printfromtable gFocusEnergyUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectRecoil::
setmoveeffect EFFECT_RECOIL_25 | AFFECTS_USER | CERTAIN
2017-11-26 11:55:17 +01:00
jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit
incrementgamestat 0x1B
goto BattleScript_EffectHit
BattleScript_EffectConfuse::
attackcanceler
attackstring
ppreduce
2017-11-26 01:19:57 +01:00
jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_AlreadyConfused
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2017-11-26 01:19:57 +01:00
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
waitanimation
setmoveeffect EFFECT_CONFUSION
seteffectprimary
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_AlreadyConfused::
2017-11-26 21:04:00 +01:00
various23 ATTACKER
pause 0x20
printstring STRINGID_PKMNALREADYCONFUSED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectAttackUp2::
setstatchanger ATK, 2, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectDefenseUp2::
setstatchanger DEF, 2, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectSpeedUp2::
setstatchanger SPEED, 2, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectSpecialAttackUp2::
setstatchanger SPATK, 2, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectSpecialDefenseUp2::
setstatchanger SPDEF, 2, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectTransform::
attackcanceler
attackstring
ppreduce
transformdataexecution
attackanimation
waitanimation
printfromtable gTransformUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectAttackDown2::
setstatchanger ATK, 2, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectDefenseDown2::
setstatchanger DEF, 2, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectSpeedDown2::
setstatchanger SPEED, 2, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectSpecialDefenseDown2::
setstatchanger SPDEF, 2, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectReflect::
attackcanceler
attackstring
ppreduce
setreflect
2017-11-26 17:15:28 +01:00
BattleScript_PrintReflectLightScreenSafeguardString::
attackanimation
waitanimation
printfromtable gReflectLightScreenSafeguardStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectPoison::
attackcanceler
attackstring
ppreduce
2017-11-26 01:19:57 +01:00
jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned
jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned
jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected
jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected
jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2017-11-26 01:19:57 +01:00
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
waitanimation
setmoveeffect EFFECT_POISON
seteffectprimary
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectParalyze::
attackcanceler
attackstring
ppreduce
2017-11-26 01:19:57 +01:00
jumpifability TARGET, ABILITY_LIMBER, BattleScript_LimberProtected
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
typecalc
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_ButItFailed
jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_AlreadyParalyzed
jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2017-11-26 01:19:57 +01:00
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
waitanimation
setmoveeffect EFFECT_PARALYSIS
seteffectprimary
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_AlreadyParalyzed::
2017-11-26 21:04:00 +01:00
various23 ATTACKER
pause 0x20
printstring STRINGID_PKMNISALREADYPARALYZED
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_LimberProtected::
2017-11-25 21:32:17 +01:00
copybyte gEffectBank, gBankTarget
setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_PRLZPrevention
goto BattleScript_MoveEnd
BattleScript_EffectAttackDownHit::
setmoveeffect EFFECT_ATK_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectDefenseDownHit::
setmoveeffect EFFECT_DEF_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSpeedDownHit::
setmoveeffect EFFECT_SPD_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSpecialAttackDownHit::
setmoveeffect EFFECT_SP_ATK_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSpecialDefenseDownHit::
setmoveeffect EFFECT_SP_DEF_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectAccuracyDownHit::
setmoveeffect EFFECT_ACC_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSkyAttack::
2017-11-26 17:15:28 +01:00
jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
setbyte sTWOTURN_STRINGID, 0x3
call BattleScriptFirstChargingTurn
goto BattleScript_MoveEnd
BattleScript_EffectConfuseHit::
setmoveeffect EFFECT_CONFUSION
goto BattleScript_EffectHit
BattleScript_EffectTwineedle::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
setbyte sMULTIHIT_EFFECT, EFFECT_POISON
attackstring
ppreduce
setmultihitcounter 0x2
initmultihitstring
goto BattleScript_MultiHitLoop
BattleScript_EffectSubstitute::
attackcanceler
ppreduce
attackstring
waitstate
2017-11-26 17:15:28 +01:00
jumpifstatus2 ATTACKER, STATUS2_SUBSTITUTE, BattleScript_AlreadyHasSubstitute
setsubstitute
2017-11-26 17:15:28 +01:00
jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_SubstituteAnim
pause 0x20
2017-11-26 17:15:28 +01:00
goto BattleScript_SubstituteString
BattleScript_SubstituteAnim::
attackanimation
waitanimation
healthbarupdate ATTACKER
datahpupdate ATTACKER
2017-11-26 17:15:28 +01:00
BattleScript_SubstituteString::
printfromtable gSubsituteUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_AlreadyHasSubstitute::
2017-11-26 21:04:00 +01:00
various23 ATTACKER
pause 0x20
printstring STRINGID_PKMNHASSUBSTITUTE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectRecharge::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
setmoveeffect EFFECT_RECHARGE | AFFECTS_USER | CERTAIN
goto BattleScript_HitFromAtkString
BattleScript_MoveUsedMustRecharge::
printstring STRINGID_PKMNMUSTRECHARGE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectRage::
attackcanceler
2017-11-26 01:19:57 +01:00
accuracycheck BattleScript_RageMiss, ACC_CURR_MOVE
setmoveeffect EFFECT_RAGE
seteffectprimary
setmoveeffect 0
goto BattleScript_HitFromAtkString
2017-11-26 01:19:57 +01:00
BattleScript_RageMiss::
setmoveeffect EFFECT_RAGE
clearstatusfromeffect ATTACKER
goto BattleScript_PrintMoveMissed
BattleScript_EffectMimic::
attackcanceler
attackstring
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
mimicattackcopy BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNLEARNEDMOVE2
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectMetronome::
attackcanceler
attackstring
pause 0x20
attackanimation
waitanimation
setbyte sANIM_TURN, 0x0
setbyte sANIM_TARGETS_HIT, 0x0
metronome
2017-11-26 01:19:57 +01:00
BattleScript_EffectLeechSeed::
attackcanceler
attackstring
pause 0x20
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
2017-11-26 17:15:28 +01:00
accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE
BattleScript_DoLeechSeed::
setseeded
attackanimation
waitanimation
printfromtable gLeechSeedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSplash::
attackcanceler
attackstring
ppreduce
attackanimation
waitanimation
incrementgamestat 0x1A
printstring STRINGID_BUTNOTHINGHAPPENED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectDisable::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
disablelastusedattack BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNMOVEWASDISABLED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectLevelDamage::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
dmgtolevel
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectPsywave::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
psywavedamageeffect
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectCounter::
attackcanceler
counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc2
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectEncore::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
trysetencore BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNGOTENCORE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectPainSplit::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
painsplitdmgcalc BattleScript_ButItFailed
attackanimation
waitanimation
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER
datahpupdate ATTACKER
2017-11-25 21:32:17 +01:00
copyword gBattleMoveDamage, sPAINSPLIT_HP
healthbarupdate TARGET
datahpupdate TARGET
printstring STRINGID_SHAREDPAIN
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSnore::
attackcanceler
2017-11-26 17:15:28 +01:00
jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SnoreIsAsleep
attackstring
ppreduce
goto BattleScript_ButItFailed
2017-11-26 17:15:28 +01:00
BattleScript_SnoreIsAsleep::
2017-11-26 18:07:00 +01:00
jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore
printstring STRINGID_PKMNFASTASLEEP
waitmessage 0x40
statusanimation ATTACKER
2017-11-26 17:15:28 +01:00
BattleScript_DoSnore::
attackstring
ppreduce
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
setmoveeffect EFFECT_FLINCH
goto BattleScript_HitFromCritCalc
BattleScript_EffectConversion2::
attackcanceler
attackstring
ppreduce
settypetorandomresistance BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCHANGEDTYPE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectLockOn::
attackcanceler
attackstring
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
setalwayshitflag
attackanimation
waitanimation
printstring STRINGID_PKMNTOOKAIM
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSketch::
attackcanceler
attackstring
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
copymovepermanently BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSKETCHEDMOVE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSleepTalk::
attackcanceler
2017-11-26 01:19:57 +01:00
jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SleepTalkIsAsleep
attackstring
ppreduce
goto BattleScript_ButItFailed
2017-11-26 01:19:57 +01:00
BattleScript_SleepTalkIsAsleep::
printstring STRINGID_PKMNFASTASLEEP
waitmessage 0x40
statusanimation ATTACKER
attackstring
ppreduce
orword gHitMarker, HITMARKER_NO_PPDEDUCT
2017-11-26 01:19:57 +01:00
trychoosesleeptalkmove BattleScript_SleepTalkUsingMove
pause 0x40
goto BattleScript_ButItFailed
2017-11-26 01:19:57 +01:00
BattleScript_SleepTalkUsingMove::
attackanimation
waitanimation
setbyte sANIM_TURN, 0x0
setbyte sANIM_TARGETS_HIT, 0x0
2017-12-02 00:03:46 +01:00
jumptorandomattack TRUE
BattleScript_EffectDestinyBond::
attackcanceler
attackstring
ppreduce
setdestinybond
attackanimation
waitanimation
printstring STRINGID_PKMNTRYINGTOTAKEFOE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectFlail::
remaininghptopower
goto BattleScript_EffectHit
BattleScript_EffectSpite::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
tryspiteppreduce BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNREDUCEDPP
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectHealBell::
attackcanceler
attackstring
ppreduce
healpartystatus
waitstate
attackanimation
waitanimation
printfromtable gPartyStatusHealStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
jumpifnotmove MOVE_HEAL_BELL, BattleScript_PartyHealEnd
jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_CheckHealBellMon2Unaffected
printstring STRINGID_PKMNSXBLOCKSY
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_CheckHealBellMon2Unaffected::
jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x2, BattleScript_PartyHealEnd
printstring STRINGID_PKMNSXBLOCKSY2
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_PartyHealEnd::
updatestatusicon ATTACKER_WITH_PARTNER
waitstate
goto BattleScript_MoveEnd
BattleScript_EffectTripleKick::
attackcanceler
attackstring
ppreduce
sethword sTRIPLE_KICK_POWER, 0x0
initmultihitstring
setmultihit 0x3
BattleScript_TripleKickLoop::
jumpifhasnohp ATTACKER, BattleScript_TripleKickEnd
jumpifhasnohp TARGET, BattleScript_TripleKickNoMoreHits
2017-11-26 18:07:00 +01:00
jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack
jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_TripleKickNoMoreHits
2017-11-26 17:15:28 +01:00
BattleScript_DoTripleKickAttack::
accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE
movevaluescleanup
addbyte sTRIPLE_KICK_POWER, 10
addbyte sMULTIHIT_STRING + 4, 0x1
copyhword gDynamicBasePower, sTRIPLE_KICK_POWER
critcalc
damagecalc
typecalc
adjustnormaldamage
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_TripleKickNoMoreHits
attackanimation
waitanimation
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
critmessage
waitmessage 0x40
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_TripleKickPrintStrings
decrementmultihit BattleScript_TripleKickLoop
goto BattleScript_TripleKickPrintStrings
BattleScript_TripleKickNoMoreHits::
pause 0x20
jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickPrintStrings
bicbyte gBattleMoveFlags, MOVESTATUS_MISSED
BattleScript_TripleKickPrintStrings::
resultmessage
waitmessage 0x40
jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickEnd
jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_TripleKickEnd
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6
printstring STRINGID_HITXTIMES
waitmessage 0x40
BattleScript_TripleKickEnd::
seteffectwithchance
tryfaintmon TARGET, FALSE, NULL
setbyte sMOVEEND_STATE, 0xE
moveend 0x0, 0x0
end
BattleScript_EffectThief::
setmoveeffect EFFECT_STEAL_ITEM
goto BattleScript_EffectHit
BattleScript_EffectMeanLook::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC
jumpifstatus2 TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
attackanimation
waitanimation
setmoveeffect EFFECT_PREVENT_ESCAPE
seteffectprimary
printstring STRINGID_TARGETCANTESCAPENOW
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectNightmare::
attackcanceler
attackstring
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed
jumpifstatus TARGET, STATUS_SLEEP, BattleScript_NightmareWorked
goto BattleScript_ButItFailed
BattleScript_NightmareWorked::
attackanimation
waitanimation
setmoveeffect EFFECT_NIGHTMARE
seteffectprimary
printstring STRINGID_PKMNFELLINTONIGHTMARE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectMinimize::
attackcanceler
setminimize
setstatchanger EVASION, 1, FALSE
goto BattleScript_EffectStatUpAfterAtkCanceler
BattleScript_EffectCurse::
2017-11-26 01:19:57 +01:00
jumpiftype2 ATTACKER, TYPE_GHOST, BattleScript_GhostCurse
attackcanceler
attackstring
ppreduce
2017-11-26 01:19:57 +01:00
jumpifstat ATTACKER, GREATER_THAN, SPEED, 0x0, BattleScript_CurseTrySpeed
jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_CurseTrySpeed
jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed
2017-11-26 01:19:57 +01:00
BattleScript_CurseTrySpeed::
2017-11-25 21:32:17 +01:00
copybyte gBankTarget, gBankAttacker
setbyte sANIM_TURN, 0x1
attackanimation
waitanimation
setstatchanger SPEED, 1, TRUE
2017-11-26 11:55:17 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseTryAttack
printfromtable gStatDownStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
BattleScript_CurseTryAttack::
setstatchanger ATK, 1, FALSE
2017-11-26 11:55:17 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseTryDefence
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
BattleScript_CurseTryDefence::
setstatchanger DEF, 1, FALSE
2017-11-26 11:55:17 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseEnd
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
BattleScript_CurseEnd::
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_GhostCurse::
jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_DoGhostCurse
2017-11-26 21:04:00 +01:00
getmovetarget ATTACKER
2017-11-26 01:19:57 +01:00
BattleScript_DoGhostCurse::
attackcanceler
attackstring
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
cursetarget BattleScript_ButItFailed
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
setbyte sANIM_TURN, 0x0
attackanimation
waitanimation
healthbarupdate ATTACKER
datahpupdate ATTACKER
printstring STRINGID_PKMNLAIDCURSE
waitmessage 0x40
tryfaintmon ATTACKER, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectProtect::
BattleScript_EffectEndure::
attackcanceler
attackstring
ppreduce
setprotectlike
attackanimation
waitanimation
printfromtable gProtectLikeUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSpikes::
attackcanceler
trysetspikes BattleScript_ButItFailedAtkStringPpReduce
attackstring
ppreduce
attackanimation
waitanimation
printstring STRINGID_SPIKESSCATTERED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectForesight::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setforesight
attackanimation
waitanimation
printstring STRINGID_PKMNIDENTIFIED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectPerishSong::
attackcanceler
attackstring
ppreduce
trysetperishsong BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_FAINTINTHREE
waitmessage 0x40
setbyte sBANK, 0x0
BattleScript_PerishSongLoop::
jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected
BattleScript_PerishSongLoopIncrement::
addbyte sBANK, 0x1
2017-11-25 21:32:17 +01:00
jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_PerishSongLoop
goto BattleScript_MoveEnd
BattleScript_PerishSongNotAffected::
printstring STRINGID_PKMNSXBLOCKSY2
waitmessage 0x40
goto BattleScript_PerishSongLoopIncrement
BattleScript_EffectSandstorm::
attackcanceler
attackstring
ppreduce
setsandstorm
2017-11-26 17:15:28 +01:00
goto BattleScript_MoveWeatherChange
BattleScript_EffectRollout::
attackcanceler
attackstring
2017-11-26 17:15:28 +01:00
jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy
ppreduce
2017-11-26 17:15:28 +01:00
BattleScript_RolloutCheckAccuracy::
accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE
BattleScript_RolloutHit::
typecalc2
rolloutdamagecalculation
goto BattleScript_HitFromCritCalc
BattleScript_EffectSwagger::
attackcanceler
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
jumpifconfusedandstatmaxed ATK, BattleScript_ButItFailed
attackanimation
waitanimation
setstatchanger ATK, 2, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange 0x1, BattleScript_SwaggerTryConfuse
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SwaggerTryConfuse
setgraphicalstatchangevalues
playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_SwaggerTryConfuse::
2017-11-26 01:19:57 +01:00
jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
setmoveeffect EFFECT_CONFUSION
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_EffectFuryCutter::
attackcanceler
attackstring
ppreduce
2017-11-26 17:15:28 +01:00
accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE
BattleScript_FuryCutterHit::
furycuttercalc
critcalc
damagecalc
typecalc
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_FuryCutterHit
adjustnormaldamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectAttract::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
tryinfatuating BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNFELLINLOVE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectReturn::
BattleScript_EffectFrustration::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
happinesstodamagecalculation
goto BattleScript_HitFromAtkString
BattleScript_EffectPresent::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
presentdamagecalculation
2017-11-25 21:32:17 +01:00
BattleScript_EffectSafeguard::
attackcanceler
attackstring
ppreduce
setsafeguard
2017-11-26 17:15:28 +01:00
goto BattleScript_PrintReflectLightScreenSafeguardString
BattleScript_EffectThawHit::
setmoveeffect EFFECT_BURN
goto BattleScript_EffectHit
BattleScript_EffectMagnitude::
attackcanceler
attackstring
ppreduce
selectfirstvalidtarget
magnitudedamagecalculation
pause 0x20
printstring STRINGID_MAGNITUDESTRENGTH
waitmessage 0x40
2017-12-03 00:47:21 +01:00
goto BattleScript_HitsAllWithUndergroundBonusLoop
BattleScript_EffectBatonPass::
attackcanceler
attackstring
ppreduce
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
jumpifcantswitch ATK4F_DONT_CHECK_STATUSES | ATTACKER, BattleScript_ButItFailed
attackanimation
waitanimation
openpartyscreen 0x1, BattleScript_ButItFailed
switchoutabilities ATTACKER
waitstate
switchhandleorder ATTACKER, 0x2
returntoball ATTACKER
getswitchedmondata ATTACKER
switchindataupdate ATTACKER
hpthresholds ATTACKER
printstring STRINGID_SWITCHINMON
2017-12-02 00:03:46 +01:00
switchinanim ATTACKER, TRUE
waitstate
switchineffects ATTACKER
goto BattleScript_MoveEnd
BattleScript_EffectRapidSpin::
setmoveeffect EFFECT_RAPIDSPIN | AFFECTS_USER | CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectSonicboom::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
2017-11-25 21:11:20 +01:00
setword gBattleMoveDamage, 20
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectMorningSun::
BattleScript_EffectSynthesis::
BattleScript_EffectMoonlight::
attackcanceler
attackstring
ppreduce
recoverbasedonsunlight BattleScript_AlreadyAtFullHp
goto BattleScript_PresentHealTarget
BattleScript_EffectHiddenPower::
hiddenpowercalc
goto BattleScript_EffectHit
BattleScript_EffectRainDance::
attackcanceler
attackstring
ppreduce
setrain
2017-11-26 17:15:28 +01:00
BattleScript_MoveWeatherChange::
attackanimation
waitanimation
printfromtable gMoveWeatherChangeStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
call BattleScript_WeatherFormChanges
goto BattleScript_MoveEnd
BattleScript_EffectSunnyDay::
attackcanceler
attackstring
ppreduce
setsunny
2017-11-26 17:15:28 +01:00
goto BattleScript_MoveWeatherChange
BattleScript_EffectDefenseUpHit::
setmoveeffect EFFECT_DEF_PLUS_1 | AFFECTS_USER
goto BattleScript_EffectHit
BattleScript_EffectAttackUpHit::
setmoveeffect EFFECT_ATK_PLUS_1 | AFFECTS_USER
goto BattleScript_EffectHit
BattleScript_EffectAllStatsUpHit::
setmoveeffect EFFECT_ALL_STATS_UP | AFFECTS_USER
goto BattleScript_EffectHit
BattleScript_EffectBellyDrum::
attackcanceler
attackstring
ppreduce
maxattackhalvehp BattleScript_ButItFailed
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
attackanimation
waitanimation
healthbarupdate ATTACKER
datahpupdate ATTACKER
printstring STRINGID_PKMNCUTHPMAXEDATTACK
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectPsychUp::
attackcanceler
attackstring
ppreduce
copyfoestats BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCOPIEDSTATCHANGES
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectMirrorCoat::
attackcanceler
mirrorcoatdamagecalculator BattleScript_ButItFailedAtkStringPpReduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc2
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectSkullBash::
2017-11-26 17:15:28 +01:00
jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
setbyte sTWOTURN_STRINGID, 0x2
call BattleScriptFirstChargingTurn
setstatchanger DEF, 1, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_SkullBashEnd
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SkullBashEnd
setgraphicalstatchangevalues
playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_SkullBashEnd::
goto BattleScript_MoveEnd
BattleScript_EffectTwister::
2017-11-26 17:15:28 +01:00
jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_FlinchEffect
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
setbyte sDMG_MULTIPLIER, 0x2
2017-11-26 17:15:28 +01:00
BattleScript_FlinchEffect::
setmoveeffect EFFECT_FLINCH
goto BattleScript_EffectHit
BattleScript_EffectEarthquake::
attackcanceler
attackstring
ppreduce
selectfirstvalidtarget
2017-12-03 00:47:21 +01:00
BattleScript_HitsAllWithUndergroundBonusLoop::
movevaluescleanup
2017-12-03 00:47:21 +01:00
jumpifnostatus3 TARGET, STATUS3_UNDERGROUND, BattleScript_HitsAllNoUndergroundBonus
orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND
setbyte sDMG_MULTIPLIER, 0x2
2017-12-03 00:47:21 +01:00
goto BattleScript_DoHitAllWithUndergroundBonus
BattleScript_HitsAllNoUndergroundBonus::
bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND
setbyte sDMG_MULTIPLIER, 0x1
2017-12-03 00:47:21 +01:00
BattleScript_DoHitAllWithUndergroundBonus::
accuracycheck BattleScript_HitAllWithUndergroundBonusMissed, ACC_CURR_MOVE
critcalc
damagecalc
typecalc
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
tryfaintmon TARGET, FALSE, NULL
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
2017-12-03 00:47:21 +01:00
jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
end
2017-12-03 00:47:21 +01:00
BattleScript_HitAllWithUndergroundBonusMissed::
pause 0x20
typecalc
effectivenesssound
resultmessage
waitmessage 0x40
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
2017-12-03 00:47:21 +01:00
jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
end
BattleScript_EffectFutureSight::
attackcanceler
attackstring
ppreduce
trysetfutureattack BattleScript_ButItFailed
attackanimation
waitanimation
printfromtable gFutureMoveUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectGust::
2017-11-26 11:55:17 +01:00
jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_EffectHit
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
setbyte sDMG_MULTIPLIER, 0x2
goto BattleScript_EffectHit
BattleScript_EffectStomp::
2017-11-26 17:15:28 +01:00
jumpifnostatus3 TARGET, STATUS3_MINIMIZED, BattleScript_FlinchEffect
setbyte sDMG_MULTIPLIER, 0x2
2017-11-26 17:15:28 +01:00
goto BattleScript_FlinchEffect
BattleScript_EffectSolarbeam::
2017-11-26 17:15:28 +01:00
jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarbeamDecideTurn
jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarbeamDecideTurn
2017-11-26 01:19:57 +01:00
jumpifhalfword COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_SolarbeamOnFirstTurn
2017-11-26 17:15:28 +01:00
BattleScript_SolarbeamDecideTurn::
jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
setbyte sTWOTURN_STRINGID, 0x1
call BattleScriptFirstChargingTurn
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_SolarbeamOnFirstTurn::
orword gHitMarker, HITMARKER_x8000000
setmoveeffect EFFECT_CHARGING | AFFECTS_USER
seteffectprimary
ppreduce
2017-11-26 17:15:28 +01:00
goto BattleScript_TwoTurnMovesSecondTurn
BattleScript_EffectThunder::
setmoveeffect EFFECT_PARALYSIS
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
goto BattleScript_EffectHit
BattleScript_EffectTeleport::
attackcanceler
attackstring
ppreduce
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed
2017-11-26 21:04:00 +01:00
getifcantrunfrombattle ATTACKER
jumpifbyte EQUAL, gBattleCommunication, 0x1, BattleScript_ButItFailed
jumpifbyte EQUAL, gBattleCommunication, 0x2, BattleScript_PrintAbilityMadeIneffective
attackanimation
waitanimation
printstring STRINGID_PKMNFLEDFROMBATTLE
waitmessage 0x40
2017-11-26 21:04:00 +01:00
setoutcomeonteleport ATTACKER
goto BattleScript_MoveEnd
BattleScript_EffectBeatUp::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
pause 0x20
ppreduce
setbyte gBattleCommunication, 0x0
BattleScript_BeatUpLoop::
movevaluescleanup
trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed
printstring STRINGID_PKMNATTACK
critcalc
jumpifbyte NOT_EQUAL, gCritMultiplier, 0x2, BattleScript_BeatUpAttack
manipulatedamage ATK80_DMG_DOUBLED
BattleScript_BeatUpAttack::
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
tryfaintmon TARGET, FALSE, NULL
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
goto BattleScript_BeatUpLoop
BattleScript_BeatUpEnd::
end
BattleScript_EffectSemiInvulnerable::
jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SecondTurnSemiInvulnerable
jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_SecondTurnSemiInvulnerable
2017-11-26 11:55:17 +01:00
jumpifmove MOVE_FLY, BattleScript_FirstTurnFly
jumpifmove MOVE_DIVE, BattleScript_FirstTurnDive
jumpifmove MOVE_BOUNCE, BattleScript_FirstTurnBounce
setbyte sTWOTURN_STRINGID, 0x5
goto BattleScript_FirstTurnSemiInvulnerable
BattleScript_FirstTurnBounce::
setbyte sTWOTURN_STRINGID, 0x7
goto BattleScript_FirstTurnSemiInvulnerable
BattleScript_FirstTurnDive::
setbyte sTWOTURN_STRINGID, 0x6
goto BattleScript_FirstTurnSemiInvulnerable
BattleScript_FirstTurnFly::
setbyte sTWOTURN_STRINGID, 0x4
BattleScript_FirstTurnSemiInvulnerable::
call BattleScriptFirstChargingTurn
setsemiinvulnerablebit
goto BattleScript_MoveEnd
BattleScript_SecondTurnSemiInvulnerable::
attackcanceler
setmoveeffect EFFECT_CHARGING
setbyte sANIM_TURN, 0x1
clearstatusfromeffect ATTACKER
orword gHitMarker, HITMARKER_NO_PPDEDUCT
2017-11-26 17:15:28 +01:00
jumpifnotmove MOVE_BOUNCE, BattleScript_SemiInvulnerableTryHit
setmoveeffect EFFECT_PARALYSIS
2017-11-26 17:15:28 +01:00
BattleScript_SemiInvulnerableTryHit::
accuracycheck BattleScript_SemiInvulnerableMiss, ACC_CURR_MOVE
clearsemiinvulnerablebit
goto BattleScript_HitFromAtkString
BattleScript_SemiInvulnerableMiss::
clearsemiinvulnerablebit
goto BattleScript_PrintMoveMissed
BattleScript_EffectDefenseCurl::
attackcanceler
attackstring
ppreduce
setdefensecurlbit
setstatchanger DEF, 1, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_DefenseCurlDoStatUpAnim
2017-11-26 01:19:57 +01:00
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpPrintString
attackanimation
waitanimation
2017-11-26 17:15:28 +01:00
BattleScript_DefenseCurlDoStatUpAnim::
2017-11-26 01:19:57 +01:00
goto BattleScript_StatUpDoAnim
BattleScript_EffectSoftboiled::
attackcanceler
attackstring
ppreduce
tryhealhalfhealth BattleScript_AlreadyAtFullHp, TARGET
BattleScript_PresentHealTarget::
attackanimation
waitanimation
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate TARGET
datahpupdate TARGET
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_AlreadyAtFullHp::
pause 0x20
printstring STRINGID_PKMNHPFULL
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectFakeOut::
attackcanceler
jumpifnotfirstturn BattleScript_ButItFailedAtkStringPpReduce
setmoveeffect EFFECT_FLINCH | CERTAIN
goto BattleScript_EffectHit
BattleScript_ButItFailedAtkStringPpReduce::
attackstring
BattleScript_ButItFailedPpReduce::
ppreduce
BattleScript_ButItFailed::
pause 0x20
orbyte gBattleMoveFlags, MOVESTATUS_FAILED
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_NotAffected::
pause 0x20
orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectUproar::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
setmoveeffect EFFECT_UPROAR | AFFECTS_USER
attackstring
2017-11-26 17:15:28 +01:00
jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_UproarHit
ppreduce
2017-11-26 17:15:28 +01:00
BattleScript_UproarHit::
nop
goto BattleScript_HitFromCritCalc
BattleScript_EffectStockpile::
attackcanceler
attackstring
ppreduce
stockpile
attackanimation
waitanimation
printfromtable gStockpileUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSpitUp::
attackcanceler
jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82D9FA2
attackstring
ppreduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
stockpiletobasedamage BattleScript_SpitUpFail
typecalc
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_SpitUpFail::
pause 0x20
printstring STRINGID_FAILEDTOSPITUP
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_82D9FA2::
attackstring
ppreduce
pause 0x40
stockpiletobasedamage BattleScript_SpitUpFail
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSwallow::
attackcanceler
attackstring
ppreduce
stockpiletohpheal BattleScript_SwallowFail
goto BattleScript_PresentHealTarget
BattleScript_SwallowFail::
pause 0x20
printfromtable gSwallowFailStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectHail::
attackcanceler
attackstring
ppreduce
sethail
2017-11-26 17:15:28 +01:00
goto BattleScript_MoveWeatherChange
BattleScript_EffectTorment::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
settorment BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSUBJECTEDTOTORMENT
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectFlatter::
attackcanceler
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
jumpifconfusedandstatmaxed SPATK, BattleScript_ButItFailed
attackanimation
waitanimation
setstatchanger SPATK, 1, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange 0x1, BattleScript_FlatterTryConfuse
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_FlatterTryConfuse
setgraphicalstatchangevalues
playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_FlatterTryConfuse::
2017-11-26 01:19:57 +01:00
jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
setmoveeffect EFFECT_CONFUSION
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_EffectWillOWisp::
attackcanceler
attackstring
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
2017-11-26 17:15:28 +01:00
jumpifstatus TARGET, STATUS_BURN, BattleScript_AlreadyBurned
jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected
2017-11-26 01:19:57 +01:00
jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents
jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2017-11-26 01:19:57 +01:00
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
waitanimation
setmoveeffect EFFECT_BURN
seteffectprimary
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_WaterVeilPrevents::
2017-11-25 21:32:17 +01:00
copybyte gEffectBank, gBankTarget
setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_BRNPrevention
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_AlreadyBurned::
2017-11-26 21:04:00 +01:00
various23 ATTACKER
pause 0x20
printstring STRINGID_PKMNALREADYHASBURN
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectMemento::
attackcanceler
jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82DA153
attackstring
ppreduce
jumpifattackandspecialattackcannotfall BattleScript_ButItFailed
setatkhptozero
attackanimation
waitanimation
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DA148
setbyte sFIELD_1B, 0x0
playstatchangeanimation TARGET, 0x12, 0x7
playstatchangeanimation TARGET, 0x2, 0x3
setstatchanger ATK, 2, TRUE
statbuffchange 0x1, BattleScript_82DA119
jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA119
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_82DA119::
playstatchangeanimation TARGET, 0x10, 0x3
setstatchanger SPATK, 2, TRUE
statbuffchange 0x1, BattleScript_82DA13C
jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA13C
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_82DA13C::
tryfaintmon ATTACKER, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_82DA148::
printstring STRINGID_BUTNOEFFECT
waitmessage 0x40
goto BattleScript_82DA13C
BattleScript_82DA153::
attackstring
ppreduce
jumpifattackandspecialattackcannotfall BattleScript_82DA15A
BattleScript_82DA15A::
setatkhptozero
pause 0x40
effectivenesssound
resultmessage
waitmessage 0x40
tryfaintmon ATTACKER, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectFacade::
jumpifstatus ATTACKER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleScript_FacadeDoubleDmg
goto BattleScript_EffectHit
BattleScript_FacadeDoubleDmg::
setbyte sDMG_MULTIPLIER, 0x2
goto BattleScript_EffectHit
BattleScript_EffectFocusPunch::
attackcanceler
jumpifnodamage BattleScript_HitFromAccCheck
ppreduce
printstring STRINGID_PKMNLOSTFOCUS
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSmellingsalt::
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit
setmoveeffect EFFECT_REMOVE_PARALYSIS | CERTAIN
2017-12-03 00:47:21 +01:00
jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_SmellingsaltDoubleDmg
goto BattleScript_EffectHit
2017-12-03 00:47:21 +01:00
BattleScript_SmellingsaltDoubleDmg::
setbyte sDMG_MULTIPLIER, 0x2
goto BattleScript_EffectHit
BattleScript_EffectFollowMe::
attackcanceler
attackstring
ppreduce
setforcedtarget
attackanimation
waitanimation
printstring STRINGID_PKMNCENTERATTENTION
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectNaturePower::
attackcanceler
attackstring
pause 0x20
callterrainattack
printstring STRINGID_NATUREPOWERTURNEDINTO
waitmessage 0x40
return
BattleScript_EffectCharge::
attackcanceler
attackstring
ppreduce
setcharge
attackanimation
waitanimation
printstring STRINGID_PKMNCHARGINGPOWER
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectTaunt::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
settaunt BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNFELLFORTAUNT
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectHelpingHand::
attackcanceler
attackstring
ppreduce
trysethelpinghand BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNREADYTOHELP
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectTrick::
attackcanceler
attackstring
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
tryswapitems BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSWITCHEDITEMS
waitmessage 0x40
printfromtable gItemSwapStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectRolePlay::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
trycopyability BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCOPIEDFOE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectWish::
attackcanceler
attackstring
ppreduce
trywish 0x0, BattleScript_ButItFailed
attackanimation
waitanimation
goto BattleScript_MoveEnd
BattleScript_EffectAssist::
attackcanceler
attackstring
asistattackselect BattleScript_ButItFailedPpReduce
attackanimation
waitanimation
setbyte sANIM_TURN, 0x0
setbyte sANIM_TARGETS_HIT, 0x0
2017-12-02 00:03:46 +01:00
jumptorandomattack TRUE
BattleScript_EffectIngrain::
attackcanceler
attackstring
ppreduce
trysetroots BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNPLANTEDROOTS
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSuperpower::
setmoveeffect EFFECT_ATK_DEF_DOWN | AFFECTS_USER | CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectMagicCoat::
attackcanceler
trysetmagiccoat BattleScript_ButItFailedAtkStringPpReduce
attackstring
ppreduce
attackanimation
waitanimation
printstring STRINGID_PKMNSHROUDEDITSELF
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectRecycle::
attackcanceler
attackstring
ppreduce
tryrecycleitem BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_XFOUNDONEY
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectRevenge::
doubledamagedealtifdamaged
goto BattleScript_EffectHit
BattleScript_EffectBrickBreak::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
removelightscreenreflect
critcalc
damagecalc
typecalc
adjustnormaldamage
2017-12-02 00:03:46 +01:00
jumpifbyte EQUAL, sANIM_TURN, 0x0, BattleScript_BrickBreakAnim
bicbyte gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED
2017-12-02 00:03:46 +01:00
BattleScript_BrickBreakAnim::
attackanimation
waitanimation
2017-12-02 00:03:46 +01:00
jumpifbyte LESS_THAN, sANIM_TURN, 0x2, BattleScript_BrickBreakDoHit
printstring STRINGID_THEWALLSHATTERED
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_BrickBreakDoHit::
typecalc2
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
seteffectwithchance
tryfaintmon TARGET, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectYawn::
attackcanceler
attackstring
ppreduce
jumpifability TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBankAbilityMadeIneffective
jumpifability TARGET, ABILITY_INSOMNIA, BattleScript_PrintBankAbilityMadeIneffective
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
2017-11-26 01:19:57 +01:00
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
jumpifcantmakeasleep BattleScript_ButItFailed
setyawn BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNWASMADEDROWSY
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_PrintBankAbilityMadeIneffective::
copybyte sBANK, sBANK_WITH_ABILITY
BattleScript_PrintAbilityMadeIneffective::
pause 0x20
printstring STRINGID_PKMNSXMADEITINEFFECTIVE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectKnockOff::
setmoveeffect EFFECT_KNOCK_OFF
goto BattleScript_EffectHit
BattleScript_EffectEndeavor::
attackcanceler
attackstring
ppreduce
setdamagetohealthdifference BattleScript_ButItFailed
2017-11-25 21:32:17 +01:00
copyword gHpDealt, gBattleMoveDamage
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
2017-11-25 21:32:17 +01:00
copyword gBattleMoveDamage, gHpDealt
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectEruption::
scaledamagebyhealthratio
goto BattleScript_EffectHit
BattleScript_EffectSkillSwap::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
tryswapabilities BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSWAPPEDABILITIES
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectImprison::
attackcanceler
attackstring
ppreduce
tryimprision BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSEALEDOPPONENTMOVE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectRefresh::
attackcanceler
attackstring
ppreduce
cureifburnedparalysedorpoisoned BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSTATUSNORMAL
waitmessage 0x40
updatestatusicon ATTACKER
goto BattleScript_MoveEnd
BattleScript_EffectGrudge::
attackcanceler
attackstring
ppreduce
trysetgrudge BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNWANTSGRUDGE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSnatch::
attackcanceler
trysetsnatch BattleScript_ButItFailedAtkStringPpReduce
attackstring
ppreduce
attackanimation
waitanimation
pause 0x20
printstring STRINGID_PKMNWAITSFORTARGET
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectLowKick::
attackcanceler
attackstring
ppreduce
weightdamagecalculation
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
goto BattleScript_HitFromCritCalc
BattleScript_EffectSecretPower::
getsecretpowereffect
goto BattleScript_EffectHit
BattleScript_EffectDoubleEdge::
setmoveeffect EFFECT_RECOIL_33_PARALYSIS | AFFECTS_USER | CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectTeeterDance::
attackcanceler
attackstring
ppreduce
setbyte gBankTarget, 0x0
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceLoop::
movevaluescleanup
setmoveeffect EFFECT_CONFUSION
2017-12-02 00:03:46 +01:00
jumpifbyteequal gBankAttacker, gBankTarget, BattleScript_TeeterDanceLoopIncrement
jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents
jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused
jumpifhasnohp TARGET, BattleScript_TeeterDanceLoopIncrement
accuracycheck BattleScript_TeeterDanceMissed, ACC_CURR_MOVE
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_TeeterDanceSafeguardProtected
attackanimation
waitanimation
seteffectprimary
resultmessage
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceDoMoveEndIncrement::
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceLoopIncrement::
addbyte gBankTarget, 0x1
2017-12-02 00:03:46 +01:00
jumpifbytenotequal gBankTarget, gNoOfAllBanks, BattleScript_TeeterDanceLoop
end
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceOwnTempoPrevents::
pause 0x20
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceSafeguardProtected::
pause 0x20
printstring STRINGID_PKMNUSEDSAFEGUARD
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceSubstitutePrevents::
pause 0x20
printstring STRINGID_BUTITFAILED
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceAlreadyConfused::
2017-11-26 21:04:00 +01:00
various23 ATTACKER
pause 0x20
printstring STRINGID_PKMNALREADYCONFUSED
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceMissed::
resultmessage
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
BattleScript_EffectMudSport::
BattleScript_EffectWaterSport::
attackcanceler
attackstring
ppreduce
settypebasedhalvers BattleScript_ButItFailed
attackanimation
waitanimation
printfromtable gSportsUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectPoisonFang::
setmoveeffect EFFECT_TOXIC
goto BattleScript_EffectHit
BattleScript_EffectWeatherBall::
setweatherballtype
goto BattleScript_EffectHit
BattleScript_EffectOverheat::
setmoveeffect EFFECT_SP_ATK_TWO_DOWN | AFFECTS_USER | CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectTickle::
attackcanceler
attackstring
ppreduce
2017-11-26 17:15:28 +01:00
jumpifstat TARGET, GREATER_THAN, ATK, 0x0, BattleScript_TickleDoMoveAnim
jumpifstat TARGET, EQUAL, DEF, 0x0, BattleScript_CantLowerMultipleStats
BattleScript_TickleDoMoveAnim::
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
attackanimation
waitanimation
setbyte sFIELD_1B, 0x0
playstatchangeanimation TARGET, 0x6, 0x5
playstatchangeanimation TARGET, 0x2, 0x1
setstatchanger ATK, 1, TRUE
2017-11-26 17:15:28 +01:00
statbuffchange 0x1, BattleScript_TickleTryLowerDef
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleTryLowerDef
printfromtable gStatDownStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_TickleTryLowerDef::
playstatchangeanimation TARGET, 0x4, 0x1
setstatchanger DEF, 1, TRUE
2017-11-26 17:15:28 +01:00
statbuffchange 0x1, BattleScript_TickleEnd
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleEnd
printfromtable gStatDownStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_TickleEnd::
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_CantLowerMultipleStats::
pause 0x20
orbyte gBattleMoveFlags, MOVESTATUS_FAILED
printstring STRINGID_STATSWONTDECREASE2
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectCosmicPower::
attackcanceler
attackstring
ppreduce
2017-11-26 17:15:28 +01:00
jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_CosmicPowerDoMoveAnim
jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats
2017-11-26 17:15:28 +01:00
BattleScript_CosmicPowerDoMoveAnim::
attackanimation
waitanimation
setbyte sFIELD_1B, 0x0
playstatchangeanimation ATTACKER, 0x24, 0x0
setstatchanger DEF, 1, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_CosmicPowerTrySpDef
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerTrySpDef
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_CosmicPowerTrySpDef::
setstatchanger SPDEF, 1, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_CosmicPowerEnd
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerEnd
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_CosmicPowerEnd::
goto BattleScript_MoveEnd
BattleScript_EffectSkyUppercut::
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
goto BattleScript_EffectHit
BattleScript_EffectBulkUp::
attackcanceler
attackstring
ppreduce
2017-11-26 17:15:28 +01:00
jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_BulkUpDoMoveAnim
jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_CantRaiseMultipleStats
2017-11-26 17:15:28 +01:00
BattleScript_BulkUpDoMoveAnim::
attackanimation
waitanimation
setbyte sFIELD_1B, 0x0
playstatchangeanimation ATTACKER, 0x6, 0x0
setstatchanger ATK, 1, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_BulkUpTryDef
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpTryDef
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_BulkUpTryDef::
setstatchanger DEF, 1, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_BulkUpEnd
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpEnd
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_BulkUpEnd::
goto BattleScript_MoveEnd
BattleScript_EffectCalmMind::
attackcanceler
attackstring
ppreduce
2017-11-26 17:15:28 +01:00
jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_CalmMindDoMoveAnim
jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats
2017-11-26 17:15:28 +01:00
BattleScript_CalmMindDoMoveAnim::
attackanimation
waitanimation
setbyte sFIELD_1B, 0x0
playstatchangeanimation ATTACKER, 0x30, 0x0
setstatchanger SPATK, 1, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_CalmMindTrySpDef
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindTrySpDef
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_CalmMindTrySpDef::
setstatchanger SPDEF, 1, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_CalmMindEnd
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindEnd
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_CalmMindEnd::
goto BattleScript_MoveEnd
BattleScript_CantRaiseMultipleStats::
pause 0x20
orbyte gBattleMoveFlags, MOVESTATUS_FAILED
printstring STRINGID_STATSWONTINCREASE2
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectDragonDance::
attackcanceler
attackstring
ppreduce
2017-11-26 17:15:28 +01:00
jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_DragonDanceDoMoveAnim
jumpifstat ATTACKER, EQUAL, SPEED, 0xC, BattleScript_CantRaiseMultipleStats
2017-11-26 17:15:28 +01:00
BattleScript_DragonDanceDoMoveAnim::
attackanimation
waitanimation
setbyte sFIELD_1B, 0x0
playstatchangeanimation ATTACKER, 0xA, 0x0
setstatchanger ATK, 1, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_DragonDanceTrySpeed
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceTrySpeed
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_DragonDanceTrySpeed::
setstatchanger SPEED, 1, FALSE
2017-11-26 17:15:28 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_DragonDanceEnd
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceEnd
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_DragonDanceEnd::
goto BattleScript_MoveEnd
BattleScript_EffectCamouflage::
attackcanceler
attackstring
ppreduce
settypetoterrain BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCHANGEDTYPE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_FaintAttacker::
playfaintcry ATTACKER
pause 0x40
dofaintanimation ATTACKER
cleareffectsonfaint ATTACKER
printstring STRINGID_ATTACKERFAINTED
return
BattleScript_FaintTarget::
playfaintcry TARGET
pause 0x40
dofaintanimation TARGET
cleareffectsonfaint TARGET
printstring STRINGID_TARGETFAINTED
return
2017-12-02 14:08:55 +01:00
BattleScript_GiveExp::
setbyte sGIVEEXP_STATE, 0x0
getexp TARGET
end2
2017-12-02 14:08:55 +01:00
BattleScript_HandleFaintedMon::
atk24 BattleScript_82DA8F6
2017-12-02 14:08:55 +01:00
jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonTryChooseAnother
jumpifword NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonTryChooseAnother
printstring STRINGID_USENEXTPKMN
setbyte gBattleCommunication, 0x0
yesnobox
2017-12-02 14:08:55 +01:00
jumpifbyte EQUAL, gBattleCommunication + 1, 0x0, BattleScript_FaintedMonTryChooseAnother
jumpifplayerran BattleScript_FaintedMonEnd
printstring STRINGID_CANTESCAPE2
2017-12-02 14:08:55 +01:00
BattleScript_FaintedMonTryChooseAnother::
openpartyscreen 0x3, BattleScript_FaintedMonEnd
switchhandleorder GBANK_1, 0x2
2017-12-02 14:08:55 +01:00
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonChooseAnother
jumpifbattletype BATTLE_TYPE_LINK, BattleScript_FaintedMonChooseAnother
jumpifbattletype BATTLE_TYPE_x2000000, BattleScript_FaintedMonChooseAnother
2017-12-16 01:08:55 +01:00
jumpifbattletype BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID, BattleScript_FaintedMonChooseAnother
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonChooseAnother
jumpifword COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonChooseAnother
jumpifbyte EQUAL, sBATTLE_STYLE, 0x1, BattleScript_FaintedMonChooseAnother
jumpifcantswitch 11, BattleScript_FaintedMonChooseAnother
printstring STRINGID_ENEMYABOUTTOSWITCHPKMN
setbyte gBattleCommunication, 0x0
yesnobox
2017-12-02 14:08:55 +01:00
jumpifbyte EQUAL, gBattleCommunication + 1, 0x1, BattleScript_FaintedMonChooseAnother
setatktoplayer0
2017-12-02 14:08:55 +01:00
openpartyscreen 0x81, BattleScript_FaintedMonChooseAnother
switchhandleorder ATTACKER, 0x2
2017-12-02 14:08:55 +01:00
jumpifbyte EQUAL, gBattleCommunication, 0x6, BattleScript_FaintedMonChooseAnother
atknameinbuff1
2017-11-26 21:04:00 +01:00
resetintrimidatetracebits ATTACKER
hpthresholds2 ATTACKER
printstring STRINGID_RETURNMON
switchoutabilities ATTACKER
waitstate
returnatktoball
waitstate
drawpartystatussummary ATTACKER
getswitchedmondata ATTACKER
switchindataupdate ATTACKER
hpthresholds ATTACKER
printstring STRINGID_SWITCHINMON
atk62 ATTACKER
switchinanim ATTACKER, 0x0
waitstate
switchineffects ATTACKER
resetsentmonsvalue
2017-12-02 14:08:55 +01:00
BattleScript_FaintedMonChooseAnother::
drawpartystatussummary GBANK_1
getswitchedmondata GBANK_1
switchindataupdate GBANK_1
hpthresholds GBANK_1
printstring STRINGID_SWITCHINMON
atk62 GBANK_1
2017-12-02 00:03:46 +01:00
switchinanim GBANK_1, FALSE
waitstate
2017-11-26 21:04:00 +01:00
various7 ATTACKER
switchineffects GBANK_1
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonEnd
cancelallactions
2017-12-02 14:08:55 +01:00
BattleScript_FaintedMonEnd::
end2
BattleScript_82DA8F6::
openpartyscreen 0x5, BattleScript_82DA8FC
BattleScript_82DA8FC::
switchhandleorder GBANK_1, 0x0
openpartyscreen 0x6, BattleScript_82DA92C
switchhandleorder GBANK_1, 0x0
BattleScript_82DA908::
switchhandleorder GBANK_1, 0x3
drawpartystatussummary GBANK_1
getswitchedmondata GBANK_1
switchindataupdate GBANK_1
hpthresholds GBANK_1
printstring STRINGID_SWITCHINMON
atk62 GBANK_1
2017-12-02 00:03:46 +01:00
switchinanim GBANK_1, FALSE
waitstate
switchineffects 5
2017-11-25 21:32:17 +01:00
jumpifbytenotequal gBank1, gNoOfAllBanks, BattleScript_82DA908
BattleScript_82DA92C::
end2
BattleScript_LocalTrainerBattleWon::
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalTwoTrainersDefeated
printstring STRINGID_PLAYERDEFEATEDTRAINER1
2017-11-26 01:19:57 +01:00
goto BattleScript_LocalBattleWonLoseTexts
BattleScript_LocalTwoTrainersDefeated::
printstring STRINGID_TWOENEMIESDEFEATED
2017-11-26 01:19:57 +01:00
BattleScript_LocalBattleWonLoseTexts::
trainerslidein ATTACKER
waitstate
printstring STRINGID_TRAINER1LOSETEXT
2017-12-02 14:08:55 +01:00
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleWonReward
trainerslideout IDENTITY_OPPONENT_MON1
waitstate
trainerslidein GBANK_1
waitstate
printstring STRINGID_TRAINER2LOSETEXT
2017-11-26 01:19:57 +01:00
BattleScript_LocalBattleWonReward::
getmoneyreward
printstring STRINGID_PLAYERGOTMONEY
waitmessage 0x40
BattleScript_PayDayMoneyAndPickUpItems::
givepaydaymoney
pickup
end2
BattleScript_LocalBattleLost::
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_DOME, BattleScript_CheckDomeDrew
2017-12-16 01:08:55 +01:00
jumpifbattletype BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID, BattleScript_LocalBattleLostPrintTrainersWinText
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_x4000000, BattleScript_LocalBattleLostPrintTrainersWinText
jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd
2017-11-26 17:15:28 +01:00
jumpifhalfword EQUAL, gTrainerBattleOpponent_A, 0x400, BattleScript_LocalBattleLostEnd
BattleScript_LocalBattleLostPrintWhiteOut::
printstring STRINGID_PLAYERWHITEOUT
waitmessage 0x40
printstring STRINGID_PLAYERWHITEOUT2
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_LocalBattleLostEnd::
end2
2017-11-26 17:15:28 +01:00
BattleScript_CheckDomeDrew::
jumpifbyte EQUAL, gBattleOutcome, DREW, BattleScript_LocalBattleLostEnd_
BattleScript_LocalBattleLostPrintTrainersWinText::
2017-12-02 14:08:55 +01:00
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostPrintWhiteOut
2017-11-26 21:04:00 +01:00
returnopponentmon1toball ATTACKER
waitstate
2017-11-26 21:04:00 +01:00
returnopponentmon2toball ATTACKER
waitstate
trainerslidein ATTACKER
waitstate
printstring STRINGID_TRAINER1WINTEXT
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_x800000, BattleScript_LocalBattleLostDoTrainer2WinText
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_
2017-11-26 17:15:28 +01:00
BattleScript_LocalBattleLostDoTrainer2WinText::
trainerslideout IDENTITY_OPPONENT_MON1
waitstate
trainerslidein GBANK_1
waitstate
printstring STRINGID_TRAINER2WINTEXT
2017-11-26 17:15:28 +01:00
BattleScript_LocalBattleLostEnd_::
end2
BattleScript_82DAA0B::
2017-11-26 21:04:00 +01:00
returnopponentmon1toball ATTACKER
waitstate
2017-11-26 21:04:00 +01:00
returnopponentmon2toball ATTACKER
waitstate
trainerslidein ATTACKER
waitstate
printstring STRINGID_TRAINER1WINTEXT
trainerslideout IDENTITY_OPPONENT_MON1
waitstate
trainerslidein GBANK_1
waitstate
printstring STRINGID_TRAINER2WINTEXT
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_82DAA31
atk57
BattleScript_82DAA31::
waitmessage 0x40
end2
BattleScript_LinkBattleWonOrLost::
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_BATTLE_TOWER, BattleScript_82DAA5C
printstring STRINGID_BATTLEEND
waitmessage 0x40
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_LinkBattleWonOrLostWaitEnd
atk57
2017-11-26 17:15:28 +01:00
BattleScript_LinkBattleWonOrLostWaitEnd::
waitmessage 0x40
end2
BattleScript_82DAA5C::
2017-11-26 21:04:00 +01:00
playtrainerdefeatbgm ATTACKER
printstring STRINGID_BATTLEEND
waitmessage 0x40
trainerslidein ATTACKER
waitstate
printstring STRINGID_TRAINER1LOSETEXT
trainerslideout IDENTITY_OPPONENT_MON1
waitstate
trainerslidein GBANK_1
waitstate
printstring STRINGID_TRAINER2LOSETEXT
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_82DAA83
atk57
BattleScript_82DAA83::
waitmessage 0x40
end2
BattleScript_FrontierTrainerBattleWon::
2017-12-02 14:08:55 +01:00
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_PayDayMoneyAndPickUpItems
jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAAAB
printstring STRINGID_PLAYERDEFEATEDTRAINER1
goto BattleScript_82DAAAE
BattleScript_82DAAAB::
printstring STRINGID_TWOENEMIESDEFEATED
BattleScript_82DAAAE::
trainerslidein ATTACKER
waitstate
printstring STRINGID_TRAINER1LOSETEXT
2017-12-02 14:08:55 +01:00
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAACB
trainerslideout IDENTITY_OPPONENT_MON1
waitstate
trainerslidein GBANK_1
waitstate
printstring STRINGID_TRAINER2LOSETEXT
BattleScript_82DAACB::
2017-12-02 14:08:55 +01:00
jumpifnotbattletype BATTLE_TYPE_PYRAMID, BattleScript_82DAADA
pickup
BattleScript_82DAADA::
end2
BattleScript_SmokeBallEscape::
playanimation ATTACKER, ANIM_SMOKEBALL_ESCAPE, NULL
printstring STRINGID_PKMNFLEDUSINGITS
waitmessage 0x40
end2
BattleScript_RanAwayUsingMonAbility::
printstring STRINGID_PKMNFLEDUSING
waitmessage 0x40
end2
BattleScript_GotAwaySafely::
printstring STRINGID_GOTAWAYSAFELY
waitmessage 0x40
end2
BattleScript_WildMonFled::
printstring STRINGID_WILDPKMNFLED
waitmessage 0x40
end2
2017-11-26 17:26:11 +01:00
BattleScript_PrintCantRunFromTrainer::
printstring STRINGID_NORUNNINGFROMTRAINERS
end2
BattleScript_PrintFailedToRunString::
printfromtable gNoEscapeStringIds
waitmessage 0x40
end2
2017-11-26 17:26:11 +01:00
BattleScript_PrintCantEscapeFromBattle::
printselectionstringfromtable gNoEscapeStringIds
endselectionscript
2017-11-26 17:15:28 +01:00
BattleScript_PrintFullBox::
printselectionstring STRINGID_BOXISFULL
endselectionscript
BattleScript_ActionSwitch::
hpthresholds2 ATTACKER
printstring STRINGID_RETURNMON
setbyte sDMG_MULTIPLIER, 0x2
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_PursuitSwitchDmgSetMultihit
setmultihit 0x1
2017-12-02 00:03:46 +01:00
goto BattleScript_PursuitSwitchDmgLoop
BattleScript_PursuitSwitchDmgSetMultihit::
setmultihit 0x2
2017-12-02 00:03:46 +01:00
BattleScript_PursuitSwitchDmgLoop::
jumpifnopursuitswitchdmg BattleScript_DoSwitchOut
atk5F
trysetdestinybondtohappen
2017-12-02 00:03:46 +01:00
call BattleScript_PursuitDmgOnSwitchOut
atk5F
2017-12-02 00:03:46 +01:00
BattleScript_DoSwitchOut::
decrementmultihit BattleScript_PursuitSwitchDmgLoop
switchoutabilities ATTACKER
waitstate
returnatktoball
waitstate
drawpartystatussummary ATTACKER
switchhandleorder ATTACKER, 0x1
getswitchedmondata ATTACKER
switchindataupdate ATTACKER
hpthresholds ATTACKER
printstring STRINGID_SWITCHINMON
atk62 ATTACKER
2017-12-02 00:03:46 +01:00
switchinanim ATTACKER, FALSE
waitstate
switchineffects ATTACKER
setbyte sMOVEEND_STATE, 0x4
moveend 0x1, 0x0
setbyte sMOVEEND_STATE, 0xF
moveend 0x1, 0x0
end2
2017-12-02 00:03:46 +01:00
BattleScript_PursuitDmgOnSwitchOut::
pause 0x20
attackstring
ppreduce
critcalc
damagecalc
typecalc
adjustnormaldamage
attackanimation
waitanimation
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
tryfaintmon TARGET, FALSE, NULL
setbyte sMOVEEND_STATE, 0x3
moveend 0x2, 0x6
2017-11-26 21:04:00 +01:00
various4 TARGET
2017-12-02 00:03:46 +01:00
jumpifbyte EQUAL, gBattleCommunication, 0x0, BattleScript_PursuitDmgOnSwitchOutRet
setbyte sGIVEEXP_STATE, 0x0
getexp TARGET
2017-12-02 00:03:46 +01:00
BattleScript_PursuitDmgOnSwitchOutRet::
return
BattleScript_Pausex20::
pause 0x20
return
BattleScript_LevelUp::
2017-12-22 08:46:19 +01:00
fanfare MUS_FANFA1
printstring STRINGID_PKMNGREWTOLV
setbyte sLVLBOX_STATE, 0x0
drawlvlupbox
handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, TRUE
goto BattleScript_AskToLearnMove
BattleScript_TryLearnMoveLoop::
handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, FALSE
BattleScript_AskToLearnMove::
buffermovetolearn
printstring STRINGID_TRYTOLEARNMOVE1
printstring STRINGID_TRYTOLEARNMOVE2
printstring STRINGID_TRYTOLEARNMOVE3
waitstate
setbyte sLEARNMOVE_STATE, 0x0
yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove
printstring STRINGID_STOPLEARNINGMOVE
waitstate
setbyte sLEARNMOVE_STATE, 0x0
yesnoboxstoplearningmove BattleScript_AskToLearnMove
printstring STRINGID_DIDNOTLEARNMOVE
goto BattleScript_TryLearnMoveLoop
BattleScript_ForgotAndLearnedNewMove::
printstring STRINGID_123POOF
printstring STRINGID_PKMNFORGOTMOVE
printstring STRINGID_ANDELLIPSIS
BattleScript_LearnedNewMove::
buffermovetolearn
2017-12-22 08:46:19 +01:00
fanfare MUS_FANFA1
printstring STRINGID_PKMNLEARNEDMOVE
waitmessage 0x40
2017-11-26 21:04:00 +01:00
updatechoicemoveonlvlup ATTACKER
goto BattleScript_TryLearnMoveLoop
BattleScript_LearnMoveReturn::
return
2017-11-26 17:15:28 +01:00
BattleScript_RainContinuesOrEnds::
printfromtable gRainContinuesStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_RainContinuesOrEndsEnd
playanimation ATTACKER, ANIM_RAIN_CONTINUES, NULL
2017-11-26 17:15:28 +01:00
BattleScript_RainContinuesOrEndsEnd::
end2
2017-11-26 17:15:28 +01:00
BattleScript_DamagingWeatherContinues::
printfromtable gSandStormHailContinuesStringIds
waitmessage 0x40
playanimation2 ATTACKER, sANIM_ARG1, NULL
setbyte gBattleCommunication, 0x0
2017-11-26 17:15:28 +01:00
BattleScript_DamagingWeatherLoop::
copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 0x1
weatherdamage
2017-11-26 17:15:28 +01:00
jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement
printfromtable gSandStormHailDmgStringIds
waitmessage 0x40
orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
effectivenesssound
hitanimation ATTACKER
healthbarupdate ATTACKER
datahpupdate ATTACKER
tryfaintmon ATTACKER, FALSE, NULL
2017-11-26 17:15:28 +01:00
atk24 BattleScript_DamagingWeatherLoopIncrement
BattleScript_DamagingWeatherLoopIncrement::
jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd
addbyte gBattleCommunication, 0x1
2017-11-26 17:15:28 +01:00
jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_DamagingWeatherLoop
BattleScript_DamagingWeatherContinuesEnd::
bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
end2
2017-11-26 17:15:28 +01:00
BattleScript_SandStormHailEnds::
printfromtable gSandStormHailEndStringIds
waitmessage 0x40
end2
2017-11-26 17:15:28 +01:00
BattleScript_SunlightContinues::
printstring STRINGID_SUNLIGHTSTRONG
waitmessage 0x40
playanimation ATTACKER, ANIM_SUN_CONTINUES, NULL
end2
2017-11-26 17:15:28 +01:00
BattleScript_SunlightFaded::
printstring STRINGID_SUNLIGHTFADED
waitmessage 0x40
end2
2017-11-26 17:15:28 +01:00
BattleScript_OverworldWeatherStarts::
printfromtable gWeatherContinuesStringIds
waitmessage 0x40
playanimation2 ATTACKER, sANIM_ARG1, NULL
end3
2017-11-26 17:15:28 +01:00
BattleScript_SideStatusWoreOff::
printstring STRINGID_PKMNSXWOREOFF
waitmessage 0x40
end2
2017-11-26 01:19:57 +01:00
BattleScript_SafeguardProtected::
pause 0x20
printstring STRINGID_PKMNUSEDSAFEGUARD
waitmessage 0x40
end2
2017-11-26 17:15:28 +01:00
BattleScript_SafeguardEnds::
pause 0x20
printstring STRINGID_PKMNSAFEGUARDEXPIRED
waitmessage 0x40
end2
BattleScript_LeechSeedTurnDrain::
playanimation ATTACKER, ANIM_LEECH_SEED_DRAIN, sANIM_ARG1
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate ATTACKER
datahpupdate ATTACKER
2017-11-25 21:32:17 +01:00
copyword gBattleMoveDamage, gHpDealt
2017-12-03 00:47:21 +01:00
jumpifability ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedTurnPrintLiquidOoze
manipulatedamage ATK80_DMG_CHANGE_SIGN
setbyte cMULTISTRING_CHOOSER, 0x3
2017-12-03 00:47:21 +01:00
goto BattleScript_LeechSeedTurnPrintAndUpdateHp
BattleScript_LeechSeedTurnPrintLiquidOoze::
setbyte cMULTISTRING_CHOOSER, 0x4
2017-12-03 00:47:21 +01:00
BattleScript_LeechSeedTurnPrintAndUpdateHp::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate TARGET
datahpupdate TARGET
printfromtable gLeechSeedStringIds
waitmessage 0x40
tryfaintmon ATTACKER, FALSE, NULL
tryfaintmon TARGET, FALSE, NULL
end2
BattleScript_BideStoringEnergy::
printstring STRINGID_PKMNSTORINGENERGY
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_BideAttack::
attackcanceler
setmoveeffect EFFECT_CHARGING
clearstatusfromeffect ATTACKER
printstring STRINGID_PKMNUNLEASHEDENERGY
waitmessage 0x40
accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE
typecalc
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
2017-11-25 21:32:17 +01:00
copyword gBattleMoveDamage, sBIDE_DMG
adjustsetdamage
setbyte sANIM_TURN, 0x1
attackanimation
waitanimation
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
resultmessage
waitmessage 0x40
tryfaintmon TARGET, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_BideNoEnergyToAttack::
attackcanceler
setmoveeffect EFFECT_CHARGING
clearstatusfromeffect ATTACKER
printstring STRINGID_PKMNUNLEASHEDENERGY
waitmessage 0x40
goto BattleScript_ButItFailed
2017-12-02 00:03:46 +01:00
BattleScript_SuccessForceOut::
attackanimation
waitanimation
switchoutabilities TARGET
returntoball TARGET
waitstate
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_TrainerBattleForceOut
2017-11-26 21:04:00 +01:00
setoutcomeonteleport ATTACKER
finishaction
2017-12-02 00:03:46 +01:00
BattleScript_TrainerBattleForceOut::
getswitchedmondata TARGET
switchindataupdate TARGET
2017-12-02 00:03:46 +01:00
switchinanim TARGET, FALSE
waitstate
printstring STRINGID_PKMNWASDRAGGEDOUT
switchineffects TARGET
goto BattleScript_MoveEnd
BattleScript_MistProtected::
pause 0x20
printstring STRINGID_PKMNPROTECTEDBYMIST
waitmessage 0x40
return
BattleScript_RageIsBuilding::
printstring STRINGID_PKMNRAGEBUILDING
waitmessage 0x40
return
BattleScript_MoveUsedIsDisabled::
printstring STRINGID_PKMNMOVEISDISABLED
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_SelectingDisabledMove::
printselectionstring STRINGID_PKMNMOVEISDISABLED
endselectionscript
BattleScript_DisabledNoMore::
printstring STRINGID_PKMNMOVEDISABLEDNOMORE
waitmessage 0x40
end2
2017-12-03 00:47:21 +01:00
BattleScript_SelectingDisabledMoveInPalace::
printstring STRINGID_PKMNMOVEISDISABLED
2017-12-03 00:47:21 +01:00
BattleScript_SelectingUnusableMoveInPalace::
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
end
BattleScript_EncoredNoMore::
printstring STRINGID_PKMNENCOREENDED
waitmessage 0x40
end2
BattleScript_DestinyBondTakesLife::
printstring STRINGID_PKMNTOOKFOE
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate ATTACKER
datahpupdate ATTACKER
tryfaintmon ATTACKER, FALSE, NULL
return
BattleScript_SpikesOnAttacker::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate ATTACKER
datahpupdate ATTACKER
2017-12-02 00:03:46 +01:00
call BattleScript_PrintHurtBySpikes
tryfaintmon ATTACKER, FALSE, NULL
2017-12-02 00:03:46 +01:00
tryfaintmon ATTACKER, TRUE, BattleScript_SpikesOnAttackerFainted
return
2017-12-02 00:03:46 +01:00
BattleScript_SpikesOnAttackerFainted::
setbyte sGIVEEXP_STATE, 0x0
getexp ATTACKER
setbyte sMOVEEND_STATE, 0x0
moveend 0x0, 0x0
2017-12-02 14:08:55 +01:00
goto BattleScript_HandleFaintedMon
BattleScript_SpikesOnTarget::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate TARGET
datahpupdate TARGET
2017-12-02 00:03:46 +01:00
call BattleScript_PrintHurtBySpikes
tryfaintmon TARGET, FALSE, NULL
2017-12-02 00:03:46 +01:00
tryfaintmon TARGET, TRUE, BattleScript_SpikesOnTargetFainted
return
2017-12-02 00:03:46 +01:00
BattleScript_SpikesOnTargetFainted::
setbyte sGIVEEXP_STATE, 0x0
getexp TARGET
setbyte sMOVEEND_STATE, 0x0
moveend 0x0, 0x0
2017-12-02 14:08:55 +01:00
goto BattleScript_HandleFaintedMon
BattleScript_SpikesOngBank1::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate GBANK_1
datahpupdate GBANK_1
2017-12-02 00:03:46 +01:00
call BattleScript_PrintHurtBySpikes
tryfaintmon GBANK_1, FALSE, NULL
2017-12-02 00:03:46 +01:00
tryfaintmon GBANK_1, TRUE, BattleScript_SpikesOngBank1Fainted
return
2017-12-02 00:03:46 +01:00
BattleScript_SpikesOngBank1Fainted::
setbyte sGIVEEXP_STATE, 0x0
getexp GBANK_1
setbyte sMOVEEND_STATE, 0x0
moveend 0x0, 0x0
2017-12-02 14:08:55 +01:00
goto BattleScript_HandleFaintedMon
2017-12-02 00:03:46 +01:00
BattleScript_PrintHurtBySpikes::
printstring STRINGID_PKMNHURTBYSPIKES
waitmessage 0x40
return
2017-11-26 17:26:11 +01:00
BattleScript_PerishSongTakesLife::
printstring STRINGID_PKMNPERISHCOUNTFELL
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate ATTACKER
datahpupdate ATTACKER
tryfaintmon ATTACKER, FALSE, NULL
end2
2017-11-26 17:26:11 +01:00
BattleScript_PerishSongCountGoesDown::
printstring STRINGID_PKMNPERISHCOUNTFELL
waitmessage 0x40
end2
BattleScript_AllStatsUp::
2017-12-02 00:03:46 +01:00
jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_AllStatsUpAtk
jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_AllStatsUpAtk
jumpifstat ATTACKER, LESS_THAN, SPEED, 0xC, BattleScript_AllStatsUpAtk
jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_AllStatsUpAtk
jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_AllStatsUpRet
BattleScript_AllStatsUpAtk::
setbyte sFIELD_1B, 0x0
playstatchangeanimation ATTACKER, 0x3E, 0x0
setstatchanger ATK, 1, FALSE
2017-12-02 00:03:46 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpDef
printfromtable gStatUpStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpDef::
setstatchanger DEF, 1, FALSE
2017-12-02 00:03:46 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpeed
printfromtable gStatUpStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpSpeed::
setstatchanger SPEED, 1, FALSE
2017-12-02 00:03:46 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpAtk
printfromtable gStatUpStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpSpAtk::
setstatchanger SPATK, 1, FALSE
2017-12-02 00:03:46 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpDef
printfromtable gStatUpStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpSpDef::
setstatchanger SPDEF, 1, FALSE
2017-12-02 00:03:46 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpRet
printfromtable gStatUpStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpRet::
return
BattleScript_RapidSpinAway::
rapidspinfree
return
BattleScript_WrapFree::
printstring STRINGID_PKMNGOTFREE
waitmessage 0x40
2017-11-25 21:32:17 +01:00
copybyte gBankTarget, sBANK
return
BattleScript_LeechSeedFree::
printstring STRINGID_PKMNSHEDLEECHSEED
waitmessage 0x40
return
BattleScript_SpikesFree::
printstring STRINGID_PKMNBLEWAWAYSPIKES
waitmessage 0x40
return
2017-11-26 17:26:11 +01:00
BattleScript_MonTookFutureAttack::
printstring STRINGID_PKMNTOOKATTACK
waitmessage 0x40
2017-12-03 00:47:21 +01:00
jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_CheckDoomDesireMiss
accuracycheck BattleScript_FutureAttackMiss, MOVE_FUTURE_SIGHT
goto BattleScript_FutureAttackAnimate
BattleScript_CheckDoomDesireMiss::
accuracycheck BattleScript_FutureAttackMiss, MOVE_DOOM_DESIRE
BattleScript_FutureAttackAnimate::
adjustnormaldamage2
2017-12-03 00:47:21 +01:00
jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_FutureHitAnimDoomDesire
playanimation ATTACKER, ANIM_FUTURE_SIGHT_HIT, NULL
2017-12-03 00:47:21 +01:00
goto BattleScript_DoFutureAttackHit
BattleScript_FutureHitAnimDoomDesire::
playanimation ATTACKER, ANIM_DOOM_DESIRE_HIT, NULL
BattleScript_DoFutureAttackHit::
effectivenesssound
hitanimation TARGET
waitstate
healthbarupdate TARGET
datahpupdate TARGET
resultmessage
waitmessage 0x40
tryfaintmon TARGET, FALSE, NULL
2017-12-03 00:47:21 +01:00
atk24 BattleScript_FutureAttackEnd
BattleScript_FutureAttackEnd::
setbyte sMOVEEND_STATE, 0x0
moveend 0x1, 0x0
setbyte sMOVEEND_STATE, 0xB
moveend 0x2, 0xE
setbyte gBattleMoveFlags, 0
end2
2017-12-03 00:47:21 +01:00
BattleScript_FutureAttackMiss::
pause 0x20
setbyte gBattleMoveFlags, 0
orbyte gBattleMoveFlags, MOVESTATUS_FAILED
resultmessage
waitmessage 0x40
setbyte gBattleMoveFlags, 0
end2
BattleScript_NoMovesLeft::
printselectionstring STRINGID_PKMNHASNOMOVESLEFT
endselectionscript
2017-11-26 17:15:28 +01:00
BattleScript_SelectingMoveWithNoPP::
printselectionstring STRINGID_NOPPLEFT
endselectionscript
BattleScript_NoPPForMove::
attackstring
pause 0x20
printstring STRINGID_BUTNOPPLEFT
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_SelectingTormentedMove::
printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT
endselectionscript
2017-12-03 00:47:21 +01:00
BattleScript_MoveUsedIsTormented::
printstring STRINGID_PKMNCANTUSEMOVETORMENT
waitmessage 0x40
goto BattleScript_MoveEnd
2017-12-03 00:47:21 +01:00
BattleScript_SelectingTormentedMoveInPalace::
printstring STRINGID_PKMNCANTUSEMOVETORMENT
2017-12-03 00:47:21 +01:00
goto BattleScript_SelectingUnusableMoveInPalace
2017-11-26 17:15:28 +01:00
BattleScript_SelectingNotAllowedMoveTaunt::
printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT
endselectionscript
BattleScript_MoveUsedIsTaunted::
printstring STRINGID_PKMNCANTUSEMOVETAUNT
waitmessage 0x40
goto BattleScript_MoveEnd
2017-12-03 00:47:21 +01:00
BattleScript_SelectingNotAllowedMoveTauntInPalace::
printstring STRINGID_PKMNCANTUSEMOVETAUNT
2017-12-03 00:47:21 +01:00
goto BattleScript_SelectingUnusableMoveInPalace
BattleScript_WishComesTrue::
2017-12-03 00:47:21 +01:00
trywish 0x1, BattleScript_WishButFullHp
playanimation TARGET, ANIM_WISH_HEAL, NULL
printstring STRINGID_PKMNWISHCAMETRUE
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate TARGET
datahpupdate TARGET
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage 0x40
end2
2017-12-03 00:47:21 +01:00
BattleScript_WishButFullHp::
printstring STRINGID_PKMNWISHCAMETRUE
waitmessage 0x40
pause 0x20
printstring STRINGID_PKMNHPFULL
waitmessage 0x40
end2
BattleScript_IngrainTurnHeal::
playanimation ATTACKER, ANIM_INGRAIN_HEAL, NULL
printstring STRINGID_PKMNABSORBEDNUTRIENTS
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER
datahpupdate ATTACKER
end2
2017-12-03 00:47:21 +01:00
BattleScript_PrintMonIsRooted::
pause 0x20
printstring STRINGID_PKMNANCHOREDITSELF
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_AtkDefDown::
setbyte sFIELD_1B, 0x0
playstatchangeanimation ATTACKER, 0x6, 0xD
playstatchangeanimation ATTACKER, 0x2, 0x9
setstatchanger ATK, 1, TRUE
2017-11-26 11:55:17 +01:00
statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB144
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_82DB144::
playstatchangeanimation ATTACKER, 0x4, 0x9
setstatchanger DEF, 1, TRUE
2017-11-26 11:55:17 +01:00
statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB167
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_82DB167::
return
BattleScript_KnockedOff::
playanimation TARGET, ANIM_ITEM_KNOCKOFF, NULL
printstring STRINGID_PKMNKNOCKEDOFF
waitmessage 0x40
return
BattleScript_MoveUsedIsImprisoned::
printstring STRINGID_PKMNCANTUSEMOVESEALED
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_SelectingImprisionedMove::
printselectionstring STRINGID_PKMNCANTUSEMOVESEALED
endselectionscript
2017-12-03 00:47:21 +01:00
BattleScript_SelectingImprisionedMoveInPalace::
printstring STRINGID_PKMNCANTUSEMOVESEALED
2017-12-03 00:47:21 +01:00
goto BattleScript_SelectingUnusableMoveInPalace
BattleScript_GrudgeTakesPp::
printstring STRINGID_PKMNLOSTPPGRUDGE
waitmessage 0x40
return
BattleScript_MagicCoatBounce::
attackstring
ppreduce
pause 0x20
printstring STRINGID_PKMNMOVEBOUNCED
waitmessage 0x40
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000
2017-11-26 21:04:00 +01:00
setmagiccoattarget ATTACKER
return
BattleScript_SnatchedMove::
attackstring
ppreduce
snatchsetbanks
playanimation TARGET, ANIM_SNATCH_MOVE, NULL
printstring STRINGID_PKMNSNATCHEDMOVE
waitmessage 0x40
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000
atk5F
return
BattleScript_EnduredMsg::
printstring STRINGID_PKMNENDUREDHIT
waitmessage 0x40
return
BattleScript_OneHitKOMsg::
printstring STRINGID_ONEHITKO
waitmessage 0x40
return
BattleScript_SAtkDown2::
setbyte sFIELD_1B, 0x0
playstatchangeanimation ATTACKER, 0x10, 0xB
setstatchanger SPATK, 2, TRUE
2017-11-26 11:55:17 +01:00
statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB1FE
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB1FE
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_82DB1FE::
return
BattleScript_FocusPunchSetUp::
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
playanimation ATTACKER, ANIM_x14, NULL
printstring STRINGID_PKMNTIGHTENINGFOCUS
waitmessage 0x40
end2
BattleScript_MoveUsedIsAsleep::
printstring STRINGID_PKMNFASTASLEEP
waitmessage 0x40
statusanimation ATTACKER
goto BattleScript_MoveEnd
BattleScript_MoveUsedWokeUp::
bicword gHitMarker, HITMARKER_x10
printfromtable gWokeUpStringIds
waitmessage 0x40
updatestatusicon ATTACKER
return
2017-11-26 17:26:11 +01:00
BattleScript_MonWokeUpInUproar::
printstring STRINGID_PKMNWOKEUPINUPROAR
waitmessage 0x40
updatestatusicon ATTACKER
end2
BattleScript_PoisonTurnDmg::
printstring STRINGID_PKMNHURTBYPOISON
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_DoStatusTurnDmg::
statusanimation ATTACKER
2017-12-02 00:03:46 +01:00
BattleScript_DoTurnDmg::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate ATTACKER
datahpupdate ATTACKER
tryfaintmon ATTACKER, FALSE, NULL
2017-12-02 00:03:46 +01:00
atk24 BattleScript_DoTurnDmgEnd
BattleScript_DoTurnDmgEnd::
end2
BattleScript_BurnTurnDmg::
printstring STRINGID_PKMNHURTBYBURN
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_DoStatusTurnDmg
BattleScript_MoveUsedIsFrozen::
printstring STRINGID_PKMNISFROZEN
waitmessage 0x40
statusanimation ATTACKER
goto BattleScript_MoveEnd
BattleScript_MoveUsedUnfroze::
printfromtable gGotDefrostedStringIds
waitmessage 0x40
updatestatusicon ATTACKER
return
BattleScript_DefrostedViaFireMove::
printstring STRINGID_PKMNWASDEFROSTED
waitmessage 0x40
updatestatusicon TARGET
return
BattleScript_MoveUsedIsParalyzed::
printstring STRINGID_PKMNISPARALYZED
waitmessage 0x40
statusanimation ATTACKER
2017-11-26 21:04:00 +01:00
cancelmultiturnmoves ATTACKER
goto BattleScript_MoveEnd
BattleScript_MoveUsedFlinched::
printstring STRINGID_PKMNFLINCHED
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:26:11 +01:00
BattleScript_PrintUproarOverTurns::
printfromtable gUproarOverTurnStringIds
waitmessage 0x40
end2
BattleScript_ThrashConfuses::
chosenstatus2animation ATTACKER, STATUS2_CONFUSION
printstring STRINGID_PKMNFATIGUECONFUSION
waitmessage 0x40
end2
BattleScript_MoveUsedIsConfused::
printstring STRINGID_PKMNISCONFUSED
waitmessage 0x40
status2animation ATTACKER, STATUS2_CONFUSION
2017-12-02 00:03:46 +01:00
jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_MoveUsedIsConfusedRet
BattleScript_DoSelfConfusionDmg::
2017-11-26 21:04:00 +01:00
cancelmultiturnmoves ATTACKER
adjustnormaldamage2
printstring STRINGID_ITHURTCONFUSION
waitmessage 0x40
effectivenesssound
hitanimation ATTACKER
waitstate
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate ATTACKER
datahpupdate ATTACKER
resultmessage
waitmessage 0x40
tryfaintmon ATTACKER, FALSE, NULL
goto BattleScript_MoveEnd
2017-12-02 00:03:46 +01:00
BattleScript_MoveUsedIsConfusedRet::
return
BattleScript_MoveUsedIsConfusedNoMore::
printstring STRINGID_PKMNHEALEDCONFUSION
waitmessage 0x40
return
BattleScript_PrintPayDayMoneyString::
printstring STRINGID_PKMNPICKEDUPITEM
waitmessage 0x40
return
BattleScript_WrapTurnDmg::
playanimation ATTACKER, ANIM_TURN_TRAP, sANIM_ARG1
printstring STRINGID_PKMNHURTBY
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_DoTurnDmg
BattleScript_WrapEnds::
printstring STRINGID_PKMNFREEDFROM
waitmessage 0x40
end2
BattleScript_MoveUsedIsInLove::
printstring STRINGID_PKMNINLOVE
waitmessage 0x40
status2animation ATTACKER, STATUS2_INFATUATION
return
BattleScript_MoveUsedIsParalyzedCantAttack::
printstring STRINGID_PKMNIMMOBILIZEDBYLOVE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_NightmareTurnDmg::
printstring STRINGID_PKMNLOCKEDINNIGHTMARE
waitmessage 0x40
status2animation ATTACKER, STATUS2_NIGHTMARE
2017-12-02 00:03:46 +01:00
goto BattleScript_DoTurnDmg
BattleScript_CurseTurnDmg::
printstring STRINGID_PKMNAFFLICTEDBYCURSE
waitmessage 0x40
status2animation ATTACKER, STATUS2_CURSED
2017-12-02 00:03:46 +01:00
goto BattleScript_DoTurnDmg
BattleScript_TargetPRLZHeal::
printstring STRINGID_PKMNHEALEDPARALYSIS
waitmessage 0x40
updatestatusicon TARGET
return
BattleScript_MoveEffectSleep::
statusanimation EFFECT_BANK
printfromtable gFellAsleepStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_UpdateEffectStatusIconRet::
updatestatusicon EFFECT_BANK
waitstate
return
BattleScript_YawnMakesAsleep::
statusanimation EFFECT_BANK
printstring STRINGID_PKMNFELLASLEEP
waitmessage 0x40
updatestatusicon EFFECT_BANK
waitstate
makevisible EFFECT_BANK
end2
BattleScript_MoveEffectPoison::
statusanimation EFFECT_BANK
printfromtable gGotPoisonedStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectBurn::
statusanimation EFFECT_BANK
printfromtable gGotBurnedStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectFreeze::
statusanimation EFFECT_BANK
printfromtable gGotFrozenStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectParalysis::
statusanimation EFFECT_BANK
printfromtable gGotParalyzedStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectUproar::
printstring STRINGID_PKMNCAUSEDUPROAR
waitmessage 0x40
return
BattleScript_MoveEffectToxic::
statusanimation EFFECT_BANK
printstring STRINGID_PKMNBADLYPOISONED
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectPayDay::
printstring STRINGID_COINSSCATTERED
waitmessage 0x40
return
BattleScript_MoveEffectWrap::
printfromtable gWrappedStringIds
waitmessage 0x40
return
BattleScript_MoveEffectConfusion::
chosenstatus2animation EFFECT_BANK, STATUS2_CONFUSION
printstring STRINGID_PKMNWASCONFUSED
waitmessage 0x40
return
BattleScript_MoveEffectRecoil33::
2017-11-26 11:55:17 +01:00
jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil33
2017-11-26 01:19:57 +01:00
jumpifability ATTACKER, ABILITY_ROCK_HEAD, BattleScript_Recoil33End
BattleScript_DoRecoil33::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate ATTACKER
datahpupdate ATTACKER
printstring STRINGID_PKMNHITWITHRECOIL
waitmessage 0x40
tryfaintmon ATTACKER, FALSE, NULL
2017-11-26 01:19:57 +01:00
BattleScript_Recoil33End::
return
BattleScript_ItemSteal::
playanimation TARGET, ANIM_ITEM_STEAL, NULL
printstring STRINGID_PKMNSTOLEITEM
waitmessage 0x40
return
BattleScript_DrizzleActivates::
pause 0x20
printstring STRINGID_PKMNMADEITRAIN
waitstate
playanimation BANK0, ANIM_RAIN_CONTINUES, NULL
2017-11-26 01:19:57 +01:00
call BattleScript_WeatherFormChanges
end3
BattleScript_SpeedBoostActivates::
playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1
printstring STRINGID_PKMNRAISEDSPEED
waitmessage 0x40
end3
BattleScript_TraceActivates::
pause 0x20
printstring STRINGID_PKMNTRACED
waitmessage 0x40
end3
BattleScript_RainDishActivates::
printstring STRINGID_PKMNSXRESTOREDHPALITTLE2
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER
datahpupdate ATTACKER
end3
BattleScript_SandstreamActivates::
pause 0x20
printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM
waitstate
playanimation BANK0, ANIM_SANDSTORM_CONTINUES, NULL
2017-11-26 01:19:57 +01:00
call BattleScript_WeatherFormChanges
end3
BattleScript_ShedSkinActivates::
printstring STRINGID_PKMNSXCUREDYPROBLEM
waitmessage 0x40
updatestatusicon ATTACKER
end3
2017-11-26 01:19:57 +01:00
BattleScript_WeatherFormChanges::
setbyte sBANK, 0x0
2017-11-26 01:19:57 +01:00
BattleScript_WeatherFormChangesLoop::
trycastformdatachange
addbyte sBANK, 0x1
2017-11-26 01:19:57 +01:00
jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_WeatherFormChangesLoop
return
BattleScript_CastformChange::
call BattleScript_82DB4AF
end3
BattleScript_82DB4AF::
docastformchangeanimation
waitstate
printstring STRINGID_PKMNTRANSFORMED
waitmessage 0x40
return
BattleScript_82DB4B8::
call BattleScript_82DB4BE
end3
BattleScript_82DB4BE::
pause 0x20
BattleScript_82DB4C1::
setbyte gBankTarget, 0x0
setstatchanger ATK, 1, TRUE
BattleScript_82DB4CD::
trygetintimidatetarget BattleScript_82DB51B
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DB510
jumpifability TARGET, ABILITY_CLEAR_BODY, BattleScript_82DB51C
jumpifability TARGET, ABILITY_HYPER_CUTTER, BattleScript_82DB51C
jumpifability TARGET, ABILITY_WHITE_SMOKE, BattleScript_82DB51C
statbuffchange 0x21, BattleScript_82DB510
jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DB510
setgraphicalstatchangevalues
playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1
printstring STRINGID_PKMNCUTSATTACKWITH
waitmessage 0x40
BattleScript_82DB510::
addbyte gBankTarget, 0x1
goto BattleScript_82DB4CD
BattleScript_82DB51B::
return
BattleScript_82DB51C::
pause 0x20
printstring STRINGID_PREVENTEDFROMWORKING
waitmessage 0x40
goto BattleScript_82DB510
BattleScript_DroughtActivates::
pause 0x20
printstring STRINGID_PKMNSXINTENSIFIEDSUN
waitstate
playanimation BANK0, ANIM_SUN_CONTINUES, NULL
2017-11-26 01:19:57 +01:00
call BattleScript_WeatherFormChanges
end3
BattleScript_TookAttack::
attackstring
pause 0x20
printstring STRINGID_PKMNSXTOOKATTACK
waitmessage 0x40
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED
return
BattleScript_SturdyPreventsOHKO::
pause 0x20
printstring STRINGID_PKMNPROTECTEDBY
pause 0x40
goto BattleScript_MoveEnd
BattleScript_DampStopsExplosion::
pause 0x20
printstring STRINGID_PKMNPREVENTSUSAGE
pause 0x40
goto BattleScript_MoveEnd
BattleScript_MoveHPDrain_PPLoss::
ppreduce
BattleScript_MoveHPDrain::
attackstring
pause 0x20
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate TARGET
datahpupdate TARGET
printstring STRINGID_PKMNRESTOREDHPUSING
waitmessage 0x40
orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_MonMadeMoveUseless_PPLoss::
ppreduce
2017-11-26 17:15:28 +01:00
BattleScript_MonMadeMoveUseless::
attackstring
pause 0x20
printstring STRINGID_PKMNSXMADEYUSELESS
waitmessage 0x40
orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED
goto BattleScript_MoveEnd
BattleScript_FlashFireBoost_PPLoss::
ppreduce
BattleScript_FlashFireBoost::
attackstring
pause 0x20
printfromtable gFlashFireStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
2017-12-03 00:47:21 +01:00
BattleScript_AbilityPreventsPhasingOut::
pause 0x20
printstring STRINGID_PKMNANCHORSITSELFWITH
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_AbilityNoStatLoss::
pause 0x20
printstring STRINGID_PKMNPREVENTSSTATLOSSWITH
waitmessage 0x40
return
BattleScript_BRNPrevention::
pause 0x20
printfromtable gBRNPreventionStringIds
waitmessage 0x40
return
BattleScript_PRLZPrevention::
pause 0x20
printfromtable gPRLZPreventionStringIds
waitmessage 0x40
return
BattleScript_PSNPrevention::
pause 0x20
printfromtable gPSNPreventionStringIds
waitmessage 0x40
return
BattleScript_ObliviousPreventsAttraction::
pause 0x20
printstring STRINGID_PKMNPREVENTSROMANCEWITH
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_FlinchPrevention::
pause 0x20
printstring STRINGID_PKMNSXPREVENTSFLINCHING
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_OwnTempoPrevents::
pause 0x20
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_SoundproofProtected::
attackstring
ppreduce
pause 0x20
printstring STRINGID_PKMNSXBLOCKSY
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_AbilityNoSpecificStatLoss::
pause 0x20
printstring STRINGID_PKMNSXPREVENTSYLOSS
waitmessage 0x40
setbyte cMULTISTRING_CHOOSER, 0x3
return
BattleScript_StickyHoldActivates::
pause 0x20
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_ColorChangeActivates::
printstring STRINGID_PKMNCHANGEDTYPEWITH
waitmessage 0x40
return
BattleScript_RoughSkinActivates::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate ATTACKER
datahpupdate ATTACKER
printstring STRINGID_PKMNHURTSWITH
waitmessage 0x40
tryfaintmon ATTACKER, FALSE, NULL
return
BattleScript_CuteCharmActivates::
status2animation ATTACKER, STATUS2_INFATUATION
printstring STRINGID_PKMNSXINFATUATEDY
waitmessage 0x40
return
BattleScript_ApplySecondaryEffect::
waitstate
seteffectsecondary
return
BattleScript_SynchronizeActivates::
waitstate
seteffectprimary
return
BattleScript_NoItemSteal::
pause 0x20
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
waitmessage 0x40
return
2017-11-26 17:15:28 +01:00
BattleScript_AbilityCuredStatus::
printstring STRINGID_PKMNSXCUREDITSYPROBLEM
waitmessage 0x40
updatestatusicon SCRIPTING_BANK
return
BattleScript_82DB695::
printstring STRINGID_PKMNIGNORESASLEEP
waitmessage 0x40
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
end
2017-11-26 17:15:28 +01:00
BattleScript_IgnoresAndUsesRandomMove::
printstring STRINGID_PKMNIGNOREDORDERS
waitmessage 0x40
2017-12-02 00:03:46 +01:00
jumptorandomattack FALSE
BattleScript_MoveUsedLoafingAround::
jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x4, BattleScript_82DB6C7
setbyte gBattleCommunication, 0x0
2017-11-26 21:04:00 +01:00
various24 ATTACKER
setbyte cMULTISTRING_CHOOSER, 0x4
BattleScript_82DB6C7::
printfromtable gInobedientStringIds
waitmessage 0x40
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
end
2017-11-26 17:15:28 +01:00
BattleScript_IgnoresAndFallsAsleep::
printstring STRINGID_PKMNBEGANTONAP
waitmessage 0x40
setmoveeffect EFFECT_SLEEP | AFFECTS_USER
seteffectprimary
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
end
BattleScript_82DB6F0::
printstring STRINGID_PKMNWONTOBEY
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_DoSelfConfusionDmg
BattleScript_SubstituteFade::
playanimation TARGET, ANIM_SUBSTITUTE_FADE, NULL
printstring STRINGID_PKMNSUBSTITUTEFADED
return
BattleScript_BerryCurePrlzEnd2::
call BattleScript_BerryCureParRet
end2
BattleScript_BerryCureParRet::
playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMCUREDPARALYSIS
waitmessage 0x40
updatestatusicon SCRIPTING_BANK
removeitem SCRIPTING_BANK
return
BattleScript_BerryCurePsnEnd2::
call BattleScript_BerryCurePsnRet
end2
BattleScript_BerryCurePsnRet::
playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMCUREDPOISON
waitmessage 0x40
updatestatusicon SCRIPTING_BANK
removeitem SCRIPTING_BANK
return
BattleScript_BerryCureBrnEnd2::
call BattleScript_BerryCureBrnRet
end2
BattleScript_BerryCureBrnRet::
playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMHEALEDBURN
waitmessage 0x40
updatestatusicon SCRIPTING_BANK
removeitem SCRIPTING_BANK
return
BattleScript_BerryCureFrzEnd2::
call BattleScript_BerryCureFrzRet
end2
BattleScript_BerryCureFrzRet::
playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMDEFROSTEDIT
waitmessage 0x40
updatestatusicon SCRIPTING_BANK
removeitem SCRIPTING_BANK
return
BattleScript_BerryCureSlpEnd2::
call BattleScript_BerryCureSlpRet
end2
BattleScript_BerryCureSlpRet::
playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMWOKEIT
waitmessage 0x40
updatestatusicon SCRIPTING_BANK
removeitem SCRIPTING_BANK
return
BattleScript_BerryCureConfusionEnd2::
call BattleScript_BerryCureConfusionRet
end2
BattleScript_BerryCureConfusionRet::
playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMSNAPPEDOUT
waitmessage 0x40
removeitem SCRIPTING_BANK
return
BattleScript_BerryCureChosenStatusEnd2::
call BattleScript_BerryCureChosenStatusRet
end2
BattleScript_BerryCureChosenStatusRet::
playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL
printfromtable gBerryEffectStringIds
waitmessage 0x40
updatestatusicon SCRIPTING_BANK
removeitem SCRIPTING_BANK
return
BattleScript_WhiteHerbEnd2::
call BattleScript_WhiteHerbRet
end2
BattleScript_WhiteHerbRet::
playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDSTATUS
waitmessage 0x40
removeitem SCRIPTING_BANK
return
BattleScript_ItemHealHP_RemoveItem::
playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER
datahpupdate ATTACKER
removeitem ATTACKER
end2
BattleScript_BerryPPHealEnd2::
playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDPP
waitmessage 0x40
removeitem ATTACKER
end2
BattleScript_ItemHealHP_End2::
call BattleScript_ItemHealHP_Ret
end2
BattleScript_ItemHealHP_Ret::
playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER
datahpupdate ATTACKER
return
2017-11-26 17:15:28 +01:00
BattleScript_SelectingNotAllowedMoveChoiceItem::
printselectionstring STRINGID_ITEMALLOWSONLYYMOVE
endselectionscript
BattleScript_HangedOnMsg::
playanimation TARGET, ANIM_HANGED_ON, NULL
printstring STRINGID_PKMNHUNGONWITHX
waitmessage 0x40
return
BattleScript_BerryConfuseHealEnd2::
playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER
datahpupdate ATTACKER
printstring STRINGID_FORXCOMMAYZ
waitmessage 0x40
setmoveeffect EFFECT_CONFUSION | AFFECTS_USER
seteffectprimary
removeitem ATTACKER
end2
BattleScript_BerryStatRaiseEnd2::
playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL
2017-11-26 11:55:17 +01:00
statbuffchange AFFECTS_USER | 0x1, BattleScript_82DB85B
BattleScript_82DB85B::
setbyte cMULTISTRING_CHOOSER, 0x4
call BattleScript_StatUp
removeitem ATTACKER
end2
BattleScript_BerryFocusEnergyEnd2::
playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL
printstring STRINGID_PKMNUSEDXTOGETPUMPED
waitmessage 0x40
removeitem ATTACKER
end2
BattleScript_ActionSelectionItemsCantBeUsed::
printselectionstring STRINGID_ITEMSCANTBEUSEDNOW
endselectionscript
BattleScript_82DB87D::
printstring STRINGID_EMPTYSTRING3
return
BattleScript_82DB881::
setbyte gBattleCommunication + 1, 0x0
BattleScript_82DB887::
2017-11-26 21:04:00 +01:00
various8 ATTACKER
jumpifbyte NOT_EQUAL, gBattleCommunication, 0x1, BattleScript_82DB89D
printfromtable gStringIds_85CCF0A
waitmessage 0x40
BattleScript_82DB89D::
addbyte gBattleCommunication + 1, 0x1
2017-11-25 21:32:17 +01:00
jumpifbytenotequal gBattleCommunication + 1, gNoOfAllBanks, BattleScript_82DB887
setbyte gBattleCommunication, 0x0
setbyte gBattleCommunication + 1, 0x0
end2
BattleScript_82DB8BE::
2017-11-26 21:04:00 +01:00
waitcry ATTACKER
various21 ATTACKER
playse 0x109
pause 0x8
playse 0x109
2017-11-26 21:04:00 +01:00
various14 ATTACKER
various16 8
various17 8
pause 0x40
2017-11-26 21:04:00 +01:00
various15 ATTACKER
various22 ATTACKER
end2
BattleScript_82DB8E0::
playse SE_PINPON
2017-11-26 21:04:00 +01:00
various14 ATTACKER
various16 TARGET
various17 TARGET
pause 0x40
2017-11-26 21:04:00 +01:00
various15 ATTACKER
end2
BattleScript_82DB8F3::
makevisible 11
waitstate
makevisible OPPONENT1
waitstate
2017-11-26 21:04:00 +01:00
various21 ATTACKER
playse 0x109
pause 0x8
playse 0x109
pause 0x40
2017-11-26 21:04:00 +01:00
various14 ATTACKER
various16 ATTACKER
various17 ATTACKER
pause 0x40
setbyte gBattleCommunication, 0x0
2017-11-26 21:04:00 +01:00
various9 ATTACKER
pause 0x40
2017-11-26 21:04:00 +01:00
various9 ATTACKER
various16 EFFECT_BANK
various17 EFFECT_BANK
various9 ATTACKER
various16 GBANK_1
various17 GBANK_1
various9 ATTACKER
various16 0x4
various17 0x4
various9 ATTACKER
jumpifbyte EQUAL, gBattleCommunication + 1, 0x3, BattleScript_82DB973
jumpifbyte EQUAL, gBattleCommunication + 1, 0x4, BattleScript_82DB992
2017-11-26 21:04:00 +01:00
various16 0x5
various17 0x5
various9 ATTACKER
various15 ATTACKER
printstring STRINGID_DEFEATEDOPPONENTBYREFEREE
waitmessage 0x40
playfaintcry OPPONENT1
2017-11-26 21:04:00 +01:00
waitcry ATTACKER
dofaintanimation OPPONENT1
cleareffectsonfaint OPPONENT1
2017-11-26 21:04:00 +01:00
various10 ATTACKER
end2
BattleScript_82DB973::
2017-11-26 21:04:00 +01:00
various16 0x6
various17 0x6
various9 ATTACKER
various15 ATTACKER
printstring STRINGID_LOSTTOOPPONENTBYREFEREE
waitmessage 0x40
playfaintcry 11
2017-11-26 21:04:00 +01:00
waitcry ATTACKER
dofaintanimation 11
cleareffectsonfaint 11
2017-11-26 21:04:00 +01:00
various11 ATTACKER
end2
BattleScript_82DB992::
2017-11-26 21:04:00 +01:00
various16 BANK0
various17 BANK0
various9 ATTACKER
various15 ATTACKER
printstring STRINGID_TIEDOPPONENTBYREFEREE
waitmessage 0x40
playfaintcry 11
2017-11-26 21:04:00 +01:00
waitcry ATTACKER
dofaintanimation 11
cleareffectsonfaint 11
playfaintcry OPPONENT1
2017-11-26 21:04:00 +01:00
waitcry ATTACKER
dofaintanimation OPPONENT1
cleareffectsonfaint OPPONENT1
2017-11-26 21:04:00 +01:00
various12 ATTACKER
end2
2017-11-26 17:26:11 +01:00
BattleScript_AskIfWantsToForfeitMatch::
printselectionstring STRINGID_QUESTIONFORFEITMATCH
2017-11-26 21:04:00 +01:00
forfeityesnobox ATTACKER
endselectionscript
2017-12-03 00:47:21 +01:00
BattleScript_PrintPlayerForfeited::
printstring STRINGID_FORFEITEDMATCH
waitmessage 0x40
end2
2017-12-03 00:47:21 +01:00
BattleScript_PrintPlayerForfeitedLinkBattle::
printstring STRINGID_FORFEITEDMATCH
waitmessage 0x40
atk57
waitmessage 0x40
end2