mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-17 20:17:38 +01:00
5537 lines
152 KiB
ArmAsm
5537 lines
152 KiB
ArmAsm
#include "constants/battle.h"
|
|
#include "constants/pokemon.h"
|
|
#include "constants/battle_script_commands.h"
|
|
#include "constants/battle_anim.h"
|
|
#include "constants/battle_string_ids.h"
|
|
#include "constants/abilities.h"
|
|
#include "constants/moves.h"
|
|
#include "constants/songs.h"
|
|
.include "asm/macros.inc"
|
|
.include "asm/macros/battle_script.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.section script_data, "aw", %progbits
|
|
|
|
.align 2
|
|
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_EffectHealBlock
|
|
.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
|
|
.4byte BattleScript_EffectSleepTalk
|
|
.4byte BattleScript_EffectDestinyBond
|
|
.4byte BattleScript_EffectFlail
|
|
.4byte BattleScript_EffectSpite
|
|
.4byte BattleScript_EffectFalseSwipe
|
|
.4byte BattleScript_EffectHealBell
|
|
.4byte BattleScript_EffectAlwaysCrit
|
|
.4byte BattleScript_EffectTripleKick
|
|
.4byte BattleScript_EffectThief
|
|
.4byte BattleScript_EffectMeanLook
|
|
.4byte BattleScript_EffectNightmare
|
|
.4byte BattleScript_EffectMinimize
|
|
.4byte BattleScript_EffectCurse
|
|
.4byte BattleScript_EffectHealingWish
|
|
.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_EffectCaptivate
|
|
.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_EffectFellStinger
|
|
.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_EffectWorrySeed
|
|
.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_EffectHitEscape
|
|
.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_EffectPlaceholder
|
|
.4byte BattleScript_EffectWaterSport
|
|
.4byte BattleScript_EffectCalmMind
|
|
.4byte BattleScript_EffectDragonDance
|
|
.4byte BattleScript_EffectCamouflage
|
|
.4byte BattleScript_EffectPledge
|
|
.4byte BattleScript_EffectFling
|
|
.4byte BattleScript_EffectNaturalGift
|
|
.4byte BattleScript_EffectWakeUpSlap
|
|
.4byte BattleScript_EffectWringOut
|
|
.4byte BattleScript_EffectHex
|
|
.4byte BattleScript_EffectAssurance
|
|
.4byte BattleScript_EffectTrump_card
|
|
.4byte BattleScript_EffectAcrobatics
|
|
.4byte BattleScript_EffectHeatCrash
|
|
.4byte BattleScript_EffectPunishment
|
|
.4byte BattleScript_EffectStoredPower
|
|
.4byte BattleScript_EffectElectroBall
|
|
.4byte BattleScript_EffectGyroBall
|
|
.4byte BattleScript_EffectEchoedVoice
|
|
.4byte BattleScript_EffectPayback
|
|
.4byte BattleScript_EffectRound
|
|
.4byte BattleScript_EffectBrine
|
|
.4byte BattleScript_EffectVenoshock
|
|
.4byte BattleScript_EffectRetalitate
|
|
.4byte BattleScript_EffectBulldoze
|
|
.4byte BattleScript_EffectFoulPlay
|
|
.4byte BattleScript_EffectPsyshock
|
|
.4byte BattleScript_EffectRoost
|
|
.4byte BattleScript_EffectGravity
|
|
.4byte BattleScript_EffectMircleEye
|
|
.4byte BattleScript_EffectTailwind
|
|
.4byte BattleScript_EffectEmbargo
|
|
.4byte BattleScript_EffectAquaRing
|
|
.4byte BattleScript_EffectTrickRoom
|
|
.4byte BattleScript_EffectWonderRoom
|
|
.4byte BattleScript_EffectMagicRoom
|
|
.4byte BattleScript_EffectMagnetRise
|
|
.4byte BattleScript_EffectToxicSpikes
|
|
.4byte BattleScript_EffectGastroAcid
|
|
.4byte BattleScript_EffectStealthRock
|
|
.4byte BattleScript_EffectTelekinesis
|
|
.4byte BattleScript_EffectPowerSwap
|
|
.4byte BattleScript_EffectGuardSwap
|
|
.4byte BattleScript_EffectHeartSwap
|
|
.4byte BattleScript_EffectPowerSplit
|
|
.4byte BattleScript_EffectGuardSplit
|
|
.4byte BattleScript_EffectStickyWeb
|
|
.4byte BattleScript_EffectMetalBurst
|
|
.4byte BattleScript_EffectLuckyChant
|
|
.4byte BattleScript_EffectSuckerPunch
|
|
.4byte BattleScript_EffectSpecialDefenseDownHit2
|
|
.4byte BattleScript_EffectSimpleBeam
|
|
.4byte BattleScript_EffectEntrainment
|
|
.4byte BattleScript_EffectHealPulse
|
|
.4byte BattleScript_EffectQuash
|
|
.4byte BattleScript_EffectIonDeluge
|
|
.4byte BattleScript_EffectFreezeDry
|
|
.4byte BattleScript_EffectTopsyTurvy
|
|
.4byte BattleScript_EffectMistyTerrain
|
|
.4byte BattleScript_EffectGrassyTerrain
|
|
.4byte BattleScript_EffectElectricTerrain
|
|
.4byte BattleScript_EffectPsychicTerrain
|
|
.4byte BattleScript_EffectAttackAccUp
|
|
.4byte BattleScript_EffectAttackSpAttackUp
|
|
.4byte BattleScript_EffectHurricane
|
|
.4byte BattleScript_EffectTwoTypedMove
|
|
.4byte BattleScript_EffectMeFirst
|
|
|
|
BattleScript_EffectMeFirst:
|
|
attackcanceler
|
|
attackstring
|
|
trymefirst BattleScript_ButItFailedPpReduce
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sB_ANIM_TURN, 0x0
|
|
setbyte sB_ANIM_TARGETS_HIT, 0x0
|
|
jumptorandomattack TRUE
|
|
|
|
BattleScript_EffectAttackSpAttackUp:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_AttackSpAttackUpDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPATK, 0xC, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_AttackSpAttackUpDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0x0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_AttackSpAttackUpTrySpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackSpAttackUpTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_AttackSpAttackUpTrySpDef::
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_AttackSpAttackUpEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackSpAttackUpEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_AttackSpAttackUpEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackAccUp:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_AttackAccUpDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ACC, 0xC, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_AttackAccUpDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0x0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_AttackAccUpTrySpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackAccUpTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_AttackAccUpTrySpDef::
|
|
setstatchanger STAT_ACC, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_AttackAccUpEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackAccUpEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_AttackAccUpEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMistyTerrain:
|
|
BattleScript_EffectGrassyTerrain:
|
|
BattleScript_EffectElectricTerrain:
|
|
BattleScript_EffectPsychicTerrain:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setterrain BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gTerrainStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTopsyTurvy:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_DEF, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPATK, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPDEF, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPEED, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ACC, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_EVASION, 6, BattleScript_ButItFailed
|
|
BattleScript_EffectTopsyTurvyWorks:
|
|
attackanimation
|
|
waitanimation
|
|
invertstatstages BS_TARGET
|
|
printstring STRINGID_TOPSYTURVYSWITCHEDSTATS
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectIonDeluge:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
orword gFieldStatuses, STATUS_FIELD_ION_DELUGE
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_IONDELUGEON
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectQuash:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
tryquash BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_QUASHSUCCESS
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHealPulse:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
tryhealpulse BS_TARGET, BattleScript_AlreadyAtFullHp
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectEntrainment:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
tryentrainment BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setlastusedability BS_TARGET
|
|
printstring STRINGID_PKMNACQUIREDABILITY
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSimpleBeam:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
setabilitysimple BS_TARGET, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNACQUIREDSIMPLE
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSuckerPunch:
|
|
attackcanceler
|
|
suckerpunchcheck BattleScript_ButItFailedAtkStringPpReduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
goto BattleScript_HitFromAtkString
|
|
|
|
BattleScript_EffectLuckyChant:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setluckychant BS_ATTACKER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_SHIELDEDFROMCRITICALHITS
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMetalBurst:
|
|
attackcanceler
|
|
metalburstdamagecalculator BattleScript_ButItFailedAtkStringPpReduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectHealingWish:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
attackanimation
|
|
waitanimation
|
|
instanthpdrop BS_ATTACKER
|
|
setatkhptozero
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
jumpifcantswitch ATK4F_DONT_CHECK_STATUSES | BS_ATTACKER, BattleScript_EffectHealingWishEnd
|
|
openpartyscreen 0x1, BattleScript_EffectHealingWishEnd
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
switchhandleorder BS_ATTACKER, 0x2
|
|
returnatktoball
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_ATTACKER, TRUE
|
|
waitstate
|
|
setbyte cMULTISTRING_CHOOSER 0
|
|
jumpifnotchosenmove MOVE_LUNAR_DANCE BattleScript_EffectHealingWishNewMon
|
|
setbyte cMULTISTRING_CHOOSER 1
|
|
restorepp BS_ATTACKER
|
|
BattleScript_EffectHealingWishNewMon:
|
|
printfromtable gHealingWishStringIds
|
|
waitmessage 0x40
|
|
playanimation BS_ATTACKER, B_ANIM_WISH_HEAL, NULL
|
|
waitanimation
|
|
dmgtomaxattackerhp
|
|
manipulatedamage ATK80_DMG_CHANGE_SIGN
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
clearstatus BS_ATTACKER
|
|
waitstate
|
|
updatestatusicon BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_HEALINGWISHHEALED
|
|
waitmessage 0x40
|
|
switchineffects BS_ATTACKER
|
|
BattleScript_EffectHealingWishEnd:
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x0, 0x0
|
|
end
|
|
|
|
BattleScript_EffectWorrySeed:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
tryworryseed BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNACQUIREDABILITY
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPowerSplit:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
averagestats STAT_ATK
|
|
averagestats STAT_SPATK
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_SHAREDITSPOWER
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGuardSplit:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
averagestats STAT_DEF
|
|
averagestats STAT_SPDEF
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_SHAREDITSGUARD
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHeartSwap:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
swapstatstages STAT_ATK
|
|
swapstatstages STAT_DEF
|
|
swapstatstages STAT_SPEED
|
|
swapstatstages STAT_SPATK
|
|
swapstatstages STAT_SPDEF
|
|
swapstatstages STAT_EVASION
|
|
swapstatstages STAT_ACC
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSWITCHEDSTATCHANGES
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPowerSwap:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
swapstatstages STAT_ATK
|
|
swapstatstages STAT_SPATK
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSWITCHEDSTATCHANGES
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGuardSwap:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
swapstatstages STAT_DEF
|
|
swapstatstages STAT_SPDEF
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSWITCHEDSTATCHANGES
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTelekinesis:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
attackstring
|
|
ppreduce
|
|
settelekinesis BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNIDENTIFIED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectStealthRock:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setstealthrock BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_POINTEDSTONESFLOAT
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectStickyWeb:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setstickyweb BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_STICKYWEBUSED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGastroAcid:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
setgastroacid BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSABILITYSUPPRESSED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectToxicSpikes:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
settoxicspikes BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_POISONSPIKESSCATTERED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMagnetRise:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setuserstatus3 STATUS3_MAGNET_RISE BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNLEVITATEDONELECTROMAGNETISM
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTrickRoom:
|
|
BattleScript_EffectWonderRoom:
|
|
BattleScript_EffectMagicRoom:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setroom
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gRoomsStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAquaRing:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setuserstatus3 STATUS3_AQUA_RING BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSURROUNDEDWITHVEILOFWATER
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectEmbargo:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
setembargo BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNIDENTIFIED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTailwind:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
settailwind BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_TAILWINDBLEW
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMircleEye:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
setmiracleeye BattleScript_ButItFailed
|
|
goto BattleScript_IdentifiedFoe
|
|
|
|
BattleScript_EffectGravity:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setgravity BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_GRAVITYINTENSIFIED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRoost:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_TARGET
|
|
setroost
|
|
goto BattleScript_PresentHealTarget
|
|
|
|
BattleScript_EffectCaptivate:
|
|
setstatchanger STAT_SPATK, 2, TRUE
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
|
|
jumpifoppositegenders BattleScript_CaptivateCheckAcc
|
|
goto BattleScript_ButItFailedAtkStringPpReduce
|
|
BattleScript_CaptivateCheckAcc:
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
goto BattleScript_StatDownFromAttackString
|
|
|
|
BattleScript_EffectHealBlock:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
sethealblock BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNPREVENTEDFROMHEALING
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHitEscape:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage 0x40
|
|
resultmessage
|
|
waitmessage 0x40
|
|
jumpifmovehadnoeffect BattleScript_MoveEnd
|
|
seteffectwithchance
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x0, 0x0
|
|
atk24 BattleScript_HitEscapeEnd
|
|
jumpifbyte CMP_NOT_EQUAL gBattleOutcome 0 BattleScript_HitEscapeEnd
|
|
jumpifcantswitch ATK4F_DONT_CHECK_STATUSES | BS_ATTACKER, BattleScript_HitEscapeEnd
|
|
openpartyscreen 0x1, BattleScript_HitEscapeEnd
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
switchhandleorder BS_ATTACKER, 0x2
|
|
returntoball BS_ATTACKER
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_ATTACKER, TRUE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
BattleScript_HitEscapeEnd:
|
|
end
|
|
|
|
BattleScript_EffectPlaceholder:
|
|
attackcanceler
|
|
printstring STRINGID_NOTDONEYET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAlwaysHit:
|
|
BattleScript_EffectEvasionDownHit:
|
|
BattleScript_EffectVitalThrow:
|
|
BattleScript_EffectUnused60:
|
|
BattleScript_EffectFalseSwipe:
|
|
BattleScript_EffectAlwaysCrit:
|
|
BattleScript_EffectPursuit:
|
|
BattleScript_EffectFellStinger:
|
|
BattleScript_EffectHit::
|
|
BattleScript_EffectLowKick:
|
|
BattleScript_EffectFlail:
|
|
BattleScript_EffectFacade:
|
|
BattleScript_EffectRevenge:
|
|
BattleScript_EffectReturn:
|
|
BattleScript_EffectFrustration:
|
|
BattleScript_EffectEruption:
|
|
BattleScript_EffectPledge:
|
|
BattleScript_EffectFling:
|
|
BattleScript_EffectNaturalGift:
|
|
BattleScript_EffectWakeUpSlap:
|
|
BattleScript_EffectWringOut:
|
|
BattleScript_EffectHex:
|
|
BattleScript_EffectAssurance:
|
|
BattleScript_EffectTrump_card:
|
|
BattleScript_EffectAcrobatics:
|
|
BattleScript_EffectHeatCrash:
|
|
BattleScript_EffectPunishment:
|
|
BattleScript_EffectStoredPower:
|
|
BattleScript_EffectElectroBall:
|
|
BattleScript_EffectGyroBall:
|
|
BattleScript_EffectEchoedVoice:
|
|
BattleScript_EffectPayback:
|
|
BattleScript_EffectRound:
|
|
BattleScript_EffectBrine:
|
|
BattleScript_EffectVenoshock:
|
|
BattleScript_EffectRetalitate:
|
|
BattleScript_EffectBulldoze:
|
|
BattleScript_EffectFoulPlay:
|
|
BattleScript_EffectPsyshock:
|
|
BattleScript_EffectWeatherBall:
|
|
BattleScript_EffectHiddenPower:
|
|
BattleScript_EffectFreezeDry:
|
|
BattleScript_EffectTwoTypedMove:
|
|
jumpifnotmove MOVE_SURF, BattleScript_HitFromAtkCanceler
|
|
jumpifnostatus3 BS_TARGET, STATUS3_UNDERWATER, BattleScript_HitFromAtkCanceler
|
|
orword gHitMarker, HITMARKER_IGNORE_UNDERWATER
|
|
BattleScript_HitFromAtkCanceler::
|
|
attackcanceler
|
|
BattleScript_HitFromAccCheck::
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
BattleScript_HitFromAtkString::
|
|
attackstring
|
|
ppreduce
|
|
BattleScript_HitFromCritCalc::
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
BattleScript_HitFromAtkAnimation::
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage 0x40
|
|
resultmessage
|
|
waitmessage 0x40
|
|
seteffectwithchance
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
BattleScript_MoveEnd::
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x0, 0x0
|
|
end
|
|
|
|
BattleScript_MakeMoveMissed::
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
|
BattleScript_PrintMoveMissed::
|
|
attackstring
|
|
ppreduce
|
|
BattleScript_MoveMissedPause::
|
|
pause 0x20
|
|
BattleScript_MoveMissed::
|
|
effectivenesssound
|
|
resultmessage
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSleep::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_AlreadyAsleep
|
|
jumpifcantmakeasleep BattleScript_CantMakeAsleep
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_SLEEP
|
|
seteffectprimary
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyAsleep::
|
|
various23 BS_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:
|
|
setmoveeffect MOVE_EFFECT_POISON
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectAbsorb::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage 0x40
|
|
resultmessage
|
|
waitmessage 0x40
|
|
setdrainedhp
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze
|
|
setbyte cMULTISTRING_CHOOSER, 0x0
|
|
goto BattleScript_AbsorbUpdateHp
|
|
BattleScript_AbsorbLiquidOoze::
|
|
manipulatedamage ATK80_DMG_CHANGE_SIGN
|
|
setbyte cMULTISTRING_CHOOSER, 0x1
|
|
BattleScript_AbsorbUpdateHp::
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
jumpifmovehadnoeffect BattleScript_AbsorbTryFainting
|
|
printfromtable gLeechSeedDrainStringIds
|
|
waitmessage 0x40
|
|
BattleScript_AbsorbTryFainting::
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectBurnHit::
|
|
BattleScript_EffectBlazeKick::
|
|
setmoveeffect MOVE_EFFECT_BURN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectFreezeHit::
|
|
setmoveeffect MOVE_EFFECT_FREEZE
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectParalyzeHit::
|
|
setmoveeffect MOVE_EFFECT_PARALYSIS
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectExplosion::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
faintifabilitynotdamp
|
|
setatkhptozero
|
|
waitstate
|
|
jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_82D8B94
|
|
call BattleScript_82D8BEA
|
|
goto BattleScript_82D8B96
|
|
BattleScript_82D8B94::
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_82D8B96::
|
|
movevaluescleanup
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
accuracycheck BattleScript_82D8BCF, ACC_CURR_MOVE
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage 0x40
|
|
resultmessage
|
|
waitmessage 0x40
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x2, 0x10
|
|
jumpifnexttargetvalid BattleScript_82D8B96
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
end
|
|
BattleScript_82D8BCF::
|
|
effectivenesssound
|
|
resultmessage
|
|
waitmessage 0x40
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x2, 0x10
|
|
jumpifnexttargetvalid BattleScript_82D8B96
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
end
|
|
|
|
BattleScript_82D8BEA::
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
|
attackanimation
|
|
waitanimation
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
|
return
|
|
|
|
BattleScript_EffectDreamEater::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_82D8C0E
|
|
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_82D8C18
|
|
BattleScript_82D8C0E::
|
|
attackstring
|
|
ppreduce
|
|
waitmessage 0x40
|
|
goto BattleScript_WasntAffected
|
|
BattleScript_82D8C18::
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage 0x40
|
|
resultmessage
|
|
waitmessage 0x40
|
|
setdrainedhp
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
jumpifmovehadnoeffect BattleScript_DreamEaterTryFaintEnd
|
|
printstring STRINGID_PKMNDREAMEATEN
|
|
waitmessage 0x40
|
|
BattleScript_DreamEaterTryFaintEnd::
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMirrorMove::
|
|
attackcanceler
|
|
attackstring
|
|
pause 0x40
|
|
trymirrormove
|
|
ppreduce
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
printstring STRINGID_MIRRORMOVEFAILED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackUp::
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectDefenseUp::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpecialAttackUp::
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpeedUp:
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpecialDefenseUp:
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectAccuracyUp:
|
|
setstatchanger STAT_ACC, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectEvasionUp::
|
|
setstatchanger STAT_EVASION, 1, FALSE
|
|
BattleScript_EffectStatUp::
|
|
attackcanceler
|
|
BattleScript_EffectStatUpAfterAtkCanceler::
|
|
attackstring
|
|
ppreduce
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_StatUpEnd
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpAttackAnim
|
|
pause 0x20
|
|
goto BattleScript_StatUpPrintString
|
|
BattleScript_StatUpAttackAnim::
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_StatUpDoAnim::
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_StatUpPrintString::
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_StatUpEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_StatUp::
|
|
playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_EffectAttackDown:
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectDefenseDown:
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpeedDown:
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectAccuracyDown:
|
|
setstatchanger STAT_ACC, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpecialAttackDown:
|
|
setstatchanger STAT_SPATK, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpecialDefenseDown:
|
|
setstatchanger STAT_SPDEF, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectEvasionDown:
|
|
setstatchanger STAT_EVASION, 1, TRUE
|
|
BattleScript_EffectStatDown:
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
BattleScript_StatDownFromAttackString:
|
|
attackstring
|
|
ppreduce
|
|
statbuffchange 0x1, BattleScript_StatDownEnd
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatDownDoAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StatDownEnd
|
|
pause 0x20
|
|
goto BattleScript_StatDownPrintString
|
|
BattleScript_StatDownDoAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_StatDownPrintString::
|
|
printfromtable gStatDownStringIds
|
|
waitmessage 0x40
|
|
BattleScript_StatDownEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_StatDown::
|
|
playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_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 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D8DAE
|
|
ppreduce
|
|
BattleScript_82D8DAE::
|
|
confuseifrepeatingattackends
|
|
goto BattleScript_HitFromCritCalc
|
|
|
|
BattleScript_EffectRoar::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
|
|
jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
|
|
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 BS_ATTACKER, BattleScript_MultiHitEnd
|
|
jumpifhasnohp BS_TARGET, BattleScript_MultiHitPrintStrings
|
|
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoMultiHit
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_MultiHitPrintStrings
|
|
BattleScript_DoMultiHit::
|
|
movevaluescleanup
|
|
copybyte cEFFECT_CHOOSER, sMULTIHIT_EFFECT
|
|
critcalc
|
|
damagecalc
|
|
jumpifmovehadnoeffect BattleScript_MultiHitNoMoreHits
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage 0x40
|
|
multihitresultmessage
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 0x1
|
|
addbyte sMULTIHIT_STRING + 4, 0x1
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x2, 0x10
|
|
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_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 BS_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 MOVE_EFFECT_FLINCH
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectRestoreHp::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER
|
|
attackanimation
|
|
waitanimation
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectToxic::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
|
|
jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
|
jumpiftype BS_TARGET, TYPE_POISON, BattleScript_NotAffected
|
|
jumpiftype BS_TARGET, TYPE_STEEL, BattleScript_NotAffected
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_TOXIC
|
|
seteffectprimary
|
|
resultmessage
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyPoisoned::
|
|
various23 BS_ATTACKER
|
|
pause 0x40
|
|
printstring STRINGID_PKMNALREADYPOISONED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_ImmunityProtected::
|
|
copybyte gEffectBattler, gBattlerTarget
|
|
setbyte cMULTISTRING_CHOOSER, 0x0
|
|
call BattleScript_PSNPrevention
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPayDay::
|
|
setmoveeffect MOVE_EFFECT_PAYDAY
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectLightScreen::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setlightscreen
|
|
goto BattleScript_PrintReflectLightScreenSafeguardString
|
|
|
|
BattleScript_EffectTriAttack::
|
|
setmoveeffect MOVE_EFFECT_TRI_ATTACK
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectRest::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_RestIsAlreadyAsleep
|
|
jumpifcantmakeasleep BattleScript_RestCantSleep
|
|
trysetrest BattleScript_AlreadyAtFullHp
|
|
pause 0x20
|
|
printfromtable gRestUsedStringIds
|
|
waitmessage 0x40
|
|
updatestatusicon BS_ATTACKER
|
|
waitstate
|
|
goto BattleScript_PresentHealTarget
|
|
|
|
BattleScript_RestCantSleep::
|
|
pause 0x40
|
|
printfromtable gUproarAwakeStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_RestIsAlreadyAsleep::
|
|
various23 BS_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
|
|
jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
|
|
tryKO BattleScript_KOFail
|
|
trysetdestinybondtohappen
|
|
goto BattleScript_HitFromAtkAnimation
|
|
BattleScript_KOFail::
|
|
pause 0x40
|
|
printfromtable gKOFailedStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRazorWind::
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
|
|
setbyte sTWOTURN_STRINGID, 0x0
|
|
call BattleScriptFirstChargingTurn
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_TwoTurnMovesSecondTurn::
|
|
attackcanceler
|
|
setmoveeffect MOVE_EFFECT_CHARGING
|
|
setbyte sB_ANIM_TURN, 0x1
|
|
clearstatusfromeffect BS_ATTACKER
|
|
orword gHitMarker, HITMARKER_NO_PPDEDUCT
|
|
jumpifnotmove MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck
|
|
setmoveeffect MOVE_EFFECT_FLINCH
|
|
goto BattleScript_HitFromAccCheck
|
|
|
|
BattleScriptFirstChargingTurn::
|
|
attackcanceler
|
|
printstring STRINGID_EMPTYSTRING3
|
|
ppreduce
|
|
attackanimation
|
|
waitanimation
|
|
orword gHitMarker, HITMARKER_x8000000
|
|
setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_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
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
damagetohalftargethp
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectDragonRage::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
setword gBattleMoveDamage, 40
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectTrap::
|
|
jumpifnotmove MOVE_WHIRLPOOL, BattleScript_DoWrapEffect
|
|
jumpifnostatus3 BS_TARGET, STATUS3_UNDERWATER, BattleScript_DoWrapEffect
|
|
orword gHitMarker, HITMARKER_IGNORE_UNDERWATER
|
|
BattleScript_DoWrapEffect::
|
|
setmoveeffect MOVE_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
|
|
accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE
|
|
goto BattleScript_HitFromAtkString
|
|
BattleScript_MoveMissedDoDamage::
|
|
attackstring
|
|
ppreduce
|
|
pause 0x40
|
|
resultmessage
|
|
waitmessage 0x40
|
|
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd
|
|
printstring STRINGID_PKMNCRASHED
|
|
waitmessage 0x40
|
|
damagecalc
|
|
typecalc
|
|
adjustdamage
|
|
manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_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 BS_ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed
|
|
setfocusenergy
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gFocusEnergyUsedStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRecoil:
|
|
setmoveeffect MOVE_EFFECT_RECOIL_25 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit
|
|
incrementgamestat 0x1B
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectConfuse:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_AlreadyConfused
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
seteffectprimary
|
|
resultmessage
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyConfused::
|
|
various23 BS_ATTACKER
|
|
pause 0x20
|
|
printstring STRINGID_PKMNALREADYCONFUSED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackUp2::
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectDefenseUp2::
|
|
setstatchanger STAT_DEF, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpeedUp2::
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpecialAttackUp2::
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpecialDefenseUp2::
|
|
setstatchanger STAT_SPDEF, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectAccuracyUp2:
|
|
setstatchanger STAT_ACC, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectEvasionUp2:
|
|
setstatchanger STAT_EVASION, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectTransform::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
transformdataexecution
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gTransformUsedStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackDown2:
|
|
setstatchanger STAT_ATK, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectDefenseDown2:
|
|
setstatchanger STAT_DEF, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpeedDown2:
|
|
setstatchanger STAT_SPEED, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpecialDefenseDown2:
|
|
setstatchanger STAT_SPDEF, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpecialAttackDown2:
|
|
setstatchanger STAT_SPATK, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectAccuracyDown2:
|
|
setstatchanger STAT_ACC, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectEvasionDown2:
|
|
setstatchanger STAT_EVASION, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectReflect::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setreflect
|
|
BattleScript_PrintReflectLightScreenSafeguardString::
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gReflectLightScreenSafeguardStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPoison::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
|
|
jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
|
|
jumpiftype BS_TARGET, TYPE_POISON, BattleScript_NotAffected
|
|
jumpiftype BS_TARGET, TYPE_STEEL, BattleScript_NotAffected
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_POISON
|
|
seteffectprimary
|
|
resultmessage
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectParalyze::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_LIMBER, BattleScript_LimberProtected
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
typecalc
|
|
jumpifmovehadnoeffect BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_AlreadyParalyzed
|
|
jumpiftype BS_TARGET, TYPE_ELECTRIC, BattleScript_NotAffected
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_PARALYSIS
|
|
seteffectprimary
|
|
resultmessage
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyParalyzed::
|
|
various23 BS_ATTACKER
|
|
pause 0x20
|
|
printstring STRINGID_PKMNISALREADYPARALYZED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_LimberProtected::
|
|
copybyte gEffectBattler, gBattlerTarget
|
|
setbyte cMULTISTRING_CHOOSER, 0x0
|
|
call BattleScript_PRLZPrevention
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackDownHit::
|
|
setmoveeffect MOVE_EFFECT_ATK_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectDefenseDownHit::
|
|
setmoveeffect MOVE_EFFECT_DEF_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSpeedDownHit::
|
|
setmoveeffect MOVE_EFFECT_SPD_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSpecialAttackDownHit::
|
|
setmoveeffect MOVE_EFFECT_SP_ATK_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSpecialDefenseDownHit::
|
|
setmoveeffect MOVE_EFFECT_SP_DEF_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSpecialDefenseDownHit2::
|
|
setmoveeffect MOVE_EFFECT_SP_DEF_MINUS_2
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectAccuracyDownHit::
|
|
setmoveeffect MOVE_EFFECT_ACC_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSkyAttack::
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
|
|
setbyte sTWOTURN_STRINGID, 0x3
|
|
call BattleScriptFirstChargingTurn
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectConfuseHit::
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectTwineedle::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
setbyte sMULTIHIT_EFFECT, MOVE_EFFECT_POISON
|
|
attackstring
|
|
ppreduce
|
|
setmultihitcounter 0x2
|
|
initmultihitstring
|
|
goto BattleScript_MultiHitLoop
|
|
|
|
BattleScript_EffectSubstitute::
|
|
attackcanceler
|
|
ppreduce
|
|
attackstring
|
|
waitstate
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_SUBSTITUTE, BattleScript_AlreadyHasSubstitute
|
|
setsubstitute
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_SubstituteAnim
|
|
pause 0x20
|
|
goto BattleScript_SubstituteString
|
|
BattleScript_SubstituteAnim::
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
BattleScript_SubstituteString::
|
|
printfromtable gSubsituteUsedStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_AlreadyHasSubstitute::
|
|
various23 BS_ATTACKER
|
|
pause 0x20
|
|
printstring STRINGID_PKMNHASSUBSTITUTE
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRecharge::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
setmoveeffect MOVE_EFFECT_RECHARGE | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_HitFromAtkString
|
|
|
|
BattleScript_MoveUsedMustRecharge::
|
|
printstring STRINGID_PKMNMUSTRECHARGE
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRage::
|
|
attackcanceler
|
|
accuracycheck BattleScript_RageMiss, ACC_CURR_MOVE
|
|
setmoveeffect MOVE_EFFECT_RAGE
|
|
seteffectprimary
|
|
setmoveeffect 0
|
|
goto BattleScript_HitFromAtkString
|
|
BattleScript_RageMiss::
|
|
setmoveeffect MOVE_EFFECT_RAGE
|
|
clearstatusfromeffect BS_ATTACKER
|
|
goto BattleScript_PrintMoveMissed
|
|
|
|
BattleScript_EffectMimic::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifsubstituteblocks 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 sB_ANIM_TURN, 0x0
|
|
setbyte sB_ANIM_TARGETS_HIT, 0x0
|
|
metronome
|
|
|
|
BattleScript_EffectLeechSeed::
|
|
attackcanceler
|
|
attackstring
|
|
pause 0x20
|
|
ppreduce
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
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
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
dmgtolevel
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectPsywave::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
psywavedamageeffect
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectCounter::
|
|
attackcanceler
|
|
counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
|
|
adjustdamage
|
|
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 BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
copyword gBattleMoveDamage, sPAINSPLIT_HP
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printstring STRINGID_SHAREDPAIN
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSnore::
|
|
attackcanceler
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_SnoreIsAsleep
|
|
attackstring
|
|
ppreduce
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_SnoreIsAsleep::
|
|
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore
|
|
printstring STRINGID_PKMNFASTASLEEP
|
|
waitmessage 0x40
|
|
statusanimation BS_ATTACKER
|
|
BattleScript_DoSnore::
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
|
|
setmoveeffect MOVE_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
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
setalwayshitflag
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNTOOKAIM
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSketch::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
copymovepermanently BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSKETCHEDMOVE
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSleepTalk::
|
|
attackcanceler
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_SleepTalkIsAsleep
|
|
attackstring
|
|
ppreduce
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_SleepTalkIsAsleep::
|
|
printstring STRINGID_PKMNFASTASLEEP
|
|
waitmessage 0x40
|
|
statusanimation BS_ATTACKER
|
|
attackstring
|
|
ppreduce
|
|
orword gHitMarker, HITMARKER_NO_PPDEDUCT
|
|
trychoosesleeptalkmove BattleScript_SleepTalkUsingMove
|
|
pause 0x40
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_SleepTalkUsingMove::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sB_ANIM_TURN, 0x0
|
|
setbyte sB_ANIM_TARGETS_HIT, 0x0
|
|
jumptorandomattack TRUE
|
|
|
|
BattleScript_EffectDestinyBond::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setdestinybond
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNTRYINGTOTAKEFOE
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
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
|
|
jumpifnotmove MOVE_HEAL_BELL, BattleScript_PartyHealEnd
|
|
jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_CheckHealBellMon2Unaffected
|
|
printstring STRINGID_PKMNSXBLOCKSY
|
|
waitmessage 0x40
|
|
BattleScript_CheckHealBellMon2Unaffected::
|
|
jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x2, BattleScript_PartyHealEnd
|
|
printstring STRINGID_PKMNSXBLOCKSY2
|
|
waitmessage 0x40
|
|
BattleScript_PartyHealEnd::
|
|
updatestatusicon BS_ATTACKER_WITH_PARTNER
|
|
waitstate
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTripleKick::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
sethword sTRIPLE_KICK_POWER, 0x0
|
|
initmultihitstring
|
|
setmultihit 0x3
|
|
BattleScript_TripleKickLoop::
|
|
jumpifhasnohp BS_ATTACKER, BattleScript_TripleKickEnd
|
|
jumpifhasnohp BS_TARGET, BattleScript_TripleKickNoMoreHits
|
|
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_TripleKickNoMoreHits
|
|
BattleScript_DoTripleKickAttack::
|
|
accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE
|
|
movevaluescleanup
|
|
addbyte sTRIPLE_KICK_POWER, 10
|
|
addbyte sMULTIHIT_STRING + 4, 0x1
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
jumpifmovehadnoeffect BattleScript_TripleKickNoMoreHits
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage 0x40
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 0x1
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x2, 0x10
|
|
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_TripleKickPrintStrings
|
|
decrementmultihit BattleScript_TripleKickLoop
|
|
goto BattleScript_TripleKickPrintStrings
|
|
BattleScript_TripleKickNoMoreHits::
|
|
pause 0x20
|
|
jumpifbyte CMP_EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickPrintStrings
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
|
BattleScript_TripleKickPrintStrings::
|
|
resultmessage
|
|
waitmessage 0x40
|
|
jumpifbyte CMP_EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickEnd
|
|
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TripleKickEnd
|
|
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6
|
|
printstring STRINGID_HITXTIMES
|
|
waitmessage 0x40
|
|
BattleScript_TripleKickEnd::
|
|
seteffectwithchance
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
setbyte sMOVEEND_STATE, 0xE
|
|
moveend 0x0, 0x0
|
|
end
|
|
|
|
BattleScript_EffectThief::
|
|
setmoveeffect MOVE_EFFECT_STEAL_ITEM
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectMeanLook::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
jumpifstatus2 BS_TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE
|
|
seteffectprimary
|
|
printstring STRINGID_TARGETCANTESCAPENOW
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectNightmare::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus2 BS_TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_NightmareWorked
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_NightmareWorked::
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_NIGHTMARE
|
|
seteffectprimary
|
|
printstring STRINGID_PKMNFELLINTONIGHTMARE
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMinimize::
|
|
attackcanceler
|
|
setminimize
|
|
setstatchanger STAT_EVASION, 1, FALSE
|
|
goto BattleScript_EffectStatUpAfterAtkCanceler
|
|
|
|
BattleScript_EffectCurse::
|
|
jumpiftype BS_ATTACKER, TYPE_GHOST, BattleScript_GhostCurse
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, 0x0, BattleScript_CurseTrySpeed
|
|
jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, 0xC, BattleScript_CurseTrySpeed
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 0xC, BattleScript_ButItFailed
|
|
BattleScript_CurseTrySpeed::
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
setbyte sB_ANIM_TURN, 0x1
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_CurseTryAttack
|
|
printfromtable gStatDownStringIds
|
|
waitmessage 0x40
|
|
BattleScript_CurseTryAttack::
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_CurseTryDefence
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_CurseTryDefence::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_CurseEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_CurseEnd::
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_GhostCurse::
|
|
jumpifbytenotequal gBattlerAttacker, gBattlerTarget, BattleScript_DoGhostCurse
|
|
getmovetarget BS_ATTACKER
|
|
BattleScript_DoGhostCurse::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
cursetarget BattleScript_ButItFailed
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
setbyte sB_ANIM_TURN, 0x0
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_PKMNLAIDCURSE
|
|
waitmessage 0x40
|
|
tryfaintmon BS_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
|
|
BattleScript_IdentifiedFoe:
|
|
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 BS_SCRIPTING, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected
|
|
BattleScript_PerishSongLoopIncrement::
|
|
addbyte sBANK, 0x1
|
|
jumpifbytenotequal sBANK, gBattlersCount, BattleScript_PerishSongLoop
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_PerishSongNotAffected::
|
|
printstring STRINGID_PKMNSXBLOCKSY2
|
|
waitmessage 0x40
|
|
goto BattleScript_PerishSongLoopIncrement
|
|
|
|
BattleScript_EffectSandstorm::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setsandstorm
|
|
goto BattleScript_MoveWeatherChange
|
|
|
|
BattleScript_EffectRollout::
|
|
attackcanceler
|
|
attackstring
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy
|
|
ppreduce
|
|
BattleScript_RolloutCheckAccuracy::
|
|
accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE
|
|
BattleScript_RolloutHit::
|
|
typecalc
|
|
handlerollout
|
|
goto BattleScript_HitFromCritCalc
|
|
|
|
BattleScript_EffectSwagger::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_MakeMoveMissed
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifconfusedandstatmaxed STAT_ATK, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange 0x1, BattleScript_SwaggerTryConfuse
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SwaggerTryConfuse
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_SwaggerTryConfuse:
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
|
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
seteffectprimary
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFuryCutter:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE
|
|
BattleScript_FuryCutterHit:
|
|
handlefurycutter
|
|
critcalc
|
|
damagecalc
|
|
jumpifmovehadnoeffect BattleScript_FuryCutterHit
|
|
adjustdamage
|
|
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_EffectPresent::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
presentdamagecalculation
|
|
|
|
BattleScript_EffectSafeguard::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setsafeguard
|
|
goto BattleScript_PrintReflectLightScreenSafeguardString
|
|
|
|
BattleScript_EffectThawHit::
|
|
setmoveeffect MOVE_EFFECT_BURN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectMagnitude::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
selectfirstvalidtarget
|
|
magnitudedamagecalculation
|
|
pause 0x20
|
|
printstring STRINGID_MAGNITUDESTRENGTH
|
|
waitmessage 0x40
|
|
goto BattleScript_HitsAllWithUndergroundBonusLoop
|
|
|
|
BattleScript_EffectBatonPass::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
|
|
jumpifcantswitch ATK4F_DONT_CHECK_STATUSES | BS_ATTACKER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
openpartyscreen BS_ATTACKER, BattleScript_ButItFailed
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
switchhandleorder BS_ATTACKER, 0x2
|
|
returntoball BS_ATTACKER
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_ATTACKER, TRUE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRapidSpin::
|
|
setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSonicboom::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
setword gBattleMoveDamage, 20
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectMorningSun::
|
|
BattleScript_EffectSynthesis::
|
|
BattleScript_EffectMoonlight::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
recoverbasedonsunlight BattleScript_AlreadyAtFullHp
|
|
goto BattleScript_PresentHealTarget
|
|
|
|
BattleScript_EffectRainDance::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setrain
|
|
BattleScript_MoveWeatherChange::
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gMoveWeatherChangeStringIds
|
|
waitmessage 0x40
|
|
call BattleScript_WeatherFormChanges
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSunnyDay::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setsunny
|
|
goto BattleScript_MoveWeatherChange
|
|
|
|
BattleScript_EffectDefenseUpHit::
|
|
setmoveeffect MOVE_EFFECT_DEF_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectAttackUpHit::
|
|
setmoveeffect MOVE_EFFECT_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectAllStatsUpHit::
|
|
setmoveeffect MOVE_EFFECT_ALL_STATS_UP | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectBellyDrum::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
maxattackhalvehp BattleScript_ButItFailed
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_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
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectSkullBash::
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
|
|
setbyte sTWOTURN_STRINGID, 0x2
|
|
call BattleScriptFirstChargingTurn
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_SkullBashEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SkullBashEnd
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_SkullBashEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTwister:
|
|
jumpifnostatus3 BS_TARGET, STATUS3_ON_AIR, BattleScript_FlinchEffect
|
|
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
|
|
BattleScript_FlinchEffect:
|
|
BattleScript_EffectStomp:
|
|
setmoveeffect MOVE_EFFECT_FLINCH
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectEarthquake::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
selectfirstvalidtarget
|
|
BattleScript_HitsAllWithUndergroundBonusLoop::
|
|
movevaluescleanup
|
|
jumpifnostatus3 BS_TARGET, STATUS3_UNDERGROUND, BattleScript_HitsAllNoUndergroundBonus
|
|
orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND
|
|
goto BattleScript_DoHitAllWithUndergroundBonus
|
|
BattleScript_HitsAllNoUndergroundBonus::
|
|
bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND
|
|
BattleScript_DoHitAllWithUndergroundBonus::
|
|
accuracycheck BattleScript_HitAllWithUndergroundBonusMissed, ACC_CURR_MOVE
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage 0x40
|
|
resultmessage
|
|
waitmessage 0x40
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 0x1
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x2, 0x10
|
|
jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
|
|
end
|
|
BattleScript_HitAllWithUndergroundBonusMissed::
|
|
pause 0x20
|
|
typecalc
|
|
effectivenesssound
|
|
resultmessage
|
|
waitmessage 0x40
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x2, 0x10
|
|
jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
|
|
end
|
|
|
|
BattleScript_EffectFutureSight::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
trysetfutureattack BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gFutureMoveUsedStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGust::
|
|
jumpifnostatus3 BS_TARGET, STATUS3_ON_AIR, BattleScript_EffectHit
|
|
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSolarbeam::
|
|
jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarbeamDecideTurn
|
|
jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarbeamDecideTurn
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_SolarbeamOnFirstTurn
|
|
BattleScript_SolarbeamDecideTurn::
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
|
|
setbyte sTWOTURN_STRINGID, 0x1
|
|
call BattleScriptFirstChargingTurn
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_SolarbeamOnFirstTurn::
|
|
orword gHitMarker, HITMARKER_x8000000
|
|
setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER
|
|
seteffectprimary
|
|
ppreduce
|
|
goto BattleScript_TwoTurnMovesSecondTurn
|
|
|
|
BattleScript_EffectThunder:
|
|
setmoveeffect MOVE_EFFECT_PARALYSIS
|
|
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectHurricane:
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectTeleport:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed
|
|
getifcantrunfrombattle BS_ATTACKER
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, 0x1, BattleScript_ButItFailed
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, 0x2, BattleScript_PrintAbilityMadeIneffective
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNFLEDFROMBATTLE
|
|
waitmessage 0x40
|
|
setoutcomeonteleport BS_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 CMP_NOT_EQUAL, gIsCriticalHit, TRUE, BattleScript_BeatUpAttack
|
|
manipulatedamage ATK80_DMG_DOUBLED
|
|
BattleScript_BeatUpAttack::
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage 0x40
|
|
resultmessage
|
|
waitmessage 0x40
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x2, 0x10
|
|
goto BattleScript_BeatUpLoop
|
|
BattleScript_BeatUpEnd::
|
|
end
|
|
|
|
BattleScript_EffectSemiInvulnerable::
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SecondTurnSemiInvulnerable
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_SecondTurnSemiInvulnerable
|
|
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 MOVE_EFFECT_CHARGING
|
|
setbyte sB_ANIM_TURN, 0x1
|
|
clearstatusfromeffect BS_ATTACKER
|
|
orword gHitMarker, HITMARKER_NO_PPDEDUCT
|
|
jumpifnotmove MOVE_BOUNCE, BattleScript_SemiInvulnerableTryHit
|
|
setmoveeffect MOVE_EFFECT_PARALYSIS
|
|
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 STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_DefenseCurlDoStatUpAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpPrintString
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_DefenseCurlDoStatUpAnim::
|
|
goto BattleScript_StatUpDoAnim
|
|
|
|
BattleScript_EffectSoftboiled::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_TARGET
|
|
BattleScript_PresentHealTarget::
|
|
attackanimation
|
|
waitanimation
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_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 MOVE_EFFECT_FLINCH | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_ButItFailedAtkStringPpReduce::
|
|
attackstring
|
|
BattleScript_ButItFailedPpReduce::
|
|
ppreduce
|
|
BattleScript_ButItFailed::
|
|
pause 0x20
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
resultmessage
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_NotAffected::
|
|
pause 0x20
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
resultmessage
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectUproar::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
setmoveeffect MOVE_EFFECT_UPROAR | MOVE_EFFECT_AFFECTS_USER
|
|
attackstring
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_UproarHit
|
|
ppreduce
|
|
BattleScript_UproarHit::
|
|
goto BattleScript_HitFromCritCalc
|
|
|
|
BattleScript_EffectStockpile::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
stockpile
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gStockpileUsedStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSpitUp::
|
|
attackcanceler
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82D9FA2
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
stockpiletobasedamage BattleScript_SpitUpFail
|
|
typecalc
|
|
adjustdamage
|
|
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
|
|
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
|
|
jumpifsubstituteblocks BattleScript_MakeMoveMissed
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifconfusedandstatmaxed STAT_SPATK, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange 0x1, BattleScript_FlatterTryConfuse
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_FlatterTryConfuse
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_FlatterTryConfuse::
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
|
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
seteffectprimary
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectWillOWisp::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_BURN, BattleScript_AlreadyBurned
|
|
jumpiftype BS_TARGET, TYPE_FIRE, BattleScript_NotAffected
|
|
jumpifability BS_TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_BURN
|
|
seteffectprimary
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_WaterVeilPrevents::
|
|
copybyte gEffectBattler, gBattlerTarget
|
|
setbyte cMULTISTRING_CHOOSER, 0x0
|
|
call BattleScript_BRNPrevention
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyBurned::
|
|
various23 BS_ATTACKER
|
|
pause 0x20
|
|
printstring STRINGID_PKMNALREADYHASBURN
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMemento::
|
|
attackcanceler
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82DA153
|
|
attackstring
|
|
ppreduce
|
|
jumpifattackandspecialattackcannotfall BattleScript_ButItFailed
|
|
setatkhptozero
|
|
attackanimation
|
|
waitanimation
|
|
jumpifsubstituteblocks BattleScript_EffectMementoPrintNoEffect
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO | ATK48_ONLY_MULTIPLE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO
|
|
setstatchanger STAT_ATK, 2, TRUE
|
|
statbuffchange 0x1, BattleScript_EffectMementoTrySpAtk
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_EffectMementoTrySpAtk
|
|
printfromtable gStatDownStringIds
|
|
waitmessage 0x40
|
|
BattleScript_EffectMementoTrySpAtk:
|
|
playstatchangeanimation BS_TARGET, BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO
|
|
setstatchanger STAT_SPATK, 2, TRUE
|
|
statbuffchange 0x1, BattleScript_EffectMementoTryFaint
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_EffectMementoTryFaint
|
|
printfromtable gStatDownStringIds
|
|
waitmessage 0x40
|
|
BattleScript_EffectMementoTryFaint:
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_EffectMementoPrintNoEffect:
|
|
printstring STRINGID_BUTNOEFFECT
|
|
waitmessage 0x40
|
|
goto BattleScript_EffectMementoTryFaint
|
|
BattleScript_82DA153:
|
|
attackstring
|
|
ppreduce
|
|
jumpifattackandspecialattackcannotfall BattleScript_82DA15A
|
|
BattleScript_82DA15A:
|
|
setatkhptozero
|
|
pause 0x40
|
|
effectivenesssound
|
|
resultmessage
|
|
waitmessage 0x40
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFocusPunch::
|
|
attackcanceler
|
|
jumpifnodamage BattleScript_HitFromAccCheck
|
|
ppreduce
|
|
printstring STRINGID_PKMNLOSTFOCUS
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSmellingsalt::
|
|
jumpifsubstituteblocks BattleScript_EffectHit
|
|
setmoveeffect MOVE_EFFECT_REMOVE_PARALYSIS | MOVE_EFFECT_CERTAIN
|
|
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
|
|
jumpifsubstituteblocks 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 sB_ANIM_TURN, 0x0
|
|
setbyte sB_ANIM_TARGETS_HIT, 0x0
|
|
jumptorandomattack TRUE
|
|
|
|
BattleScript_EffectIngrain:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setuserstatus3 STATUS3_ROOTED BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNPLANTEDROOTS
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSuperpower:
|
|
setmoveeffect MOVE_EFFECT_ATK_DEF_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_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_EffectBrickBreak::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
removelightscreenreflect
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
jumpifbyte CMP_EQUAL, sB_ANIM_TURN, 0x0, BattleScript_BrickBreakAnim
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
BattleScript_BrickBreakAnim::
|
|
attackanimation
|
|
waitanimation
|
|
jumpifbyte CMP_LESS_THAN, sB_ANIM_TURN, 0x2, BattleScript_BrickBreakDoHit
|
|
printstring STRINGID_THEWALLSHATTERED
|
|
waitmessage 0x40
|
|
BattleScript_BrickBreakDoHit::
|
|
typecalc
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage 0x40
|
|
resultmessage
|
|
waitmessage 0x40
|
|
seteffectwithchance
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectYawn::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBankAbilityMadeIneffective
|
|
jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_PrintBankAbilityMadeIneffective
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifsideaffecting BS_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 MOVE_EFFECT_KNOCK_OFF
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectEndeavor::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setdamagetohealthdifference BattleScript_ButItFailed
|
|
copyword gHpDealt, gBattleMoveDamage
|
|
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
|
|
typecalc
|
|
jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
copyword gBattleMoveDamage, gHpDealt
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
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 BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGrudge:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setuserstatus3 STATUS3_GRUDGE 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_EffectSecretPower::
|
|
getsecretpowereffect
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectDoubleEdge::
|
|
setmoveeffect MOVE_EFFECT_RECOIL_33_PARALYSIS | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectTeeterDance::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setbyte gBattlerTarget, 0x0
|
|
BattleScript_TeeterDanceLoop::
|
|
movevaluescleanup
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
jumpifbyteequal gBattlerAttacker, gBattlerTarget, BattleScript_TeeterDanceLoopIncrement
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents
|
|
jumpifsubstituteblocks BattleScript_TeeterDanceSubstitutePrevents
|
|
jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused
|
|
jumpifhasnohp BS_TARGET, BattleScript_TeeterDanceLoopIncrement
|
|
accuracycheck BattleScript_TeeterDanceMissed, ACC_CURR_MOVE
|
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_TeeterDanceSafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
seteffectprimary
|
|
resultmessage
|
|
waitmessage 0x40
|
|
BattleScript_TeeterDanceDoMoveEndIncrement::
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x2, 0x10
|
|
BattleScript_TeeterDanceLoopIncrement::
|
|
addbyte gBattlerTarget, 0x1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TeeterDanceLoop
|
|
end
|
|
|
|
BattleScript_TeeterDanceOwnTempoPrevents::
|
|
pause 0x20
|
|
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
|
|
waitmessage 0x40
|
|
goto BattleScript_TeeterDanceDoMoveEndIncrement
|
|
|
|
BattleScript_TeeterDanceSafeguardProtected::
|
|
pause 0x20
|
|
printstring STRINGID_PKMNUSEDSAFEGUARD
|
|
waitmessage 0x40
|
|
goto BattleScript_TeeterDanceDoMoveEndIncrement
|
|
|
|
BattleScript_TeeterDanceSubstitutePrevents::
|
|
pause 0x20
|
|
printstring STRINGID_BUTITFAILED
|
|
waitmessage 0x40
|
|
goto BattleScript_TeeterDanceDoMoveEndIncrement
|
|
|
|
BattleScript_TeeterDanceAlreadyConfused::
|
|
various23 BS_ATTACKER
|
|
pause 0x20
|
|
printstring STRINGID_PKMNALREADYCONFUSED
|
|
waitmessage 0x40
|
|
goto BattleScript_TeeterDanceDoMoveEndIncrement
|
|
|
|
BattleScript_TeeterDanceMissed::
|
|
resultmessage
|
|
waitmessage 0x40
|
|
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 MOVE_EFFECT_TOXIC
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectOverheat::
|
|
setmoveeffect MOVE_EFFECT_SP_ATK_TWO_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectTickle::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0x0, BattleScript_TickleDoMoveAnim
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_DEF, 0x0, BattleScript_CantLowerMultipleStats
|
|
BattleScript_TickleDoMoveAnim::
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, ATK48_STAT_NEGATIVE | ATK48_ONLY_MULTIPLE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK, ATK48_STAT_NEGATIVE
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange 0x1, BattleScript_TickleTryLowerDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleTryLowerDef
|
|
printfromtable gStatDownStringIds
|
|
waitmessage 0x40
|
|
BattleScript_TickleTryLowerDef::
|
|
playstatchangeanimation BS_TARGET, BIT_DEF, ATK48_STAT_NEGATIVE
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange 0x1, BattleScript_TickleEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage 0x40
|
|
BattleScript_TickleEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_CantLowerMultipleStats::
|
|
pause 0x20
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
printstring STRINGID_STATSWONTDECREASE2
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCosmicPower::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_CosmicPowerDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_CosmicPowerDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0x0
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_CosmicPowerTrySpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_CosmicPowerTrySpDef::
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_CosmicPowerEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_CosmicPowerEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSkyUppercut::
|
|
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectBulkUp::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_BulkUpDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 0xC, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_BulkUpDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0x0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_BulkUpTryDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpTryDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_BulkUpTryDef::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_BulkUpEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_BulkUpEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCalmMind::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_CalmMindDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_CalmMindDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0x0
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_CalmMindTrySpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_CalmMindTrySpDef::
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_CalmMindEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_CalmMindEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_CantRaiseMultipleStats::
|
|
pause 0x20
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
printstring STRINGID_STATSWONTINCREASE2
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDragonDance::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_DragonDanceDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 0xC, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_DragonDanceDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0x0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_DragonDanceTrySpeed
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceTrySpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_DragonDanceTrySpeed::
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_DragonDanceEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
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 BS_ATTACKER
|
|
pause 0x40
|
|
dofaintanimation BS_ATTACKER
|
|
cleareffectsonfaint BS_ATTACKER
|
|
printstring STRINGID_ATTACKERFAINTED
|
|
return
|
|
|
|
BattleScript_FaintTarget::
|
|
playfaintcry BS_TARGET
|
|
pause 0x40
|
|
dofaintanimation BS_TARGET
|
|
cleareffectsonfaint BS_TARGET
|
|
printstring STRINGID_TARGETFAINTED
|
|
tryactivatemoxie BS_ATTACKER
|
|
tryactivatefellstinger BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_GiveExp::
|
|
setbyte sGIVEEXP_STATE, 0x0
|
|
getexp BS_TARGET
|
|
end2
|
|
|
|
BattleScript_HandleFaintedMon::
|
|
atk24 BattleScript_82DA8F6
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd
|
|
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonTryChooseAnother
|
|
jumpifword CMP_NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonTryChooseAnother
|
|
printstring STRINGID_USENEXTPKMN
|
|
setbyte gBattleCommunication, 0x0
|
|
yesnobox
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x0, BattleScript_FaintedMonTryChooseAnother
|
|
jumpifplayerran BattleScript_FaintedMonEnd
|
|
printstring STRINGID_CANTESCAPE2
|
|
BattleScript_FaintedMonTryChooseAnother::
|
|
openpartyscreen 0x3, BattleScript_FaintedMonEnd
|
|
switchhandleorder BS_FAINTED, 0x2
|
|
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonChooseAnother
|
|
jumpifbattletype BATTLE_TYPE_LINK, BattleScript_FaintedMonChooseAnother
|
|
jumpifbattletype BATTLE_TYPE_x2000000, BattleScript_FaintedMonChooseAnother
|
|
jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_FaintedMonChooseAnother
|
|
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonChooseAnother
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonChooseAnother
|
|
jumpifbyte CMP_EQUAL, sBATTLE_STYLE, 0x1, BattleScript_FaintedMonChooseAnother
|
|
jumpifcantswitch 11, BattleScript_FaintedMonChooseAnother
|
|
printstring STRINGID_ENEMYABOUTTOSWITCHPKMN
|
|
setbyte gBattleCommunication, 0x0
|
|
yesnobox
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x1, BattleScript_FaintedMonChooseAnother
|
|
setatktoplayer0
|
|
openpartyscreen 0x81, BattleScript_FaintedMonChooseAnother
|
|
switchhandleorder BS_ATTACKER, 0x2
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, 0x6, BattleScript_FaintedMonChooseAnother
|
|
atknameinbuff1
|
|
resetintrimidatetracebits BS_ATTACKER
|
|
hpthresholds2 BS_ATTACKER
|
|
printstring STRINGID_RETURNMON
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
returnatktoball
|
|
waitstate
|
|
drawpartystatussummary BS_ATTACKER
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_ATTACKER
|
|
switchinanim BS_ATTACKER, 0x0
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
resetsentmonsvalue
|
|
BattleScript_FaintedMonChooseAnother::
|
|
drawpartystatussummary BS_FAINTED
|
|
getswitchedmondata BS_FAINTED
|
|
switchindataupdate BS_FAINTED
|
|
hpthresholds BS_FAINTED
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_FAINTED
|
|
switchinanim BS_FAINTED, FALSE
|
|
waitstate
|
|
various7 BS_ATTACKER
|
|
switchineffects BS_FAINTED
|
|
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonEnd
|
|
cancelallactions
|
|
BattleScript_FaintedMonEnd::
|
|
end2
|
|
|
|
BattleScript_82DA8F6::
|
|
openpartyscreen 0x5, BattleScript_82DA8FC
|
|
BattleScript_82DA8FC::
|
|
switchhandleorder BS_FAINTED, 0x0
|
|
openpartyscreen 0x6, BattleScript_82DA92C
|
|
switchhandleorder BS_FAINTED, 0x0
|
|
BattleScript_82DA908::
|
|
switchhandleorder BS_FAINTED, 0x3
|
|
drawpartystatussummary BS_FAINTED
|
|
getswitchedmondata BS_FAINTED
|
|
switchindataupdate BS_FAINTED
|
|
hpthresholds BS_FAINTED
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_FAINTED
|
|
switchinanim BS_FAINTED, FALSE
|
|
waitstate
|
|
switchineffects 5
|
|
jumpifbytenotequal gBattlerFainted, gBattlersCount, BattleScript_82DA908
|
|
BattleScript_82DA92C::
|
|
end2
|
|
|
|
BattleScript_LocalTrainerBattleWon::
|
|
jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalTwoTrainersDefeated
|
|
printstring STRINGID_PLAYERDEFEATEDTRAINER1
|
|
goto BattleScript_LocalBattleWonLoseTexts
|
|
BattleScript_LocalTwoTrainersDefeated::
|
|
printstring STRINGID_TWOENEMIESDEFEATED
|
|
BattleScript_LocalBattleWonLoseTexts::
|
|
trainerslidein BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_TRAINER1LOSETEXT
|
|
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleWonReward
|
|
trainerslideout B_POSITION_OPPONENT_LEFT
|
|
waitstate
|
|
trainerslidein BS_FAINTED
|
|
waitstate
|
|
printstring STRINGID_TRAINER2LOSETEXT
|
|
BattleScript_LocalBattleWonReward::
|
|
getmoneyreward
|
|
printstring STRINGID_PLAYERGOTMONEY
|
|
waitmessage 0x40
|
|
BattleScript_PayDayMoneyAndPickUpItems::
|
|
givepaydaymoney
|
|
pickup
|
|
end2
|
|
|
|
BattleScript_LocalBattleLost::
|
|
jumpifbattletype BATTLE_TYPE_DOME, BattleScript_CheckDomeDrew
|
|
jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_LocalBattleLostPrintTrainersWinText
|
|
jumpifbattletype BATTLE_TYPE_x4000000, BattleScript_LocalBattleLostPrintTrainersWinText
|
|
jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd
|
|
jumpifhalfword CMP_EQUAL, gTrainerBattleOpponent_A, 0x400, BattleScript_LocalBattleLostEnd
|
|
BattleScript_LocalBattleLostPrintWhiteOut::
|
|
printstring STRINGID_PLAYERWHITEOUT
|
|
waitmessage 0x40
|
|
printstring STRINGID_PLAYERWHITEOUT2
|
|
waitmessage 0x40
|
|
BattleScript_LocalBattleLostEnd::
|
|
end2
|
|
BattleScript_CheckDomeDrew::
|
|
jumpifbyte CMP_EQUAL, gBattleOutcome, B_OUTCOME_DREW, BattleScript_LocalBattleLostEnd_
|
|
BattleScript_LocalBattleLostPrintTrainersWinText::
|
|
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostPrintWhiteOut
|
|
returnopponentmon1toball BS_ATTACKER
|
|
waitstate
|
|
returnopponentmon2toball BS_ATTACKER
|
|
waitstate
|
|
trainerslidein BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_TRAINER1WINTEXT
|
|
jumpifbattletype BATTLE_TYPE_x800000, BattleScript_LocalBattleLostDoTrainer2WinText
|
|
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_
|
|
BattleScript_LocalBattleLostDoTrainer2WinText::
|
|
trainerslideout B_POSITION_OPPONENT_LEFT
|
|
waitstate
|
|
trainerslidein BS_FAINTED
|
|
waitstate
|
|
printstring STRINGID_TRAINER2WINTEXT
|
|
BattleScript_LocalBattleLostEnd_::
|
|
end2
|
|
|
|
BattleScript_82DAA0B::
|
|
returnopponentmon1toball BS_ATTACKER
|
|
waitstate
|
|
returnopponentmon2toball BS_ATTACKER
|
|
waitstate
|
|
trainerslidein BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_TRAINER1WINTEXT
|
|
trainerslideout B_POSITION_OPPONENT_LEFT
|
|
waitstate
|
|
trainerslidein BS_FAINTED
|
|
waitstate
|
|
printstring STRINGID_TRAINER2WINTEXT
|
|
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_82DAA31
|
|
atk57
|
|
BattleScript_82DAA31::
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_LinkBattleWonOrLost::
|
|
jumpifbattletype BATTLE_TYPE_BATTLE_TOWER, BattleScript_82DAA5C
|
|
printstring STRINGID_BATTLEEND
|
|
waitmessage 0x40
|
|
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_LinkBattleWonOrLostWaitEnd
|
|
atk57
|
|
BattleScript_LinkBattleWonOrLostWaitEnd::
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_82DAA5C::
|
|
playtrainerdefeatbgm BS_ATTACKER
|
|
printstring STRINGID_BATTLEEND
|
|
waitmessage 0x40
|
|
trainerslidein BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_TRAINER1LOSETEXT
|
|
trainerslideout B_POSITION_OPPONENT_LEFT
|
|
waitstate
|
|
trainerslidein BS_FAINTED
|
|
waitstate
|
|
printstring STRINGID_TRAINER2LOSETEXT
|
|
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_82DAA83
|
|
atk57
|
|
BattleScript_82DAA83::
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_FrontierTrainerBattleWon::
|
|
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 BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_TRAINER1LOSETEXT
|
|
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAACB
|
|
trainerslideout B_POSITION_OPPONENT_LEFT
|
|
waitstate
|
|
trainerslidein BS_FAINTED
|
|
waitstate
|
|
printstring STRINGID_TRAINER2LOSETEXT
|
|
BattleScript_82DAACB::
|
|
jumpifnotbattletype BATTLE_TYPE_PYRAMID, BattleScript_82DAADA
|
|
pickup
|
|
BattleScript_82DAADA::
|
|
end2
|
|
|
|
BattleScript_SmokeBallEscape::
|
|
playanimation BS_ATTACKER, B_ANIM_SMOKEBALL_ESCAPE, NULL
|
|
printstring STRINGID_PKMNFLEDUSINGITS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_RanAwayUsingMonAbility::
|
|
printstring STRINGID_PKMNFLEDUSING
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_GotAwaySafely::
|
|
printstring STRINGID_GOTAWAYSAFELY
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_WildMonFled::
|
|
printstring STRINGID_WILDPKMNFLED
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_PrintCantRunFromTrainer::
|
|
printstring STRINGID_NORUNNINGFROMTRAINERS
|
|
end2
|
|
|
|
BattleScript_PrintFailedToRunString::
|
|
printfromtable gNoEscapeStringIds
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_PrintCantEscapeFromBattle::
|
|
printselectionstringfromtable gNoEscapeStringIds
|
|
endselectionscript
|
|
|
|
BattleScript_PrintFullBox::
|
|
printselectionstring STRINGID_BOXISFULL
|
|
endselectionscript
|
|
|
|
BattleScript_ActionSwitch::
|
|
hpthresholds2 BS_ATTACKER
|
|
printstring STRINGID_RETURNMON
|
|
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_PursuitSwitchDmgSetMultihit
|
|
setmultihit 0x1
|
|
goto BattleScript_PursuitSwitchDmgLoop
|
|
BattleScript_PursuitSwitchDmgSetMultihit::
|
|
setmultihit 0x2
|
|
BattleScript_PursuitSwitchDmgLoop::
|
|
jumpifnopursuitswitchdmg BattleScript_DoSwitchOut
|
|
swapattackerwithtarget
|
|
trysetdestinybondtohappen
|
|
call BattleScript_PursuitDmgOnSwitchOut
|
|
swapattackerwithtarget
|
|
BattleScript_DoSwitchOut::
|
|
decrementmultihit BattleScript_PursuitSwitchDmgLoop
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
returnatktoball
|
|
waitstate
|
|
drawpartystatussummary BS_ATTACKER
|
|
switchhandleorder BS_ATTACKER, 0x1
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_ATTACKER
|
|
switchinanim BS_ATTACKER, FALSE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
setbyte sMOVEEND_STATE, 0x4
|
|
moveend 0x1, 0x0
|
|
setbyte sMOVEEND_STATE, 0xF
|
|
moveend 0x1, 0x0
|
|
end2
|
|
|
|
BattleScript_PursuitDmgOnSwitchOut::
|
|
pause 0x20
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage 0x40
|
|
resultmessage
|
|
waitmessage 0x40
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
setbyte sMOVEEND_STATE, 0x3
|
|
moveend 0x2, 0x6
|
|
various4 BS_TARGET
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, 0x0, BattleScript_PursuitDmgOnSwitchOutRet
|
|
setbyte sGIVEEXP_STATE, 0x0
|
|
getexp BS_TARGET
|
|
BattleScript_PursuitDmgOnSwitchOutRet::
|
|
return
|
|
|
|
BattleScript_Pausex20::
|
|
pause 0x20
|
|
return
|
|
|
|
BattleScript_LevelUp::
|
|
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
|
|
fanfare MUS_FANFA1
|
|
printstring STRINGID_PKMNLEARNEDMOVE
|
|
waitmessage 0x40
|
|
updatechoicemoveonlvlup BS_ATTACKER
|
|
goto BattleScript_TryLearnMoveLoop
|
|
BattleScript_LearnMoveReturn::
|
|
return
|
|
|
|
BattleScript_RainContinuesOrEnds::
|
|
printfromtable gRainContinuesStringIds
|
|
waitmessage 0x40
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_RainContinuesOrEndsEnd
|
|
playanimation BS_ATTACKER, B_ANIM_RAIN_CONTINUES, NULL
|
|
BattleScript_RainContinuesOrEndsEnd::
|
|
end2
|
|
|
|
BattleScript_DamagingWeatherContinues::
|
|
printfromtable gSandStormHailContinuesStringIds
|
|
waitmessage 0x40
|
|
playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL
|
|
setbyte gBattleCommunication, 0x0
|
|
BattleScript_DamagingWeatherLoop::
|
|
copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 0x1
|
|
weatherdamage
|
|
jumpifword CMP_EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement
|
|
jumpifword CMP_COMMON_BITS gBattleMoveDamage, 1 << 31, BattleScript_DamagingWeatherHeal
|
|
printfromtable gSandStormHailDmgStringIds
|
|
waitmessage 0x40
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
goto BattleScript_DamagingWeatherHpChange
|
|
BattleScript_DamagingWeatherHeal:
|
|
printstring STRINGID_ICEBODYHPGAIN
|
|
waitmessage 0x40
|
|
BattleScript_DamagingWeatherHpChange:
|
|
orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
atk24 BattleScript_DamagingWeatherLoopIncrement
|
|
BattleScript_DamagingWeatherLoopIncrement::
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd
|
|
addbyte gBattleCommunication, 0x1
|
|
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop
|
|
BattleScript_DamagingWeatherContinuesEnd::
|
|
bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
|
|
end2
|
|
|
|
BattleScript_SandStormHailEnds::
|
|
printfromtable gSandStormHailEndStringIds
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_SunlightContinues::
|
|
printstring STRINGID_SUNLIGHTSTRONG
|
|
waitmessage 0x40
|
|
playanimation BS_ATTACKER, B_ANIM_SUN_CONTINUES, NULL
|
|
end2
|
|
|
|
BattleScript_SunlightFaded::
|
|
printstring STRINGID_SUNLIGHTFADED
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_OverworldWeatherStarts::
|
|
printfromtable gWeatherContinuesStringIds
|
|
waitmessage 0x40
|
|
playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL
|
|
end3
|
|
|
|
BattleScript_SideStatusWoreOff::
|
|
printstring STRINGID_PKMNSXWOREOFF
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_AuroraVeilEnds::
|
|
printstring STRINGID_AURORAVEILENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_LuckyChantEnds::
|
|
printstring STRINGID_LUCKYCHANTENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_TailwindEnds::
|
|
printstring STRINGID_TAILWINDENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_TrickRoomEnds::
|
|
printstring STRINGID_TRICKROOMENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_WonderRoomEnds::
|
|
printstring STRINGID_WONDERROOMENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_MagicRoomEnds::
|
|
printstring STRINGID_MAGICROOMENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_ElectricTerrainEnds::
|
|
printstring STRINGID_ELECTRICTERRAINENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_MistyTerrainEnds::
|
|
printstring STRINGID_MISTYTERRAINENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_GrassyTerrainEnds::
|
|
printstring STRINGID_GRASSYTERRAINENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_PsychicTerrainEnds::
|
|
printstring STRINGID_PSYCHICTERRAINENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_MudSportEnds::
|
|
printstring STRINGID_MUDSPORTENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_WaterSportEnds::
|
|
printstring STRINGID_WATERSPORTENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_GravityEnds::
|
|
printstring STRINGID_GRAVITYENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_SafeguardProtected::
|
|
pause 0x20
|
|
printstring STRINGID_PKMNUSEDSAFEGUARD
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_SafeguardEnds::
|
|
pause 0x20
|
|
printstring STRINGID_PKMNSAFEGUARDEXPIRED
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_LeechSeedTurnDrain::
|
|
playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
copyword gBattleMoveDamage, gHpDealt
|
|
jumpifability BS_ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedTurnPrintLiquidOoze
|
|
manipulatedamage ATK80_DMG_CHANGE_SIGN
|
|
setbyte cMULTISTRING_CHOOSER, 0x3
|
|
goto BattleScript_LeechSeedTurnPrintAndUpdateHp
|
|
BattleScript_LeechSeedTurnPrintLiquidOoze::
|
|
setbyte cMULTISTRING_CHOOSER, 0x4
|
|
BattleScript_LeechSeedTurnPrintAndUpdateHp::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printfromtable gLeechSeedStringIds
|
|
waitmessage 0x40
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
end2
|
|
|
|
BattleScript_BideStoringEnergy::
|
|
printstring STRINGID_PKMNSTORINGENERGY
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BideAttack::
|
|
attackcanceler
|
|
setmoveeffect MOVE_EFFECT_CHARGING
|
|
clearstatusfromeffect BS_ATTACKER
|
|
printstring STRINGID_PKMNUNLEASHEDENERGY
|
|
waitmessage 0x40
|
|
accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
copyword gBattleMoveDamage, sBIDE_DMG
|
|
adjustdamage
|
|
setbyte sB_ANIM_TURN, 0x1
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
resultmessage
|
|
waitmessage 0x40
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BideNoEnergyToAttack::
|
|
attackcanceler
|
|
setmoveeffect MOVE_EFFECT_CHARGING
|
|
clearstatusfromeffect BS_ATTACKER
|
|
printstring STRINGID_PKMNUNLEASHEDENERGY
|
|
waitmessage 0x40
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_SuccessForceOut::
|
|
attackanimation
|
|
waitanimation
|
|
switchoutabilities BS_TARGET
|
|
returntoball BS_TARGET
|
|
waitstate
|
|
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_TrainerBattleForceOut
|
|
setoutcomeonteleport BS_ATTACKER
|
|
finishaction
|
|
|
|
BattleScript_TrainerBattleForceOut::
|
|
getswitchedmondata BS_TARGET
|
|
switchindataupdate BS_TARGET
|
|
switchinanim BS_TARGET, FALSE
|
|
waitstate
|
|
printstring STRINGID_PKMNWASDRAGGEDOUT
|
|
switchineffects BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MistProtected::
|
|
pause 0x20
|
|
printstring STRINGID_PKMNPROTECTEDBYMIST
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_RageIsBuilding::
|
|
printstring STRINGID_PKMNRAGEBUILDING
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_MoveUsedIsDisabled::
|
|
printstring STRINGID_PKMNMOVEISDISABLED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingDisabledMove::
|
|
printselectionstring STRINGID_PKMNMOVEISDISABLED
|
|
endselectionscript
|
|
|
|
BattleScript_DisabledNoMore::
|
|
printstring STRINGID_PKMNMOVEDISABLEDNOMORE
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_SelectingDisabledMoveInPalace::
|
|
printstring STRINGID_PKMNMOVEISDISABLED
|
|
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 BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
return
|
|
|
|
BattleScript_DmgHazardsOnAttacker::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
call BattleScript_PrintHurtByDmgHazards
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
tryfaintmon BS_ATTACKER, TRUE, BattleScript_DmgHazardsOnAttackerFainted
|
|
return
|
|
|
|
BattleScript_DmgHazardsOnAttackerFainted::
|
|
setbyte sGIVEEXP_STATE, 0x0
|
|
getexp BS_ATTACKER
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x0, 0x0
|
|
goto BattleScript_HandleFaintedMon
|
|
|
|
BattleScript_DmgHazardsOnTarget::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
call BattleScript_PrintHurtByDmgHazards
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
tryfaintmon BS_TARGET, TRUE, BattleScript_DmgHazardsOnTargetFainted
|
|
return
|
|
|
|
BattleScript_DmgHazardsOnTargetFainted::
|
|
setbyte sGIVEEXP_STATE, 0x0
|
|
getexp BS_TARGET
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x0, 0x0
|
|
goto BattleScript_HandleFaintedMon
|
|
|
|
BattleScript_DmgHazardsOnFaintedBattler::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_FAINTED
|
|
datahpupdate BS_FAINTED
|
|
call BattleScript_PrintHurtByDmgHazards
|
|
tryfaintmon BS_FAINTED, FALSE, NULL
|
|
tryfaintmon BS_FAINTED, TRUE, BattleScript_DmgHazardsOnFaintedBattlerFainted
|
|
return
|
|
|
|
BattleScript_DmgHazardsOnFaintedBattlerFainted::
|
|
setbyte sGIVEEXP_STATE, 0x0
|
|
getexp BS_FAINTED
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x0, 0x0
|
|
goto BattleScript_HandleFaintedMon
|
|
|
|
BattleScript_PrintHurtByDmgHazards::
|
|
printfromtable gDmgHazardsStringIds
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_ToxicSpikesAbsorbed::
|
|
printstring STRINGID_TOXICSPIKESABSORBED
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_ToxicSpikesPoisoned::
|
|
printstring STRINGID_TOXICSPIKESPOISONED
|
|
waitmessage 0x40
|
|
statusanimation BS_SCRIPTING
|
|
updatestatusicon BS_SCRIPTING
|
|
waitstate
|
|
return
|
|
|
|
BattleScript_StickyWebOnSwitchIn::
|
|
savetarget
|
|
copybyte gBattlerTarget sBANK
|
|
printstring STRINGID_STICKYWEBSWITCHIN
|
|
waitmessage 0x40
|
|
statbuffchange 0x1, BattleScript_StickyWebOnSwitchInEnd
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_StickyWebOnSwitchInStatAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StickyWebOnSwitchInEnd
|
|
pause 0x20
|
|
goto BattleScript_StickyWebOnSwitchInPrintStatMsg
|
|
BattleScript_StickyWebOnSwitchInStatAnim:
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_StickyWebOnSwitchInPrintStatMsg:
|
|
printfromtable gStatDownStringIds
|
|
waitmessage 0x40
|
|
BattleScript_StickyWebOnSwitchInEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_PerishSongTakesLife::
|
|
printstring STRINGID_PKMNPERISHCOUNTFELL
|
|
waitmessage 0x40
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
end2
|
|
|
|
BattleScript_PerishSongCountGoesDown::
|
|
printstring STRINGID_PKMNPERISHCOUNTFELL
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_AllStatsUp::
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_AllStatsUpAtk
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_AllStatsUpAtk
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, 0xC, BattleScript_AllStatsUpAtk
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_AllStatsUpAtk
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_AllStatsUpRet
|
|
BattleScript_AllStatsUpAtk::
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0x0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_AllStatsUpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_AllStatsUpDef::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_AllStatsUpSpeed::
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_AllStatsUpSpAtk::
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_AllStatsUpSpDef::
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_AllStatsUpRet
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_AllStatsUpRet::
|
|
return
|
|
|
|
BattleScript_RapidSpinAway::
|
|
rapidspinfree
|
|
return
|
|
|
|
BattleScript_WrapFree::
|
|
printstring STRINGID_PKMNGOTFREE
|
|
waitmessage 0x40
|
|
copybyte gBattlerTarget, sBANK
|
|
return
|
|
|
|
BattleScript_LeechSeedFree::
|
|
printstring STRINGID_PKMNSHEDLEECHSEED
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_SpikesFree::
|
|
printstring STRINGID_PKMNBLEWAWAYSPIKES
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_ToxicSpikesFree::
|
|
printstring STRINGID_PKMNBLEWAWAYTOXICSPIKES
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_StickyWebFree::
|
|
printstring STRINGID_PKMNBLEWAWAYSTICKYWEB
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_StealthRockFree::
|
|
printstring STRINGID_PKMNBLEWAWAYSTEALTHROCK
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_MonTookFutureAttack::
|
|
printstring STRINGID_PKMNTOOKATTACK
|
|
waitmessage 0x40
|
|
jumpifbyte CMP_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::
|
|
adjustdamage
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_FutureHitAnimDoomDesire
|
|
playanimation BS_ATTACKER, B_ANIM_FUTURE_SIGHT_HIT, NULL
|
|
goto BattleScript_DoFutureAttackHit
|
|
BattleScript_FutureHitAnimDoomDesire::
|
|
playanimation BS_ATTACKER, B_ANIM_DOOM_DESIRE_HIT, NULL
|
|
BattleScript_DoFutureAttackHit::
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
resultmessage
|
|
waitmessage 0x40
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
atk24 BattleScript_FutureAttackEnd
|
|
BattleScript_FutureAttackEnd::
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x1, 0x0
|
|
setbyte sMOVEEND_STATE, 0xB
|
|
moveend 0x2, 0xE
|
|
sethword gMoveResultFlags, 0
|
|
end2
|
|
|
|
BattleScript_FutureAttackMiss::
|
|
pause 0x20
|
|
sethword gMoveResultFlags, 0
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
resultmessage
|
|
waitmessage 0x40
|
|
sethword gMoveResultFlags, 0
|
|
end2
|
|
|
|
BattleScript_NoMovesLeft::
|
|
printselectionstring STRINGID_PKMNHASNOMOVESLEFT
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingMoveWithNoPP::
|
|
printselectionstring STRINGID_NOPPLEFT
|
|
endselectionscript
|
|
|
|
BattleScript_NoPPForMove::
|
|
attackstring
|
|
pause 0x20
|
|
printstring STRINGID_BUTNOPPLEFT
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingTormentedMove::
|
|
printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT
|
|
endselectionscript
|
|
|
|
BattleScript_MoveUsedIsTormented::
|
|
printstring STRINGID_PKMNCANTUSEMOVETORMENT
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingTormentedMoveInPalace::
|
|
printstring STRINGID_PKMNCANTUSEMOVETORMENT
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_SelectingNotAllowedMoveTaunt::
|
|
printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT
|
|
endselectionscript
|
|
|
|
BattleScript_MoveUsedIsTaunted::
|
|
printstring STRINGID_PKMNCANTUSEMOVETAUNT
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingNotAllowedMoveTauntInPalace::
|
|
printstring STRINGID_PKMNCANTUSEMOVETAUNT
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_SelectingNotAllowedMoveGravity::
|
|
printselectionstring STRINGID_GRAVITYPREVENTSUSAGE
|
|
endselectionscript
|
|
|
|
BattleScript_MoveUsedGravityPrevents::
|
|
printstring STRINGID_GRAVITYPREVENTSUSAGE
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingNotAllowedMoveGravityInPalace::
|
|
printstring STRINGID_GRAVITYPREVENTSUSAGE
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_SelectingNotAllowedMoveHealBlock::
|
|
printselectionstring STRINGID_GRAVITYPREVENTSUSAGE
|
|
endselectionscript
|
|
|
|
BattleScript_MoveUsedHealBlockPrevents::
|
|
printstring STRINGID_GRAVITYPREVENTSUSAGE
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingNotAllowedMoveHealBlockInPalace::
|
|
printstring STRINGID_GRAVITYPREVENTSUSAGE
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_WishComesTrue::
|
|
trywish 0x1, BattleScript_WishButFullHp
|
|
playanimation BS_TARGET, B_ANIM_WISH_HEAL, NULL
|
|
printstring STRINGID_PKMNWISHCAMETRUE
|
|
waitmessage 0x40
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_WishButFullHp::
|
|
printstring STRINGID_PKMNWISHCAMETRUE
|
|
waitmessage 0x40
|
|
pause 0x20
|
|
printstring STRINGID_PKMNHPFULL
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_IngrainTurnHeal::
|
|
playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL, NULL
|
|
printstring STRINGID_PKMNABSORBEDNUTRIENTS
|
|
BattleScript_TurnHeal:
|
|
waitmessage 0x40
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_AquaRingHeal::
|
|
playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL, NULL
|
|
printstring STRINGID_AQUARINGHEAL
|
|
goto BattleScript_TurnHeal
|
|
|
|
BattleScript_PrintMonIsRooted::
|
|
pause 0x20
|
|
printstring STRINGID_PKMNANCHOREDITSELF
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AtkDefDown::
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_ATK, ATK48_DONT_CHECK_LOWER | ATK48_STAT_NEGATIVE | ATK48_ONLY_MULTIPLE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK, ATK48_DONT_CHECK_LOWER | ATK48_STAT_NEGATIVE
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | 0x1, BattleScript_82DB144
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144
|
|
printfromtable gStatDownStringIds
|
|
waitmessage 0x40
|
|
BattleScript_82DB144::
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF, ATK48_DONT_CHECK_LOWER | ATK48_STAT_NEGATIVE
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | 0x1, BattleScript_82DB167
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167
|
|
printfromtable gStatDownStringIds
|
|
waitmessage 0x40
|
|
BattleScript_82DB167::
|
|
return
|
|
|
|
BattleScript_KnockedOff::
|
|
playanimation BS_TARGET, B_ANIM_ITEM_KNOCKOFF, NULL
|
|
printstring STRINGID_PKMNKNOCKEDOFF
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_MoveUsedIsImprisoned::
|
|
printstring STRINGID_PKMNCANTUSEMOVESEALED
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingImprisionedMove::
|
|
printselectionstring STRINGID_PKMNCANTUSEMOVESEALED
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingImprisionedMoveInPalace::
|
|
printstring STRINGID_PKMNCANTUSEMOVESEALED
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_GrudgeTakesPp::
|
|
printstring STRINGID_PKMNLOSTPPGRUDGE
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_MagicCoatBounce::
|
|
attackstring
|
|
ppreduce
|
|
pause 0x20
|
|
printfromtable gMagicCoatBounceStringIds
|
|
waitmessage 0x40
|
|
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000
|
|
setmagiccoattarget BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_SnatchedMove::
|
|
attackstring
|
|
ppreduce
|
|
snatchsetbattlers
|
|
playanimation BS_TARGET, B_ANIM_SNATCH_MOVE, NULL
|
|
printstring STRINGID_PKMNSNATCHEDMOVE
|
|
waitmessage 0x40
|
|
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000
|
|
swapattackerwithtarget
|
|
return
|
|
|
|
BattleScript_EnduredMsg::
|
|
printstring STRINGID_PKMNENDUREDHIT
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_SturdiedMsg::
|
|
printstring STRINGID_ENDUREDSTURDY
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_OneHitKOMsg::
|
|
printstring STRINGID_ONEHITKO
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_SAtkDown2::
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPATK, ATK48_DONT_CHECK_LOWER | ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO
|
|
setstatchanger STAT_SPATK, 2, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | 0x1, BattleScript_SAtkDown2End
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SAtkDown2End
|
|
printfromtable gStatDownStringIds
|
|
waitmessage 0x40
|
|
BattleScript_SAtkDown2End::
|
|
return
|
|
|
|
BattleScript_FocusPunchSetUp::
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 0x1
|
|
playanimation BS_ATTACKER, B_ANIM_x14, NULL
|
|
printstring STRINGID_PKMNTIGHTENINGFOCUS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_MoveUsedIsAsleep::
|
|
printstring STRINGID_PKMNFASTASLEEP
|
|
waitmessage 0x40
|
|
statusanimation BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveUsedWokeUp::
|
|
bicword gHitMarker, HITMARKER_x10
|
|
printfromtable gWokeUpStringIds
|
|
waitmessage 0x40
|
|
updatestatusicon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_MonWokeUpInUproar::
|
|
printstring STRINGID_PKMNWOKEUPINUPROAR
|
|
waitmessage 0x40
|
|
updatestatusicon BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_PoisonTurnDmg::
|
|
printstring STRINGID_PKMNHURTBYPOISON
|
|
waitmessage 0x40
|
|
BattleScript_DoStatusTurnDmg::
|
|
statusanimation BS_ATTACKER
|
|
BattleScript_DoTurnDmg::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
atk24 BattleScript_DoTurnDmgEnd
|
|
BattleScript_DoTurnDmgEnd::
|
|
end2
|
|
|
|
BattleScript_PoisonHealActivates::
|
|
printstring STRINGID_POISONHEALHPUP
|
|
waitmessage 0x40
|
|
recordability BS_ATTACKER
|
|
statusanimation BS_ATTACKER
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_BurnTurnDmg::
|
|
printstring STRINGID_PKMNHURTBYBURN
|
|
waitmessage 0x40
|
|
goto BattleScript_DoStatusTurnDmg
|
|
|
|
BattleScript_MoveUsedIsFrozen::
|
|
printstring STRINGID_PKMNISFROZEN
|
|
waitmessage 0x40
|
|
statusanimation BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveUsedUnfroze::
|
|
printfromtable gGotDefrostedStringIds
|
|
waitmessage 0x40
|
|
updatestatusicon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_DefrostedViaFireMove::
|
|
printstring STRINGID_PKMNWASDEFROSTED
|
|
waitmessage 0x40
|
|
updatestatusicon BS_TARGET
|
|
return
|
|
|
|
BattleScript_MoveUsedIsParalyzed::
|
|
printstring STRINGID_PKMNISPARALYZED
|
|
waitmessage 0x40
|
|
statusanimation BS_ATTACKER
|
|
cancelmultiturnmoves BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveUsedFlinched::
|
|
printstring STRINGID_PKMNFLINCHED
|
|
waitmessage 0x40
|
|
jumpifability BS_ATTACKER ABILITY_STEADFAST BattleScript_TryActivateSteadFast
|
|
BattleScript_MoveUsedFlinchedEnd:
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_TryActivateSteadFast:
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_MoveUsedFlinchedEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_MoveUsedFlinchedEnd
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
setbyte gBattleCommunication STAT_SPEED
|
|
stattextbuffer BS_ATTACKER
|
|
printstring STRINGID_TARGETABILITYSTATRAISE
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveUsedFlinchedEnd
|
|
|
|
BattleScript_PrintUproarOverTurns::
|
|
printfromtable gUproarOverTurnStringIds
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_ThrashConfuses::
|
|
chosenstatus2animation BS_ATTACKER, STATUS2_CONFUSION
|
|
printstring STRINGID_PKMNFATIGUECONFUSION
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_MoveUsedIsConfused::
|
|
printstring STRINGID_PKMNISCONFUSED
|
|
waitmessage 0x40
|
|
status2animation BS_ATTACKER, STATUS2_CONFUSION
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_MoveUsedIsConfusedRet
|
|
BattleScript_DoSelfConfusionDmg::
|
|
cancelmultiturnmoves BS_ATTACKER
|
|
adjustdamage
|
|
printstring STRINGID_ITHURTCONFUSION
|
|
waitmessage 0x40
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
waitstate
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
resultmessage
|
|
waitmessage 0x40
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_MoveUsedIsConfusedRet::
|
|
return
|
|
|
|
BattleScript_MoveUsedIsConfusedNoMore::
|
|
printstring STRINGID_PKMNHEALEDCONFUSION
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_PrintPayDayMoneyString::
|
|
printstring STRINGID_PKMNPICKEDUPITEM
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_WrapTurnDmg::
|
|
playanimation BS_ATTACKER, B_ANIM_TURN_TRAP, sB_ANIM_ARG1
|
|
printstring STRINGID_PKMNHURTBY
|
|
waitmessage 0x40
|
|
goto BattleScript_DoTurnDmg
|
|
|
|
BattleScript_WrapEnds::
|
|
printstring STRINGID_PKMNFREEDFROM
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_MoveUsedIsInLove::
|
|
printstring STRINGID_PKMNINLOVE
|
|
waitmessage 0x40
|
|
status2animation BS_ATTACKER, STATUS2_INFATUATION
|
|
return
|
|
|
|
BattleScript_MoveUsedIsParalyzedCantAttack::
|
|
printstring STRINGID_PKMNIMMOBILIZEDBYLOVE
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_NightmareTurnDmg::
|
|
printstring STRINGID_PKMNLOCKEDINNIGHTMARE
|
|
waitmessage 0x40
|
|
status2animation BS_ATTACKER, STATUS2_NIGHTMARE
|
|
goto BattleScript_DoTurnDmg
|
|
|
|
BattleScript_CurseTurnDmg::
|
|
printstring STRINGID_PKMNAFFLICTEDBYCURSE
|
|
waitmessage 0x40
|
|
status2animation BS_ATTACKER, STATUS2_CURSED
|
|
goto BattleScript_DoTurnDmg
|
|
|
|
BattleScript_TargetPRLZHeal::
|
|
printstring STRINGID_PKMNHEALEDPARALYSIS
|
|
waitmessage 0x40
|
|
updatestatusicon BS_TARGET
|
|
return
|
|
|
|
BattleScript_MoveEffectSleep::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printfromtable gFellAsleepStringIds
|
|
waitmessage 0x40
|
|
BattleScript_UpdateEffectStatusIconRet::
|
|
updatestatusicon BS_EFFECT_BATTLER
|
|
waitstate
|
|
return
|
|
|
|
BattleScript_YawnMakesAsleep::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printstring STRINGID_PKMNFELLASLEEP
|
|
waitmessage 0x40
|
|
updatestatusicon BS_EFFECT_BATTLER
|
|
waitstate
|
|
makevisible BS_EFFECT_BATTLER
|
|
end2
|
|
|
|
BattleScript_EmbargoEndTurn::
|
|
printstring STRINGID_EMBARGOENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_MagnetRiseEndTurn::
|
|
printstring STRINGID_MAGNETRISEENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_TelekinesisEndTurn::
|
|
printstring STRINGID_TELEKINESISENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_HealBlockEndTurn::
|
|
printstring STRINGID_HEALBLOCKENDS
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_MoveEffectPoison::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printfromtable gGotPoisonedStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_UpdateEffectStatusIconRet
|
|
|
|
BattleScript_MoveEffectBurn::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printfromtable gGotBurnedStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_UpdateEffectStatusIconRet
|
|
|
|
BattleScript_MoveEffectFreeze::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printfromtable gGotFrozenStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_UpdateEffectStatusIconRet
|
|
|
|
BattleScript_MoveEffectParalysis::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printfromtable gGotParalyzedStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_UpdateEffectStatusIconRet
|
|
|
|
BattleScript_MoveEffectUproar::
|
|
printstring STRINGID_PKMNCAUSEDUPROAR
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_MoveEffectToxic::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printstring STRINGID_PKMNBADLYPOISONED
|
|
waitmessage 0x40
|
|
goto BattleScript_UpdateEffectStatusIconRet
|
|
|
|
BattleScript_MoveEffectPayDay::
|
|
printstring STRINGID_COINSSCATTERED
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_MoveEffectWrap::
|
|
printfromtable gWrappedStringIds
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_MoveEffectConfusion::
|
|
chosenstatus2animation BS_EFFECT_BATTLER, STATUS2_CONFUSION
|
|
printstring STRINGID_PKMNWASCONFUSED
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_MoveEffectRecoil33::
|
|
jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil33
|
|
jumpifability BS_ATTACKER, ABILITY_ROCK_HEAD, BattleScript_Recoil33End
|
|
BattleScript_DoRecoil33::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_PKMNHITWITHRECOIL
|
|
waitmessage 0x40
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
BattleScript_Recoil33End::
|
|
return
|
|
|
|
BattleScript_ItemSteal::
|
|
playanimation BS_TARGET, B_ANIM_ITEM_STEAL, NULL
|
|
printstring STRINGID_PKMNSTOLEITEM
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_DrizzleActivates::
|
|
pause 0x20
|
|
printstring STRINGID_PKMNMADEITRAIN
|
|
waitstate
|
|
playanimation BS_BATTLER_0, B_ANIM_RAIN_CONTINUES, NULL
|
|
call BattleScript_WeatherFormChanges
|
|
end3
|
|
|
|
BattleScript_SpeedBoostActivates::
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_PKMNRAISEDSPEED
|
|
waitmessage 0x40
|
|
end3
|
|
|
|
BattleScript_TraceActivates::
|
|
pause 0x20
|
|
printstring STRINGID_PKMNTRACED
|
|
waitmessage 0x40
|
|
switchinabilities BS_ATTACKER
|
|
end3
|
|
|
|
BattleScript_RainDishActivates::
|
|
printstring STRINGID_PKMNSXRESTOREDHPALITTLE2
|
|
waitmessage 0x40
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
end3
|
|
|
|
BattleScript_HarvestActivates::
|
|
pause 0x5
|
|
printstring STRINGID_HARVESTBERRY
|
|
waitmessage 0x40
|
|
end3
|
|
|
|
BattleScript_SolarPowerActivates::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_SOLARPOWERHPDROP
|
|
waitmessage 0x40
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
end3
|
|
|
|
BattleScript_SandstreamActivates::
|
|
pause 0x20
|
|
printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM
|
|
waitstate
|
|
playanimation BS_BATTLER_0, B_ANIM_SANDSTORM_CONTINUES, NULL
|
|
call BattleScript_WeatherFormChanges
|
|
end3
|
|
|
|
BattleScript_ShedSkinActivates::
|
|
printstring STRINGID_PKMNSXCUREDYPROBLEM
|
|
waitmessage 0x40
|
|
updatestatusicon BS_ATTACKER
|
|
end3
|
|
|
|
BattleScript_WeatherFormChanges::
|
|
setbyte sBANK, 0x0
|
|
BattleScript_WeatherFormChangesLoop::
|
|
trycastformdatachange
|
|
addbyte sBANK, 0x1
|
|
jumpifbytenotequal sBANK, gBattlersCount, 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 gBattlerTarget, 0x0
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
BattleScript_82DB4CD::
|
|
trygetintimidatetarget BattleScript_82DB51B
|
|
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_82DB510
|
|
jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_82DB51C
|
|
jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_82DB51C
|
|
jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_82DB51C
|
|
statbuffchange 0x21, BattleScript_82DB510
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DB510
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_PKMNCUTSATTACKWITH
|
|
waitmessage 0x40
|
|
BattleScript_82DB510::
|
|
addbyte gBattlerTarget, 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 BS_BATTLER_0, B_ANIM_SUN_CONTINUES, NULL
|
|
call BattleScript_WeatherFormChanges
|
|
end3
|
|
|
|
BattleScript_SnowWarningActivates::
|
|
pause 0x20
|
|
printstring STRINGID_SNOWWARNINGHAIL
|
|
waitstate
|
|
playanimation BS_BATTLER_0, B_ANIM_HAIL_CONTINUES, NULL
|
|
call BattleScript_WeatherFormChanges
|
|
end3
|
|
|
|
BattleScript_BadDreamsActivates::
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_BadDreamsLoop:
|
|
trygetbaddreamstarget BattleScript_BadDreamsEnd
|
|
dmg_1_8_targethp
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
printstring STRINGID_BADDREAMSDMG
|
|
waitmessage 0x40
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
tryfaintmon BS_TARGET, FALSE, NULL
|
|
atk24 BattleScript_BadDreamsIncrement
|
|
BattleScript_BadDreamsIncrement:
|
|
addbyte gBattlerTarget, 1
|
|
goto BattleScript_BadDreamsLoop
|
|
BattleScript_BadDreamsEnd:
|
|
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 BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printstring STRINGID_PKMNRESTOREDHPUSING
|
|
waitmessage 0x40
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveStatDrain_PPLoss::
|
|
ppreduce
|
|
BattleScript_MoveStatDrain::
|
|
attackstring
|
|
pause 0x20
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
waitanimation
|
|
printstring STRINGID_TARGETABILITYSTATRAISE
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MonMadeMoveUseless_PPLoss::
|
|
ppreduce
|
|
BattleScript_MonMadeMoveUseless::
|
|
attackstring
|
|
pause 0x20
|
|
printstring STRINGID_PKMNSXMADEYUSELESS
|
|
waitmessage 0x40
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_FlashFireBoost_PPLoss::
|
|
ppreduce
|
|
BattleScript_FlashFireBoost::
|
|
attackstring
|
|
pause 0x20
|
|
printfromtable gFlashFireStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_MoveEnd
|
|
|
|
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
|
|
|
|
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_CursedBodyActivates::
|
|
printstring STRINGID_CUSEDBODYDISABLED
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_MummyActivates::
|
|
printstring STRINGID_ATTACKERACQUIREDABILITY
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_AngryPointActivates::
|
|
setbyte sB_ANIM_ARG1 0x38
|
|
setbyte sB_ANIM_ARG2 0x0
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_ANGRYPOINTACTIVATES
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_TargetAbilityStatRaise::
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
waitanimation
|
|
printstring STRINGID_TARGETABILITYSTATRAISE
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_WeakArmorActivates::
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange 0x1, BattleScript_WeakArmorActivatesSpeed
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_WeakArmorDefAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_WeakArmorActivatesSpeed
|
|
pause 0x10
|
|
printfromtable gStatDownStringIds
|
|
waitmessage 0x40
|
|
goto BattleScript_WeakArmorActivatesSpeed
|
|
BattleScript_WeakArmorDefAnim:
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_TARGETABILITYSTATLOWER
|
|
waitmessage 0x40
|
|
BattleScript_WeakArmorActivatesSpeed:
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange 0x1, BattleScript_WeakArmorActivatesEnd
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_WeakArmorSpeedAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_WeakArmorActivatesEnd
|
|
pause 0x10
|
|
printstring STRINGID_TARGETSTATWONTGOHIGHER
|
|
waitmessage 0x40
|
|
goto BattleScript_WeakArmorActivatesEnd
|
|
BattleScript_WeakArmorSpeedAnim:
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_TARGETABILITYSTATRAISE
|
|
waitmessage 0x40
|
|
BattleScript_WeakArmorActivatesEnd:
|
|
return
|
|
|
|
BattleScript_AttackerAbilityStatRaise::
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
waitanimation
|
|
printstring STRINGID_ATTACKERABILITYSTATRAISE
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_FellStingerRaisesStat::
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_FellStingerRaisesAtkEnd
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_FellStingerRaisesAtkEnd
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
BattleScript_FellStingerRaisesAtkEnd:
|
|
return
|
|
|
|
BattleScript_AttackerAbilityStatRaiseEnd3::
|
|
call BattleScript_AttackerAbilityStatRaise
|
|
end3
|
|
|
|
BattleScript_SwitchInAbilityMsg::
|
|
printfromtable gSwitchInAbilityStringIds
|
|
waitmessage 0x40
|
|
end3
|
|
|
|
BattleScript_ImposterActivates::
|
|
transformdataexecution
|
|
playmoveanimation BS_ATTACKER MOVE_TRANSFORM
|
|
waitanimation
|
|
printstring STRINGID_IMPOSTERTRANSFORM
|
|
waitmessage 0x40
|
|
end3
|
|
|
|
BattleScript_RoughSkinActivates::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_PKMNHURTSWITH
|
|
waitmessage 0x40
|
|
tryfaintmon BS_ATTACKER, FALSE, NULL
|
|
return
|
|
|
|
BattleScript_CuteCharmActivates::
|
|
status2animation BS_ATTACKER, STATUS2_INFATUATION
|
|
printstring STRINGID_PKMNSXINFATUATEDY
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_ApplySecondaryEffect::
|
|
waitstate
|
|
seteffectsecondary
|
|
return
|
|
|
|
BattleScript_SynchronizeActivates::
|
|
waitstate
|
|
seteffectprimary
|
|
return
|
|
|
|
BattleScript_NoItemSteal::
|
|
pause 0x20
|
|
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_AbilityCuredStatus::
|
|
printstring STRINGID_PKMNSXCUREDITSYPROBLEM
|
|
waitmessage 0x40
|
|
updatestatusicon BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_82DB695::
|
|
printstring STRINGID_PKMNIGNORESASLEEP
|
|
waitmessage 0x40
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x2, 0x10
|
|
end
|
|
|
|
BattleScript_IgnoresAndUsesRandomMove::
|
|
printstring STRINGID_PKMNIGNOREDORDERS
|
|
waitmessage 0x40
|
|
jumptorandomattack FALSE
|
|
|
|
BattleScript_MoveUsedLoafingAround::
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x4, BattleScript_82DB6C7
|
|
setbyte gBattleCommunication, 0x0
|
|
various24 BS_ATTACKER
|
|
setbyte cMULTISTRING_CHOOSER, 0x4
|
|
BattleScript_82DB6C7::
|
|
printfromtable gInobedientStringIds
|
|
waitmessage 0x40
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x2, 0x10
|
|
end
|
|
|
|
BattleScript_IgnoresAndFallsAsleep::
|
|
printstring STRINGID_PKMNBEGANTONAP
|
|
waitmessage 0x40
|
|
setmoveeffect MOVE_EFFECT_SLEEP | MOVE_EFFECT_AFFECTS_USER
|
|
seteffectprimary
|
|
setbyte sMOVEEND_STATE, 0x0
|
|
moveend 0x2, 0x10
|
|
end
|
|
|
|
BattleScript_82DB6F0::
|
|
printstring STRINGID_PKMNWONTOBEY
|
|
waitmessage 0x40
|
|
goto BattleScript_DoSelfConfusionDmg
|
|
|
|
BattleScript_SubstituteFade::
|
|
playanimation BS_TARGET, B_ANIM_SUBSTITUTE_FADE, NULL
|
|
printstring STRINGID_PKMNSUBSTITUTEFADED
|
|
return
|
|
|
|
BattleScript_BerryCurePrlzEnd2::
|
|
call BattleScript_BerryCureParRet
|
|
end2
|
|
|
|
BattleScript_BerryCureParRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNSITEMCUREDPARALYSIS
|
|
waitmessage 0x40
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCurePsnEnd2::
|
|
call BattleScript_BerryCurePsnRet
|
|
end2
|
|
|
|
BattleScript_BerryCurePsnRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNSITEMCUREDPOISON
|
|
waitmessage 0x40
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCureBrnEnd2::
|
|
call BattleScript_BerryCureBrnRet
|
|
end2
|
|
|
|
BattleScript_BerryCureBrnRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNSITEMHEALEDBURN
|
|
waitmessage 0x40
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCureFrzEnd2::
|
|
call BattleScript_BerryCureFrzRet
|
|
end2
|
|
|
|
BattleScript_BerryCureFrzRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNSITEMDEFROSTEDIT
|
|
waitmessage 0x40
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCureSlpEnd2::
|
|
call BattleScript_BerryCureSlpRet
|
|
end2
|
|
|
|
BattleScript_BerryCureSlpRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNSITEMWOKEIT
|
|
waitmessage 0x40
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCureConfusionEnd2::
|
|
call BattleScript_BerryCureConfusionRet
|
|
end2
|
|
|
|
BattleScript_BerryCureConfusionRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNSITEMSNAPPEDOUT
|
|
waitmessage 0x40
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCureChosenStatusEnd2::
|
|
call BattleScript_BerryCureChosenStatusRet
|
|
end2
|
|
|
|
BattleScript_BerryCureChosenStatusRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
|
|
printfromtable gBerryEffectStringIds
|
|
waitmessage 0x40
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_WhiteHerbEnd2::
|
|
call BattleScript_WhiteHerbRet
|
|
end2
|
|
|
|
BattleScript_WhiteHerbRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNSITEMRESTOREDSTATUS
|
|
waitmessage 0x40
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_ItemHealHP_RemoveItem::
|
|
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
|
|
waitmessage 0x40
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
removeitem BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_BerryPPHealEnd2::
|
|
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNSITEMRESTOREDPP
|
|
waitmessage 0x40
|
|
removeitem BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_ItemHealHP_End2::
|
|
call BattleScript_ItemHealHP_Ret
|
|
end2
|
|
|
|
BattleScript_ItemHealHP_Ret::
|
|
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE
|
|
waitmessage 0x40
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_SelectingNotAllowedMoveChoiceItem::
|
|
printselectionstring STRINGID_ITEMALLOWSONLYYMOVE
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingNotAllowedMoveAssaultVest::
|
|
printselectionstring STRINGID_ASSAULTVESTDOESNTALLOW
|
|
endselectionscript
|
|
|
|
BattleScript_HangedOnMsg::
|
|
playanimation BS_TARGET, B_ANIM_HANGED_ON, NULL
|
|
printstring STRINGID_PKMNHUNGONWITHX
|
|
waitmessage 0x40
|
|
return
|
|
|
|
BattleScript_BerryConfuseHealEnd2::
|
|
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
|
|
waitmessage 0x40
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_FORXCOMMAYZ
|
|
waitmessage 0x40
|
|
setmoveeffect MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER
|
|
seteffectprimary
|
|
removeitem BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_BerryStatRaiseEnd2::
|
|
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | 0x1, BattleScript_82DB85B
|
|
BattleScript_82DB85B::
|
|
setbyte cMULTISTRING_CHOOSER, 0x4
|
|
call BattleScript_StatUp
|
|
removeitem BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_BerryFocusEnergyEnd2::
|
|
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
|
|
printstring STRINGID_PKMNUSEDXTOGETPUMPED
|
|
waitmessage 0x40
|
|
removeitem BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_ActionSelectionItemsCantBeUsed::
|
|
printselectionstring STRINGID_ITEMSCANTBEUSEDNOW
|
|
endselectionscript
|
|
|
|
BattleScript_82DB87D::
|
|
printstring STRINGID_EMPTYSTRING3
|
|
return
|
|
|
|
BattleScript_82DB881::
|
|
setbyte gBattleCommunication + 1, 0x0
|
|
BattleScript_82DB887::
|
|
various8 BS_ATTACKER
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x1, BattleScript_82DB89D
|
|
printfromtable gStringIds_85CCF0A
|
|
waitmessage 0x40
|
|
BattleScript_82DB89D::
|
|
addbyte gBattleCommunication + 1, 0x1
|
|
jumpifbytenotequal gBattleCommunication + 1, gBattlersCount, BattleScript_82DB887
|
|
setbyte gBattleCommunication, 0x0
|
|
setbyte gBattleCommunication + 1, 0x0
|
|
end2
|
|
|
|
BattleScript_82DB8BE::
|
|
waitcry BS_ATTACKER
|
|
various21 BS_ATTACKER
|
|
playse 0x109
|
|
pause 0x8
|
|
playse 0x109
|
|
various14 BS_ATTACKER
|
|
various16 8
|
|
various17 8
|
|
pause 0x40
|
|
various15 BS_ATTACKER
|
|
various22 BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_82DB8E0::
|
|
playse SE_PINPON
|
|
various14 BS_ATTACKER
|
|
various16 BS_TARGET
|
|
various17 BS_TARGET
|
|
pause 0x40
|
|
various15 BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_82DB8F3::
|
|
makevisible 11
|
|
waitstate
|
|
makevisible BS_OPPONENT1
|
|
waitstate
|
|
various21 BS_ATTACKER
|
|
playse 0x109
|
|
pause 0x8
|
|
playse 0x109
|
|
pause 0x40
|
|
various14 BS_ATTACKER
|
|
various16 BS_ATTACKER
|
|
various17 BS_ATTACKER
|
|
pause 0x40
|
|
setbyte gBattleCommunication, 0x0
|
|
various9 BS_ATTACKER
|
|
pause 0x40
|
|
various9 BS_ATTACKER
|
|
various16 BS_EFFECT_BATTLER
|
|
various17 BS_EFFECT_BATTLER
|
|
various9 BS_ATTACKER
|
|
various16 BS_FAINTED
|
|
various17 BS_FAINTED
|
|
various9 BS_ATTACKER
|
|
various16 0x4
|
|
various17 0x4
|
|
various9 BS_ATTACKER
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x3, BattleScript_82DB973
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x4, BattleScript_82DB992
|
|
various16 0x5
|
|
various17 0x5
|
|
various9 BS_ATTACKER
|
|
various15 BS_ATTACKER
|
|
printstring STRINGID_DEFEATEDOPPONENTBYREFEREE
|
|
waitmessage 0x40
|
|
playfaintcry BS_OPPONENT1
|
|
waitcry BS_ATTACKER
|
|
dofaintanimation BS_OPPONENT1
|
|
cleareffectsonfaint BS_OPPONENT1
|
|
various10 BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_82DB973::
|
|
various16 0x6
|
|
various17 0x6
|
|
various9 BS_ATTACKER
|
|
various15 BS_ATTACKER
|
|
printstring STRINGID_LOSTTOOPPONENTBYREFEREE
|
|
waitmessage 0x40
|
|
playfaintcry 11
|
|
waitcry BS_ATTACKER
|
|
dofaintanimation 11
|
|
cleareffectsonfaint 11
|
|
various11 BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_82DB992::
|
|
various16 BS_BATTLER_0
|
|
various17 BS_BATTLER_0
|
|
various9 BS_ATTACKER
|
|
various15 BS_ATTACKER
|
|
printstring STRINGID_TIEDOPPONENTBYREFEREE
|
|
waitmessage 0x40
|
|
playfaintcry 11
|
|
waitcry BS_ATTACKER
|
|
dofaintanimation 11
|
|
cleareffectsonfaint 11
|
|
playfaintcry BS_OPPONENT1
|
|
waitcry BS_ATTACKER
|
|
dofaintanimation BS_OPPONENT1
|
|
cleareffectsonfaint BS_OPPONENT1
|
|
various12 BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_AskIfWantsToForfeitMatch::
|
|
printselectionstring STRINGID_QUESTIONFORFEITMATCH
|
|
forfeityesnobox BS_ATTACKER
|
|
endselectionscript
|
|
|
|
BattleScript_PrintPlayerForfeited::
|
|
printstring STRINGID_FORFEITEDMATCH
|
|
waitmessage 0x40
|
|
end2
|
|
|
|
BattleScript_PrintPlayerForfeitedLinkBattle::
|
|
printstring STRINGID_FORFEITEDMATCH
|
|
waitmessage 0x40
|
|
atk57
|
|
waitmessage 0x40
|
|
end2
|