pokeemerald/data/battle_scripts_1.s

4563 lines
142 KiB
ArmAsm
Raw Normal View History

2021-04-03 18:38:07 +02:00
#include "constants/global.h"
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_arena.h"
2018-02-08 11:17:41 +01:00
#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"
#include "constants/moves.h"
#include "constants/songs.h"
2018-10-06 09:37:52 +02:00
#include "constants/game_stat.h"
2021-04-02 08:17:36 +02:00
#include "constants/trainers.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
2021-07-20 21:18:31 +02:00
gBattleScriptsForMoveEffects::
.4byte BattleScript_EffectHit @ EFFECT_HIT
.4byte BattleScript_EffectSleep @ EFFECT_SLEEP
.4byte BattleScript_EffectPoisonHit @ EFFECT_POISON_HIT
.4byte BattleScript_EffectAbsorb @ EFFECT_ABSORB
.4byte BattleScript_EffectBurnHit @ EFFECT_BURN_HIT
.4byte BattleScript_EffectFreezeHit @ EFFECT_FREEZE_HIT
.4byte BattleScript_EffectParalyzeHit @ EFFECT_PARALYZE_HIT
.4byte BattleScript_EffectExplosion @ EFFECT_EXPLOSION
.4byte BattleScript_EffectDreamEater @ EFFECT_DREAM_EATER
.4byte BattleScript_EffectMirrorMove @ EFFECT_MIRROR_MOVE
.4byte BattleScript_EffectAttackUp @ EFFECT_ATTACK_UP
.4byte BattleScript_EffectDefenseUp @ EFFECT_DEFENSE_UP
.4byte BattleScript_EffectHit @ EFFECT_SPEED_UP
.4byte BattleScript_EffectSpecialAttackUp @ EFFECT_SPECIAL_ATTACK_UP
.4byte BattleScript_EffectHit @ EFFECT_SPECIAL_DEFENSE_UP
.4byte BattleScript_EffectHit @ EFFECT_ACCURACY_UP
.4byte BattleScript_EffectEvasionUp @ EFFECT_EVASION_UP
.4byte BattleScript_EffectHit @ EFFECT_ALWAYS_HIT
.4byte BattleScript_EffectAttackDown @ EFFECT_ATTACK_DOWN
.4byte BattleScript_EffectDefenseDown @ EFFECT_DEFENSE_DOWN
.4byte BattleScript_EffectSpeedDown @ EFFECT_SPEED_DOWN
.4byte BattleScript_EffectHit @ EFFECT_SPECIAL_ATTACK_DOWN
.4byte BattleScript_EffectHit @ EFFECT_SPECIAL_DEFENSE_DOWN
.4byte BattleScript_EffectAccuracyDown @ EFFECT_ACCURACY_DOWN
.4byte BattleScript_EffectEvasionDown @ EFFECT_EVASION_DOWN
.4byte BattleScript_EffectHaze @ EFFECT_HAZE
.4byte BattleScript_EffectBide @ EFFECT_BIDE
.4byte BattleScript_EffectRampage @ EFFECT_RAMPAGE
.4byte BattleScript_EffectRoar @ EFFECT_ROAR
.4byte BattleScript_EffectMultiHit @ EFFECT_MULTI_HIT
.4byte BattleScript_EffectConversion @ EFFECT_CONVERSION
.4byte BattleScript_EffectFlinchHit @ EFFECT_FLINCH_HIT
.4byte BattleScript_EffectRestoreHp @ EFFECT_RESTORE_HP
.4byte BattleScript_EffectToxic @ EFFECT_TOXIC
.4byte BattleScript_EffectPayDay @ EFFECT_PAY_DAY
.4byte BattleScript_EffectLightScreen @ EFFECT_LIGHT_SCREEN
.4byte BattleScript_EffectTriAttack @ EFFECT_TRI_ATTACK
.4byte BattleScript_EffectRest @ EFFECT_REST
.4byte BattleScript_EffectOHKO @ EFFECT_OHKO
.4byte BattleScript_EffectRazorWind @ EFFECT_RAZOR_WIND
.4byte BattleScript_EffectSuperFang @ EFFECT_SUPER_FANG
.4byte BattleScript_EffectDragonRage @ EFFECT_DRAGON_RAGE
.4byte BattleScript_EffectTrap @ EFFECT_TRAP
.4byte BattleScript_EffectHit @ EFFECT_HIGH_CRITICAL
.4byte BattleScript_EffectDoubleHit @ EFFECT_DOUBLE_HIT
.4byte BattleScript_EffectRecoilIfMiss @ EFFECT_RECOIL_IF_MISS
.4byte BattleScript_EffectMist @ EFFECT_MIST
.4byte BattleScript_EffectFocusEnergy @ EFFECT_FOCUS_ENERGY
.4byte BattleScript_EffectRecoil @ EFFECT_RECOIL
.4byte BattleScript_EffectConfuse @ EFFECT_CONFUSE
.4byte BattleScript_EffectAttackUp2 @ EFFECT_ATTACK_UP_2
.4byte BattleScript_EffectDefenseUp2 @ EFFECT_DEFENSE_UP_2
.4byte BattleScript_EffectSpeedUp2 @ EFFECT_SPEED_UP_2
.4byte BattleScript_EffectSpecialAttackUp2 @ EFFECT_SPECIAL_ATTACK_UP_2
.4byte BattleScript_EffectSpecialDefenseUp2 @ EFFECT_SPECIAL_DEFENSE_UP_2
.4byte BattleScript_EffectHit @ EFFECT_ACCURACY_UP_2
.4byte BattleScript_EffectHit @ EFFECT_EVASION_UP_2
.4byte BattleScript_EffectTransform @ EFFECT_TRANSFORM
.4byte BattleScript_EffectAttackDown2 @ EFFECT_ATTACK_DOWN_2
.4byte BattleScript_EffectDefenseDown2 @ EFFECT_DEFENSE_DOWN_2
.4byte BattleScript_EffectSpeedDown2 @ EFFECT_SPEED_DOWN_2
.4byte BattleScript_EffectHit @ EFFECT_SPECIAL_ATTACK_DOWN_2
.4byte BattleScript_EffectSpecialDefenseDown2 @ EFFECT_SPECIAL_DEFENSE_DOWN_2
.4byte BattleScript_EffectHit @ EFFECT_ACCURACY_DOWN_2
.4byte BattleScript_EffectHit @ EFFECT_EVASION_DOWN_2
.4byte BattleScript_EffectReflect @ EFFECT_REFLECT
.4byte BattleScript_EffectPoison @ EFFECT_POISON
.4byte BattleScript_EffectParalyze @ EFFECT_PARALYZE
.4byte BattleScript_EffectAttackDownHit @ EFFECT_ATTACK_DOWN_HIT
.4byte BattleScript_EffectDefenseDownHit @ EFFECT_DEFENSE_DOWN_HIT
.4byte BattleScript_EffectSpeedDownHit @ EFFECT_SPEED_DOWN_HIT
.4byte BattleScript_EffectSpecialAttackDownHit @ EFFECT_SPECIAL_ATTACK_DOWN_HIT
.4byte BattleScript_EffectSpecialDefenseDownHit @ EFFECT_SPECIAL_DEFENSE_DOWN_HIT
.4byte BattleScript_EffectAccuracyDownHit @ EFFECT_ACCURACY_DOWN_HIT
.4byte BattleScript_EffectHit @ EFFECT_EVASION_DOWN_HIT
.4byte BattleScript_EffectSkyAttack @ EFFECT_SKY_ATTACK
.4byte BattleScript_EffectConfuseHit @ EFFECT_CONFUSE_HIT
.4byte BattleScript_EffectTwineedle @ EFFECT_TWINEEDLE
.4byte BattleScript_EffectHit @ EFFECT_VITAL_THROW
.4byte BattleScript_EffectSubstitute @ EFFECT_SUBSTITUTE
.4byte BattleScript_EffectRecharge @ EFFECT_RECHARGE
.4byte BattleScript_EffectRage @ EFFECT_RAGE
.4byte BattleScript_EffectMimic @ EFFECT_MIMIC
.4byte BattleScript_EffectMetronome @ EFFECT_METRONOME
.4byte BattleScript_EffectLeechSeed @ EFFECT_LEECH_SEED
.4byte BattleScript_EffectSplash @ EFFECT_SPLASH
.4byte BattleScript_EffectDisable @ EFFECT_DISABLE
.4byte BattleScript_EffectLevelDamage @ EFFECT_LEVEL_DAMAGE
.4byte BattleScript_EffectPsywave @ EFFECT_PSYWAVE
.4byte BattleScript_EffectCounter @ EFFECT_COUNTER
.4byte BattleScript_EffectEncore @ EFFECT_ENCORE
.4byte BattleScript_EffectPainSplit @ EFFECT_PAIN_SPLIT
.4byte BattleScript_EffectSnore @ EFFECT_SNORE
.4byte BattleScript_EffectConversion2 @ EFFECT_CONVERSION_2
.4byte BattleScript_EffectLockOn @ EFFECT_LOCK_ON
.4byte BattleScript_EffectSketch @ EFFECT_SKETCH
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_60
.4byte BattleScript_EffectSleepTalk @ EFFECT_SLEEP_TALK
.4byte BattleScript_EffectDestinyBond @ EFFECT_DESTINY_BOND
.4byte BattleScript_EffectFlail @ EFFECT_FLAIL
.4byte BattleScript_EffectSpite @ EFFECT_SPITE
.4byte BattleScript_EffectHit @ EFFECT_FALSE_SWIPE
.4byte BattleScript_EffectHealBell @ EFFECT_HEAL_BELL
.4byte BattleScript_EffectHit @ EFFECT_QUICK_ATTACK
.4byte BattleScript_EffectTripleKick @ EFFECT_TRIPLE_KICK
.4byte BattleScript_EffectThief @ EFFECT_THIEF
.4byte BattleScript_EffectMeanLook @ EFFECT_MEAN_LOOK
.4byte BattleScript_EffectNightmare @ EFFECT_NIGHTMARE
.4byte BattleScript_EffectMinimize @ EFFECT_MINIMIZE
.4byte BattleScript_EffectCurse @ EFFECT_CURSE
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_6E
.4byte BattleScript_EffectProtect @ EFFECT_PROTECT
.4byte BattleScript_EffectSpikes @ EFFECT_SPIKES
.4byte BattleScript_EffectForesight @ EFFECT_FORESIGHT
.4byte BattleScript_EffectPerishSong @ EFFECT_PERISH_SONG
.4byte BattleScript_EffectSandstorm @ EFFECT_SANDSTORM
.4byte BattleScript_EffectEndure @ EFFECT_ENDURE
.4byte BattleScript_EffectRollout @ EFFECT_ROLLOUT
.4byte BattleScript_EffectSwagger @ EFFECT_SWAGGER
.4byte BattleScript_EffectFuryCutter @ EFFECT_FURY_CUTTER
.4byte BattleScript_EffectAttract @ EFFECT_ATTRACT
.4byte BattleScript_EffectReturn @ EFFECT_RETURN
.4byte BattleScript_EffectPresent @ EFFECT_PRESENT
.4byte BattleScript_EffectFrustration @ EFFECT_FRUSTRATION
.4byte BattleScript_EffectSafeguard @ EFFECT_SAFEGUARD
.4byte BattleScript_EffectThawHit @ EFFECT_THAW_HIT
.4byte BattleScript_EffectMagnitude @ EFFECT_MAGNITUDE
.4byte BattleScript_EffectBatonPass @ EFFECT_BATON_PASS
.4byte BattleScript_EffectHit @ EFFECT_PURSUIT
.4byte BattleScript_EffectRapidSpin @ EFFECT_RAPID_SPIN
.4byte BattleScript_EffectSonicboom @ EFFECT_SONICBOOM
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_83
.4byte BattleScript_EffectMorningSun @ EFFECT_MORNING_SUN
.4byte BattleScript_EffectSynthesis @ EFFECT_SYNTHESIS
.4byte BattleScript_EffectMoonlight @ EFFECT_MOONLIGHT
.4byte BattleScript_EffectHiddenPower @ EFFECT_HIDDEN_POWER
.4byte BattleScript_EffectRainDance @ EFFECT_RAIN_DANCE
.4byte BattleScript_EffectSunnyDay @ EFFECT_SUNNY_DAY
.4byte BattleScript_EffectDefenseUpHit @ EFFECT_DEFENSE_UP_HIT
.4byte BattleScript_EffectAttackUpHit @ EFFECT_ATTACK_UP_HIT
.4byte BattleScript_EffectAllStatsUpHit @ EFFECT_ALL_STATS_UP_HIT
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_8D
.4byte BattleScript_EffectBellyDrum @ EFFECT_BELLY_DRUM
.4byte BattleScript_EffectPsychUp @ EFFECT_PSYCH_UP
.4byte BattleScript_EffectMirrorCoat @ EFFECT_MIRROR_COAT
.4byte BattleScript_EffectSkullBash @ EFFECT_SKULL_BASH
.4byte BattleScript_EffectTwister @ EFFECT_TWISTER
.4byte BattleScript_EffectEarthquake @ EFFECT_EARTHQUAKE
.4byte BattleScript_EffectFutureSight @ EFFECT_FUTURE_SIGHT
.4byte BattleScript_EffectGust @ EFFECT_GUST
.4byte BattleScript_EffectStomp @ EFFECT_FLINCH_MINIMIZE_HIT
2021-11-01 22:36:35 +01:00
.4byte BattleScript_EffectSolarBeam @ EFFECT_SOLAR_BEAM
.4byte BattleScript_EffectThunder @ EFFECT_THUNDER
.4byte BattleScript_EffectTeleport @ EFFECT_TELEPORT
.4byte BattleScript_EffectBeatUp @ EFFECT_BEAT_UP
.4byte BattleScript_EffectSemiInvulnerable @ EFFECT_SEMI_INVULNERABLE
.4byte BattleScript_EffectDefenseCurl @ EFFECT_DEFENSE_CURL
.4byte BattleScript_EffectSoftboiled @ EFFECT_SOFTBOILED
.4byte BattleScript_EffectFakeOut @ EFFECT_FAKE_OUT
.4byte BattleScript_EffectUproar @ EFFECT_UPROAR
.4byte BattleScript_EffectStockpile @ EFFECT_STOCKPILE
.4byte BattleScript_EffectSpitUp @ EFFECT_SPIT_UP
.4byte BattleScript_EffectSwallow @ EFFECT_SWALLOW
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_A3
.4byte BattleScript_EffectHail @ EFFECT_HAIL
.4byte BattleScript_EffectTorment @ EFFECT_TORMENT
.4byte BattleScript_EffectFlatter @ EFFECT_FLATTER
.4byte BattleScript_EffectWillOWisp @ EFFECT_WILL_O_WISP
.4byte BattleScript_EffectMemento @ EFFECT_MEMENTO
.4byte BattleScript_EffectFacade @ EFFECT_FACADE
.4byte BattleScript_EffectFocusPunch @ EFFECT_FOCUS_PUNCH
.4byte BattleScript_EffectSmellingsalt @ EFFECT_SMELLINGSALT
.4byte BattleScript_EffectFollowMe @ EFFECT_FOLLOW_ME
.4byte BattleScript_EffectNaturePower @ EFFECT_NATURE_POWER
.4byte BattleScript_EffectCharge @ EFFECT_CHARGE
.4byte BattleScript_EffectTaunt @ EFFECT_TAUNT
.4byte BattleScript_EffectHelpingHand @ EFFECT_HELPING_HAND
.4byte BattleScript_EffectTrick @ EFFECT_TRICK
.4byte BattleScript_EffectRolePlay @ EFFECT_ROLE_PLAY
.4byte BattleScript_EffectWish @ EFFECT_WISH
.4byte BattleScript_EffectAssist @ EFFECT_ASSIST
.4byte BattleScript_EffectIngrain @ EFFECT_INGRAIN
.4byte BattleScript_EffectSuperpower @ EFFECT_SUPERPOWER
.4byte BattleScript_EffectMagicCoat @ EFFECT_MAGIC_COAT
.4byte BattleScript_EffectRecycle @ EFFECT_RECYCLE
.4byte BattleScript_EffectRevenge @ EFFECT_REVENGE
.4byte BattleScript_EffectBrickBreak @ EFFECT_BRICK_BREAK
.4byte BattleScript_EffectYawn @ EFFECT_YAWN
.4byte BattleScript_EffectKnockOff @ EFFECT_KNOCK_OFF
.4byte BattleScript_EffectEndeavor @ EFFECT_ENDEAVOR
.4byte BattleScript_EffectEruption @ EFFECT_ERUPTION
.4byte BattleScript_EffectSkillSwap @ EFFECT_SKILL_SWAP
.4byte BattleScript_EffectImprison @ EFFECT_IMPRISON
.4byte BattleScript_EffectRefresh @ EFFECT_REFRESH
.4byte BattleScript_EffectGrudge @ EFFECT_GRUDGE
.4byte BattleScript_EffectSnatch @ EFFECT_SNATCH
.4byte BattleScript_EffectLowKick @ EFFECT_LOW_KICK
.4byte BattleScript_EffectSecretPower @ EFFECT_SECRET_POWER
.4byte BattleScript_EffectDoubleEdge @ EFFECT_DOUBLE_EDGE
.4byte BattleScript_EffectTeeterDance @ EFFECT_TEETER_DANCE
.4byte BattleScript_EffectBurnHit @ EFFECT_BLAZE_KICK
.4byte BattleScript_EffectMudSport @ EFFECT_MUD_SPORT
.4byte BattleScript_EffectPoisonFang @ EFFECT_POISON_FANG
.4byte BattleScript_EffectWeatherBall @ EFFECT_WEATHER_BALL
.4byte BattleScript_EffectOverheat @ EFFECT_OVERHEAT
.4byte BattleScript_EffectTickle @ EFFECT_TICKLE
.4byte BattleScript_EffectCosmicPower @ EFFECT_COSMIC_POWER
.4byte BattleScript_EffectSkyUppercut @ EFFECT_SKY_UPPERCUT
.4byte BattleScript_EffectBulkUp @ EFFECT_BULK_UP
.4byte BattleScript_EffectPoisonHit @ EFFECT_POISON_TAIL
.4byte BattleScript_EffectWaterSport @ EFFECT_WATER_SPORT
.4byte BattleScript_EffectCalmMind @ EFFECT_CALM_MIND
.4byte BattleScript_EffectDragonDance @ EFFECT_DRAGON_DANCE
.4byte BattleScript_EffectCamouflage @ EFFECT_CAMOUFLAGE
BattleScript_EffectHit::
2017-11-26 11:55:17 +01:00
jumpifnotmove MOVE_SURF, BattleScript_HitFromAtkCanceler
2018-02-08 11:17:41 +01:00
jumpifnostatus3 BS_TARGET, STATUS3_UNDERWATER, BattleScript_HitFromAtkCanceler
orword gHitMarker, HITMARKER_IGNORE_UNDERWATER
2021-04-02 08:16:01 +02:00
setbyte sDMG_MULTIPLIER, 2
BattleScript_HitFromAtkCanceler::
attackcanceler
BattleScript_HitFromAccCheck::
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
BattleScript_HitFromAtkString::
attackstring
ppreduce
BattleScript_HitFromCritCalc::
critcalc
damagecalc
typecalc
adjustnormaldamage
BattleScript_HitFromAtkAnimation::
attackanimation
waitanimation
effectivenesssound
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 B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
seteffectwithchance
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
BattleScript_MoveEnd::
2019-03-30 12:37:18 +01:00
moveendall
end
BattleScript_MakeMoveMissed::
2018-01-16 22:12:38 +01:00
orbyte gMoveResultFlags, MOVE_RESULT_MISSED
BattleScript_PrintMoveMissed::
attackstring
ppreduce
BattleScript_MoveMissedPause::
pause B_WAIT_TIME_SHORT
BattleScript_MoveMissed::
effectivenesssound
resultmessage
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSleep::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_AlreadyAsleep
jumpifcantmakeasleep BattleScript_CantMakeAsleep
2018-02-08 11:17:41 +01:00
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2018-02-08 11:17:41 +01:00
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_SLEEP
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_AlreadyAsleep::
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt BS_ATTACKER
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNALREADYASLEEP
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_WasntAffected::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNWASNTAFFECTED
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_CantMakeAsleep::
pause B_WAIT_TIME_SHORT
printfromtable gUproarAwakeStringIds
waitmessage B_WAIT_TIME_LONG
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
typecalc
adjustnormaldamage
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 B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
negativedamage
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze
setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB
2017-12-02 00:03:46 +01:00
goto BattleScript_AbsorbUpdateHp
BattleScript_AbsorbLiquidOoze::
2019-08-23 14:46:21 +02:00
manipulatedamage DMG_CHANGE_SIGN
setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB_OOZE
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 gAbsorbDrainStringIds
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
BattleScript_AbsorbTryFainting::
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
tryfaintmon BS_TARGET
goto BattleScript_MoveEnd
BattleScript_EffectBurnHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_BURN
goto BattleScript_EffectHit
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
@ Below jumps to BattleScript_DampStopsExplosion if it fails (only way it can)
tryexplosion
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
typecalc
adjustnormaldamage
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 B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
2018-09-01 20:00:13 +02:00
jumpifnexttargetvalid BattleScript_ExplosionLoop
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
end
2018-09-01 20:00:13 +02:00
BattleScript_ExplosionMissed:
effectivenesssound
resultmessage
waitmessage B_WAIT_TIME_LONG
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
2018-09-01 20:00:13 +02:00
jumpifnexttargetvalid BattleScript_ExplosionLoop
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
end
2018-09-01 20:00:13 +02:00
BattleScript_PreserveMissedBitDoMoveAnim:
2018-01-16 22:12:38 +01:00
bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
attackanimation
waitanimation
2018-01-16 22:12:38 +01:00
orbyte gMoveResultFlags, MOVE_RESULT_MISSED
return
BattleScript_EffectDreamEater::
attackcanceler
2018-09-01 20:00:13 +02:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_DreamEaterNoEffect
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_DreamEaterWorked
BattleScript_DreamEaterNoEffect:
attackstring
ppreduce
waitmessage B_WAIT_TIME_LONG
goto BattleScript_WasntAffected
2018-09-01 20:00:13 +02:00
BattleScript_DreamEaterWorked:
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
typecalc
adjustnormaldamage
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 B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
negativedamage
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 B_WAIT_TIME_LONG
2018-09-01 20:00:13 +02:00
BattleScript_DreamEaterTryFaintEnd:
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
goto BattleScript_MoveEnd
BattleScript_EffectMirrorMove::
attackcanceler
attackstring
pause B_WAIT_TIME_LONG
trymirrormove
ppreduce
2018-01-16 22:12:38 +01:00
orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_MIRRORMOVEFAILED
waitmessage B_WAIT_TIME_LONG
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
BattleScript_EffectEvasionUp::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_EVASION, 1, FALSE
BattleScript_EffectStatUp::
attackcanceler
BattleScript_EffectStatUpAfterAtkCanceler::
attackstring
ppreduce
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_StatUpEnd
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpAttackAnim
pause B_WAIT_TIME_SHORT
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 B_WAIT_TIME_LONG
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
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
return
BattleScript_EffectAttackDown::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectDefenseDown::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectSpeedDown::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPEED, 1, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectAccuracyDown::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ACC, 1, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectEvasionDown::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_EVASION, 1, TRUE
BattleScript_EffectStatDown::
attackcanceler
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailedAtkStringPpReduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_StatDownEnd
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_StatDownDoAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StatDownEnd
pause B_WAIT_TIME_SHORT
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 B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
return
BattleScript_EffectHaze::
attackcanceler
attackstring
ppreduce
attackanimation
waitanimation
normalisebuffs
printstring STRINGID_STATCHANGESGONE
waitmessage B_WAIT_TIME_LONG
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
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
forcerandomswitch BattleScript_ButItFailed
BattleScript_EffectMultiHit::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
2021-04-03 18:38:07 +02:00
setmultihitcounter 0
initmultihitstring
2021-04-03 18:38:07 +02:00
setbyte sMULTIHIT_EFFECT, 0
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
copybyte cEFFECT_CHOOSER, sMULTIHIT_EFFECT
critcalc
damagecalc
typecalc
jumpifmovehadnoeffect BattleScript_MultiHitNoMoreHits
adjustnormaldamage
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 B_WAIT_TIME_LONG
printstring STRINGID_EMPTYSTRING3
2021-04-02 08:16:01 +02:00
waitmessage 1
2021-04-03 18:38:07 +02:00
addbyte sMULTIHIT_STRING + 4, 1
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 B_WAIT_TIME_SHORT
BattleScript_MultiHitPrintStrings::
resultmessage
waitmessage B_WAIT_TIME_LONG
jumpifmovehadnoeffect BattleScript_MultiHitEnd
2021-04-03 18:38:07 +02:00
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 6
printstring STRINGID_HITXTIMES
waitmessage B_WAIT_TIME_LONG
BattleScript_MultiHitEnd::
seteffectwithchance
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
2019-08-23 14:46:21 +02:00
moveendcase MOVEEND_SYNCHRONIZE_TARGET
2019-09-15 23:58:12 +02:00
moveendfrom MOVEEND_IMMUNITY_ABILITIES
end
BattleScript_EffectConversion::
attackcanceler
attackstring
ppreduce
tryconversiontypechange BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCHANGEDTYPE
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectFlinchHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_FLINCH
goto BattleScript_EffectHit
BattleScript_EffectRestoreHp::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER
attackanimation
waitanimation
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectToxic::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
jumpiftype BS_TARGET, TYPE_POISON, BattleScript_NotAffected
jumpiftype BS_TARGET, TYPE_STEEL, BattleScript_NotAffected
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2018-02-08 11:17:41 +01:00
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_TOXIC
seteffectprimary
resultmessage
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_AlreadyPoisoned::
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt BS_ATTACKER
pause B_WAIT_TIME_LONG
printstring STRINGID_PKMNALREADYPOISONED
waitmessage B_WAIT_TIME_LONG
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, B_MSG_ABILITY_PREVENTS_MOVE_STATUS
call BattleScript_PSNPrevention
goto BattleScript_MoveEnd
BattleScript_EffectPayDay::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_PAYDAY
goto BattleScript_EffectHit
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
2017-11-26 17:15:28 +01:00
jumpifcantmakeasleep BattleScript_RestCantSleep
trysetrest BattleScript_AlreadyAtFullHp
pause B_WAIT_TIME_SHORT
printfromtable gRestUsedStringIds
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
printfromtable gUproarAwakeStringIds
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_SHORT
printstring STRINGID_PKMNALREADYASLEEP2
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
printfromtable gKOFailedStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectRazorWind::
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
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_RAZOR_WIND
call BattleScriptFirstChargingTurn
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
2021-04-03 18:38:07 +02:00
setbyte sB_ANIM_TURN, 1
2018-02-08 11:17:41 +01:00
clearstatusfromeffect BS_ATTACKER
orword gHitMarker, HITMARKER_NO_PPDEDUCT
2017-11-26 11:55:17 +01:00
jumpifnotmove MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_FLINCH
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 B_WAIT_TIME_LONG
return
BattleScript_EffectSuperFang::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
2018-01-16 22:12:38 +01:00
bicbyte 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-01-16 22:12:38 +01:00
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
2017-11-25 21:11:20 +01:00
setword gBattleMoveDamage, 40
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectTrap::
2017-11-26 17:15:28 +01:00
jumpifnotmove MOVE_WHIRLPOOL, BattleScript_DoWrapEffect
2018-02-08 11:17:41 +01:00
jumpifnostatus3 BS_TARGET, STATUS3_UNDERWATER, BattleScript_DoWrapEffect
orword gHitMarker, HITMARKER_IGNORE_UNDERWATER
2021-04-02 08:16:01 +02:00
setbyte sDMG_MULTIPLIER, 2
2017-11-26 17:15:28 +01:00
BattleScript_DoWrapEffect::
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
2021-04-03 18:38:07 +02:00
setmultihitcounter 2
initmultihitstring
2021-04-03 18:38:07 +02:00
setbyte sMULTIHIT_EFFECT, 0
goto BattleScript_MultiHitLoop
BattleScript_EffectRecoilIfMiss::
attackcanceler
2017-12-02 00:03:46 +01:00
accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE
goto BattleScript_HitFromAtkString
2017-12-02 00:03:46 +01:00
BattleScript_MoveMissedDoDamage::
attackstring
ppreduce
pause B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd
printstring STRINGID_PKMNCRASHED
waitmessage B_WAIT_TIME_LONG
damagecalc
typecalc
adjustnormaldamage
2019-09-15 23:58:12 +02:00
manipulatedamage DMG_RECOIL_FROM_MISS
2018-01-16 22:12:38 +01:00
bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
2018-01-16 22:12:38 +01:00
orbyte gMoveResultFlags, MOVE_RESULT_MISSED
goto BattleScript_MoveEnd
BattleScript_EffectMist::
attackcanceler
attackstring
ppreduce
setmist
attackanimation
waitanimation
printfromtable gMistUsedStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
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 B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectRecoil::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_RECOIL_25 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
2017-11-26 11:55:17 +01:00
jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit
2018-10-06 09:37:52 +02:00
incrementgamestat GAME_STAT_USED_STRUGGLE
goto BattleScript_EffectHit
BattleScript_EffectConfuse::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_AlreadyConfused
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2018-02-08 11:17:41 +01:00
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CONFUSION
seteffectprimary
resultmessage
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_AlreadyConfused::
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt BS_ATTACKER
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNALREADYCONFUSED
waitmessage B_WAIT_TIME_LONG
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_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_EffectSpecialDefenseUp2::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPDEF, 2, FALSE
goto BattleScript_EffectStatUp
BattleScript_EffectTransform::
attackcanceler
attackstring
ppreduce
transformdataexecution
attackanimation
waitanimation
printfromtable gTransformUsedStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectAttackDown2::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 2, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectDefenseDown2::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 2, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectSpeedDown2::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPEED, 2, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectSpecialDefenseDown2::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPDEF, 2, TRUE
goto BattleScript_EffectStatDown
BattleScript_EffectReflect::
attackcanceler
attackstring
ppreduce
setreflect
2017-11-26 17:15:28 +01:00
BattleScript_PrintReflectLightScreenSafeguardString::
attackanimation
waitanimation
printfromtable gReflectLightScreenSafeguardStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectPoison::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
jumpiftype BS_TARGET, TYPE_POISON, BattleScript_NotAffected
jumpiftype BS_TARGET, TYPE_STEEL, BattleScript_NotAffected
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2018-02-08 11:17:41 +01:00
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_POISON
seteffectprimary
resultmessage
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectParalyze::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_LIMBER, BattleScript_LimberProtected
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, 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
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2018-02-08 11:17:41 +01:00
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_PARALYSIS
seteffectprimary
resultmessage
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_AlreadyParalyzed::
2018-11-11 18:33:16 +01:00
setalreadystatusedmoveattempt BS_ATTACKER
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNISALREADYPARALYZED
waitmessage B_WAIT_TIME_LONG
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, B_MSG_ABILITY_PREVENTS_MOVE_STATUS
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_EffectAccuracyDownHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_ACC_MINUS_1
goto BattleScript_EffectHit
BattleScript_EffectSkyAttack::
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
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_SKY_ATTACK
call BattleScriptFirstChargingTurn
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
2018-02-08 00:35:13 +01:00
setbyte sMULTIHIT_EFFECT, MOVE_EFFECT_POISON
attackstring
ppreduce
2021-04-03 18:38:07 +02:00
setmultihitcounter 2
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
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SUBSTITUTE_FAILED, BattleScript_SubstituteAnim
pause B_WAIT_TIME_SHORT
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::
2021-05-07 02:49:04 +02:00
printfromtable gSubstituteUsedStringIds
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_SHORT
printstring STRINGID_PKMNHASSUBSTITUTE
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
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-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
mimicattackcopy BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNLEARNEDMOVE2
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectMetronome::
attackcanceler
attackstring
pause B_WAIT_TIME_SHORT
attackanimation
waitanimation
2021-04-03 18:38:07 +02:00
setbyte sB_ANIM_TURN, 0
setbyte sB_ANIM_TARGETS_HIT, 0
metronome
2017-11-26 01:19:57 +01:00
BattleScript_EffectLeechSeed::
attackcanceler
attackstring
pause B_WAIT_TIME_SHORT
ppreduce
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
2017-11-26 17:15:28 +01:00
accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE
BattleScript_DoLeechSeed::
setseeded
attackanimation
waitanimation
printfromtable gLeechSeedStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSplash::
attackcanceler
attackstring
ppreduce
attackanimation
waitanimation
2018-10-06 09:37:52 +02:00
incrementgamestat GAME_STAT_USED_SPLASH
printstring STRINGID_BUTNOTHINGHAPPENED
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectDisable::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
disablelastusedattack BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNMOVEWASDISABLED
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectLevelDamage::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
2018-01-16 22:12:38 +01:00
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
dmgtolevel
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectPsywave::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
2018-01-16 22:12:38 +01:00
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
psywavedamageeffect
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectCounter::
attackcanceler
counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc2
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectEncore::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
trysetencore BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNGOTENCORE
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSnore::
attackcanceler
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 B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectLockOn::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
setalwayshitflag
attackanimation
waitanimation
printstring STRINGID_PKMNTOOKAIM
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSketch::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
copymovepermanently BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSKETCHEDMOVE
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSleepTalk::
attackcanceler
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 B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
goto BattleScript_ButItFailed
2017-11-26 01:19:57 +01:00
BattleScript_SleepTalkUsingMove::
attackanimation
waitanimation
2021-04-03 18:38:07 +02:00
setbyte sB_ANIM_TURN, 0
setbyte sB_ANIM_TARGETS_HIT, 0
2018-09-22 19:08:41 +02:00
jumptocalledmove TRUE
BattleScript_EffectDestinyBond::
attackcanceler
attackstring
ppreduce
setdestinybond
attackanimation
waitanimation
printstring STRINGID_PKMNTRYINGTOTAKEFOE
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectFlail::
remaininghptopower
goto BattleScript_EffectHit
BattleScript_EffectSpite::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
tryspiteppreduce BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNREDUCEDPP
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectHealBell::
attackcanceler
attackstring
ppreduce
healpartystatus
waitstate
attackanimation
waitanimation
printfromtable gPartyStatusHealStringIds
waitmessage B_WAIT_TIME_LONG
2017-11-26 17:15:28 +01:00
jumpifnotmove MOVE_HEAL_BELL, BattleScript_PartyHealEnd
jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, B_MSG_BELL_SOUNDPROOF_ATTACKER, BattleScript_CheckHealBellMon2Unaffected
printstring STRINGID_PKMNSXBLOCKSY
waitmessage B_WAIT_TIME_LONG
2017-11-26 17:15:28 +01:00
BattleScript_CheckHealBellMon2Unaffected::
jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, B_MSG_BELL_SOUNDPROOF_PARTNER, BattleScript_PartyHealEnd
printstring STRINGID_PKMNSXBLOCKSY2
waitmessage B_WAIT_TIME_LONG
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
2021-04-03 18:38:07 +02:00
sethword sTRIPLE_KICK_POWER, 0
initmultihitstring
2021-04-03 18:38:07 +02:00
setmultihit 3
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
2021-04-03 18:38:07 +02:00
addbyte sMULTIHIT_STRING + 4, 1
copyhword gDynamicBasePower, sTRIPLE_KICK_POWER
critcalc
damagecalc
typecalc
adjustnormaldamage
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 B_WAIT_TIME_LONG
printstring STRINGID_EMPTYSTRING3
2021-04-02 08:16:01 +02:00
waitmessage 1
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 B_WAIT_TIME_SHORT
2021-04-03 18:38:07 +02:00
jumpifbyte CMP_EQUAL, sMULTIHIT_STRING + 4, 0, BattleScript_TripleKickPrintStrings
2018-01-16 22:12:38 +01:00
bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
BattleScript_TripleKickPrintStrings::
resultmessage
waitmessage B_WAIT_TIME_LONG
2021-04-03 18:38:07 +02:00
jumpifbyte CMP_EQUAL, sMULTIHIT_STRING + 4, 0, BattleScript_TripleKickEnd
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TripleKickEnd
2021-04-03 18:38:07 +02:00
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 6
printstring STRINGID_HITXTIMES
waitmessage B_WAIT_TIME_LONG
BattleScript_TripleKickEnd::
seteffectwithchance
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
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
BattleScript_EffectMeanLook::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
attackanimation
waitanimation
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE
seteffectprimary
printstring STRINGID_TARGETCANTESCAPENOW
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectNightmare::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus2 BS_TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_SLEEP, 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 B_WAIT_TIME_LONG
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::
2018-02-08 11:17:41 +01:00
jumpiftype2 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
2021-04-03 18:38:07 +02:00
setbyte sB_ANIM_TURN, 1
attackanimation
waitanimation
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPEED, 1, TRUE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CurseTryAttack
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
2017-11-26 01:19:57 +01:00
BattleScript_CurseTryAttack::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CurseTryDefense
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CurseTryDefense::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CurseEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
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
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
cursetarget BattleScript_ButItFailed
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2021-04-03 18:38:07 +02:00
setbyte sB_ANIM_TURN, 0
attackanimation
waitanimation
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNLAIDCURSE
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_EffectProtect::
BattleScript_EffectEndure::
attackcanceler
attackstring
ppreduce
setprotectlike
attackanimation
waitanimation
printfromtable gProtectLikeUsedStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSpikes::
attackcanceler
trysetspikes BattleScript_ButItFailedAtkStringPpReduce
attackstring
ppreduce
attackanimation
waitanimation
printstring STRINGID_SPIKESSCATTERED
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectForesight::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setforesight
attackanimation
waitanimation
printstring STRINGID_PKMNIDENTIFIED
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectPerishSong::
attackcanceler
attackstring
ppreduce
trysetperishsong BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_FAINTINTHREE
waitmessage B_WAIT_TIME_LONG
2021-04-03 18:38:07 +02:00
setbyte sBATTLER, 0
BattleScript_PerishSongLoop::
2018-02-08 11:17:41 +01:00
jumpifability BS_SCRIPTING, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected
BattleScript_PerishSongLoopIncrement::
2021-04-03 18:38:07 +02:00
addbyte sBATTLER, 1
2018-10-27 00:04:18 +02:00
jumpifbytenotequal sBATTLER, gBattlersCount, BattleScript_PerishSongLoop
goto BattleScript_MoveEnd
BattleScript_PerishSongNotAffected::
printstring STRINGID_PKMNSXBLOCKSY2
waitmessage B_WAIT_TIME_LONG
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::
typecalc2
rolloutdamagecalculation
goto BattleScript_HitFromCritCalc
BattleScript_EffectSwagger::
attackcanceler
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, 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
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_SwaggerTryConfuse
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_SwaggerTryConfuse
setgraphicalstatchangevalues
2018-02-08 11:17:41 +01:00
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-11-26 17:15:28 +01:00
BattleScript_SwaggerTryConfuse::
2018-02-08 11:17:41 +01:00
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CONFUSION
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_EffectFuryCutter::
attackcanceler
attackstring
ppreduce
2017-11-26 17:15:28 +01:00
accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE
BattleScript_FuryCutterHit::
furycuttercalc
critcalc
damagecalc
typecalc
2017-12-02 00:03:46 +01:00
jumpifmovehadnoeffect BattleScript_FuryCutterHit
adjustnormaldamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectAttract::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
tryinfatuating BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNFELLINLOVE
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectReturn::
BattleScript_EffectFrustration::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
2021-03-25 18:26:22 +01:00
friendshiptodamagecalculation
goto BattleScript_HitFromAtkString
BattleScript_EffectPresent::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
presentdamagecalculation
2017-11-25 21:32:17 +01:00
BattleScript_EffectSafeguard::
attackcanceler
attackstring
ppreduce
setsafeguard
2017-11-26 17:15:28 +01:00
goto BattleScript_PrintReflectLightScreenSafeguardString
BattleScript_EffectThawHit::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_BURN
goto BattleScript_EffectHit
BattleScript_EffectMagnitude::
attackcanceler
attackstring
ppreduce
selectfirstvalidtarget
magnitudedamagecalculation
pause B_WAIT_TIME_SHORT
printstring STRINGID_MAGNITUDESTRENGTH
waitmessage B_WAIT_TIME_LONG
2017-12-03 00:47:21 +01:00
goto BattleScript_HitsAllWithUndergroundBonusLoop
BattleScript_EffectBatonPass::
attackcanceler
attackstring
ppreduce
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
2019-09-15 23:58:12 +02:00
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
attackanimation
waitanimation
2021-04-03 18:38:07 +02:00
openpartyscreen BS_ATTACKER, BattleScript_ButItFailed
2018-02-08 11:17:41 +01:00
switchoutabilities BS_ATTACKER
waitstate
2021-04-03 18:38:07 +02:00
switchhandleorder BS_ATTACKER, 2
2018-02-08 11:17:41 +01:00
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::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectSonicboom::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc
2018-01-16 22:12:38 +01:00
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
2017-11-25 21:11:20 +01:00
setword gBattleMoveDamage, 20
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectMorningSun::
BattleScript_EffectSynthesis::
BattleScript_EffectMoonlight::
attackcanceler
attackstring
ppreduce
recoverbasedonsunlight BattleScript_AlreadyAtFullHp
goto BattleScript_PresentHealTarget
BattleScript_EffectHiddenPower::
hiddenpowercalc
goto BattleScript_EffectHit
BattleScript_EffectRainDance::
attackcanceler
attackstring
ppreduce
setrain
2017-11-26 17:15:28 +01:00
BattleScript_MoveWeatherChange::
attackanimation
waitanimation
printfromtable gMoveWeatherChangeStringIds
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectPsychUp::
attackcanceler
attackstring
ppreduce
copyfoestats BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNCOPIEDSTATCHANGES
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectMirrorCoat::
attackcanceler
mirrorcoatdamagecalculator BattleScript_ButItFailedAtkStringPpReduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
typecalc2
adjustsetdamage
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
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_SKULL_BASH
call BattleScriptFirstChargingTurn
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_SkullBashEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_SkullBashEnd
setgraphicalstatchangevalues
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-11-26 17:15:28 +01:00
BattleScript_SkullBashEnd::
goto BattleScript_MoveEnd
BattleScript_EffectTwister::
2018-02-08 11:17:41 +01:00
jumpifnostatus3 BS_TARGET, STATUS3_ON_AIR, BattleScript_FlinchEffect
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
2021-04-02 08:16:01 +02:00
setbyte sDMG_MULTIPLIER, 2
2017-11-26 17:15:28 +01:00
BattleScript_FlinchEffect::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_FLINCH
goto BattleScript_EffectHit
BattleScript_EffectEarthquake::
attackcanceler
attackstring
ppreduce
selectfirstvalidtarget
2017-12-03 00:47:21 +01:00
BattleScript_HitsAllWithUndergroundBonusLoop::
movevaluescleanup
2018-02-08 11:17:41 +01:00
jumpifnostatus3 BS_TARGET, STATUS3_UNDERGROUND, BattleScript_HitsAllNoUndergroundBonus
orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND
2021-04-02 08:16:01 +02:00
setbyte sDMG_MULTIPLIER, 2
2017-12-03 00:47:21 +01:00
goto BattleScript_DoHitAllWithUndergroundBonus
BattleScript_HitsAllNoUndergroundBonus::
bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND
2021-04-02 08:16:01 +02:00
setbyte sDMG_MULTIPLIER, 1
2017-12-03 00:47:21 +01:00
BattleScript_DoHitAllWithUndergroundBonus::
accuracycheck BattleScript_HitAllWithUndergroundBonusMissed, ACC_CURR_MOVE
critcalc
damagecalc
typecalc
adjustnormaldamage
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 B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
printstring STRINGID_EMPTYSTRING3
2021-04-02 08:16:01 +02:00
waitmessage 1
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
2017-12-03 00:47:21 +01:00
jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
end
2017-12-03 00:47:21 +01:00
BattleScript_HitAllWithUndergroundBonusMissed::
pause B_WAIT_TIME_SHORT
typecalc
effectivenesssound
resultmessage
waitmessage B_WAIT_TIME_LONG
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
2017-12-03 00:47:21 +01:00
jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
end
BattleScript_EffectFutureSight::
attackcanceler
attackstring
ppreduce
trysetfutureattack BattleScript_ButItFailed
attackanimation
waitanimation
printfromtable gFutureMoveUsedStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectGust::
2018-02-08 11:17:41 +01:00
jumpifnostatus3 BS_TARGET, STATUS3_ON_AIR, BattleScript_EffectHit
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
2021-04-02 08:16:01 +02:00
setbyte sDMG_MULTIPLIER, 2
goto BattleScript_EffectHit
BattleScript_EffectStomp::
2018-02-08 11:17:41 +01:00
jumpifnostatus3 BS_TARGET, STATUS3_MINIMIZED, BattleScript_FlinchEffect
2021-04-02 08:16:01 +02:00
setbyte sDMG_MULTIPLIER, 2
2017-11-26 17:15:28 +01:00
goto BattleScript_FlinchEffect
2021-11-01 22:36:35 +01:00
BattleScript_EffectSolarBeam::
jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarBeamDecideTurn
jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarBeamDecideTurn
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN, BattleScript_SolarBeamOnFirstTurn
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
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_SOLAR_BEAM
call BattleScriptFirstChargingTurn
goto BattleScript_MoveEnd
2021-11-01 22:36:35 +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
BattleScript_EffectThunder::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_PARALYSIS
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
goto BattleScript_EffectHit
BattleScript_EffectTeleport::
attackcanceler
attackstring
ppreduce
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed
2018-02-08 11:17:41 +01:00
getifcantrunfrombattle BS_ATTACKER
jumpifbyte CMP_EQUAL, gBattleCommunication, BATTLE_RUN_FORBIDDEN, BattleScript_ButItFailed
jumpifbyte CMP_EQUAL, gBattleCommunication, BATTLE_RUN_FAILURE, BattleScript_PrintAbilityMadeIneffective
attackanimation
waitanimation
printstring STRINGID_PKMNFLEDFROMBATTLE
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_SHORT
ppreduce
2021-04-03 18:38:07 +02:00
setbyte gBattleCommunication, 0
BattleScript_BeatUpLoop::
movevaluescleanup
trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed
printstring STRINGID_PKMNATTACK
critcalc
2021-04-03 18:38:07 +02:00
jumpifbyte CMP_NOT_EQUAL, gCritMultiplier, 2, BattleScript_BeatUpAttack
2019-08-23 14:46:21 +02:00
manipulatedamage DMG_DOUBLED
BattleScript_BeatUpAttack::
adjustnormaldamage
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 B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
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
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_DIG
goto BattleScript_FirstTurnSemiInvulnerable
BattleScript_FirstTurnBounce::
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_BOUNCE
goto BattleScript_FirstTurnSemiInvulnerable
BattleScript_FirstTurnDive::
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_DIVE
goto BattleScript_FirstTurnSemiInvulnerable
BattleScript_FirstTurnFly::
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_FLY
BattleScript_FirstTurnSemiInvulnerable::
call BattleScriptFirstChargingTurn
setsemiinvulnerablebit
goto BattleScript_MoveEnd
BattleScript_SecondTurnSemiInvulnerable::
attackcanceler
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CHARGING
2021-04-03 18:38:07 +02:00
setbyte sB_ANIM_TURN, 1
2018-02-08 11:17:41 +01:00
clearstatusfromeffect BS_ATTACKER
orword gHitMarker, HITMARKER_NO_PPDEDUCT
2017-11-26 17:15:28 +01:00
jumpifnotmove MOVE_BOUNCE, BattleScript_SemiInvulnerableTryHit
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_PARALYSIS
2017-11-26 17:15:28 +01:00
BattleScript_SemiInvulnerableTryHit::
accuracycheck BattleScript_SemiInvulnerableMiss, ACC_CURR_MOVE
clearsemiinvulnerablebit
goto BattleScript_HitFromAtkString
BattleScript_SemiInvulnerableMiss::
clearsemiinvulnerablebit
goto BattleScript_PrintMoveMissed
BattleScript_EffectDefenseCurl::
attackcanceler
attackstring
ppreduce
setdefensecurlbit
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_DefenseCurlDoStatUpAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, 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 B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_AlreadyAtFullHp::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNHPFULL
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectFakeOut::
attackcanceler
jumpifnotfirstturn BattleScript_ButItFailedAtkStringPpReduce
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_FLINCH | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_ButItFailedAtkStringPpReduce::
attackstring
BattleScript_ButItFailedPpReduce::
ppreduce
BattleScript_ButItFailed::
pause B_WAIT_TIME_SHORT
2018-01-16 22:12:38 +01:00
orbyte gMoveResultFlags, MOVE_RESULT_FAILED
resultmessage
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_NotAffected::
pause B_WAIT_TIME_SHORT
2018-01-16 22:12:38 +01:00
orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
resultmessage
waitmessage B_WAIT_TIME_LONG
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::
nop
goto BattleScript_HitFromCritCalc
BattleScript_EffectStockpile::
attackcanceler
attackstring
ppreduce
stockpile
attackanimation
waitanimation
printfromtable gStockpileUsedStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSpitUp::
attackcanceler
2021-04-02 08:12:46 +02:00
jumpifbyte CMP_EQUAL, cMISS_TYPE, B_MSG_PROTECTED, BattleScript_SpitUpFailProtect
attackstring
ppreduce
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
stockpiletobasedamage BattleScript_SpitUpFail
typecalc
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_SpitUpFail::
pause B_WAIT_TIME_SHORT
printstring STRINGID_FAILEDTOSPITUP
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
2021-04-02 08:12:46 +02:00
BattleScript_SpitUpFailProtect::
attackstring
ppreduce
pause B_WAIT_TIME_LONG
stockpiletobasedamage BattleScript_SpitUpFail
resultmessage
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSwallow::
attackcanceler
attackstring
ppreduce
stockpiletohpheal BattleScript_SwallowFail
goto BattleScript_PresentHealTarget
BattleScript_SwallowFail::
pause B_WAIT_TIME_SHORT
printfromtable gSwallowFailStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectHail::
attackcanceler
attackstring
ppreduce
sethail
2017-11-26 17:15:28 +01:00
goto BattleScript_MoveWeatherChange
BattleScript_EffectTorment::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
settorment BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSUBJECTEDTOTORMENT
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectFlatter::
attackcanceler
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, 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
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_FlatterTryConfuse
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_FlatterTryConfuse
setgraphicalstatchangevalues
2018-02-08 11:17:41 +01:00
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
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
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_CONFUSION
seteffectprimary
goto BattleScript_MoveEnd
BattleScript_EffectWillOWisp::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_BURN, BattleScript_AlreadyBurned
jumpiftype BS_TARGET, TYPE_FIRE, BattleScript_NotAffected
jumpifability BS_TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
2018-02-08 11:17:41 +01:00
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, 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, B_MSG_ABILITY_PREVENTS_MOVE_STATUS
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 B_WAIT_TIME_SHORT
printstring STRINGID_PKMNALREADYHASBURN
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectMemento::
attackcanceler
jumpifbyte CMP_EQUAL, cMISS_TYPE, B_MSG_PROTECTED, BattleScript_MementoTargetProtect
attackstring
ppreduce
trymemento BattleScript_ButItFailed
setatkhptozero
attackanimation
waitanimation
2018-07-29 15:33:16 +02:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectMementoPrintNoEffect
setbyte sSTAT_ANIM_PLAYED, FALSE
2019-10-26 17:53:00 +02:00
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO | STAT_CHANGE_MULTIPLE_STATS
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
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMementoTrySpAtk
@ Greater than B_MSG_DEFENDER_STAT_FELL is checking if the stat cannot decrease
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_EffectMementoTrySpAtk
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
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
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMementoTryFaint
@ Greater than B_MSG_DEFENDER_STAT_FELL is checking if the stat cannot decrease
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_EffectMementoTryFaint
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
2018-07-29 15:33:16 +02:00
BattleScript_EffectMementoTryFaint:
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
goto BattleScript_MoveEnd
2018-07-29 15:33:16 +02:00
BattleScript_EffectMementoPrintNoEffect:
printstring STRINGID_BUTNOEFFECT
waitmessage B_WAIT_TIME_LONG
2018-07-29 15:33:16 +02:00
goto BattleScript_EffectMementoTryFaint
@ If the target is protected there's no need to check the target's stats or animate, the user will just faint
BattleScript_MementoTargetProtect:
attackstring
ppreduce
trymemento BattleScript_MementoTargetProtectEnd
BattleScript_MementoTargetProtectEnd:
setatkhptozero
pause B_WAIT_TIME_LONG
effectivenesssound
resultmessage
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_EffectFacade::
2018-02-08 11:17:41 +01:00
jumpifstatus BS_ATTACKER, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, BattleScript_FacadeDoubleDmg
goto BattleScript_EffectHit
BattleScript_FacadeDoubleDmg::
2021-04-02 08:16:01 +02:00
setbyte sDMG_MULTIPLIER, 2
goto BattleScript_EffectHit
BattleScript_EffectFocusPunch::
attackcanceler
jumpifnodamage BattleScript_HitFromAccCheck
ppreduce
printstring STRINGID_PKMNLOSTFOCUS
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSmellingsalt::
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_REMOVE_PARALYSIS | MOVE_EFFECT_CERTAIN
2018-02-08 11:17:41 +01:00
jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_SmellingsaltDoubleDmg
goto BattleScript_EffectHit
2018-09-01 20:00:13 +02:00
BattleScript_SmellingsaltDoubleDmg:
2021-04-02 08:16:01 +02:00
setbyte sDMG_MULTIPLIER, 2
goto BattleScript_EffectHit
BattleScript_EffectFollowMe::
attackcanceler
attackstring
ppreduce
setforcedtarget
attackanimation
waitanimation
printstring STRINGID_PKMNCENTERATTENTION
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectNaturePower::
attackcanceler
attackstring
pause B_WAIT_TIME_SHORT
callterrainattack
printstring STRINGID_NATUREPOWERTURNEDINTO
waitmessage B_WAIT_TIME_LONG
return
BattleScript_EffectCharge::
attackcanceler
attackstring
ppreduce
setcharge
attackanimation
waitanimation
printstring STRINGID_PKMNCHARGINGPOWER
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectTaunt::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
settaunt BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNFELLFORTAUNT
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectHelpingHand::
attackcanceler
attackstring
ppreduce
trysethelpinghand BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNREADYTOHELP
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectTrick::
attackcanceler
attackstring
ppreduce
2018-02-08 11:17:41 +01:00
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
tryswapitems BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSWITCHEDITEMS
waitmessage B_WAIT_TIME_LONG
printfromtable gItemSwapStringIds
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectWish::
attackcanceler
attackstring
ppreduce
2021-04-03 18:38:07 +02:00
trywish 0, BattleScript_ButItFailed
attackanimation
waitanimation
goto BattleScript_MoveEnd
BattleScript_EffectAssist::
attackcanceler
attackstring
assistattackselect BattleScript_ButItFailedPpReduce
attackanimation
waitanimation
2021-04-03 18:38:07 +02:00
setbyte sB_ANIM_TURN, 0
setbyte sB_ANIM_TARGETS_HIT, 0
2018-09-22 19:08:41 +02:00
jumptocalledmove TRUE
BattleScript_EffectIngrain::
attackcanceler
attackstring
ppreduce
trysetroots BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNPLANTEDROOTS
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
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
BattleScript_EffectMagicCoat::
attackcanceler
trysetmagiccoat BattleScript_ButItFailedAtkStringPpReduce
attackstring
ppreduce
attackanimation
waitanimation
printstring STRINGID_PKMNSHROUDEDITSELF
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectRecycle::
attackcanceler
attackstring
ppreduce
tryrecycleitem BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_XFOUNDONEY
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectRevenge::
doubledamagedealtifdamaged
goto BattleScript_EffectHit
BattleScript_EffectBrickBreak::
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
removelightscreenreflect
critcalc
damagecalc
typecalc
adjustnormaldamage
2021-04-03 18:38:07 +02:00
jumpifbyte CMP_EQUAL, sB_ANIM_TURN, 0, BattleScript_BrickBreakAnim
2018-01-16 22:12:38 +01:00
bicbyte gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE
2017-12-02 00:03:46 +01:00
BattleScript_BrickBreakAnim::
attackanimation
waitanimation
2021-04-03 18:38:07 +02:00
jumpifbyte CMP_LESS_THAN, sB_ANIM_TURN, 2, BattleScript_BrickBreakDoHit
printstring STRINGID_THEWALLSHATTERED
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
BattleScript_BrickBreakDoHit::
typecalc2
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 B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
seteffectwithchance
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
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
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
jumpifcantmakeasleep BattleScript_ButItFailed
setyawn BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNWASMADEDROWSY
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_PrintBankAbilityMadeIneffective::
2018-10-27 00:04:18 +02:00
copybyte sBATTLER, sBATTLER_WITH_ABILITY
BattleScript_PrintAbilityMadeIneffective::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXMADEITINEFFECTIVE
waitmessage B_WAIT_TIME_LONG
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-01-16 22:12:38 +01:00
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
2017-11-25 21:32:17 +01:00
copyword gBattleMoveDamage, gHpDealt
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
BattleScript_EffectEruption::
scaledamagebyhealthratio
goto BattleScript_EffectHit
BattleScript_EffectSkillSwap::
attackcanceler
attackstring
ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
tryswapabilities BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSWAPPEDABILITIES
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectImprison::
attackcanceler
attackstring
ppreduce
tryimprison BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSEALEDOPPONENTMOVE
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectRefresh::
attackcanceler
attackstring
ppreduce
cureifburnedparalysedorpoisoned BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSTATUSNORMAL
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
updatestatusicon BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_EffectGrudge::
attackcanceler
attackstring
ppreduce
trysetgrudge BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNWANTSGRUDGE
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSnatch::
attackcanceler
trysetsnatch BattleScript_ButItFailedAtkStringPpReduce
attackstring
ppreduce
attackanimation
waitanimation
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNWAITSFORTARGET
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectLowKick::
attackcanceler
attackstring
ppreduce
weightdamagecalculation
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
goto BattleScript_HitFromCritCalc
BattleScript_EffectSecretPower::
getsecretpowereffect
goto BattleScript_EffectHit
BattleScript_EffectDoubleEdge::
2018-09-01 20:00:13 +02:00
setmoveeffect MOVE_EFFECT_RECOIL_33 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
goto BattleScript_EffectHit
BattleScript_EffectTeeterDance::
attackcanceler
attackstring
ppreduce
2021-04-03 18:38:07 +02:00
setbyte gBattlerTarget, 0
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
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents
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
2018-02-08 11:17:41 +01:00
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_TeeterDanceSafeguardProtected
attackanimation
waitanimation
seteffectprimary
resultmessage
waitmessage B_WAIT_TIME_LONG
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::
2021-04-03 18:38:07 +02:00
addbyte gBattlerTarget, 1
2018-02-06 23:09:39 +01:00
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TeeterDanceLoop
end
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceOwnTempoPrevents::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceSafeguardProtected::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNUSEDSAFEGUARD
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceSubstitutePrevents::
pause B_WAIT_TIME_SHORT
printstring STRINGID_BUTITFAILED
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_SHORT
printstring STRINGID_PKMNALREADYCONFUSED
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
goto BattleScript_TeeterDanceDoMoveEndIncrement
2017-12-02 00:03:46 +01:00
BattleScript_TeeterDanceMissed::
resultmessage
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectPoisonFang::
2018-02-08 00:35:13 +01:00
setmoveeffect MOVE_EFFECT_TOXIC
goto BattleScript_EffectHit
BattleScript_EffectWeatherBall::
setweatherballtype
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_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-10-26 17:53:00 +02:00
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
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
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TickleTryLowerDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_TickleTryLowerDef
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
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
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TickleEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_TickleEnd
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
2017-11-26 17:15:28 +01:00
BattleScript_TickleEnd::
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_CantLowerMultipleStats::
pause B_WAIT_TIME_SHORT
2018-01-16 22:12:38 +01:00
orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_STATSWONTDECREASE2
waitmessage B_WAIT_TIME_LONG
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
2021-04-03 18:38:07 +02:00
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CosmicPowerTrySpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CosmicPowerTrySpDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-11-26 17:15:28 +01:00
BattleScript_CosmicPowerTrySpDef::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CosmicPowerEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CosmicPowerEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-11-26 17:15:28 +01:00
BattleScript_CosmicPowerEnd::
goto BattleScript_MoveEnd
BattleScript_EffectSkyUppercut::
orword gHitMarker, HITMARKER_IGNORE_ON_AIR
goto BattleScript_EffectHit
BattleScript_EffectBulkUp::
attackcanceler
attackstring
ppreduce
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
2021-04-03 18:38:07 +02:00
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_BulkUpTryDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_BulkUpTryDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-11-26 17:15:28 +01:00
BattleScript_BulkUpTryDef::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_BulkUpEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_BulkUpEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
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
2021-04-03 18:38:07 +02:00
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CalmMindTrySpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CalmMindTrySpDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-11-26 17:15:28 +01:00
BattleScript_CalmMindTrySpDef::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CalmMindEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CalmMindEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-11-26 17:15:28 +01:00
BattleScript_CalmMindEnd::
goto BattleScript_MoveEnd
BattleScript_CantRaiseMultipleStats::
pause B_WAIT_TIME_SHORT
2018-01-16 22:12:38 +01:00
orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_STATSWONTINCREASE2
waitmessage B_WAIT_TIME_LONG
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
2021-04-03 18:38:07 +02:00
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_DragonDanceTrySpeed
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DragonDanceTrySpeed
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-11-26 17:15:28 +01:00
BattleScript_DragonDanceTrySpeed::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_DragonDanceEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DragonDanceEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_FaintAttacker::
2018-02-08 11:17:41 +01:00
playfaintcry BS_ATTACKER
pause B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
dofaintanimation BS_ATTACKER
cleareffectsonfaint BS_ATTACKER
printstring STRINGID_ATTACKERFAINTED
return
BattleScript_FaintTarget::
2018-02-08 11:17:41 +01:00
playfaintcry BS_TARGET
pause B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
dofaintanimation BS_TARGET
cleareffectsonfaint BS_TARGET
printstring STRINGID_TARGETFAINTED
return
2017-12-02 14:08:55 +01:00
BattleScript_GiveExp::
2021-04-03 18:38:07 +02:00
setbyte sGIVEEXP_STATE, 0
2018-02-08 11:17:41 +01:00
getexp BS_TARGET
end2
2017-12-02 14:08:55 +01:00
BattleScript_HandleFaintedMon::
checkteamslost BattleScript_LinkHandleFaintedMonMultiple
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonTryChoose
jumpifword CMP_NO_COMMON_BITS, gHitMarker, HITMARKER_PLAYER_FAINTED, BattleScript_FaintedMonTryChoose
@ Yes/No for sending out a new Pokémon if one is defeated in a wild battle
printstring STRINGID_USENEXTPKMN
2021-04-03 18:38:07 +02:00
setbyte gBattleCommunication, 0
yesnobox
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0, BattleScript_FaintedMonTryChoose
2021-10-04 16:21:03 +02:00
@ Player said no, try to run
2017-12-02 14:08:55 +01:00
jumpifplayerran BattleScript_FaintedMonEnd
printstring STRINGID_CANTESCAPE2
BattleScript_FaintedMonTryChoose::
2021-04-03 18:38:07 +02:00
openpartyscreen BS_FAINTED, BattleScript_FaintedMonEnd
switchhandleorder BS_FAINTED, 2
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonSendOutNew
jumpifbattletype BATTLE_TYPE_LINK, BattleScript_FaintedMonSendOutNew
jumpifbattletype BATTLE_TYPE_RECORDED_LINK, BattleScript_FaintedMonSendOutNew
jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_FaintedMonSendOutNew
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonSendOutNew
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_PLAYER_FAINTED, BattleScript_FaintedMonSendOutNew
jumpifbyte CMP_EQUAL, sBATTLE_STYLE, OPTIONS_BATTLE_STYLE_SET, BattleScript_FaintedMonSendOutNew
jumpifcantswitch BS_PLAYER1, BattleScript_FaintedMonSendOutNew
@ Yes/No for sending out a new Pokémon when the opponent is switching
printstring STRINGID_ENEMYABOUTTOSWITCHPKMN
2021-04-03 18:38:07 +02:00
setbyte gBattleCommunication, 0
yesnobox
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 1, BattleScript_FaintedMonSendOutNew
@ Player said yes, go to party screen (note optional flag, player may exit the menu instead)
setatktoplayer0
openpartyscreen BS_ATTACKER | PARTY_SCREEN_OPTIONAL, BattleScript_FaintedMonSendOutNew
2021-04-03 18:38:07 +02:00
switchhandleorder BS_ATTACKER, 2
jumpifbyte CMP_EQUAL, gBattleCommunication, PARTY_SIZE, BattleScript_FaintedMonSendOutNew
@ Switch Pokémon before opponent
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
2021-04-03 18:38:07 +02:00
switchinanim BS_ATTACKER, 0
waitstate
2018-02-08 11:17:41 +01:00
switchineffects BS_ATTACKER
resetsentmonsvalue
BattleScript_FaintedMonSendOutNew::
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
2021-09-24 20:30:15 +02:00
resetplayerfainted
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_LinkHandleFaintedMonMultiple::
openpartyscreen BS_FAINTED_LINK_MULTIPLE_1, BattleScript_LinkHandleFaintedMonMultipleStart
BattleScript_LinkHandleFaintedMonMultipleStart::
2021-04-03 18:38:07 +02:00
switchhandleorder BS_FAINTED, 0
openpartyscreen BS_FAINTED_LINK_MULTIPLE_2, BattleScript_LinkHandleFaintedMonMultipleEnd
2021-04-03 18:38:07 +02:00
switchhandleorder BS_FAINTED, 0
BattleScript_LinkHandleFaintedMonLoop::
2021-04-03 18:38:07 +02:00
switchhandleorder BS_FAINTED, 3
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
switchineffects BS_FAINTED_LINK_MULTIPLE_1
jumpifbytenotequal gBattlerFainted, gBattlersCount, BattleScript_LinkHandleFaintedMonLoop
BattleScript_LinkHandleFaintedMonMultipleEnd::
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 B_WAIT_TIME_LONG
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
2021-04-02 08:17:36 +02:00
jumpifhalfword CMP_EQUAL, gTrainerBattleOpponent_A, TRAINER_SECRET_BASE, BattleScript_LocalBattleLostEnd
2017-11-26 17:15:28 +01:00
BattleScript_LocalBattleLostPrintWhiteOut::
printstring STRINGID_PLAYERWHITEOUT
waitmessage B_WAIT_TIME_LONG
printstring STRINGID_PLAYERWHITEOUT2
waitmessage B_WAIT_TIME_LONG
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
2021-01-13 21:17:32 +01:00
jumpifbattletype BATTLE_TYPE_TOWER_LINK_MULTI, BattleScript_LocalBattleLostDoTrainer2WinText
2017-12-02 14:08:55 +01:00
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_FrontierLinkBattleLost::
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
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_FrontierLinkBattleLostEnd
endlinkbattle
BattleScript_FrontierLinkBattleLostEnd::
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_LinkBattleWonOrLost::
jumpifbattletype BATTLE_TYPE_BATTLE_TOWER, BattleScript_TowerLinkBattleWon
printstring STRINGID_BATTLEEND
waitmessage B_WAIT_TIME_LONG
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_LinkBattleWonOrLostWaitEnd
endlinkbattle
2017-11-26 17:15:28 +01:00
BattleScript_LinkBattleWonOrLostWaitEnd::
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_TowerLinkBattleWon::
2018-02-08 11:17:41 +01:00
playtrainerdefeatbgm BS_ATTACKER
printstring STRINGID_BATTLEEND
waitmessage B_WAIT_TIME_LONG
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
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_TowerLinkBattleWonEnd
endlinkbattle
BattleScript_TowerLinkBattleWonEnd::
waitmessage B_WAIT_TIME_LONG
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::
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_SMOKEBALL_ESCAPE
printstring STRINGID_PKMNFLEDUSINGITS
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_RanAwayUsingMonAbility::
printstring STRINGID_PKMNFLEDUSING
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_GotAwaySafely::
printstring STRINGID_GOTAWAYSAFELY
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_WildMonFled::
printstring STRINGID_WILDPKMNFLED
waitmessage B_WAIT_TIME_LONG
end2
2017-11-26 17:26:11 +01:00
BattleScript_PrintCantRunFromTrainer::
printstring STRINGID_NORUNNINGFROMTRAINERS
end2
BattleScript_PrintFailedToRunString::
printfromtable gNoEscapeStringIds
waitmessage B_WAIT_TIME_LONG
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
2021-04-02 08:16:01 +02:00
setbyte sDMG_MULTIPLIER, 2
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_PursuitSwitchDmgSetMultihit
2021-04-03 18:38:07 +02:00
setmultihit 1
2017-12-02 00:03:46 +01:00
goto BattleScript_PursuitSwitchDmgLoop
BattleScript_PursuitSwitchDmgSetMultihit::
2021-04-03 18:38:07 +02:00
setmultihit 2
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
2021-04-03 18:38:07 +02:00
switchhandleorder BS_ATTACKER, 1
2018-02-08 11:17:41 +01:00
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-09-15 23:58:12 +02:00
moveendcase MOVEEND_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 B_WAIT_TIME_SHORT
attackstring
ppreduce
critcalc
damagecalc
typecalc
adjustnormaldamage
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 B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
2019-09-27 18:27:36 +02:00
moveendfromto MOVEEND_ON_DAMAGE_ABILITIES, MOVEEND_CHOICE_MOVE
2020-07-17 02:12:12 +02:00
getbattlerfainted BS_TARGET
jumpifbyte CMP_EQUAL, gBattleCommunication, FALSE, BattleScript_PursuitDmgOnSwitchOutRet
2021-04-03 18:38:07 +02:00
setbyte sGIVEEXP_STATE, 0
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 B_WAIT_TIME_SHORT
return
BattleScript_LevelUp::
2020-08-21 00:02:00 +02:00
fanfare MUS_LEVEL_UP
printstring STRINGID_PKMNGREWTOLV
2021-04-03 18:38:07 +02:00
setbyte sLVLBOX_STATE, 0
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
2021-04-03 18:38:07 +02:00
setbyte sLEARNMOVE_STATE, 0
yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove
printstring STRINGID_STOPLEARNINGMOVE
waitstate
2021-04-03 18:38:07 +02:00
setbyte sLEARNMOVE_STATE, 0
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 B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_RAIN_STOPPED, BattleScript_RainContinuesOrEndsEnd
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_RAIN_CONTINUES
2017-11-26 17:15:28 +01:00
BattleScript_RainContinuesOrEndsEnd::
end2
2017-11-26 17:15:28 +01:00
BattleScript_DamagingWeatherContinues::
printfromtable gSandStormHailContinuesStringIds
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
playanimation_var BS_ATTACKER, sB_ANIM_ARG1
2021-04-03 18:38:07 +02:00
setbyte gBattleCommunication, 0
2017-11-26 17:15:28 +01:00
BattleScript_DamagingWeatherLoop::
2021-04-03 18:38:07 +02:00
copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 1
weatherdamage
2021-04-03 18:38:07 +02:00
jumpifword CMP_EQUAL, gBattleMoveDamage, 0, BattleScript_DamagingWeatherLoopIncrement
printfromtable gSandStormHailDmgStringIds
waitmessage B_WAIT_TIME_LONG
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_ATTACKER
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
checkteamslost BattleScript_DamagingWeatherLoopIncrement
2017-11-26 17:15:28 +01:00
BattleScript_DamagingWeatherLoopIncrement::
2018-02-08 11:17:41 +01:00
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd
2021-04-03 18:38:07 +02:00
addbyte gBattleCommunication, 1
2018-02-06 02:46:59 +01:00
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop
2017-11-26 17:15:28 +01:00
BattleScript_DamagingWeatherContinuesEnd::
2021-09-24 20:30:15 +02:00
bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
end2
2017-11-26 17:15:28 +01:00
BattleScript_SandStormHailEnds::
printfromtable gSandStormHailEndStringIds
waitmessage B_WAIT_TIME_LONG
end2
2017-11-26 17:15:28 +01:00
BattleScript_SunlightContinues::
printstring STRINGID_SUNLIGHTSTRONG
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_SUN_CONTINUES
end2
2017-11-26 17:15:28 +01:00
BattleScript_SunlightFaded::
printstring STRINGID_SUNLIGHTFADED
waitmessage B_WAIT_TIME_LONG
end2
2017-11-26 17:15:28 +01:00
BattleScript_OverworldWeatherStarts::
2020-07-21 19:29:51 +02:00
printfromtable gWeatherStartsStringIds
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
playanimation_var BS_ATTACKER, sB_ANIM_ARG1
end3
2017-11-26 17:15:28 +01:00
BattleScript_SideStatusWoreOff::
printstring STRINGID_PKMNSXWOREOFF
waitmessage B_WAIT_TIME_LONG
end2
2017-11-26 01:19:57 +01:00
BattleScript_SafeguardProtected::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNUSEDSAFEGUARD
waitmessage B_WAIT_TIME_LONG
end2
2017-11-26 17:15:28 +01:00
BattleScript_SafeguardEnds::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSAFEGUARDEXPIRED
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_LeechSeedTurnDrain::
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
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
2019-08-23 14:46:21 +02:00
manipulatedamage DMG_CHANGE_SIGN
setbyte cMULTISTRING_CHOOSER, B_MSG_LEECH_SEED_DRAIN
2017-12-03 00:47:21 +01:00
goto BattleScript_LeechSeedTurnPrintAndUpdateHp
BattleScript_LeechSeedTurnPrintLiquidOoze::
setbyte cMULTISTRING_CHOOSER, B_MSG_LEECH_SEED_OOZE
2017-12-03 00:47:21 +01:00
BattleScript_LeechSeedTurnPrintAndUpdateHp::
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printfromtable gLeechSeedStringIds
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
tryfaintmon BS_TARGET
end2
BattleScript_BideStoringEnergy::
printstring STRINGID_PKMNSTORINGENERGY
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE
typecalc
2018-01-16 22:12:38 +01:00
bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
2017-11-25 21:32:17 +01:00
copyword gBattleMoveDamage, sBIDE_DMG
adjustsetdamage
2021-04-03 18:38:07 +02:00
setbyte sB_ANIM_TURN, 1
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 B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
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 B_WAIT_TIME_LONG
goto BattleScript_ButItFailed
2017-12-02 00:03:46 +01:00
BattleScript_SuccessForceOut::
attackanimation
waitanimation
2018-02-08 11:17:41 +01:00
switchoutabilities BS_TARGET
returntoball BS_TARGET
waitstate
2017-12-02 14:08:55 +01:00
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_TrainerBattleForceOut
2018-02-08 11:17:41 +01:00
setoutcomeonteleport BS_ATTACKER
finishaction
2017-12-02 00:03:46 +01:00
BattleScript_TrainerBattleForceOut::
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
BattleScript_MistProtected::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNPROTECTEDBYMIST
waitmessage B_WAIT_TIME_LONG
return
BattleScript_RageIsBuilding::
printstring STRINGID_PKMNRAGEBUILDING
waitmessage B_WAIT_TIME_LONG
return
BattleScript_MoveUsedIsDisabled::
printstring STRINGID_PKMNMOVEISDISABLED
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
2017-11-26 17:15:28 +01:00
BattleScript_SelectingDisabledMove::
printselectionstring STRINGID_PKMNMOVEISDISABLED
endselectionscript
BattleScript_DisabledNoMore::
printstring STRINGID_PKMNMOVEDISABLEDNOMORE
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
end2
BattleScript_DestinyBondTakesLife::
printstring STRINGID_PKMNTOOKFOE
waitmessage B_WAIT_TIME_LONG
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
return
BattleScript_SpikesOnAttacker::
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2017-12-02 00:03:46 +01:00
call BattleScript_PrintHurtBySpikes
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
tryfaintmon_spikes BS_ATTACKER, BattleScript_SpikesOnAttackerFainted
return
2017-12-02 00:03:46 +01:00
BattleScript_SpikesOnAttackerFainted::
2021-04-03 18:38:07 +02:00
setbyte sGIVEEXP_STATE, 0
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
BattleScript_SpikesOnTarget::
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
2017-12-02 00:03:46 +01:00
call BattleScript_PrintHurtBySpikes
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
tryfaintmon_spikes BS_TARGET, BattleScript_SpikesOnTargetFainted
return
2017-12-02 00:03:46 +01:00
BattleScript_SpikesOnTargetFainted::
2021-04-03 18:38:07 +02:00
setbyte sGIVEEXP_STATE, 0
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-02-08 11:17:41 +01:00
BattleScript_SpikesOnFaintedBattler::
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_FAINTED
datahpupdate BS_FAINTED
2017-12-02 00:03:46 +01:00
call BattleScript_PrintHurtBySpikes
2021-10-13 22:39:21 +02:00
tryfaintmon BS_FAINTED
tryfaintmon_spikes BS_FAINTED, BattleScript_SpikesOnFaintedBattlerFainted
return
2018-02-08 11:17:41 +01:00
BattleScript_SpikesOnFaintedBattlerFainted::
2021-04-03 18:38:07 +02:00
setbyte sGIVEEXP_STATE, 0
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
2017-12-02 00:03:46 +01:00
BattleScript_PrintHurtBySpikes::
printstring STRINGID_PKMNHURTBYSPIKES
waitmessage B_WAIT_TIME_LONG
return
2017-11-26 17:26:11 +01:00
BattleScript_PerishSongTakesLife::
printstring STRINGID_PKMNPERISHCOUNTFELL
waitmessage B_WAIT_TIME_LONG
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
end2
2017-11-26 17:26:11 +01:00
BattleScript_PerishSongCountGoesDown::
printstring STRINGID_PKMNPERISHCOUNTFELL
waitmessage B_WAIT_TIME_LONG
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
2021-04-03 18:38:07 +02:00
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpDef::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpeed
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpSpeed::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpAtk
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpSpAtk::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpSpDef::
2018-02-08 11:17:41 +01:00
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpRet
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
BattleScript_AllStatsUpRet::
return
BattleScript_RapidSpinAway::
rapidspinfree
return
BattleScript_WrapFree::
printstring STRINGID_PKMNGOTFREE
waitmessage B_WAIT_TIME_LONG
2018-10-27 00:04:18 +02:00
copybyte gBattlerTarget, sBATTLER
return
BattleScript_LeechSeedFree::
printstring STRINGID_PKMNSHEDLEECHSEED
waitmessage B_WAIT_TIME_LONG
return
BattleScript_SpikesFree::
printstring STRINGID_PKMNBLEWAWAYSPIKES
waitmessage B_WAIT_TIME_LONG
return
2017-11-26 17:26:11 +01:00
BattleScript_MonTookFutureAttack::
printstring STRINGID_PKMNTOOKATTACK
waitmessage B_WAIT_TIME_LONG
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_FUTURE_SIGHT, 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::
adjustnormaldamage2
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_FUTURE_SIGHT, BattleScript_FutureHitAnimDoomDesire
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_FUTURE_SIGHT_HIT
2017-12-03 00:47:21 +01:00
goto BattleScript_DoFutureAttackHit
BattleScript_FutureHitAnimDoomDesire::
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_DOOM_DESIRE_HIT
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
resultmessage
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
tryfaintmon BS_TARGET
checkteamslost BattleScript_FutureAttackEnd
2017-12-03 00:47:21 +01:00
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 B_WAIT_TIME_SHORT
2018-01-16 22:12:38 +01:00
setbyte gMoveResultFlags, 0
orbyte gMoveResultFlags, MOVE_RESULT_FAILED
resultmessage
waitmessage B_WAIT_TIME_LONG
2018-01-16 22:12:38 +01:00
setbyte 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 B_WAIT_TIME_SHORT
printstring STRINGID_BUTNOPPLEFT
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
2017-12-03 00:47:21 +01:00
BattleScript_SelectingNotAllowedMoveTauntInPalace::
printstring STRINGID_PKMNCANTUSEMOVETAUNT
2017-12-03 00:47:21 +01:00
goto BattleScript_SelectingUnusableMoveInPalace
BattleScript_WishComesTrue::
2021-04-03 18:38:07 +02:00
trywish 1, BattleScript_WishButFullHp
2021-10-13 22:39:21 +02:00
playanimation BS_TARGET, B_ANIM_WISH_HEAL
printstring STRINGID_PKMNWISHCAMETRUE
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
end2
2017-12-03 00:47:21 +01:00
BattleScript_WishButFullHp::
printstring STRINGID_PKMNWISHCAMETRUE
waitmessage B_WAIT_TIME_LONG
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNHPFULL
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_IngrainTurnHeal::
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL
printstring STRINGID_PKMNABSORBEDNUTRIENTS
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
end2
2017-12-03 00:47:21 +01:00
BattleScript_PrintMonIsRooted::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNANCHOREDITSELF
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_AtkDefDown::
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_DEF | BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
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
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_AtkDefDown_TryDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_AtkDefDown_TryDef
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
2020-08-05 02:33:05 +02:00
BattleScript_AtkDefDown_TryDef::
2019-10-26 17:53:00 +02:00
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
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_AtkDefDown_End
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_AtkDefDown_End
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
2020-08-05 02:33:05 +02:00
BattleScript_AtkDefDown_End::
return
BattleScript_KnockedOff::
2021-10-13 22:39:21 +02:00
playanimation BS_TARGET, B_ANIM_ITEM_KNOCKOFF
printstring STRINGID_PKMNKNOCKEDOFF
waitmessage B_WAIT_TIME_LONG
return
BattleScript_MoveUsedIsImprisoned::
printstring STRINGID_PKMNCANTUSEMOVESEALED
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
return
BattleScript_MagicCoatBounce::
attackstring
ppreduce
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNMOVEBOUNCED
waitmessage B_WAIT_TIME_LONG
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP
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
2021-10-13 22:39:21 +02:00
playanimation BS_TARGET, B_ANIM_SNATCH_MOVE
printstring STRINGID_PKMNSNATCHEDMOVE
waitmessage B_WAIT_TIME_LONG
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP
2018-06-30 14:12:17 +02:00
swapattackerwithtarget
return
BattleScript_EnduredMsg::
printstring STRINGID_PKMNENDUREDHIT
waitmessage B_WAIT_TIME_LONG
return
BattleScript_OneHitKOMsg::
printstring STRINGID_ONEHITKO
waitmessage B_WAIT_TIME_LONG
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
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_SAtkDown2End
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_SAtkDown2End
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
2018-07-29 15:33:16 +02:00
BattleScript_SAtkDown2End::
return
BattleScript_FocusPunchSetUp::
printstring STRINGID_EMPTYSTRING3
2021-04-02 08:16:01 +02:00
waitmessage 1
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_FOCUS_PUNCH_SETUP
printstring STRINGID_PKMNTIGHTENINGFOCUS
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_MoveUsedIsAsleep::
printstring STRINGID_PKMNFASTASLEEP
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
statusanimation BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_MoveUsedWokeUp::
2021-09-24 20:30:15 +02:00
bicword gHitMarker, HITMARKER_WAKE_UP_CLEAR
printfromtable gWokeUpStringIds
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
updatestatusicon BS_ATTACKER
end2
BattleScript_PoisonTurnDmg::
printstring STRINGID_PKMNHURTBYPOISON
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
BattleScript_DoStatusTurnDmg::
2018-02-08 11:17:41 +01:00
statusanimation BS_ATTACKER
2017-12-02 00:03:46 +01:00
BattleScript_DoTurnDmg::
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
checkteamslost BattleScript_DoTurnDmgEnd
2017-12-02 00:03:46 +01:00
BattleScript_DoTurnDmgEnd::
end2
BattleScript_BurnTurnDmg::
printstring STRINGID_PKMNHURTBYBURN
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
goto BattleScript_DoStatusTurnDmg
BattleScript_MoveUsedIsFrozen::
printstring STRINGID_PKMNISFROZEN
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
statusanimation BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_MoveUsedUnfroze::
printfromtable gGotDefrostedStringIds
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
updatestatusicon BS_ATTACKER
return
BattleScript_DefrostedViaFireMove::
printstring STRINGID_PKMNWASDEFROSTED
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
updatestatusicon BS_TARGET
return
BattleScript_MoveUsedIsParalyzed::
printstring STRINGID_PKMNISPARALYZED
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
statusanimation BS_ATTACKER
cancelmultiturnmoves BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_MoveUsedFlinched::
printstring STRINGID_PKMNFLINCHED
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
2017-11-26 17:26:11 +01:00
BattleScript_PrintUproarOverTurns::
printfromtable gUproarOverTurnStringIds
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_ThrashConfuses::
2018-02-08 11:17:41 +01:00
chosenstatus2animation BS_ATTACKER, STATUS2_CONFUSION
printstring STRINGID_PKMNFATIGUECONFUSION
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_MoveUsedIsConfused::
printstring STRINGID_PKMNISCONFUSED
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
status2animation BS_ATTACKER, STATUS2_CONFUSION
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, FALSE, BattleScript_MoveUsedIsConfusedRet
2017-12-02 00:03:46 +01:00
BattleScript_DoSelfConfusionDmg::
2018-02-08 11:17:41 +01:00
cancelmultiturnmoves BS_ATTACKER
adjustnormaldamage2
printstring STRINGID_ITHURTCONFUSION
waitmessage B_WAIT_TIME_LONG
effectivenesssound
2018-02-08 11:17:41 +01:00
hitanimation BS_ATTACKER
waitstate
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
resultmessage
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
goto BattleScript_MoveEnd
2017-12-02 00:03:46 +01:00
BattleScript_MoveUsedIsConfusedRet::
return
BattleScript_MoveUsedIsConfusedNoMore::
printstring STRINGID_PKMNHEALEDCONFUSION
waitmessage B_WAIT_TIME_LONG
return
BattleScript_PrintPayDayMoneyString::
2021-01-11 14:47:11 +01:00
printstring STRINGID_PLAYERPICKEDUPMONEY
waitmessage B_WAIT_TIME_LONG
return
BattleScript_WrapTurnDmg::
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_TURN_TRAP, sB_ANIM_ARG1
printstring STRINGID_PKMNHURTBY
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
goto BattleScript_DoTurnDmg
BattleScript_WrapEnds::
printstring STRINGID_PKMNFREEDFROM
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_MoveUsedIsInLove::
printstring STRINGID_PKMNINLOVE
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
status2animation BS_ATTACKER, STATUS2_INFATUATION
return
BattleScript_MoveUsedIsInLoveCantAttack::
printstring STRINGID_PKMNIMMOBILIZEDBYLOVE
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_NightmareTurnDmg::
printstring STRINGID_PKMNLOCKEDINNIGHTMARE
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
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
BattleScript_MoveEffectPoison::
2018-02-08 11:17:41 +01:00
statusanimation BS_EFFECT_BATTLER
printfromtable gGotPoisonedStringIds
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectUproar::
printstring STRINGID_PKMNCAUSEDUPROAR
waitmessage B_WAIT_TIME_LONG
return
BattleScript_MoveEffectToxic::
2018-02-08 11:17:41 +01:00
statusanimation BS_EFFECT_BATTLER
printstring STRINGID_PKMNBADLYPOISONED
waitmessage B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
goto BattleScript_UpdateEffectStatusIconRet
BattleScript_MoveEffectPayDay::
printstring STRINGID_COINSSCATTERED
waitmessage B_WAIT_TIME_LONG
return
BattleScript_MoveEffectWrap::
printfromtable gWrappedStringIds
waitmessage B_WAIT_TIME_LONG
return
BattleScript_MoveEffectConfusion::
2018-02-08 11:17:41 +01:00
chosenstatus2animation BS_EFFECT_BATTLER, STATUS2_CONFUSION
printstring STRINGID_PKMNWASCONFUSED
waitmessage B_WAIT_TIME_LONG
return
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::
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNHITWITHRECOIL
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
2018-09-01 20:00:13 +02:00
BattleScript_RecoilEnd::
return
BattleScript_ItemSteal::
2021-10-13 22:39:21 +02:00
playanimation BS_TARGET, B_ANIM_ITEM_STEAL
printstring STRINGID_PKMNSTOLEITEM
waitmessage B_WAIT_TIME_LONG
return
BattleScript_DrizzleActivates::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNMADEITRAIN
waitstate
2021-10-13 22:39:21 +02:00
playanimation BS_BATTLER_0, B_ANIM_RAIN_CONTINUES
2017-11-26 01:19:57 +01:00
call BattleScript_WeatherFormChanges
end3
BattleScript_SpeedBoostActivates::
2018-02-08 11:17:41 +01:00
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
printstring STRINGID_PKMNRAISEDSPEED
waitmessage B_WAIT_TIME_LONG
end3
BattleScript_TraceActivates::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNTRACED
waitmessage B_WAIT_TIME_LONG
end3
BattleScript_RainDishActivates::
printstring STRINGID_PKMNSXRESTOREDHPALITTLE2
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
end3
BattleScript_SandstreamActivates::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM
waitstate
2021-10-13 22:39:21 +02:00
playanimation BS_BATTLER_0, B_ANIM_SANDSTORM_CONTINUES
2017-11-26 01:19:57 +01:00
call BattleScript_WeatherFormChanges
end3
BattleScript_ShedSkinActivates::
printstring STRINGID_PKMNSXCUREDYPROBLEM
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
updatestatusicon BS_ATTACKER
end3
2017-11-26 01:19:57 +01:00
BattleScript_WeatherFormChanges::
2021-04-03 18:38:07 +02:00
setbyte sBATTLER, 0
2017-11-26 01:19:57 +01:00
BattleScript_WeatherFormChangesLoop::
trycastformdatachange
2021-04-03 18:38:07 +02:00
addbyte sBATTLER, 1
2018-10-27 00:04:18 +02:00
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::
docastformchangeanimation
waitstate
printstring STRINGID_PKMNTRANSFORMED
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_SHORT
2018-09-01 20:00:13 +02:00
BattleScript_IntimidateActivates::
2021-04-03 18:38:07 +02:00
setbyte gBattlerTarget, 0
2018-02-08 11:17:41 +01:00
setstatchanger STAT_ATK, 1, TRUE
2018-09-01 20:00:13 +02:00
BattleScript_IntimidateActivatesLoop:
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
statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_IntimidateActivatesLoopIncrement
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, 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 B_WAIT_TIME_LONG
2018-09-01 20:00:13 +02:00
BattleScript_IntimidateActivatesLoopIncrement:
2021-04-03 18:38:07 +02:00
addbyte gBattlerTarget, 1
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 B_WAIT_TIME_SHORT
printstring STRINGID_PREVENTEDFROMWORKING
waitmessage B_WAIT_TIME_LONG
2018-09-01 20:00:13 +02:00
goto BattleScript_IntimidateActivatesLoopIncrement
BattleScript_DroughtActivates::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXINTENSIFIEDSUN
waitstate
2021-10-13 22:39:21 +02:00
playanimation BS_BATTLER_0, B_ANIM_SUN_CONTINUES
2017-11-26 01:19:57 +01:00
call BattleScript_WeatherFormChanges
end3
BattleScript_TookAttack::
attackstring
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXTOOKATTACK
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED
return
BattleScript_SturdyPreventsOHKO::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNPROTECTEDBY
pause B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_DampStopsExplosion::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNPREVENTSUSAGE
pause B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_MoveHPDrain_PPLoss::
ppreduce
BattleScript_MoveHPDrain::
attackstring
pause B_WAIT_TIME_SHORT
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printstring STRINGID_PKMNRESTOREDHPUSING
waitmessage B_WAIT_TIME_LONG
2018-01-16 22:12:38 +01:00
orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
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 B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXMADEYUSELESS
waitmessage B_WAIT_TIME_LONG
2018-01-16 22:12:38 +01:00
orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
goto BattleScript_MoveEnd
BattleScript_FlashFireBoost_PPLoss::
ppreduce
BattleScript_FlashFireBoost::
attackstring
pause B_WAIT_TIME_SHORT
printfromtable gFlashFireStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
2017-12-03 00:47:21 +01:00
BattleScript_AbilityPreventsPhasingOut::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNANCHORSITSELFWITH
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_AbilityNoStatLoss::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNPREVENTSSTATLOSSWITH
waitmessage B_WAIT_TIME_LONG
return
BattleScript_BRNPrevention::
pause B_WAIT_TIME_SHORT
printfromtable gBRNPreventionStringIds
waitmessage B_WAIT_TIME_LONG
return
BattleScript_PRLZPrevention::
pause B_WAIT_TIME_SHORT
printfromtable gPRLZPreventionStringIds
waitmessage B_WAIT_TIME_LONG
return
BattleScript_PSNPrevention::
pause B_WAIT_TIME_SHORT
printfromtable gPSNPreventionStringIds
waitmessage B_WAIT_TIME_LONG
return
BattleScript_ObliviousPreventsAttraction::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNPREVENTSROMANCEWITH
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_FlinchPrevention::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXPREVENTSFLINCHING
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
2017-11-26 01:19:57 +01:00
BattleScript_OwnTempoPrevents::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_SoundproofProtected::
attackstring
ppreduce
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXBLOCKSY
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_AbilityNoSpecificStatLoss::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXPREVENTSYLOSS
waitmessage B_WAIT_TIME_LONG
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY
return
BattleScript_StickyHoldActivates::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_ColorChangeActivates::
printstring STRINGID_PKMNCHANGEDTYPEWITH
waitmessage B_WAIT_TIME_LONG
return
BattleScript_RoughSkinActivates::
2021-09-24 20:30:15 +02:00
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNHURTSWITH
waitmessage B_WAIT_TIME_LONG
2021-10-13 22:39:21 +02:00
tryfaintmon BS_ATTACKER
return
BattleScript_CuteCharmActivates::
2018-02-08 11:17:41 +01:00
status2animation BS_ATTACKER, STATUS2_INFATUATION
printstring STRINGID_PKMNSXINFATUATEDY
waitmessage B_WAIT_TIME_LONG
return
BattleScript_ApplySecondaryEffect::
waitstate
seteffectsecondary
return
BattleScript_SynchronizeActivates::
waitstate
seteffectprimary
return
BattleScript_NoItemSteal::
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
waitmessage B_WAIT_TIME_LONG
return
2017-11-26 17:15:28 +01:00
BattleScript_AbilityCuredStatus::
printstring STRINGID_PKMNSXCUREDITSYPROBLEM
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
2018-09-22 19:08:41 +02:00
jumptocalledmove FALSE
BattleScript_MoveUsedLoafingAround::
2021-09-24 20:30:15 +02:00
@ Skip ahead if not the Battle Palace message
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_INCAPABLE_OF_POWER, BattleScript_MoveUsedLoafingAroundMsg
setbyte gBattleCommunication, 0
2021-09-24 20:30:15 +02:00
palacetryescapestatus BS_ATTACKER
setbyte cMULTISTRING_CHOOSER, B_MSG_INCAPABLE_OF_POWER
BattleScript_MoveUsedLoafingAroundMsg::
printfromtable gInobedientStringIds
waitmessage B_WAIT_TIME_LONG
2019-08-23 14:46:21 +02:00
moveendto MOVEEND_NEXT_TARGET
end
2017-11-26 17:15:28 +01:00
BattleScript_IgnoresAndFallsAsleep::
printstring STRINGID_PKMNBEGANTONAP
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
2017-12-02 00:03:46 +01:00
goto BattleScript_DoSelfConfusionDmg
BattleScript_SubstituteFade::
2021-10-13 22:39:21 +02:00
playanimation BS_TARGET, B_ANIM_SUBSTITUTE_FADE
printstring STRINGID_PKMNSUBSTITUTEFADED
return
BattleScript_BerryCurePrlzEnd2::
call BattleScript_BerryCureParRet
end2
BattleScript_BerryCureParRet::
2021-10-13 22:39:21 +02:00
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMCUREDPARALYSIS
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCurePsnEnd2::
call BattleScript_BerryCurePsnRet
end2
BattleScript_BerryCurePsnRet::
2021-10-13 22:39:21 +02:00
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMCUREDPOISON
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCureBrnEnd2::
call BattleScript_BerryCureBrnRet
end2
BattleScript_BerryCureBrnRet::
2021-10-13 22:39:21 +02:00
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMHEALEDBURN
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCureFrzEnd2::
call BattleScript_BerryCureFrzRet
end2
BattleScript_BerryCureFrzRet::
2021-10-13 22:39:21 +02:00
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMDEFROSTEDIT
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCureSlpEnd2::
call BattleScript_BerryCureSlpRet
end2
BattleScript_BerryCureSlpRet::
2021-10-13 22:39:21 +02:00
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMWOKEIT
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_BerryCureConfusionEnd2::
call BattleScript_BerryCureConfusionRet
end2
BattleScript_BerryCureConfusionRet::
2021-10-13 22:39:21 +02:00
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMSNAPPEDOUT
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
removeitem BS_SCRIPTING
return
BattleScript_BerryCureChosenStatusEnd2::
call BattleScript_BerryCureChosenStatusRet
end2
BattleScript_BerryCureChosenStatusRet::
2021-10-13 22:39:21 +02:00
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printfromtable gBerryEffectStringIds
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
return
BattleScript_WhiteHerbEnd2::
call BattleScript_WhiteHerbRet
end2
BattleScript_WhiteHerbRet::
2021-10-13 22:39:21 +02:00
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDSTATUS
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
removeitem BS_SCRIPTING
return
BattleScript_ItemHealHP_RemoveItem::
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage B_WAIT_TIME_LONG
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::
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDPP
waitmessage B_WAIT_TIME_LONG
2018-02-08 11:17:41 +01:00
removeitem BS_ATTACKER
end2
BattleScript_ItemHealHP_End2::
call BattleScript_ItemHealHP_Ret
end2
BattleScript_ItemHealHP_Ret::
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE
waitmessage B_WAIT_TIME_LONG
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
BattleScript_FocusBandActivates::
2021-10-13 22:39:21 +02:00
playanimation BS_TARGET, B_ANIM_FOCUS_BAND
printstring STRINGID_PKMNHUNGONWITHX
waitmessage B_WAIT_TIME_LONG
return
BattleScript_BerryConfuseHealEnd2::
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
2018-02-08 11:17:41 +01:00
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_FORXCOMMAYZ
waitmessage B_WAIT_TIME_LONG
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::
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_BerryStatRaiseDoStatUp
BattleScript_BerryStatRaiseDoStatUp::
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM
call BattleScript_StatUp
2018-02-08 11:17:41 +01:00
removeitem BS_ATTACKER
end2
BattleScript_BerryFocusEnergyEnd2::
2021-10-13 22:39:21 +02:00
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNUSEDXTOGETPUMPED
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
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
2021-04-02 08:16:01 +02:00
pause 8
2020-08-21 00:02:00 +02:00
playse SE_ARENA_TIMEUP1
2021-09-24 20:30:15 +02:00
arenadrawreftextbox
2021-04-03 18:38:07 +02:00
arenajudgmentstring B_MSG_REF_COMMENCE_BATTLE
arenawaitmessage B_MSG_REF_COMMENCE_BATTLE
pause B_WAIT_TIME_LONG
2021-09-24 20:30:15 +02:00
arenaerasereftextbox
2018-08-25 21:04:12 +02:00
volumeup
end2
2021-04-03 18:38:07 +02:00
@ Unused
BattleScript_ArenaNothingDecided::
2020-08-21 00:02:00 +02:00
playse SE_DING_DONG
2021-09-24 20:30:15 +02:00
arenadrawreftextbox
2021-04-03 18:38:07 +02:00
arenajudgmentstring B_MSG_REF_NOTHING_IS_DECIDED
arenawaitmessage B_MSG_REF_NOTHING_IS_DECIDED
pause B_WAIT_TIME_LONG
2021-09-24 20:30:15 +02:00
arenaerasereftextbox
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
2021-04-02 08:16:01 +02:00
pause 8
2020-08-21 00:02:00 +02:00
playse SE_ARENA_TIMEUP1
pause B_WAIT_TIME_LONG
2021-09-24 20:30:15 +02:00
arenadrawreftextbox
2021-04-03 18:38:07 +02:00
arenajudgmentstring B_MSG_REF_THATS_IT
arenawaitmessage B_MSG_REF_THATS_IT
pause B_WAIT_TIME_LONG
setbyte gBattleCommunication, 0 @ Reset state for arenajudgmentwindow
2018-11-11 18:33:16 +01:00
arenajudgmentwindow
pause B_WAIT_TIME_LONG
2018-11-11 18:33:16 +01:00
arenajudgmentwindow
2021-04-03 18:38:07 +02:00
arenajudgmentstring B_MSG_REF_JUDGE_MIND
arenawaitmessage B_MSG_REF_JUDGE_MIND
2018-11-11 18:33:16 +01:00
arenajudgmentwindow
2021-04-03 18:38:07 +02:00
arenajudgmentstring B_MSG_REF_JUDGE_SKILL
arenawaitmessage B_MSG_REF_JUDGE_SKILL
2018-11-11 18:33:16 +01:00
arenajudgmentwindow
2021-04-03 18:38:07 +02:00
arenajudgmentstring B_MSG_REF_JUDGE_BODY
arenawaitmessage B_MSG_REF_JUDGE_BODY
2018-11-11 18:33:16 +01:00
arenajudgmentwindow
2022-08-11 18:09:38 +02:00
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, ARENA_RESULT_PLAYER_LOST, BattleScript_ArenaJudgmentPlayerLoses
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, ARENA_RESULT_TIE, BattleScript_ArenaJudgmentDraw
@ ARENA_RESULT_PLAYER_WON
2021-04-03 18:38:07 +02:00
arenajudgmentstring B_MSG_REF_PLAYER_WON
arenawaitmessage B_MSG_REF_PLAYER_WON
2018-11-11 18:33:16 +01:00
arenajudgmentwindow
2021-09-24 20:30:15 +02:00
arenaerasereftextbox
printstring STRINGID_DEFEATEDOPPONENTBYREFEREE
waitmessage B_WAIT_TIME_LONG
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:
2021-04-03 18:38:07 +02:00
arenajudgmentstring B_MSG_REF_OPPONENT_WON
arenawaitmessage B_MSG_REF_OPPONENT_WON
2018-11-11 18:33:16 +01:00
arenajudgmentwindow
2021-09-24 20:30:15 +02:00
arenaerasereftextbox
printstring STRINGID_LOSTTOOPPONENTBYREFEREE
waitmessage B_WAIT_TIME_LONG
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:
2021-04-03 18:38:07 +02:00
arenajudgmentstring B_MSG_REF_DRAW
arenawaitmessage B_MSG_REF_DRAW
2018-11-11 18:33:16 +01:00
arenajudgmentwindow
2021-09-24 20:30:15 +02:00
arenaerasereftextbox
printstring STRINGID_TIEDOPPONENTBYREFEREE
waitmessage B_WAIT_TIME_LONG
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 B_WAIT_TIME_LONG
end2
2017-12-03 00:47:21 +01:00
BattleScript_PrintPlayerForfeitedLinkBattle::
printstring STRINGID_FORFEITEDMATCH
waitmessage B_WAIT_TIME_LONG
endlinkbattle
waitmessage B_WAIT_TIME_LONG
end2