pokeemerald/data/battle_scripts_1.s

7798 lines
230 KiB
ArmAsm
Raw Normal View History

2018-02-08 00:35:13 +01:00
#include "constants/battle.h"
2018-02-08 11:17:41 +01:00
#include "constants/pokemon.h"
#include "constants/battle_script_commands.h"
2018-02-08 00:35:13 +01:00
#include "constants/battle_anim.h"
#include "constants/battle_string_ids.h"
2017-12-11 19:27:51 +01:00
#include "constants/abilities.h"
2020-04-22 10:44:19 +02:00
#include "constants/hold_effects.h"
2017-12-11 19:27:51 +01:00
#include "constants/moves.h"
#include "constants/songs.h"
2018-10-06 09:37:52 +02:00
#include "constants/game_stat.h"
#include "constants/battle_config.h"
2016-11-01 16:29:13 +01:00
.include "asm/macros.inc"
.include "asm/macros/battle_script.inc"
2016-11-01 16:29:13 +01:00
.include "constants/constants.inc"
2016-09-03 19:20:06 +02:00
.section script_data, "aw", %progbits
2018-02-08 11:17:41 +01:00
2017-12-31 16:28:57 +01:00
.align 2
2017-09-23 20:13:45 +02:00
gBattleScriptsForMoveEffects:: @ 82D86A8
.4byte BattleScript_EffectHit
.4byte BattleScript_EffectSleep
.4byte BattleScript_EffectPoisonHit
.4byte BattleScript_EffectAbsorb
.4byte BattleScript_EffectBurnHit
.4byte BattleScript_EffectFreezeHit
.4byte BattleScript_EffectParalyzeHit
.4byte BattleScript_EffectExplosion
.4byte BattleScript_EffectDreamEater
.4byte BattleScript_EffectMirrorMove
.4byte BattleScript_EffectAttackUp
.4byte BattleScript_EffectDefenseUp
.4byte BattleScript_EffectSpeedUp
.4byte BattleScript_EffectSpecialAttackUp
.4byte BattleScript_EffectSpecialDefenseUp
.4byte BattleScript_EffectAccuracyUp
.4byte BattleScript_EffectEvasionUp
.4byte BattleScript_EffectSpecialAttackUp3
.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
2018-09-30 14:04:46 +02:00
.4byte BattleScript_EffectFusionCombo
.4byte BattleScript_EffectSuperFang
.4byte BattleScript_EffectDragonRage
.4byte BattleScript_EffectTrap
.4byte BattleScript_EffectHealBlock
.4byte BattleScript_EffectDoubleHit
.4byte BattleScript_EffectRecoilIfMiss
.4byte BattleScript_EffectMist
.4byte BattleScript_EffectFocusEnergy
2020-04-20 11:27:09 +02:00
.4byte BattleScript_EffectRecoil25
.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
2018-09-30 14:04:46 +02:00
.4byte BattleScript_EffectTwoTurnsAttack
.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_EffectDoNothing
.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_EffectHammerArm
.4byte BattleScript_EffectSleepTalk
.4byte BattleScript_EffectDestinyBond
.4byte BattleScript_EffectFlail
.4byte BattleScript_EffectSpite
.4byte BattleScript_EffectFalseSwipe
.4byte BattleScript_EffectHealBell
2018-07-23 21:36:05 +02:00
.4byte BattleScript_EffectAlwaysCrit
.4byte BattleScript_EffectTripleKick
.4byte BattleScript_EffectThief
.4byte BattleScript_EffectMeanLook
.4byte BattleScript_EffectNightmare
.4byte BattleScript_EffectMinimize
.4byte BattleScript_EffectCurse
2018-07-26 20:36:16 +02:00
.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
2018-07-22 15:08:32 +02:00
.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
2018-07-26 23:40:55 +02:00
.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
2018-07-23 22:18:56 +02:00
.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
2020-04-20 11:27:09 +02:00
.4byte BattleScript_EffectRecoil33
.4byte BattleScript_EffectTeeterDance
2018-07-23 22:43:05 +02:00
.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
2018-07-21 21:58:07 +02:00
.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
2018-07-21 21:58:07 +02:00
.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
2018-08-04 23:34:29 +02:00
.4byte BattleScript_EffectIonDeluge
.4byte BattleScript_EffectFreezeDry
.4byte BattleScript_EffectTopsyTurvy
2018-08-05 12:43:57 +02:00
.4byte BattleScript_EffectMistyTerrain
.4byte BattleScript_EffectGrassyTerrain
.4byte BattleScript_EffectElectricTerrain
.4byte BattleScript_EffectPsychicTerrain
2018-08-05 13:39:22 +02:00
.4byte BattleScript_EffectAttackAccUp
.4byte BattleScript_EffectAttackSpAttackUp
.4byte BattleScript_EffectHurricane
2018-08-05 13:57:37 +02:00
.4byte BattleScript_EffectTwoTypedMove
2018-08-05 16:43:07 +02:00
.4byte BattleScript_EffectMeFirst
2018-08-11 12:16:00 +02:00
.4byte BattleScript_EffectSpeedUpHit
2018-08-11 12:29:01 +02:00
.4byte BattleScript_EffectQuiverDance
.4byte BattleScript_EffectCoil
2018-08-11 13:30:34 +02:00
.4byte BattleScript_EffectElectrify
.4byte BattleScript_EffectScald
.4byte BattleScript_EffectReflectType
.4byte BattleScript_EffectSoak
2018-09-22 01:01:13 +02:00
.4byte BattleScript_EffectGrowth
2018-09-22 01:12:27 +02:00
.4byte BattleScript_EffectCloseCombat
.4byte BattleScript_EffectLastResort
.4byte BattleScript_EffectRecoil33WithStatus
.4byte BattleScript_EffectFlinchWithStatus
2018-09-22 11:13:17 +02:00
.4byte BattleScript_EffectRecoil50
.4byte BattleScript_EffectShellSmash
.4byte BattleScript_EffectShiftGear
.4byte BattleScript_EffectDefenseUp3
.4byte BattleScript_EffectNobleRoar
2018-09-22 16:15:00 +02:00
.4byte BattleScript_EffectVenomDrench
.4byte BattleScript_EffectToxicThread
.4byte BattleScript_EffectClearSmog
.4byte BattleScript_EffectHitSwitchTarget
.4byte BattleScript_EffectFinalGambit
.4byte BattleScript_EffectChangeTypeOnItem
.4byte BattleScript_EffectAutotomize
2018-09-22 18:37:03 +02:00
.4byte BattleScript_EffectCopycat
2018-09-23 19:03:53 +02:00
.4byte BattleScript_EffectDefog
2018-09-29 14:10:53 +02:00
.4byte BattleScript_EffectHitEnemyHealAlly
2018-09-29 15:43:56 +02:00
.4byte BattleScript_EffectSmackDown
.4byte BattleScript_EffectSynchronoise
2018-09-29 18:40:14 +02:00
.4byte BattleScript_EffectPsychoShift
.4byte BattleScript_EffectPowerTrick
.4byte BattleScript_EffectFlameBurst
2018-09-29 19:37:39 +02:00
.4byte BattleScript_EffectAfterYou
2018-09-30 12:27:51 +02:00
.4byte BattleScript_EffectBestow
2018-09-30 14:04:46 +02:00
.4byte BattleScript_EffectRototiller
2018-10-06 15:50:35 +02:00
.4byte BattleScript_EffectFlowerShield
.4byte BattleScript_EffectHitPreventEscape
.4byte BattleScript_EffectSpeedSwap
.4byte BattleScript_EffectDefenseUp2Hit
.4byte BattleScript_EffectRevelationDance
.4byte BattleScript_EffectAuroraVeil
2018-11-17 12:10:24 +01:00
.4byte BattleScript_EffectThirdType
2018-11-24 19:37:10 +01:00
.4byte BattleScript_EffectFeint
2018-11-24 21:06:53 +01:00
.4byte BattleScript_EffectSparklingAria
.4byte BattleScript_EffectAcupressure
2018-11-25 12:59:22 +01:00
.4byte BattleScript_EffectAromaticMist
2018-12-03 12:50:32 +01:00
.4byte BattleScript_EffectPowder
2019-01-27 11:57:13 +01:00
.4byte BattleScript_EffectSpAtkUpHit
2019-02-01 14:17:24 +01:00
.4byte BattleScript_EffectBelch
.4byte BattleScript_EffectPartingShot
2019-02-14 12:15:53 +01:00
.4byte BattleScript_EffectSpectralThief
.4byte BattleScript_EffectVCreate
.4byte BattleScript_EffectMatBlock
.4byte BattleScript_EffectStompingTantrum
.4byte BattleScript_EffectCoreEnforcer
.4byte BattleScript_EffectInstruct
.4byte BattleScript_EffectThroatChop
.4byte BattleScript_EffectLaserFocus
.4byte BattleScript_EffectMagneticFlux
.4byte BattleScript_EffectGearUp
2019-05-10 15:12:33 +02:00
.4byte BattleScript_EffectIncinerate
2019-05-23 12:32:14 +02:00
.4byte BattleScript_EffectBugBite
2020-04-13 15:00:17 +02:00
.4byte BattleScript_EffectStrengthSap
.4byte BattleScript_EffectMindBlown
2020-04-17 21:14:26 +02:00
.4byte BattleScript_EffectPurify
.4byte BattleScript_EffectBurnUp
2020-04-18 18:34:18 +02:00
.4byte BattleScript_EffectShoreUp
2020-04-20 19:02:03 +02:00
.4byte BattleScript_EffectGeomancy
2020-04-20 19:41:07 +02:00
.4byte BattleScript_EffectFairyLock
2020-04-20 20:05:04 +02:00
.4byte BattleScript_EffectAllySwitch
2020-06-16 12:06:38 +02:00
.4byte BattleScript_EffectSleepHit
2020-11-30 16:55:46 +01:00
.4byte BattleScript_EffectExtremeEvoboost
.4byte BattleScript_EffectTerrainHit
2020-06-16 12:06:38 +02:00
BattleScript_EffectSleepHit:
setmoveeffect MOVE_EFFECT_SLEEP
goto BattleScript_EffectHit
2020-04-20 20:05:04 +02:00
BattleScript_EffectAllySwitch:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
jumpifnoally BS_ATTACKER, BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_ALLYSWITCHPOSITION
waitmessage 0x40
goto BattleScript_MoveEnd
2020-04-20 19:41:07 +02:00
BattleScript_EffectFairyLock:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
trysetfairylock BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_NOONEWILLBEABLETORUNAWAY
waitmessage 0x40
goto BattleScript_MoveEnd
2020-04-17 21:14:26 +02:00
BattleScript_EffectBurnUp:
attackcanceler
attackstring
ppreduce
jumpiftype BS_ATTACKER, TYPE_FIRE, BattleScript_BurnUpWorks
goto BattleScript_ButItFailed
BattleScript_BurnUpWorks:
accuracycheck BattleScript_MoveMissedPause, 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
losetype BS_ATTACKER, TYPE_FIRE
printstring STRINGID_ATTACKERLOSTFIRETYPE
waitmessage 0x40
tryfaintmon BS_TARGET, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectPurify:
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_PurifyWorks
goto BattleScript_ButItFailed
BattleScript_PurifyWorks:
attackanimation
waitanimation
curestatus BS_TARGET
updatestatusicon BS_TARGET
printstring STRINGID_ATTACKERCUREDTARGETSTATUS
waitmessage 0x40
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER
goto BattleScript_RestoreHp
2020-04-13 15:00:17 +02:00
BattleScript_EffectStrengthSap:
setstatchanger STAT_ATK, 1, TRUE
attackcanceler
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, 0, BattleScript_StrengthSapTryLower
pause 0x20
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_MoveEnd
printfromtable gStatDownStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_StrengthSapTryLower:
getstatvalue BS_TARGET, STAT_ATK
jumpiffullhp BS_ATTACKER, BattleScript_StrengthSapMustLower
attackanimation
waitanimation
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_StrengthSapHp
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StrengthSapHp
BattleScript_StrengthSapLower:
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatDownStringIds
waitmessage 0x40
goto BattleScript_StrengthSapHp
@ Drain HP without lowering a stat
BattleScript_StrengthSapTryHp:
jumpiffullhp BS_ATTACKER, BattleScript_ButItFailed
attackanimation
waitanimation
BattleScript_StrengthSapHp:
jumpiffullhp BS_ATTACKER, BattleScript_MoveEnd
manipulatedamage DMG_BIG_ROOT
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNENERGYDRAINED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_StrengthSapMustLower:
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_MoveEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_MoveEnd
attackanimation
waitanimation
goto BattleScript_StrengthSapLower
2019-05-23 12:32:14 +02:00
BattleScript_EffectBugBite:
setmoveeffect MOVE_EFFECT_BUG_BITE | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
2019-05-10 15:12:33 +02:00
BattleScript_EffectIncinerate:
setmoveeffect MOVE_EFFECT_INCINERATE | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
2019-05-10 15:12:33 +02:00
BattleScript_MoveEffectIncinerate::
printstring STRINGID_INCINERATEBURN
waitmessage 0x40
return
2019-05-23 12:32:14 +02:00
BattleScript_MoveEffectBugBite::
printstring STRINGID_BUGBITE
waitmessage 0x40
return
BattleScript_EffectCoreEnforcer:
setmoveeffect MOVE_EFFECT_CORE_ENFORCER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_MoveEffectCoreEnforcer::
setgastroacid BattleScript_CoreEnforcerRet
printstring STRINGID_PKMNSABILITYSUPPRESSED
waitmessage 0x40
BattleScript_CoreEnforcerRet:
return
BattleScript_EffectLaserFocus:
attackcanceler
attackstring
ppreduce
2020-07-27 14:51:39 +02:00
setuserstatus3 STATUS3_LASER_FOCUS, BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_LASERFOCUS
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectVCreate:
setmoveeffect MOVE_EFFECT_V_CREATE | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
BattleScript_VCreateStatLoss::
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_DEF, 0x0, BattleScript_VCreateStatAnim
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPDEF, 0x0, BattleScript_VCreateStatAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 0x0, BattleScript_VCreateStatLossRet
BattleScript_VCreateStatAnim:
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF | BIT_SPEED, STAT_CHANGE_NEGATIVE | STAT_CHANGE_CANT_PREVENT
setstatchanger STAT_DEF, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, BattleScript_VCreateTrySpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VCreateTrySpDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_VCreateTrySpDef:
setstatchanger STAT_SPDEF, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, BattleScript_VCreateTrySpeed
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VCreateTrySpeed
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_VCreateTrySpeed:
setstatchanger STAT_SPEED, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, BattleScript_VCreateStatLossRet
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VCreateStatLossRet
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_VCreateStatLossRet:
return
2019-02-14 12:15:53 +01:00
BattleScript_SpectralThiefSteal::
printstring STRINGID_SPECTRALTHIEFSTEAL
waitmessage 0x40
setbyte sB_ANIM_ARG2, 0
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
spectralthiefprintstats
return
2019-02-14 12:15:53 +01:00
BattleScript_EffectSpectralThief:
setmoveeffect MOVE_EFFECT_SPECTRAL_THIEF
goto BattleScript_EffectHit
BattleScript_EffectPartingShot::
attackcanceler
attackstring
ppreduce
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0x0, BattleScript_EffectPartingShotTryAtk
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, 0x0, BattleScript_CantLowerMultipleStats
BattleScript_EffectPartingShotTryAtk:
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE
setstatchanger STAT_ATK, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectPartingShotTrySpAtk
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_EffectPartingShotTrySpAtk:
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE
setstatchanger STAT_SPATK, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectPartingShotSwitch
printfromtable gStatDownStringIds
waitmessage 0x40
2019-02-09 18:40:04 +01:00
BattleScript_EffectPartingShotSwitch:
moveendall
2020-07-08 17:38:28 +02:00
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_PartingShotEnd
2019-11-10 12:09:14 +01:00
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_PartingShotEnd
openpartyscreen 0x1, BattleScript_PartingShotEnd
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_PartingShotEnd:
end
2019-01-27 11:57:13 +01:00
BattleScript_EffectSpAtkUpHit:
setmoveeffect MOVE_EFFECT_SP_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
2018-12-03 12:50:32 +01:00
BattleScript_EffectPowder:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, NO_ACC_CALC_CHECK_LOCK_ON
attackstring
ppreduce
jumpifstatus2 BS_TARGET, STATUS2_POWDER, BattleScript_ButItFailed
setpowder BS_TARGET
attackanimation
waitanimation
printstring STRINGID_COVEREDINPOWDER
waitmessage 0x40
goto BattleScript_MoveEnd
2018-11-25 12:59:22 +01:00
BattleScript_EffectAromaticMist:
attackcanceler
attackstring
ppreduce
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed
jumpiftargetally BattleScript_EffectAromaticMistWorks
goto BattleScript_ButItFailed
BattleScript_EffectAromaticMistWorks:
setstatchanger STAT_SPDEF, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectAromaticMistEnd
2018-11-25 12:59:22 +01:00
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AromaticMistAnim
pause 0x10
printstring STRINGID_TARGETSTATWONTGOHIGHER
waitmessage 0x40
goto BattleScript_EffectAromaticMistEnd
BattleScript_AromaticMistAnim:
attackanimation
waitanimation
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_EffectAromaticMistEnd:
goto BattleScript_MoveEnd
BattleScript_EffectMagneticFlux::
attackcanceler
attackstring
ppreduce
setbyte gBattleCommunication, 0x0
BattleScript_EffectMagneticFluxStart:
jumpifability BS_TARGET, ABILITY_MINUS, BattleScript_EffectMagneticFluxCheckStats
jumpifability BS_TARGET, ABILITY_PLUS, BattleScript_EffectMagneticFluxCheckStats
goto BattleScript_EffectMagneticFluxLoop
BattleScript_EffectMagneticFluxCheckStats:
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_EffectMagneticFluxTryDef
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_EffectMagneticFluxLoop
BattleScript_EffectMagneticFluxTryDef:
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_EffectMagneticFluxSkipAnim
attackanimation
waitanimation
BattleScript_EffectMagneticFluxSkipAnim:
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_TARGET, BIT_DEF | BIT_SPDEF, 0x0
setstatchanger STAT_DEF, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMagneticFluxTrySpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectMagneticFluxTrySpDef
addbyte gBattleCommunication, 0x1
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_EffectMagneticFluxTrySpDef:
setstatchanger STAT_SPDEF, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMagneticFluxLoop
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectMagneticFluxLoop
addbyte gBattleCommunication, 0x1
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_EffectMagneticFluxLoop:
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectMagneticFluxEnd
setallytonexttarget BattleScript_EffectMagneticFluxStart
BattleScript_EffectMagneticFluxEnd:
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_MoveEnd
goto BattleScript_ButItFailed
BattleScript_EffectGearUp::
attackcanceler
attackstring
ppreduce
setbyte gBattleCommunication, 0x0
BattleScript_EffectGearUpStart:
jumpifability BS_TARGET, ABILITY_MINUS, BattleScript_EffectGearUpCheckStats
jumpifability BS_TARGET, ABILITY_PLUS, BattleScript_EffectGearUpCheckStats
goto BattleScript_EffectGearUpLoop
BattleScript_EffectGearUpCheckStats:
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_EffectGearUpTryAtk
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, 0xC, BattleScript_EffectGearUpLoop
BattleScript_EffectGearUpTryAtk:
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_EffectGearUpSkipAnim
attackanimation
waitanimation
BattleScript_EffectGearUpSkipAnim:
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, 0x0
setstatchanger STAT_ATK, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectGearUpTrySpAtk
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectGearUpTrySpAtk
addbyte gBattleCommunication, 0x1
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_EffectGearUpTrySpAtk:
setstatchanger STAT_SPATK, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectGearUpLoop
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectGearUpLoop
addbyte gBattleCommunication, 0x1
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_EffectGearUpLoop:
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectGearUpEnd
setallytonexttarget BattleScript_EffectGearUpStart
BattleScript_EffectGearUpEnd:
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_MoveEnd
goto BattleScript_ButItFailed
2018-11-24 21:06:53 +01:00
BattleScript_EffectAcupressure:
attackcanceler
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectAcupressureTry
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_PrintMoveMissed
BattleScript_EffectAcupressureTry:
attackstring
ppreduce
tryaccupressure BS_TARGET, BattleScript_ButItFailed
2019-07-03 03:02:22 +02:00
attackanimation
waitanimation
2018-11-24 21:06:53 +01:00
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
statbuffchange MOVE_EFFECT_CERTAIN, BattleScript_MoveEnd
printstring STRINGID_PKMNSSTATCHANGED2
waitmessage 0x40
goto BattleScript_MoveEnd
2018-11-24 19:37:10 +01:00
BattleScript_MoveEffectFeint::
printstring STRINGID_FELLFORFEINT
waitmessage 0x40
return
2018-11-24 19:37:10 +01:00
BattleScript_EffectFeint:
setmoveeffect MOVE_EFFECT_FEINT
goto BattleScript_EffectHit
2018-11-17 12:10:24 +01:00
BattleScript_EffectThirdType:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
trysetthirdtype BS_TARGET, BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_THIRDTYPEADDED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectDefenseUp2Hit:
setmoveeffect MOVE_EFFECT_DEF_PLUS_2 | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
2018-10-06 15:50:35 +02:00
BattleScript_EffectFlowerShield:
attackcanceler
attackstring
ppreduce
selectfirstvalidtarget
BattleScript_FlowerShieldIsAnyGrass:
jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_FlowerShieldLoopStart
jumpifnexttargetvalid BattleScript_FlowerShieldIsAnyGrass
goto BattleScript_ButItFailed
BattleScript_FlowerShieldLoopStart:
selectfirstvalidtarget
BattleScript_FlowerShieldLoop:
movevaluescleanup
jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_FlowerShieldLoop2
goto BattleScript_FlowerShieldMoveTargetEnd
BattleScript_FlowerShieldLoop2:
setstatchanger STAT_DEF, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_FlowerShieldMoveTargetEnd
2018-10-06 15:50:35 +02:00
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_FlowerShieldDoAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_FlowerShieldMoveTargetEnd
pause 0x15
goto BattleScript_FlowerShieldString
BattleScript_FlowerShieldDoAnim:
attackanimation
waitanimation
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
BattleScript_FlowerShieldString:
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_FlowerShieldMoveTargetEnd:
2019-11-10 12:09:14 +01:00
moveendto MOVEEND_NEXT_TARGET
2018-10-06 15:50:35 +02:00
jumpifnexttargetvalid BattleScript_FlowerShieldLoop
end
2018-09-30 14:04:46 +02:00
BattleScript_EffectRototiller:
attackcanceler
attackstring
ppreduce
selectfirstvalidtarget
BattleScript_RototillerLoop:
movevaluescleanup
jumpifnotgrounded BS_TARGET, BattleScript_RototillerNoEffect
jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_RototillerLoop2
BattleScript_RototillerNoEffect:
pause 0x20
printstring STRINGID_NOEFFECTONTARGET
waitmessage 0x40
goto BattleScript_RototillerMoveTargetEnd
BattleScript_RototillerLoop2:
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_RototillerDoMoveAnim
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, 0xC, BattleScript_RototillerCantRaiseMultipleStats
BattleScript_RototillerDoMoveAnim::
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, 0x0
setstatchanger STAT_ATK, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_RototillerTrySpAtk
2018-09-30 14:04:46 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_RototillerTrySpAtk
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_RototillerTrySpAtk::
setstatchanger STAT_SPATK, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_RototillerMoveTargetEnd
2018-09-30 14:04:46 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_RototillerMoveTargetEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_RototillerMoveTargetEnd:
2019-11-10 12:09:14 +01:00
moveendto MOVEEND_NEXT_TARGET
2018-09-30 14:04:46 +02:00
jumpifnexttargetvalid BattleScript_RototillerLoop
end
BattleScript_RototillerCantRaiseMultipleStats:
printstring STRINGID_STATSWONTINCREASE2
waitmessage 0x40
goto BattleScript_RototillerMoveTargetEnd
2018-09-30 12:27:51 +02:00
BattleScript_EffectBestow:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, NO_ACC_CALC_CHECK_LOCK_ON
attackstring
ppreduce
jumpifsubstituteblocks BattleScript_ButItFailed
trybestow BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_BESTOWITEMGIVING
waitmessage 0x40
goto BattleScript_MoveEnd
2018-09-29 19:37:39 +02:00
BattleScript_EffectAfterYou:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
tryafteryou BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_KINDOFFER
waitmessage 0x40
goto BattleScript_MoveEnd
2018-09-29 18:40:14 +02:00
BattleScript_EffectFlameBurst:
setmoveeffect MOVE_EFFECT_FLAME_BURST | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
2018-09-29 18:40:14 +02:00
BattleScript_MoveEffectFlameBurst::
2019-05-23 10:02:04 +02:00
tryfaintmon BS_TARGET, FALSE, NULL
2018-09-29 18:40:14 +02:00
printstring STRINGID_BURSTINGFLAMESHIT
waitmessage 0x40
2019-05-23 10:02:04 +02:00
savetarget
copybyte gBattlerTarget, sBATTLER
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
tryfaintmon BS_TARGET, FALSE, NULL
restoretarget
goto BattleScript_MoveEnd
2018-09-29 18:40:14 +02:00
BattleScript_EffectPowerTrick:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
powertrick BS_ATTACKER
attackanimation
waitanimation
printstring STRINGID_PKMNSWITCHEDATKANDDEF
waitmessage 0x40
goto BattleScript_MoveEnd
2018-09-29 18:40:14 +02:00
BattleScript_EffectPsychoShift:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
jumpifstatus BS_ATTACKER, STATUS1_ANY, BattleScript_EffectPsychoShiftCanWork
goto BattleScript_ButItFailed
BattleScript_EffectPsychoShiftCanWork:
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
2020-04-23 11:29:19 +02:00
jumpifsafeguard BattleScript_SafeguardProtected
2018-09-29 18:40:14 +02:00
trypsychoshift BattleScript_MoveEnd
attackanimation
waitanimation
2019-10-26 22:39:07 +02:00
copybyte gEffectBattler, gBattlerTarget
2018-09-29 18:40:14 +02:00
printfromtable gStatusConditionsStringIds
waitmessage 0x40
statusanimation BS_TARGET
updatestatusicon BS_TARGET
curestatus BS_ATTACKER
printstring STRINGID_PKMNSTATUSNORMAL
waitmessage 0x40
updatestatusicon BS_ATTACKER
goto BattleScript_MoveEnd
2018-09-29 15:43:56 +02:00
BattleScript_EffectSynchronoise:
attackcanceler
attackstring
ppreduce
selectfirstvalidtarget
BattleScript_SynchronoiseLoop:
movevaluescleanup
jumpifcantusesynchronoise BattleScript_SynchronoiseNoEffect
accuracycheck BattleScript_SynchronoiseMissed, 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
BattleScript_SynchronoiseMoveTargetEnd:
2019-11-10 12:09:14 +01:00
moveendto MOVEEND_NEXT_TARGET
2018-09-29 15:43:56 +02:00
jumpifnexttargetvalid BattleScript_SynchronoiseLoop
end
BattleScript_SynchronoiseMissed:
pause 0x20
resultmessage
waitmessage 0x40
goto BattleScript_SynchronoiseMoveTargetEnd
BattleScript_SynchronoiseNoEffect:
pause 0x20
printstring STRINGID_NOEFFECTONTARGET
waitmessage 0x40
goto BattleScript_SynchronoiseMoveTargetEnd
2018-09-29 15:43:56 +02:00
BattleScript_EffectSmackDown:
setmoveeffect MOVE_EFFECT_SMACK_DOWN
goto BattleScript_EffectHit
2018-09-29 15:43:56 +02:00
BattleScript_MoveEffectSmackDown::
printstring STRINGID_FELLSTRAIGHTDOWN
waitmessage 0x40
return
2018-09-29 14:10:53 +02:00
BattleScript_EffectHitEnemyHealAlly:
jumpiftargetally BattleScript_EffectHealPulse
goto BattleScript_EffectHit
2018-09-23 19:03:53 +02:00
BattleScript_EffectDefog:
setstatchanger STAT_EVASION, 1, TRUE
attackcanceler
jumpifsubstituteblocks BattleScript_DefogIfCanClearHazards
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_EVASION, 0x0, BattleScript_DefogWorks
BattleScript_DefogIfCanClearHazards:
defogclear BS_ATTACKER, FALSE, BattleScript_ButItFailedAtkStringPpReduce
BattleScript_DefogWorks:
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_DefogTryHazardsWithAnim
2018-09-23 19:03:53 +02:00
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_DefogDoAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_DefogTryHazardsWithAnim
pause 0x20
goto BattleScript_DefogPrintString
BattleScript_DefogDoAnim::
attackanimation
waitanimation
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
BattleScript_DefogPrintString::
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_DefogTryHazards::
copybyte gEffectBattler, gBattlerAttacker
defogclear BS_ATTACKER, TRUE, NULL
copybyte gBattlerAttacker, gEffectBattler
goto BattleScript_MoveEnd
BattleScript_DefogTryHazardsWithAnim:
attackanimation
waitanimation
goto BattleScript_DefogTryHazards
2018-09-22 18:37:03 +02:00
BattleScript_EffectCopycat:
attackcanceler
attackstring
pause 0x5
trycopycat BattleScript_CopycatFail
attackanimation
waitanimation
2018-09-22 19:27:56 +02:00
jumptocalledmove TRUE
2018-09-22 18:37:03 +02:00
BattleScript_CopycatFail:
ppreduce
goto BattleScript_ButItFailed
BattleScript_EffectInstruct:
attackcanceler
attackstring
ppreduce
pause 0x5
tryinstruct BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_USEDINSTRUCTEDMOVE
waitmessage 0x40
setbyte sB_ANIM_TURN, 0x0
setbyte sB_ANIM_TARGETS_HIT, 0x0
jumptocalledmove TRUE
BattleScript_EffectAutotomize:
2018-09-22 17:27:51 +02:00
setstatchanger STAT_SPEED, 2, FALSE
attackcanceler
attackstring
ppreduce
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AutotomizeWeightLoss
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AutotomizeAttackAnim
2018-09-22 17:27:51 +02:00
pause 0x20
goto BattleScript_AutotomizePrintString
BattleScript_AutotomizeAttackAnim::
2018-09-22 17:27:51 +02:00
attackanimation
waitanimation
BattleScript_AutotomizeDoAnim::
2018-09-22 17:27:51 +02:00
setgraphicalstatchangevalues
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
BattleScript_AutotomizePrintString::
2018-09-22 17:27:51 +02:00
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_AutotomizeWeightLoss::
2018-09-22 17:27:51 +02:00
jumpifmovehadnoeffect BattleScript_MoveEnd
tryautotomize BS_ATTACKER, BattleScript_MoveEnd
2018-09-22 17:27:51 +02:00
printstring STRINGID_BECAMENIMBLE
waitmessage 0x40
goto BattleScript_MoveEnd
2018-09-22 16:15:00 +02:00
BattleScript_EffectFinalGambit:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
typecalc
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
dmgtocurrattackerhp
adjustdamage
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
jumpifmovehadnoeffect BattleScript_MoveEnd
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, FALSE, NULL
goto BattleScript_MoveEnd
2018-09-22 16:15:00 +02:00
BattleScript_EffectHitSwitchTarget:
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
tryfaintmon BS_TARGET, FALSE, NULL
jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted
tryhitswitchtarget BattleScript_EffectHitSwitchTargetMoveEnd
BattleScript_EffectHitSwitchTargetMoveEnd:
moveendall
2018-09-22 16:15:00 +02:00
end
2018-09-22 16:15:00 +02:00
BattleScript_EffectClearSmog:
setmoveeffect MOVE_EFFECT_CLEAR_SMOG
goto BattleScript_EffectHit
2018-09-22 16:15:00 +02:00
BattleScript_EffectToxicThread:
setstatchanger STAT_SPEED, 2, TRUE
attackcanceler
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPEED, 0x0, BattleScript_ToxicThreadWorks
jumpifstatus BS_TARGET, STATUS1_PSN_ANY, BattleScript_ButItFailedAtkStringPpReduce
BattleScript_ToxicThreadWorks:
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_ToxicThreadTryPsn
2018-09-22 16:15:00 +02:00
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_ToxicThreadDoAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_ToxicThreadTryPsn
pause 0x20
goto BattleScript_ToxicThreadPrintString
BattleScript_ToxicThreadDoAnim::
attackanimation
waitanimation
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
BattleScript_ToxicThreadPrintString::
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_ToxicThreadTryPsn::
setmoveeffect MOVE_EFFECT_POISON
seteffectprimary
goto BattleScript_MoveEnd
2018-09-22 16:15:00 +02:00
BattleScript_EffectVenomDrench:
attackcanceler
attackstring
ppreduce
2018-09-22 16:15:00 +02:00
jumpifstatus BS_TARGET, STATUS1_PSN_ANY, BattleScript_EffectVenomDrenchCanBeUsed
goto BattleScript_ButItFailed
2018-09-22 16:15:00 +02:00
BattleScript_EffectVenomDrenchCanBeUsed:
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0x0, BattleScript_VenomDrenchDoMoveAnim
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_SPATK, 0x0, BattleScript_VenomDrenchDoMoveAnim
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPEED, 0x0, BattleScript_CantLowerMultipleStats
BattleScript_VenomDrenchDoMoveAnim::
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK | BIT_SPEED, STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE
setstatchanger STAT_ATK, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_VenomDrenchTryLowerSpAtk
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VenomDrenchTryLowerSpAtk
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_VenomDrenchTryLowerSpAtk::
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE
setstatchanger STAT_SPATK, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_VenomDrenchTryLowerSpeed
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VenomDrenchTryLowerSpeed
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_VenomDrenchTryLowerSpeed::
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_TARGET, BIT_SPEED, STAT_CHANGE_NEGATIVE
setstatchanger STAT_SPEED, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_VenomDrenchEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VenomDrenchEnd
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_VenomDrenchEnd::
goto BattleScript_MoveEnd
BattleScript_EffectNobleRoar:
attackcanceler
attackstring
ppreduce
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0x0, BattleScript_NobleRoarDoMoveAnim
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, 0x0, BattleScript_CantLowerMultipleStats
BattleScript_NobleRoarDoMoveAnim::
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE
setstatchanger STAT_ATK, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_NobleRoarTryLowerSpAtk
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_NobleRoarTryLowerSpAtk
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_NobleRoarTryLowerSpAtk::
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE
setstatchanger STAT_SPATK, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_NobleRoarEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_NobleRoarEnd
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_NobleRoarEnd::
goto BattleScript_MoveEnd
2018-09-22 11:13:17 +02:00
BattleScript_EffectShellSmash:
attackcanceler
attackstring
ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_ShellSmashTryDef
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_ShellSmashTryDef
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, 0xC, BattleScript_ShellSmashTryDef
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_DEF, 0, BattleScript_ShellSmashTryDef
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0, BattleScript_ButItFailed
BattleScript_ShellSmashTryDef::
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_CANT_PREVENT
2018-09-22 11:13:17 +02:00
setstatchanger STAT_DEF, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShellSmashTrySpDef
2018-09-22 11:13:17 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShellSmashTrySpDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ShellSmashTrySpDef:
setstatchanger STAT_SPDEF, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShellSmashTryAttack
2018-09-22 11:13:17 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShellSmashTryAttack
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ShellSmashTryAttack:
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_ATK | BIT_SPEED, STAT_CHANGE_BY_TWO
2018-09-22 11:13:17 +02:00
setstatchanger STAT_ATK, 2, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShellSmashTrySpAtk
2018-09-22 11:13:17 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShellSmashTrySpAtk
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ShellSmashTrySpAtk:
setstatchanger STAT_SPATK, 2, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShellSmashTrySpeed
2018-09-22 11:13:17 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShellSmashTrySpeed
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ShellSmashTrySpeed:
setstatchanger STAT_SPEED, 2, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShellSmashEnd
2018-09-22 11:13:17 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShellSmashEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ShellSmashEnd:
goto BattleScript_MoveEnd
BattleScript_EffectLastResort:
attackcanceler
attackstring
ppreduce
jumpifcantuselastresort BS_ATTACKER, BattleScript_ButItFailed
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
goto BattleScript_HitFromCritCalc
2018-09-22 01:01:13 +02:00
BattleScript_EffectGrowth:
attackcanceler
attackstring
ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_GrowthDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPATK, 0xC, BattleScript_CantRaiseMultipleStats
BattleScript_GrowthDoMoveAnim::
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPATK, 0x0
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, WEATHER_SUN_ANY, BattleScript_GrowthAtk2
setstatchanger STAT_ATK, 1, FALSE
goto BattleScript_GrowthAtk
BattleScript_GrowthAtk2:
setstatchanger STAT_ATK, 2, FALSE
BattleScript_GrowthAtk:
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_GrowthTrySpAtk
2018-09-22 01:01:13 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_GrowthTrySpAtk
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_GrowthTrySpAtk::
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, WEATHER_SUN_ANY, BattleScript_GrowthSpAtk2
setstatchanger STAT_SPATK, 1, FALSE
goto BattleScript_GrowthSpAtk
BattleScript_GrowthSpAtk2:
setstatchanger STAT_SPATK, 2, FALSE
BattleScript_GrowthSpAtk:
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_GrowthEnd
2018-09-22 01:01:13 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_GrowthEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_GrowthEnd:
goto BattleScript_MoveEnd
2018-08-11 13:30:34 +02:00
BattleScript_EffectSoak:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
jumpifability BS_TARGET, ABILITY_MULTITYPE, BattleScript_ButItFailed
jumpifability BS_TARGET, ABILITY_RKS_SYSTEM, BattleScript_ButItFailed
jumpifsubstituteblocks BattleScript_ButItFailed
attackanimation
waitanimation
trysoak BattleScript_ButItFailed
printstring STRINGID_TRANSFORMEDINTOWATERTYPE
waitmessage 0x40
goto BattleScript_MoveEnd
2018-08-11 13:30:34 +02:00
BattleScript_EffectReflectType:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
tryreflecttype BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_REFLECTTARGETSTYPE
waitmessage 0x40
goto BattleScript_MoveEnd
2018-08-11 13:30:34 +02:00
BattleScript_EffectElectrify:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
tryelectrify BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_TARGETELECTRIFIED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectShiftGear:
attackcanceler
attackstring
ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, 0xC, BattleScript_ShiftGearDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ATK, 0xC, BattleScript_CantRaiseMultipleStats
BattleScript_ShiftGearDoMoveAnim:
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, 0xA, BattleScript_ShiftGearSpeedBy1
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_ATTACKER, BIT_SPEED | BIT_ATK, STAT_CHANGE_BY_TWO
setstatchanger STAT_SPEED, 2, FALSE
goto BattleScript_ShiftGearDoSpeed
BattleScript_ShiftGearSpeedBy1:
playstatchangeanimation BS_ATTACKER, BIT_SPEED | BIT_ATK, 0x0
setstatchanger STAT_SPEED, 1, FALSE
BattleScript_ShiftGearDoSpeed:
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShiftGearTryAtk
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShiftGearTryAtk
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ShiftGearTryAtk:
setstatchanger STAT_ATK, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShiftGearEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShiftGearEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ShiftGearEnd:
goto BattleScript_MoveEnd
2018-08-11 12:29:01 +02:00
BattleScript_EffectCoil:
attackcanceler
attackstring
ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_CoilDoMoveAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_CoilDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ACC, 0xC, BattleScript_CantRaiseMultipleStats
BattleScript_CoilDoMoveAnim:
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
2018-09-22 11:13:17 +02:00
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_ACC, 0x0
2018-08-11 12:29:01 +02:00
setstatchanger STAT_ATK, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CoilTryDef
2018-08-11 12:29:01 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CoilTryDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_CoilTryDef:
setstatchanger STAT_DEF, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CoilTryAcc
2018-08-11 12:29:01 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CoilTryAcc
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_CoilTryAcc:
setstatchanger STAT_ACC, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CoilEnd
2018-08-11 12:29:01 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CoilEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_CoilEnd:
goto BattleScript_MoveEnd
2018-08-11 12:29:01 +02:00
BattleScript_EffectQuiverDance:
attackcanceler
attackstring
ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_QuiverDanceDoMoveAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, 0xC, BattleScript_QuiverDanceDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 0xC, BattleScript_CantRaiseMultipleStats
BattleScript_QuiverDanceDoMoveAnim::
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF | BIT_SPEED, 0x0
setstatchanger STAT_SPATK, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_QuiverDanceTrySpDef
2018-08-11 12:29:01 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_QuiverDanceTrySpDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_QuiverDanceTrySpDef::
setstatchanger STAT_SPDEF, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_QuiverDanceTrySpeed
2018-08-11 12:29:01 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_QuiverDanceTrySpeed
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_QuiverDanceTrySpeed::
setstatchanger STAT_SPEED, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_QuiverDanceEnd
2018-08-11 12:29:01 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_QuiverDanceEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_QuiverDanceEnd::
goto BattleScript_MoveEnd
2018-08-11 12:16:00 +02:00
BattleScript_EffectSpeedUpHit:
setmoveeffect MOVE_EFFECT_SPD_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
2018-08-05 16:43:07 +02:00
BattleScript_EffectMeFirst:
attackcanceler
attackstring
trymefirst BattleScript_ButItFailedPpReduce
attackanimation
waitanimation
setbyte sB_ANIM_TURN, 0x0
setbyte sB_ANIM_TARGETS_HIT, 0x0
2018-09-22 19:27:56 +02:00
jumptocalledmove TRUE
2018-08-05 13:39:22 +02:00
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
2018-09-22 01:01:13 +02:00
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPATK, 0x0
2018-08-05 13:39:22 +02:00
setstatchanger STAT_ATK, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AttackSpAttackUpTrySpAtk
2018-09-22 01:01:13 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackSpAttackUpTrySpAtk
2018-08-05 13:39:22 +02:00
printfromtable gStatUpStringIds
waitmessage 0x40
2018-09-22 01:01:13 +02:00
BattleScript_AttackSpAttackUpTrySpAtk::
2018-08-05 13:39:22 +02:00
setstatchanger STAT_SPATK, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AttackSpAttackUpEnd
2018-08-05 13:39:22 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackSpAttackUpEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_AttackSpAttackUpEnd:
goto BattleScript_MoveEnd
2018-08-05 13:39:22 +02:00
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
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AttackAccUpTrySpDef
2018-08-05 13:39:22 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackAccUpTrySpDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_AttackAccUpTrySpDef::
setstatchanger STAT_ACC, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AttackAccUpEnd
2018-08-05 13:39:22 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackAccUpEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_AttackAccUpEnd:
goto BattleScript_MoveEnd
2018-08-05 12:43:57 +02:00
BattleScript_EffectMistyTerrain:
BattleScript_EffectGrassyTerrain:
BattleScript_EffectElectricTerrain:
BattleScript_EffectPsychicTerrain:
attackcanceler
attackstring
ppreduce
setterrain BattleScript_ButItFailed
attackanimation
waitanimation
printfromtable gTerrainStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
2018-08-04 23:34:29 +02:00
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
2018-08-04 23:34:29 +02:00
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
2018-07-26 20:36:16 +02:00
BattleScript_EffectHealingWish:
attackcanceler
2020-03-14 12:31:42 +01:00
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailedAtkStringPpReduce
2018-07-26 20:36:16 +02:00
attackstring
ppreduce
attackanimation
waitanimation
instanthpdrop BS_ATTACKER
setatkhptozero
tryfaintmon BS_ATTACKER, FALSE, NULL
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
2019-11-10 12:09:14 +01:00
manipulatedamage DMG_CHANGE_SIGN
2018-07-26 20:36:16 +02:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
clearstatus BS_ATTACKER
waitstate
updatestatusicon BS_ATTACKER
waitstate
printstring STRINGID_HEALINGWISHHEALED
waitmessage 0x40
switchineffects BS_ATTACKER
BattleScript_EffectHealingWishEnd:
moveendall
2018-07-26 20:36:16 +02:00
end
2018-07-23 22:18:56 +02:00
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
2018-10-06 15:50:35 +02:00
BattleScript_EffectSpeedSwap:
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
swapstatstages STAT_SPEED
attackanimation
waitanimation
printstring STRINGID_PKMNSWITCHEDSTATCHANGES
waitmessage 0x40
goto BattleScript_MoveEnd
2018-07-21 21:58:07 +02:00
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
2018-07-21 21:58:07 +02:00
BattleScript_EffectStealthRock:
attackcanceler
attackstring
ppreduce
2018-07-23 22:18:56 +02:00
setstealthrock BattleScript_ButItFailed
2018-07-21 21:58:07 +02:00
attackanimation
waitanimation
2018-07-23 22:18:56 +02:00
printstring STRINGID_POINTEDSTONESFLOAT
2018-07-21 21:58:07 +02:00
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectStickyWeb:
attackcanceler
attackstring
ppreduce
setstickyweb BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_STICKYWEBUSED
waitmessage 0x40
goto BattleScript_MoveEnd
2018-07-21 21:58:07 +02:00
BattleScript_EffectGastroAcid:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setgastroacid BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSABILITYSUPPRESSED
waitmessage 0x40
goto BattleScript_MoveEnd
2018-07-21 21:58:07 +02:00
BattleScript_EffectToxicSpikes:
attackcanceler
attackstring
ppreduce
settoxicspikes BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_POISONSPIKESSCATTERED
waitmessage 0x40
goto BattleScript_MoveEnd
2018-07-21 21:58:07 +02:00
BattleScript_EffectMagnetRise:
attackcanceler
attackstring
ppreduce
2020-07-27 14:51:39 +02:00
setuserstatus3 STATUS3_MAGNET_RISE, BattleScript_ButItFailed
2018-07-21 21:58:07 +02:00
attackanimation
waitanimation
printstring STRINGID_PKMNLEVITATEDONELECTROMAGNETISM
waitmessage 0x40
goto BattleScript_MoveEnd
2018-07-21 21:58:07 +02:00
BattleScript_EffectTrickRoom:
BattleScript_EffectWonderRoom:
BattleScript_EffectMagicRoom:
attackcanceler
attackstring
ppreduce
setroom
attackanimation
waitanimation
printfromtable gRoomsStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectAquaRing:
attackcanceler
attackstring
ppreduce
2020-07-27 14:51:39 +02:00
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
2019-02-01 13:41:08 +01:00
printstring STRINGID_PKMNCANTUSEITEMSANYMORE
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
selectfirstvalidtarget
BattleScript_GravityLoop:
movevaluescleanup
jumpifstatus3 BS_TARGET, STATUS3_ON_AIR | STATUS3_MAGNET_RISE | STATUS3_TELEKINESIS, BattleScript_GravityLoopDrop
goto BattleScript_GravityLoopEnd
BattleScript_GravityLoopDrop:
bringdownairbornebattler BS_TARGET
printstring STRINGID_GRAVITYGROUNDING
waitmessage 0x40
BattleScript_GravityLoopEnd:
2019-11-10 12:09:14 +01:00
moveendto MOVEEND_NEXT_TARGET
jumpifnexttargetvalid BattleScript_GravityLoop
end
BattleScript_EffectRoost:
attackcanceler
attackstring
ppreduce
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_TARGET
setroost
goto BattleScript_PresentHealTarget
2018-07-22 15:08:32 +02:00
BattleScript_EffectCaptivate:
setstatchanger STAT_SPATK, 2, TRUE
attackcanceler
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
2018-07-22 15:08:32 +02:00
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
2019-04-01 11:42:37 +02:00
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
sethealblock BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNPREVENTEDFROMHEALING
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectThroatChop:
jumpifsubstituteblocks BattleScript_EffectHit
setmoveeffect MOVE_EFFECT_THROAT_CHOP | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
2018-07-23 22:43:05 +02:00
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
moveendto MOVEEND_ATTACKER_VISIBLE
moveendfrom MOVEEND_TARGET_VISIBLE
2018-08-11 12:16:00 +02:00
jumpifbattleend BattleScript_HitEscapeEnd
2019-02-09 14:30:16 +01:00
jumpifbyte CMP_NOT_EQUAL gBattleOutcome 0, BattleScript_HitEscapeEnd
2020-07-08 17:38:28 +02:00
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_HitEscapeEnd
2019-11-10 12:09:14 +01:00
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_HitEscapeEnd
openpartyscreen BS_ATTACKER, BattleScript_HitEscapeEnd
2018-07-23 22:43:05 +02:00
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
2018-09-30 14:04:46 +02:00
attackstring
ppreduce
pause 0x5
printstring STRINGID_NOTDONEYET
goto BattleScript_MoveEnd
BattleScript_EffectStompingTantrum:
2018-07-14 18:58:45 +02:00
BattleScript_EffectEvasionDownHit:
BattleScript_EffectVitalThrow:
BattleScript_EffectFalseSwipe:
2018-07-23 21:36:05 +02:00
BattleScript_EffectAlwaysCrit:
2018-07-14 18:58:45 +02:00
BattleScript_EffectPursuit:
2018-07-26 23:40:55 +02:00
BattleScript_EffectFellStinger:
BattleScript_EffectHit::
2018-07-14 18:44:38 +02:00
BattleScript_EffectLowKick:
BattleScript_EffectFlail:
BattleScript_EffectFacade:
2018-07-14 18:58:45 +02:00
BattleScript_EffectRevenge:
BattleScript_EffectReturn:
BattleScript_EffectFrustration:
BattleScript_EffectEruption:
BattleScript_EffectPledge:
BattleScript_EffectFling:
BattleScript_EffectWringOut:
BattleScript_EffectHex:
BattleScript_EffectAssurance:
BattleScript_EffectTrump_card:
BattleScript_EffectAcrobatics:
2018-07-21 21:58:07 +02:00
BattleScript_EffectHeatCrash:
BattleScript_EffectPunishment:
BattleScript_EffectStoredPower:
BattleScript_EffectElectroBall:
BattleScript_EffectGyroBall:
BattleScript_EffectEchoedVoice:
BattleScript_EffectPayback:
BattleScript_EffectRound:
BattleScript_EffectBrine:
BattleScript_EffectVenoshock:
BattleScript_EffectRetalitate:
BattleScript_EffectFoulPlay:
BattleScript_EffectPsyshock:
BattleScript_EffectWeatherBall:
BattleScript_EffectHiddenPower:
2018-08-05 13:57:37 +02:00
BattleScript_EffectTwoTypedMove:
BattleScript_EffectChangeTypeOnItem:
2018-09-30 14:04:46 +02:00
BattleScript_EffectFusionCombo:
BattleScript_EffectRevelationDance:
2019-02-01 14:17:24 +01:00
BattleScript_EffectBelch:
BattleScript_HitFromAtkCanceler::
attackcanceler
BattleScript_HitFromAccCheck::
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
BattleScript_HitFromAtkString::
attackstring
ppreduce
BattleScript_HitFromCritCalc::
critcalc
damagecalc
2018-07-14 22:56:03 +02:00
adjustdamage
BattleScript_HitFromAtkAnimation::
attackanimation
waitanimation
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_TARGET
waitstate
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
seteffectwithchance
2018-02-08 11:17:41 +01:00
tryfaintmon BS_TARGET, FALSE, NULL
BattleScript_MoveEnd::
2019-03-30 12:37:18 +01:00
moveendall
end
2019-05-20 12:03:00 +02:00
BattleScript_EffectNaturalGift:
attackcanceler
attackstring
ppreduce
jumpifnotberry BS_ATTACKER, BattleScript_ButItFailed
jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_MAGIC_ROOM, BattleScript_ButItFailed
jumpifability BS_ATTACKER, ABILITY_KLUTZ, BattleScript_ButItFailed
jumpifstatus3 BS_ATTACKER, STATUS3_EMBARGO, BattleScript_ButItFailed
accuracycheck BattleScript_MoveMissedPause, 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
seteffectwithchance
jumpifmovehadnoeffect BattleScript_EffectNaturalGiftEnd
removeitem BS_ATTACKER
BattleScript_EffectNaturalGiftEnd:
tryfaintmon BS_TARGET, FALSE, NULL
goto BattleScript_MoveEnd
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
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailed
2018-02-08 11:17:41 +01:00
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_AlreadyAsleep
jumpifcantmakeasleep BattleScript_CantMakeAsleep
2019-12-31 16:36:53 +01:00
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
jumpifflowerveil BattleScript_FlowerVeilProtects
2019-03-31 22:02:39 +02:00
jumpifability BS_TARGET_SIDE, ABILITY_SWEET_VEIL, BattleScript_SweetVeilProtects
2019-12-18 22:03:01 +01:00
jumpifleafguard BattleScript_LeafGuardProtects
2020-04-19 21:18:39 +02:00
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
2018-02-08 11:17:41 +01:00
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2020-04-23 11:29:19 +02:00
jumpifsafeguard BattleScript_SafeguardProtected
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_SLEEP
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_FlowerVeilProtectsRet::
pause 0x20
call BattleScript_AbilityPopUp
printstring STRINGID_FLOWERVEILPROTECTED
waitmessage 0x40
return
BattleScript_FlowerVeilProtects:
call BattleScript_FlowerVeilProtectsRet
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
goto BattleScript_MoveEnd
2019-03-31 22:02:39 +02:00
BattleScript_SweetVeilProtectsRet::
pause 0x20
call BattleScript_AbilityPopUp
printstring STRINGID_FLOWERVEILPROTECTED
waitmessage 0x40
return
2019-03-31 22:02:39 +02:00
BattleScript_SweetVeilProtects:
call BattleScript_SweetVeilProtectsRet
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
goto BattleScript_MoveEnd
2019-04-01 11:42:37 +02:00
BattleScript_AromaVeilProtectsRet::
pause 0x20
call BattleScript_AbilityPopUp
printstring STRINGID_AROMAVEILPROTECTED
waitmessage 0x40
return
2019-04-01 11:42:37 +02:00
BattleScript_AromaVeilProtects:
call BattleScript_AromaVeilProtectsRet
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
goto BattleScript_MoveEnd
2019-12-16 09:29:20 +01:00
BattleScript_LeafGuardProtectsRet::
pause 0x20
call BattleScript_AbilityPopUp
printstring STRINGID_ITDOESNTAFFECT
waitmessage 0x40
return
2019-12-16 09:29:20 +01:00
BattleScript_LeafGuardProtects:
call BattleScript_LeafGuardProtectsRet
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
goto BattleScript_MoveEnd
BattleScript_AlreadyAsleep::
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt 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:
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_POISON
goto BattleScript_EffectHit
BattleScript_EffectAbsorb::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
2018-07-14 22:56:03 +02:00
adjustdamage
attackanimation
waitanimation
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_TARGET
waitstate
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
setdrainedhp
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze
setbyte cMULTISTRING_CHOOSER, 0x0
2017-12-02 00:03:46 +01:00
goto BattleScript_AbsorbUpdateHp
BattleScript_AbsorbLiquidOoze::
copybyte gBattlerAbility, gBattlerTarget
call BattleScript_AbilityPopUp
2019-08-23 14:46:21 +02:00
manipulatedamage DMG_CHANGE_SIGN
setbyte cMULTISTRING_CHOOSER, 0x1
2017-12-02 00:03:46 +01:00
BattleScript_AbsorbUpdateHp::
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_AbsorbTryFainting
printfromtable gLeechSeedDrainStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AbsorbTryFainting::
2018-02-08 11:17:41 +01:00
tryfaintmon BS_ATTACKER, FALSE, NULL
tryfaintmon BS_TARGET, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectBurnHit::
BattleScript_EffectBlazeKick::
2018-08-11 13:30:34 +02:00
BattleScript_EffectScald:
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_BURN
goto BattleScript_EffectHit
BattleScript_EffectFreezeDry:
BattleScript_EffectFreezeHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_FREEZE
goto BattleScript_EffectHit
BattleScript_EffectParalyzeHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_PARALYSIS
goto BattleScript_EffectHit
BattleScript_EffectExplosion::
attackcanceler
attackstring
ppreduce
faintifabilitynotdamp
setatkhptozero
waitstate
2018-09-01 20:00:13 +02:00
jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop
call BattleScript_PreserveMissedBitDoMoveAnim
goto BattleScript_ExplosionLoop
BattleScript_ExplosionDoAnimStartLoop:
attackanimation
waitanimation
2018-09-01 20:00:13 +02:00
BattleScript_ExplosionLoop:
movevaluescleanup
critcalc
damagecalc
2018-07-14 22:56:03 +02:00
adjustdamage
2018-09-01 20:00:13 +02:00
accuracycheck BattleScript_ExplosionMissed, ACC_CURR_MOVE
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_TARGET
waitstate
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
2018-02-08 11:17:41 +01:00
tryfaintmon BS_TARGET, FALSE, NULL
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
2018-09-01 20:00:13 +02:00
jumpifnexttargetvalid BattleScript_ExplosionLoop
2018-02-08 11:17:41 +01:00
tryfaintmon BS_ATTACKER, FALSE, NULL
2020-04-11 12:02:51 +02:00
moveendcase MOVEEND_CLEAR_BITS
end
2018-09-01 20:00:13 +02:00
BattleScript_ExplosionMissed:
effectivenesssound
resultmessage
waitmessage 0x40
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
2018-09-01 20:00:13 +02:00
jumpifnexttargetvalid BattleScript_ExplosionLoop
2018-02-08 11:17:41 +01:00
tryfaintmon BS_ATTACKER, FALSE, NULL
end
BattleScript_EffectMindBlown::
attackcanceler
attackstring
ppreduce
faintifabilitynotdamp
dmg_1_2_attackerhp
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
waitstate
jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop
call BattleScript_PreserveMissedBitDoMoveAnim
goto BattleScript_ExplosionLoop
2018-09-01 20:00:13 +02:00
BattleScript_PreserveMissedBitDoMoveAnim:
2018-07-21 15:11:13 +02:00
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
attackanimation
waitanimation
2018-07-21 15:11:13 +02:00
orhalfword gMoveResultFlags, MOVE_RESULT_MISSED
return
BattleScript_EffectDreamEater::
attackcanceler
2018-09-02 00:07:19 +02:00
jumpifsubstituteblocks BattleScript_DreamEaterNoEffect
2018-09-01 20:00:13 +02:00
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_DreamEaterWorked
2019-12-31 16:36:53 +01:00
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_DreamEaterWorked
2018-09-01 20:00:13 +02:00
BattleScript_DreamEaterNoEffect:
attackstring
ppreduce
waitmessage 0x40
goto BattleScript_WasntAffected
2018-09-01 20:00:13 +02:00
BattleScript_DreamEaterWorked:
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
2018-07-14 22:56:03 +02:00
adjustdamage
attackanimation
waitanimation
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_TARGET
waitstate
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
setdrainedhp
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_DreamEaterTryFaintEnd
printstring STRINGID_PKMNDREAMEATEN
waitmessage 0x40
2018-09-01 20:00:13 +02:00
BattleScript_DreamEaterTryFaintEnd:
2018-02-08 11:17:41 +01:00
tryfaintmon BS_TARGET, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectMirrorMove::
attackcanceler
attackstring
pause 0x40
trymirrormove
ppreduce
2018-07-21 15:11:13 +02:00
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_MIRRORMOVEFAILED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectAttackUp::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectDefenseUp::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectSpecialAttackUp::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPATK, 1, FALSE
goto BattleScript_EffectStatUp
2018-07-21 21:58:07 +02:00
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::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_EVASION, 1, FALSE
BattleScript_EffectStatUp::
attackcanceler
BattleScript_EffectStatUpAfterAtkCanceler::
attackstring
ppreduce
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_StatUpEnd
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpAttackAnim
pause 0x20
2017-11-26 01:19:57 +01:00
goto BattleScript_StatUpPrintString
BattleScript_StatUpAttackAnim::
attackanimation
waitanimation
2017-11-26 01:19:57 +01:00
BattleScript_StatUpDoAnim::
setgraphicalstatchangevalues
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
2017-11-26 01:19:57 +01:00
BattleScript_StatUpPrintString::
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
BattleScript_StatUpEnd::
goto BattleScript_MoveEnd
BattleScript_StatUp::
2018-02-08 11:17:41 +01:00
playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
2019-02-14 12:15:53 +01:00
BattleScript_StatUpMsg::
printfromtable gStatUpStringIds
waitmessage 0x40
return
2018-07-21 21:58:07 +02:00
BattleScript_EffectAttackDown:
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, TRUE
goto BattleScript_EffectStatDown
2018-07-21 21:58:07 +02:00
BattleScript_EffectDefenseDown:
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, TRUE
goto BattleScript_EffectStatDown
2018-07-21 21:58:07 +02:00
BattleScript_EffectSpeedDown:
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPEED, 1, TRUE
goto BattleScript_EffectStatDown
2018-07-21 21:58:07 +02:00
BattleScript_EffectAccuracyDown:
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ACC, 1, TRUE
goto BattleScript_EffectStatDown
2018-07-21 21:58:07 +02:00
BattleScript_EffectSpecialAttackDown:
setstatchanger STAT_SPATK, 1, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectSpecialDefenseDown:
setstatchanger STAT_SPDEF, 1, TRUE
goto BattleScript_EffectStatDown
2018-07-21 21:58:07 +02:00
BattleScript_EffectEvasionDown:
2018-02-08 11:17:41 +01:00
setstatchanger STAT_EVASION, 1, TRUE
2018-07-21 21:58:07 +02:00
BattleScript_EffectStatDown:
attackcanceler
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
2018-07-22 15:08:32 +02:00
BattleScript_StatDownFromAttackString:
attackstring
ppreduce
2019-09-27 08:46:33 +02:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_StatDownEnd
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatDownDoAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StatDownEnd
pause 0x20
2017-11-26 01:19:57 +01:00
goto BattleScript_StatDownPrintString
BattleScript_StatDownDoAnim::
attackanimation
waitanimation
setgraphicalstatchangevalues
2018-02-08 11:17:41 +01:00
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
2017-11-26 01:19:57 +01:00
BattleScript_StatDownPrintString::
printfromtable gStatDownStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
BattleScript_StatDownEnd::
goto BattleScript_MoveEnd
BattleScript_StatDown::
2018-02-08 11:17:41 +01:00
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
2019-01-13 13:15:23 +01:00
orword gHitMarker, HITMARKER_CHARGING
setbide
goto BattleScript_MoveEnd
BattleScript_EffectRampage::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
2018-09-01 20:00:13 +02:00
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_EffectRampage2
ppreduce
2018-09-01 20:00:13 +02:00
BattleScript_EffectRampage2:
confuseifrepeatingattackends
goto BattleScript_HitFromCritCalc
BattleScript_EffectRoar::
attackcanceler
attackstring
ppreduce
2019-03-06 12:09:34 +01:00
jumpifroarfails BattleScript_ButItFailed
2018-02-08 11:17:41 +01:00
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
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
2018-09-22 16:15:00 +02:00
BattleScript_ForceRandomSwitch::
forcerandomswitch BattleScript_ButItFailed
BattleScript_EffectMultiHit::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setmultihitcounter 0x0
initmultihitstring
2019-02-14 13:17:27 +01:00
sethword sMULTIHIT_EFFECT, 0x0
BattleScript_MultiHitLoop::
2018-02-08 11:17:41 +01:00
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
2019-02-14 13:17:27 +01:00
copyhword sMOVE_EFFECT, sMULTIHIT_EFFECT
critcalc
damagecalc
jumpifmovehadnoeffect BattleScript_MultiHitNoMoreHits
2018-07-14 22:56:03 +02:00
adjustdamage
attackanimation
waitanimation
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_TARGET
waitstate
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 0x40
2018-07-21 15:11:13 +02:00
multihitresultmessage
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
addbyte sMULTIHIT_STRING + 4, 0x1
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
2018-02-08 11:17:41 +01:00
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
2018-02-08 11:17:41 +01:00
tryfaintmon BS_TARGET, FALSE, NULL
2019-08-23 14:46:21 +02:00
moveendcase MOVEEND_SYNCHRONIZE_TARGET
2019-11-10 12:09:14 +01:00
moveendfrom MOVEEND_STATUS_IMMUNITY_ABILITIES
end
BattleScript_EffectConversion::
attackcanceler
attackstring
ppreduce
tryconversiontypechange BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCHANGEDTYPE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectFlinchHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_FLINCH
goto BattleScript_EffectHit
BattleScript_EffectFlinchWithStatus:
setmoveeffect MOVE_EFFECT_FLINCH
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
seteffectwithchance
argumentstatuseffect
tryfaintmon BS_TARGET, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectRestoreHp::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER
attackanimation
waitanimation
2020-04-17 21:14:26 +02:00
BattleScript_RestoreHp:
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectToxic::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
2019-12-31 16:36:53 +01:00
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
jumpifflowerveil BattleScript_FlowerVeilProtects
2019-12-18 22:03:01 +01:00
jumpifleafguard BattleScript_LeafGuardProtects
2020-04-19 21:18:39 +02:00
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailed
2019-05-10 11:03:33 +02:00
jumpifstatus BS_TARGET, STATUS1_POISON | STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
2018-02-08 11:17:41 +01:00
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
trypoisontype BS_ATTACKER, BS_TARGET, BattleScript_NotAffected
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2020-04-23 11:29:19 +02:00
jumpifsafeguard BattleScript_SafeguardProtected
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_TOXIC
seteffectprimary
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_AlreadyPoisoned::
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt BS_ATTACKER
pause 0x40
printstring STRINGID_PKMNALREADYPOISONED
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_ImmunityProtected::
2018-02-08 11:17:41 +01:00
copybyte gEffectBattler, gBattlerTarget
setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_PSNPrevention
goto BattleScript_MoveEnd
BattleScript_EffectPayDay::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_PAYDAY
goto BattleScript_EffectHit
BattleScript_EffectAuroraVeil:
attackcanceler
attackstring
ppreduce
setauroraveil BS_ATTACKER
goto BattleScript_PrintReflectLightScreenSafeguardString
BattleScript_EffectLightScreen::
attackcanceler
attackstring
ppreduce
setlightscreen
2017-11-26 17:15:28 +01:00
goto BattleScript_PrintReflectLightScreenSafeguardString
BattleScript_EffectTriAttack::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_TRI_ATTACK
goto BattleScript_EffectHit
BattleScript_EffectRest::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_RestIsAlreadyAsleep
2019-12-31 16:36:53 +01:00
jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_RestIsAlreadyAsleep
2017-11-26 17:15:28 +01:00
jumpifcantmakeasleep BattleScript_RestCantSleep
trysetrest BattleScript_AlreadyAtFullHp
pause 0x20
printfromtable gRestUsedStringIds
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_ATTACKER
waitstate
goto BattleScript_PresentHealTarget
2017-11-26 17:15:28 +01:00
BattleScript_RestCantSleep::
pause 0x40
printfromtable gUproarAwakeStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_RestIsAlreadyAsleep::
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt 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
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
tryKO BattleScript_KOFail
trysetdestinybondtohappen
goto BattleScript_HitFromAtkAnimation
BattleScript_KOFail::
pause 0x40
printfromtable gKOFailedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_TwoTurnMovesSecondTurn::
attackcanceler
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CHARGING
setbyte sB_ANIM_TURN, 0x1
2018-02-08 11:17:41 +01:00
clearstatusfromeffect BS_ATTACKER
orword gHitMarker, HITMARKER_NO_PPDEDUCT
2018-09-30 14:04:46 +02:00
argumenttomoveeffect
goto BattleScript_HitFromAccCheck
BattleScriptFirstChargingTurn::
attackcanceler
printstring STRINGID_EMPTYSTRING3
ppreduce
attackanimation
waitanimation
2019-01-13 13:15:23 +01:00
orword gHitMarker, HITMARKER_CHARGING
2018-02-08 00:35:13 +01:00
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
2018-07-21 15:11:13 +02:00
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
2018-07-21 15:11:13 +02:00
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
2017-11-25 21:11:20 +01:00
setword gBattleMoveDamage, 40
2018-07-14 22:56:03 +02:00
adjustdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectTrap::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_WRAP
goto BattleScript_EffectHit
BattleScript_EffectDoubleHit::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setmultihitcounter 0x2
initmultihitstring
2019-02-14 13:17:27 +01:00
sethword sMULTIHIT_EFFECT, 0x0
goto BattleScript_MultiHitLoop
BattleScript_EffectRecoilIfMiss::
attackcanceler
2017-12-02 00:03:46 +01:00
accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE
goto BattleScript_HitFromAtkString
2017-12-02 00:03:46 +01:00
BattleScript_MoveMissedDoDamage::
2020-04-13 15:49:40 +02:00
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_PrintMoveMissed
attackstring
ppreduce
pause 0x40
resultmessage
waitmessage 0x40
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd
printstring STRINGID_PKMNCRASHED
waitmessage 0x40
damagecalc
typecalc
2018-07-14 22:56:03 +02:00
adjustdamage
2019-09-15 23:58:12 +02:00
manipulatedamage DMG_RECOIL_FROM_MISS
2018-07-21 15:11:13 +02:00
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, FALSE, NULL
2018-07-21 15:11:13 +02:00
orhalfword gMoveResultFlags, MOVE_RESULT_MISSED
goto BattleScript_MoveEnd
BattleScript_EffectMist::
attackcanceler
attackstring
ppreduce
setmist
attackanimation
waitanimation
printfromtable gMistUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
2018-07-14 22:56:03 +02:00
BattleScript_EffectFocusEnergy:
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed
setfocusenergy
attackanimation
waitanimation
printfromtable gFocusEnergyUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
2018-07-14 22:56:03 +02:00
BattleScript_EffectConfuse:
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailed
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_AlreadyConfused
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2020-04-23 11:29:19 +02:00
jumpifsafeguard BattleScript_SafeguardProtected
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CONFUSION
seteffectprimary
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_AlreadyConfused::
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt BS_ATTACKER
pause 0x20
printstring STRINGID_PKMNALREADYCONFUSED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectAttackUp2::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 2, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectDefenseUp2::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 2, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectDefenseUp3:
setstatchanger STAT_DEF, 3, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectSpeedUp2::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPEED, 2, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectSpecialAttackUp2::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPATK, 2, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectSpecialAttackUp3::
setstatchanger STAT_SPATK, 3, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectSpecialDefenseUp2::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPDEF, 2, FALSE
goto BattleScript_EffectStatUp
2018-07-21 21:58:07 +02:00
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
2018-07-21 21:58:07 +02:00
BattleScript_EffectAttackDown2:
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 2, TRUE
goto BattleScript_EffectStatDown
2018-07-21 21:58:07 +02:00
BattleScript_EffectDefenseDown2:
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 2, TRUE
goto BattleScript_EffectStatDown
2018-07-21 21:58:07 +02:00
BattleScript_EffectSpeedDown2:
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPEED, 2, TRUE
goto BattleScript_EffectStatDown
2018-07-21 21:58:07 +02:00
BattleScript_EffectSpecialDefenseDown2:
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPDEF, 2, TRUE
goto BattleScript_EffectStatDown
2018-07-21 21:58:07 +02:00
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
2017-11-26 17:15:28 +01:00
BattleScript_PrintReflectLightScreenSafeguardString::
attackanimation
waitanimation
printfromtable gReflectLightScreenSafeguardStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectPoison::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
2019-12-31 16:36:53 +01:00
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
jumpifflowerveil BattleScript_FlowerVeilProtects
2019-12-18 22:03:01 +01:00
jumpifleafguard BattleScript_LeafGuardProtects
2020-04-19 21:18:39 +02:00
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailed
2018-02-08 11:17:41 +01:00
jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
trypoisontype BS_ATTACKER, BS_TARGET, BattleScript_NotAffected
2018-02-08 11:17:41 +01:00
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2020-04-23 11:29:19 +02:00
jumpifsafeguard BattleScript_SafeguardProtected
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_POISON
seteffectprimary
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
2018-08-11 12:16:00 +02:00
BattleScript_EffectParalyze:
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_LIMBER, BattleScript_LimberProtected
2019-12-31 16:36:53 +01:00
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
jumpifflowerveil BattleScript_FlowerVeilProtects
2019-12-18 22:03:01 +01:00
jumpifleafguard BattleScript_LeafGuardProtects
2020-04-19 21:18:39 +02:00
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailed
typecalc
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_ButItFailed
2018-02-08 11:17:41 +01:00
jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_AlreadyParalyzed
tryparalyzetype BS_ATTACKER, BS_TARGET, BattleScript_NotAffected
2018-02-08 11:17:41 +01:00
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2020-04-23 11:29:19 +02:00
jumpifsafeguard BattleScript_SafeguardProtected
2018-08-11 12:16:00 +02:00
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_PARALYSIS
seteffectprimary
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
2018-08-11 12:16:00 +02:00
BattleScript_AlreadyParalyzed:
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt BS_ATTACKER
pause 0x20
printstring STRINGID_PKMNISALREADYPARALYZED
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_LimberProtected::
2018-02-08 11:17:41 +01:00
copybyte gEffectBattler, gBattlerTarget
setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_PRLZPrevention
goto BattleScript_MoveEnd
BattleScript_EffectAttackDownHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_ATK_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectDefenseDownHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_DEF_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSpeedDownHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_SPD_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSpecialAttackDownHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_SP_ATK_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSpecialDefenseDownHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_SP_DEF_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSpecialDefenseDownHit2::
setmoveeffect MOVE_EFFECT_SP_DEF_MINUS_2
goto BattleScript_EffectHit
BattleScript_EffectAccuracyDownHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_ACC_MINUS_1
goto BattleScript_EffectHit
2020-04-22 10:44:19 +02:00
BattleScript_PowerHerbActivation:
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_POWERHERB
waitmessage 0x40
removeitem BS_ATTACKER
return
2018-09-30 14:04:46 +02:00
BattleScript_EffectTwoTurnsAttack::
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
2018-09-30 14:04:46 +02:00
jumpifmove MOVE_SKY_ATTACK, BattleScript_EffectTwoTurnsAttackSkyAttack
jumpifmove MOVE_RAZOR_WIND, BattleScript_EffectTwoTurnsAttackRazorWind
jumpifmove MOVE_ICE_BURN, BattleScript_EffectTwoTurnsAttackIceBurn
jumpifmove MOVE_FREEZE_SHOCK, BattleScript_EffectTwoTurnsAttackFreezeShock
setbyte sTWOTURN_STRINGID, 0x0
BattleScript_EffectTwoTurnsAttackContinue:
call BattleScriptFirstChargingTurn
2020-04-22 10:44:19 +02:00
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
call BattleScript_PowerHerbActivation
goto BattleScript_TwoTurnMovesSecondTurn
2018-09-30 14:04:46 +02:00
BattleScript_EffectTwoTurnsAttackSkyAttack:
setbyte sTWOTURN_STRINGID, 0x3
goto BattleScript_EffectTwoTurnsAttackContinue
BattleScript_EffectTwoTurnsAttackRazorWind:
setbyte sTWOTURN_STRINGID, 0x0
goto BattleScript_EffectTwoTurnsAttackContinue
BattleScript_EffectTwoTurnsAttackIceBurn:
setbyte sTWOTURN_STRINGID, 0x0
goto BattleScript_EffectTwoTurnsAttackContinue
BattleScript_EffectTwoTurnsAttackFreezeShock:
setbyte sTWOTURN_STRINGID, 0xa
2020-04-20 19:02:03 +02:00
goto BattleScript_EffectTwoTurnsAttackContinue
BattleScript_EffectGeomancy:
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_GeomancySecondTurn
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_GeomancySecondTurn
setbyte sTWOTURN_STRINGID, 0x9
call BattleScriptFirstChargingTurn
2020-04-22 10:44:19 +02:00
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
call BattleScript_PowerHerbActivation
2020-04-20 19:02:03 +02:00
BattleScript_GeomancySecondTurn:
attackcanceler
setmoveeffect MOVE_EFFECT_CHARGING
setbyte sB_ANIM_TURN, 0x1
clearstatusfromeffect BS_ATTACKER
orword gHitMarker, HITMARKER_NO_PPDEDUCT
attackstring
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_GeomancyDoMoveAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, 0xC, BattleScript_GeomancyDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 0xC, BattleScript_CantRaiseMultipleStats
BattleScript_GeomancyDoMoveAnim::
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF | BIT_SPEED, 0x0
setstatchanger STAT_SPATK, 2, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_GeomancyTrySpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_GeomancyTrySpDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_GeomancyTrySpDef::
setstatchanger STAT_SPDEF, 2, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_GeomancyTrySpeed
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_GeomancyTrySpeed
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_GeomancyTrySpeed::
setstatchanger STAT_SPEED, 2, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_GeomancyEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_GeomancyEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_GeomancyEnd::
goto BattleScript_MoveEnd
BattleScript_EffectConfuseHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CONFUSION
goto BattleScript_EffectHit
BattleScript_EffectTwineedle::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
2019-02-14 13:17:27 +01:00
sethword sMULTIHIT_EFFECT, MOVE_EFFECT_POISON
attackstring
ppreduce
setmultihitcounter 0x2
initmultihitstring
goto BattleScript_MultiHitLoop
BattleScript_EffectSubstitute::
attackcanceler
ppreduce
attackstring
waitstate
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_ATTACKER, STATUS2_SUBSTITUTE, BattleScript_AlreadyHasSubstitute
setsubstitute
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_SubstituteAnim
pause 0x20
2017-11-26 17:15:28 +01:00
goto BattleScript_SubstituteString
BattleScript_SubstituteAnim::
attackanimation
waitanimation
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2017-11-26 17:15:28 +01:00
BattleScript_SubstituteString::
printfromtable gSubsituteUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_AlreadyHasSubstitute::
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt BS_ATTACKER
pause 0x20
printstring STRINGID_PKMNHASSUBSTITUTE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectRecharge::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
2018-02-08 00:35:13 +01:00
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
2017-11-26 01:19:57 +01:00
accuracycheck BattleScript_RageMiss, ACC_CURR_MOVE
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_RAGE
seteffectprimary
setmoveeffect 0
goto BattleScript_HitFromAtkString
2017-11-26 01:19:57 +01:00
BattleScript_RageMiss::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_RAGE
2018-02-08 11:17:41 +01:00
clearstatusfromeffect BS_ATTACKER
goto BattleScript_PrintMoveMissed
BattleScript_EffectMimic::
attackcanceler
attackstring
ppreduce
2018-08-02 20:24:18 +02:00
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
2018-02-08 00:35:13 +01:00
setbyte sB_ANIM_TURN, 0x0
setbyte sB_ANIM_TARGETS_HIT, 0x0
metronome
2017-11-26 01:19:57 +01:00
BattleScript_EffectLeechSeed::
attackcanceler
attackstring
pause 0x20
ppreduce
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailed
2017-11-26 17:15:28 +01:00
accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE
BattleScript_DoLeechSeed::
setseeded
attackanimation
waitanimation
printfromtable gLeechSeedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectDoNothing::
attackcanceler
attackstring
ppreduce
jumpifmove MOVE_HOLD_HANDS, BattleScript_EffectHoldHands
attackanimation
waitanimation
jumpifmove MOVE_CELEBRATE, BattleScript_EffectCelebrate
jumpifmove MOVE_HAPPY_HOUR, BattleScript_EffectHappyHour
2018-10-06 09:37:52 +02:00
incrementgamestat GAME_STAT_USED_SPLASH
printstring STRINGID_BUTNOTHINGHAPPENED
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectHoldHands:
jumpifsideaffecting BS_TARGET, SIDE_STATUS_CRAFTY_SHIELD, BattleScript_ButItFailed
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed
attackanimation
waitanimation
goto BattleScript_MoveEnd
BattleScript_EffectCelebrate:
printstring STRINGID_CELEBRATEMESSAGE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectHappyHour:
setmoveeffect MOVE_EFFECT_HAPPY_HOUR
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_EffectDisable::
attackcanceler
attackstring
ppreduce
2019-04-01 11:42:37 +02:00
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
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
2018-07-21 15:11:13 +02:00
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
dmgtolevel
2018-07-14 22:56:03 +02:00
adjustdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectPsywave::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
2018-07-21 15:11:13 +02:00
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
psywavedamageeffect
2018-07-14 22:56:03 +02:00
adjustdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectCounter::
attackcanceler
counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
2018-07-28 10:58:47 +02:00
typecalc
bichalfword gMoveResultFlags, MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
2018-07-14 22:56:03 +02:00
adjustdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectEncore::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
2019-04-01 11:42:37 +02:00
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
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
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2017-11-25 21:32:17 +01:00
copyword gBattleMoveDamage, sPAINSPLIT_HP
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printstring STRINGID_SHAREDPAIN
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSnore::
attackcanceler
2019-12-31 16:36:53 +01:00
jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_SnoreIsAsleep
2018-02-08 11:17:41 +01:00
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_SnoreIsAsleep
attackstring
ppreduce
goto BattleScript_ButItFailed
2017-11-26 17:15:28 +01:00
BattleScript_SnoreIsAsleep::
2018-02-08 11:17:41 +01:00
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore
printstring STRINGID_PKMNFASTASLEEP
waitmessage 0x40
2018-02-08 11:17:41 +01:00
statusanimation BS_ATTACKER
2017-11-26 17:15:28 +01:00
BattleScript_DoSnore::
attackstring
ppreduce
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
2018-02-08 00:35:13 +01:00
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
2018-08-02 20:24:18 +02:00
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
2019-12-31 16:36:53 +01:00
jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_SleepTalkIsAsleep
2018-02-08 11:17:41 +01:00
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_SleepTalkIsAsleep
attackstring
ppreduce
goto BattleScript_ButItFailed
2017-11-26 01:19:57 +01:00
BattleScript_SleepTalkIsAsleep::
printstring STRINGID_PKMNFASTASLEEP
waitmessage 0x40
2018-02-08 11:17:41 +01:00
statusanimation BS_ATTACKER
attackstring
ppreduce
orword gHitMarker, HITMARKER_NO_PPDEDUCT
2017-11-26 01:19:57 +01:00
trychoosesleeptalkmove BattleScript_SleepTalkUsingMove
pause 0x40
goto BattleScript_ButItFailed
2017-11-26 01:19:57 +01:00
BattleScript_SleepTalkUsingMove::
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setbyte sB_ANIM_TURN, 0x0
setbyte sB_ANIM_TARGETS_HIT, 0x0
2018-09-22 19:08:41 +02:00
jumptocalledmove 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
2017-11-26 17:15:28 +01:00
jumpifnotmove MOVE_HEAL_BELL, BattleScript_PartyHealEnd
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_CheckHealBellMon2Unaffected
printstring STRINGID_PKMNSXBLOCKSY
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_CheckHealBellMon2Unaffected::
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x2, BattleScript_PartyHealEnd
printstring STRINGID_PKMNSXBLOCKSY2
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_PartyHealEnd::
2018-02-08 11:17:41 +01:00
updatestatusicon BS_ATTACKER_WITH_PARTNER
waitstate
goto BattleScript_MoveEnd
BattleScript_EffectTripleKick::
attackcanceler
attackstring
ppreduce
sethword sTRIPLE_KICK_POWER, 0x0
initmultihitstring
setmultihit 0x3
BattleScript_TripleKickLoop::
2018-02-08 11:17:41 +01:00
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
2017-11-26 17:15:28 +01:00
BattleScript_DoTripleKickAttack::
accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE
movevaluescleanup
addbyte sTRIPLE_KICK_POWER, 10
addbyte sMULTIHIT_STRING + 4, 0x1
critcalc
damagecalc
2018-07-14 22:56:03 +02:00
adjustdamage
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_TripleKickNoMoreHits
attackanimation
waitanimation
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_TARGET
waitstate
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 0x40
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_TripleKickPrintStrings
decrementmultihit BattleScript_TripleKickLoop
goto BattleScript_TripleKickPrintStrings
BattleScript_TripleKickNoMoreHits::
pause 0x20
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickPrintStrings
2018-07-21 15:11:13 +02:00
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
BattleScript_TripleKickPrintStrings::
resultmessage
waitmessage 0x40
2018-02-08 11:17:41 +01:00
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
2018-02-08 11:17:41 +01:00
tryfaintmon BS_TARGET, FALSE, NULL
2019-08-23 14:46:21 +02:00
moveendfrom MOVEEND_UPDATE_LAST_MOVES
end
BattleScript_EffectThief::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_STEAL_ITEM
goto BattleScript_EffectHit
2018-10-06 15:50:35 +02:00
BattleScript_EffectHitPreventEscape:
setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE
goto BattleScript_EffectHit
BattleScript_EffectMeanLook::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailed
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE
seteffectprimary
printstring STRINGID_TARGETCANTESCAPENOW
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectNightmare::
attackcanceler
attackstring
ppreduce
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailed
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_NightmareWorked
2019-12-31 16:36:53 +01:00
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_NightmareWorked
goto BattleScript_ButItFailed
BattleScript_NightmareWorked::
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_NIGHTMARE
seteffectprimary
printstring STRINGID_PKMNFELLINTONIGHTMARE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectMinimize::
attackcanceler
setminimize
2018-02-08 11:17:41 +01:00
setstatchanger STAT_EVASION, 1, FALSE
goto BattleScript_EffectStatUpAfterAtkCanceler
BattleScript_EffectCurse::
jumpiftype BS_ATTACKER, TYPE_GHOST, BattleScript_GhostCurse
attackcanceler
attackstring
ppreduce
2020-08-05 02:33:05 +02:00
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, MIN_STAT_STAGE, BattleScript_CurseTrySpeed
jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_CurseTrySpeed
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, MAX_STAT_STAGE, BattleScript_ButItFailed
2017-11-26 01:19:57 +01:00
BattleScript_CurseTrySpeed::
2018-02-06 23:09:39 +01:00
copybyte gBattlerTarget, gBattlerAttacker
2018-02-08 00:35:13 +01:00
setbyte sB_ANIM_TURN, 0x1
attackanimation
waitanimation
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPEED, 1, TRUE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseTryAttack
printfromtable gStatDownStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
BattleScript_CurseTryAttack::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseTryDefence
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
BattleScript_CurseTryDefence::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseEnd
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
BattleScript_CurseEnd::
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_GhostCurse::
2018-02-06 23:09:39 +01:00
jumpifbytenotequal gBattlerAttacker, gBattlerTarget, BattleScript_DoGhostCurse
2018-02-08 11:17:41 +01:00
getmovetarget BS_ATTACKER
2017-11-26 01:19:57 +01:00
BattleScript_DoGhostCurse::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
cursetarget BattleScript_ButItFailed
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 00:35:13 +01:00
setbyte sB_ANIM_TURN, 0x0
attackanimation
waitanimation
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNLAIDCURSE
waitmessage 0x40
2018-02-08 11:17:41 +01:00
tryfaintmon BS_ATTACKER, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectMatBlock::
attackcanceler
jumpifnotfirstturn BattleScript_ButItFailedAtkStringPpReduce
goto BattleScript_ProtectLikeAtkString
BattleScript_EffectProtect::
BattleScript_EffectEndure::
attackcanceler
BattleScript_ProtectLikeAtkString:
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
2018-08-11 12:16:00 +02:00
BattleScript_EffectForesight:
attackcanceler
attackstring
ppreduce
2018-08-11 12:16:00 +02:00
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
jumpifstatus2 BS_TARGET, STATUS2_FORESIGHT, BattleScript_ButItFailed
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
2018-10-27 00:04:18 +02:00
setbyte sBATTLER, 0x0
BattleScript_PerishSongLoop::
2018-02-08 11:17:41 +01:00
jumpifability BS_SCRIPTING, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected
BattleScript_PerishSongLoopIncrement::
2018-10-27 00:04:18 +02:00
addbyte sBATTLER, 0x1
jumpifbytenotequal sBATTLER, gBattlersCount, BattleScript_PerishSongLoop
goto BattleScript_MoveEnd
BattleScript_PerishSongNotAffected::
printstring STRINGID_PKMNSXBLOCKSY2
waitmessage 0x40
goto BattleScript_PerishSongLoopIncrement
BattleScript_EffectSandstorm::
attackcanceler
attackstring
ppreduce
setsandstorm
2017-11-26 17:15:28 +01:00
goto BattleScript_MoveWeatherChange
BattleScript_EffectRollout::
attackcanceler
attackstring
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy
ppreduce
2017-11-26 17:15:28 +01:00
BattleScript_RolloutCheckAccuracy::
accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE
BattleScript_RolloutHit::
2018-07-28 10:58:47 +02:00
typecalc
handlerollout
goto BattleScript_HitFromCritCalc
BattleScript_EffectSwagger::
attackcanceler
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_MakeMoveMissed
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifconfusedandstatmaxed STAT_ATK, BattleScript_ButItFailed
attackanimation
waitanimation
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 2, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_SwaggerTryConfuse
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SwaggerTryConfuse
setgraphicalstatchangevalues
2018-02-08 11:17:41 +01:00
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 0x40
2018-07-16 21:56:11 +02:00
BattleScript_SwaggerTryConfuse:
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
2020-04-23 11:29:19 +02:00
jumpifsafeguard BattleScript_SafeguardProtected
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CONFUSION
seteffectprimary
goto BattleScript_MoveEnd
2018-07-16 21:56:11 +02:00
BattleScript_EffectFuryCutter:
attackcanceler
attackstring
ppreduce
2017-11-26 17:15:28 +01:00
accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE
2018-07-16 21:56:11 +02:00
BattleScript_FuryCutterHit:
handlefurycutter
critcalc
damagecalc
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_FuryCutterHit
2018-07-14 22:56:03 +02:00
adjustdamage
goto BattleScript_HitFromAtkAnimation
2020-04-22 14:40:44 +02:00
BattleScript_TryDestinyKnotTarget:
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_DESTINY_KNOT, BattleScript_TryDestinyKnotTargetRet
infatuatewithbattler BS_TARGET, BS_ATTACKER
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL
waitanimation
status2animation BS_TARGET, STATUS2_INFATUATION
waitanimation
printstring STRINGID_DESTINYKNOTACTIVATES
waitmessage 0x40
BattleScript_TryDestinyKnotTargetRet:
return
BattleScript_TryDestinyKnotAttacker:
jumpifnoholdeffect BS_TARGET, HOLD_EFFECT_DESTINY_KNOT, BattleScript_TryDestinyKnotAttackerRet
infatuatewithbattler BS_ATTACKER, BS_TARGET
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT, NULL
waitanimation
status2animation BS_ATTACKER, STATUS2_INFATUATION
waitanimation
printstring STRINGID_DESTINYKNOTACTIVATES
waitmessage 0x40
BattleScript_TryDestinyKnotAttackerRet:
return
BattleScript_EffectAttract::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2019-04-01 11:42:37 +02:00
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
tryinfatuating BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNFELLINLOVE
waitmessage 0x40
2020-04-22 14:40:44 +02:00
call BattleScript_TryDestinyKnotAttacker
goto BattleScript_MoveEnd
BattleScript_EffectPresent::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
presentdamagecalculation
2017-11-25 21:32:17 +01:00
BattleScript_EffectSafeguard::
attackcanceler
attackstring
ppreduce
setsafeguard
2017-11-26 17:15:28 +01:00
goto BattleScript_PrintReflectLightScreenSafeguardString
BattleScript_EffectThawHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_BURN
goto BattleScript_EffectHit
BattleScript_EffectMagnitude::
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT, BattleScript_EffectMagnitudeTarget
attackcanceler
attackstring
ppreduce
magnitudedamagecalculation
pause 0x20
printstring STRINGID_MAGNITUDESTRENGTH
waitmessage 0x40
BattleScript_EffectMagnitudeTarget:
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
goto BattleScript_HitFromCritCalc
BattleScript_EffectBatonPass::
attackcanceler
attackstring
ppreduce
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
2019-09-15 23:58:12 +02:00
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
attackanimation
waitanimation
2018-07-26 20:36:16 +02:00
openpartyscreen BS_ATTACKER, BattleScript_ButItFailed
2018-02-08 11:17:41 +01:00
switchoutabilities BS_ATTACKER
waitstate
2018-02-08 11:17:41 +01:00
switchhandleorder BS_ATTACKER, 0x2
returntoball BS_ATTACKER
getswitchedmondata BS_ATTACKER
switchindataupdate BS_ATTACKER
hpthresholds BS_ATTACKER
printstring STRINGID_SWITCHINMON
2018-02-08 11:17:41 +01:00
switchinanim BS_ATTACKER, TRUE
waitstate
2018-02-08 11:17:41 +01:00
switchineffects BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_EffectRapidSpin::
.if B_SPEED_BUFFING_RAPID_SPIN == GEN_8
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
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
seteffectwithchance
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_EffectRapidSpinEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectRapidSpinEnd
setgraphicalstatchangevalues
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_EffectRapidSpinEnd::
tryfaintmon BS_TARGET, FALSE, NULL
moveendall
end
.else
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
.endif
goto BattleScript_EffectHit
BattleScript_EffectSonicboom::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
2018-07-21 15:11:13 +02:00
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
2017-11-25 21:11:20 +01:00
setword gBattleMoveDamage, 20
2018-07-14 22:56:03 +02:00
adjustdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectMorningSun::
BattleScript_EffectSynthesis::
BattleScript_EffectMoonlight::
2020-04-18 18:34:18 +02:00
BattleScript_EffectShoreUp::
attackcanceler
attackstring
ppreduce
recoverbasedonsunlight BattleScript_AlreadyAtFullHp
goto BattleScript_PresentHealTarget
BattleScript_EffectRainDance::
attackcanceler
attackstring
ppreduce
setrain
2017-11-26 17:15:28 +01:00
BattleScript_MoveWeatherChange::
attackanimation
waitanimation
printfromtable gMoveWeatherChangeStringIds
waitmessage 0x40
2017-11-26 01:19:57 +01:00
call BattleScript_WeatherFormChanges
goto BattleScript_MoveEnd
BattleScript_EffectSunnyDay::
attackcanceler
attackstring
ppreduce
setsunny
2017-11-26 17:15:28 +01:00
goto BattleScript_MoveWeatherChange
BattleScript_EffectDefenseUpHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_DEF_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
BattleScript_EffectAttackUpHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
BattleScript_EffectAllStatsUpHit::
2018-02-08 00:35:13 +01:00
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
2018-02-08 11:17:41 +01:00
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
2018-07-28 10:58:47 +02:00
typecalc
bichalfword gMoveResultFlags, MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
2018-07-14 22:56:03 +02:00
adjustdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectSkullBash::
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
2020-07-21 19:29:51 +02:00
setbyte sTWOTURN_STRINGID, 2
call BattleScriptFirstChargingTurn
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_SkullBashEnd
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SkullBashEnd
setgraphicalstatchangevalues
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_SkullBashEnd::
2020-04-22 10:44:19 +02:00
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
call BattleScript_PowerHerbActivation
goto BattleScript_TwoTurnMovesSecondTurn
2018-07-14 18:58:45 +02:00
BattleScript_EffectTwister:
BattleScript_FlinchEffect:
BattleScript_EffectStomp:
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_FLINCH
goto BattleScript_EffectHit
BattleScript_EffectBulldoze:
setmoveeffect MOVE_EFFECT_SPD_MINUS_1
BattleScript_EffectEarthquake:
goto BattleScript_EffectHit
BattleScript_EffectFutureSight::
attackcanceler
attackstring
ppreduce
trysetfutureattack BattleScript_ButItFailed
attackanimation
waitanimation
printfromtable gFutureMoveUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectGust::
goto BattleScript_EffectHit
BattleScript_EffectSolarbeam::
2017-11-26 17:15:28 +01:00
jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarbeamDecideTurn
jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarbeamDecideTurn
2018-02-08 11:17:41 +01:00
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_SolarbeamOnFirstTurn
2017-11-26 17:15:28 +01:00
BattleScript_SolarbeamDecideTurn::
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
2020-07-21 19:29:51 +02:00
setbyte sTWOTURN_STRINGID, 1
call BattleScriptFirstChargingTurn
2020-04-22 10:44:19 +02:00
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
call BattleScript_PowerHerbActivation
goto BattleScript_TwoTurnMovesSecondTurn
2017-11-26 01:19:57 +01:00
BattleScript_SolarbeamOnFirstTurn::
2019-01-13 13:15:23 +01:00
orword gHitMarker, HITMARKER_CHARGING
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER
seteffectprimary
ppreduce
2017-11-26 17:15:28 +01:00
goto BattleScript_TwoTurnMovesSecondTurn
2018-08-05 13:39:22 +02:00
BattleScript_EffectThunder:
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_PARALYSIS
goto BattleScript_EffectHit
2018-08-05 13:39:22 +02:00
BattleScript_EffectHurricane:
setmoveeffect MOVE_EFFECT_CONFUSION
goto BattleScript_EffectHit
2018-08-05 13:39:22 +02:00
BattleScript_EffectTeleport:
attackcanceler
attackstring
ppreduce
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed
2018-02-08 11:17:41 +01:00
getifcantrunfrombattle BS_ATTACKER
jumpifbyte CMP_EQUAL, gBattleCommunication, 0x1, BattleScript_ButItFailed
jumpifbyte CMP_EQUAL, gBattleCommunication, 0x2, BattleScript_PrintAbilityMadeIneffective
attackanimation
waitanimation
printstring STRINGID_PKMNFLEDFROMBATTLE
waitmessage 0x40
2018-02-08 11:17:41 +01:00
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
2018-07-14 22:56:03 +02:00
jumpifbyte CMP_NOT_EQUAL, gIsCriticalHit, TRUE, BattleScript_BeatUpAttack
2019-08-23 14:46:21 +02:00
manipulatedamage DMG_DOUBLED
BattleScript_BeatUpAttack::
2018-07-14 22:56:03 +02:00
adjustdamage
attackanimation
waitanimation
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_TARGET
waitstate
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
2018-02-08 11:17:41 +01:00
tryfaintmon BS_TARGET, FALSE, NULL
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
goto BattleScript_BeatUpLoop
BattleScript_BeatUpEnd::
end
BattleScript_EffectSemiInvulnerable::
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SecondTurnSemiInvulnerable
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_SecondTurnSemiInvulnerable
2017-11-26 11:55:17 +01:00
jumpifmove MOVE_FLY, BattleScript_FirstTurnFly
jumpifmove MOVE_DIVE, BattleScript_FirstTurnDive
jumpifmove MOVE_BOUNCE, BattleScript_FirstTurnBounce
2018-12-08 16:19:50 +01:00
jumpifmove MOVE_PHANTOM_FORCE, BattleScript_FirstTurnPhantomForce
jumpifmove MOVE_SHADOW_FORCE, BattleScript_FirstTurnPhantomForce
setbyte sTWOTURN_STRINGID, 0x5
goto BattleScript_FirstTurnSemiInvulnerable
BattleScript_FirstTurnBounce::
2020-07-21 19:29:51 +02:00
setbyte sTWOTURN_STRINGID, 7
goto BattleScript_FirstTurnSemiInvulnerable
BattleScript_FirstTurnDive::
2020-07-21 19:29:51 +02:00
setbyte sTWOTURN_STRINGID, 6
goto BattleScript_FirstTurnSemiInvulnerable
2018-12-08 16:19:50 +01:00
BattleScript_FirstTurnPhantomForce:
setbyte sTWOTURN_STRINGID, 0x8
goto BattleScript_FirstTurnSemiInvulnerable
BattleScript_FirstTurnFly::
2020-07-21 19:29:51 +02:00
setbyte sTWOTURN_STRINGID, 4
BattleScript_FirstTurnSemiInvulnerable::
call BattleScriptFirstChargingTurn
setsemiinvulnerablebit
2020-04-22 10:44:19 +02:00
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
call BattleScript_PowerHerbActivation
BattleScript_SecondTurnSemiInvulnerable::
attackcanceler
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CHARGING
setbyte sB_ANIM_TURN, 0x1
2018-02-08 11:17:41 +01:00
clearstatusfromeffect BS_ATTACKER
orword gHitMarker, HITMARKER_NO_PPDEDUCT
2018-12-08 16:19:50 +01:00
argumenttomoveeffect
2017-11-26 17:15:28 +01:00
BattleScript_SemiInvulnerableTryHit::
accuracycheck BattleScript_SemiInvulnerableMiss, ACC_CURR_MOVE
clearsemiinvulnerablebit
goto BattleScript_HitFromAtkString
BattleScript_SemiInvulnerableMiss::
clearsemiinvulnerablebit
goto BattleScript_PrintMoveMissed
BattleScript_EffectDefenseCurl::
attackcanceler
attackstring
ppreduce
setdefensecurlbit
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DefenseCurlDoStatUpAnim
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpPrintString
attackanimation
waitanimation
2017-11-26 17:15:28 +01:00
BattleScript_DefenseCurlDoStatUpAnim::
2017-11-26 01:19:57 +01:00
goto BattleScript_StatUpDoAnim
BattleScript_EffectSoftboiled::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_TARGET
BattleScript_PresentHealTarget::
attackanimation
waitanimation
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
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
2018-11-24 21:06:53 +01:00
setmoveeffect MOVE_EFFECT_FLINCH
goto BattleScript_EffectHit
BattleScript_ButItFailedAtkStringPpReduce::
attackstring
BattleScript_ButItFailedPpReduce::
ppreduce
BattleScript_ButItFailed::
pause 0x20
2018-07-21 15:11:13 +02:00
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_NotAffected::
pause 0x20
2018-07-21 15:11:13 +02:00
orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectUproar::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_UPROAR | MOVE_EFFECT_AFFECTS_USER
attackstring
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_UproarHit
ppreduce
2017-11-26 17:15:28 +01:00
BattleScript_UproarHit::
goto BattleScript_HitFromCritCalc
BattleScript_EffectStockpile::
attackcanceler
attackstring
ppreduce
stockpile 0
attackanimation
waitanimation
printfromtable gStockpileUsedStringIds
waitmessage 0x40
jumpifmovehadnoeffect BattleScript_EffectStockpileEnd
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_EffectStockpileDef
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_EffectStockpileEnd
BattleScript_EffectStockpileDef:
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0x0
setstatchanger STAT_DEF, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_EffectStockpileSpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectStockpileSpDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_EffectStockpileSpDef::
setstatchanger STAT_SPDEF, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_EffectStockpileEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectStockpileEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_EffectStockpileEnd:
stockpile 1
goto BattleScript_MoveEnd
BattleScript_EffectSpitUp::
attackcanceler
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82D9FA2
attackstring
ppreduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
setbyte gIsCriticalHit, FALSE
damagecalc
2018-07-14 22:56:03 +02:00
adjustdamage
stockpiletobasedamage BattleScript_SpitUpFail
goto BattleScript_HitFromAtkAnimation
BattleScript_SpitUpFail::
pause 0x20
printstring STRINGID_FAILEDTOSPITUP
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_82D9FA2::
attackstring
ppreduce
pause 0x40
stockpiletobasedamage BattleScript_SpitUpFail
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectSwallow::
attackcanceler
attackstring
ppreduce
stockpiletohpheal BattleScript_SwallowFail
goto BattleScript_PresentHealTarget
BattleScript_SwallowFail::
pause 0x20
printfromtable gSwallowFailStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectHail::
attackcanceler
attackstring
ppreduce
sethail
2017-11-26 17:15:28 +01:00
goto BattleScript_MoveWeatherChange
BattleScript_EffectTorment::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2019-04-01 11:42:37 +02:00
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
settorment BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSUBJECTEDTOTORMENT
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectFlatter::
attackcanceler
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_MakeMoveMissed
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifconfusedandstatmaxed STAT_SPATK, BattleScript_ButItFailed
attackanimation
waitanimation
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPATK, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_FlatterTryConfuse
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_FlatterTryConfuse
setgraphicalstatchangevalues
2018-02-08 11:17:41 +01:00
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_FlatterTryConfuse::
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
2020-04-23 11:29:19 +02:00
jumpifsafeguard BattleScript_SafeguardProtected
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CONFUSION
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_EffectWillOWisp::
attackcanceler
attackstring
ppreduce
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailed
2018-02-08 11:17:41 +01:00
jumpifstatus BS_TARGET, STATUS1_BURN, BattleScript_AlreadyBurned
jumpiftype BS_TARGET, TYPE_FIRE, BattleScript_NotAffected
jumpifability BS_TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents
2019-12-31 16:36:53 +01:00
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
jumpifflowerveil BattleScript_FlowerVeilProtects
2019-12-18 22:03:01 +01:00
jumpifleafguard BattleScript_LeafGuardProtects
2020-04-19 21:18:39 +02:00
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
2018-02-08 11:17:41 +01:00
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2020-04-23 11:29:19 +02:00
jumpifsafeguard BattleScript_SafeguardProtected
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_BURN
seteffectprimary
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_WaterVeilPrevents::
2018-02-08 11:17:41 +01:00
copybyte gEffectBattler, gBattlerTarget
setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_BRNPrevention
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_AlreadyBurned::
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt BS_ATTACKER
pause 0x20
printstring STRINGID_PKMNALREADYHASBURN
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectMemento::
attackcanceler
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82DA153
attackstring
ppreduce
jumpifattackandspecialattackcannotfall BattleScript_ButItFailed
setatkhptozero
attackanimation
waitanimation
2018-08-03 00:21:40 +02:00
jumpifsubstituteblocks BattleScript_EffectMementoPrintNoEffect
2018-07-29 15:33:16 +02:00
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO | STAT_CHANGE_ONLY_MULTIPLE
2019-08-23 14:46:21 +02:00
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 2, TRUE
2019-09-27 08:46:33 +02:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMementoTrySpAtk
2018-07-29 15:33:16 +02:00
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_EffectMementoTrySpAtk
printfromtable gStatDownStringIds
waitmessage 0x40
2018-07-29 15:33:16 +02:00
BattleScript_EffectMementoTrySpAtk:
2019-08-23 14:46:21 +02:00
playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPATK, 2, TRUE
2019-09-27 08:46:33 +02:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMementoTryFaint
2018-07-29 15:33:16 +02:00
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_EffectMementoTryFaint
printfromtable gStatDownStringIds
waitmessage 0x40
2018-07-29 15:33:16 +02:00
BattleScript_EffectMementoTryFaint:
2018-02-08 11:17:41 +01:00
tryfaintmon BS_ATTACKER, FALSE, NULL
goto BattleScript_MoveEnd
2018-07-29 15:33:16 +02:00
BattleScript_EffectMementoPrintNoEffect:
printstring STRINGID_BUTNOEFFECT
waitmessage 0x40
2018-07-29 15:33:16 +02:00
goto BattleScript_EffectMementoTryFaint
BattleScript_82DA153:
attackstring
ppreduce
jumpifattackandspecialattackcannotfall BattleScript_82DA15A
2018-07-29 15:33:16 +02:00
BattleScript_82DA15A:
setatkhptozero
pause 0x40
effectivenesssound
resultmessage
waitmessage 0x40
2018-02-08 11:17:41 +01:00
tryfaintmon BS_ATTACKER, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectFocusPunch::
attackcanceler
jumpifnodamage BattleScript_HitFromAccCheck
ppreduce
printstring STRINGID_PKMNLOSTFOCUS
waitmessage 0x40
goto BattleScript_MoveEnd
2018-11-24 21:06:53 +01:00
BattleScript_EffectSmellingsalt:
BattleScript_EffectWakeUpSlap:
BattleScript_EffectSparklingAria:
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_EffectHit
2018-11-24 21:06:53 +01:00
setmoveeffect MOVE_EFFECT_REMOVE_STATUS | 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
2020-02-08 11:55:16 +01:00
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_EffectChargeString
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectChargeString
setgraphicalstatchangevalues
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_EffectChargeString:
printstring STRINGID_PKMNCHARGINGPOWER
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectTaunt::
attackcanceler
attackstring
ppreduce
2019-04-01 11:42:37 +02:00
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
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
2018-08-02 20:24:18 +02:00
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
2018-07-21 21:58:07 +02:00
BattleScript_EffectAssist:
attackcanceler
attackstring
assistattackselect BattleScript_ButItFailedPpReduce
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setbyte sB_ANIM_TURN, 0x0
setbyte sB_ANIM_TARGETS_HIT, 0x0
2018-09-22 19:08:41 +02:00
jumptocalledmove TRUE
2018-07-21 21:58:07 +02:00
BattleScript_EffectIngrain:
attackcanceler
attackstring
ppreduce
2020-07-27 14:51:39 +02:00
setuserstatus3 STATUS3_ROOTED, BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNPLANTEDROOTS
waitmessage 0x40
goto BattleScript_MoveEnd
2018-07-21 21:58:07 +02:00
BattleScript_EffectSuperpower:
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_ATK_DEF_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
2018-09-22 01:12:27 +02:00
BattleScript_EffectCloseCombat:
setmoveeffect MOVE_EFFECT_DEF_SPDEF_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
2018-07-21 21:58:07 +02:00
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
2018-07-14 22:56:03 +02:00
adjustdamage
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, sB_ANIM_TURN, 0x0, BattleScript_BrickBreakAnim
2018-07-21 15:11:13 +02:00
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE
2017-12-02 00:03:46 +01:00
BattleScript_BrickBreakAnim::
attackanimation
waitanimation
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_LESS_THAN, sB_ANIM_TURN, 0x2, BattleScript_BrickBreakDoHit
printstring STRINGID_THEWALLSHATTERED
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_BrickBreakDoHit::
2018-07-28 10:58:47 +02:00
typecalc
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_TARGET
waitstate
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
seteffectwithchance
2018-02-08 11:17:41 +01:00
tryfaintmon BS_TARGET, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_EffectYawn::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBankAbilityMadeIneffective
jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_PrintBankAbilityMadeIneffective
2019-12-31 16:36:53 +01:00
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_PrintBankAbilityMadeIneffective
jumpifflowerveil BattleScript_FlowerVeilProtects
2019-12-18 22:03:01 +01:00
jumpifleafguard BattleScript_LeafGuardProtects
2020-04-19 21:18:39 +02:00
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_ButItFailed
2020-04-23 11:29:19 +02:00
jumpifsafeguard 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 sBATTLER, gBattlerAbility
BattleScript_PrintAbilityMadeIneffective::
pause 0x20
printstring STRINGID_PKMNSXMADEITINEFFECTIVE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectKnockOff::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_KNOCK_OFF
goto BattleScript_EffectHit
BattleScript_EffectEndeavor::
attackcanceler
attackstring
ppreduce
setdamagetohealthdifference BattleScript_ButItFailed
2017-11-25 21:32:17 +01:00
copyword gHpDealt, gBattleMoveDamage
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
2018-07-21 15:11:13 +02:00
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
2017-11-25 21:32:17 +01:00
copyword gBattleMoveDamage, gHpDealt
2018-07-14 22:56:03 +02:00
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
tryimprison BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSEALEDOPPONENTMOVE
waitmessage 0x40
goto BattleScript_MoveEnd
2018-07-21 21:58:07 +02:00
BattleScript_EffectRefresh:
attackcanceler
attackstring
ppreduce
cureifburnedparalysedorpoisoned BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSTATUSNORMAL
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_ATTACKER
goto BattleScript_MoveEnd
2018-07-21 21:58:07 +02:00
BattleScript_EffectGrudge:
attackcanceler
attackstring
ppreduce
2020-07-27 14:51:39 +02:00
setuserstatus3 STATUS3_GRUDGE, BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNWANTSGRUDGE
waitmessage 0x40
goto BattleScript_MoveEnd
2018-07-21 21:58:07 +02:00
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
2020-04-20 11:27:09 +02:00
BattleScript_EffectRecoil25:
setmoveeffect MOVE_EFFECT_RECOIL_25 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit
incrementgamestat GAME_STAT_USED_STRUGGLE
goto BattleScript_EffectHit
BattleScript_EffectRecoil33::
2018-09-01 20:00:13 +02:00
setmoveeffect MOVE_EFFECT_RECOIL_33 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectRecoil33WithStatus:
setmoveeffect MOVE_EFFECT_RECOIL_33_STATUS | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
2018-09-22 11:13:17 +02:00
BattleScript_EffectRecoil50:
setmoveeffect MOVE_EFFECT_RECOIL_50 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectTeeterDance::
attackcanceler
attackstring
ppreduce
2018-02-06 23:09:39 +01:00
setbyte gBattlerTarget, 0x0
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceLoop::
movevaluescleanup
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CONFUSION
2018-02-06 23:09:39 +01:00
jumpifbyteequal gBattlerAttacker, gBattlerTarget, BattleScript_TeeterDanceLoopIncrement
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents
2018-08-02 20:24:18 +02:00
jumpifsubstituteblocks BattleScript_TeeterDanceSubstitutePrevents
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused
jumpifhasnohp BS_TARGET, BattleScript_TeeterDanceLoopIncrement
2017-12-02 00:03:46 +01:00
accuracycheck BattleScript_TeeterDanceMissed, ACC_CURR_MOVE
2020-04-23 11:29:19 +02:00
jumpifsafeguard BattleScript_TeeterDanceSafeguardProtected
attackanimation
waitanimation
seteffectprimary
resultmessage
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceDoMoveEndIncrement::
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceLoopIncrement::
2018-02-06 23:09:39 +01:00
addbyte gBattlerTarget, 0x1
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TeeterDanceLoop
end
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceOwnTempoPrevents::
pause 0x20
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceSafeguardProtected::
pause 0x20
printstring STRINGID_PKMNUSEDSAFEGUARD
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceSubstitutePrevents::
pause 0x20
printstring STRINGID_BUTITFAILED
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceAlreadyConfused::
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt BS_ATTACKER
pause 0x20
printstring STRINGID_PKMNALREADYCONFUSED
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceMissed::
resultmessage
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
BattleScript_EffectMudSport::
BattleScript_EffectWaterSport::
attackcanceler
attackstring
ppreduce
settypebasedhalvers BattleScript_ButItFailed
attackanimation
waitanimation
printfromtable gSportsUsedStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectPoisonFang::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_TOXIC
goto BattleScript_EffectHit
BattleScript_EffectOverheat::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_SP_ATK_TWO_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectHammerArm::
setmoveeffect MOVE_EFFECT_SPD_MINUS_1 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectTickle::
attackcanceler
attackstring
ppreduce
2020-08-05 02:33:05 +02:00
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_TickleDoMoveAnim
jumpifstat BS_TARGET, CMP_EQUAL, STAT_DEF, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats
2017-11-26 17:15:28 +01:00
BattleScript_TickleDoMoveAnim::
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
attackanimation
waitanimation
2018-07-29 15:33:16 +02:00
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE
2019-08-23 14:46:21 +02:00
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, TRUE
2019-09-27 08:46:33 +02:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_TickleTryLowerDef
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleTryLowerDef
printfromtable gStatDownStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_TickleTryLowerDef::
2019-08-23 14:46:21 +02:00
playstatchangeanimation BS_TARGET, BIT_DEF, STAT_CHANGE_NEGATIVE
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, TRUE
2019-09-27 08:46:33 +02:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_TickleEnd
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleEnd
printfromtable gStatDownStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_TickleEnd::
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_CantLowerMultipleStats::
pause 0x20
2018-07-21 15:11:13 +02:00
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_STATSWONTDECREASE2
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectCosmicPower::
attackcanceler
attackstring
ppreduce
2020-08-05 02:33:05 +02:00
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_CosmicPowerDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
2017-11-26 17:15:28 +01:00
BattleScript_CosmicPowerDoMoveAnim::
attackanimation
waitanimation
2018-07-29 15:33:16 +02:00
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0x0
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CosmicPowerTrySpDef
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerTrySpDef
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_CosmicPowerTrySpDef::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPDEF, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CosmicPowerEnd
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerEnd
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_CosmicPowerEnd::
goto BattleScript_MoveEnd
BattleScript_EffectSkyUppercut::
goto BattleScript_EffectHit
BattleScript_EffectBulkUp::
attackcanceler
attackstring
ppreduce
2020-08-05 02:33:05 +02:00
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_BulkUpDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
2017-11-26 17:15:28 +01:00
BattleScript_BulkUpDoMoveAnim::
attackanimation
waitanimation
2018-07-29 15:33:16 +02:00
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0x0
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_BulkUpTryDef
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpTryDef
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_BulkUpTryDef::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_BulkUpEnd
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpEnd
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_BulkUpEnd::
goto BattleScript_MoveEnd
BattleScript_EffectCalmMind::
attackcanceler
attackstring
ppreduce
2020-08-05 02:33:05 +02:00
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_CalmMindDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
2017-11-26 17:15:28 +01:00
BattleScript_CalmMindDoMoveAnim::
attackanimation
waitanimation
2018-07-29 15:33:16 +02:00
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0x0
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPATK, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CalmMindTrySpDef
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindTrySpDef
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_CalmMindTrySpDef::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPDEF, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CalmMindEnd
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindEnd
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_CalmMindEnd::
goto BattleScript_MoveEnd
BattleScript_CantRaiseMultipleStats::
pause 0x20
2018-07-21 15:11:13 +02:00
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_STATSWONTINCREASE2
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_EffectDragonDance::
attackcanceler
attackstring
ppreduce
2020-08-05 02:33:05 +02:00
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_DragonDanceDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
2017-11-26 17:15:28 +01:00
BattleScript_DragonDanceDoMoveAnim::
attackanimation
waitanimation
2018-07-29 15:33:16 +02:00
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0x0
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DragonDanceTrySpeed
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceTrySpeed
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_DragonDanceTrySpeed::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPEED, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DragonDanceEnd
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceEnd
printfromtable gStatUpStringIds
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_DragonDanceEnd::
goto BattleScript_MoveEnd
BattleScript_EffectCamouflage::
attackcanceler
attackstring
ppreduce
settypetoterrain BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCHANGEDTYPE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_FaintAttacker::
2019-08-08 13:06:55 +02:00
tryillusionoff BS_ATTACKER
2018-02-08 11:17:41 +01:00
playfaintcry BS_ATTACKER
pause 0x40
2018-02-08 11:17:41 +01:00
dofaintanimation BS_ATTACKER
printstring STRINGID_ATTACKERFAINTED
2019-08-08 13:06:55 +02:00
cleareffectsonfaint BS_ATTACKER
2020-04-18 19:59:09 +02:00
tryactivatesoulheart
2020-04-19 12:07:56 +02:00
tryactivatereceiver BS_ATTACKER
2018-11-03 01:17:16 +01:00
trytrainerslidefirstdownmsg BS_ATTACKER
return
BattleScript_FaintTarget::
2019-08-08 13:06:55 +02:00
tryillusionoff BS_TARGET
2018-02-08 11:17:41 +01:00
playfaintcry BS_TARGET
pause 0x40
2018-02-08 11:17:41 +01:00
dofaintanimation BS_TARGET
printstring STRINGID_TARGETFAINTED
2019-08-08 13:06:55 +02:00
cleareffectsonfaint BS_TARGET
2020-04-19 12:07:56 +02:00
tryactivatefellstinger BS_ATTACKER
2020-04-18 19:59:09 +02:00
tryactivatesoulheart
2020-04-19 12:07:56 +02:00
tryactivatereceiver BS_TARGET
2018-07-26 22:52:13 +02:00
tryactivatemoxie BS_ATTACKER
2020-04-19 12:07:56 +02:00
tryactivatebeastboost BS_ATTACKER
2018-11-03 01:17:16 +01:00
trytrainerslidefirstdownmsg BS_TARGET
return
2017-12-02 14:08:55 +01:00
BattleScript_GiveExp::
setbyte sGIVEEXP_STATE, 0x0
2018-02-08 11:17:41 +01:00
getexp BS_TARGET
end2
2017-12-02 14:08:55 +01:00
BattleScript_HandleFaintedMon::
setbyte sSHIFT_SWITCHED, 0x0
atk24 BattleScript_82DA8F6
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd
jumpifbattletype BATTLE_TYPE_TRAINER | BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonTryChooseAnother
2018-02-08 11:17:41 +01:00
jumpifword CMP_NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonTryChooseAnother
printstring STRINGID_USENEXTPKMN
setbyte gBattleCommunication, 0x0
yesnobox
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x0, BattleScript_FaintedMonTryChooseAnother
2017-12-02 14:08:55 +01:00
jumpifplayerran BattleScript_FaintedMonEnd
printstring STRINGID_CANTESCAPE2
BattleScript_FaintedMonTryChooseAnother:
2017-12-02 14:08:55 +01:00
openpartyscreen 0x3, BattleScript_FaintedMonEnd
2018-02-08 11:17:41 +01:00
switchhandleorder BS_FAINTED, 0x2
2017-12-02 14:08:55 +01:00
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonChooseAnother
jumpifbattletype BATTLE_TYPE_LINK, BattleScript_FaintedMonChooseAnother
jumpifbattletype BATTLE_TYPE_x2000000, BattleScript_FaintedMonChooseAnother
2018-06-30 14:12:17 +02:00
jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_FaintedMonChooseAnother
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonChooseAnother
2018-02-08 11:17:41 +01:00
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonChooseAnother
jumpifbyte CMP_EQUAL, sBATTLE_STYLE, 0x1, BattleScript_FaintedMonChooseAnother
2019-09-15 23:58:12 +02:00
jumpifcantswitch BS_PLAYER1, BattleScript_FaintedMonChooseAnother
setbyte sILLUSION_NICK_HACK, 1
printstring STRINGID_ENEMYABOUTTOSWITCHPKMN
setbyte gBattleCommunication, 0x0
yesnobox
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x1, BattleScript_FaintedMonChooseAnother
setatktoplayer0
2017-12-02 14:08:55 +01:00
openpartyscreen 0x81, BattleScript_FaintedMonChooseAnother
2018-02-08 11:17:41 +01:00
switchhandleorder BS_ATTACKER, 0x2
jumpifbyte CMP_EQUAL, gBattleCommunication, 0x6, BattleScript_FaintedMonChooseAnother
atknameinbuff1
2019-10-22 22:02:01 +02:00
resetintimidatetracebits BS_ATTACKER
2018-02-08 11:17:41 +01:00
hpthresholds2 BS_ATTACKER
printstring STRINGID_RETURNMON
2018-02-08 11:17:41 +01:00
switchoutabilities BS_ATTACKER
waitstate
returnatktoball
waitstate
2018-02-08 11:17:41 +01:00
drawpartystatussummary BS_ATTACKER
getswitchedmondata BS_ATTACKER
switchindataupdate BS_ATTACKER
hpthresholds BS_ATTACKER
printstring STRINGID_SWITCHINMON
2018-06-28 21:06:32 +02:00
hidepartystatussummary BS_ATTACKER
2018-02-08 11:17:41 +01:00
switchinanim BS_ATTACKER, 0x0
waitstate
setbyte sSHIFT_SWITCHED, 0x1
BattleScript_FaintedMonChooseAnother:
2018-02-08 11:17:41 +01:00
drawpartystatussummary BS_FAINTED
getswitchedmondata BS_FAINTED
switchindataupdate BS_FAINTED
hpthresholds BS_FAINTED
printstring STRINGID_SWITCHINMON
2018-06-28 21:06:32 +02:00
hidepartystatussummary BS_FAINTED
2018-02-08 11:17:41 +01:00
switchinanim BS_FAINTED, FALSE
waitstate
2018-02-08 11:17:41 +01:00
various7 BS_ATTACKER
2018-11-03 01:17:16 +01:00
trytrainerslidelastonmsg BS_FAINTED
jumpifbytenotequal sSHIFT_SWITCHED, sZero, BattleScript_FaintedMonShiftSwitched
BattleScript_FaintedMonChooseAnotherEnd:
2018-02-08 11:17:41 +01:00
switchineffects BS_FAINTED
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonEnd
cancelallactions
2017-12-02 14:08:55 +01:00
BattleScript_FaintedMonEnd::
end2
BattleScript_FaintedMonShiftSwitched:
copybyte sSAVED_BATTLER, gBattlerTarget
switchineffects BS_ATTACKER
resetsentmonsvalue
copybyte gBattlerTarget, sSAVED_BATTLER
goto BattleScript_FaintedMonChooseAnotherEnd
BattleScript_82DA8F6::
openpartyscreen 0x5, BattleScript_82DA8FC
BattleScript_82DA8FC::
2018-02-08 11:17:41 +01:00
switchhandleorder BS_FAINTED, 0x0
openpartyscreen 0x6, BattleScript_82DA92C
2018-02-08 11:17:41 +01:00
switchhandleorder BS_FAINTED, 0x0
BattleScript_82DA908::
2018-02-08 11:17:41 +01:00
switchhandleorder BS_FAINTED, 0x3
drawpartystatussummary BS_FAINTED
getswitchedmondata BS_FAINTED
switchindataupdate BS_FAINTED
hpthresholds BS_FAINTED
printstring STRINGID_SWITCHINMON
2018-06-28 21:06:32 +02:00
hidepartystatussummary BS_FAINTED
2018-02-08 11:17:41 +01:00
switchinanim BS_FAINTED, FALSE
waitstate
switchineffects 5
2018-02-08 11:17:41 +01:00
jumpifbytenotequal gBattlerFainted, gBattlersCount, BattleScript_82DA908
BattleScript_82DA92C::
end2
BattleScript_LocalTrainerBattleWon::
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalTwoTrainersDefeated
printstring STRINGID_PLAYERDEFEATEDTRAINER1
2017-11-26 01:19:57 +01:00
goto BattleScript_LocalBattleWonLoseTexts
BattleScript_LocalTwoTrainersDefeated::
printstring STRINGID_TWOENEMIESDEFEATED
2017-11-26 01:19:57 +01:00
BattleScript_LocalBattleWonLoseTexts::
2018-02-08 11:17:41 +01:00
trainerslidein BS_ATTACKER
waitstate
printstring STRINGID_TRAINER1LOSETEXT
2017-12-02 14:08:55 +01:00
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleWonReward
2018-01-16 21:01:31 +01:00
trainerslideout B_POSITION_OPPONENT_LEFT
waitstate
2018-02-08 11:17:41 +01:00
trainerslidein BS_FAINTED
waitstate
printstring STRINGID_TRAINER2LOSETEXT
2017-11-26 01:19:57 +01:00
BattleScript_LocalBattleWonReward::
getmoneyreward
printstring STRINGID_PLAYERGOTMONEY
waitmessage 0x40
BattleScript_PayDayMoneyAndPickUpItems::
givepaydaymoney
pickup
end2
BattleScript_LocalBattleLost::
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_DOME, BattleScript_CheckDomeDrew
2018-06-30 14:12:17 +02:00
jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_LocalBattleLostPrintTrainersWinText
2018-09-20 22:00:00 +02:00
jumpifbattletype BATTLE_TYPE_TRAINER_HILL, BattleScript_LocalBattleLostPrintTrainersWinText
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd
2018-02-08 11:17:41 +01:00
jumpifhalfword CMP_EQUAL, gTrainerBattleOpponent_A, 0x400, BattleScript_LocalBattleLostEnd
2017-11-26 17:15:28 +01:00
BattleScript_LocalBattleLostPrintWhiteOut::
printstring STRINGID_PLAYERWHITEOUT
waitmessage 0x40
printstring STRINGID_PLAYERWHITEOUT2
waitmessage 0x40
2017-11-26 17:15:28 +01:00
BattleScript_LocalBattleLostEnd::
end2
2017-11-26 17:15:28 +01:00
BattleScript_CheckDomeDrew::
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, gBattleOutcome, B_OUTCOME_DREW, BattleScript_LocalBattleLostEnd_
2017-11-26 17:15:28 +01:00
BattleScript_LocalBattleLostPrintTrainersWinText::
2017-12-02 14:08:55 +01:00
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostPrintWhiteOut
2018-02-08 11:17:41 +01:00
returnopponentmon1toball BS_ATTACKER
waitstate
2018-02-08 11:17:41 +01:00
returnopponentmon2toball BS_ATTACKER
waitstate
2018-02-08 11:17:41 +01:00
trainerslidein BS_ATTACKER
waitstate
printstring STRINGID_TRAINER1WINTEXT
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_x800000, BattleScript_LocalBattleLostDoTrainer2WinText
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_
2017-11-26 17:15:28 +01:00
BattleScript_LocalBattleLostDoTrainer2WinText::
2018-01-16 21:01:31 +01:00
trainerslideout B_POSITION_OPPONENT_LEFT
waitstate
2018-02-08 11:17:41 +01:00
trainerslidein BS_FAINTED
waitstate
printstring STRINGID_TRAINER2WINTEXT
2017-11-26 17:15:28 +01:00
BattleScript_LocalBattleLostEnd_::
end2
BattleScript_82DAA0B::
2018-02-08 11:17:41 +01:00
returnopponentmon1toball BS_ATTACKER
waitstate
2018-02-08 11:17:41 +01:00
returnopponentmon2toball BS_ATTACKER
waitstate
2018-02-08 11:17:41 +01:00
trainerslidein BS_ATTACKER
waitstate
printstring STRINGID_TRAINER1WINTEXT
2018-01-16 21:01:31 +01:00
trainerslideout B_POSITION_OPPONENT_LEFT
waitstate
2018-02-08 11:17:41 +01:00
trainerslidein BS_FAINTED
waitstate
printstring STRINGID_TRAINER2WINTEXT
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_82DAA31
atk57
BattleScript_82DAA31::
waitmessage 0x40
end2
BattleScript_LinkBattleWonOrLost::
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_BATTLE_TOWER, BattleScript_82DAA5C
printstring STRINGID_BATTLEEND
waitmessage 0x40
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_LinkBattleWonOrLostWaitEnd
atk57
2017-11-26 17:15:28 +01:00
BattleScript_LinkBattleWonOrLostWaitEnd::
waitmessage 0x40
end2
BattleScript_82DAA5C::
2018-02-08 11:17:41 +01:00
playtrainerdefeatbgm BS_ATTACKER
printstring STRINGID_BATTLEEND
waitmessage 0x40
2018-02-08 11:17:41 +01:00
trainerslidein BS_ATTACKER
waitstate
printstring STRINGID_TRAINER1LOSETEXT
2018-01-16 21:01:31 +01:00
trainerslideout B_POSITION_OPPONENT_LEFT
waitstate
2018-02-08 11:17:41 +01:00
trainerslidein BS_FAINTED
waitstate
printstring STRINGID_TRAINER2LOSETEXT
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_82DAA83
atk57
BattleScript_82DAA83::
waitmessage 0x40
end2
BattleScript_FrontierTrainerBattleWon::
2017-12-02 14:08:55 +01:00
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_PayDayMoneyAndPickUpItems
2018-09-01 20:00:13 +02:00
jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_FrontierTrainerBattleWon_TwoDefeated
printstring STRINGID_PLAYERDEFEATEDTRAINER1
2018-09-01 20:00:13 +02:00
goto BattleScript_FrontierTrainerBattleWon_LoseTexts
BattleScript_FrontierTrainerBattleWon_TwoDefeated:
printstring STRINGID_TWOENEMIESDEFEATED
2018-09-01 20:00:13 +02:00
BattleScript_FrontierTrainerBattleWon_LoseTexts:
2018-02-08 11:17:41 +01:00
trainerslidein BS_ATTACKER
waitstate
printstring STRINGID_TRAINER1LOSETEXT
2020-08-05 02:33:05 +02:00
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_TryPickUpItems
2018-01-16 21:01:31 +01:00
trainerslideout B_POSITION_OPPONENT_LEFT
waitstate
2018-02-08 11:17:41 +01:00
trainerslidein BS_FAINTED
waitstate
printstring STRINGID_TRAINER2LOSETEXT
2020-08-05 02:33:05 +02:00
BattleScript_TryPickUpItems:
2018-09-01 20:00:13 +02:00
jumpifnotbattletype BATTLE_TYPE_PYRAMID, BattleScript_FrontierTrainerBattleWon_End
pickup
2018-09-01 20:00:13 +02:00
BattleScript_FrontierTrainerBattleWon_End:
end2
BattleScript_SmokeBallEscape::
2018-02-08 11:17:41 +01:00
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
2017-11-26 17:26:11 +01:00
BattleScript_PrintCantRunFromTrainer::
printstring STRINGID_NORUNNINGFROMTRAINERS
end2
BattleScript_PrintFailedToRunString::
printfromtable gNoEscapeStringIds
waitmessage 0x40
end2
2017-11-26 17:26:11 +01:00
BattleScript_PrintCantEscapeFromBattle::
printselectionstringfromtable gNoEscapeStringIds
endselectionscript
2017-11-26 17:15:28 +01:00
BattleScript_PrintFullBox::
printselectionstring STRINGID_BOXISFULL
endselectionscript
BattleScript_ActionSwitch::
2018-02-08 11:17:41 +01:00
hpthresholds2 BS_ATTACKER
printstring STRINGID_RETURNMON
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_PursuitSwitchDmgSetMultihit
setmultihit 0x1
2017-12-02 00:03:46 +01:00
goto BattleScript_PursuitSwitchDmgLoop
BattleScript_PursuitSwitchDmgSetMultihit::
setmultihit 0x2
2017-12-02 00:03:46 +01:00
BattleScript_PursuitSwitchDmgLoop::
jumpifnopursuitswitchdmg BattleScript_DoSwitchOut
2018-06-30 14:12:17 +02:00
swapattackerwithtarget
trysetdestinybondtohappen
2017-12-02 00:03:46 +01:00
call BattleScript_PursuitDmgOnSwitchOut
2018-06-30 14:12:17 +02:00
swapattackerwithtarget
2017-12-02 00:03:46 +01:00
BattleScript_DoSwitchOut::
decrementmultihit BattleScript_PursuitSwitchDmgLoop
2018-02-08 11:17:41 +01:00
switchoutabilities BS_ATTACKER
waitstate
returnatktoball
waitstate
2018-02-08 11:17:41 +01:00
drawpartystatussummary BS_ATTACKER
switchhandleorder BS_ATTACKER, 0x1
getswitchedmondata BS_ATTACKER
switchindataupdate BS_ATTACKER
hpthresholds BS_ATTACKER
printstring STRINGID_SWITCHINMON
2018-06-28 21:06:32 +02:00
hidepartystatussummary BS_ATTACKER
2018-02-08 11:17:41 +01:00
switchinanim BS_ATTACKER, FALSE
waitstate
2018-02-08 11:17:41 +01:00
switchineffects BS_ATTACKER
2019-11-10 12:09:14 +01:00
moveendcase MOVEEND_STATUS_IMMUNITY_ABILITIES
2019-08-23 14:46:21 +02:00
moveendcase MOVEEND_MIRROR_MOVE
end2
2017-12-02 00:03:46 +01:00
BattleScript_PursuitDmgOnSwitchOut::
pause 0x20
attackstring
ppreduce
critcalc
damagecalc
2018-07-14 22:56:03 +02:00
adjustdamage
attackanimation
waitanimation
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_TARGET
waitstate
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage 0x40
resultmessage
waitmessage 0x40
2018-02-08 11:17:41 +01:00
tryfaintmon BS_TARGET, FALSE, NULL
2019-11-10 12:09:14 +01:00
moveendfromto MOVEEND_ABILITIES, MOVEEND_CHOICE_MOVE
2020-07-17 02:12:12 +02:00
getbattlerfainted BS_TARGET
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, gBattleCommunication, 0x0, BattleScript_PursuitDmgOnSwitchOutRet
setbyte sGIVEEXP_STATE, 0x0
2018-02-08 11:17:41 +01:00
getexp BS_TARGET
2018-09-01 20:00:13 +02:00
BattleScript_PursuitDmgOnSwitchOutRet:
return
BattleScript_Pausex20::
pause 0x20
return
BattleScript_LevelUp::
2020-08-21 00:02:00 +02:00
fanfare MUS_LEVEL_UP
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
2020-08-21 00:02:00 +02:00
fanfare MUS_LEVEL_UP
printstring STRINGID_PKMNLEARNEDMOVE
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatechoicemoveonlvlup BS_ATTACKER
goto BattleScript_TryLearnMoveLoop
BattleScript_LearnMoveReturn::
return
2017-11-26 17:15:28 +01:00
BattleScript_RainContinuesOrEnds::
printfromtable gRainContinuesStringIds
waitmessage 0x40
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_RainContinuesOrEndsEnd
playanimation BS_ATTACKER, B_ANIM_RAIN_CONTINUES, NULL
2017-11-26 17:15:28 +01:00
BattleScript_RainContinuesOrEndsEnd::
end2
2017-11-26 17:15:28 +01:00
BattleScript_DamagingWeatherContinues::
printfromtable gSandStormHailContinuesStringIds
waitmessage 0x40
2018-02-08 11:17:41 +01:00
playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL
setbyte gBattleCommunication, 0x0
2017-11-26 17:15:28 +01:00
BattleScript_DamagingWeatherLoop::
2018-06-30 14:12:17 +02:00
copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 0x1
weatherdamage
2018-02-08 11:17:41 +01:00
jumpifword CMP_EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement
jumpifword CMP_COMMON_BITS gBattleMoveDamage, 1 << 31, BattleScript_DamagingWeatherHeal
printfromtable gSandStormHailDmgStringIds
waitmessage 0x40
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_ATTACKER
goto BattleScript_DamagingWeatherHpChange
BattleScript_DamagingWeatherHeal:
2020-01-18 19:18:57 +01:00
call BattleScript_AbilityPopUp
printstring STRINGID_ICEBODYHPGAIN
waitmessage 0x40
BattleScript_DamagingWeatherHpChange:
orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, FALSE, NULL
2017-11-26 17:15:28 +01:00
atk24 BattleScript_DamagingWeatherLoopIncrement
BattleScript_DamagingWeatherLoopIncrement::
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd
addbyte gBattleCommunication, 0x1
2018-02-06 02:46:59 +01:00
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop
2017-11-26 17:15:28 +01:00
BattleScript_DamagingWeatherContinuesEnd::
bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
end2
2017-11-26 17:15:28 +01:00
BattleScript_SandStormHailEnds::
printfromtable gSandStormHailEndStringIds
waitmessage 0x40
end2
2017-11-26 17:15:28 +01:00
BattleScript_SunlightContinues::
printstring STRINGID_SUNLIGHTSTRONG
waitmessage 0x40
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_SUN_CONTINUES, NULL
end2
2017-11-26 17:15:28 +01:00
BattleScript_SunlightFaded::
printstring STRINGID_SUNLIGHTFADED
waitmessage 0x40
end2
2017-11-26 17:15:28 +01:00
BattleScript_OverworldWeatherStarts::
2020-07-21 19:29:51 +02:00
printfromtable gWeatherStartsStringIds
waitmessage 0x40
2018-02-08 11:17:41 +01:00
playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL
end3
2017-11-26 17:15:28 +01:00
BattleScript_SideStatusWoreOff::
printstring STRINGID_PKMNSXWOREOFF
waitmessage 0x40
end2
2018-09-23 19:03:53 +02:00
BattleScript_SideStatusWoreOffReturn::
printstring STRINGID_PKMNSXWOREOFF
2018-07-21 12:56:07 +02:00
waitmessage 0x40
2018-09-23 19:03:53 +02:00
return
2018-07-21 12:56:07 +02:00
BattleScript_LuckyChantEnds::
printstring STRINGID_LUCKYCHANTENDS
waitmessage 0x40
end2
2018-07-21 12:56:07 +02:00
BattleScript_TailwindEnds::
printstring STRINGID_TAILWINDENDS
waitmessage 0x40
end2
2018-07-21 13:24:20 +02:00
BattleScript_TrickRoomEnds::
printstring STRINGID_TRICKROOMENDS
waitmessage 0x40
end2
2018-07-21 13:24:20 +02:00
BattleScript_WonderRoomEnds::
printstring STRINGID_WONDERROOMENDS
waitmessage 0x40
end2
2018-07-21 13:24:20 +02:00
BattleScript_MagicRoomEnds::
printstring STRINGID_MAGICROOMENDS
waitmessage 0x40
end2
2018-07-21 13:24:20 +02:00
BattleScript_ElectricTerrainEnds::
printstring STRINGID_ELECTRICTERRAINENDS
waitmessage 0x40
end2
2018-07-21 13:24:20 +02:00
BattleScript_MistyTerrainEnds::
printstring STRINGID_MISTYTERRAINENDS
waitmessage 0x40
end2
2018-07-21 13:24:20 +02:00
BattleScript_GrassyTerrainEnds::
printstring STRINGID_GRASSYTERRAINENDS
waitmessage 0x40
end2
2018-07-21 13:24:20 +02:00
BattleScript_PsychicTerrainEnds::
printstring STRINGID_PSYCHICTERRAINENDS
waitmessage 0x40
end2
2018-07-21 13:24:20 +02:00
BattleScript_MudSportEnds::
printstring STRINGID_MUDSPORTENDS
waitmessage 0x40
end2
2018-07-21 13:24:20 +02:00
BattleScript_WaterSportEnds::
printstring STRINGID_WATERSPORTENDS
waitmessage 0x40
end2
BattleScript_GravityEnds::
printstring STRINGID_GRAVITYENDS
waitmessage 0x40
end2
2017-11-26 01:19:57 +01:00
BattleScript_SafeguardProtected::
pause 0x20
printstring STRINGID_PKMNUSEDSAFEGUARD
waitmessage 0x40
end2
2017-11-26 17:15:28 +01:00
BattleScript_SafeguardEnds::
pause 0x20
printstring STRINGID_PKMNSAFEGUARDEXPIRED
waitmessage 0x40
end2
BattleScript_LeechSeedTurnDrain::
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2017-11-25 21:32:17 +01:00
copyword gBattleMoveDamage, gHpDealt
2018-02-08 11:17:41 +01:00
jumpifability BS_ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedTurnPrintLiquidOoze
setbyte cMULTISTRING_CHOOSER, 0x3
2020-06-22 10:40:08 +02:00
jumpifstatus3 BS_TARGET, STATUS3_HEAL_BLOCK, BattleScript_LeechSeedHealBlock
manipulatedamage DMG_BIG_ROOT
2017-12-03 00:47:21 +01:00
goto BattleScript_LeechSeedTurnPrintAndUpdateHp
BattleScript_LeechSeedTurnPrintLiquidOoze::
copybyte gBattlerAbility, gBattlerAttacker
call BattleScript_AbilityPopUp
setbyte cMULTISTRING_CHOOSER, 0x4
2017-12-03 00:47:21 +01:00
BattleScript_LeechSeedTurnPrintAndUpdateHp::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printfromtable gLeechSeedStringIds
waitmessage 0x40
2018-02-08 11:17:41 +01:00
tryfaintmon BS_ATTACKER, FALSE, NULL
tryfaintmon BS_TARGET, FALSE, NULL
end2
2020-06-22 10:40:08 +02:00
BattleScript_LeechSeedHealBlock:
setword gBattleMoveDamage, 0
goto BattleScript_LeechSeedTurnPrintAndUpdateHp
BattleScript_BideStoringEnergy::
printstring STRINGID_PKMNSTORINGENERGY
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_BideAttack::
attackcanceler
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CHARGING
2018-02-08 11:17:41 +01:00
clearstatusfromeffect BS_ATTACKER
printstring STRINGID_PKMNUNLEASHEDENERGY
waitmessage 0x40
accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE
typecalc
2018-07-21 15:11:13 +02:00
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
2017-11-25 21:32:17 +01:00
copyword gBattleMoveDamage, sBIDE_DMG
2018-07-14 22:56:03 +02:00
adjustdamage
2018-02-08 00:35:13 +01:00
setbyte sB_ANIM_TURN, 0x1
attackanimation
waitanimation
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_TARGET
waitstate
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
resultmessage
waitmessage 0x40
2018-02-08 11:17:41 +01:00
tryfaintmon BS_TARGET, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_BideNoEnergyToAttack::
attackcanceler
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CHARGING
2018-02-08 11:17:41 +01:00
clearstatusfromeffect BS_ATTACKER
printstring STRINGID_PKMNUNLEASHEDENERGY
waitmessage 0x40
goto BattleScript_ButItFailed
2019-03-06 12:09:34 +01:00
BattleScript_RoarSuccessSwitch::
call BattleScript_RoarSuccessRet
2018-02-08 11:17:41 +01:00
getswitchedmondata BS_TARGET
switchindataupdate BS_TARGET
switchinanim BS_TARGET, FALSE
waitstate
printstring STRINGID_PKMNWASDRAGGEDOUT
2018-02-08 11:17:41 +01:00
switchineffects BS_TARGET
goto BattleScript_MoveEnd
2019-03-06 12:09:34 +01:00
BattleScript_RoarSuccessEndBattle::
call BattleScript_RoarSuccessRet
setoutcomeonteleport BS_ATTACKER
finishaction
BattleScript_RoarSuccessRet:
attackanimation
waitanimation
switchoutabilities BS_TARGET
returntoball BS_TARGET
waitstate
return
2019-05-09 20:31:58 +02:00
BattleScript_WeaknessPolicy::
copybyte sBATTLER, gBattlerTarget
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_WeaknessPolicyAtk
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, 0xC, BattleScript_WeaknessPolicyEnd
BattleScript_WeaknessPolicyAtk:
2020-02-29 13:59:41 +01:00
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT, NULL
2019-05-09 20:31:58 +02:00
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_BY_TWO
2019-05-09 20:31:58 +02:00
setstatchanger STAT_ATK, 2, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_WeaknessPolicySpAtk
2019-05-09 20:31:58 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_WeaknessPolicySpAtk
printstring STRINGID_USINGXTHEYOFZN
waitmessage 0x40
BattleScript_WeaknessPolicySpAtk:
setstatchanger STAT_SPATK, 2, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_WeaknessPolicyRemoveItem
2019-05-09 20:31:58 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_WeaknessPolicyRemoveItem
printstring STRINGID_USINGXTHEYOFZN
waitmessage 0x40
BattleScript_WeaknessPolicyRemoveItem:
removeitem BS_TARGET
BattleScript_WeaknessPolicyEnd:
return
2019-05-09 20:31:58 +02:00
BattleScript_TargetItemStatRaise::
copybyte sBATTLER, gBattlerTarget
statbuffchange 0, BattleScript_TargetItemStatRaiseRemoveItemRet
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TargetItemStatRaiseRemoveItemRet
2020-02-29 13:59:41 +01:00
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT, NULL
2019-05-09 20:31:58 +02:00
waitanimation
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
waitanimation
printstring STRINGID_USINGXTHEYOFZN
waitmessage 0x40
removeitem BS_TARGET
BattleScript_TargetItemStatRaiseRemoveItemRet:
return
BattleScript_MistProtected::
pause 0x20
printstring STRINGID_PKMNPROTECTEDBYMIST
waitmessage 0x40
return
BattleScript_RageIsBuilding::
printstring STRINGID_PKMNRAGEBUILDING
waitmessage 0x40
return
BattleScript_MoveUsedIsDisabled::
printstring STRINGID_PKMNMOVEISDISABLED
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_SelectingDisabledMove::
printselectionstring STRINGID_PKMNMOVEISDISABLED
endselectionscript
BattleScript_DisabledNoMore::
printstring STRINGID_PKMNMOVEDISABLEDNOMORE
waitmessage 0x40
end2
2017-12-03 00:47:21 +01:00
BattleScript_SelectingDisabledMoveInPalace::
printstring STRINGID_PKMNMOVEISDISABLED
2017-12-03 00:47:21 +01:00
BattleScript_SelectingUnusableMoveInPalace::
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
end
BattleScript_EncoredNoMore::
printstring STRINGID_PKMNENCOREENDED
waitmessage 0x40
end2
BattleScript_DestinyBondTakesLife::
printstring STRINGID_PKMNTOOKFOE
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, FALSE, NULL
return
2018-07-24 21:47:00 +02:00
BattleScript_DmgHazardsOnAttacker::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2018-07-24 21:47:00 +02:00
call BattleScript_PrintHurtByDmgHazards
2018-02-08 11:17:41 +01:00
tryfaintmon BS_ATTACKER, FALSE, NULL
2018-07-24 21:47:00 +02:00
tryfaintmon BS_ATTACKER, TRUE, BattleScript_DmgHazardsOnAttackerFainted
return
2018-07-24 21:47:00 +02:00
BattleScript_DmgHazardsOnAttackerFainted::
setbyte sGIVEEXP_STATE, 0x0
2018-02-08 11:17:41 +01:00
getexp BS_ATTACKER
2019-03-30 12:37:18 +01:00
moveendall
2017-12-02 14:08:55 +01:00
goto BattleScript_HandleFaintedMon
2018-07-24 21:47:00 +02:00
BattleScript_DmgHazardsOnTarget::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
2018-07-24 21:47:00 +02:00
call BattleScript_PrintHurtByDmgHazards
2018-02-08 11:17:41 +01:00
tryfaintmon BS_TARGET, FALSE, NULL
2018-07-24 21:47:00 +02:00
tryfaintmon BS_TARGET, TRUE, BattleScript_DmgHazardsOnTargetFainted
return
2018-07-24 21:47:00 +02:00
BattleScript_DmgHazardsOnTargetFainted::
setbyte sGIVEEXP_STATE, 0x0
2018-02-08 11:17:41 +01:00
getexp BS_TARGET
2019-03-30 12:37:18 +01:00
moveendall
2017-12-02 14:08:55 +01:00
goto BattleScript_HandleFaintedMon
2018-07-24 21:47:00 +02:00
BattleScript_DmgHazardsOnFaintedBattler::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-02-08 11:17:41 +01:00
healthbarupdate BS_FAINTED
datahpupdate BS_FAINTED
2018-07-24 21:47:00 +02:00
call BattleScript_PrintHurtByDmgHazards
2018-02-08 11:17:41 +01:00
tryfaintmon BS_FAINTED, FALSE, NULL
2018-07-24 21:47:00 +02:00
tryfaintmon BS_FAINTED, TRUE, BattleScript_DmgHazardsOnFaintedBattlerFainted
return
2018-07-24 21:47:00 +02:00
BattleScript_DmgHazardsOnFaintedBattlerFainted::
setbyte sGIVEEXP_STATE, 0x0
2018-02-08 11:17:41 +01:00
getexp BS_FAINTED
2019-03-30 12:37:18 +01:00
moveendall
2017-12-02 14:08:55 +01:00
goto BattleScript_HandleFaintedMon
2018-07-24 21:47:00 +02:00
BattleScript_PrintHurtByDmgHazards::
printfromtable gDmgHazardsStringIds
waitmessage 0x40
return
2018-07-24 21:47:00 +02:00
BattleScript_ToxicSpikesAbsorbed::
printstring STRINGID_TOXICSPIKESABSORBED
waitmessage 0x40
return
2018-07-24 21:47:00 +02:00
BattleScript_ToxicSpikesPoisoned::
printstring STRINGID_TOXICSPIKESPOISONED
waitmessage 0x40
statusanimation BS_SCRIPTING
updatestatusicon BS_SCRIPTING
waitstate
return
2018-07-24 22:09:55 +02:00
BattleScript_StickyWebOnSwitchIn::
savetarget
2019-05-09 20:31:58 +02:00
copybyte gBattlerTarget, sBATTLER
2018-07-24 22:09:55 +02:00
printstring STRINGID_STICKYWEBSWITCHIN
waitmessage 0x40
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_StickyWebOnSwitchInEnd
2018-07-24 22:09:55 +02:00
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
2017-11-26 17:26:11 +01:00
BattleScript_PerishSongTakesLife::
printstring STRINGID_PKMNPERISHCOUNTFELL
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, FALSE, NULL
end2
2017-11-26 17:26:11 +01:00
BattleScript_PerishSongCountGoesDown::
printstring STRINGID_PKMNPERISHCOUNTFELL
waitmessage 0x40
end2
BattleScript_AllStatsUp::
2020-08-05 02:33:05 +02:00
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_AllStatsUpRet
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpAtk::
2018-07-29 15:33:16 +02:00
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0x0
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpDef
printfromtable gStatUpStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpDef::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpeed
printfromtable gStatUpStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpSpeed::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPEED, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpAtk
printfromtable gStatUpStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpSpAtk::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPATK, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpDef
printfromtable gStatUpStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpSpDef::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPDEF, 1, FALSE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpRet
printfromtable gStatUpStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpRet::
return
BattleScript_RapidSpinAway::
rapidspinfree
return
BattleScript_WrapFree::
printstring STRINGID_PKMNGOTFREE
waitmessage 0x40
2018-10-27 00:04:18 +02:00
copybyte gBattlerTarget, sBATTLER
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
2017-11-26 17:26:11 +01:00
BattleScript_MonTookFutureAttack::
printstring STRINGID_PKMNTOOKATTACK
waitmessage 0x40
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_CheckDoomDesireMiss
2017-12-03 00:47:21 +01:00
accuracycheck BattleScript_FutureAttackMiss, MOVE_FUTURE_SIGHT
goto BattleScript_FutureAttackAnimate
BattleScript_CheckDoomDesireMiss::
accuracycheck BattleScript_FutureAttackMiss, MOVE_DOOM_DESIRE
BattleScript_FutureAttackAnimate::
2018-12-02 18:47:39 +01:00
critcalc
damagecalc
2018-07-14 22:56:03 +02:00
adjustdamage
2018-12-02 18:47:39 +01:00
jumpifmovehadnoeffect BattleScript_DoFutureAttackResult
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_FutureHitAnimDoomDesire
playanimation BS_ATTACKER, B_ANIM_FUTURE_SIGHT_HIT, NULL
2017-12-03 00:47:21 +01:00
goto BattleScript_DoFutureAttackHit
BattleScript_FutureHitAnimDoomDesire::
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_DOOM_DESIRE_HIT, NULL
2017-12-03 00:47:21 +01:00
BattleScript_DoFutureAttackHit::
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_TARGET
waitstate
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
2018-12-02 18:47:39 +01:00
critmessage
waitmessage 0x40
BattleScript_DoFutureAttackResult:
resultmessage
waitmessage 0x40
2018-02-08 11:17:41 +01:00
tryfaintmon BS_TARGET, FALSE, NULL
2017-12-03 00:47:21 +01:00
atk24 BattleScript_FutureAttackEnd
BattleScript_FutureAttackEnd::
2019-08-23 14:46:21 +02:00
moveendcase MOVEEND_RAGE
moveendfromto MOVEEND_ITEM_EFFECTS_ALL, MOVEEND_UPDATE_LAST_MOVES
2018-01-16 22:12:38 +01:00
setbyte gMoveResultFlags, 0
end2
2017-12-03 00:47:21 +01:00
BattleScript_FutureAttackMiss::
pause 0x20
2018-12-02 18:47:39 +01:00
sethword gMoveResultFlags, MOVE_RESULT_FAILED
resultmessage
waitmessage 0x40
2018-07-21 15:11:13 +02:00
sethword gMoveResultFlags, 0
end2
BattleScript_NoMovesLeft::
printselectionstring STRINGID_PKMNHASNOMOVESLEFT
endselectionscript
2017-11-26 17:15:28 +01:00
BattleScript_SelectingMoveWithNoPP::
printselectionstring STRINGID_NOPPLEFT
endselectionscript
BattleScript_NoPPForMove::
attackstring
pause 0x20
printstring STRINGID_BUTNOPPLEFT
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_SelectingTormentedMove::
printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT
endselectionscript
2017-12-03 00:47:21 +01:00
BattleScript_MoveUsedIsTormented::
printstring STRINGID_PKMNCANTUSEMOVETORMENT
waitmessage 0x40
goto BattleScript_MoveEnd
2017-12-03 00:47:21 +01:00
BattleScript_SelectingTormentedMoveInPalace::
printstring STRINGID_PKMNCANTUSEMOVETORMENT
2017-12-03 00:47:21 +01:00
goto BattleScript_SelectingUnusableMoveInPalace
2017-11-26 17:15:28 +01:00
BattleScript_SelectingNotAllowedMoveTaunt::
printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT
endselectionscript
BattleScript_MoveUsedIsTaunted::
printstring STRINGID_PKMNCANTUSEMOVETAUNT
waitmessage 0x40
goto BattleScript_MoveEnd
2017-12-03 00:47:21 +01:00
BattleScript_SelectingNotAllowedMoveTauntInPalace::
printstring STRINGID_PKMNCANTUSEMOVETAUNT
2017-12-03 00:47:21 +01:00
goto BattleScript_SelectingUnusableMoveInPalace
BattleScript_SelectingNotAllowedMoveThroatChop::
printselectionstring STRINGID_PKMNCANTUSEMOVETHROATCHOP
endselectionscript
BattleScript_MoveUsedIsThroatChopPrevented::
printstring STRINGID_PKMNCANTUSEMOVETHROATCHOP
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_SelectingNotAllowedMoveThroatChopInPalace::
printstring STRINGID_PKMNCANTUSEMOVETHROATCHOP
goto BattleScript_SelectingUnusableMoveInPalace
BattleScript_ThroatChopEndTurn::
printstring STRINGID_THROATCHOPENDS
waitmessage 0x40
end2
2020-04-18 12:52:15 +02:00
BattleScript_SlowStartEnds::
pause 0x5
copybyte gBattlerAbility, gBattlerAttacker
call BattleScript_AbilityPopUp
printstring STRINGID_SLOWSTARTEND
waitmessage 0x40
end2
2018-07-31 23:09:47 +02:00
BattleScript_SelectingNotAllowedMoveGravity::
printselectionstring STRINGID_GRAVITYPREVENTSUSAGE
endselectionscript
2019-02-01 14:17:24 +01:00
BattleScript_SelectingNotAllowedBelch::
printselectionstring STRINGID_BELCHCANTSELECT
endselectionscript
2019-02-01 14:17:24 +01:00
BattleScript_SelectingNotAllowedBelchInPalace::
2019-02-01 14:34:16 +01:00
printstring STRINGID_BELCHCANTSELECT
2019-02-01 14:17:24 +01:00
goto BattleScript_SelectingUnusableMoveInPalace
2018-07-31 23:09:47 +02:00
BattleScript_MoveUsedGravityPrevents::
printstring STRINGID_GRAVITYPREVENTSUSAGE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_SelectingNotAllowedMoveGravityInPalace::
printstring STRINGID_GRAVITYPREVENTSUSAGE
goto BattleScript_SelectingUnusableMoveInPalace
2018-07-31 23:09:47 +02:00
BattleScript_SelectingNotAllowedMoveHealBlock::
printselectionstring STRINGID_HEALBLOCKPREVENTSUSAGE
2018-07-31 23:09:47 +02:00
endselectionscript
BattleScript_MoveUsedHealBlockPrevents::
printstring STRINGID_HEALBLOCKPREVENTSUSAGE
2018-07-31 23:09:47 +02:00
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_SelectingNotAllowedMoveHealBlockInPalace::
printstring STRINGID_HEALBLOCKPREVENTSUSAGE
2018-07-31 23:09:47 +02:00
goto BattleScript_SelectingUnusableMoveInPalace
BattleScript_WishComesTrue::
2017-12-03 00:47:21 +01:00
trywish 0x1, BattleScript_WishButFullHp
2018-02-08 11:17:41 +01:00
playanimation BS_TARGET, B_ANIM_WISH_HEAL, NULL
printstring STRINGID_PKMNWISHCAMETRUE
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage 0x40
end2
2017-12-03 00:47:21 +01:00
BattleScript_WishButFullHp::
printstring STRINGID_PKMNWISHCAMETRUE
waitmessage 0x40
pause 0x20
printstring STRINGID_PKMNHPFULL
waitmessage 0x40
end2
BattleScript_IngrainTurnHeal::
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL, NULL
printstring STRINGID_PKMNABSORBEDNUTRIENTS
2018-07-18 22:07:48 +02:00
BattleScript_TurnHeal:
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
end2
2018-07-18 22:07:48 +02:00
BattleScript_AquaRingHeal::
playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL, NULL
printstring STRINGID_AQUARINGHEAL
goto BattleScript_TurnHeal
2017-12-03 00:47:21 +01:00
BattleScript_PrintMonIsRooted::
pause 0x20
printstring STRINGID_PKMNANCHOREDITSELF
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_AtkDefDown::
2018-07-29 15:33:16 +02:00
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE
2019-10-26 17:53:00 +02:00
playstatchangeanimation BS_ATTACKER, BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_AtkDefDownTryDef
2018-09-22 01:12:27 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AtkDefDownTryDef
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_AtkDefDownTryDef:
2019-10-26 17:53:00 +02:00
playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE
2018-09-22 01:12:27 +02:00
setstatchanger STAT_DEF, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_AtkDefDownRet
2018-09-22 01:12:27 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AtkDefDownRet
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_AtkDefDownRet:
2018-09-22 01:12:27 +02:00
return
2018-09-22 01:12:27 +02:00
BattleScript_DefSpDefDown::
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE
playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_DefSpDefDownTrySpDef
2018-09-22 01:12:27 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DefSpDefDownTrySpDef
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_DefSpDefDownTrySpDef::
2019-11-10 12:09:14 +01:00
playstatchangeanimation BS_ATTACKER, BIT_SPDEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE
2018-09-22 01:12:27 +02:00
setstatchanger STAT_SPDEF, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_DefSpDefDownRet
2018-09-22 01:12:27 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DefSpDefDownRet
printfromtable gStatDownStringIds
waitmessage 0x40
2018-09-22 01:12:27 +02:00
BattleScript_DefSpDefDownRet::
return
BattleScript_KnockedOff::
2018-02-08 11:17:41 +01:00
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_SelectingImprisonedMove::
printselectionstring STRINGID_PKMNCANTUSEMOVESEALED
endselectionscript
BattleScript_SelectingImprisonedMoveInPalace::
printstring STRINGID_PKMNCANTUSEMOVESEALED
2017-12-03 00:47:21 +01:00
goto BattleScript_SelectingUnusableMoveInPalace
BattleScript_GrudgeTakesPp::
printstring STRINGID_PKMNLOSTPPGRUDGE
waitmessage 0x40
return
BattleScript_MagicCoatBounce::
attackstring
ppreduce
pause 0x20
2018-07-28 10:41:20 +02:00
printfromtable gMagicCoatBounceStringIds
waitmessage 0x40
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000
2018-02-08 11:17:41 +01:00
setmagiccoattarget BS_ATTACKER
return
BattleScript_SnatchedMove::
attackstring
ppreduce
2018-06-30 14:12:17 +02:00
snatchsetbattlers
2018-02-08 11:17:41 +01:00
playanimation BS_TARGET, B_ANIM_SNATCH_MOVE, NULL
printstring STRINGID_PKMNSNATCHEDMOVE
waitmessage 0x40
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000
2018-06-30 14:12:17 +02:00
swapattackerwithtarget
return
BattleScript_EnduredMsg::
printstring STRINGID_PKMNENDUREDHIT
waitmessage 0x40
return
2018-07-21 15:11:13 +02:00
BattleScript_SturdiedMsg::
2019-03-01 13:53:06 +01:00
copybyte gBattlerAbility, gBattlerTarget
pause 0x10
call BattleScript_AbilityPopUp
2018-07-21 15:11:13 +02:00
printstring STRINGID_ENDUREDSTURDY
waitmessage 0x40
return
BattleScript_OneHitKOMsg::
printstring STRINGID_ONEHITKO
waitmessage 0x40
return
BattleScript_SAtkDown2::
2018-07-29 15:33:16 +02:00
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-10-26 17:53:00 +02:00
playstatchangeanimation BS_ATTACKER, BIT_SPATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPATK, 2, TRUE
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_SAtkDown2End
2018-07-29 15:33:16 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SAtkDown2End
printfromtable gStatDownStringIds
waitmessage 0x40
2018-07-29 15:33:16 +02:00
BattleScript_SAtkDown2End::
return
2018-09-22 16:15:00 +02:00
BattleScript_MoveEffectClearSmog::
printstring STRINGID_RESETSTARGETSSTATLEVELS
waitmessage 0x40
return
BattleScript_FocusPunchSetUp::
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
2018-09-10 21:19:19 +02:00
playanimation BS_ATTACKER, B_ANIM_FOCUS_PUNCH_SETUP, NULL
printstring STRINGID_PKMNTIGHTENINGFOCUS
waitmessage 0x40
end2
2018-09-16 18:55:32 +02:00
BattleScript_MegaEvolution::
printstring STRINGID_MEGAEVOREACTING
waitmessage 0x40
2019-05-02 23:10:01 +02:00
setbyte gIsCriticalHit, 0
handlemegaevo BS_ATTACKER, 0
handlemegaevo BS_ATTACKER, 1
2018-09-16 18:55:32 +02:00
playanimation BS_ATTACKER, B_ANIM_MEGA_EVOLUTION, NULL
waitanimation
2019-05-02 23:10:01 +02:00
handlemegaevo BS_ATTACKER, 2
2018-09-16 18:55:32 +02:00
printstring STRINGID_MEGAEVOEVOLVED
waitmessage 0x40
2020-02-16 13:34:25 +01:00
switchinabilities BS_ATTACKER
2018-09-16 18:55:32 +02:00
end2
2020-11-07 13:53:34 +01:00
BattleScript_WishMegaEvolution::
printstring STRINGID_FERVENTWISHREACHED
waitmessage 0x40
setbyte gIsCriticalHit, 0
handlemegaevo BS_ATTACKER, 0
handlemegaevo BS_ATTACKER, 1
playanimation BS_ATTACKER, B_ANIM_MEGA_EVOLUTION, NULL
waitanimation
handlemegaevo BS_ATTACKER, 2
printstring STRINGID_MEGAEVOEVOLVED
waitmessage 0x40
switchinabilities BS_ATTACKER
end2
2020-04-19 21:18:39 +02:00
BattleScript_AttackerFormChange::
pause 0x5
2020-01-18 20:33:46 +01:00
copybyte gBattlerAbility, gBattlerAttacker
call BattleScript_AbilityPopUp
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
handleformchange BS_ATTACKER, 0
handleformchange BS_ATTACKER, 1
playanimation BS_ATTACKER, B_ANIM_FORM_CHANGE, NULL
waitanimation
handleformchange BS_ATTACKER, 2
return
2020-04-19 21:18:39 +02:00
BattleScript_AttackerFormChangeEnd3::
call BattleScript_AttackerFormChange
end3
2020-04-19 21:18:39 +02:00
BattleScript_TargetFormChange::
pause 0x5
copybyte gBattlerAbility, gBattlerTarget
call BattleScript_AbilityPopUp
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
handleformchange BS_TARGET, 0
handleformchange BS_TARGET, 1
playanimation BS_TARGET, B_ANIM_FORM_CHANGE, NULL
waitanimation
handleformchange BS_TARGET, 2
return
2019-08-08 13:06:55 +02:00
BattleScript_IllusionOff::
spriteignore0hp TRUE
playanimation BS_TARGET, B_ANIM_ILLUSION_OFF, NULL
waitanimation
updatenick BS_TARGET
waitstate
spriteignore0hp FALSE
printstring STRINGID_ILLUSIONWOREOFF
waitmessage 0x40
return
2020-04-11 12:24:25 +02:00
BattleScript_AnticipationActivates::
pause 0x5
call BattleScript_AbilityPopUp
printstring STRINGID_ANTICIPATIONACTIVATES
waitmessage 0x40
return
2019-12-21 09:01:42 +01:00
BattleScript_AftermathDmg::
pause 0x20
call BattleScript_AbilityPopUp
2019-12-21 09:01:42 +01:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_AFTERMATHDMG
waitmessage 0x40
tryfaintmon BS_ATTACKER, FALSE, NULL
return
BattleScript_MoveUsedIsAsleep::
printstring STRINGID_PKMNFASTASLEEP
waitmessage 0x40
2018-02-08 11:17:41 +01:00
statusanimation BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_MoveUsedWokeUp::
bicword gHitMarker, HITMARKER_x10
printfromtable gWokeUpStringIds
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_ATTACKER
return
2017-11-26 17:26:11 +01:00
BattleScript_MonWokeUpInUproar::
printstring STRINGID_PKMNWOKEUPINUPROAR
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_ATTACKER
end2
BattleScript_PoisonTurnDmg::
printstring STRINGID_PKMNHURTBYPOISON
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_DoStatusTurnDmg::
2018-02-08 11:17:41 +01:00
statusanimation BS_ATTACKER
2020-04-13 15:49:40 +02:00
BattleScript_DoTurnDmg:
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, FALSE, NULL
2017-12-02 00:03:46 +01:00
atk24 BattleScript_DoTurnDmgEnd
2020-04-13 15:49:40 +02:00
BattleScript_DoTurnDmgEnd:
end2
2018-07-22 18:40:18 +02:00
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
2017-12-02 00:03:46 +01:00
goto BattleScript_DoStatusTurnDmg
BattleScript_MoveUsedIsFrozen::
printstring STRINGID_PKMNISFROZEN
waitmessage 0x40
2018-02-08 11:17:41 +01:00
statusanimation BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_MoveUsedUnfroze::
printfromtable gGotDefrostedStringIds
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_ATTACKER
return
BattleScript_DefrostedViaFireMove::
printstring STRINGID_PKMNWASDEFROSTED
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_TARGET
return
BattleScript_MoveUsedIsParalyzed::
printstring STRINGID_PKMNISPARALYZED
waitmessage 0x40
2018-02-08 11:17:41 +01:00
statusanimation BS_ATTACKER
cancelmultiturnmoves BS_ATTACKER
goto BattleScript_MoveEnd
2019-03-02 13:08:50 +01:00
BattleScript_PowderMoveNoEffect::
attackstring
ppreduce
pause 0x20
jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_PowderMoveNoEffectPrint
2019-03-08 10:16:54 +01:00
jumpifability BS_TARGET, ABILITY_OVERCOAT, BattleScript_PowderMoveNoEffectOvercoat
printstring STRINGID_SAFETYGOOGLESPROTECTED
goto BattleScript_PowderMoveNoEffectWaitMsg
BattleScript_PowderMoveNoEffectOvercoat:
2019-03-02 13:08:50 +01:00
call BattleScript_AbilityPopUp
BattleScript_PowderMoveNoEffectPrint:
printstring STRINGID_ITDOESNTAFFECT
2019-03-08 10:16:54 +01:00
BattleScript_PowderMoveNoEffectWaitMsg:
2019-03-02 13:08:50 +01:00
waitmessage 0x40
cancelmultiturnmoves BS_ATTACKER
sethword gMoveResultFlags, MOVE_RESULT_FAILED
goto BattleScript_MoveEnd
BattleScript_MoveUsedFlinched::
printstring STRINGID_PKMNFLINCHED
waitmessage 0x40
2018-07-22 18:40:18 +02:00
jumpifability BS_ATTACKER ABILITY_STEADFAST BattleScript_TryActivateSteadFast
BattleScript_MoveUsedFlinchedEnd:
goto BattleScript_MoveEnd
2018-07-22 18:40:18 +02:00
BattleScript_TryActivateSteadFast:
setstatchanger STAT_SPEED, 1, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_MoveUsedFlinchedEnd
2018-07-22 18:40:18 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_MoveUsedFlinchedEnd
2020-01-04 18:41:59 +01:00
copybyte gBattlerAbility, gBattlerAttacker
call BattleScript_AbilityPopUp
2018-07-22 18:40:18 +02:00
setgraphicalstatchangevalues
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
setbyte gBattleCommunication STAT_SPEED
stattextbuffer BS_ATTACKER
2020-01-04 18:41:59 +01:00
printstring STRINGID_ATTACKERABILITYSTATRAISE
2018-07-22 18:40:18 +02:00
waitmessage 0x40
goto BattleScript_MoveUsedFlinchedEnd
2017-11-26 17:26:11 +01:00
BattleScript_PrintUproarOverTurns::
printfromtable gUproarOverTurnStringIds
waitmessage 0x40
end2
BattleScript_ThrashConfuses::
2018-02-08 11:17:41 +01:00
chosenstatus2animation BS_ATTACKER, STATUS2_CONFUSION
printstring STRINGID_PKMNFATIGUECONFUSION
waitmessage 0x40
end2
BattleScript_MoveUsedIsConfused::
printstring STRINGID_PKMNISCONFUSED
waitmessage 0x40
2018-02-08 11:17:41 +01:00
status2animation BS_ATTACKER, STATUS2_CONFUSION
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_MoveUsedIsConfusedRet
2017-12-02 00:03:46 +01:00
BattleScript_DoSelfConfusionDmg::
2018-02-08 11:17:41 +01:00
cancelmultiturnmoves BS_ATTACKER
2018-07-14 22:56:03 +02:00
adjustdamage
printstring STRINGID_ITHURTCONFUSION
waitmessage 0x40
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_ATTACKER
waitstate
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
resultmessage
waitmessage 0x40
2018-02-08 11:17:41 +01:00
tryfaintmon BS_ATTACKER, FALSE, NULL
goto BattleScript_MoveEnd
2017-12-02 00:03:46 +01:00
BattleScript_MoveUsedIsConfusedRet::
return
2018-12-03 12:50:32 +01:00
BattleScript_MoveUsedPowder::
bicword gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED
attackstring
ppreduce
pause 0x20
cancelmultiturnmoves BS_ATTACKER
status2animation BS_ATTACKER, STATUS2_POWDER
waitanimation
effectivenesssound
hitanimation BS_ATTACKER
waitstate
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_POWDEREXPLODES
waitmessage 0x40
tryfaintmon BS_ATTACKER, FALSE, NULL
goto BattleScript_MoveEnd
BattleScript_MoveUsedIsConfusedNoMore::
printstring STRINGID_PKMNHEALEDCONFUSION
waitmessage 0x40
return
BattleScript_PrintPayDayMoneyString::
printstring STRINGID_PKMNPICKEDUPITEM
waitmessage 0x40
return
BattleScript_WrapTurnDmg::
2020-04-13 15:49:40 +02:00
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_DoTurnDmgEnd
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_TURN_TRAP, sB_ANIM_ARG1
printstring STRINGID_PKMNHURTBY
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_DoTurnDmg
BattleScript_WrapEnds::
printstring STRINGID_PKMNFREEDFROM
waitmessage 0x40
end2
BattleScript_MoveUsedIsInLove::
printstring STRINGID_PKMNINLOVE
waitmessage 0x40
2018-02-08 11:17:41 +01:00
status2animation BS_ATTACKER, STATUS2_INFATUATION
return
BattleScript_MoveUsedIsInLoveCantAttack::
printstring STRINGID_PKMNIMMOBILIZEDBYLOVE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_NightmareTurnDmg::
printstring STRINGID_PKMNLOCKEDINNIGHTMARE
waitmessage 0x40
2018-02-08 11:17:41 +01:00
status2animation BS_ATTACKER, STATUS2_NIGHTMARE
2017-12-02 00:03:46 +01:00
goto BattleScript_DoTurnDmg
BattleScript_CurseTurnDmg::
printstring STRINGID_PKMNAFFLICTEDBYCURSE
waitmessage 0x40
2018-02-08 11:17:41 +01:00
status2animation BS_ATTACKER, STATUS2_CURSED
2017-12-02 00:03:46 +01:00
goto BattleScript_DoTurnDmg
BattleScript_TargetPRLZHeal::
printstring STRINGID_PKMNHEALEDPARALYSIS
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_TARGET
return
BattleScript_MoveEffectSleep::
2018-02-08 11:17:41 +01:00
statusanimation BS_EFFECT_BATTLER
printfromtable gFellAsleepStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
BattleScript_UpdateEffectStatusIconRet::
2018-02-08 11:17:41 +01:00
updatestatusicon BS_EFFECT_BATTLER
waitstate
return
BattleScript_YawnMakesAsleep::
2018-02-08 11:17:41 +01:00
statusanimation BS_EFFECT_BATTLER
printstring STRINGID_PKMNFELLASLEEP
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_EFFECT_BATTLER
waitstate
2018-02-08 11:17:41 +01:00
makevisible BS_EFFECT_BATTLER
end2
2018-07-18 22:07:48 +02:00
BattleScript_EmbargoEndTurn::
printstring STRINGID_EMBARGOENDS
waitmessage 0x40
end2
2018-07-18 22:07:48 +02:00
BattleScript_TelekinesisEndTurn::
printstring STRINGID_TELEKINESISENDS
waitmessage 0x40
end2
BattleScript_BufferEndTurn::
printstring STRINGID_BUFFERENDS
2018-07-18 22:07:48 +02:00
waitmessage 0x40
end2
2019-05-10 11:03:33 +02:00
BattleScript_ToxicOrb::
setbyte cMULTISTRING_CHOOSER, 0
copybyte gEffectBattler, gBattlerAttacker
call BattleScript_MoveEffectToxic
end2
2019-05-10 11:03:33 +02:00
BattleScript_FlameOrb::
setbyte cMULTISTRING_CHOOSER, 0
copybyte gEffectBattler, gBattlerAttacker
call BattleScript_MoveEffectBurn
end2
BattleScript_MoveEffectPoison::
2018-02-08 11:17:41 +01:00
statusanimation BS_EFFECT_BATTLER
printfromtable gGotPoisonedStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectBurn::
2018-02-08 11:17:41 +01:00
statusanimation BS_EFFECT_BATTLER
printfromtable gGotBurnedStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectFreeze::
2018-02-08 11:17:41 +01:00
statusanimation BS_EFFECT_BATTLER
printfromtable gGotFrozenStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectParalysis::
2018-02-08 11:17:41 +01:00
statusanimation BS_EFFECT_BATTLER
printfromtable gGotParalyzedStringIds
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectUproar::
printstring STRINGID_PKMNCAUSEDUPROAR
waitmessage 0x40
return
BattleScript_MoveEffectToxic::
2018-02-08 11:17:41 +01:00
statusanimation BS_EFFECT_BATTLER
printstring STRINGID_PKMNBADLYPOISONED
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectPayDay::
printstring STRINGID_COINSSCATTERED
waitmessage 0x40
return
BattleScript_MoveEffectWrap::
printfromtable gWrappedStringIds
waitmessage 0x40
return
BattleScript_MoveEffectConfusion::
2018-02-08 11:17:41 +01:00
chosenstatus2animation BS_EFFECT_BATTLER, STATUS2_CONFUSION
printstring STRINGID_PKMNWASCONFUSED
waitmessage 0x40
return
BattleScript_MoveEffectRecoilWithStatus::
argumentstatuseffect
copyword gBattleMoveDamage, sSAVED_DMG
2018-09-01 20:00:13 +02:00
BattleScript_MoveEffectRecoil::
jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil
jumpifability BS_ATTACKER, ABILITY_ROCK_HEAD, BattleScript_RecoilEnd
BattleScript_DoRecoil::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNHITWITHRECOIL
waitmessage 0x40
2018-02-08 11:17:41 +01:00
tryfaintmon BS_ATTACKER, FALSE, NULL
2018-09-01 20:00:13 +02:00
BattleScript_RecoilEnd::
return
BattleScript_EffectWithChance::
seteffectwithchance
return
BattleScript_ItemSteal::
2018-02-08 11:17:41 +01:00
playanimation BS_TARGET, B_ANIM_ITEM_STEAL, NULL
printstring STRINGID_PKMNSTOLEITEM
waitmessage 0x40
return
BattleScript_DrizzleActivates::
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNMADEITRAIN
waitstate
2018-07-01 12:16:52 +02:00
playanimation BS_BATTLER_0, B_ANIM_RAIN_CONTINUES, NULL
2017-11-26 01:19:57 +01:00
call BattleScript_WeatherFormChanges
end3
2019-02-16 12:54:11 +01:00
BattleScript_DefiantActivates::
pause 0x20
call BattleScript_AbilityPopUp
statbuffchange 0, NULL
setgraphicalstatchangevalues
playanimation BS_ABILITY_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printstring STRINGID_PKMNSSTATCHANGED2
waitmessage 0x40
return
2018-09-29 13:36:33 +02:00
BattleScript_AbilityPopUp:
showabilitypopup BS_ABILITY_BATTLER
recordability BS_ABILITY_BATTLER
pause 40
2018-09-29 13:36:33 +02:00
return
BattleScript_SpeedBoostActivates::
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printstring STRINGID_PKMNRAISEDSPEED
waitmessage 0x40
end3
2020-04-19 15:44:44 +02:00
@ Can't compare directly to a value, have to compare to value at pointer
sZero:
.byte 0
BattleScript_MoodyActivates::
call BattleScript_AbilityPopUp
jumpifbyteequal sSTATCHANGER, sZero, BattleScript_MoodyLower
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_NOT_PROTECT_AFFECTED, BattleScript_MoodyLower
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_MoodyLower
setgraphicalstatchangevalues
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_MoodyLower:
jumpifbyteequal sSAVED_STAT_CHANGER, sZero, BattleScript_MoodyEnd
copybyte sSTATCHANGER, sSAVED_STAT_CHANGER
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_NOT_PROTECT_AFFECTED, BattleScript_MoodyEnd
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_MoodyEnd
setgraphicalstatchangevalues
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_MoodyEnd:
end3
2020-07-15 17:21:12 +02:00
BattleScript_EmergencyExit::
pause 0x5
call BattleScript_AbilityPopUp
pause 0x40
BattleScript_EmergencyExitNoPopUp::
playanimation BS_TARGET, B_ANIM_SLIDE_OFFSCREEN, NULL
waitanimation
openpartyscreen BS_TARGET, BattleScript_EmergencyExitRet
switchoutabilities BS_TARGET
waitstate
switchhandleorder BS_TARGET, 2
returntoball BS_TARGET
getswitchedmondata BS_TARGET
switchindataupdate BS_TARGET
hpthresholds BS_TARGET
printstring STRINGID_SWITCHINMON
switchinanim BS_TARGET, TRUE
waitstate
switchineffects BS_TARGET
BattleScript_EmergencyExitRet:
return
BattleScript_EmergencyExitWild::
pause 0x5
call BattleScript_AbilityPopUp
pause 0x40
BattleScript_EmergencyExitWildNoPopUp::
playanimation BS_TARGET, B_ANIM_SLIDE_OFFSCREEN, NULL
waitanimation
setoutcomeonteleport BS_TARGET
finishaction
return
BattleScript_TraceActivates::
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNTRACED
waitmessage 0x40
settracedability BS_SCRIPTING
switchinabilities BS_SCRIPTING
return
BattleScript_TraceActivatesEnd3::
call BattleScript_TraceActivates
end3
2020-04-19 12:07:56 +02:00
BattleScript_ReceiverActivates::
call BattleScript_AbilityPopUp
printstring STRINGID_RECEIVERABILITYTAKEOVER
waitmessage 0x40
settracedability BS_ABILITY_BATTLER
return
2020-07-16 15:20:03 +02:00
BattleScript_AbilityHpHeal:
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXRESTOREDHPALITTLE2
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2020-07-16 15:20:03 +02:00
return
BattleScript_RainDishActivates::
call BattleScript_AbilityHpHeal
end3
2020-07-16 15:20:03 +02:00
BattleScript_CheekPouchActivates::
copybyte sSAVED_BATTLER, gBattlerAttacker
copybyte gBattlerAttacker, gBattlerAbility
call BattleScript_AbilityHpHeal
copybyte gBattlerAttacker, sSAVED_BATTLER
return
2018-07-28 17:13:47 +02:00
BattleScript_HarvestActivates::
pause 0x5
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2018-07-28 17:13:47 +02:00
printstring STRINGID_HARVESTBERRY
waitmessage 0x40
end3
2018-07-26 21:56:23 +02:00
BattleScript_SolarPowerActivates::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2018-07-26 21:56:23 +02:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_SOLARPOWERHPDROP
waitmessage 0x40
tryfaintmon BS_ATTACKER, FALSE, NULL
end3
2020-04-18 19:09:17 +02:00
BattleScript_HealerActivates::
call BattleScript_AbilityPopUp
curestatus BS_SCRIPTING
updatestatusicon BS_SCRIPTING
printstring STRINGID_HEALERCURE
waitmessage 0x40
end3
BattleScript_SandstreamActivates::
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM
waitstate
2018-07-01 12:16:52 +02:00
playanimation BS_BATTLER_0, B_ANIM_SANDSTORM_CONTINUES, NULL
2017-11-26 01:19:57 +01:00
call BattleScript_WeatherFormChanges
end3
BattleScript_ShedSkinActivates::
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXCUREDYPROBLEM
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_ATTACKER
end3
2017-11-26 01:19:57 +01:00
BattleScript_WeatherFormChanges::
2018-10-27 00:04:18 +02:00
setbyte sBATTLER, 0x0
2017-11-26 01:19:57 +01:00
BattleScript_WeatherFormChangesLoop::
trycastformdatachange
2018-10-27 00:04:18 +02:00
addbyte sBATTLER, 0x1
jumpifbytenotequal sBATTLER, gBattlersCount, BattleScript_WeatherFormChangesLoop
return
BattleScript_CastformChange::
2020-08-05 02:33:05 +02:00
call BattleScript_DoCastformChange
end3
2020-08-05 02:33:05 +02:00
BattleScript_DoCastformChange::
copybyte gBattlerAbility, sBATTLER
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
docastformchangeanimation
waitstate
printstring STRINGID_PKMNTRANSFORMED
waitmessage 0x40
return
2020-04-22 15:12:25 +02:00
BattleScript_TryAdrenalineOrb:
jumpifnoholdeffect BS_TARGET, HOLD_EFFECT_ADRENALINE_ORB, BattleScript_TryAdrenalineOrbRet
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPEED, 12, BattleScript_TryAdrenalineOrbRet
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_TryAdrenalineOrbRet
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT, NULL
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
copybyte sBATTLER, gBattlerTarget
setlastuseditem BS_TARGET
printstring STRINGID_USINGXTHEYOFZN
waitmessage 0x40
removeitem BS_TARGET
BattleScript_TryAdrenalineOrbRet:
return
2018-09-01 20:00:13 +02:00
BattleScript_IntimidateActivatesEnd3::
call BattleScript_PauseIntimidateActivates
end3
2018-09-01 20:00:13 +02:00
BattleScript_PauseIntimidateActivates:
pause 0x20
2018-09-01 20:00:13 +02:00
BattleScript_IntimidateActivates::
2018-02-06 23:09:39 +01:00
setbyte gBattlerTarget, 0x0
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2018-09-01 20:00:13 +02:00
BattleScript_IntimidateActivatesLoop:
2020-04-22 15:12:25 +02:00
setstatchanger STAT_ATK, 1, TRUE
2018-09-01 20:00:13 +02:00
trygetintimidatetarget BattleScript_IntimidateActivatesReturn
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_IntimidateActivatesLoopIncrement
jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_IntimidatePrevented
jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidatePrevented
jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_IntimidatePrevented
#if B_UPDATED_INTIMIDATE >= GEN_8
2020-11-10 14:18:16 +01:00
jumpifability BS_TARGET, ABILITY_INNER_FOCUS, BattleScript_IntimidatePrevented
jumpifability BS_TARGET, ABILITY_SCRAPPY, BattleScript_IntimidatePrevented
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_IntimidatePrevented
jumpifability BS_TARGET, ABILITY_OBLIVIOUS, BattleScript_IntimidatePrevented
#endif
2019-09-27 08:46:33 +02:00
statbuffchange STAT_BUFF_NOT_PROTECT_AFFECTED | STAT_BUFF_ALLOW_PTR, BattleScript_IntimidateActivatesLoopIncrement
2018-09-01 20:00:13 +02:00
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_IntimidateActivatesLoopIncrement
setgraphicalstatchangevalues
2018-02-08 11:17:41 +01:00
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printstring STRINGID_PKMNCUTSATTACKWITH
waitmessage 0x40
2020-04-22 15:12:25 +02:00
call BattleScript_TryAdrenalineOrb
2018-09-01 20:00:13 +02:00
BattleScript_IntimidateActivatesLoopIncrement:
2018-02-06 23:09:39 +01:00
addbyte gBattlerTarget, 0x1
2018-09-01 20:00:13 +02:00
goto BattleScript_IntimidateActivatesLoop
BattleScript_IntimidateActivatesReturn:
return
2018-09-01 20:00:13 +02:00
BattleScript_IntimidatePrevented:
pause 0x20
call BattleScript_AbilityPopUp
setbyte gBattleCommunication STAT_ATK
stattextbuffer BS_ATTACKER
printstring STRINGID_STATWASNOTLOWERED
waitmessage 0x40
2020-04-22 15:12:25 +02:00
call BattleScript_TryAdrenalineOrb
2018-09-01 20:00:13 +02:00
goto BattleScript_IntimidateActivatesLoopIncrement
BattleScript_DroughtActivates::
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXINTENSIFIEDSUN
waitstate
2018-07-01 12:16:52 +02:00
playanimation BS_BATTLER_0, B_ANIM_SUN_CONTINUES, NULL
2017-11-26 01:19:57 +01:00
call BattleScript_WeatherFormChanges
end3
BattleScript_SnowWarningActivates::
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_SNOWWARNINGHAIL
waitstate
playanimation BS_BATTLER_0, B_ANIM_HAIL_CONTINUES, NULL
call BattleScript_WeatherFormChanges
end3
2019-02-09 14:30:16 +01:00
BattleScript_ElectricSurgeActivates::
pause 0x20
call BattleScript_AbilityPopUp
printstring STRINGID_TERRAINBECOMESELECTRIC
waitstate
playanimation BS_SCRIPTING, B_ANIM_TERRAIN_ELECTRIC, NULL
end3
2019-02-09 14:30:16 +01:00
BattleScript_MistySurgeActivates::
pause 0x20
call BattleScript_AbilityPopUp
printstring STRINGID_TERRAINBECOMESMISTY
waitstate
playanimation BS_SCRIPTING, B_ANIM_TERRAIN_MISTY, NULL
end3
2019-02-09 14:30:16 +01:00
BattleScript_GrassySurgeActivates::
pause 0x20
call BattleScript_AbilityPopUp
printstring STRINGID_TERRAINBECOMESGRASSY
waitstate
playanimation BS_SCRIPTING, B_ANIM_TERRAIN_GRASSY, NULL
end3
2019-02-09 14:30:16 +01:00
BattleScript_PsychicSurgeActivates::
pause 0x20
call BattleScript_AbilityPopUp
printstring STRINGID_TERRAINBECOMESPSYCHIC
waitstate
playanimation BS_SCRIPTING, B_ANIM_TERRAIN_PSYCHIC, NULL
end3
2018-07-22 21:05:12 +02:00
BattleScript_BadDreamsActivates::
setbyte gBattlerTarget, 0
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2018-07-22 21:05:12 +02:00
BattleScript_BadDreamsLoop:
trygetbaddreamstarget BattleScript_BadDreamsEnd
dmg_1_8_targethp
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
printstring STRINGID_BADDREAMSDMG
waitmessage 0x40
jumpifability BS_TARGET, ABILITY_MAGIC_GUARD, BattleScript_BadDreamsIncrement
2018-07-22 21:05:12 +02:00
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
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNPROTECTEDBY
pause 0x40
goto BattleScript_MoveEnd
BattleScript_DampStopsExplosion::
pause 0x20
2020-02-29 09:45:37 +01:00
copybyte gBattlerAbility, gBattlerTarget
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNPREVENTSUSAGE
pause 0x40
2020-04-11 12:02:51 +02:00
moveendto MOVEEND_NEXT_TARGET
moveendcase MOVEEND_CLEAR_BITS
end
BattleScript_MoveHPDrain_PPLoss::
ppreduce
BattleScript_MoveHPDrain::
attackstring
pause 0x20
call BattleScript_AbilityPopUp
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printstring STRINGID_PKMNRESTOREDHPUSING
waitmessage 0x40
2018-07-21 15:11:13 +02:00
orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
goto BattleScript_MoveEnd
2018-07-22 18:40:18 +02:00
BattleScript_MoveStatDrain_PPLoss::
ppreduce
BattleScript_MoveStatDrain::
attackstring
pause 0x20
call BattleScript_AbilityPopUp
2018-07-22 18:40:18 +02:00
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
waitanimation
printstring STRINGID_TARGETABILITYSTATRAISE
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_MonMadeMoveUseless_PPLoss::
ppreduce
2017-11-26 17:15:28 +01:00
BattleScript_MonMadeMoveUseless::
attackstring
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXMADEYUSELESS
waitmessage 0x40
2018-07-21 15:11:13 +02:00
orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
goto BattleScript_MoveEnd
BattleScript_FlashFireBoost_PPLoss::
ppreduce
BattleScript_FlashFireBoost::
attackstring
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printfromtable gFlashFireStringIds
waitmessage 0x40
goto BattleScript_MoveEnd
2017-12-03 00:47:21 +01:00
BattleScript_AbilityPreventsPhasingOut::
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNANCHORSITSELFWITH
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_AbilityNoStatLoss::
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
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
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNPREVENTSROMANCEWITH
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_FlinchPrevention::
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXPREVENTSFLINCHING
waitmessage 0x40
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_OwnTempoPrevents::
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_SoundproofProtected::
attackstring
ppreduce
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXBLOCKSY
waitmessage 0x40
goto BattleScript_MoveEnd
2018-11-30 22:12:18 +01:00
BattleScript_DazzlingProtected::
attackstring
ppreduce
pause 0x20
call BattleScript_AbilityPopUp
printstring STRINGID_POKEMONCANNOTUSEMOVE
waitmessage 0x40
goto BattleScript_MoveEnd
2018-12-01 11:35:49 +01:00
BattleScript_MoveUsedPsychicTerrainPrevents::
printstring STRINGID_POKEMONCANNOTUSEMOVE
waitmessage 0x40
goto BattleScript_MoveEnd
2020-06-29 18:26:53 +02:00
BattleScript_GrassyTerrainHeals::
setbyte gBattleCommunication, 0
BattleScript_GrassyTerrainLoop:
copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 0x1
checkgrassyterrainheal BS_ATTACKER, BattleScript_GrassyTerrainLoopIncrement
printstring STRINGID_GRASSYTERRAINHEALS
waitmessage 0x40
BattleScript_GrassyTerrainHpChange:
orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
BattleScript_GrassyTerrainLoopIncrement::
addbyte gBattleCommunication, 0x1
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_GrassyTerrainLoop
BattleScript_GrassyTerrainLoopEnd::
bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
jumpifbyte CMP_EQUAL, gFieldTimers + 5, 0x0, BattleScript_GrassyTerrainEnds
end2
BattleScript_AbilityNoSpecificStatLoss::
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXPREVENTSYLOSS
waitmessage 0x40
setbyte cMULTISTRING_CHOOSER, 0x3
return
BattleScript_StickyHoldActivates::
pause 0x20
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_ColorChangeActivates::
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNCHANGEDTYPEWITH
waitmessage 0x40
return
2018-11-30 21:21:43 +01:00
BattleScript_ProteanActivates::
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNCHANGEDTYPE
waitmessage 0x40
return
2018-07-26 21:56:23 +02:00
BattleScript_CursedBodyActivates::
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2018-07-26 21:56:23 +02:00
printstring STRINGID_CUSEDBODYDISABLED
waitmessage 0x40
return
2018-07-26 21:56:23 +02:00
BattleScript_MummyActivates::
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2018-07-26 21:56:23 +02:00
printstring STRINGID_ATTACKERACQUIREDABILITY
waitmessage 0x40
return
2018-07-22 18:40:18 +02:00
BattleScript_AngryPointActivates::
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL
2019-03-23 16:33:08 +01:00
setgraphicalstatchangevalues
2018-07-22 18:40:18 +02:00
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printstring STRINGID_ANGRYPOINTACTIVATES
waitmessage 0x40
return
2018-07-22 18:40:18 +02:00
BattleScript_TargetAbilityStatRaise::
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL
2019-03-23 16:37:56 +01:00
setgraphicalstatchangevalues
2018-07-22 18:40:18 +02:00
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
waitanimation
printstring STRINGID_TARGETABILITYSTATRAISE
waitmessage 0x40
return
2020-04-18 19:59:09 +02:00
BattleScript_ScriptingAbilityStatRaise::
copybyte gBattlerAbility, sBATTLER
call BattleScript_AbilityPopUp
copybyte sSAVED_DMG, gBattlerAttacker
copybyte gBattlerAttacker, sBATTLER
statbuffchange STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL
setgraphicalstatchangevalues
playanimation BS_SCRIPTING, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
waitanimation
printstring STRINGID_ATTACKERABILITYSTATRAISE
waitmessage 0x40
copybyte gBattlerAttacker, sSAVED_DMG
return
2018-07-26 21:56:23 +02:00
BattleScript_WeakArmorActivates::
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2019-03-23 16:56:56 +01:00
setstatchanger STAT_DEF, 1, TRUE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_WeakArmorActivatesSpeed
2018-07-26 21:56:23 +02:00
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:
2019-03-23 16:56:56 +01:00
setstatchanger STAT_SPEED, 2, FALSE
2019-11-10 12:09:14 +01:00
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_WeakArmorActivatesEnd
2018-07-26 21:56:23 +02:00
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
2018-07-22 18:40:18 +02:00
BattleScript_AttackerAbilityStatRaise::
2020-01-18 19:40:49 +01:00
copybyte gBattlerAbility, gBattlerAttacker
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2020-04-19 15:44:44 +02:00
setgraphicalstatchangevalues
2018-07-22 18:40:18 +02:00
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
waitanimation
printstring STRINGID_ATTACKERABILITYSTATRAISE
waitmessage 0x40
return
2018-07-26 23:40:55 +02:00
BattleScript_FellStingerRaisesStat::
2019-11-10 12:09:14 +01:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_FellStingerRaisesAtkEnd
2018-07-26 23:40:55 +02:00
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
2018-07-22 18:40:18 +02:00
BattleScript_AttackerAbilityStatRaiseEnd3::
call BattleScript_AttackerAbilityStatRaise
end3
2018-07-22 22:21:47 +02:00
BattleScript_SwitchInAbilityMsg::
2019-08-05 11:24:49 +02:00
call BattleScript_AbilityPopUp
2018-07-22 22:21:47 +02:00
printfromtable gSwitchInAbilityStringIds
waitmessage 0x40
end3
BattleScript_FriskMsgWithPopup::
copybyte gBattlerAbility, gBattlerAttacker
call BattleScript_AbilityPopUp
BattleScript_FriskMsg::
printstring STRINGID_FRISKACTIVATES
waitmessage 0x40
return
BattleScript_FriskActivates::
tryfriskmsg BS_ATTACKER
end3
2018-07-29 12:21:28 +02:00
BattleScript_ImposterActivates::
transformdataexecution
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
playmoveanimation BS_ATTACKER, MOVE_TRANSFORM
2018-07-29 12:21:28 +02:00
waitanimation
printstring STRINGID_IMPOSTERTRANSFORM
waitmessage 0x40
end3
2019-05-09 20:31:58 +02:00
BattleScript_HurtAttacker:
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNHURTSWITH
waitmessage 0x40
2018-02-08 11:17:41 +01:00
tryfaintmon BS_ATTACKER, FALSE, NULL
return
2019-05-09 20:31:58 +02:00
BattleScript_RoughSkinActivates::
call BattleScript_AbilityPopUp
call BattleScript_HurtAttacker
return
2019-05-09 20:31:58 +02:00
BattleScript_RockyHelmetActivates::
2020-06-25 16:15:11 +02:00
@ don't play the animation for a fainted mon
jumpifabsent BS_TARGET, BattleScript_RockyHelmetActivatesDmg
2020-02-29 13:59:41 +01:00
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT, NULL
2019-05-09 20:31:58 +02:00
waitanimation
2020-06-25 16:15:11 +02:00
BattleScript_RockyHelmetActivatesDmg:
2019-05-09 20:31:58 +02:00
call BattleScript_HurtAttacker
return
BattleScript_SpikyShieldEffect::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNHURTSWITH
waitmessage 0x40
tryfaintmon BS_ATTACKER, FALSE, NULL
return
BattleScript_KingsShieldEffect::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
seteffectsecondary
setmoveeffect 0
copybyte sBATTLER, gBattlerTarget
copybyte gBattlerTarget, gBattlerAttacker
copybyte gBattlerAttacker, sBATTLER
return
BattleScript_BanefulBunkerEffect::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_x100000
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
seteffectsecondary
setmoveeffect 0
return
BattleScript_CuteCharmActivates::
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
2018-02-08 11:17:41 +01:00
status2animation BS_ATTACKER, STATUS2_INFATUATION
printstring STRINGID_PKMNSXINFATUATEDY
waitmessage 0x40
2020-04-22 14:40:44 +02:00
call BattleScript_TryDestinyKnotTarget
return
2019-03-01 13:59:08 +01:00
BattleScript_AbilityStatusEffect::
waitstate
2019-03-01 13:59:08 +01:00
call BattleScript_AbilityPopUp
seteffectsecondary
return
BattleScript_DancerActivates::
call BattleScript_AbilityPopUp
waitmessage 0x20
setbyte sB_ANIM_TURN, 0x0
setbyte sB_ANIM_TARGETS_HIT, 0x0
orword gHitMarker, HITMARKER_x800000
jumptocalledmove TRUE
BattleScript_SynchronizeActivates::
waitstate
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
seteffectprimary
return
BattleScript_NoItemSteal::
pause 0x20
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
waitmessage 0x40
return
2017-11-26 17:15:28 +01:00
BattleScript_AbilityCuredStatus::
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXCUREDITSYPROBLEM
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
return
2018-09-01 20:00:13 +02:00
BattleScript_IgnoresWhileAsleep::
printstring STRINGID_PKMNIGNORESASLEEP
waitmessage 0x40
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
end
2017-11-26 17:15:28 +01:00
BattleScript_IgnoresAndUsesRandomMove::
printstring STRINGID_PKMNIGNOREDORDERS
waitmessage 0x40
2018-09-22 19:08:41 +02:00
jumptocalledmove FALSE
BattleScript_MoveUsedLoafingAround::
2020-04-18 13:04:28 +02:00
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB6C7
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x4, BattleScript_82DB6C7
setbyte gBattleCommunication, 0x0
2018-02-08 11:17:41 +01:00
various24 BS_ATTACKER
setbyte cMULTISTRING_CHOOSER, 0x4
BattleScript_82DB6C7::
printfromtable gInobedientStringIds
waitmessage 0x40
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
2018-09-29 13:36:33 +02:00
end
2020-04-18 13:04:28 +02:00
BattleScript_TruantLoafingAround::
2018-09-29 13:36:33 +02:00
call BattleScript_AbilityPopUp
goto BattleScript_82DB6C7
2017-11-26 17:15:28 +01:00
BattleScript_IgnoresAndFallsAsleep::
printstring STRINGID_PKMNBEGANTONAP
waitmessage 0x40
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_SLEEP | MOVE_EFFECT_AFFECTS_USER
seteffectprimary
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
end
2018-09-01 20:00:13 +02:00
BattleScript_IgnoresAndHitsItself::
printstring STRINGID_PKMNWONTOBEY
waitmessage 0x40
2017-12-02 00:03:46 +01:00
goto BattleScript_DoSelfConfusionDmg
BattleScript_SubstituteFade::
2018-02-08 11:17:41 +01:00
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_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMCUREDPARALYSIS
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCurePsnEnd2::
call BattleScript_BerryCurePsnRet
end2
BattleScript_BerryCurePsnRet::
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMCUREDPOISON
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCureBrnEnd2::
call BattleScript_BerryCureBrnRet
end2
BattleScript_BerryCureBrnRet::
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMHEALEDBURN
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCureFrzEnd2::
call BattleScript_BerryCureFrzRet
end2
BattleScript_BerryCureFrzRet::
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMDEFROSTEDIT
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCureSlpEnd2::
call BattleScript_BerryCureSlpRet
end2
BattleScript_BerryCureSlpRet::
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMWOKEIT
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
2019-05-07 15:26:58 +02:00
BattleScript_GemActivates::
2020-02-29 13:59:41 +01:00
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL
2019-05-07 15:26:58 +02:00
waitanimation
printstring STRINGID_GEMACTIVATES
waitmessage 0x40
removeitem BS_ATTACKER
return
2019-05-07 15:26:58 +02:00
BattleScript_BerryReduceDmg::
2020-02-29 13:59:41 +01:00
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT, NULL
2019-05-07 15:26:58 +02:00
waitanimation
printstring STRINGID_TARGETATEITEM
waitmessage 0x40
removeitem BS_TARGET
return
2019-05-07 15:26:58 +02:00
BattleScript_PrintBerryReduceString::
waitmessage 0x40
printstring STRINGID_BERRYDMGREDUCES
return
BattleScript_BerryCureConfusionEnd2::
call BattleScript_BerryCureConfusionRet
end2
BattleScript_BerryCureConfusionRet::
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMSNAPPEDOUT
waitmessage 0x40
2018-02-08 11:17:41 +01:00
removeitem BS_SCRIPTING
return
BattleScript_BerryCureChosenStatusEnd2::
call BattleScript_BerryCureChosenStatusRet
end2
BattleScript_BerryCureChosenStatusRet::
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL
printfromtable gBerryEffectStringIds
waitmessage 0x40
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_WhiteHerbEnd2::
call BattleScript_WhiteHerbRet
end2
BattleScript_WhiteHerbRet::
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDSTATUS
waitmessage 0x40
2018-02-08 11:17:41 +01:00
removeitem BS_SCRIPTING
return
2020-06-29 18:04:13 +02:00
BattleScript_ItemHealHP_RemoveItemRet::
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_SCRIPTING
datahpupdate BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_ItemHealHP_RemoveItemEnd2::
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
removeitem BS_ATTACKER
end2
BattleScript_BerryPPHealEnd2::
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDPP
waitmessage 0x40
2018-02-08 11:17:41 +01:00
removeitem BS_ATTACKER
end2
BattleScript_ItemHealHP_End2::
call BattleScript_ItemHealHP_Ret
end2
2019-05-09 20:31:58 +02:00
BattleScript_AirBaloonMsgIn::
printstring STRINGID_AIRBALLOONFLOAT
waitmessage 0x40
2019-05-20 12:20:49 +02:00
end3
2019-05-09 20:31:58 +02:00
BattleScript_AirBaloonMsgPop::
printstring STRINGID_AIRBALLOONPOP
waitmessage 0x40
removeitem BS_TARGET
return
2019-05-10 11:03:33 +02:00
BattleScript_ItemHurtRet::
2019-05-09 20:31:58 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_HURTBYITEM
waitmessage 0x40
tryfaintmon BS_ATTACKER, FALSE, NULL
2019-05-10 11:03:33 +02:00
return
2019-05-10 11:03:33 +02:00
BattleScript_ItemHurtEnd2::
playanimation BS_ATTACKER, B_ANIM_MON_HIT, NULL
waitanimation
call BattleScript_ItemHurtRet
2019-05-09 20:31:58 +02:00
end2
BattleScript_ItemHealHP_Ret::
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
return
2017-11-26 17:15:28 +01:00
BattleScript_SelectingNotAllowedMoveChoiceItem::
printselectionstring STRINGID_ITEMALLOWSONLYYMOVE
endselectionscript
2018-07-31 23:09:47 +02:00
BattleScript_SelectingNotAllowedMoveAssaultVest::
printselectionstring STRINGID_ASSAULTVESTDOESNTALLOW
endselectionscript
BattleScript_HangedOnMsg::
2018-02-08 11:17:41 +01:00
playanimation BS_TARGET, B_ANIM_HANGED_ON, NULL
printstring STRINGID_PKMNHUNGONWITHX
waitmessage 0x40
2020-06-22 10:50:50 +02:00
jumpifnoholdeffect BS_TARGET, HOLD_EFFECT_FOCUS_SASH, BattleScript_HangedOnMsgRet
removeitem BS_TARGET
BattleScript_HangedOnMsgRet:
return
BattleScript_BerryConfuseHealEnd2::
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage 0x40
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_FORXCOMMAYZ
waitmessage 0x40
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER
seteffectprimary
2018-02-08 11:17:41 +01:00
removeitem BS_ATTACKER
end2
BattleScript_BerryStatRaiseEnd2::
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL
2019-09-27 08:46:33 +02:00
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_82DB85B
BattleScript_82DB85B::
setbyte cMULTISTRING_CHOOSER, 0x4
call BattleScript_StatUp
2018-02-08 11:17:41 +01:00
removeitem BS_ATTACKER
end2
BattleScript_BerryFocusEnergyEnd2::
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL
printstring STRINGID_PKMNUSEDXTOGETPUMPED
waitmessage 0x40
2018-02-08 11:17:41 +01:00
removeitem BS_ATTACKER
end2
BattleScript_ActionSelectionItemsCantBeUsed::
printselectionstring STRINGID_ITEMSCANTBEUSEDNOW
endselectionscript
2018-09-01 20:00:13 +02:00
BattleScript_FlushMessageBox::
printstring STRINGID_EMPTYSTRING3
return
2020-07-17 02:12:12 +02:00
BattleScript_PalacePrintFlavorText::
setbyte gBattleCommunication + 1, 0
BattleScript_PalaceTryBattlerFlavorText::
palaceflavortext BS_ATTACKER @ BS_ATTACKER here overwritten by gBattleCommunication + 1
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, TRUE, BattleScript_PalaceEndFlavorText
printfromtable gBattlePalaceFlavorTextTable
waitmessage 0x40
2020-07-17 02:12:12 +02:00
BattleScript_PalaceEndFlavorText::
addbyte gBattleCommunication + 1, 1
jumpifbytenotequal gBattleCommunication + 1, gBattlersCount, BattleScript_PalaceTryBattlerFlavorText
setbyte gBattleCommunication, 0
setbyte gBattleCommunication + 1, 0
end2
2018-08-25 21:04:12 +02:00
BattleScript_ArenaTurnBeginning::
2018-02-08 11:17:41 +01:00
waitcry BS_ATTACKER
2018-08-25 21:04:12 +02:00
volumedown
2020-08-21 00:02:00 +02:00
playse SE_ARENA_TIMEUP1
pause 0x8
2020-08-21 00:02:00 +02:00
playse SE_ARENA_TIMEUP1
2018-02-08 11:17:41 +01:00
various14 BS_ATTACKER
2018-11-11 18:33:16 +01:00
arenajudmengtstring 8
arenawaitmessage 8
pause 0x40
2018-02-08 11:17:41 +01:00
various15 BS_ATTACKER
2018-08-25 21:04:12 +02:00
volumeup
end2
2018-11-11 18:33:16 +01:00
BattleScript_82DB8E0:: @ Unused battlescript
2020-08-21 00:02:00 +02:00
playse SE_DING_DONG
2018-02-08 11:17:41 +01:00
various14 BS_ATTACKER
2018-11-11 18:33:16 +01:00
arenajudmengtstring BS_TARGET
arenawaitmessage BS_TARGET
pause 0x40
2018-02-08 11:17:41 +01:00
various15 BS_ATTACKER
end2
2018-11-11 18:33:16 +01:00
BattleScript_ArenaDoJudgment::
makevisible BS_PLAYER1
waitstate
2018-02-08 11:17:41 +01:00
makevisible BS_OPPONENT1
waitstate
2018-08-25 21:04:12 +02:00
volumedown
2020-08-21 00:02:00 +02:00
playse SE_ARENA_TIMEUP1
pause 0x8
2020-08-21 00:02:00 +02:00
playse SE_ARENA_TIMEUP1
pause 0x40
2018-02-08 11:17:41 +01:00
various14 BS_ATTACKER
2018-11-11 18:33:16 +01:00
arenajudmengtstring 1
arenawaitmessage 1
pause 0x40
setbyte gBattleCommunication, 0x0
2018-11-11 18:33:16 +01:00
arenajudgmentwindow
pause 0x40
2018-11-11 18:33:16 +01:00
arenajudgmentwindow
arenajudmengtstring 2
arenawaitmessage 2
arenajudgmentwindow
arenajudmengtstring 3
arenawaitmessage 3
arenajudgmentwindow
arenajudmengtstring 4
arenawaitmessage 4
arenajudgmentwindow
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x3, BattleScript_ArenaJudgmentPlayerLoses
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x4, BattleScript_ArenaJudgmentDraw
arenajudmengtstring 5
arenawaitmessage 5
arenajudgmentwindow
2018-02-08 11:17:41 +01:00
various15 BS_ATTACKER
printstring STRINGID_DEFEATEDOPPONENTBYREFEREE
waitmessage 0x40
2018-02-08 11:17:41 +01:00
playfaintcry BS_OPPONENT1
waitcry BS_ATTACKER
dofaintanimation BS_OPPONENT1
cleareffectsonfaint BS_OPPONENT1
2018-11-11 18:33:16 +01:00
arenaopponentmonlost
end2
2018-11-11 18:33:16 +01:00
BattleScript_ArenaJudgmentPlayerLoses:
arenajudmengtstring 6
arenawaitmessage 6
arenajudgmentwindow
2018-02-08 11:17:41 +01:00
various15 BS_ATTACKER
printstring STRINGID_LOSTTOOPPONENTBYREFEREE
waitmessage 0x40
2018-11-11 18:33:16 +01:00
playfaintcry BS_PLAYER1
2018-02-08 11:17:41 +01:00
waitcry BS_ATTACKER
2018-11-11 18:33:16 +01:00
dofaintanimation BS_PLAYER1
cleareffectsonfaint BS_PLAYER1
arenaplayermonlost
end2
2018-11-11 18:33:16 +01:00
BattleScript_ArenaJudgmentDraw:
arenajudmengtstring 7
arenawaitmessage 7
arenajudgmentwindow
2018-02-08 11:17:41 +01:00
various15 BS_ATTACKER
printstring STRINGID_TIEDOPPONENTBYREFEREE
waitmessage 0x40
2018-11-11 18:33:16 +01:00
playfaintcry BS_PLAYER1
2018-02-08 11:17:41 +01:00
waitcry BS_ATTACKER
2018-11-11 18:33:16 +01:00
dofaintanimation BS_PLAYER1
cleareffectsonfaint BS_PLAYER1
2018-02-08 11:17:41 +01:00
playfaintcry BS_OPPONENT1
waitcry BS_ATTACKER
dofaintanimation BS_OPPONENT1
cleareffectsonfaint BS_OPPONENT1
2018-11-11 18:33:16 +01:00
arenabothmonlost
end2
2017-11-26 17:26:11 +01:00
BattleScript_AskIfWantsToForfeitMatch::
printselectionstring STRINGID_QUESTIONFORFEITMATCH
2018-02-08 11:17:41 +01:00
forfeityesnobox BS_ATTACKER
endselectionscript
2017-12-03 00:47:21 +01:00
BattleScript_PrintPlayerForfeited::
printstring STRINGID_FORFEITEDMATCH
waitmessage 0x40
end2
2017-12-03 00:47:21 +01:00
BattleScript_PrintPlayerForfeitedLinkBattle::
printstring STRINGID_FORFEITEDMATCH
waitmessage 0x40
atk57
waitmessage 0x40
end2
2020-11-30 16:55:46 +01:00
@ z moves / effects
BattleScript_ZMoveActivateDamaging::
printstring STRINGID_ZPOWERSURROUNDS
playanimation BS_ATTACKER, B_ANIM_ZMOVE_ACTIVATE, NULL
printstring STRINGID_ZMOVEUNLEASHED
waitmessage 0x40
return
2020-11-30 16:55:46 +01:00
BattleScript_ZMoveActivateStatus::
printstring STRINGID_ZPOWERSURROUNDS
playanimation BS_ATTACKER, B_ANIM_ZMOVE_ACTIVATE, NULL
setzeffect
printstring STRINGID_ZMOVEUNLEASHED
waitmessage 0x40
return
BattleScript_ZEffectPrintString::
printfromtable gZEffectStringIds
waitmessage 0x40
return
BattleScript_RecoverHPZMove::
healthbarupdate BS_SCRIPTING
datahpupdate BS_SCRIPTING
printfromtable gZEffectStringIds
waitmessage 0x40
return
BattleScript_StatUpZMove::
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_StatUpZMoveEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StatUpZMoveEnd
playanimation BS_SCRIPTING, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gZEffectStringIds
waitmessage 0x40
BattleScript_StatUpZMoveEnd:
return
BattleScript_EffectExtremeEvoboost::
attackcanceler
attackstring
ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
goto BattleScript_ButItFailed
BattleScript_ExtremeEvoboostAnim:
attackanimation
waitanimation
BattleScript_ExtremeEvoboostAtk::
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0x0
setstatchanger STAT_ATK, 2, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ExtremeEvoboostDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ExtremeEvoboostDef::
setstatchanger STAT_DEF, 2, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ExtremeEvoboostSpeed
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ExtremeEvoboostSpeed::
setstatchanger STAT_SPEED, 2, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ExtremeEvoboostSpAtk
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ExtremeEvoboostSpAtk::
setstatchanger STAT_SPATK, 2, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ExtremeEvoboostSpDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ExtremeEvoboostSpDef::
setstatchanger STAT_SPDEF, 2, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ExtremeEvoboostEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_ExtremeEvoboostEnd::
goto BattleScript_MoveEnd
BattleScript_EffectTerrainHit:
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
setterrain BattleScript_TryFaint
@@@ TODO - 'restore' bg @@@
printfromtable gTerrainStringIds
BattleScript_TryFaint:
tryfaintmon BS_TARGET, FALSE, NULL
goto BattleScript_MoveEnd