mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 11:44:17 +01:00
3e807e5b1e
fix ORs
9941 lines
326 KiB
ArmAsm
9941 lines
326 KiB
ArmAsm
#include "config.h"
|
|
#include "config/battle.h"
|
|
#include "constants/global.h"
|
|
#include "constants/battle.h"
|
|
#include "constants/pokemon.h"
|
|
#include "constants/battle_arena.h"
|
|
#include "constants/battle_script_commands.h"
|
|
#include "constants/battle_anim.h"
|
|
#include "constants/battle_string_ids.h"
|
|
#include "constants/abilities.h"
|
|
#include "constants/hold_effects.h"
|
|
#include "constants/moves.h"
|
|
#include "constants/songs.h"
|
|
#include "constants/game_stat.h"
|
|
#include "constants/trainers.h"
|
|
#include "constants/species.h"
|
|
.include "asm/macros.inc"
|
|
.include "asm/macros/battle_script.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.section script_data, "aw", %progbits
|
|
|
|
.align 2
|
|
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_EffectSpeedUp @ EFFECT_SPEED_UP
|
|
.4byte BattleScript_EffectSpecialAttackUp @ EFFECT_SPECIAL_ATTACK_UP
|
|
.4byte BattleScript_EffectSpecialDefenseUp @ EFFECT_SPECIAL_DEFENSE_UP
|
|
.4byte BattleScript_EffectAccuracyUp @ EFFECT_ACCURACY_UP
|
|
.4byte BattleScript_EffectEvasionUp @ EFFECT_EVASION_UP
|
|
.4byte BattleScript_EffectSpecialAttackUp3 @ EFFECT_SPECIAL_ATTACK_UP_3
|
|
.4byte BattleScript_EffectAttackDown @ EFFECT_ATTACK_DOWN
|
|
.4byte BattleScript_EffectDefenseDown @ EFFECT_DEFENSE_DOWN
|
|
.4byte BattleScript_EffectSpeedDown @ EFFECT_SPEED_DOWN
|
|
.4byte BattleScript_EffectSpecialAttackDown @ EFFECT_SPECIAL_ATTACK_DOWN
|
|
.4byte BattleScript_EffectSpecialDefenseDown @ 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_EffectHit @ 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_EffectHit @ EFFECT_FUSION_COMBO
|
|
.4byte BattleScript_EffectSuperFang @ EFFECT_SUPER_FANG
|
|
.4byte BattleScript_EffectDragonRage @ EFFECT_DRAGON_RAGE
|
|
.4byte BattleScript_EffectTrap @ EFFECT_TRAP
|
|
.4byte BattleScript_EffectHealBlock @ EFFECT_HEAL_BLOCK
|
|
.4byte BattleScript_EffectRecoilIfMiss @ EFFECT_RECOIL_IF_MISS
|
|
.4byte BattleScript_EffectMist @ EFFECT_MIST
|
|
.4byte BattleScript_EffectFocusEnergy @ EFFECT_FOCUS_ENERGY
|
|
.4byte BattleScript_EffectHit @ EFFECT_RECOIL_25
|
|
.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_EffectAccuracyUp2 @ EFFECT_ACCURACY_UP_2
|
|
.4byte BattleScript_EffectEvasionUp2 @ 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_EffectSpecialAttackDown2 @ EFFECT_SPECIAL_ATTACK_DOWN_2
|
|
.4byte BattleScript_EffectSpecialDefenseDown2 @ EFFECT_SPECIAL_DEFENSE_DOWN_2
|
|
.4byte BattleScript_EffectAccuracyDown2 @ EFFECT_ACCURACY_DOWN_2
|
|
.4byte BattleScript_EffectEvasionDown2 @ 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_EffectTwoTurnsAttack @ EFFECT_TWO_TURNS_ATTACK
|
|
.4byte BattleScript_EffectConfuseHit @ EFFECT_CONFUSE_HIT
|
|
.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_EffectDoNothing @ EFFECT_DO_NOTHING
|
|
.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_EffectHammerArm @ EFFECT_HAMMER_ARM
|
|
.4byte BattleScript_EffectSleepTalk @ EFFECT_SLEEP_TALK
|
|
.4byte BattleScript_EffectDestinyBond @ EFFECT_DESTINY_BOND
|
|
.4byte BattleScript_EffectHit @ EFFECT_FLAIL
|
|
.4byte BattleScript_EffectSpite @ EFFECT_SPITE
|
|
.4byte BattleScript_EffectHit @ EFFECT_FALSE_SWIPE
|
|
.4byte BattleScript_EffectHealBell @ EFFECT_HEAL_BELL
|
|
.4byte BattleScript_EffectHit @ EFFECT_ALWAYS_CRIT
|
|
.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_EffectHealingWish @ EFFECT_HEALING_WISH
|
|
.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_EffectHit @ EFFECT_RETURN
|
|
.4byte BattleScript_EffectPresent @ EFFECT_PRESENT
|
|
.4byte BattleScript_EffectHit @ EFFECT_FRUSTRATION
|
|
.4byte BattleScript_EffectSafeguard @ EFFECT_SAFEGUARD
|
|
.4byte BattleScript_EffectHit @ EFFECT_UNUSED_125
|
|
.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_EffectCaptivate @ EFFECT_CAPTIVATE
|
|
.4byte BattleScript_EffectMorningSun @ EFFECT_MORNING_SUN
|
|
.4byte BattleScript_EffectSynthesis @ EFFECT_SYNTHESIS
|
|
.4byte BattleScript_EffectMoonlight @ EFFECT_MOONLIGHT
|
|
.4byte BattleScript_EffectHit @ 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_FELL_STINGER
|
|
.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
|
|
.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_EffectWorrySeed @ EFFECT_WORRY_SEED
|
|
.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_EffectHit @ 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_EffectHit @ 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_EffectHit @ 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_EffectHit @ EFFECT_LOW_KICK
|
|
.4byte BattleScript_EffectSecretPower @ EFFECT_SECRET_POWER
|
|
.4byte BattleScript_EffectHit @ EFFECT_RECOIL_33
|
|
.4byte BattleScript_EffectTeeterDance @ EFFECT_TEETER_DANCE
|
|
.4byte BattleScript_EffectHitEscape @ EFFECT_HIT_ESCAPE
|
|
.4byte BattleScript_EffectMudSport @ EFFECT_MUD_SPORT
|
|
.4byte BattleScript_EffectPoisonFang @ EFFECT_POISON_FANG
|
|
.4byte BattleScript_EffectHit @ 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_EffectPlaceholder @ EFFECT_PLACEHOLDER
|
|
.4byte BattleScript_EffectWaterSport @ EFFECT_WATER_SPORT
|
|
.4byte BattleScript_EffectCalmMind @ EFFECT_CALM_MIND
|
|
.4byte BattleScript_EffectDragonDance @ EFFECT_DRAGON_DANCE
|
|
.4byte BattleScript_EffectCamouflage @ EFFECT_CAMOUFLAGE
|
|
.4byte BattleScript_EffectHit @ EFFECT_PLEDGE
|
|
.4byte BattleScript_EffectFling @ EFFECT_FLING
|
|
.4byte BattleScript_EffectNaturalGift @ EFFECT_NATURAL_GIFT
|
|
.4byte BattleScript_EffectWakeUpSlap @ EFFECT_WAKE_UP_SLAP
|
|
.4byte BattleScript_EffectHit @ EFFECT_WRING_OUT
|
|
.4byte BattleScript_EffectHit @ EFFECT_HEX
|
|
.4byte BattleScript_EffectHit @ EFFECT_ASSURANCE
|
|
.4byte BattleScript_EffectHit @ EFFECT_TRUMP_CARD
|
|
.4byte BattleScript_EffectHit @ EFFECT_ACROBATICS
|
|
.4byte BattleScript_EffectHit @ EFFECT_HEAT_CRASH
|
|
.4byte BattleScript_EffectHit @ EFFECT_PUNISHMENT
|
|
.4byte BattleScript_EffectHit @ EFFECT_STORED_POWER
|
|
.4byte BattleScript_EffectHit @ EFFECT_ELECTRO_BALL
|
|
.4byte BattleScript_EffectHit @ EFFECT_GYRO_BALL
|
|
.4byte BattleScript_EffectHit @ EFFECT_ECHOED_VOICE
|
|
.4byte BattleScript_EffectHit @ EFFECT_PAYBACK
|
|
.4byte BattleScript_EffectHit @ EFFECT_ROUND
|
|
.4byte BattleScript_EffectHit @ EFFECT_BRINE
|
|
.4byte BattleScript_EffectHit @ EFFECT_VENOSHOCK
|
|
.4byte BattleScript_EffectHit @ EFFECT_RETALIATE
|
|
.4byte BattleScript_EffectBulldoze @ EFFECT_BULLDOZE
|
|
.4byte BattleScript_EffectHit @ EFFECT_FOUL_PLAY
|
|
.4byte BattleScript_EffectHit @ EFFECT_PSYSHOCK
|
|
.4byte BattleScript_EffectRoost @ EFFECT_ROOST
|
|
.4byte BattleScript_EffectGravity @ EFFECT_GRAVITY
|
|
.4byte BattleScript_EffectMircleEye @ EFFECT_MIRACLE_EYE
|
|
.4byte BattleScript_EffectTailwind @ EFFECT_TAILWIND
|
|
.4byte BattleScript_EffectEmbargo @ EFFECT_EMBARGO
|
|
.4byte BattleScript_EffectAquaRing @ EFFECT_AQUA_RING
|
|
.4byte BattleScript_EffectTrickRoom @ EFFECT_TRICK_ROOM
|
|
.4byte BattleScript_EffectWonderRoom @ EFFECT_WONDER_ROOM
|
|
.4byte BattleScript_EffectMagicRoom @ EFFECT_MAGIC_ROOM
|
|
.4byte BattleScript_EffectMagnetRise @ EFFECT_MAGNET_RISE
|
|
.4byte BattleScript_EffectToxicSpikes @ EFFECT_TOXIC_SPIKES
|
|
.4byte BattleScript_EffectGastroAcid @ EFFECT_GASTRO_ACID
|
|
.4byte BattleScript_EffectStealthRock @ EFFECT_STEALTH_ROCK
|
|
.4byte BattleScript_EffectTelekinesis @ EFFECT_TELEKINESIS
|
|
.4byte BattleScript_EffectPowerSwap @ EFFECT_POWER_SWAP
|
|
.4byte BattleScript_EffectGuardSwap @ EFFECT_GUARD_SWAP
|
|
.4byte BattleScript_EffectHeartSwap @ EFFECT_HEART_SWAP
|
|
.4byte BattleScript_EffectPowerSplit @ EFFECT_POWER_SPLIT
|
|
.4byte BattleScript_EffectGuardSplit @ EFFECT_GUARD_SPLIT
|
|
.4byte BattleScript_EffectStickyWeb @ EFFECT_STICKY_WEB
|
|
.4byte BattleScript_EffectMetalBurst @ EFFECT_METAL_BURST
|
|
.4byte BattleScript_EffectLuckyChant @ EFFECT_LUCKY_CHANT
|
|
.4byte BattleScript_EffectSuckerPunch @ EFFECT_SUCKER_PUNCH
|
|
.4byte BattleScript_EffectSpecialDefenseDownHit2 @ EFFECT_SPECIAL_DEFENSE_DOWN_HIT_2
|
|
.4byte BattleScript_EffectSimpleBeam @ EFFECT_SIMPLE_BEAM
|
|
.4byte BattleScript_EffectEntrainment @ EFFECT_ENTRAINMENT
|
|
.4byte BattleScript_EffectHealPulse @ EFFECT_HEAL_PULSE
|
|
.4byte BattleScript_EffectQuash @ EFFECT_QUASH
|
|
.4byte BattleScript_EffectIonDeluge @ EFFECT_ION_DELUGE
|
|
.4byte BattleScript_EffectFreezeHit @ EFFECT_FREEZE_DRY
|
|
.4byte BattleScript_EffectTopsyTurvy @ EFFECT_TOPSY_TURVY
|
|
.4byte BattleScript_EffectMistyTerrain @ EFFECT_MISTY_TERRAIN
|
|
.4byte BattleScript_EffectGrassyTerrain @ EFFECT_GRASSY_TERRAIN
|
|
.4byte BattleScript_EffectElectricTerrain @ EFFECT_ELECTRIC_TERRAIN
|
|
.4byte BattleScript_EffectPsychicTerrain @ EFFECT_PSYCHIC_TERRAIN
|
|
.4byte BattleScript_EffectAttackAccUp @ EFFECT_ATTACK_ACCURACY_UP
|
|
.4byte BattleScript_EffectAttackSpAttackUp @ EFFECT_ATTACK_SPATK_UP
|
|
.4byte BattleScript_EffectHurricane @ EFFECT_HURRICANE
|
|
.4byte BattleScript_EffectHit @ EFFECT_TWO_TYPED_MOVE
|
|
.4byte BattleScript_EffectMeFirst @ EFFECT_ME_FIRST
|
|
.4byte BattleScript_EffectSpeedUpHit @ EFFECT_SPEED_UP_HIT
|
|
.4byte BattleScript_EffectQuiverDance @ EFFECT_QUIVER_DANCE
|
|
.4byte BattleScript_EffectCoil @ EFFECT_COIL
|
|
.4byte BattleScript_EffectElectrify @ EFFECT_ELECTRIFY
|
|
.4byte BattleScript_EffectBurnHit @ EFFECT_SCALD
|
|
.4byte BattleScript_EffectReflectType @ EFFECT_REFLECT_TYPE
|
|
.4byte BattleScript_EffectSoak @ EFFECT_SOAK
|
|
.4byte BattleScript_EffectGrowth @ EFFECT_GROWTH
|
|
.4byte BattleScript_EffectCloseCombat @ EFFECT_CLOSE_COMBAT
|
|
.4byte BattleScript_EffectLastResort @ EFFECT_LAST_RESORT
|
|
.4byte BattleScript_EffectHit @ EFFECT_RECOIL_33_STATUS
|
|
.4byte BattleScript_EffectFlinchStatus @ EFFECT_FLINCH_STATUS
|
|
.4byte BattleScript_EffectHit @ EFFECT_RECOIL_50
|
|
.4byte BattleScript_EffectShellSmash @ EFFECT_SHELL_SMASH
|
|
.4byte BattleScript_EffectShiftGear @ EFFECT_SHIFT_GEAR
|
|
.4byte BattleScript_EffectDefenseUp3 @ EFFECT_DEFENSE_UP_3
|
|
.4byte BattleScript_EffectNobleRoar @ EFFECT_NOBLE_ROAR
|
|
.4byte BattleScript_EffectVenomDrench @ EFFECT_VENOM_DRENCH
|
|
.4byte BattleScript_EffectToxicThread @ EFFECT_TOXIC_THREAD
|
|
.4byte BattleScript_EffectClearSmog @ EFFECT_CLEAR_SMOG
|
|
.4byte BattleScript_EffectHitSwitchTarget @ EFFECT_HIT_SWITCH_TARGET
|
|
.4byte BattleScript_EffectFinalGambit @ EFFECT_FINAL_GAMBIT
|
|
.4byte BattleScript_EffectHit @ EFFECT_CHANGE_TYPE_ON_ITEM
|
|
.4byte BattleScript_EffectAutotomize @ EFFECT_AUTOTOMIZE
|
|
.4byte BattleScript_EffectCopycat @ EFFECT_COPYCAT
|
|
.4byte BattleScript_EffectDefog @ EFFECT_DEFOG
|
|
.4byte BattleScript_EffectHitEnemyHealAlly @ EFFECT_HIT_ENEMY_HEAL_ALLY
|
|
.4byte BattleScript_EffectSmackDown @ EFFECT_SMACK_DOWN
|
|
.4byte BattleScript_EffectSynchronoise @ EFFECT_SYNCHRONOISE
|
|
.4byte BattleScript_EffectPsychoShift @ EFFECT_PSYCHO_SHIFT
|
|
.4byte BattleScript_EffectPowerTrick @ EFFECT_POWER_TRICK
|
|
.4byte BattleScript_EffectFlameBurst @ EFFECT_FLAME_BURST
|
|
.4byte BattleScript_EffectAfterYou @ EFFECT_AFTER_YOU
|
|
.4byte BattleScript_EffectBestow @ EFFECT_BESTOW
|
|
.4byte BattleScript_EffectRototiller @ EFFECT_ROTOTILLER
|
|
.4byte BattleScript_EffectFlowerShield @ EFFECT_FLOWER_SHIELD
|
|
.4byte BattleScript_EffectHitPreventEscape @ EFFECT_HIT_PREVENT_ESCAPE
|
|
.4byte BattleScript_EffectSpeedSwap @ EFFECT_SPEED_SWAP
|
|
.4byte BattleScript_EffectDefenseUp2Hit @ EFFECT_DEFENSE_UP2_HIT
|
|
.4byte BattleScript_EffectHit @ EFFECT_REVELATION_DANCE
|
|
.4byte BattleScript_EffectAuroraVeil @ EFFECT_AURORA_VEIL
|
|
.4byte BattleScript_EffectThirdType @ EFFECT_THIRD_TYPE
|
|
.4byte BattleScript_EffectFeint @ EFFECT_FEINT
|
|
.4byte BattleScript_EffectSparklingAria @ EFFECT_SPARKLING_ARIA
|
|
.4byte BattleScript_EffectAcupressure @ EFFECT_ACUPRESSURE
|
|
.4byte BattleScript_EffectAromaticMist @ EFFECT_AROMATIC_MIST
|
|
.4byte BattleScript_EffectPowder @ EFFECT_POWDER
|
|
.4byte BattleScript_EffectSpAtkUpHit @ EFFECT_SP_ATTACK_UP_HIT
|
|
.4byte BattleScript_EffectHit @ EFFECT_BELCH
|
|
.4byte BattleScript_EffectPartingShot @ EFFECT_PARTING_SHOT
|
|
.4byte BattleScript_EffectSpectralThief @ EFFECT_SPECTRAL_THIEF
|
|
.4byte BattleScript_EffectVCreate @ EFFECT_V_CREATE
|
|
.4byte BattleScript_EffectMatBlock @ EFFECT_MAT_BLOCK
|
|
.4byte BattleScript_EffectHit @ EFFECT_STOMPING_TANTRUM
|
|
.4byte BattleScript_EffectCoreEnforcer @ EFFECT_CORE_ENFORCER
|
|
.4byte BattleScript_EffectInstruct @ EFFECT_INSTRUCT
|
|
.4byte BattleScript_EffectThroatChop @ EFFECT_THROAT_CHOP
|
|
.4byte BattleScript_EffectLaserFocus @ EFFECT_LASER_FOCUS
|
|
.4byte BattleScript_EffectMagneticFlux @ EFFECT_MAGNETIC_FLUX
|
|
.4byte BattleScript_EffectGearUp @ EFFECT_GEAR_UP
|
|
.4byte BattleScript_EffectIncinerate @ EFFECT_INCINERATE
|
|
.4byte BattleScript_EffectBugBite @ EFFECT_BUG_BITE
|
|
.4byte BattleScript_EffectStrengthSap @ EFFECT_STRENGTH_SAP
|
|
.4byte BattleScript_EffectMindBlown @ EFFECT_MIND_BLOWN
|
|
.4byte BattleScript_EffectPurify @ EFFECT_PURIFY
|
|
.4byte BattleScript_EffectBurnUp @ EFFECT_BURN_UP
|
|
.4byte BattleScript_EffectShoreUp @ EFFECT_SHORE_UP
|
|
.4byte BattleScript_EffectGeomancy @ EFFECT_GEOMANCY
|
|
.4byte BattleScript_EffectFairyLock @ EFFECT_FAIRY_LOCK
|
|
.4byte BattleScript_EffectAllySwitch @ EFFECT_ALLY_SWITCH
|
|
.4byte BattleScript_EffectRelicSong @ EFFECT_RELIC_SONG
|
|
.4byte BattleScript_EffectAttackerDefenseDownHit @ EFFECT_ATTACKER_DEFENSE_DOWN_HIT
|
|
.4byte BattleScript_EffectHit @ EFFECT_BODY_PRESS
|
|
.4byte BattleScript_EffectEerieSpell @ EFFECT_EERIE_SPELL
|
|
.4byte BattleScript_EffectJungleHealing @ EFFECT_JUNGLE_HEALING
|
|
.4byte BattleScript_EffectCoaching @ EFFECT_COACHING
|
|
.4byte BattleScript_EffectHit @ EFFECT_LASH_OUT
|
|
.4byte BattleScript_EffectHit @ EFFECT_GRASSY_GLIDE
|
|
.4byte BattleScript_EffectRemoveTerrain @ EFFECT_REMOVE_TERRAIN
|
|
.4byte BattleScript_EffectHit @ EFFECT_DYNAMAX_DOUBLE_DMG
|
|
.4byte BattleScript_EffectDecorate @ EFFECT_DECORATE
|
|
.4byte BattleScript_EffectHit @ EFFECT_SNIPE_SHOT
|
|
.4byte BattleScript_EffectRecoilHP25 @ EFFECT_RECOIL_HP_25
|
|
.4byte BattleScript_EffectStuffCheeks @ EFFECT_STUFF_CHEEKS
|
|
.4byte BattleScript_EffectDefenseDownHit @ EFFECT_GRAV_APPLE
|
|
.4byte BattleScript_EffectEvasionUpHit @ EFFECT_EVASION_UP_HIT
|
|
.4byte BattleScript_EffectGlitzyGlow @ EFFECT_GLITZY_GLOW
|
|
.4byte BattleScript_EffectBaddyBad @ EFFECT_BADDY_BAD
|
|
.4byte BattleScript_EffectSappySeed @ EFFECT_SAPPY_SEED
|
|
.4byte BattleScript_EffectFreezyFrost @ EFFECT_FREEZY_FROST
|
|
.4byte BattleScript_EffectSparklySwirl @ EFFECT_SPARKLY_SWIRL
|
|
.4byte BattleScript_EffectPlasmaFists @ EFFECT_PLASMA_FISTS
|
|
.4byte BattleScript_EffectHyperspaceFury @ EFFECT_HYPERSPACE_FURY
|
|
.4byte BattleScript_EffectAuraWheel @ EFFECT_AURA_WHEEL
|
|
.4byte BattleScript_EffectPhotonGeyser @ EFFECT_PHOTON_GEYSER
|
|
.4byte BattleScript_EffectShellSideArm @ EFFECT_SHELL_SIDE_ARM
|
|
.4byte BattleScript_EffectHit @ EFFECT_TERRAIN_PULSE
|
|
.4byte BattleScript_EffectJawLock @ EFFECT_JAW_LOCK
|
|
.4byte BattleScript_EffectNoRetreat @ EFFECT_NO_RETREAT
|
|
.4byte BattleScript_EffectTarShot @ EFFECT_TAR_SHOT
|
|
.4byte BattleScript_EffectPoltergeist @ EFFECT_POLTERGEIST
|
|
.4byte BattleScript_EffectOctolock @ EFFECT_OCTOLOCK
|
|
.4byte BattleScript_EffectClangorousSoul @ EFFECT_CLANGOROUS_SOUL
|
|
.4byte BattleScript_EffectHit @ EFFECT_BOLT_BEAK
|
|
.4byte BattleScript_EffectSkyDrop @ EFFECT_SKY_DROP
|
|
.4byte BattleScript_EffectHit @ EFFECT_EXPANDING_FORCE
|
|
.4byte BattleScript_EffectScaleShot @ EFFECT_SCALE_SHOT
|
|
.4byte BattleScript_EffectMeteorBeam @ EFFECT_METEOR_BEAM
|
|
.4byte BattleScript_EffectHit @ EFFECT_RISING_VOLTAGE
|
|
.4byte BattleScript_EffectHit @ EFFECT_BEAK_BLAST
|
|
.4byte BattleScript_EffectCourtChange @ EFFECT_COURT_CHANGE
|
|
.4byte BattleScript_EffectSteelBeam @ EFFECT_STEEL_BEAM
|
|
.4byte BattleScript_EffectExtremeEvoboost @ EFFECT_EXTREME_EVOBOOST
|
|
.4byte BattleScript_EffectTerrainHit @ EFFECT_DAMAGE_SET_TERRAIN
|
|
.4byte BattleScript_EffectDarkVoid @ EFFECT_DARK_VOID
|
|
.4byte BattleScript_EffectSleepHit @ EFFECT_SLEEP_HIT
|
|
.4byte BattleScript_EffectDoubleShock @ EFFECT_DOUBLE_SHOCK
|
|
.4byte BattleScript_EffectSpecialAttackUpHit @ EFFECT_SPECIAL_ATTACK_UP_HIT
|
|
.4byte BattleScript_EffectVictoryDance @ EFFECT_VICTORY_DANCE
|
|
.4byte BattleScript_EffectTeatime @ EFFECT_TEATIME
|
|
|
|
BattleScript_EffectTeatime::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifteanoberry BattleScript_ButItFailed
|
|
@ at least one battler is affected
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_TeatimeLoop:
|
|
jumpifteainvulnerable BS_TARGET, BattleScript_Teatimevul
|
|
jumpifrodaffected BS_TARGET, BattleScript_Teatimerod
|
|
jumpifabsorbaffected BS_TARGET, BattleScript_Teatimesorb
|
|
jumpifmotoraffected BS_TARGET, BattleScript_Teatimemotor
|
|
orword gHitMarker, HITMARKER_NO_ANIMATIONS | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE
|
|
setbyte sBERRY_OVERRIDE, TRUE @ override the requirements for eating berries
|
|
consumeberry BS_TARGET, TRUE @ consume the berry, then restore the item from changedItems
|
|
bicword gHitMarker, HITMARKER_NO_ANIMATIONS | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE
|
|
setbyte sBERRY_OVERRIDE, FALSE
|
|
removeitem BS_TARGET
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_TeatimeLoop
|
|
moveendcase MOVEEND_CLEAR_BITS
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_Teatimevul:
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_TeatimeLoop
|
|
moveendcase MOVEEND_CLEAR_BITS
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_Teatimesorb:
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
call BattleScript_AbilityPopUp
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_TeatimeLoop
|
|
moveendcase MOVEEND_CLEAR_BITS
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_Teatimerod:
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
call BattleScript_AbilityPopUp
|
|
playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_BY_TWO
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TeatimeBuffer
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TeatimeBuffer
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_TeatimeLoop
|
|
moveendcase MOVEEND_CLEAR_BITS
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_Teatimemotor:
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
call BattleScript_AbilityPopUp
|
|
playstatchangeanimation BS_TARGET, BIT_SPEED, STAT_CHANGE_BY_TWO
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TeatimeBuffer
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TeatimeBuffer
|
|
printfromtable gStatUpStringIds
|
|
waitmessage 0x40
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_TeatimeLoop
|
|
moveendcase MOVEEND_CLEAR_BITS
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_TeatimeBuffer:
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_TeatimeLoop
|
|
moveendcase MOVEEND_CLEAR_BITS
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AffectionBasedEndurance::
|
|
playanimation BS_TARGET, B_ANIM_AFFECTION_HANGED_ON
|
|
printstring STRINGID_TARGETTOUGHEDITOUT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AffectionBasedStatusHeal::
|
|
jumpifstatus BS_ATTACKER, STATUS1_POISON | STATUS1_TOXIC_POISON, BattleScript_AffectionBasedStatus_HealPoisonString
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_AffectionBasedStatus_HealSleepString
|
|
jumpifstatus BS_ATTACKER, STATUS1_PARALYSIS, BattleScript_AffectionBasedStatus_HealParalysisString
|
|
jumpifstatus BS_ATTACKER, STATUS1_BURN, BattleScript_AffectionBasedStatus_HealBurnString
|
|
jumpifstatus BS_ATTACKER, STATUS1_FREEZE, BattleScript_AffectionBasedStatus_HealFreezeString
|
|
end2
|
|
BattleScript_AffectionBasedStatus_HealPoisonString:
|
|
printstring STRINGID_ATTACKEREXPELLEDTHEPOISON
|
|
goto BattleScript_AffectionBasedStatusHeal_Continue
|
|
BattleScript_AffectionBasedStatus_HealSleepString:
|
|
printstring STRINGID_ATTACKERSHOOKITSELFAWAKE
|
|
goto BattleScript_AffectionBasedStatusHeal_Continue
|
|
BattleScript_AffectionBasedStatus_HealParalysisString:
|
|
printstring STRINGID_ATTACKERBROKETHROUGHPARALYSIS
|
|
goto BattleScript_AffectionBasedStatusHeal_Continue
|
|
BattleScript_AffectionBasedStatus_HealBurnString:
|
|
printstring STRINGID_ATTACKERHEALEDITSBURN
|
|
goto BattleScript_AffectionBasedStatusHeal_Continue
|
|
BattleScript_AffectionBasedStatus_HealFreezeString:
|
|
printstring STRINGID_ATTACKERMELTEDTHEICE
|
|
BattleScript_AffectionBasedStatusHeal_Continue:
|
|
waitmessage B_WAIT_TIME_LONG
|
|
clearstatus BS_ATTACKER
|
|
waitstate
|
|
updatestatusicon BS_ATTACKER
|
|
waitstate
|
|
end2
|
|
|
|
BattleScript_EffectSteelBeam::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_SteelBeamMiss, ACC_CURR_MOVE
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
seteffectwithchance
|
|
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_SteelBeamAfterSelfDamage
|
|
call BattleScript_SteelBeamSelfDamage
|
|
BattleScript_SteelBeamAfterSelfDamage::
|
|
waitstate
|
|
tryfaintmon BS_ATTACKER
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_SteelBeamMiss::
|
|
pause B_WAIT_TIME_SHORT
|
|
effectivenesssound
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_MoveEnd
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
|
call BattleScript_SteelBeamSelfDamage
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
|
goto BattleScript_SteelBeamAfterSelfDamage
|
|
|
|
BattleScript_SteelBeamSelfDamage::
|
|
dmg_1_2_attackerhp
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_EffectCourtChange::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
swapsidestatuses
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_COURTCHANGE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BeakBlastSetUp::
|
|
setbeakblast BS_ATTACKER
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL
|
|
printstring STRINGID_HEATUPBEAK
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_BeakBlastBurn::
|
|
setbyte cMULTISTRING_CHOOSER, 0
|
|
copybyte gEffectBattler, gBattlerAttacker
|
|
call BattleScript_MoveEffectBurn
|
|
return
|
|
|
|
BattleScript_EffectMeteorBeam::
|
|
@ DecideTurn
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
|
|
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_METEOR_BEAM
|
|
call BattleScript_FirstChargingTurnMeteorBeam
|
|
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
|
|
call BattleScript_PowerHerbActivation
|
|
goto BattleScript_TwoTurnMovesSecondTurn
|
|
|
|
BattleScript_FirstChargingTurnMeteorBeam::
|
|
attackcanceler
|
|
printstring STRINGID_EMPTYSTRING3
|
|
ppreduce
|
|
attackanimation
|
|
waitanimation
|
|
orword gHitMarker, HITMARKER_CHARGING
|
|
setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER
|
|
seteffectprimary
|
|
copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID
|
|
printfromtable gFirstTurnOfTwoStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveeffect MOVE_EFFECT_SP_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
|
|
seteffectsecondary
|
|
return
|
|
|
|
BattleScript_EffectScaleShot::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
setmultihitcounter 0x0
|
|
initmultihitstring
|
|
sethword sMULTIHIT_EFFECT, 0x0
|
|
BattleScript_ScaleShotLoop::
|
|
jumpifhasnohp BS_ATTACKER, BattleScript_ScaleShotEnd
|
|
jumpifhasnohp BS_TARGET, BattleScript_ScaleShotPrintStrings
|
|
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_ScaleShotDoMultiHit
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_ScaleShotPrintStrings
|
|
BattleScript_ScaleShotDoMultiHit::
|
|
movevaluescleanup
|
|
copyhword sMOVE_EFFECT, sMULTIHIT_EFFECT
|
|
critcalc
|
|
damagecalc
|
|
jumpifmovehadnoeffect BattleScript_ScaleShotMultiHitNoMoreHits
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
multihitresultmessage
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
addbyte sMULTIHIT_STRING + 4, 0x1
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_ScaleShotPrintStrings
|
|
decrementmultihit BattleScript_ScaleShotLoop
|
|
goto BattleScript_ScaleShotPrintStrings
|
|
BattleScript_ScaleShotMultiHitNoMoreHits::
|
|
pause B_WAIT_TIME_SHORT
|
|
BattleScript_ScaleShotPrintStrings::
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifmovehadnoeffect BattleScript_ScaleShotEnd
|
|
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6
|
|
printstring STRINGID_HITXTIMES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ScaleShotEnd::
|
|
setmoveeffect MOVE_EFFECT_SCALE_SHOT | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
seteffectwithchance
|
|
tryfaintmon BS_TARGET
|
|
moveendcase MOVEEND_SYNCHRONIZE_TARGET
|
|
moveendfrom MOVEEND_STATUS_IMMUNITY_ABILITIES
|
|
end
|
|
|
|
BattleScript_EffectSkyDrop:
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SkyDropTurn2
|
|
attackcanceler
|
|
ppreduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpiftargetally BattleScript_ButItFailed
|
|
jumpifunder200 BS_TARGET, BattleScript_SkyDropWork
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_TARGETTOOHEAVY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SkyDropWork:
|
|
setskydrop
|
|
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_SKY_DROP
|
|
setsemiinvulnerablebit
|
|
call BattleScriptFirstChargingTurnAfterAttackString
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_SkyDropTurn2:
|
|
attackcanceler
|
|
setmoveeffect MOVE_EFFECT_CHARGING
|
|
setbyte sB_ANIM_TURN, 0x1
|
|
clearstatusfromeffect BS_ATTACKER
|
|
orword gHitMarker, HITMARKER_NO_PPDEDUCT
|
|
argumenttomoveeffect
|
|
clearsemiinvulnerablebit
|
|
attackstring
|
|
clearskydrop BattleScript_SkyDropChangedTarget
|
|
jumpiftype BS_TARGET, TYPE_FLYING, BattleScript_SkyDropFlyingType
|
|
goto BattleScript_HitFromCritCalc
|
|
BattleScript_SkyDropFlyingType:
|
|
makevisible BS_TARGET
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
makevisible BS_ATTACKER
|
|
jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_SkyDropFlyingAlreadyConfused
|
|
jumpifstatus2 BS_TARGET, STATUS2_LOCK_CONFUSE, BattleScript_SkyDropFlyingConfuseLock
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_SkyDropChangedTarget:
|
|
pause B_WAIT_TIME_SHORT
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
makevisible BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SkyDropFlyingConfuseLock:
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
seteffectprimary
|
|
BattleScript_SkyDropFlyingAlreadyConfused:
|
|
setmoveeffect MOVE_EFFECT_THRASH
|
|
clearstatusfromeffect BS_TARGET
|
|
jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_MoveEnd
|
|
setbyte BS_ATTACKER, BS_TARGET
|
|
goto BattleScript_ThrashConfuses
|
|
|
|
BattleScript_EffectFling:
|
|
jumpifcantfling BS_ATTACKER, BattleScript_ButItFailedAtkStringPpReduce
|
|
jumpifstatus3 BS_ATTACKER, STATUS3_EMBARGO, BattleScript_ButItFailedAtkStringPpReduce
|
|
jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_MAGIC_ROOM, BattleScript_ButItFailedAtkStringPpReduce
|
|
setlastuseditem BS_ATTACKER
|
|
removeitem BS_ATTACKER
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNFLUNG
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_MED
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_MED
|
|
jumpiflastuseditemberry BattleScript_EffectFlingConsumeBerry
|
|
jumpiflastuseditemholdeffect BS_ATTACKER, HOLD_EFFECT_FLAME_ORB, BattleScript_FlingFlameOrb
|
|
jumpiflastuseditemholdeffect BS_ATTACKER, HOLD_EFFECT_FLINCH, BattleScript_FlingFlinch
|
|
jumpiflastuseditemholdeffect BS_ATTACKER, HOLD_EFFECT_LIGHT_BALL, BattleScript_FlingLightBall
|
|
jumpiflastuseditemholdeffect BS_ATTACKER, HOLD_EFFECT_MENTAL_HERB, BattleScript_FlingMentalHerb
|
|
jumpiflastuseditemholdeffect BS_ATTACKER, HOLD_EFFECT_POISON_POWER, BattleScript_FlingPoisonBarb
|
|
jumpiflastuseditemholdeffect BS_ATTACKER, HOLD_EFFECT_TOXIC_ORB, BattleScript_FlingToxicOrb
|
|
jumpiflastuseditemholdeffect BS_ATTACKER, HOLD_EFFECT_RESTORE_STATS, BattleScript_FlingWhiteHerb
|
|
BattleScript_EffectFlingConsumeBerry:
|
|
savebattleritem BS_TARGET
|
|
battleritemtolastuseditem BS_TARGET
|
|
setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries
|
|
orword gHitMarker, HITMARKER_NO_ANIMATIONS
|
|
consumeberry BS_TARGET, TRUE
|
|
bicword gHitMarker, HITMARKER_NO_ANIMATIONS
|
|
setbyte sBERRY_OVERRIDE, 0
|
|
restorebattleritem BS_TARGET
|
|
BattleScript_FlingEnd:
|
|
tryfaintmon BS_TARGET
|
|
trysymbiosis
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_FlingFlameOrb:
|
|
setmoveeffect MOVE_EFFECT_BURN
|
|
seteffectprimary
|
|
goto BattleScript_FlingEnd
|
|
BattleScript_FlingFlinch:
|
|
setmoveeffect MOVE_EFFECT_FLINCH
|
|
seteffectprimary
|
|
goto BattleScript_FlingEnd
|
|
BattleScript_FlingLightBall:
|
|
setmoveeffect MOVE_EFFECT_PARALYSIS
|
|
seteffectprimary
|
|
goto BattleScript_FlingEnd
|
|
BattleScript_FlingMentalHerb:
|
|
curecertainstatuses BS_TARGET
|
|
savetarget
|
|
copybyte gBattlerAttacker, gBattlerTarget
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL
|
|
printfromtable gMentalHerbCureStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_ATTACKER
|
|
restoretarget
|
|
goto BattleScript_FlingEnd
|
|
BattleScript_FlingPoisonBarb:
|
|
setmoveeffect MOVE_EFFECT_POISON
|
|
seteffectprimary
|
|
goto BattleScript_FlingEnd
|
|
BattleScript_FlingToxicOrb:
|
|
setmoveeffect MOVE_EFFECT_TOXIC
|
|
seteffectprimary
|
|
goto BattleScript_FlingEnd
|
|
BattleScript_FlingWhiteHerb:
|
|
tryresetnegativestatstages BS_TARGET
|
|
swapattackerwithtarget
|
|
printstring STRINGID_PKMNSTATUSNORMAL
|
|
waitmessage B_WAIT_TIME_MED
|
|
swapattackerwithtarget
|
|
goto BattleScript_FlingEnd
|
|
|
|
BattleScript_EffectShellSideArm:
|
|
shellsidearmcheck
|
|
setmoveeffect MOVE_EFFECT_POISON
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectPhotonGeyser:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
photongeysercheck BS_ATTACKER
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
seteffectwithchance
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAuraWheel: @ Aura Wheel can only be used by Morpeko
|
|
jumpifspecies BS_ATTACKER, SPECIES_MORPEKO, BattleScript_EffectSpeedUpHit
|
|
jumpifspecies BS_ATTACKER, SPECIES_MORPEKO_HANGRY, BattleScript_EffectSpeedUpHit
|
|
goto BattleScript_PokemonCantUseTheMove
|
|
|
|
BattleScript_EffectClangorousSoul:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
cutonethirdhpraisestats BattleScript_ButItFailed
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_SKIP_DMG_TRACK | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
call BattleScript_AllStatsUp
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectOctolock:
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
setoctolock BS_TARGET, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_OctolockEndTurn::
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_OctolockLowerDef
|
|
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_OctolockTryLowerSpDef
|
|
goto BattleScript_OctolockEnd2
|
|
BattleScript_OctolockLowerDef:
|
|
jumpifability BS_TARGET, ABILITY_BIG_PECKS, BattleScript_OctolockTryLowerSpDef
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_NEGATIVE
|
|
setbyte sSTAT_ANIM_PLAYED, TRUE
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_OctolockTryLowerSpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_OctolockTryLowerSpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_OctolockTryLowerSpDef:
|
|
jumpifbyte CMP_EQUAL, sSTAT_ANIM_PLAYED, TRUE, BattleScript_OctolockSkipSpDefAnim
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPDEF, STAT_CHANGE_NEGATIVE
|
|
BattleScript_OctolockSkipSpDefAnim:
|
|
setstatchanger STAT_SPDEF, 1, TRUE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_OctolockEnd2
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_OctolockEnd2
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_OctolockEnd2::
|
|
end2
|
|
|
|
BattleScript_EffectPoltergeist:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
checkpoltergeist BS_TARGET, BattleScript_ButItFailed
|
|
printstring STRINGID_ABOUTTOUSEPOLTERGEIST
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_HitFromCritCalc
|
|
|
|
BattleScript_EffectTarShot:
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
cantarshotwork BS_TARGET, BattleScript_ButItFailedAtkStringPpReduce
|
|
attackstring
|
|
ppreduce
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
attackanimation
|
|
waitanimation
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TryTarShot
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_TryTarShot:
|
|
trytarshot BS_TARGET, BattleScript_MoveEnd
|
|
printstring STRINGID_PKMNBECAMEWEAKERTOFIRE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectNoRetreat:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
trynoretreat BS_TARGET, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
call BattleScript_AllStatsUp
|
|
jumpifstatus2 BS_TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_MoveEnd
|
|
setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE
|
|
seteffectprimary
|
|
printstring STRINGID_CANTESCAPEDUETOUSEDMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectJawLock:
|
|
setmoveeffect MOVE_EFFECT_TRAP_BOTH | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_BothCanNoLongerEscape::
|
|
printstring STRINGID_BOTHCANNOLONGERESCAPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectHyperspaceFury:
|
|
jumpifspecies BS_ATTACKER, SPECIES_HOOPA_UNBOUND, BattleScript_EffectHyperspaceFuryUnbound
|
|
jumpifspecies BS_ATTACKER, SPECIES_HOOPA, BattleScript_ButHoopaCantUseIt
|
|
goto BattleScript_PokemonCantUseTheMove
|
|
|
|
BattleScript_EffectHyperspaceFuryUnbound::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
pause B_WAIT_TIME_LONG
|
|
ppreduce
|
|
setmoveeffect MOVE_EFFECT_FEINT
|
|
seteffectwithchance
|
|
setmoveeffect MOVE_EFFECT_DEF_MINUS_1 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_HitFromCritCalc
|
|
|
|
BattleScript_ButHoopaCantUseIt:
|
|
printstring STRINGID_BUTHOOPACANTUSEIT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_HyperspaceFuryRemoveProtect::
|
|
printstring STRINGID_BROKETHROUGHPROTECTION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectPlasmaFists:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
seteffectwithchance
|
|
tryfaintmon BS_TARGET
|
|
applyplasmafists
|
|
printstring STRINGID_IONDELUGEON
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSparklySwirl:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
healpartystatus
|
|
waitstate
|
|
updatestatusicon BS_ATTACKER_WITH_PARTNER
|
|
waitstate
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFreezyFrost:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
normalisebuffs
|
|
printstring STRINGID_STATCHANGESGONE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSappySeed:
|
|
jumpifstatus3 BS_TARGET, STATUS3_LEECHSEED, BattleScript_EffectHit
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
jumpifhasnohp BS_TARGET, BattleScript_MoveEnd
|
|
setseeded
|
|
printfromtable gLeechSeedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectBaddyBad:
|
|
jumpifsideaffecting BS_ATTACKER, SIDE_STATUS_REFLECT, BattleScript_EffectHit
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
setreflect
|
|
printfromtable gReflectLightScreenSafeguardStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGlitzyGlow:
|
|
jumpifsideaffecting BS_ATTACKER, SIDE_STATUS_LIGHTSCREEN, BattleScript_EffectHit
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
setlightscreen
|
|
printfromtable gReflectLightScreenSafeguardStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectEvasionUpHit:
|
|
setmoveeffect MOVE_EFFECT_EVS_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectStuffCheeks::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifnotberry BS_ATTACKER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_StuffCheeksEatBerry:
|
|
setbyte sBERRY_OVERRIDE, 1
|
|
orword gHitMarker, HITMARKER_NO_ANIMATIONS
|
|
consumeberry BS_ATTACKER, TRUE
|
|
bicword gHitMarker, HITMARKER_NO_ANIMATIONS
|
|
setbyte sBERRY_OVERRIDE, 0
|
|
removeitem BS_ATTACKER
|
|
setstatchanger STAT_DEF, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_StuffCheeksEnd
|
|
setgraphicalstatchangevalues
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StuffCheeksEnd @ cant raise def
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_StuffCheeksEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDecorate:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, 12, BattleScript_DecorateBoost
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPATK, 12, BattleScript_DecorateBoost
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_DecorateBoost:
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, 0x0
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_DecorateBoostSpAtk
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DecorateBoostSpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DecorateBoostSpAtk:
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_MoveEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_MoveEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRemoveTerrain:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifword CMP_NO_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_ANY, BattleScript_ButItFailed
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeterrain
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 4, BattleScript_MoveEnd
|
|
printfromtable gTerrainEndingStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCoaching:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifnoally BS_ATTACKER, BattleScript_ButItFailed
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
setallytonexttarget EffectCoaching_CheckAllyStats
|
|
goto BattleScript_ButItFailed
|
|
EffectCoaching_CheckAllyStats:
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_CoachingWorks
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_DEF, MAX_STAT_STAGE, BattleScript_CoachingWorks
|
|
goto BattleScript_ButItFailed @ ally at max atk, def
|
|
BattleScript_CoachingWorks:
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, 0x0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_CoachingBoostDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CoachingBoostDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CoachingBoostDef:
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_MoveEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_MoveEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectJungleHealing:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifteamhealthy BS_ATTACKER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
setbyte gBattleCommunication, 0
|
|
JungleHealing_RestoreTargetHealth:
|
|
copybyte gBattlerAttacker, gBattlerTarget
|
|
tryhealquarterhealth BS_TARGET, BattleScript_JungleHealing_TryCureStatus
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_JungleHealing_TryCureStatus:
|
|
jumpifmove MOVE_LIFE_DEW, BattleScript_JungleHealingTryRestoreAlly @ life dew only heals
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_JungleHealingCureStatus
|
|
goto BattleScript_JungleHealingTryRestoreAlly
|
|
BattleScript_JungleHealingCureStatus:
|
|
curestatus BS_TARGET
|
|
updatestatusicon BS_TARGET
|
|
printstring STRINGID_PKMNSTATUSNORMAL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_JungleHealingTryRestoreAlly:
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_MoveEnd
|
|
addbyte gBattleCommunication, 1
|
|
jumpifnoally BS_TARGET, BattleScript_MoveEnd
|
|
setallytonexttarget JungleHealing_RestoreTargetHealth
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackerDefenseDownHit:
|
|
setmoveeffect MOVE_EFFECT_DEF_MINUS_1 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectRelicSong:
|
|
setmoveeffect MOVE_EFFECT_RELIC_SONG | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
seteffectwithchance
|
|
argumentstatuseffect
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAllySwitch:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifnoally BS_ATTACKER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_ALLYSWITCHPOSITION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFairyLock:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
trysetfairylock BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_NOONEWILLBEABLETORUNAWAY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectBurnUp:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpiftype BS_ATTACKER, TYPE_FIRE, BattleScript_BurnUpWorks
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_BurnUpWorks:
|
|
setmoveeffect MOVE_EFFECT_BURN_UP | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_BurnUpRemoveType::
|
|
losetype BS_ATTACKER, TYPE_FIRE
|
|
printstring STRINGID_ATTACKERLOSTFIRETYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectDoubleShock:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpiftype BS_ATTACKER, TYPE_ELECTRIC, BattleScript_DoubleShockWorks
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_DoubleShockWorks:
|
|
setmoveeffect MOVE_EFFECT_DOUBLE_SHOCK | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_DoubleShockRemoveType::
|
|
losetype BS_ATTACKER, TYPE_ELECTRIC
|
|
printstring STRINGID_ATTACKERLOSTELECTRICTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectPurify:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_PurifyWorks
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_PurifyWorks:
|
|
attackanimation
|
|
waitanimation
|
|
curestatus BS_TARGET
|
|
updatestatusicon BS_TARGET
|
|
printstring STRINGID_ATTACKERCUREDTARGETSTATUS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER
|
|
goto BattleScript_RestoreHp
|
|
|
|
BattleScript_EffectStrengthSap:
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, MIN_STAT_STAGE, BattleScript_StrengthSapTryLower
|
|
pause B_WAIT_TIME_SHORT
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_StrengthSapTryLower:
|
|
getstatvalue BS_TARGET, STAT_ATK
|
|
jumpiffullhp BS_ATTACKER, BattleScript_StrengthSapMustLower
|
|
attackanimation
|
|
waitanimation
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_StrengthSapHp
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StrengthSapHp
|
|
BattleScript_StrengthSapLower:
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_StrengthSapHp
|
|
@ Drain HP without lowering a stat
|
|
BattleScript_StrengthSapTryHp:
|
|
jumpiffullhp BS_ATTACKER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_StrengthSapHp:
|
|
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_MoveEnd
|
|
jumpiffullhp BS_ATTACKER, BattleScript_MoveEnd
|
|
manipulatedamage DMG_BIG_ROOT
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_PKMNENERGYDRAINED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_StrengthSapMustLower:
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_MoveEnd
|
|
attackanimation
|
|
waitanimation
|
|
goto BattleScript_StrengthSapLower
|
|
|
|
BattleScript_EffectBugBite:
|
|
setmoveeffect MOVE_EFFECT_BUG_BITE | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectIncinerate:
|
|
setmoveeffect MOVE_EFFECT_INCINERATE | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_MoveEffectIncinerate::
|
|
printstring STRINGID_INCINERATEBURN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveEffectBugBite::
|
|
printstring STRINGID_BUGBITE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_NO_ANIMATIONS
|
|
setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries
|
|
savetarget
|
|
consumeberry BS_ATTACKER, FALSE
|
|
bicword gHitMarker, HITMARKER_NO_ANIMATIONS
|
|
setbyte sBERRY_OVERRIDE, 0
|
|
trysymbiosis
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectCoreEnforcer:
|
|
setmoveeffect MOVE_EFFECT_CORE_ENFORCER | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_MoveEffectCoreEnforcer::
|
|
setgastroacid BattleScript_CoreEnforcerRet
|
|
printstring STRINGID_PKMNSABILITYSUPPRESSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
BattleScript_CoreEnforcerRet:
|
|
return
|
|
|
|
BattleScript_EffectLaserFocus:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setuserstatus3 STATUS3_LASER_FOCUS, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_LASERFOCUS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectVCreate:
|
|
setmoveeffect MOVE_EFFECT_V_CREATE | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_VCreateStatLoss::
|
|
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_VCreateStatAnim
|
|
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_VCreateStatAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MIN_STAT_STAGE, BattleScript_VCreateStatLossRet
|
|
BattleScript_VCreateStatAnim:
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF | BIT_SPEED, STAT_CHANGE_NEGATIVE | STAT_CHANGE_CANT_PREVENT
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, BattleScript_VCreateTrySpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VCreateTrySpDef
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VCreateTrySpDef:
|
|
setstatchanger STAT_SPDEF, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, BattleScript_VCreateTrySpeed
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VCreateTrySpeed
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VCreateTrySpeed:
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, BattleScript_VCreateStatLossRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VCreateStatLossRet
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VCreateStatLossRet:
|
|
return
|
|
|
|
BattleScript_SpectralThiefSteal::
|
|
printstring STRINGID_SPECTRALTHIEFSTEAL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setbyte sB_ANIM_ARG2, 0
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
spectralthiefprintstats
|
|
return
|
|
|
|
BattleScript_EffectSpectralThief:
|
|
setmoveeffect MOVE_EFFECT_SPECTRAL_THIEF
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectPartingShot::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_EffectPartingShotTryAtk
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats
|
|
BattleScript_EffectPartingShotTryAtk:
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
|
|
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectPartingShotTrySpAtk
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectPartingShotTrySpAtk:
|
|
playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE
|
|
setstatchanger STAT_SPATK, 1, TRUE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectPartingShotSwitch
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectPartingShotSwitch:
|
|
moveendall
|
|
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_PartingShotEnd
|
|
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_PartingShotEnd
|
|
openpartyscreen BS_ATTACKER, BattleScript_PartingShotEnd
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
switchhandleorder BS_ATTACKER, 2
|
|
returntoball BS_ATTACKER
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_ATTACKER, TRUE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
BattleScript_PartingShotEnd:
|
|
end
|
|
|
|
BattleScript_EffectSpAtkUpHit:
|
|
setmoveeffect MOVE_EFFECT_SP_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectPowder:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
attackstring
|
|
ppreduce
|
|
jumpifstatus2 BS_TARGET, STATUS2_POWDER, BattleScript_ButItFailed
|
|
setpowder BS_TARGET
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_COVEREDINPOWDER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAromaticMist:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed
|
|
jumpiftargetally BattleScript_EffectAromaticMistWorks
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_EffectAromaticMistWorks:
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectAromaticMistEnd
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AromaticMistAnim
|
|
pause B_WAIT_TIME_SHORTEST
|
|
printstring STRINGID_TARGETSTATWONTGOHIGHER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_EffectAromaticMistEnd
|
|
BattleScript_AromaticMistAnim:
|
|
attackanimation
|
|
waitanimation
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectAromaticMistEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMagneticFlux::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setbyte gBattleCommunication, 0
|
|
BattleScript_EffectMagneticFluxStart:
|
|
jumpifability BS_TARGET, ABILITY_MINUS, BattleScript_EffectMagneticFluxCheckStats
|
|
jumpifability BS_TARGET, ABILITY_PLUS, BattleScript_EffectMagneticFluxCheckStats
|
|
goto BattleScript_EffectMagneticFluxLoop
|
|
BattleScript_EffectMagneticFluxCheckStats:
|
|
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_EffectMagneticFluxTryDef
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_EffectMagneticFluxLoop
|
|
BattleScript_EffectMagneticFluxTryDef:
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_EffectMagneticFluxSkipAnim
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_EffectMagneticFluxSkipAnim:
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_DEF | BIT_SPDEF, 0
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMagneticFluxTrySpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectMagneticFluxTrySpDef
|
|
addbyte gBattleCommunication, 1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectMagneticFluxTrySpDef:
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMagneticFluxLoop
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectMagneticFluxLoop
|
|
addbyte gBattleCommunication, 1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectMagneticFluxLoop:
|
|
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectMagneticFluxEnd
|
|
setallytonexttarget BattleScript_EffectMagneticFluxStart
|
|
BattleScript_EffectMagneticFluxEnd:
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_MoveEnd
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_EffectGearUp::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setbyte gBattleCommunication, 0
|
|
BattleScript_EffectGearUpStart:
|
|
jumpifability BS_TARGET, ABILITY_MINUS, BattleScript_EffectGearUpCheckStats
|
|
jumpifability BS_TARGET, ABILITY_PLUS, BattleScript_EffectGearUpCheckStats
|
|
goto BattleScript_EffectGearUpLoop
|
|
BattleScript_EffectGearUpCheckStats:
|
|
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_EffectGearUpTryAtk
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_EffectGearUpLoop
|
|
BattleScript_EffectGearUpTryAtk:
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_EffectGearUpSkipAnim
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_EffectGearUpSkipAnim:
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, 0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectGearUpTrySpAtk
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectGearUpTrySpAtk
|
|
addbyte gBattleCommunication, 1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectGearUpTrySpAtk:
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectGearUpLoop
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectGearUpLoop
|
|
addbyte gBattleCommunication, 1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectGearUpLoop:
|
|
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectGearUpEnd
|
|
setallytonexttarget BattleScript_EffectGearUpStart
|
|
BattleScript_EffectGearUpEnd:
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_MoveEnd
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_EffectAcupressure:
|
|
attackcanceler
|
|
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectAcupressureTry
|
|
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_PrintMoveMissed
|
|
BattleScript_EffectAcupressureTry:
|
|
attackstring
|
|
ppreduce
|
|
tryaccupressure BS_TARGET, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
statbuffchange MOVE_EFFECT_CERTAIN, BattleScript_MoveEnd
|
|
printstring STRINGID_DEFENDERSSTATROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveEffectFeint::
|
|
printstring STRINGID_FELLFORFEINT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectFeint:
|
|
setmoveeffect MOVE_EFFECT_FEINT
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectThirdType:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
trysetthirdtype BS_TARGET, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_THIRDTYPEADDED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDefenseUp2Hit:
|
|
setmoveeffect MOVE_EFFECT_DEF_PLUS_2 | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectFlowerShield:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
selectfirstvalidtarget
|
|
BattleScript_FlowerShieldIsAnyGrass:
|
|
jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_FlowerShieldLoopStart
|
|
jumpifnexttargetvalid BattleScript_FlowerShieldIsAnyGrass
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_FlowerShieldLoopStart:
|
|
selectfirstvalidtarget
|
|
BattleScript_FlowerShieldLoop:
|
|
movevaluescleanup
|
|
jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_FlowerShieldLoop2
|
|
goto BattleScript_FlowerShieldMoveTargetEnd
|
|
BattleScript_FlowerShieldLoop2:
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_FlowerShieldMoveTargetEnd
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_FlowerShieldDoAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_EMPTY, BattleScript_FlowerShieldMoveTargetEnd
|
|
pause 21
|
|
goto BattleScript_FlowerShieldString
|
|
BattleScript_FlowerShieldDoAnim:
|
|
attackanimation
|
|
waitanimation
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_FlowerShieldString:
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_FlowerShieldMoveTargetEnd:
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_FlowerShieldLoop
|
|
end
|
|
|
|
BattleScript_EffectRototiller:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
getrototillertargets BattleScript_ButItFailed
|
|
@ at least one battler is affected
|
|
attackanimation
|
|
waitanimation
|
|
savetarget
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_RototillerLoop:
|
|
movevaluescleanup
|
|
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_RototillerCheckAffected
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_RototillerCantRaiseMultipleStats
|
|
BattleScript_RototillerCheckAffected:
|
|
jumpifnotrototilleraffected BS_TARGET, BattleScript_RototillerNoEffect
|
|
BattleScript_RototillerAffected:
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, 0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_RototillerTrySpAtk
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_RototillerTrySpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_RototillerTrySpAtk::
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_RototillerMoveTargetEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_RototillerMoveTargetEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_RototillerMoveTargetEnd:
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
addbyte gBattlerTarget, 1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_RototillerLoop
|
|
end
|
|
|
|
BattleScript_RototillerCantRaiseMultipleStats:
|
|
copybyte gBattlerAttacker, gBattlerTarget
|
|
printstring STRINGID_STATSWONTINCREASE2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_RototillerMoveTargetEnd
|
|
|
|
BattleScript_RototillerNoEffect:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_NOEFFECTONTARGET
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_RototillerMoveTargetEnd
|
|
|
|
BattleScript_EffectBestow:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
attackstring
|
|
ppreduce
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
trybestow BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_BESTOWITEMGIVING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trysymbiosis
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAfterYou:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
tryafteryou BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_KINDOFFER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFlameBurst:
|
|
setmoveeffect MOVE_EFFECT_FLAME_BURST | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_MoveEffectFlameBurst::
|
|
tryfaintmon BS_TARGET
|
|
copybyte sBATTLER, sSAVED_BATTLER
|
|
printstring STRINGID_BURSTINGFLAMESHIT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
savetarget
|
|
copybyte gBattlerTarget, sSAVED_BATTLER
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
tryfaintmon BS_TARGET
|
|
restoretarget
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPowerTrick:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
powertrick BS_ATTACKER
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSWITCHEDATKANDDEF
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPsychoShift:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifstatus BS_ATTACKER, STATUS1_ANY, BattleScript_EffectPsychoShiftCanWork
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_EffectPsychoShiftCanWork:
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
trypsychoshift BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
copybyte gEffectBattler, gBattlerTarget
|
|
printfromtable gStatusConditionsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_TARGET
|
|
updatestatusicon BS_TARGET
|
|
curestatus BS_ATTACKER
|
|
printstring STRINGID_PKMNSTATUSNORMAL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSynchronoise:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
selectfirstvalidtarget
|
|
BattleScript_SynchronoiseLoop:
|
|
movevaluescleanup
|
|
jumpifcantusesynchronoise BattleScript_SynchronoiseNoEffect
|
|
accuracycheck BattleScript_SynchronoiseMissed, ACC_CURR_MOVE
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
tryfaintmon BS_TARGET
|
|
BattleScript_SynchronoiseMoveTargetEnd:
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_SynchronoiseLoop
|
|
end
|
|
BattleScript_SynchronoiseMissed:
|
|
pause B_WAIT_TIME_SHORT
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_SynchronoiseMoveTargetEnd
|
|
BattleScript_SynchronoiseNoEffect:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_NOEFFECTONTARGET
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_SynchronoiseMoveTargetEnd
|
|
|
|
BattleScript_EffectSmackDown:
|
|
setmoveeffect MOVE_EFFECT_SMACK_DOWN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_MoveEffectSmackDown::
|
|
printstring STRINGID_FELLSTRAIGHTDOWN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectHitEnemyHealAlly:
|
|
jumpiftargetally BattleScript_EffectHealPulse
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectDefog:
|
|
setstatchanger STAT_EVASION, 1, TRUE
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_DefogIfCanClearHazards
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_EVASION, MIN_STAT_STAGE, BattleScript_DefogWorks
|
|
BattleScript_DefogIfCanClearHazards:
|
|
defogclear BS_ATTACKER, FALSE, BattleScript_ButItFailedAtkStringPpReduce
|
|
BattleScript_DefogWorks:
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_DefogTryHazardsWithAnim
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_DefogDoAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_DefogTryHazardsWithAnim
|
|
pause B_WAIT_TIME_SHORT
|
|
goto BattleScript_DefogPrintString
|
|
BattleScript_DefogDoAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_DefogPrintString::
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DefogTryHazards::
|
|
copybyte gEffectBattler, gBattlerAttacker
|
|
defogclear BS_ATTACKER, TRUE, NULL
|
|
copybyte gBattlerAttacker, gEffectBattler
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_DefogTryHazardsWithAnim:
|
|
attackanimation
|
|
waitanimation
|
|
goto BattleScript_DefogTryHazards
|
|
|
|
BattleScript_EffectCopycat:
|
|
attackcanceler
|
|
attackstring
|
|
pause 5
|
|
trycopycat BattleScript_CopycatFail
|
|
attackanimation
|
|
waitanimation
|
|
jumptocalledmove TRUE
|
|
BattleScript_CopycatFail:
|
|
ppreduce
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_EffectInstruct:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
pause 5
|
|
tryinstruct BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_USEDINSTRUCTEDMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setbyte sB_ANIM_TURN, 0
|
|
setbyte sB_ANIM_TARGETS_HIT, 0
|
|
jumptocalledmove TRUE
|
|
|
|
BattleScript_EffectAutotomize:
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AutotomizeWeightLoss
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AutotomizeAttackAnim
|
|
pause B_WAIT_TIME_SHORT
|
|
goto BattleScript_AutotomizePrintString
|
|
BattleScript_AutotomizeAttackAnim::
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_AutotomizeDoAnim::
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_AutotomizePrintString::
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AutotomizeWeightLoss::
|
|
jumpifmovehadnoeffect BattleScript_MoveEnd
|
|
tryautotomize BS_ATTACKER, BattleScript_MoveEnd
|
|
printstring STRINGID_BECAMENIMBLE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFinalGambit:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
dmgtocurrattackerhp
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
dmgtocurrattackerhp
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
seteffectwithchance
|
|
tryfaintmon BS_ATTACKER
|
|
tryfaintmon BS_TARGET
|
|
jumpifmovehadnoeffect BattleScript_MoveEnd
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHitSwitchTarget:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
moveendall
|
|
jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
|
|
jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted
|
|
tryhitswitchtarget BattleScript_EffectHitSwitchTargetMoveEnd
|
|
BattleScript_EffectHitSwitchTargetMoveEnd:
|
|
end
|
|
|
|
BattleScript_EffectClearSmog:
|
|
setmoveeffect MOVE_EFFECT_CLEAR_SMOG
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectToxicThread:
|
|
setstatchanger STAT_SPEED, 2, TRUE
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPEED, MIN_STAT_STAGE, BattleScript_ToxicThreadWorks
|
|
jumpifstatus BS_TARGET, STATUS1_PSN_ANY, BattleScript_ButItFailedAtkStringPpReduce
|
|
BattleScript_ToxicThreadWorks:
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_ToxicThreadTryPsn
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_ToxicThreadDoAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_ToxicThreadTryPsn
|
|
pause B_WAIT_TIME_SHORT
|
|
goto BattleScript_ToxicThreadPrintString
|
|
BattleScript_ToxicThreadDoAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_ToxicThreadPrintString::
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ToxicThreadTryPsn::
|
|
setmoveeffect MOVE_EFFECT_POISON
|
|
seteffectprimary
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectVenomDrench:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstatus BS_TARGET, STATUS1_PSN_ANY, BattleScript_EffectVenomDrenchCanBeUsed
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_EffectVenomDrenchCanBeUsed:
|
|
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_VenomDrenchDoMoveAnim
|
|
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_SPATK, MIN_STAT_STAGE, BattleScript_VenomDrenchDoMoveAnim
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPEED, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats
|
|
BattleScript_VenomDrenchDoMoveAnim::
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK | BIT_SPEED, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
|
|
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_VenomDrenchTryLowerSpAtk
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VenomDrenchTryLowerSpAtk
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VenomDrenchTryLowerSpAtk::
|
|
playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE
|
|
setstatchanger STAT_SPATK, 1, TRUE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_VenomDrenchTryLowerSpeed
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VenomDrenchTryLowerSpeed
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VenomDrenchTryLowerSpeed::
|
|
playstatchangeanimation BS_TARGET, BIT_SPEED, STAT_CHANGE_NEGATIVE
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_VenomDrenchEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VenomDrenchEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VenomDrenchEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectNobleRoar:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_NobleRoarDoMoveAnim
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats
|
|
BattleScript_NobleRoarDoMoveAnim::
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
|
|
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_NobleRoarTryLowerSpAtk
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_NobleRoarTryLowerSpAtk
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_NobleRoarTryLowerSpAtk::
|
|
playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE
|
|
setstatchanger STAT_SPATK, 1, TRUE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_NobleRoarEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_NobleRoarEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_NobleRoarEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectShellSmash:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_ShellSmashTryDef
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_ShellSmashTryDef
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ShellSmashTryDef
|
|
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_ShellSmashTryDef
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_ButItFailed
|
|
BattleScript_ShellSmashTryDef::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_CANT_PREVENT
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_CERTAIN, BattleScript_ShellSmashTrySpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShellSmashTrySpDef:
|
|
setstatchanger STAT_SPDEF, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_CERTAIN, BattleScript_ShellSmashTryAttack
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTryAttack
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShellSmashTryAttack:
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_ATK | BIT_SPEED, STAT_CHANGE_BY_TWO
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_ShellSmashTrySpAtk
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTrySpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShellSmashTrySpAtk:
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_ShellSmashTrySpeed
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTrySpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShellSmashTrySpeed:
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_ShellSmashEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShellSmashEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectLastResort:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifcantuselastresort BS_ATTACKER, BattleScript_ButItFailed
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
goto BattleScript_HitFromCritCalc
|
|
|
|
BattleScript_EffectGrowth:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_GrowthDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_GrowthDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPATK, 0
|
|
jumpifweatheraffected BS_ATTACKER, B_WEATHER_SUN, BattleScript_GrowthAtk2
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
goto BattleScript_GrowthAtk
|
|
BattleScript_GrowthAtk2:
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
BattleScript_GrowthAtk:
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_GrowthTrySpAtk
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GrowthTrySpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GrowthTrySpAtk::
|
|
jumpifweatheraffected BS_ATTACKER, B_WEATHER_SUN, BattleScript_GrowthSpAtk2
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
goto BattleScript_GrowthSpAtk
|
|
BattleScript_GrowthSpAtk2:
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
BattleScript_GrowthSpAtk:
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_GrowthEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GrowthEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GrowthEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSoak:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_MULTITYPE, BattleScript_ButItFailed
|
|
jumpifability BS_TARGET, ABILITY_RKS_SYSTEM, BattleScript_ButItFailed
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
trysoak BattleScript_ButItFailed
|
|
printstring STRINGID_TARGETCHANGEDTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectReflectType:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
tryreflecttype BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_REFLECTTARGETSTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectElectrify:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
tryelectrify BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_TARGETELECTRIFIED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectShiftGear:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ShiftGearDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_ShiftGearDoMoveAnim:
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, 10, BattleScript_ShiftGearSpeedBy1
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPEED | BIT_ATK, STAT_CHANGE_BY_TWO
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
goto BattleScript_ShiftGearDoSpeed
|
|
BattleScript_ShiftGearSpeedBy1:
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPEED | BIT_ATK, 0
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
BattleScript_ShiftGearDoSpeed:
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_ShiftGearTryAtk
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShiftGearTryAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShiftGearTryAtk:
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_ShiftGearEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShiftGearEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShiftGearEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCoil:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_CoilDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_CoilDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ACC, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_CoilDoMoveAnim:
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_ACC, 0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CoilTryDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CoilTryDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CoilTryDef:
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CoilTryAcc
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CoilTryAcc
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CoilTryAcc:
|
|
setstatchanger STAT_ACC, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CoilEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CoilEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CoilEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectQuiverDance:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_QuiverDanceDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_QuiverDanceDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_QuiverDanceDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF | BIT_SPEED, 0
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_QuiverDanceTrySpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_QuiverDanceTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_QuiverDanceTrySpDef::
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_QuiverDanceTrySpeed
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_QuiverDanceTrySpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_QuiverDanceTrySpeed::
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_QuiverDanceEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_QuiverDanceEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_QuiverDanceEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectVictoryDance:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_VictoryDanceDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_VictoryDanceDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_VictoryDanceDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED, 0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_VictoryDanceTryDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_VictoryDanceTryDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VictoryDanceTryDef::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_VictoryDanceTrySpeed
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_VictoryDanceTrySpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VictoryDanceTrySpeed::
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_VictoryDanceEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_VictoryDanceEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VictoryDanceEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSpeedUpHit:
|
|
setmoveeffect MOVE_EFFECT_SPD_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectMeFirst:
|
|
attackcanceler
|
|
attackstring
|
|
trymefirst BattleScript_ButItFailedPpReduce
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sB_ANIM_TURN, 0
|
|
setbyte sB_ANIM_TARGETS_HIT, 0
|
|
jumptocalledmove TRUE
|
|
|
|
BattleScript_EffectAttackSpAttackUp:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AttackSpAttackUpDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_AttackSpAttackUpDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPATK, 0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AttackSpAttackUpTrySpAtk
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackSpAttackUpTrySpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AttackSpAttackUpTrySpAtk::
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AttackSpAttackUpEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackSpAttackUpEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AttackSpAttackUpEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackAccUp:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AttackAccUpDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ACC, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_AttackAccUpDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AttackAccUpTrySpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackAccUpTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AttackAccUpTrySpDef::
|
|
setstatchanger STAT_ACC, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AttackAccUpEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackAccUpEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AttackAccUpEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMistyTerrain:
|
|
BattleScript_EffectGrassyTerrain:
|
|
BattleScript_EffectElectricTerrain:
|
|
BattleScript_EffectPsychicTerrain:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setterrain BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gTerrainStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
call BattleScript_TerrainSeedLoop
|
|
jumpifabilitypresent ABILITY_MIMICRY, BattleScript_ApplyMimicry
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_ApplyMimicry::
|
|
savetarget
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_MimicryLoopIter:
|
|
copybyte sBATTLER, gBattlerTarget
|
|
trytoapplymimicry BS_TARGET, BattleScript_MimicryLoop_NextBattler
|
|
copybyte gBattlerAbility, sBATTLER
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_BATTLERTYPECHANGEDTO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_MimicryLoop_NextBattler:
|
|
addbyte gBattlerTarget, 0x1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_MimicryLoopIter
|
|
restoretarget
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTopsyTurvy:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_DEF, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPATK, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPDEF, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPEED, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ACC, 6, BattleScript_EffectTopsyTurvyWorks
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_EVASION, 6, BattleScript_ButItFailed
|
|
BattleScript_EffectTopsyTurvyWorks:
|
|
attackanimation
|
|
waitanimation
|
|
invertstatstages BS_TARGET
|
|
printstring STRINGID_TOPSYTURVYSWITCHEDSTATS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectIonDeluge:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
orword gFieldStatuses, STATUS_FIELD_ION_DELUGE
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_IONDELUGEON
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectQuash:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
tryquash BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_QUASHSUCCESS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHealPulse:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents @ stops pollen puff
|
|
jumpifstatus3 BS_TARGET, STATUS3_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
tryhealpulse BS_TARGET, BattleScript_AlreadyAtFullHp
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectEntrainment:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
tryentrainment BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setlastusedability BS_TARGET
|
|
printstring STRINGID_PKMNACQUIREDABILITY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSimpleBeam:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
setabilitysimple BS_TARGET, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNACQUIREDSIMPLE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
tryendneutralizinggas BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSuckerPunch:
|
|
attackcanceler
|
|
suckerpunchcheck BattleScript_ButItFailedAtkStringPpReduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
goto BattleScript_HitFromAtkString
|
|
|
|
BattleScript_EffectLuckyChant:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setluckychant BS_ATTACKER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_SHIELDEDFROMCRITICALHITS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMetalBurst:
|
|
attackcanceler
|
|
metalburstdamagecalculator BattleScript_ButItFailedAtkStringPpReduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectHealingWish:
|
|
attackcanceler
|
|
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailedAtkStringPpReduce
|
|
attackstring
|
|
ppreduce
|
|
attackanimation
|
|
waitanimation
|
|
instanthpdrop BS_ATTACKER
|
|
setatkhptozero
|
|
tryfaintmon BS_ATTACKER
|
|
openpartyscreen BS_ATTACKER, BattleScript_EffectHealingWishEnd
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
switchhandleorder BS_ATTACKER, 2
|
|
returnatktoball
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_ATTACKER, TRUE
|
|
waitstate
|
|
setbyte cMULTISTRING_CHOOSER, 0
|
|
jumpifnotchosenmove MOVE_LUNAR_DANCE, BattleScript_EffectHealingWishNewMon
|
|
setbyte cMULTISTRING_CHOOSER, 1
|
|
restorepp BS_ATTACKER
|
|
BattleScript_EffectHealingWishNewMon:
|
|
printfromtable gHealingWishStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_WISH_HEAL
|
|
waitanimation
|
|
dmgtomaxattackerhp
|
|
manipulatedamage DMG_CHANGE_SIGN
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
clearstatus BS_ATTACKER
|
|
waitstate
|
|
updatestatusicon BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_HEALINGWISHHEALED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchineffects BS_ATTACKER
|
|
BattleScript_EffectHealingWishEnd:
|
|
moveendall
|
|
end
|
|
|
|
BattleScript_EffectWorrySeed:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
tryworryseed BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNACQUIREDABILITY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPowerSplit:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
averagestats STAT_ATK
|
|
averagestats STAT_SPATK
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_SHAREDITSPOWER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGuardSplit:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
averagestats STAT_DEF
|
|
averagestats STAT_SPDEF
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_SHAREDITSGUARD
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHeartSwap:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
swapstatstages STAT_ATK
|
|
swapstatstages STAT_DEF
|
|
swapstatstages STAT_SPEED
|
|
swapstatstages STAT_SPATK
|
|
swapstatstages STAT_SPDEF
|
|
swapstatstages STAT_EVASION
|
|
swapstatstages STAT_ACC
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSWITCHEDSTATCHANGES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPowerSwap:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
swapstatstages STAT_ATK
|
|
swapstatstages STAT_SPATK
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSWITCHEDSTATCHANGES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGuardSwap:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
swapstatstages STAT_DEF
|
|
swapstatstages STAT_SPDEF
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSWITCHEDSTATCHANGES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSpeedSwap:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
swapstats STAT_SPEED
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_ATTACKERSWITCHEDSTATWITHTARGET
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTelekinesis:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
attackstring
|
|
ppreduce
|
|
settelekinesis BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNIDENTIFIED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectStealthRock:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setstealthrock BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_POINTEDSTONESFLOAT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectStickyWeb:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setstickyweb BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_STICKYWEBUSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGastroAcid:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
setgastroacid BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSABILITYSUPPRESSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
tryendneutralizinggas BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectToxicSpikes:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
settoxicspikes BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_POISONSPIKESSCATTERED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMagnetRise:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setuserstatus3 STATUS3_MAGNET_RISE, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNLEVITATEDONELECTROMAGNETISM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTrickRoom:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setroom
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gRoomsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
savetarget
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_RoomServiceLoop:
|
|
copybyte sBATTLER, gBattlerTarget
|
|
tryroomservice BS_TARGET, BattleScript_RoomServiceLoop_NextBattler
|
|
removeitem BS_TARGET
|
|
BattleScript_RoomServiceLoop_NextBattler:
|
|
addbyte gBattlerTarget, 0x1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_RoomServiceLoop
|
|
restoretarget
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectWonderRoom:
|
|
BattleScript_EffectMagicRoom:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setroom
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gRoomsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAquaRing:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setuserstatus3 STATUS3_AQUA_RING, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSURROUNDEDWITHVEILOFWATER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectEmbargo:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
setembargo BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNCANTUSEITEMSANYMORE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTailwind:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
settailwind BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_TAILWINDBLEW
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMircleEye:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
setmiracleeye BattleScript_ButItFailed
|
|
goto BattleScript_IdentifiedFoe
|
|
|
|
BattleScript_EffectGravity:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setgravity BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_GRAVITYINTENSIFIED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
selectfirstvalidtarget
|
|
BattleScript_GravityLoop:
|
|
movevaluescleanup
|
|
jumpifstatus3 BS_TARGET, STATUS3_ON_AIR | STATUS3_MAGNET_RISE | STATUS3_TELEKINESIS, BattleScript_GravityLoopDrop
|
|
goto BattleScript_GravityLoopEnd
|
|
BattleScript_GravityLoopDrop:
|
|
bringdownairbornebattler BS_TARGET
|
|
printstring STRINGID_GRAVITYGROUNDING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GravityLoopEnd:
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_GravityLoop
|
|
end
|
|
|
|
BattleScript_EffectRoost:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_TARGET
|
|
setroost
|
|
goto BattleScript_PresentHealTarget
|
|
|
|
BattleScript_EffectCaptivate:
|
|
setstatchanger STAT_SPATK, 2, TRUE
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
|
|
jumpifoppositegenders BattleScript_CaptivateCheckAcc
|
|
goto BattleScript_ButItFailedAtkStringPpReduce
|
|
BattleScript_CaptivateCheckAcc:
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
goto BattleScript_StatDownFromAttackString
|
|
|
|
BattleScript_EffectHealBlock:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
|
|
sethealblock BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNPREVENTEDFROMHEALING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectThroatChop:
|
|
jumpifsubstituteblocks BattleScript_EffectHit
|
|
setmoveeffect MOVE_EFFECT_THROAT_CHOP | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectHitEscape:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifmovehadnoeffect BattleScript_MoveEnd
|
|
seteffectwithchance
|
|
tryfaintmon BS_TARGET
|
|
moveendto MOVEEND_ATTACKER_VISIBLE
|
|
moveendfrom MOVEEND_TARGET_VISIBLE
|
|
jumpifbattleend BattleScript_HitEscapeEnd
|
|
jumpifbyte CMP_NOT_EQUAL gBattleOutcome 0, BattleScript_HitEscapeEnd
|
|
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_HitEscapeEnd
|
|
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_HitEscapeEnd
|
|
openpartyscreen BS_ATTACKER, BattleScript_HitEscapeEnd
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
switchhandleorder BS_ATTACKER, 2
|
|
returntoball BS_ATTACKER
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_ATTACKER, TRUE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
BattleScript_HitEscapeEnd:
|
|
end
|
|
|
|
BattleScript_EffectPlaceholder:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
pause 5
|
|
printstring STRINGID_NOTDONEYET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHit::
|
|
BattleScript_HitFromAtkCanceler::
|
|
attackcanceler
|
|
BattleScript_HitFromAccCheck::
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
BattleScript_HitFromAtkString::
|
|
attackstring
|
|
ppreduce
|
|
BattleScript_HitFromCritCalc::
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
BattleScript_HitFromAtkAnimation::
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
seteffectwithchance
|
|
tryfaintmon BS_TARGET
|
|
BattleScript_MoveEnd::
|
|
moveendall
|
|
end
|
|
|
|
BattleScript_EffectNaturalGift:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifnotberry BS_ATTACKER, BattleScript_ButItFailed
|
|
jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_MAGIC_ROOM, BattleScript_ButItFailed
|
|
jumpifability BS_ATTACKER, ABILITY_KLUTZ, BattleScript_ButItFailed
|
|
jumpifstatus3 BS_ATTACKER, STATUS3_EMBARGO, BattleScript_ButItFailed
|
|
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
seteffectwithchance
|
|
jumpifmovehadnoeffect BattleScript_EffectNaturalGiftEnd
|
|
checkparentalbondcounter 2, BattleScript_EffectNaturalGiftEnd
|
|
removeitem BS_ATTACKER
|
|
BattleScript_EffectNaturalGiftEnd:
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MakeMoveMissed::
|
|
orhalfword 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_EffectDarkVoid::
|
|
.if B_DARK_VOID_FAIL >= GEN_7
|
|
jumpifspecies BS_ATTACKER, SPECIES_DARKRAI, BattleScript_EffectSleep
|
|
goto BattleScript_PokemonCantUseTheMove
|
|
.endif
|
|
BattleScript_EffectSleep::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_AlreadyAsleep
|
|
jumpifcantmakeasleep BattleScript_CantMakeAsleep
|
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
|
|
jumpifflowerveil BattleScript_FlowerVeilProtects
|
|
jumpifability BS_TARGET_SIDE, ABILITY_SWEET_VEIL, BattleScript_SweetVeilProtects
|
|
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
|
jumpifterrainaffected BS_TARGET, STATUS_FIELD_ELECTRIC_TERRAIN, BattleScript_ElectricTerrainPrevents
|
|
jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_SLEEP
|
|
seteffectprimary
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_TerrainPreventsEnd2::
|
|
pause B_WAIT_TIME_SHORT
|
|
printfromtable gTerrainPreventsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_ElectricTerrainPrevents::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_ELECTRICTERRAINPREVENTS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MistyTerrainPrevents::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_MISTYTERRAINPREVENTS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_FlowerVeilProtectsRet::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_FLOWERVEILPROTECTED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_FlowerVeilProtects:
|
|
call BattleScript_FlowerVeilProtectsRet
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SweetVeilProtectsRet::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_FLOWERVEILPROTECTED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_SweetVeilProtects:
|
|
call BattleScript_SweetVeilProtectsRet
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AromaVeilProtectsRet::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_AROMAVEILPROTECTED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AromaVeilProtects:
|
|
call BattleScript_AromaVeilProtectsRet
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_PastelVeilProtectsRet::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PASTELVEILPROTECTED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_PastelVeilProtects:
|
|
call BattleScript_PastelVeilProtectsRet
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_LeafGuardProtectsRet::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_LeafGuardProtects:
|
|
call BattleScript_LeafGuardProtectsRet
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyAsleep::
|
|
setalreadystatusedmoveattempt BS_ATTACKER
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNALREADYASLEEP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_WasntAffected::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNWASNTAFFECTED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_CantMakeAsleep::
|
|
pause B_WAIT_TIME_SHORT
|
|
printfromtable gUproarAwakeStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPoisonHit:
|
|
setmoveeffect MOVE_EFFECT_POISON
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectAbsorb::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_AbsorbHealBlock
|
|
setdrainedhp
|
|
manipulatedamage DMG_BIG_ROOT
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE
|
|
jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB
|
|
goto BattleScript_AbsorbUpdateHp
|
|
BattleScript_AbsorbLiquidOoze::
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
call BattleScript_AbilityPopUp
|
|
manipulatedamage DMG_CHANGE_SIGN
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB_OOZE
|
|
BattleScript_AbsorbUpdateHp::
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
jumpifmovehadnoeffect BattleScript_AbsorbTryFainting
|
|
printfromtable gAbsorbDrainStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AbsorbTryFainting::
|
|
tryfaintmon BS_ATTACKER
|
|
BattleScript_AbsorbHealBlock::
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectBurnHit::
|
|
setmoveeffect MOVE_EFFECT_BURN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSleepHit::
|
|
setmoveeffect MOVE_EFFECT_SLEEP
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectFreezeHit::
|
|
setmoveeffect MOVE_EFFECT_FREEZE
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectParalyzeHit::
|
|
setmoveeffect MOVE_EFFECT_PARALYSIS
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectExplosion::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
@ Below jumps to BattleScript_DampStopsExplosion if it fails (only way it can)
|
|
tryexplosion
|
|
setatkhptozero
|
|
waitstate
|
|
jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop
|
|
call BattleScript_PreserveMissedBitDoMoveAnim
|
|
goto BattleScript_ExplosionLoop
|
|
BattleScript_ExplosionDoAnimStartLoop:
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_ExplosionLoop:
|
|
movevaluescleanup
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
accuracycheck BattleScript_ExplosionMissed, ACC_CURR_MOVE
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_ExplosionLoop
|
|
tryfaintmon BS_ATTACKER
|
|
moveendcase MOVEEND_CLEAR_BITS
|
|
end
|
|
BattleScript_ExplosionMissed:
|
|
effectivenesssound
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_ExplosionLoop
|
|
tryfaintmon BS_ATTACKER
|
|
end
|
|
|
|
BattleScript_EffectMindBlown::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
tryexplosion
|
|
dmg_1_2_attackerhp
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
waitstate
|
|
jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop
|
|
call BattleScript_PreserveMissedBitDoMoveAnim
|
|
goto BattleScript_ExplosionLoop
|
|
|
|
BattleScript_PreserveMissedBitDoMoveAnim:
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
|
attackanimation
|
|
waitanimation
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
|
return
|
|
|
|
BattleScript_EffectDreamEater::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_DreamEaterNoEffect
|
|
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_DreamEaterWorked
|
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_DreamEaterWorked
|
|
BattleScript_DreamEaterNoEffect:
|
|
attackstring
|
|
ppreduce
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_WasntAffected
|
|
BattleScript_DreamEaterWorked:
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_DreamEaterTryFaintEnd
|
|
setdrainedhp
|
|
manipulatedamage DMG_BIG_ROOT
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
jumpifmovehadnoeffect BattleScript_DreamEaterTryFaintEnd
|
|
printstring STRINGID_PKMNDREAMEATEN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DreamEaterTryFaintEnd:
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMirrorMove::
|
|
attackcanceler
|
|
attackstring
|
|
pause B_WAIT_TIME_LONG
|
|
trymirrormove
|
|
ppreduce
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
printstring STRINGID_MIRRORMOVEFAILED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackUp::
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectDefenseUp::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpecialAttackUp::
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpeedUp:
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpecialDefenseUp:
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectAccuracyUp:
|
|
setstatchanger STAT_ACC, 1, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectEvasionUp::
|
|
setstatchanger STAT_EVASION, 1, FALSE
|
|
BattleScript_EffectStatUp::
|
|
attackcanceler
|
|
BattleScript_EffectStatUpAfterAtkCanceler::
|
|
attackstring
|
|
ppreduce
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_StatUpEnd
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpAttackAnim
|
|
pause B_WAIT_TIME_SHORT
|
|
goto BattleScript_StatUpPrintString
|
|
BattleScript_StatUpAttackAnim::
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_StatUpDoAnim::
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_StatUpPrintString::
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_StatUpEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_StatUp::
|
|
playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_StatUpMsg::
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectAttackDown:
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectDefenseDown:
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpeedDown:
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectAccuracyDown:
|
|
setstatchanger STAT_ACC, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpecialAttackDown:
|
|
setstatchanger STAT_SPATK, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpecialDefenseDown:
|
|
setstatchanger STAT_SPDEF, 1, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectEvasionDown:
|
|
setstatchanger STAT_EVASION, 1, TRUE
|
|
BattleScript_EffectStatDown:
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
BattleScript_StatDownFromAttackString:
|
|
attackstring
|
|
ppreduce
|
|
statbuffchange 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
|
|
goto BattleScript_StatDownPrintString
|
|
BattleScript_StatDownDoAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_StatDownPrintString::
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_StatDownEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MirrorArmorReflect::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
jumpifsubstituteblocks BattleScript_AbilityNoSpecificStatLoss
|
|
BattleScript_MirrorArmorReflectStatLoss:
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_MirrorArmorReflectEnd
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_MirrorArmorReflectAnim
|
|
goto BattleScript_MirrorArmorReflectWontFall
|
|
BattleScript_MirrorArmorReflectAnim:
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_MirrorArmorReflectPrintString:
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_MirrorArmorReflectEnd:
|
|
return
|
|
|
|
BattleScript_MirrorArmorReflectWontFall:
|
|
copybyte gBattlerTarget, gBattlerAttacker @ STRINGID_STATSWONTDECREASE uses target
|
|
goto BattleScript_MirrorArmorReflectPrintString
|
|
|
|
@ gBattlerTarget is battler with Mirror Armor
|
|
BattleScript_MirrorArmorReflectStickyWeb:
|
|
call BattleScript_AbilityPopUp
|
|
setattackertostickywebuser
|
|
jumpifbyteequal gBattlerAttacker, gBattlerTarget, BattleScript_StickyWebOnSwitchInEnd @ Sticky web user not on field -> no stat loss
|
|
goto BattleScript_MirrorArmorReflectStatLoss
|
|
|
|
BattleScript_StatDown::
|
|
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
|
|
orword gHitMarker, HITMARKER_CHARGING
|
|
setbide
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRampage::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_EffectRampage2
|
|
ppreduce
|
|
BattleScript_EffectRampage2:
|
|
confuseifrepeatingattackends
|
|
goto BattleScript_HitFromCritCalc
|
|
|
|
BattleScript_EffectRoar::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifroarfails BattleScript_ButItFailed
|
|
jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
|
|
jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
|
|
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
|
|
BattleScript_ForceRandomSwitch::
|
|
forcerandomswitch BattleScript_ButItFailed
|
|
|
|
BattleScript_EffectMultiHit::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
setmultihitcounter 0
|
|
initmultihitstring
|
|
sethword sMULTIHIT_EFFECT, 0
|
|
BattleScript_MultiHitLoop::
|
|
jumpifhasnohp BS_ATTACKER, BattleScript_MultiHitEnd
|
|
jumpifhasnohp BS_TARGET, BattleScript_MultiHitPrintStrings
|
|
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoMultiHit
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_MultiHitPrintStrings
|
|
BattleScript_DoMultiHit::
|
|
movevaluescleanup
|
|
copyhword sMOVE_EFFECT, sMULTIHIT_EFFECT
|
|
critcalc
|
|
damagecalc
|
|
jumpifmovehadnoeffect BattleScript_MultiHitNoMoreHits
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
multihitresultmessage
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
addbyte sMULTIHIT_STRING + 4, 1
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
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
|
|
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 6
|
|
printstring STRINGID_HITXTIMES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MultiHitEnd::
|
|
seteffectwithchance
|
|
tryfaintmon BS_TARGET
|
|
moveendcase MOVEEND_SYNCHRONIZE_TARGET
|
|
moveendfrom MOVEEND_STATUS_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::
|
|
setmoveeffect MOVE_EFFECT_FLINCH
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectFlinchStatus:
|
|
setmoveeffect MOVE_EFFECT_FLINCH
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
seteffectwithchance
|
|
argumentstatuseffect
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRestoreHp::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_RestoreHp:
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectToxic::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
|
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
|
|
jumpifability BS_TARGET_SIDE, ABILITY_PASTEL_VEIL, BattleScript_PastelVeilProtects
|
|
jumpifflowerveil BattleScript_FlowerVeilProtects
|
|
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_POISON | STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
|
jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents
|
|
trypoisontype BS_ATTACKER, BS_TARGET, BattleScript_NotAffected
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_TOXIC
|
|
seteffectprimary
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyPoisoned::
|
|
setalreadystatusedmoveattempt BS_ATTACKER
|
|
pause B_WAIT_TIME_LONG
|
|
printstring STRINGID_PKMNALREADYPOISONED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_ImmunityProtected::
|
|
copybyte gEffectBattler, gBattlerTarget
|
|
call BattleScript_AbilityPopUp
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_ABILITY_PREVENTS_MOVE_STATUS
|
|
call BattleScript_PSNPrevention
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPayDay::
|
|
setmoveeffect MOVE_EFFECT_PAYDAY
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectAuroraVeil:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setauroraveil BS_ATTACKER
|
|
goto BattleScript_PrintReflectLightScreenSafeguardString
|
|
|
|
BattleScript_EffectLightScreen::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setlightscreen
|
|
goto BattleScript_PrintReflectLightScreenSafeguardString
|
|
|
|
BattleScript_EffectTriAttack::
|
|
setmoveeffect MOVE_EFFECT_TRI_ATTACK
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectRest::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_RestIsAlreadyAsleep
|
|
jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_RestIsAlreadyAsleep
|
|
jumpifcantmakeasleep BattleScript_RestCantSleep
|
|
trysetrest BattleScript_AlreadyAtFullHp
|
|
pause B_WAIT_TIME_SHORT
|
|
printfromtable gRestUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_ATTACKER
|
|
waitstate
|
|
goto BattleScript_PresentHealTarget
|
|
|
|
BattleScript_RestCantSleep::
|
|
pause B_WAIT_TIME_LONG
|
|
printfromtable gUproarAwakeStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_RestIsAlreadyAsleep::
|
|
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
|
|
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_TwoTurnMovesSecondTurn::
|
|
attackcanceler
|
|
setmoveeffect MOVE_EFFECT_CHARGING
|
|
setbyte sB_ANIM_TURN, 1
|
|
clearstatusfromeffect BS_ATTACKER
|
|
orword gHitMarker, HITMARKER_NO_PPDEDUCT
|
|
argumenttomoveeffect
|
|
goto BattleScript_HitFromAccCheck
|
|
|
|
BattleScriptFirstChargingTurn::
|
|
attackcanceler
|
|
printstring STRINGID_EMPTYSTRING3
|
|
ppreduce
|
|
attackstring
|
|
BattleScriptFirstChargingTurnAfterAttackString:
|
|
pause B_WAIT_TIME_LONG
|
|
copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID
|
|
printfromtable gFirstTurnOfTwoStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
attackanimation
|
|
waitanimation
|
|
orword gHitMarker, HITMARKER_CHARGING
|
|
setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER
|
|
seteffectprimary
|
|
return
|
|
|
|
BattleScript_EffectSuperFang::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
damagetohalftargethp
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectDragonRage::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
setword gBattleMoveDamage, 40
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectTrap::
|
|
setmoveeffect MOVE_EFFECT_WRAP
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectRecoilIfMiss::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE
|
|
.if B_CRASH_IF_TARGET_IMMUNE >= GEN_4
|
|
typecalc
|
|
jumpifhalfword CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveMissedDoDamage
|
|
.endif
|
|
goto BattleScript_HitFromAtkString
|
|
BattleScript_MoveMissedDoDamage::
|
|
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_PrintMoveMissed
|
|
attackstring
|
|
ppreduce
|
|
pause B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
.if B_CRASH_IF_TARGET_IMMUNE < GEN_4
|
|
jumpifhalfword CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd
|
|
.endif
|
|
printstring STRINGID_PKMNCRASHED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
damagecalc
|
|
typecalc
|
|
adjustdamage
|
|
.if B_CRASH_IF_TARGET_IMMUNE == GEN_4
|
|
manipulatedamage DMG_RECOIL_FROM_IMMUNE
|
|
.else
|
|
manipulatedamage DMG_RECOIL_FROM_MISS
|
|
.endif
|
|
.if B_CRASH_IF_TARGET_IMMUNE >= GEN_4
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
.else
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
|
.endif
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER
|
|
.if B_CRASH_IF_TARGET_IMMUNE >= GEN_4
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
.else
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
|
.endif
|
|
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
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed
|
|
setfocusenergy
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gFocusEnergyUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectConfuse:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_AlreadyConfused
|
|
jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
seteffectprimary
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyConfused::
|
|
setalreadystatusedmoveattempt BS_ATTACKER
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNALREADYCONFUSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackUp2::
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectDefenseUp2::
|
|
setstatchanger STAT_DEF, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectDefenseUp3:
|
|
setstatchanger STAT_DEF, 3, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpeedUp2::
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpecialAttackUp2::
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpecialAttackUp3::
|
|
setstatchanger STAT_SPATK, 3, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectSpecialDefenseUp2::
|
|
setstatchanger STAT_SPDEF, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectAccuracyUp2:
|
|
setstatchanger STAT_ACC, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectEvasionUp2:
|
|
setstatchanger STAT_EVASION, 2, FALSE
|
|
goto BattleScript_EffectStatUp
|
|
|
|
BattleScript_EffectTransform::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
transformdataexecution
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gTransformUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackDown2:
|
|
setstatchanger STAT_ATK, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectDefenseDown2:
|
|
setstatchanger STAT_DEF, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpeedDown2:
|
|
setstatchanger STAT_SPEED, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpecialDefenseDown2:
|
|
setstatchanger STAT_SPDEF, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectSpecialAttackDown2:
|
|
setstatchanger STAT_SPATK, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectAccuracyDown2:
|
|
setstatchanger STAT_ACC, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectEvasionDown2:
|
|
setstatchanger STAT_EVASION, 2, TRUE
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectReflect::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setreflect
|
|
BattleScript_PrintReflectLightScreenSafeguardString::
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gReflectLightScreenSafeguardStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPoison::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
|
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
|
|
jumpifability BS_TARGET_SIDE, ABILITY_PASTEL_VEIL, BattleScript_PastelVeilProtects
|
|
jumpifflowerveil BattleScript_FlowerVeilProtects
|
|
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
|
|
jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
|
|
trypoisontype BS_ATTACKER, BS_TARGET, BattleScript_NotAffected
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
|
jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_POISON
|
|
seteffectprimary
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectParalyze:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_LIMBER, BattleScript_LimberProtected
|
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
|
|
jumpifflowerveil BattleScript_FlowerVeilProtects
|
|
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
typecalc
|
|
BattleScript_BattleScript_EffectParalyzeNoTypeCalc:
|
|
jumpifmovehadnoeffect BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_AlreadyParalyzed
|
|
tryparalyzetype BS_ATTACKER, BS_TARGET, BattleScript_NotAffected
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
|
jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_PARALYSIS
|
|
seteffectprimary
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyParalyzed:
|
|
setalreadystatusedmoveattempt BS_ATTACKER
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNISALREADYPARALYZED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_LimberProtected::
|
|
copybyte gEffectBattler, gBattlerTarget
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_ABILITY_PREVENTS_MOVE_STATUS
|
|
call BattleScript_PRLZPrevention
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackDownHit::
|
|
setmoveeffect MOVE_EFFECT_ATK_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectDefenseDownHit::
|
|
setmoveeffect MOVE_EFFECT_DEF_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSpeedDownHit::
|
|
setmoveeffect MOVE_EFFECT_SPD_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSpecialAttackDownHit::
|
|
setmoveeffect MOVE_EFFECT_SP_ATK_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSpecialDefenseDownHit::
|
|
setmoveeffect MOVE_EFFECT_SP_DEF_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSpecialDefenseDownHit2::
|
|
setmoveeffect MOVE_EFFECT_SP_DEF_MINUS_2
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectAccuracyDownHit::
|
|
setmoveeffect MOVE_EFFECT_ACC_MINUS_1
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_PowerHerbActivation:
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_POWERHERB
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_EffectTwoTurnsAttack::
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
|
|
jumpifmove MOVE_SKY_ATTACK, BattleScript_EffectTwoTurnsAttackSkyAttack
|
|
jumpifmove MOVE_RAZOR_WIND, BattleScript_EffectTwoTurnsAttackRazorWind
|
|
jumpifmove MOVE_ICE_BURN, BattleScript_EffectTwoTurnsAttackIceBurn
|
|
jumpifmove MOVE_FREEZE_SHOCK, BattleScript_EffectTwoTurnsAttackFreezeShock
|
|
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_RAZOR_WIND
|
|
BattleScript_EffectTwoTurnsAttackContinue:
|
|
call BattleScriptFirstChargingTurn
|
|
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
|
|
call BattleScript_PowerHerbActivation
|
|
goto BattleScript_TwoTurnMovesSecondTurn
|
|
BattleScript_EffectTwoTurnsAttackSkyAttack:
|
|
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_SKY_ATTACK
|
|
goto BattleScript_EffectTwoTurnsAttackContinue
|
|
BattleScript_EffectTwoTurnsAttackRazorWind:
|
|
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_RAZOR_WIND
|
|
goto BattleScript_EffectTwoTurnsAttackContinue
|
|
BattleScript_EffectTwoTurnsAttackIceBurn:
|
|
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_RAZOR_WIND
|
|
goto BattleScript_EffectTwoTurnsAttackContinue
|
|
BattleScript_EffectTwoTurnsAttackFreezeShock:
|
|
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_FREEZE_SHOCK
|
|
goto BattleScript_EffectTwoTurnsAttackContinue
|
|
|
|
BattleScript_EffectGeomancy:
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_GeomancySecondTurn
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_GeomancySecondTurn
|
|
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_GEOMANCY
|
|
call BattleScriptFirstChargingTurn
|
|
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
|
|
call BattleScript_PowerHerbActivation
|
|
BattleScript_GeomancySecondTurn:
|
|
attackcanceler
|
|
setmoveeffect MOVE_EFFECT_CHARGING
|
|
setbyte sB_ANIM_TURN, 1
|
|
clearstatusfromeffect BS_ATTACKER
|
|
orword gHitMarker, HITMARKER_NO_PPDEDUCT
|
|
attackstring
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_GeomancyDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_GeomancyDoMoveAnim
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
|
|
BattleScript_GeomancyDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF | BIT_SPEED, 0
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_GeomancyTrySpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GeomancyTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GeomancyTrySpDef::
|
|
setstatchanger STAT_SPDEF, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_GeomancyTrySpeed
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GeomancyTrySpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GeomancyTrySpeed::
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_GeomancyEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GeomancyEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GeomancyEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectConfuseHit::
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSubstitute::
|
|
attackcanceler
|
|
ppreduce
|
|
attackstring
|
|
waitstate
|
|
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
|
|
goto BattleScript_SubstituteString
|
|
BattleScript_SubstituteAnim::
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
BattleScript_SubstituteString::
|
|
printfromtable gSubstituteUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_AlreadyHasSubstitute::
|
|
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
|
|
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
|
|
accuracycheck BattleScript_RageMiss, ACC_CURR_MOVE
|
|
setmoveeffect MOVE_EFFECT_RAGE
|
|
seteffectprimary
|
|
setmoveeffect 0
|
|
goto BattleScript_HitFromAtkString
|
|
BattleScript_RageMiss::
|
|
setmoveeffect MOVE_EFFECT_RAGE
|
|
clearstatusfromeffect BS_ATTACKER
|
|
goto BattleScript_PrintMoveMissed
|
|
|
|
BattleScript_EffectMimic::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
mimicattackcopy BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNLEARNEDMOVE2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMetronome::
|
|
attackcanceler
|
|
attackstring
|
|
pause B_WAIT_TIME_SHORT
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sB_ANIM_TURN, 0
|
|
setbyte sB_ANIM_TARGETS_HIT, 0
|
|
metronome
|
|
|
|
BattleScript_EffectLeechSeed::
|
|
attackcanceler
|
|
attackstring
|
|
pause B_WAIT_TIME_SHORT
|
|
ppreduce
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE
|
|
BattleScript_DoLeechSeed::
|
|
setseeded
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gLeechSeedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDoNothing::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifmove MOVE_HOLD_HANDS, BattleScript_EffectHoldHands
|
|
attackanimation
|
|
waitanimation
|
|
jumpifmove MOVE_CELEBRATE, BattleScript_EffectCelebrate
|
|
jumpifmove MOVE_HAPPY_HOUR, BattleScript_EffectHappyHour
|
|
incrementgamestat GAME_STAT_USED_SPLASH
|
|
printstring STRINGID_BUTNOTHINGHAPPENED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_EffectHoldHands:
|
|
jumpifsideaffecting BS_TARGET, SIDE_STATUS_CRAFTY_SHIELD, BattleScript_ButItFailed
|
|
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_EffectCelebrate:
|
|
printstring STRINGID_CELEBRATEMESSAGE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_EffectHappyHour:
|
|
setmoveeffect MOVE_EFFECT_HAPPY_HOUR
|
|
seteffectprimary
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDisable::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
|
|
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
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
dmgtolevel
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectPsywave::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
psywavedamageeffect
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectCounter::
|
|
attackcanceler
|
|
counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectEncore::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
|
|
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
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
copyword gBattleMoveDamage, sPAINSPLIT_HP
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printstring STRINGID_SHAREDPAIN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSnore::
|
|
attackcanceler
|
|
jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_SnoreIsAsleep
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_SnoreIsAsleep
|
|
attackstring
|
|
ppreduce
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_SnoreIsAsleep::
|
|
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore
|
|
printstring STRINGID_PKMNFASTASLEEP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_ATTACKER
|
|
BattleScript_DoSnore::
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
|
|
setmoveeffect MOVE_EFFECT_FLINCH
|
|
goto BattleScript_HitFromCritCalc
|
|
|
|
BattleScript_EffectConversion2::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
settypetorandomresistance BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNCHANGEDTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectLockOn::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifsubstituteblocks 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
|
|
copymovepermanently BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSKETCHEDMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSleepTalk::
|
|
attackcanceler
|
|
jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_SleepTalkIsAsleep
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_SleepTalkIsAsleep
|
|
attackstring
|
|
ppreduce
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_SleepTalkIsAsleep::
|
|
printstring STRINGID_PKMNFASTASLEEP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_ATTACKER
|
|
attackstring
|
|
ppreduce
|
|
orword gHitMarker, HITMARKER_NO_PPDEDUCT
|
|
trychoosesleeptalkmove BattleScript_SleepTalkUsingMove
|
|
pause B_WAIT_TIME_LONG
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_SleepTalkUsingMove::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sB_ANIM_TURN, 0
|
|
setbyte sB_ANIM_TARGETS_HIT, 0
|
|
jumptocalledmove TRUE
|
|
|
|
BattleScript_EffectDestinyBond::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setdestinybond
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNTRYINGTOTAKEFOE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectEerieSpell::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
eeriespellppreduce BattleScript_MoveEnd
|
|
printstring STRINGID_PKMNREDUCEDPP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
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
|
|
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
|
|
BattleScript_CheckHealBellMon2Unaffected::
|
|
jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, B_MSG_BELL_SOUNDPROOF_PARTNER, BattleScript_PartyHealEnd
|
|
printstring STRINGID_PKMNSXBLOCKSY2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_PartyHealEnd::
|
|
updatestatusicon BS_ATTACKER_WITH_PARTNER
|
|
waitstate
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTripleKick::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifmove MOVE_TRIPLE_AXEL BS_TripleAxel
|
|
addbyte sTRIPLE_KICK_POWER, 10 @ triple kick gets +10 power
|
|
goto BattleScript_HitFromAtkString
|
|
|
|
BS_TripleAxel:
|
|
addbyte sTRIPLE_KICK_POWER, 20 @ triple axel gets +20 power
|
|
goto BattleScript_HitFromAtkString
|
|
|
|
BattleScript_EffectThief::
|
|
setmoveeffect MOVE_EFFECT_STEAL_ITEM
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectHitPreventEscape:
|
|
setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectMeanLook::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
jumpifstatus2 BS_TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
.if B_GHOSTS_ESCAPE >= GEN_6
|
|
jumpiftype BS_TARGET, TYPE_GHOST, BattleScript_ButItFailed
|
|
.endif
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE
|
|
seteffectprimary
|
|
printstring STRINGID_TARGETCANTESCAPENOW
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectNightmare::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus2 BS_TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_NightmareWorked
|
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_NightmareWorked
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_NightmareWorked::
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_NIGHTMARE
|
|
seteffectprimary
|
|
printstring STRINGID_PKMNFELLINTONIGHTMARE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMinimize::
|
|
attackcanceler
|
|
setminimize
|
|
.if B_MINIMIZE_EVASION >= GEN_5
|
|
setstatchanger STAT_EVASION, 2, FALSE
|
|
.else
|
|
setstatchanger STAT_EVASION, 1, FALSE
|
|
.endif
|
|
goto BattleScript_EffectStatUpAfterAtkCanceler
|
|
|
|
BattleScript_EffectCurse::
|
|
jumpiftype BS_ATTACKER, TYPE_GHOST, BattleScript_GhostCurse
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
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
|
|
BattleScript_CurseTrySpeed::
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
setbyte sB_ANIM_TURN, 1
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CurseTryAttack
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CurseTryAttack::
|
|
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::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CurseEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CurseEnd::
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_GhostCurse::
|
|
jumpifbytenotequal gBattlerAttacker, gBattlerTarget, BattleScript_DoGhostCurse
|
|
getmovetarget BS_ATTACKER
|
|
BattleScript_DoGhostCurse::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
cursetarget BattleScript_ButItFailed
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
setbyte sB_ANIM_TURN, 0
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_PKMNLAIDCURSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMatBlock::
|
|
attackcanceler
|
|
jumpifnotfirstturn BattleScript_ButItFailedAtkStringPpReduce
|
|
goto BattleScript_ProtectLikeAtkString
|
|
|
|
BattleScript_EffectProtect::
|
|
BattleScript_EffectEndure::
|
|
attackcanceler
|
|
BattleScript_ProtectLikeAtkString:
|
|
attackstring
|
|
ppreduce
|
|
setprotectlike
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gProtectLikeUsedStringIds
|
|
waitmessage 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
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
jumpifstatus2 BS_TARGET, STATUS2_FORESIGHT, BattleScript_ButItFailed
|
|
setforesight
|
|
BattleScript_IdentifiedFoe:
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNIDENTIFIED
|
|
waitmessage 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
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_PerishSongLoop::
|
|
jumpifability BS_TARGET, ABILITY_SOUNDPROOF, BattleScript_PerishSongBlocked
|
|
jumpifpranksterblocked BS_TARGET, BattleScript_PerishSongNotAffected
|
|
BattleScript_PerishSongLoopIncrement::
|
|
addbyte gBattlerTarget, 1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_PerishSongLoop
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_PerishSongBlocked::
|
|
copybyte sBATTLER, gBattlerTarget
|
|
printstring STRINGID_PKMNSXBLOCKSY2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_PerishSongLoopIncrement
|
|
|
|
BattleScript_PerishSongNotAffected:
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_PerishSongLoopIncrement
|
|
|
|
BattleScript_EffectSandstorm::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn
|
|
setsandstorm
|
|
goto BattleScript_MoveWeatherChange
|
|
|
|
BattleScript_EffectRollout::
|
|
attackcanceler
|
|
attackstring
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy
|
|
ppreduce
|
|
BattleScript_RolloutCheckAccuracy::
|
|
accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE
|
|
BattleScript_RolloutHit::
|
|
typecalc
|
|
handlerollout
|
|
goto BattleScript_HitFromCritCalc
|
|
|
|
BattleScript_EffectSwagger::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_MakeMoveMissed
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifconfusedandstatmaxed STAT_ATK, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_SwaggerTryConfuse
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_SwaggerTryConfuse
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_SwaggerTryConfuse:
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
seteffectprimary
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFuryCutter:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE
|
|
BattleScript_FuryCutterHit:
|
|
handlefurycutter
|
|
critcalc
|
|
damagecalc
|
|
jumpifmovehadnoeffect BattleScript_FuryCutterHit
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_TryDestinyKnotTarget:
|
|
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_DESTINY_KNOT, BattleScript_TryDestinyKnotTargetRet
|
|
infatuatewithbattler BS_TARGET, BS_ATTACKER
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
status2animation BS_TARGET, STATUS2_INFATUATION
|
|
waitanimation
|
|
printstring STRINGID_DESTINYKNOTACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_TryDestinyKnotTargetRet:
|
|
return
|
|
|
|
BattleScript_TryDestinyKnotAttacker:
|
|
jumpifnoholdeffect BS_TARGET, HOLD_EFFECT_DESTINY_KNOT, BattleScript_TryDestinyKnotAttackerRet
|
|
infatuatewithbattler BS_ATTACKER, BS_TARGET
|
|
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
status2animation BS_ATTACKER, STATUS2_INFATUATION
|
|
waitanimation
|
|
printstring STRINGID_DESTINYKNOTACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_TryDestinyKnotAttackerRet:
|
|
return
|
|
|
|
BattleScript_EffectAttract::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
|
|
tryinfatuating BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNFELLINLOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_TryDestinyKnotAttacker
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPresent::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
presentdamagecalculation
|
|
|
|
BattleScript_EffectSafeguard::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setsafeguard
|
|
goto BattleScript_PrintReflectLightScreenSafeguardString
|
|
|
|
BattleScript_EffectMagnitude::
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT, BattleScript_EffectMagnitudeTarget
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
magnitudedamagecalculation
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_MAGNITUDESTRENGTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectMagnitudeTarget:
|
|
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
|
|
goto BattleScript_HitFromCritCalc
|
|
|
|
BattleScript_EffectBatonPass::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
|
|
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
openpartyscreen BS_ATTACKER, BattleScript_ButItFailed
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
switchhandleorder BS_ATTACKER, 2
|
|
returntoball BS_ATTACKER
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_ATTACKER, TRUE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRapidSpin::
|
|
.if B_SPEED_BUFFING_RAPID_SPIN == GEN_8
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifhalfword CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd
|
|
setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
seteffectwithchance
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_EffectRapidSpinEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectRapidSpinEnd
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectRapidSpinEnd::
|
|
tryfaintmon BS_TARGET
|
|
moveendall
|
|
end
|
|
.else
|
|
setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
.endif
|
|
|
|
BattleScript_EffectSonicboom::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
setword gBattleMoveDamage, 20
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectMorningSun::
|
|
BattleScript_EffectSynthesis::
|
|
BattleScript_EffectMoonlight::
|
|
BattleScript_EffectShoreUp::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
recoverbasedonsunlight BattleScript_AlreadyAtFullHp
|
|
goto BattleScript_PresentHealTarget
|
|
|
|
BattleScript_EffectRainDance::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn
|
|
setrain
|
|
BattleScript_MoveWeatherChange::
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gMoveWeatherChangeStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_WeatherFormChanges
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSunnyDay::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn
|
|
setsunny
|
|
goto BattleScript_MoveWeatherChange
|
|
|
|
BattleScript_ExtremelyHarshSunlightWasNotLessened:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_ExtremelyHarshSunlightWasNotLessenedEnd3:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_ExtremelyHarshSunlightWasNotLessenedRet:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_NoReliefFromHeavyRain:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_NORELIEFROMHEAVYRAIN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_NoReliefFromHeavyRainEnd3:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_NORELIEFROMHEAVYRAIN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_NoReliefFromHeavyRainRet:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_NORELIEFROMHEAVYRAIN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MysteriousAirCurrentBlowsOn:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_MYSTERIOUSAIRCURRENTBLOWSON
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MysteriousAirCurrentBlowsOnEnd3:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_MYSTERIOUSAIRCURRENTBLOWSON
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_MysteriousAirCurrentBlowsOnRet:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_MYSTERIOUSAIRCURRENTBLOWSON
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_BlockedByPrimalWeatherEnd3::
|
|
call BattleScript_AbilityPopUp
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessenedEnd3
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRainEnd3
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOnEnd3
|
|
end3
|
|
|
|
BattleScript_BlockedByPrimalWeatherRet::
|
|
call BattleScript_AbilityPopUp
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessenedRet
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRainRet
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOnRet
|
|
return
|
|
|
|
BattleScript_EffectDefenseUpHit::
|
|
setmoveeffect MOVE_EFFECT_DEF_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectAttackUpHit::
|
|
setmoveeffect MOVE_EFFECT_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSpecialAttackUpHit::
|
|
setmoveeffect MOVE_EFFECT_SP_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectAllStatsUpHit::
|
|
setmoveeffect MOVE_EFFECT_ALL_STATS_UP | MOVE_EFFECT_AFFECTS_USER
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectBellyDrum::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
maxattackhalvehp BattleScript_ButItFailed
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_PKMNCUTHPMAXEDATTACK
|
|
waitmessage 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
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectSkullBash::
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
|
|
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_SKULL_BASH
|
|
call BattleScriptFirstChargingTurn
|
|
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
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_SkullBashEnd::
|
|
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
|
|
call BattleScript_PowerHerbActivation
|
|
goto BattleScript_TwoTurnMovesSecondTurn
|
|
|
|
BattleScript_EffectTwister:
|
|
BattleScript_FlinchEffect:
|
|
BattleScript_EffectStomp:
|
|
setmoveeffect MOVE_EFFECT_FLINCH
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectBulldoze:
|
|
setmoveeffect MOVE_EFFECT_SPD_MINUS_1
|
|
BattleScript_EffectEarthquake:
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectFutureSight::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
trysetfutureattack BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gFutureMoveUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGust::
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectSolarBeam::
|
|
jumpifweatheraffected BS_ATTACKER, B_WEATHER_SUN, BattleScript_SolarBeamOnFirstTurn
|
|
BattleScript_SolarBeamDecideTurn::
|
|
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
|
|
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
|
|
call BattleScript_PowerHerbActivation
|
|
goto BattleScript_TwoTurnMovesSecondTurn
|
|
BattleScript_SolarBeamOnFirstTurn::
|
|
orword gHitMarker, HITMARKER_CHARGING
|
|
setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER
|
|
seteffectprimary
|
|
ppreduce
|
|
goto BattleScript_TwoTurnMovesSecondTurn
|
|
|
|
BattleScript_EffectThunder:
|
|
setmoveeffect MOVE_EFFECT_PARALYSIS
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectHurricane:
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectTeleport:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
.if B_TELEPORT_BEHAVIOR >= GEN_7
|
|
canteleport BS_ATTACKER
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_EffectTeleportNew
|
|
goto BattleScript_ButItFailed
|
|
.else
|
|
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed
|
|
.endif
|
|
BattleScript_EffectTeleportTryToRunAway:
|
|
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
|
|
setoutcomeonteleport BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTeleportNew:
|
|
getbattlerside BS_ATTACKER
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, B_SIDE_OPPONENT, BattleScript_EffectTeleportTryToRunAway
|
|
attackanimation
|
|
waitanimation
|
|
openpartyscreen BS_ATTACKER, BattleScript_EffectTeleportNewEnd
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
switchhandleorder BS_ATTACKER, 2
|
|
returntoball BS_ATTACKER
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_ATTACKER, TRUE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
BattleScript_EffectTeleportNewEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
.if B_BEAT_UP < GEN_5
|
|
BattleScript_EffectBeatUp::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
pause B_WAIT_TIME_SHORT
|
|
ppreduce
|
|
setbyte gBattleCommunication, 0
|
|
BattleScript_BeatUpLoop::
|
|
movevaluescleanup
|
|
trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed
|
|
printstring STRINGID_PKMNATTACK
|
|
critcalc
|
|
jumpifbyte CMP_NOT_EQUAL, gIsCriticalHit, TRUE, BattleScript_BeatUpAttack
|
|
manipulatedamage DMG_DOUBLED
|
|
BattleScript_BeatUpAttack::
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
goto BattleScript_BeatUpLoop
|
|
BattleScript_BeatUpEnd::
|
|
end
|
|
.else
|
|
BattleScript_EffectBeatUp::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
addbyte gBattleCommunication, 1
|
|
goto BattleScript_HitFromAtkString
|
|
.endif
|
|
|
|
BattleScript_EffectSemiInvulnerable::
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SecondTurnSemiInvulnerable
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_SecondTurnSemiInvulnerable
|
|
jumpifmove MOVE_FLY, BattleScript_FirstTurnFly
|
|
jumpifmove MOVE_DIVE, BattleScript_FirstTurnDive
|
|
jumpifmove MOVE_BOUNCE, BattleScript_FirstTurnBounce
|
|
jumpifmove MOVE_PHANTOM_FORCE, BattleScript_FirstTurnPhantomForce
|
|
jumpifmove MOVE_SHADOW_FORCE, BattleScript_FirstTurnPhantomForce
|
|
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_FirstTurnPhantomForce:
|
|
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_PHANTOM_FORCE
|
|
goto BattleScript_FirstTurnSemiInvulnerable
|
|
BattleScript_FirstTurnFly::
|
|
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_FLY
|
|
BattleScript_FirstTurnSemiInvulnerable::
|
|
call BattleScriptFirstChargingTurn
|
|
setsemiinvulnerablebit
|
|
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
|
|
call BattleScript_PowerHerbActivation
|
|
BattleScript_SecondTurnSemiInvulnerable::
|
|
attackcanceler
|
|
setmoveeffect MOVE_EFFECT_CHARGING
|
|
setbyte sB_ANIM_TURN, 1
|
|
clearstatusfromeffect BS_ATTACKER
|
|
orword gHitMarker, HITMARKER_NO_PPDEDUCT
|
|
argumenttomoveeffect
|
|
BattleScript_SemiInvulnerableTryHit::
|
|
accuracycheck BattleScript_SemiInvulnerableMiss, ACC_CURR_MOVE
|
|
clearsemiinvulnerablebit
|
|
goto BattleScript_HitFromAtkString
|
|
|
|
BattleScript_SemiInvulnerableMiss::
|
|
clearsemiinvulnerablebit
|
|
goto BattleScript_PrintMoveMissed
|
|
|
|
BattleScript_EffectDefenseCurl::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setdefensecurlbit
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_DefenseCurlDoStatUpAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpPrintString
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_DefenseCurlDoStatUpAnim::
|
|
goto BattleScript_StatUpDoAnim
|
|
|
|
BattleScript_EffectSoftboiled::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_TARGET
|
|
BattleScript_PresentHealTarget::
|
|
attackanimation
|
|
waitanimation
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage 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
|
|
setmoveeffect MOVE_EFFECT_FLINCH
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_ButItFailedAtkStringPpReduce::
|
|
attackstring
|
|
BattleScript_ButItFailedPpReduce::
|
|
ppreduce
|
|
BattleScript_ButItFailed::
|
|
pause B_WAIT_TIME_SHORT
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_NotAffected::
|
|
pause B_WAIT_TIME_SHORT
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_NotAffectedAbilityPopUp::
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectUproar::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
setmoveeffect MOVE_EFFECT_UPROAR | MOVE_EFFECT_AFFECTS_USER
|
|
attackstring
|
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_UproarHit
|
|
ppreduce
|
|
BattleScript_UproarHit::
|
|
goto BattleScript_HitFromCritCalc
|
|
|
|
BattleScript_EffectStockpile::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
stockpile 0
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gStockpileUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifmovehadnoeffect BattleScript_EffectStockpileEnd
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_EffectStockpileDef
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_EffectStockpileEnd
|
|
BattleScript_EffectStockpileDef:
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_EffectStockpileSpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectStockpileSpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectStockpileSpDef::
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_EffectStockpileEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectStockpileEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectStockpileEnd:
|
|
stockpile 1
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSpitUp::
|
|
attackcanceler
|
|
jumpifbyte CMP_EQUAL, cMISS_TYPE, B_MSG_PROTECTED, BattleScript_SpitUpFailProtect
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
setbyte gIsCriticalHit, FALSE
|
|
damagecalc
|
|
adjustdamage
|
|
stockpiletobasedamage BattleScript_SpitUpFail
|
|
goto BattleScript_HitFromAtkAnimation
|
|
BattleScript_SpitUpFail::
|
|
checkparentalbondcounter 2, BattleScript_SpitUpEnd
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_FAILEDTOSPITUP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_SpitUpEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
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
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn
|
|
sethail
|
|
goto BattleScript_MoveWeatherChange
|
|
|
|
BattleScript_EffectTorment::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
|
|
settorment BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSUBJECTEDTOTORMENT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFlatter::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_MakeMoveMissed
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
jumpifconfusedandstatmaxed STAT_SPATK, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_FlatterTryConfuse
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_FlatterTryConfuse
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_FlatterTryConfuse::
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
seteffectprimary
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectWillOWisp::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_BURN, BattleScript_AlreadyBurned
|
|
jumpiftype BS_TARGET, TYPE_FIRE, BattleScript_NotAffected
|
|
jumpifability BS_TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents
|
|
jumpifability BS_TARGET, ABILITY_WATER_BUBBLE, BattleScript_WaterVeilPrevents
|
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
|
|
jumpifflowerveil BattleScript_FlowerVeilProtects
|
|
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
|
jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
setmoveeffect MOVE_EFFECT_BURN
|
|
seteffectprimary
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_WaterVeilPrevents::
|
|
call BattleScript_AbilityPopUp
|
|
copybyte gEffectBattler, gBattlerTarget
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_ABILITY_PREVENTS_MOVE_STATUS
|
|
call BattleScript_BRNPrevention
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyBurned::
|
|
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
|
|
jumpifsubstituteblocks BattleScript_EffectMementoPrintNoEffect
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO | STAT_CHANGE_MULTIPLE_STATS
|
|
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
|
|
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
|
|
BattleScript_EffectMementoTrySpAtk:
|
|
playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
|
|
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
|
|
BattleScript_EffectMementoTryFaint:
|
|
tryfaintmon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_EffectMementoPrintNoEffect:
|
|
printstring STRINGID_BUTNOEFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
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
|
|
tryfaintmon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFocusPunch::
|
|
attackcanceler
|
|
jumpifnodamage BattleScript_HitFromAccCheck
|
|
ppreduce
|
|
printstring STRINGID_PKMNLOSTFOCUS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSmellingsalt:
|
|
BattleScript_EffectWakeUpSlap:
|
|
BattleScript_EffectSparklingAria:
|
|
jumpifsubstituteblocks BattleScript_EffectHit
|
|
setmoveeffect MOVE_EFFECT_REMOVE_STATUS | MOVE_EFFECT_CERTAIN
|
|
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
|
|
.if B_CHARGE_SPDEF_RAISE >= GEN_5
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_EffectChargeString
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectChargeString
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectChargeString:
|
|
.endif
|
|
printstring STRINGID_PKMNCHARGINGPOWER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTaunt::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
|
|
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
|
|
jumpifsubstituteblocks 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
|
|
.if B_ABILITY_POP_UP == TRUE
|
|
setbyte sFIXED_ABILITY_POPUP, TRUE
|
|
showabilitypopup BS_ATTACKER
|
|
pause 60
|
|
sethword sABILITY_OVERWRITE, 0
|
|
updateabilitypopup BS_ATTACKER
|
|
pause 20
|
|
destroyabilitypopup
|
|
pause 40
|
|
.endif
|
|
printstring STRINGID_PKMNCOPIEDFOE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectWish::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
trywish 0, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAssist:
|
|
attackcanceler
|
|
attackstring
|
|
assistattackselect BattleScript_ButItFailedPpReduce
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sB_ANIM_TURN, 0
|
|
setbyte sB_ANIM_TARGETS_HIT, 0
|
|
jumptocalledmove TRUE
|
|
|
|
BattleScript_EffectIngrain:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setuserstatus3 STATUS3_ROOTED, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNPLANTEDROOTS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSuperpower:
|
|
setmoveeffect MOVE_EFFECT_ATK_DEF_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectCloseCombat:
|
|
setmoveeffect MOVE_EFFECT_DEF_SPDEF_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_EffectBrickBreak::
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
removelightscreenreflect
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
jumpifbyte CMP_EQUAL, sB_ANIM_TURN, 0, BattleScript_BrickBreakAnim
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
BattleScript_BrickBreakAnim::
|
|
attackanimation
|
|
waitanimation
|
|
jumpifbyte CMP_LESS_THAN, sB_ANIM_TURN, 2, BattleScript_BrickBreakDoHit
|
|
printstring STRINGID_THEWALLSHATTERED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_BrickBreakDoHit::
|
|
typecalc
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
seteffectwithchance
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectYawn::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBankAbilityMadeIneffective
|
|
jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_PrintBankAbilityMadeIneffective
|
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_PrintBankAbilityMadeIneffective
|
|
jumpifflowerveil BattleScript_FlowerVeilProtects
|
|
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifsafeguard 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::
|
|
copybyte sBATTLER, gBattlerAbility
|
|
BattleScript_PrintAbilityMadeIneffective::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNSXMADEITINEFFECTIVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectKnockOff::
|
|
setmoveeffect MOVE_EFFECT_KNOCK_OFF
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectEndeavor::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setdamagetohealthdifference BattleScript_ButItFailed
|
|
copyword gHpDealt, gBattleMoveDamage
|
|
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
|
|
typecalc
|
|
jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
copyword gBattleMoveDamage, gHpDealt
|
|
adjustdamage
|
|
goto BattleScript_HitFromAtkAnimation
|
|
|
|
BattleScript_EffectSkillSwap:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
|
tryswapabilities BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
.if B_ABILITY_POP_UP == TRUE
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
call BattleScript_AbilityPopUp
|
|
pause 20
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
.endif
|
|
printstring STRINGID_PKMNSWAPPEDABILITIES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
.if B_SKILL_SWAP >= GEN_4
|
|
switchinabilities BS_ATTACKER
|
|
switchinabilities BS_TARGET
|
|
.endif
|
|
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
|
|
updatestatusicon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGrudge:
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setuserstatus3 STATUS3_GRUDGE, 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_EffectSecretPower::
|
|
getsecretpowereffect
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectRecoilHP25:
|
|
setmoveeffect MOVE_EFFECT_RECOIL_HP_25 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit
|
|
incrementgamestat GAME_STAT_USED_STRUGGLE
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectTeeterDance::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_TeeterDanceLoop::
|
|
movevaluescleanup
|
|
setmoveeffect MOVE_EFFECT_CONFUSION
|
|
jumpifbyteequal gBattlerAttacker, gBattlerTarget, BattleScript_TeeterDanceLoopIncrement
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents
|
|
jumpifsubstituteblocks BattleScript_TeeterDanceSubstitutePrevents
|
|
jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused
|
|
jumpifhasnohp BS_TARGET, BattleScript_TeeterDanceLoopIncrement
|
|
accuracycheck BattleScript_TeeterDanceMissed, ACC_CURR_MOVE
|
|
jumpifsafeguard BattleScript_TeeterDanceSafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
seteffectprimary
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_TeeterDanceDoMoveEndIncrement::
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
BattleScript_TeeterDanceLoopIncrement::
|
|
addbyte gBattlerTarget, 1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TeeterDanceLoop
|
|
end
|
|
|
|
BattleScript_TeeterDanceOwnTempoPrevents::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_TeeterDanceDoMoveEndIncrement
|
|
|
|
BattleScript_TeeterDanceSafeguardProtected::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNUSEDSAFEGUARD
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_TeeterDanceDoMoveEndIncrement
|
|
|
|
BattleScript_TeeterDanceSubstitutePrevents::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_BUTITFAILED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_TeeterDanceDoMoveEndIncrement
|
|
|
|
BattleScript_TeeterDanceAlreadyConfused::
|
|
setalreadystatusedmoveattempt BS_ATTACKER
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNALREADYCONFUSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_TeeterDanceDoMoveEndIncrement
|
|
|
|
BattleScript_TeeterDanceMissed::
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
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::
|
|
setmoveeffect MOVE_EFFECT_TOXIC
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectOverheat::
|
|
setmoveeffect MOVE_EFFECT_SP_ATK_TWO_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectHammerArm::
|
|
setmoveeffect MOVE_EFFECT_SPD_MINUS_1 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectTickle::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
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
|
|
BattleScript_TickleDoMoveAnim::
|
|
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
|
|
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE
|
|
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
|
|
BattleScript_TickleTryLowerDef::
|
|
playstatchangeanimation BS_TARGET, BIT_DEF, STAT_CHANGE_NEGATIVE
|
|
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
|
|
BattleScript_TickleEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_CantLowerMultipleStats::
|
|
pause B_WAIT_TIME_SHORT
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
printstring STRINGID_STATSWONTDECREASE2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCosmicPower::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
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
|
|
BattleScript_CosmicPowerDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0
|
|
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
|
|
BattleScript_CosmicPowerTrySpDef::
|
|
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
|
|
BattleScript_CosmicPowerEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSkyUppercut::
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectBulkUp::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
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
|
|
BattleScript_BulkUpDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0
|
|
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
|
|
BattleScript_BulkUpTryDef::
|
|
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
|
|
BattleScript_BulkUpEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCalmMind::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
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
|
|
BattleScript_CalmMindDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0
|
|
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
|
|
BattleScript_CalmMindTrySpDef::
|
|
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
|
|
BattleScript_CalmMindEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_CantRaiseMultipleStats::
|
|
pause B_WAIT_TIME_SHORT
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
printstring STRINGID_STATSWONTINCREASE2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDragonDance::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
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
|
|
BattleScript_DragonDanceDoMoveAnim::
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0
|
|
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
|
|
BattleScript_DragonDanceTrySpeed::
|
|
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
|
|
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::
|
|
tryillusionoff BS_ATTACKER
|
|
playfaintcry BS_ATTACKER
|
|
pause B_WAIT_TIME_LONG
|
|
dofaintanimation BS_ATTACKER
|
|
printstring STRINGID_ATTACKERFAINTED
|
|
cleareffectsonfaint BS_ATTACKER
|
|
tryactivatesoulheart
|
|
tryactivatereceiver BS_ATTACKER
|
|
trytrainerslidefirstdownmsg BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_FaintTarget::
|
|
tryillusionoff BS_TARGET
|
|
playfaintcry BS_TARGET
|
|
pause B_WAIT_TIME_LONG
|
|
dofaintanimation BS_TARGET
|
|
printstring STRINGID_TARGETFAINTED
|
|
cleareffectsonfaint BS_TARGET
|
|
tryactivatefellstinger BS_ATTACKER
|
|
tryactivatesoulheart
|
|
tryactivatereceiver BS_TARGET
|
|
tryactivatemoxie BS_ATTACKER @ and chilling neigh, as one ice rider
|
|
tryactivatebeastboost BS_ATTACKER
|
|
tryactivategrimneigh BS_ATTACKER @ and as one shadow rider
|
|
tryactivatebattlebond BS_ATTACKER
|
|
trytrainerslidefirstdownmsg BS_TARGET
|
|
return
|
|
|
|
BattleScript_GiveExp::
|
|
setbyte sGIVEEXP_STATE, 0
|
|
getexp BS_TARGET
|
|
end2
|
|
|
|
BattleScript_HandleFaintedMon::
|
|
setbyte sSHIFT_SWITCHED, 0
|
|
checkteamslost BattleScript_LinkHandleFaintedMonMultiple
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd
|
|
jumpifbattletype BATTLE_TYPE_TRAINER | BATTLE_TYPE_DOUBLE, 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
|
|
setbyte gBattleCommunication, 0
|
|
yesnobox
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0, BattleScript_FaintedMonTryChoose
|
|
@ Player said no, try to run
|
|
jumpifplayerran BattleScript_FaintedMonEnd
|
|
printstring STRINGID_CANTESCAPE2
|
|
BattleScript_FaintedMonTryChoose:
|
|
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
|
|
setbyte sILLUSION_NICK_HACK, 1
|
|
@ Yes/No for sending out a new Pokémon when the opponent is switching
|
|
printstring STRINGID_ENEMYABOUTTOSWITCHPKMN
|
|
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
|
|
switchhandleorder BS_ATTACKER, 2
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, PARTY_SIZE, BattleScript_FaintedMonSendOutNew
|
|
@ Switch Pokémon before opponent
|
|
atknameinbuff1
|
|
resetswitchinabilitybits BS_ATTACKER
|
|
hpthresholds2 BS_ATTACKER
|
|
printstring STRINGID_RETURNMON
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
returnatktoball
|
|
waitstate
|
|
drawpartystatussummary BS_ATTACKER
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_ATTACKER
|
|
switchinanim BS_ATTACKER, 0
|
|
waitstate
|
|
setbyte sSHIFT_SWITCHED, 1
|
|
BattleScript_FaintedMonSendOutNew:
|
|
drawpartystatussummary BS_FAINTED
|
|
getswitchedmondata BS_FAINTED
|
|
switchindataupdate BS_FAINTED
|
|
hpthresholds BS_FAINTED
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_FAINTED
|
|
switchinanim BS_FAINTED, FALSE
|
|
waitstate
|
|
resetplayerfainted
|
|
trytrainerslidelastonmsg BS_FAINTED
|
|
jumpifbytenotequal sSHIFT_SWITCHED, sZero, BattleScript_FaintedMonShiftSwitched
|
|
BattleScript_FaintedMonSendOutNewEnd:
|
|
switchineffects BS_FAINTED
|
|
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonEnd
|
|
cancelallactions
|
|
BattleScript_FaintedMonEnd::
|
|
end2
|
|
BattleScript_FaintedMonShiftSwitched:
|
|
copybyte sSAVED_BATTLER, gBattlerTarget
|
|
switchineffects BS_ATTACKER
|
|
resetsentmonsvalue
|
|
copybyte gBattlerTarget, sSAVED_BATTLER
|
|
goto BattleScript_FaintedMonSendOutNewEnd
|
|
|
|
BattleScript_LinkHandleFaintedMonMultiple::
|
|
openpartyscreen BS_FAINTED_LINK_MULTIPLE_1, BattleScript_LinkHandleFaintedMonMultipleStart
|
|
BattleScript_LinkHandleFaintedMonMultipleStart::
|
|
switchhandleorder BS_FAINTED, 0
|
|
openpartyscreen BS_FAINTED_LINK_MULTIPLE_2, BattleScript_LinkHandleFaintedMonMultipleEnd
|
|
switchhandleorder BS_FAINTED, 0
|
|
BattleScript_LinkHandleFaintedMonLoop::
|
|
switchhandleorder BS_FAINTED, 3
|
|
drawpartystatussummary BS_FAINTED
|
|
getswitchedmondata BS_FAINTED
|
|
switchindataupdate BS_FAINTED
|
|
hpthresholds BS_FAINTED
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_FAINTED
|
|
switchinanim BS_FAINTED, FALSE
|
|
waitstate
|
|
switchineffects BS_FAINTED_LINK_MULTIPLE_1
|
|
jumpifbytenotequal gBattlerFainted, gBattlersCount, BattleScript_LinkHandleFaintedMonLoop
|
|
BattleScript_LinkHandleFaintedMonMultipleEnd::
|
|
end2
|
|
|
|
BattleScript_LocalTrainerBattleWon::
|
|
jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalTwoTrainersDefeated
|
|
printstring STRINGID_PLAYERDEFEATEDTRAINER1
|
|
goto BattleScript_LocalBattleWonLoseTexts
|
|
BattleScript_LocalTwoTrainersDefeated::
|
|
printstring STRINGID_TWOENEMIESDEFEATED
|
|
BattleScript_LocalBattleWonLoseTexts::
|
|
trainerslidein BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_TRAINER1LOSETEXT
|
|
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleWonReward
|
|
trainerslideout B_POSITION_OPPONENT_LEFT
|
|
waitstate
|
|
trainerslidein BS_FAINTED
|
|
waitstate
|
|
printstring STRINGID_TRAINER2LOSETEXT
|
|
BattleScript_LocalBattleWonReward::
|
|
getmoneyreward
|
|
printstring STRINGID_PLAYERGOTMONEY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_PayDayMoneyAndPickUpItems::
|
|
givepaydaymoney
|
|
pickup
|
|
end2
|
|
|
|
BattleScript_LocalBattleLost::
|
|
jumpifbattletype BATTLE_TYPE_INGAME_PARTNER, BattleScript_LocalBattleLostPrintWhiteOut
|
|
jumpifbattletype BATTLE_TYPE_DOME, BattleScript_CheckDomeDrew
|
|
jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_LocalBattleLostPrintTrainersWinText
|
|
jumpifbattletype BATTLE_TYPE_TRAINER_HILL, BattleScript_LocalBattleLostPrintTrainersWinText
|
|
jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd
|
|
jumpifhalfword CMP_EQUAL, gTrainerBattleOpponent_A, TRAINER_SECRET_BASE, BattleScript_LocalBattleLostEnd
|
|
BattleScript_LocalBattleLostPrintWhiteOut::
|
|
.if B_WHITEOUT_MONEY >= GEN_4
|
|
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostEnd
|
|
printstring STRINGID_PLAYERWHITEOUT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
getmoneyreward
|
|
printstring STRINGID_PLAYERWHITEOUT2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
BattleScript_LocalBattleLostEnd::
|
|
printstring STRINGID_PLAYERLOSTTOENEMYTRAINER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
getmoneyreward
|
|
printstring STRINGID_PLAYERPAIDPRIZEMONEY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
.else
|
|
printstring STRINGID_PLAYERWHITEOUT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
printstring STRINGID_PLAYERWHITEOUT2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_LocalBattleLostEnd::
|
|
end2
|
|
.endif
|
|
|
|
BattleScript_CheckDomeDrew::
|
|
jumpifbyte CMP_EQUAL, gBattleOutcome, B_OUTCOME_DREW, BattleScript_LocalBattleLostEnd_
|
|
BattleScript_LocalBattleLostPrintTrainersWinText::
|
|
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostPrintWhiteOut
|
|
returnopponentmon1toball BS_ATTACKER
|
|
waitstate
|
|
returnopponentmon2toball BS_ATTACKER
|
|
waitstate
|
|
trainerslidein BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_TRAINER1WINTEXT
|
|
jumpifbattletype BATTLE_TYPE_TOWER_LINK_MULTI, BattleScript_LocalBattleLostDoTrainer2WinText
|
|
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_
|
|
BattleScript_LocalBattleLostDoTrainer2WinText::
|
|
trainerslideout B_POSITION_OPPONENT_LEFT
|
|
waitstate
|
|
trainerslidein BS_FAINTED
|
|
waitstate
|
|
printstring STRINGID_TRAINER2WINTEXT
|
|
BattleScript_LocalBattleLostEnd_::
|
|
end2
|
|
|
|
BattleScript_FrontierLinkBattleLost::
|
|
returnopponentmon1toball BS_ATTACKER
|
|
waitstate
|
|
returnopponentmon2toball BS_ATTACKER
|
|
waitstate
|
|
trainerslidein BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_TRAINER1WINTEXT
|
|
trainerslideout B_POSITION_OPPONENT_LEFT
|
|
waitstate
|
|
trainerslidein BS_FAINTED
|
|
waitstate
|
|
printstring STRINGID_TRAINER2WINTEXT
|
|
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_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
|
|
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_LinkBattleWonOrLostWaitEnd
|
|
endlinkbattle
|
|
BattleScript_LinkBattleWonOrLostWaitEnd::
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_TowerLinkBattleWon::
|
|
playtrainerdefeatbgm BS_ATTACKER
|
|
printstring STRINGID_BATTLEEND
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trainerslidein BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_TRAINER1LOSETEXT
|
|
trainerslideout B_POSITION_OPPONENT_LEFT
|
|
waitstate
|
|
trainerslidein BS_FAINTED
|
|
waitstate
|
|
printstring STRINGID_TRAINER2LOSETEXT
|
|
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_TowerLinkBattleWonEnd
|
|
endlinkbattle
|
|
BattleScript_TowerLinkBattleWonEnd::
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_FrontierTrainerBattleWon::
|
|
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_PayDayMoneyAndPickUpItems
|
|
jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_FrontierTrainerBattleWon_TwoDefeated
|
|
printstring STRINGID_PLAYERDEFEATEDTRAINER1
|
|
goto BattleScript_FrontierTrainerBattleWon_LoseTexts
|
|
BattleScript_FrontierTrainerBattleWon_TwoDefeated:
|
|
printstring STRINGID_TWOENEMIESDEFEATED
|
|
BattleScript_FrontierTrainerBattleWon_LoseTexts:
|
|
trainerslidein BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_TRAINER1LOSETEXT
|
|
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_TryPickUpItems
|
|
trainerslideout B_POSITION_OPPONENT_LEFT
|
|
waitstate
|
|
trainerslidein BS_FAINTED
|
|
waitstate
|
|
printstring STRINGID_TRAINER2LOSETEXT
|
|
BattleScript_TryPickUpItems:
|
|
jumpifnotbattletype BATTLE_TYPE_PYRAMID, BattleScript_FrontierTrainerBattleWon_End
|
|
pickup
|
|
BattleScript_FrontierTrainerBattleWon_End:
|
|
end2
|
|
|
|
BattleScript_SmokeBallEscape::
|
|
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
|
|
|
|
BattleScript_PrintCantRunFromTrainer::
|
|
printstring STRINGID_NORUNNINGFROMTRAINERS
|
|
end2
|
|
|
|
BattleScript_PrintFailedToRunString::
|
|
printfromtable gNoEscapeStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_PrintCantEscapeFromBattle::
|
|
printselectionstringfromtable gNoEscapeStringIds
|
|
endselectionscript
|
|
|
|
BattleScript_PrintFullBox::
|
|
printselectionstring STRINGID_BOXISFULL
|
|
endselectionscript
|
|
|
|
BattleScript_ActionSwitch::
|
|
hpthresholds2 BS_ATTACKER
|
|
printstring STRINGID_RETURNMON
|
|
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_PursuitSwitchDmgSetMultihit
|
|
setmultihit 1
|
|
goto BattleScript_PursuitSwitchDmgLoop
|
|
BattleScript_PursuitSwitchDmgSetMultihit::
|
|
setmultihit 2
|
|
BattleScript_PursuitSwitchDmgLoop::
|
|
jumpifnopursuitswitchdmg BattleScript_DoSwitchOut
|
|
swapattackerwithtarget
|
|
trysetdestinybondtohappen
|
|
call BattleScript_PursuitDmgOnSwitchOut
|
|
swapattackerwithtarget
|
|
BattleScript_DoSwitchOut::
|
|
decrementmultihit BattleScript_PursuitSwitchDmgLoop
|
|
switchoutabilities BS_ATTACKER
|
|
waitstate
|
|
returnatktoball
|
|
waitstate
|
|
drawpartystatussummary BS_ATTACKER
|
|
switchhandleorder BS_ATTACKER, 1
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_ATTACKER
|
|
switchinanim BS_ATTACKER, FALSE
|
|
waitstate
|
|
jumpifcantreverttoprimal BattleScript_DoSwitchOut2
|
|
call BattleScript_PrimalReversionRet
|
|
BattleScript_DoSwitchOut2:
|
|
switchineffects BS_ATTACKER
|
|
moveendcase MOVEEND_STATUS_IMMUNITY_ABILITIES
|
|
moveendcase MOVEEND_MIRROR_MOVE
|
|
end2
|
|
|
|
BattleScript_PursuitDmgOnSwitchOut::
|
|
pause B_WAIT_TIME_SHORT
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
moveendfromto MOVEEND_ABILITIES, MOVEEND_CHOICE_MOVE
|
|
getbattlerfainted BS_TARGET
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, FALSE, BattleScript_PursuitDmgOnSwitchOutRet
|
|
setbyte sGIVEEXP_STATE, 0
|
|
getexp BS_TARGET
|
|
BattleScript_PursuitDmgOnSwitchOutRet:
|
|
return
|
|
|
|
BattleScript_Pausex20::
|
|
pause B_WAIT_TIME_SHORT
|
|
return
|
|
|
|
BattleScript_LevelUp::
|
|
fanfare MUS_LEVEL_UP
|
|
printstring STRINGID_PKMNGREWTOLV
|
|
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
|
|
setbyte sLEARNMOVE_STATE, 0
|
|
yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove
|
|
printstring STRINGID_STOPLEARNINGMOVE
|
|
waitstate
|
|
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
|
|
fanfare MUS_LEVEL_UP
|
|
printstring STRINGID_PKMNLEARNEDMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatechoicemoveonlvlup BS_ATTACKER
|
|
goto BattleScript_TryLearnMoveLoop
|
|
BattleScript_LearnMoveReturn::
|
|
return
|
|
|
|
BattleScript_RainContinuesOrEnds::
|
|
printfromtable gRainContinuesStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_RAIN_STOPPED, BattleScript_RainContinuesOrEndsEnd
|
|
playanimation BS_ATTACKER, B_ANIM_RAIN_CONTINUES
|
|
BattleScript_RainContinuesOrEndsEnd::
|
|
end2
|
|
|
|
BattleScript_DamagingWeatherContinues::
|
|
printfromtable gSandStormHailContinuesStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation_var BS_ATTACKER, sB_ANIM_ARG1
|
|
setbyte gBattleCommunication, 0
|
|
BattleScript_DamagingWeatherLoop::
|
|
copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 1
|
|
weatherdamage
|
|
jumpifword CMP_EQUAL, gBattleMoveDamage, 0, BattleScript_DamagingWeatherLoopIncrement
|
|
jumpifword CMP_COMMON_BITS gBattleMoveDamage, 1 << 31, BattleScript_DamagingWeatherHeal
|
|
printfromtable gSandStormHailDmgStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
goto BattleScript_DamagingWeatherHpChange
|
|
BattleScript_DamagingWeatherHeal:
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ICEBODYHPGAIN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DamagingWeatherHpChange:
|
|
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER
|
|
checkteamslost BattleScript_DamagingWeatherLoopIncrement
|
|
BattleScript_DamagingWeatherLoopIncrement::
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd
|
|
addbyte gBattleCommunication, 1
|
|
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop
|
|
BattleScript_DamagingWeatherContinuesEnd::
|
|
bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
|
end2
|
|
|
|
BattleScript_SandStormHailEnds::
|
|
printfromtable gSandStormHailEndStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_SunlightContinues::
|
|
printstring STRINGID_SUNLIGHTSTRONG
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_SUN_CONTINUES
|
|
end2
|
|
|
|
BattleScript_SunlightFaded::
|
|
printstring STRINGID_SUNLIGHTFADED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_OverworldWeatherStarts::
|
|
printfromtable gWeatherStartsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation_var BS_ATTACKER, sB_ANIM_ARG1
|
|
end3
|
|
|
|
BattleScript_OverworldTerrain::
|
|
printfromtable gTerrainStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG
|
|
end3
|
|
|
|
BattleScript_SideStatusWoreOff::
|
|
printstring STRINGID_PKMNSXWOREOFF
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_SideStatusWoreOffReturn::
|
|
printstring STRINGID_PKMNSXWOREOFF
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_LuckyChantEnds::
|
|
printstring STRINGID_LUCKYCHANTENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_TailwindEnds::
|
|
printstring STRINGID_TAILWINDENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_TrickRoomEnds::
|
|
printstring STRINGID_TRICKROOMENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_WonderRoomEnds::
|
|
printstring STRINGID_WONDERROOMENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_MagicRoomEnds::
|
|
printstring STRINGID_MAGICROOMENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_ElectricTerrainEnds::
|
|
printstring STRINGID_ELECTRICTERRAINENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
end2
|
|
|
|
BattleScript_MistyTerrainEnds::
|
|
printstring STRINGID_MISTYTERRAINENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
end2
|
|
|
|
BattleScript_GrassyTerrainEnds::
|
|
printstring STRINGID_GRASSYTERRAINENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
end2
|
|
|
|
BattleScript_PsychicTerrainEnds::
|
|
printstring STRINGID_PSYCHICTERRAINENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
end2
|
|
|
|
BattleScript_MudSportEnds::
|
|
printstring STRINGID_MUDSPORTENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_WaterSportEnds::
|
|
printstring STRINGID_WATERSPORTENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_GravityEnds::
|
|
printstring STRINGID_GRAVITYENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_SafeguardProtected::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNUSEDSAFEGUARD
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_SafeguardEnds::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNSAFEGUARDEXPIRED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_LeechSeedTurnDrain::
|
|
playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
copyword gBattleMoveDamage, gHpDealt
|
|
jumpifability BS_ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedTurnPrintLiquidOoze
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_LEECH_SEED_DRAIN
|
|
jumpifstatus3 BS_TARGET, STATUS3_HEAL_BLOCK, BattleScript_LeechSeedHealBlock
|
|
manipulatedamage DMG_BIG_ROOT
|
|
goto BattleScript_LeechSeedTurnPrintAndUpdateHp
|
|
BattleScript_LeechSeedTurnPrintLiquidOoze::
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_LEECH_SEED_OOZE
|
|
BattleScript_LeechSeedTurnPrintAndUpdateHp::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printfromtable gLeechSeedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
tryfaintmon BS_TARGET
|
|
end2
|
|
BattleScript_LeechSeedHealBlock:
|
|
setword gBattleMoveDamage, 0
|
|
goto BattleScript_LeechSeedTurnPrintAndUpdateHp
|
|
|
|
BattleScript_BideStoringEnergy::
|
|
printstring STRINGID_PKMNSTORINGENERGY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BideAttack::
|
|
attackcanceler
|
|
setmoveeffect MOVE_EFFECT_CHARGING
|
|
clearstatusfromeffect BS_ATTACKER
|
|
printstring STRINGID_PKMNUNLEASHEDENERGY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE
|
|
typecalc
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
copyword gBattleMoveDamage, sBIDE_DMG
|
|
adjustdamage
|
|
setbyte sB_ANIM_TURN, 1
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BideNoEnergyToAttack::
|
|
attackcanceler
|
|
setmoveeffect MOVE_EFFECT_CHARGING
|
|
clearstatusfromeffect BS_ATTACKER
|
|
printstring STRINGID_PKMNUNLEASHEDENERGY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_RoarSuccessSwitch::
|
|
call BattleScript_RoarSuccessRet
|
|
getswitchedmondata BS_TARGET
|
|
switchindataupdate BS_TARGET
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
switchinanim BS_TARGET, FALSE
|
|
waitstate
|
|
printstring STRINGID_PKMNWASDRAGGEDOUT
|
|
switchineffects BS_TARGET
|
|
jumpifbyte CMP_EQUAL, sSWITCH_CASE, B_SWITCH_RED_CARD, BattleScript_RoarSuccessSwitch_Ret
|
|
setbyte sSWITCH_CASE, B_SWITCH_NORMAL
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_RoarSuccessSwitch_Ret:
|
|
swapattackerwithtarget @ continuation of RedCardActivates
|
|
restoretarget
|
|
removeitem BS_TARGET
|
|
setbyte sSWITCH_CASE, B_SWITCH_NORMAL
|
|
return
|
|
|
|
BattleScript_RoarSuccessEndBattle::
|
|
call BattleScript_RoarSuccessRet
|
|
setbyte sSWITCH_CASE, B_SWITCH_NORMAL
|
|
setoutcomeonteleport BS_ATTACKER
|
|
finishaction
|
|
|
|
BattleScript_RoarSuccessRet:
|
|
jumpifbyte CMP_EQUAL, sSWITCH_CASE, B_SWITCH_HIT, BattleScript_RoarSuccessRet_Ret
|
|
jumpifbyte CMP_EQUAL, sSWITCH_CASE, B_SWITCH_RED_CARD, BattleScript_RoarSuccessRet_Ret
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_RoarSuccessRet_Ret:
|
|
switchoutabilities BS_TARGET
|
|
returntoball BS_TARGET
|
|
waitstate
|
|
return
|
|
|
|
BattleScript_WeaknessPolicy::
|
|
copybyte sBATTLER, gBattlerTarget
|
|
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_WeaknessPolicyAtk
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_WeaknessPolicyEnd
|
|
BattleScript_WeaknessPolicyAtk:
|
|
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_BY_TWO
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_WeaknessPolicySpAtk
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_WeaknessPolicySpAtk
|
|
printstring STRINGID_USINGITEMSTATOFPKMNROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_WeaknessPolicySpAtk:
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_WeaknessPolicyRemoveItem
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_WeaknessPolicyRemoveItem
|
|
printstring STRINGID_USINGITEMSTATOFPKMNROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_WeaknessPolicyRemoveItem:
|
|
removeitem BS_TARGET
|
|
BattleScript_WeaknessPolicyEnd:
|
|
return
|
|
|
|
BattleScript_TargetItemStatRaise::
|
|
copybyte sBATTLER, gBattlerTarget
|
|
statbuffchange 0, BattleScript_TargetItemStatRaiseRemoveItemRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_TargetItemStatRaiseRemoveItemRet
|
|
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
waitanimation
|
|
printstring STRINGID_USINGITEMSTATOFPKMNROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_TARGET
|
|
BattleScript_TargetItemStatRaiseRemoveItemRet:
|
|
return
|
|
|
|
BattleScript_AttackerItemStatRaise::
|
|
copybyte sBATTLER, gBattlerAttacker
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER, BattleScript_AttackerItemStatRaiseRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackerItemStatRaiseRet
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
waitanimation
|
|
printstring STRINGID_USINGITEMSTATOFPKMNROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_ATTACKER
|
|
BattleScript_AttackerItemStatRaiseRet:
|
|
return
|
|
|
|
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
|
|
|
|
BattleScript_SelectingDisabledMove::
|
|
printselectionstring STRINGID_PKMNMOVEISDISABLED
|
|
endselectionscript
|
|
|
|
BattleScript_DisabledNoMore::
|
|
printstring STRINGID_PKMNMOVEDISABLEDNOMORE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_SelectingDisabledMoveInPalace::
|
|
printstring STRINGID_PKMNMOVEISDISABLED
|
|
BattleScript_SelectingUnusableMoveInPalace::
|
|
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
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_DmgHazardsOnAttacker::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
call BattleScript_PrintHurtByDmgHazards
|
|
tryfaintmon BS_ATTACKER
|
|
tryfaintmon_spikes BS_ATTACKER, BattleScript_DmgHazardsOnAttackerFainted
|
|
return
|
|
|
|
BattleScript_DmgHazardsOnAttackerFainted::
|
|
setbyte sGIVEEXP_STATE, 0
|
|
getexp BS_ATTACKER
|
|
moveendall
|
|
goto BattleScript_HandleFaintedMon
|
|
|
|
BattleScript_DmgHazardsOnTarget::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
call BattleScript_PrintHurtByDmgHazards
|
|
tryfaintmon BS_TARGET
|
|
tryfaintmon_spikes BS_TARGET, BattleScript_DmgHazardsOnTargetFainted
|
|
return
|
|
|
|
BattleScript_DmgHazardsOnTargetFainted::
|
|
setbyte sGIVEEXP_STATE, 0
|
|
getexp BS_TARGET
|
|
moveendall
|
|
goto BattleScript_HandleFaintedMon
|
|
|
|
BattleScript_DmgHazardsOnFaintedBattler::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_FAINTED
|
|
datahpupdate BS_FAINTED
|
|
call BattleScript_PrintHurtByDmgHazards
|
|
tryfaintmon BS_FAINTED
|
|
tryfaintmon_spikes BS_FAINTED, BattleScript_DmgHazardsOnFaintedBattlerFainted
|
|
return
|
|
|
|
BattleScript_DmgHazardsOnFaintedBattlerFainted::
|
|
setbyte sGIVEEXP_STATE, 0
|
|
getexp BS_FAINTED
|
|
moveendall
|
|
goto BattleScript_HandleFaintedMon
|
|
|
|
BattleScript_PrintHurtByDmgHazards::
|
|
printfromtable gDmgHazardsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ToxicSpikesAbsorbed::
|
|
printstring STRINGID_TOXICSPIKESABSORBED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ToxicSpikesPoisoned::
|
|
printstring STRINGID_TOXICSPIKESPOISONED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_SCRIPTING
|
|
updatestatusicon BS_SCRIPTING
|
|
waitstate
|
|
return
|
|
|
|
BattleScript_StickyWebOnSwitchIn::
|
|
savetarget
|
|
copybyte gBattlerTarget, sBATTLER
|
|
setbyte sSTICKY_WEB_STAT_DROP, 1
|
|
printstring STRINGID_STICKYWEBSWITCHIN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifability BS_TARGET, ABILITY_MIRROR_ARMOR, BattleScript_MirrorArmorReflectStickyWeb
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_StickyWebOnSwitchInEnd
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_StickyWebOnSwitchInStatAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StickyWebOnSwitchInEnd
|
|
pause B_WAIT_TIME_SHORT
|
|
goto BattleScript_StickyWebOnSwitchInPrintStatMsg
|
|
BattleScript_StickyWebOnSwitchInStatAnim:
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_StickyWebOnSwitchInPrintStatMsg:
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_StickyWebOnSwitchInEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_PerishSongTakesLife::
|
|
printstring STRINGID_PKMNPERISHCOUNTFELL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_PerishBodyActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSWILLPERISHIN3TURNS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
return
|
|
|
|
BattleScript_GulpMissileGorging::
|
|
call BattleScript_AbilityPopUp
|
|
playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE
|
|
waitanimation
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
waitstate
|
|
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_GulpMissileNoDmgGorging
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER
|
|
getbattlerfainted BS_ATTACKER
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_GulpMissileNoSecondEffectGorging
|
|
BattleScript_GulpMissileNoDmgGorging:
|
|
handleformchange BS_TARGET, 0
|
|
playanimation BS_TARGET, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
swapattackerwithtarget
|
|
setmoveeffect MOVE_EFFECT_PARALYSIS
|
|
seteffectprimary
|
|
swapattackerwithtarget
|
|
return
|
|
BattleScript_GulpMissileNoSecondEffectGorging:
|
|
handleformchange BS_TARGET, 0
|
|
playanimation BS_TARGET, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
return
|
|
|
|
BattleScript_GulpMissileGulping::
|
|
call BattleScript_AbilityPopUp
|
|
playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE
|
|
waitanimation
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
waitstate
|
|
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_GulpMissileNoDmgGulping
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER
|
|
getbattlerfainted BS_ATTACKER
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_GulpMissileNoSecondEffectGulping
|
|
jumpifability BS_ATTACKER, ABILITY_CLEAR_BODY, BattleScript_GulpMissileNoSecondEffectGulping
|
|
jumpifability BS_ATTACKER, ABILITY_FULL_METAL_BODY, BattleScript_GulpMissileNoSecondEffectGulping
|
|
jumpifability BS_ATTACKER, ABILITY_WHITE_SMOKE, BattleScript_GulpMissileNoSecondEffectGulping
|
|
jumpifflowerveilattacker BattleScript_GulpMissileNoSecondEffectGulping
|
|
BattleScript_GulpMissileNoDmgGulping:
|
|
handleformchange BS_TARGET, 0
|
|
playanimation BS_TARGET, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
swapattackerwithtarget @ to make gStatDownStringIds down below print the right battler
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_GulpMissileGorgingTargetDefenseCantGoLower
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
swapattackerwithtarget @ restore the battlers, just in case
|
|
return
|
|
BattleScript_GulpMissileNoSecondEffectGulping:
|
|
handleformchange BS_TARGET, 0
|
|
playanimation BS_TARGET, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
return
|
|
BattleScript_GulpMissileGorgingTargetDefenseCantGoLower:
|
|
printstring STRINGID_STATSWONTDECREASE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_PerishSongCountGoesDown::
|
|
printstring STRINGID_PKMNPERISHCOUNTFELL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_AllStatsUp::
|
|
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
|
|
BattleScript_AllStatsUpAtk::
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AllStatsUpDef::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AllStatsUpSpeed::
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AllStatsUpSpAtk::
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AllStatsUpSpDef::
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpRet
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AllStatsUpRet::
|
|
return
|
|
|
|
BattleScript_RapidSpinAway::
|
|
rapidspinfree
|
|
return
|
|
|
|
BattleScript_WrapFree::
|
|
printstring STRINGID_PKMNGOTFREE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
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
|
|
|
|
BattleScript_ToxicSpikesFree::
|
|
printstring STRINGID_PKMNBLEWAWAYTOXICSPIKES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_StickyWebFree::
|
|
printstring STRINGID_PKMNBLEWAWAYSTICKYWEB
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_StealthRockFree::
|
|
printstring STRINGID_PKMNBLEWAWAYSTEALTHROCK
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MonTookFutureAttack::
|
|
printstring STRINGID_PKMNTOOKATTACK
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_FUTURE_SIGHT, BattleScript_CheckDoomDesireMiss
|
|
accuracycheck BattleScript_FutureAttackMiss, MOVE_FUTURE_SIGHT
|
|
goto BattleScript_FutureAttackAnimate
|
|
BattleScript_CheckDoomDesireMiss::
|
|
accuracycheck BattleScript_FutureAttackMiss, MOVE_DOOM_DESIRE
|
|
BattleScript_FutureAttackAnimate::
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
jumpifmovehadnoeffect BattleScript_DoFutureAttackResult
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_FUTURE_SIGHT, BattleScript_FutureHitAnimDoomDesire
|
|
playanimation BS_ATTACKER, B_ANIM_FUTURE_SIGHT_HIT
|
|
goto BattleScript_DoFutureAttackHit
|
|
BattleScript_FutureHitAnimDoomDesire::
|
|
playanimation BS_ATTACKER, B_ANIM_DOOM_DESIRE_HIT
|
|
BattleScript_DoFutureAttackHit::
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DoFutureAttackResult:
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
checkteamslost BattleScript_FutureAttackEnd
|
|
BattleScript_FutureAttackEnd::
|
|
moveendcase MOVEEND_RAGE
|
|
moveendfromto MOVEEND_ITEM_EFFECTS_ALL, MOVEEND_UPDATE_LAST_MOVES
|
|
setbyte gMoveResultFlags, 0
|
|
end2
|
|
BattleScript_FutureAttackMiss::
|
|
pause B_WAIT_TIME_SHORT
|
|
sethword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
sethword gMoveResultFlags, 0
|
|
end2
|
|
|
|
BattleScript_NoMovesLeft::
|
|
printselectionstring STRINGID_PKMNHASNOMOVESLEFT
|
|
endselectionscript
|
|
|
|
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
|
|
|
|
BattleScript_SelectingTormentedMove::
|
|
printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT
|
|
endselectionscript
|
|
|
|
BattleScript_MoveUsedIsTormented::
|
|
printstring STRINGID_PKMNCANTUSEMOVETORMENT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingTormentedMoveInPalace::
|
|
printstring STRINGID_PKMNCANTUSEMOVETORMENT
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_SelectingNotAllowedMoveTaunt::
|
|
printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT
|
|
endselectionscript
|
|
|
|
BattleScript_MoveUsedIsTaunted::
|
|
printstring STRINGID_PKMNCANTUSEMOVETAUNT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingNotAllowedMoveTauntInPalace::
|
|
printstring STRINGID_PKMNCANTUSEMOVETAUNT
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_SelectingNotAllowedMoveThroatChop::
|
|
printselectionstring STRINGID_PKMNCANTUSEMOVETHROATCHOP
|
|
endselectionscript
|
|
|
|
BattleScript_MoveUsedIsThroatChopPrevented::
|
|
printstring STRINGID_PKMNCANTUSEMOVETHROATCHOP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingNotAllowedMoveThroatChopInPalace::
|
|
printstring STRINGID_PKMNCANTUSEMOVETHROATCHOP
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_ThroatChopEndTurn::
|
|
printstring STRINGID_THROATCHOPENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_SlowStartEnds::
|
|
pause 5
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_SLOWSTARTEND
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_SelectingNotAllowedMoveGravity::
|
|
printselectionstring STRINGID_GRAVITYPREVENTSUSAGE
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingNotAllowedStuffCheeks::
|
|
printselectionstring STRINGID_STUFFCHEEKSCANTSELECT
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingNotAllowedStuffCheeksInPalace::
|
|
printstring STRINGID_STUFFCHEEKSCANTSELECT
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_SelectingNotAllowedBelch::
|
|
printselectionstring STRINGID_BELCHCANTSELECT
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingNotAllowedBelchInPalace::
|
|
printstring STRINGID_BELCHCANTSELECT
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_MoveUsedGravityPrevents::
|
|
printstring STRINGID_GRAVITYPREVENTSUSAGE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingNotAllowedMoveGravityInPalace::
|
|
printstring STRINGID_GRAVITYPREVENTSUSAGE
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_SelectingNotAllowedMoveHealBlock::
|
|
printselectionstring STRINGID_HEALBLOCKPREVENTSUSAGE
|
|
endselectionscript
|
|
|
|
BattleScript_MoveUsedHealBlockPrevents::
|
|
printstring STRINGID_HEALBLOCKPREVENTSUSAGE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SelectingNotAllowedMoveHealBlockInPalace::
|
|
printstring STRINGID_HEALBLOCKPREVENTSUSAGE
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_WishComesTrue::
|
|
trywish 1, BattleScript_WishButFullHp
|
|
playanimation BS_TARGET, B_ANIM_WISH_HEAL
|
|
printstring STRINGID_PKMNWISHCAMETRUE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
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::
|
|
playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL
|
|
printstring STRINGID_PKMNABSORBEDNUTRIENTS
|
|
BattleScript_TurnHeal:
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_AquaRingHeal::
|
|
playanimation BS_ATTACKER, B_ANIM_AQUA_RING_HEAL
|
|
printstring STRINGID_AQUARINGHEAL
|
|
goto BattleScript_TurnHeal
|
|
|
|
BattleScript_PrintMonIsRooted::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNANCHOREDITSELF
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AtkDefDown::
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
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
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_AtkDefDownTryDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_AtkDefDownTryDef
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AtkDefDownTryDef:
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_AtkDefDownRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_AtkDefDownRet
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AtkDefDownRet:
|
|
return
|
|
|
|
BattleScript_DefSpDefDown::
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_DefSpDefDownTrySpDef
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_DefSpDefDownTrySpDef
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DefSpDefDownTrySpDef::
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPDEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE
|
|
setstatchanger STAT_SPDEF, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_DefSpDefDownRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_DefSpDefDownRet
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DefSpDefDownRet::
|
|
return
|
|
|
|
BattleScript_DefDownSpeedUp::
|
|
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_DefDownSpeedUpTryDef
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_DefDownSpeedUpRet
|
|
BattleScript_DefDownSpeedUpTryDef::
|
|
playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_CANT_PREVENT
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_CERTAIN, BattleScript_DefDownSpeedUpTrySpeed
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DefDownSpeedUpTrySpeed
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DefDownSpeedUpTrySpeed:
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPEED, 0
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_CERTAIN, BattleScript_DefDownSpeedUpRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DefDownSpeedUpRet
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DefDownSpeedUpRet::
|
|
return
|
|
|
|
BattleScript_KnockedOff::
|
|
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
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_GrudgeTakesPp::
|
|
printstring STRINGID_PKMNLOSTPPGRUDGE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MagicCoatBounce::
|
|
attackstring
|
|
ppreduce
|
|
pause B_WAIT_TIME_SHORT
|
|
printfromtable gMagicCoatBounceStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP
|
|
bicword gHitMarker, HITMARKER_NO_ATTACKSTRING
|
|
setmagiccoattarget BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_MagicCoatBouncePrankster::
|
|
attackstring
|
|
ppreduce
|
|
pause B_WAIT_TIME_SHORT
|
|
printfromtable gMagicCoatBounceStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SnatchedMove::
|
|
attackstring
|
|
ppreduce
|
|
snatchsetbattlers
|
|
playanimation BS_TARGET, B_ANIM_SNATCH_MOVE
|
|
printstring STRINGID_PKMNSNATCHEDMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP
|
|
swapattackerwithtarget
|
|
return
|
|
|
|
BattleScript_EnduredMsg::
|
|
printstring STRINGID_PKMNENDUREDHIT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_SturdiedMsg::
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
pause B_WAIT_TIME_SHORTEST
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ENDUREDSTURDY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_OneHitKOMsg::
|
|
printstring STRINGID_ONEHITKO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_SAtkDown2::
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_SPATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
|
|
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
|
|
BattleScript_SAtkDown2End::
|
|
return
|
|
|
|
BattleScript_MoveEffectClearSmog::
|
|
printstring STRINGID_RESETSTARGETSSTATLEVELS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_FocusPunchSetUp::
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
playanimation BS_ATTACKER, B_ANIM_FOCUS_PUNCH_SETUP
|
|
printstring STRINGID_PKMNTIGHTENINGFOCUS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_MegaEvolution::
|
|
printstring STRINGID_MEGAEVOREACTING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setbyte gIsCriticalHit, 0
|
|
handlemegaevo BS_ATTACKER, 0
|
|
handlemegaevo BS_ATTACKER, 1
|
|
playanimation BS_ATTACKER, B_ANIM_MEGA_EVOLUTION
|
|
waitanimation
|
|
handlemegaevo BS_ATTACKER, 2
|
|
printstring STRINGID_MEGAEVOEVOLVED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_WishMegaEvolution::
|
|
printstring STRINGID_FERVENTWISHREACHED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setbyte gIsCriticalHit, 0
|
|
handlemegaevo BS_ATTACKER, 0
|
|
handlemegaevo BS_ATTACKER, 1
|
|
playanimation BS_ATTACKER, B_ANIM_MEGA_EVOLUTION
|
|
waitanimation
|
|
handlemegaevo BS_ATTACKER, 2
|
|
printstring STRINGID_MEGAEVOEVOLVED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_PrimalReversion::
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
setbyte gIsCriticalHit, 0
|
|
handleprimalreversion BS_ATTACKER, 0
|
|
handleprimalreversion BS_ATTACKER, 1
|
|
playanimation BS_ATTACKER, B_ANIM_PRIMAL_REVERSION
|
|
waitanimation
|
|
handleprimalreversion BS_ATTACKER, 2
|
|
printstring STRINGID_PKMNREVERTEDTOPRIMAL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_PrimalReversionRet::
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
setbyte gIsCriticalHit, 0
|
|
handleprimalreversion BS_ATTACKER, 0
|
|
handleprimalreversion BS_ATTACKER, 1
|
|
playanimation BS_ATTACKER, B_ANIM_PRIMAL_REVERSION
|
|
waitanimation
|
|
handleprimalreversion BS_ATTACKER, 2
|
|
printstring STRINGID_PKMNREVERTEDTOPRIMAL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AttackerFormChange::
|
|
pause 5
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
BattleScript_AttackerFormChangeNoPopup::
|
|
handleformchange BS_ATTACKER, 0
|
|
handleformchange BS_ATTACKER, 1
|
|
playanimation BS_ATTACKER, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
handleformchange BS_ATTACKER, 2
|
|
return
|
|
|
|
BattleScript_AttackerFormChangeEnd3::
|
|
call BattleScript_AttackerFormChange
|
|
end3
|
|
|
|
BattleScript_AttackerFormChangeEnd3NoPopup::
|
|
call BattleScript_AttackerFormChangeNoPopup
|
|
|
|
BattleScript_AttackerFormChangeMoveEffect::
|
|
waitmessage 1
|
|
handleformchange BS_ATTACKER, 0
|
|
handleformchange BS_ATTACKER, 1
|
|
playanimation BS_ATTACKER, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
copybyte sBATTLER, gBattlerAttacker
|
|
printstring STRINGID_PKMNTRANSFORMED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
handleformchange BS_ATTACKER, 2
|
|
end3
|
|
|
|
BattleScript_BallFetch::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_FETCHEDPOKEBALL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_TargetFormChange::
|
|
pause 5
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
handleformchange BS_TARGET, 0
|
|
handleformchange BS_TARGET, 1
|
|
playanimation BS_TARGET, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
handleformchange BS_TARGET, 2
|
|
return
|
|
|
|
BattleScript_IllusionOff::
|
|
spriteignore0hp TRUE
|
|
playanimation BS_TARGET, B_ANIM_ILLUSION_OFF
|
|
waitanimation
|
|
updatenick BS_TARGET
|
|
waitstate
|
|
spriteignore0hp FALSE
|
|
printstring STRINGID_ILLUSIONWOREOFF
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_CottonDownActivates::
|
|
setbyte sFIXED_ABILITY_POPUP, TRUE
|
|
call BattleScript_AbilityPopUp
|
|
copybyte gEffectBattler, gBattlerTarget
|
|
savetarget
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_CottonDownLoop:
|
|
getbattlerfainted BS_TARGET
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_CottonDownLoopIncrement
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
jumpifbyteequal gBattlerTarget, gEffectBattler, BattleScript_CottonDownLoopIncrement
|
|
statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_CottonDownTargetSpeedCantGoLower
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_CottonDownLoopIncrement
|
|
BattleScript_CottonDownTargetSpeedCantGoLower:
|
|
printstring STRINGID_STATSWONTDECREASE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CottonDownLoopIncrement:
|
|
addbyte gBattlerTarget, 1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_CottonDownLoop
|
|
BattleScript_CottonDownReturn:
|
|
restoretarget
|
|
destroyabilitypopup
|
|
return
|
|
|
|
BattleScript_AnticipationActivates::
|
|
pause 5
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ANTICIPATIONACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AftermathDmg::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_AFTERMATHDMG
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_MoveUsedIsAsleep::
|
|
printstring STRINGID_PKMNFASTASLEEP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveUsedWokeUp::
|
|
bicword gHitMarker, HITMARKER_WAKE_UP_CLEAR
|
|
printfromtable gWokeUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_MonWokeUpInUproar::
|
|
printstring STRINGID_PKMNWOKEUPINUPROAR
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_PoisonTurnDmg::
|
|
printstring STRINGID_PKMNHURTBYPOISON
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DoStatusTurnDmg::
|
|
statusanimation BS_ATTACKER
|
|
BattleScript_DoTurnDmg:
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
tryfaintmon BS_ATTACKER
|
|
checkteamslost BattleScript_DoTurnDmgEnd
|
|
BattleScript_DoTurnDmgEnd:
|
|
end2
|
|
|
|
BattleScript_PoisonHealActivates::
|
|
printstring STRINGID_POISONHEALHPUP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
recordability BS_ATTACKER
|
|
statusanimation BS_ATTACKER
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_BurnTurnDmg::
|
|
printstring STRINGID_PKMNHURTBYBURN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_DoStatusTurnDmg
|
|
|
|
BattleScript_MoveUsedIsFrozen::
|
|
printstring STRINGID_PKMNISFROZEN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveUsedUnfroze::
|
|
printfromtable gGotDefrostedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_DefrostedViaFireMove::
|
|
printstring STRINGID_PKMNWASDEFROSTED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_TARGET
|
|
return
|
|
|
|
BattleScript_MoveUsedIsParalyzed::
|
|
printstring STRINGID_PKMNISPARALYZED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_ATTACKER
|
|
cancelmultiturnmoves BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_PowderMoveNoEffect::
|
|
attackstring
|
|
ppreduce
|
|
pause B_WAIT_TIME_SHORT
|
|
jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_PowderMoveNoEffectPrint
|
|
jumpifability BS_TARGET, ABILITY_OVERCOAT, BattleScript_PowderMoveNoEffectOvercoat
|
|
printstring STRINGID_SAFETYGOGGLESPROTECTED
|
|
goto BattleScript_PowderMoveNoEffectWaitMsg
|
|
BattleScript_PowderMoveNoEffectOvercoat:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_PowderMoveNoEffectPrint:
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
BattleScript_PowderMoveNoEffectWaitMsg:
|
|
waitmessage B_WAIT_TIME_LONG
|
|
cancelmultiturnmoves BS_ATTACKER
|
|
sethword gMoveResultFlags, MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveUsedFlinched::
|
|
printstring STRINGID_PKMNFLINCHED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifability BS_ATTACKER ABILITY_STEADFAST BattleScript_TryActivateSteadFast
|
|
BattleScript_MoveUsedFlinchedEnd:
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_TryActivateSteadFast:
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_MoveUsedFlinchedEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_MoveUsedFlinchedEnd
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
setbyte gBattleCommunication STAT_SPEED
|
|
stattextbuffer BS_ATTACKER
|
|
printstring STRINGID_ATTACKERABILITYSTATRAISE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveUsedFlinchedEnd
|
|
|
|
BattleScript_PrintUproarOverTurns::
|
|
printfromtable gUproarOverTurnStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_ThrashConfuses::
|
|
chosenstatus2animation BS_ATTACKER, STATUS2_CONFUSION
|
|
printstring STRINGID_PKMNFATIGUECONFUSION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_MoveUsedIsConfused::
|
|
printstring STRINGID_PKMNISCONFUSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
status2animation BS_ATTACKER, STATUS2_CONFUSION
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, FALSE, BattleScript_MoveUsedIsConfusedRet
|
|
BattleScript_DoSelfConfusionDmg::
|
|
cancelmultiturnmoves BS_ATTACKER
|
|
adjustdamage
|
|
printstring STRINGID_ITHURTCONFUSION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
waitstate
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_MoveUsedIsConfusedRet::
|
|
return
|
|
|
|
BattleScript_MoveUsedPowder::
|
|
bicword gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED
|
|
attackstring
|
|
ppreduce
|
|
pause B_WAIT_TIME_SHORT
|
|
cancelmultiturnmoves BS_ATTACKER
|
|
status2animation BS_ATTACKER, STATUS2_POWDER
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
waitstate
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_POWDEREXPLODES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveUsedIsConfusedNoMore::
|
|
printstring STRINGID_PKMNHEALEDCONFUSION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_PrintPayDayMoneyString::
|
|
printstring STRINGID_PLAYERPICKEDUPMONEY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_WrapTurnDmg::
|
|
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_DoTurnDmgEnd
|
|
playanimation BS_ATTACKER, B_ANIM_TURN_TRAP, sB_ANIM_ARG1
|
|
printstring STRINGID_PKMNHURTBY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_DoTurnDmg
|
|
|
|
BattleScript_WrapEnds::
|
|
printstring STRINGID_PKMNFREEDFROM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_MoveUsedIsInLove::
|
|
printstring STRINGID_PKMNINLOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
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
|
|
status2animation BS_ATTACKER, STATUS2_NIGHTMARE
|
|
goto BattleScript_DoTurnDmg
|
|
|
|
BattleScript_CurseTurnDmg::
|
|
printstring STRINGID_PKMNAFFLICTEDBYCURSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
status2animation BS_ATTACKER, STATUS2_CURSED
|
|
goto BattleScript_DoTurnDmg
|
|
|
|
BattleScript_TargetPRLZHeal::
|
|
printstring STRINGID_PKMNHEALEDPARALYSIS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_TARGET
|
|
return
|
|
|
|
BattleScript_TargetWokeUp::
|
|
printstring STRINGID_TARGETWOKEUP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_TARGET
|
|
return
|
|
|
|
BattleScript_TargetBurnHeal::
|
|
printstring STRINGID_PKMNBURNHEALED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_TARGET
|
|
return
|
|
|
|
BattleScript_MoveEffectSleep::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printfromtable gFellAsleepStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_UpdateEffectStatusIconRet::
|
|
updatestatusicon BS_EFFECT_BATTLER
|
|
waitstate
|
|
return
|
|
|
|
BattleScript_YawnMakesAsleep::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printstring STRINGID_PKMNFELLASLEEP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_EFFECT_BATTLER
|
|
waitstate
|
|
jumpifstatus3 BS_EFFECT_BATTLER, STATUS3_SKY_DROPPED, BattleScript_YawnEnd
|
|
makevisible BS_EFFECT_BATTLER
|
|
skydropyawn
|
|
BattleScript_YawnEnd:
|
|
end2
|
|
|
|
BattleScript_EmbargoEndTurn::
|
|
printstring STRINGID_EMBARGOENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_TelekinesisEndTurn::
|
|
printstring STRINGID_TELEKINESISENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_BufferEndTurn::
|
|
printstring STRINGID_BUFFERENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_ToxicOrb::
|
|
setbyte cMULTISTRING_CHOOSER, 0
|
|
copybyte gEffectBattler, gBattlerAttacker
|
|
call BattleScript_MoveEffectToxic
|
|
end2
|
|
|
|
BattleScript_FlameOrb::
|
|
setbyte cMULTISTRING_CHOOSER, 0
|
|
copybyte gEffectBattler, gBattlerAttacker
|
|
call BattleScript_MoveEffectBurn
|
|
end2
|
|
|
|
BattleScript_MoveEffectPoison::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printfromtable gGotPoisonedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_UpdateEffectStatusIconRet
|
|
|
|
BattleScript_MoveEffectBurn::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printfromtable gGotBurnedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_UpdateEffectStatusIconRet
|
|
|
|
BattleScript_MoveEffectFreeze::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printfromtable gGotFrozenStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_UpdateEffectStatusIconRet
|
|
|
|
BattleScript_MoveEffectParalysis::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printfromtable gGotParalyzedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_UpdateEffectStatusIconRet
|
|
|
|
BattleScript_MoveEffectUproar::
|
|
printstring STRINGID_PKMNCAUSEDUPROAR
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveEffectToxic::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printstring STRINGID_PKMNBADLYPOISONED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
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::
|
|
chosenstatus2animation BS_EFFECT_BATTLER, STATUS2_CONFUSION
|
|
printstring STRINGID_PKMNWASCONFUSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveEffectRecoilWithStatus::
|
|
argumentstatuseffect
|
|
BattleScript_MoveEffectRecoil::
|
|
jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil
|
|
jumpifability BS_ATTACKER, ABILITY_ROCK_HEAD, BattleScript_RecoilEnd
|
|
BattleScript_DoRecoil::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_PKMNHITWITHRECOIL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
BattleScript_RecoilEnd::
|
|
return
|
|
|
|
BattleScript_EffectWithChance::
|
|
seteffectwithchance
|
|
return
|
|
|
|
BattleScript_ItemSteal::
|
|
playanimation BS_TARGET, B_ANIM_ITEM_STEAL
|
|
printstring STRINGID_PKMNSTOLEITEM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_DrizzleActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNMADEITRAIN
|
|
waitstate
|
|
playanimation BS_BATTLER_0, B_ANIM_RAIN_CONTINUES
|
|
call BattleScript_WeatherFormChanges
|
|
end3
|
|
|
|
BattleScript_AbilityRaisesDefenderStat::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange 0, NULL
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ABILITY_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_DEFENDERSSTATROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AbilityPopUp:
|
|
.if B_ABILITY_POP_UP == TRUE
|
|
showabilitypopup BS_ABILITY_BATTLER
|
|
recordability BS_ABILITY_BATTLER
|
|
pause 40
|
|
.endif
|
|
sethword sABILITY_OVERWRITE, 0
|
|
return
|
|
|
|
BattleScript_SpeedBoostActivates::
|
|
call BattleScript_AbilityPopUp
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_PKMNRAISEDSPEED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
@ Can't compare directly to a value, have to compare to value at pointer
|
|
sZero:
|
|
.byte 0
|
|
|
|
BattleScript_MoodyActivates::
|
|
call BattleScript_AbilityPopUp
|
|
jumpifbyteequal sSTATCHANGER, sZero, BattleScript_MoodyLower
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_MoodyLower
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_ROSE, BattleScript_MoodyLower
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_MoodyLower:
|
|
jumpifbyteequal sSAVED_STAT_CHANGER, sZero, BattleScript_MoodyEnd
|
|
copybyte sSTATCHANGER, sSAVED_STAT_CHANGER
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_MoodyEnd
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_MoodyEnd
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_MoodyEnd:
|
|
end3
|
|
|
|
BattleScript_EmergencyExit::
|
|
pause 5
|
|
call BattleScript_AbilityPopUp
|
|
pause B_WAIT_TIME_LONG
|
|
BattleScript_EmergencyExitNoPopUp::
|
|
playanimation BS_TARGET, B_ANIM_SLIDE_OFFSCREEN
|
|
waitanimation
|
|
openpartyscreen BS_TARGET, BattleScript_EmergencyExitRet
|
|
switchoutabilities BS_TARGET
|
|
waitstate
|
|
switchhandleorder BS_TARGET, 2
|
|
returntoball BS_TARGET
|
|
getswitchedmondata BS_TARGET
|
|
switchindataupdate BS_TARGET
|
|
hpthresholds BS_TARGET
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_TARGET, TRUE
|
|
waitstate
|
|
switchineffects BS_TARGET
|
|
BattleScript_EmergencyExitRet:
|
|
return
|
|
|
|
BattleScript_EmergencyExitWild::
|
|
pause 5
|
|
call BattleScript_AbilityPopUp
|
|
pause B_WAIT_TIME_LONG
|
|
BattleScript_EmergencyExitWildNoPopUp::
|
|
playanimation BS_TARGET, B_ANIM_SLIDE_OFFSCREEN
|
|
waitanimation
|
|
setoutcomeonteleport BS_TARGET
|
|
finishaction
|
|
return
|
|
|
|
BattleScript_TraceActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNTRACED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
settracedability BS_SCRIPTING
|
|
switchinabilities BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_TraceActivatesEnd3::
|
|
call BattleScript_TraceActivates
|
|
end3
|
|
|
|
BattleScript_ReceiverActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_RECEIVERABILITYTAKEOVER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
settracedability BS_ABILITY_BATTLER
|
|
return
|
|
|
|
BattleScript_AbilityHpHeal:
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXRESTOREDHPALITTLE2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_RainDishActivates::
|
|
call BattleScript_AbilityHpHeal
|
|
end3
|
|
|
|
BattleScript_CheekPouchActivates::
|
|
copybyte sSAVED_BATTLER, gBattlerAttacker
|
|
copybyte gBattlerAttacker, gBattlerAbility
|
|
call BattleScript_AbilityHpHeal
|
|
copybyte gBattlerAttacker, sSAVED_BATTLER
|
|
return
|
|
|
|
BattleScript_HarvestActivates::
|
|
pause 5
|
|
tryrecycleitem BattleScript_HarvestActivatesEnd
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_HARVESTBERRY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_HarvestActivatesEnd:
|
|
end3
|
|
|
|
BattleScript_SolarPowerActivates::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
call BattleScript_AbilityPopUp
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_SOLARPOWERHPDROP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
end3
|
|
|
|
BattleScript_HealerActivates::
|
|
call BattleScript_AbilityPopUp
|
|
curestatus BS_SCRIPTING
|
|
updatestatusicon BS_SCRIPTING
|
|
printstring STRINGID_HEALERCURE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_SandstreamActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM
|
|
waitstate
|
|
playanimation BS_BATTLER_0, B_ANIM_SANDSTORM_CONTINUES
|
|
call BattleScript_WeatherFormChanges
|
|
end3
|
|
|
|
BattleScript_SandSpitActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ASANDSTORMKICKEDUP
|
|
waitstate
|
|
playanimation BS_BATTLER_0, B_ANIM_SANDSTORM_CONTINUES
|
|
call BattleScript_WeatherFormChanges
|
|
return
|
|
|
|
BattleScript_ShedSkinActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXCUREDYPROBLEM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_ATTACKER
|
|
end3
|
|
|
|
BattleScript_WeatherFormChanges::
|
|
setbyte sBATTLER, 0
|
|
BattleScript_WeatherFormChangesLoop::
|
|
tryweatherformdatachange
|
|
addbyte sBATTLER, 1
|
|
jumpifbytenotequal sBATTLER, gBattlersCount, BattleScript_WeatherFormChangesLoop
|
|
return
|
|
|
|
BattleScript_WeatherFormChange::
|
|
call BattleScript_DoWeatherFormChange
|
|
end3
|
|
|
|
BattleScript_DoWeatherFormChange::
|
|
copybyte gBattlerAbility, sBATTLER
|
|
.if B_WEATHER_FORMS >= GEN_5
|
|
jumpifspecies BS_SCRIPTING, SPECIES_CASTFORM, BattleScript_DoWeatherFormChange_ForecastCheck
|
|
BattleScript_DoWeatherFormChange_FlowerGiftCheck:
|
|
jumpifability BS_SCRIPTING, ABILITY_FLOWER_GIFT, BattleScript_DoWeatherFormChange_PopUp
|
|
goto BattleScript_DoWeatherFormChange_AfterPopUp
|
|
.endif
|
|
BattleScript_DoWeatherFormChange_ForecastCheck:
|
|
jumpifability BS_SCRIPTING, ABILITY_FORECAST, BattleScript_DoWeatherFormChange_PopUp
|
|
goto BattleScript_DoWeatherFormChange_AfterPopUp
|
|
BattleScript_DoWeatherFormChange_PopUp:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_DoWeatherFormChange_AfterPopUp:
|
|
doweatherformchangeanimation
|
|
waitstate
|
|
printstring STRINGID_PKMNTRANSFORMED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_TryAdrenalineOrb:
|
|
jumpifnoholdeffect BS_TARGET, HOLD_EFFECT_ADRENALINE_ORB, BattleScript_TryAdrenalineOrbRet
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPEED, 12, BattleScript_TryAdrenalineOrbRet
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_TryAdrenalineOrbRet
|
|
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
copybyte sBATTLER, gBattlerTarget
|
|
setlastuseditem BS_TARGET
|
|
printstring STRINGID_USINGITEMSTATOFPKMNROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_TARGET
|
|
BattleScript_TryAdrenalineOrbRet:
|
|
return
|
|
|
|
BattleScript_IntimidateActivates::
|
|
showabilitypopup BS_ATTACKER
|
|
pause B_WAIT_TIME_LONG
|
|
destroyabilitypopup
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_IntimidateLoop:
|
|
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_IntimidateLoopIncrement
|
|
jumpiftargetally BattleScript_IntimidateLoopIncrement
|
|
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_IntimidateLoopIncrement
|
|
jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_IntimidatePrevented
|
|
jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidatePrevented
|
|
jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_IntimidatePrevented
|
|
.if B_UPDATED_INTIMIDATE >= GEN_8
|
|
jumpifability BS_TARGET, ABILITY_INNER_FOCUS, BattleScript_IntimidatePrevented
|
|
jumpifability BS_TARGET, ABILITY_SCRAPPY, BattleScript_IntimidatePrevented
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_IntimidatePrevented
|
|
jumpifability BS_TARGET, ABILITY_OBLIVIOUS, BattleScript_IntimidatePrevented
|
|
.endif
|
|
BattleScript_IntimidateEffect:
|
|
copybyte sBATTLER, gBattlerTarget
|
|
statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_PKMNCUTSATTACKWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_TryAdrenalineOrb
|
|
BattleScript_IntimidateLoopIncrement:
|
|
addbyte gBattlerTarget, 1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_IntimidateLoop
|
|
BattleScript_IntimidateEnd:
|
|
destroyabilitypopup
|
|
pause B_WAIT_TIME_MED
|
|
end3
|
|
|
|
BattleScript_IntimidatePrevented:
|
|
call BattleScript_AbilityPopUp
|
|
pause B_WAIT_TIME_LONG
|
|
setbyte gBattleCommunication STAT_ATK
|
|
stattextbuffer BS_TARGET
|
|
printstring STRINGID_STATWASNOTLOWERED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_TryAdrenalineOrb
|
|
goto BattleScript_IntimidateLoopIncrement
|
|
|
|
BattleScript_DroughtActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXINTENSIFIEDSUN
|
|
waitstate
|
|
playanimation BS_BATTLER_0, B_ANIM_SUN_CONTINUES
|
|
call BattleScript_WeatherFormChanges
|
|
end3
|
|
|
|
BattleScript_DesolateLandActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_EXTREMELYHARSHSUNLIGHT
|
|
waitstate
|
|
playanimation BS_BATTLER_0, B_ANIM_SUN_CONTINUES
|
|
call BattleScript_WeatherFormChanges
|
|
end3
|
|
|
|
BattleScript_DesolateLandEvaporatesWaterTypeMoves::
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
pause B_WAIT_TIME_SHORT
|
|
ppreduce
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_STRING_PRINTED, BattleScript_MoveEnd
|
|
printstring STRINGID_MOVEEVAPORATEDINTHEHARSHSUNLIGHT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_STRING_PRINTED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_PrimordialSeaActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_HEAVYRAIN
|
|
waitstate
|
|
playanimation BS_BATTLER_0, B_ANIM_RAIN_CONTINUES
|
|
call BattleScript_WeatherFormChanges
|
|
end3
|
|
|
|
BattleScript_PrimordialSeaFizzlesOutFireTypeMoves::
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
pause B_WAIT_TIME_SHORT
|
|
ppreduce
|
|
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_STRING_PRINTED, BattleScript_MoveEnd
|
|
printstring STRINGID_MOVEFIZZLEDOUTINTHEHEAVYRAIN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_STRING_PRINTED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_DeltaStreamActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_MYSTERIOUSAIRCURRENT
|
|
waitstate
|
|
playanimation BS_ATTACKER, B_ANIM_STRONG_WINDS
|
|
end3
|
|
|
|
BattleScript_AttackWeakenedByStrongWinds::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_ATTACKWEAKENEDBSTRONGWINDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_SnowWarningActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_SNOWWARNINGHAIL
|
|
waitstate
|
|
playanimation BS_BATTLER_0, B_ANIM_HAIL_CONTINUES
|
|
call BattleScript_WeatherFormChanges
|
|
end3
|
|
|
|
BattleScript_TerrainSeedLoop:
|
|
savetarget
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_TerrainSeedLoopIter:
|
|
copybyte sBATTLER, gBattlerTarget
|
|
doterrainseed BS_TARGET, BattleScript_TerrainSeedLoop_NextBattler
|
|
removeitem BS_TARGET
|
|
BattleScript_TerrainSeedLoop_NextBattler:
|
|
addbyte gBattlerTarget, 0x1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TerrainSeedLoopIter
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_ElectricSurgeActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_TERRAINBECOMESELECTRIC
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG
|
|
call BattleScript_TerrainSeedLoop
|
|
end3
|
|
|
|
BattleScript_MistySurgeActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_TERRAINBECOMESMISTY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG
|
|
call BattleScript_TerrainSeedLoop
|
|
end3
|
|
|
|
BattleScript_GrassySurgeActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_TERRAINBECOMESGRASSY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG
|
|
call BattleScript_TerrainSeedLoop
|
|
end3
|
|
|
|
BattleScript_PsychicSurgeActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_TERRAINBECOMESPSYCHIC
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG
|
|
call BattleScript_TerrainSeedLoop
|
|
end3
|
|
|
|
BattleScript_HurtTarget_NoString:
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
tryfaintmon BS_TARGET
|
|
return
|
|
|
|
BattleScript_BadDreamsActivates::
|
|
call BattleScript_AbilityPopUp
|
|
setbyte sFIXED_ABILITY_POPUP, TRUE
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_BadDreamsLoop:
|
|
jumpiftargetally BattleScript_BadDreamsIncrement
|
|
jumpifability BS_TARGET, ABILITY_MAGIC_GUARD, BattleScript_BadDreamsIncrement
|
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_BadDreams_Dmg
|
|
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_BadDreams_Dmg
|
|
goto BattleScript_BadDreamsIncrement
|
|
BattleScript_BadDreams_Dmg:
|
|
printstring STRINGID_BADDREAMSDMG
|
|
waitmessage B_WAIT_TIME_LONG
|
|
dmg_1_8_targethp
|
|
call BattleScript_HurtTarget_NoString
|
|
BattleScript_BadDreamsIncrement:
|
|
addbyte gBattlerTarget, 1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_BadDreamsLoop
|
|
BattleScript_BadDreamsEnd:
|
|
destroyabilitypopup
|
|
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
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNPROTECTEDBY
|
|
pause B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_DampStopsExplosion::
|
|
pause B_WAIT_TIME_SHORT
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNPREVENTSUSAGE
|
|
pause B_WAIT_TIME_LONG
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
moveendcase MOVEEND_CLEAR_BITS
|
|
end
|
|
|
|
BattleScript_MoveHPDrain_PPLoss::
|
|
ppreduce
|
|
BattleScript_MoveHPDrain::
|
|
attackstring
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
printstring STRINGID_PKMNRESTOREDHPUSING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveStatDrain_PPLoss::
|
|
ppreduce
|
|
BattleScript_MoveStatDrain::
|
|
attackstring
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
waitanimation
|
|
printstring STRINGID_TARGETABILITYSTATRAISE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
clearsemiinvulnerablebit
|
|
tryfaintmon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MonMadeMoveUseless_PPLoss::
|
|
ppreduce
|
|
BattleScript_MonMadeMoveUseless::
|
|
attackstring
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXMADEYUSELESS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_FlashFireBoost_PPLoss::
|
|
ppreduce
|
|
BattleScript_FlashFireBoost::
|
|
attackstring
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printfromtable gFlashFireStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AbilityPreventsPhasingOut::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNANCHORSITSELFWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AbilityNoStatLoss::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
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
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNPREVENTSROMANCEWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_FlinchPrevention::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXPREVENTSFLINCHING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_OwnTempoPrevents::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SoundproofProtected::
|
|
attackstring
|
|
ppreduce
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXBLOCKSY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_DazzlingProtected::
|
|
attackstring
|
|
ppreduce
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_POKEMONCANNOTUSEMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveUsedPsychicTerrainPrevents::
|
|
printstring STRINGID_POKEMONCANNOTUSEMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_GrassyTerrainHeals::
|
|
setbyte gBattleCommunication, 0
|
|
BattleScript_GrassyTerrainLoop:
|
|
copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 1
|
|
checkgrassyterrainheal BS_ATTACKER, BattleScript_GrassyTerrainLoopIncrement
|
|
printstring STRINGID_GRASSYTERRAINHEALS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GrassyTerrainHpChange:
|
|
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
BattleScript_GrassyTerrainLoopIncrement::
|
|
addbyte gBattleCommunication, 1
|
|
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_GrassyTerrainLoop
|
|
BattleScript_GrassyTerrainLoopEnd::
|
|
bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_PERMANENT, BattleScript_GrassyTerrainHealEnd
|
|
jumpifbyte CMP_EQUAL, gFieldTimers + 5, 0, BattleScript_GrassyTerrainEnds
|
|
BattleScript_GrassyTerrainHealEnd:
|
|
end2
|
|
|
|
BattleScript_AbilityNoSpecificStatLoss::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_AbilityNoSpecificStatLossPrint:
|
|
printstring STRINGID_PKMNSXPREVENTSYLOSS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
|
return
|
|
|
|
BattleScript_StickyHoldActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_ColorChangeActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNCHANGEDTYPEWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MimicryActivatesEnd3::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_BATTLERTYPECHANGEDTO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_ProteanActivates::
|
|
pause B_WAIT_TIME_SHORTEST
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNCHANGEDTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_CursedBodyActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_CUSEDBODYDISABLED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MummyActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ATTACKERACQUIREDABILITY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_WanderingSpiritActivates::
|
|
.if B_ABILITY_POP_UP == TRUE
|
|
setbyte sFIXED_ABILITY_POPUP, TRUE
|
|
sethword sABILITY_OVERWRITE, ABILITY_WANDERING_SPIRIT
|
|
showabilitypopup BS_TARGET
|
|
pause 60
|
|
sethword sABILITY_OVERWRITE, 0
|
|
updateabilitypopup BS_TARGET
|
|
pause 20
|
|
destroyabilitypopup
|
|
pause 40
|
|
|
|
setbyte sFIXED_ABILITY_POPUP, TRUE
|
|
copyhword sABILITY_OVERWRITE, gLastUsedAbility
|
|
showabilitypopup BS_ATTACKER
|
|
pause 60
|
|
sethword sABILITY_OVERWRITE, 0
|
|
updateabilitypopup BS_ATTACKER
|
|
pause 20
|
|
destroyabilitypopup
|
|
pause 40
|
|
.endif
|
|
printstring STRINGID_SWAPPEDABILITIES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_ATTACKER
|
|
switchinabilities BS_TARGET
|
|
return
|
|
|
|
BattleScript_TargetsStatWasMaxedOut::
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_TARGETSSTATWASMAXEDOUT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_BattlerAbilityStatRaiseOnSwitchIn::
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
waitanimation
|
|
printstring STRINGID_BATTLERABILITYRAISEDSTAT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_TargetAbilityStatRaiseOnMoveEnd::
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
waitanimation
|
|
printstring STRINGID_ABILITYRAISEDSTATDRASTICALLY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ScriptingAbilityStatRaise::
|
|
copybyte gBattlerAbility, sBATTLER
|
|
call BattleScript_AbilityPopUp
|
|
copybyte sSAVED_DMG, gBattlerAttacker
|
|
copybyte gBattlerAttacker, sBATTLER
|
|
statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_SCRIPTING, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
waitanimation
|
|
printstring STRINGID_ATTACKERABILITYSTATRAISE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
copybyte gBattlerAttacker, sSAVED_DMG
|
|
return
|
|
|
|
BattleScript_WeakArmorActivates::
|
|
call BattleScript_AbilityPopUp
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_WeakArmorActivatesSpeed
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_WeakArmorDefAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_WeakArmorActivatesSpeed
|
|
pause B_WAIT_TIME_SHORTEST
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_WeakArmorActivatesSpeed
|
|
BattleScript_WeakArmorDefAnim:
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_TARGETABILITYSTATLOWER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_WeakArmorActivatesSpeed:
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_WeakArmorActivatesEnd
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_WeakArmorSpeedAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_EMPTY, BattleScript_WeakArmorActivatesEnd
|
|
pause B_WAIT_TIME_SHORTEST
|
|
printstring STRINGID_TARGETSTATWONTGOHIGHER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_WeakArmorActivatesEnd
|
|
BattleScript_WeakArmorSpeedAnim:
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_TARGETABILITYSTATRAISE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_WeakArmorActivatesEnd:
|
|
return
|
|
|
|
BattleScript_RaiseStatOnFaintingTarget::
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
waitanimation
|
|
printstring STRINGID_LASTABILITYRAISEDSTAT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AttackerAbilityStatRaise::
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
waitanimation
|
|
printstring STRINGID_ATTACKERABILITYSTATRAISE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_FellStingerRaisesStat::
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_FellStingerRaisesAtkEnd
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_ROSE, BattleScript_FellStingerRaisesAtkEnd
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_FellStingerRaisesAtkEnd:
|
|
return
|
|
|
|
BattleScript_AttackerAbilityStatRaiseEnd3::
|
|
call BattleScript_AttackerAbilityStatRaise
|
|
end3
|
|
|
|
BattleScript_SwitchInAbilityMsg::
|
|
call BattleScript_AbilityPopUp
|
|
printfromtable gSwitchInAbilityStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_SwitchInAbilityMsgRet::
|
|
call BattleScript_AbilityPopUp
|
|
printfromtable gSwitchInAbilityStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ActivateAsOne::
|
|
call BattleScript_AbilityPopUp
|
|
printfromtable gSwitchInAbilityStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
@ show unnerve
|
|
sethword sABILITY_OVERWRITE, ABILITY_UNNERVE
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_SWITCHIN_UNNERVE
|
|
call BattleScript_AbilityPopUp
|
|
printfromtable gSwitchInAbilityStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_FriskMsgWithPopup::
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_FriskMsg::
|
|
printstring STRINGID_FRISKACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_FriskActivates::
|
|
tryfriskmsg BS_ATTACKER
|
|
end3
|
|
|
|
BattleScript_ImposterActivates::
|
|
transformdataexecution
|
|
call BattleScript_AbilityPopUp
|
|
playmoveanimation BS_ATTACKER, MOVE_TRANSFORM
|
|
waitanimation
|
|
printstring STRINGID_IMPOSTERTRANSFORM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_HurtAttacker:
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_PKMNHURTSWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_RoughSkinActivates::
|
|
call BattleScript_AbilityPopUp
|
|
call BattleScript_HurtAttacker
|
|
return
|
|
|
|
BattleScript_RockyHelmetActivates::
|
|
@ don't play the animation for a fainted mon
|
|
jumpifabsent BS_TARGET, BattleScript_RockyHelmetActivatesDmg
|
|
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
BattleScript_RockyHelmetActivatesDmg:
|
|
call BattleScript_HurtAttacker
|
|
return
|
|
|
|
BattleScript_SpikyShieldEffect::
|
|
jumpifabsent BS_ATTACKER, BattleScript_SpikyShieldRet
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_PKMNHURTSWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
BattleScript_SpikyShieldRet::
|
|
return
|
|
|
|
BattleScript_KingsShieldEffect::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
|
seteffectsecondary
|
|
setmoveeffect 0
|
|
copybyte sBATTLER, gBattlerTarget
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
copybyte gBattlerAttacker, sBATTLER
|
|
return
|
|
|
|
BattleScript_BanefulBunkerEffect::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_PASSIVE_DAMAGE
|
|
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
|
seteffectsecondary
|
|
setmoveeffect 0
|
|
return
|
|
|
|
BattleScript_CuteCharmActivates::
|
|
call BattleScript_AbilityPopUp
|
|
status2animation BS_ATTACKER, STATUS2_INFATUATION
|
|
printstring STRINGID_PKMNSXINFATUATEDY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_TryDestinyKnotTarget
|
|
return
|
|
|
|
BattleScript_GooeyActivates::
|
|
waitstate
|
|
call BattleScript_AbilityPopUp
|
|
swapattackerwithtarget @ for defiant, mirror armor
|
|
seteffectsecondary
|
|
return
|
|
|
|
BattleScript_AbilityStatusEffect::
|
|
waitstate
|
|
call BattleScript_AbilityPopUp
|
|
seteffectsecondary
|
|
return
|
|
|
|
BattleScript_BattleBondActivatesOnMoveEndAttacker::
|
|
pause 5
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ATTACKERBECAMEFULLYCHARGED
|
|
handleformchange BS_ATTACKER, 0
|
|
handleformchange BS_ATTACKER, 1
|
|
playanimation BS_ATTACKER, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
handleformchange BS_ATTACKER, 2
|
|
printstring STRINGID_ATTACKERBECAMEASHSPECIES
|
|
return
|
|
|
|
BattleScript_DancerActivates::
|
|
call BattleScript_AbilityPopUp
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
setbyte sB_ANIM_TURN, 0
|
|
setbyte sB_ANIM_TARGETS_HIT, 0
|
|
orword gHitMarker, HITMARKER_ALLOW_NO_PP
|
|
jumptocalledmove TRUE
|
|
|
|
BattleScript_SynchronizeActivates::
|
|
waitstate
|
|
call BattleScript_AbilityPopUp
|
|
seteffectprimary
|
|
return
|
|
|
|
BattleScript_NoItemSteal::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AbilityCuredStatus::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXCUREDITSYPROBLEM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BattlerShookOffTaunt::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSHOOKOFFTHETAUNT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_BattlerGotOverItsInfatuation::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNGOTOVERITSINFATUATION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_IgnoresWhileAsleep::
|
|
printstring STRINGID_PKMNIGNORESASLEEP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
end
|
|
|
|
BattleScript_IgnoresAndUsesRandomMove::
|
|
printstring STRINGID_PKMNIGNOREDORDERS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumptocalledmove FALSE
|
|
|
|
BattleScript_MoveUsedLoafingAround::
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_LOAFING, BattleScript_MoveUsedLoafingAroundMsg
|
|
@ Skip ahead if not the Battle Palace message
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_INCAPABLE_OF_POWER, BattleScript_MoveUsedLoafingAroundMsg
|
|
setbyte gBattleCommunication, 0
|
|
palacetryescapestatus BS_ATTACKER
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_INCAPABLE_OF_POWER
|
|
BattleScript_MoveUsedLoafingAroundMsg::
|
|
printfromtable gInobedientStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
end
|
|
BattleScript_TruantLoafingAround::
|
|
call BattleScript_AbilityPopUp
|
|
goto BattleScript_MoveUsedLoafingAroundMsg
|
|
|
|
BattleScript_IgnoresAndFallsAsleep::
|
|
printstring STRINGID_PKMNBEGANTONAP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveeffect MOVE_EFFECT_SLEEP | MOVE_EFFECT_AFFECTS_USER
|
|
seteffectprimary
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
end
|
|
|
|
BattleScript_IgnoresAndHitsItself::
|
|
printstring STRINGID_PKMNWONTOBEY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_DoSelfConfusionDmg
|
|
|
|
BattleScript_SubstituteFade::
|
|
playanimation BS_TARGET, B_ANIM_SUBSTITUTE_FADE
|
|
printstring STRINGID_PKMNSUBSTITUTEFADED
|
|
return
|
|
|
|
BattleScript_BerryCurePrlzEnd2::
|
|
call BattleScript_BerryCureParRet
|
|
end2
|
|
|
|
BattleScript_BerryCureParRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMCUREDPARALYSIS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCurePsnEnd2::
|
|
call BattleScript_BerryCurePsnRet
|
|
end2
|
|
|
|
BattleScript_BerryCurePsnRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMCUREDPOISON
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCureBrnEnd2::
|
|
call BattleScript_BerryCureBrnRet
|
|
end2
|
|
|
|
BattleScript_BerryCureBrnRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMHEALEDBURN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCureFrzEnd2::
|
|
call BattleScript_BerryCureFrzRet
|
|
end2
|
|
|
|
BattleScript_BerryCureFrzRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMDEFROSTEDIT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCureSlpEnd2::
|
|
call BattleScript_BerryCureSlpRet
|
|
end2
|
|
|
|
BattleScript_BerryCureSlpRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMWOKEIT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_GemActivates::
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
setlastuseditem BS_ATTACKER
|
|
printstring STRINGID_GEMACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_BerryReduceDmg::
|
|
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
setlastuseditem BS_TARGET
|
|
printstring STRINGID_TARGETATEITEM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_TARGET
|
|
return
|
|
|
|
BattleScript_PrintBerryReduceString::
|
|
waitmessage B_WAIT_TIME_LONG
|
|
printstring STRINGID_BERRYDMGREDUCES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_BerryCureConfusionEnd2::
|
|
call BattleScript_BerryCureConfusionRet
|
|
end2
|
|
|
|
BattleScript_BerryCureConfusionRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMSNAPPEDOUT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCureChosenStatusEnd2::
|
|
call BattleScript_BerryCureChosenStatusRet
|
|
end2
|
|
|
|
BattleScript_BerryCureChosenStatusRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printfromtable gBerryEffectStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_MentalHerbCureRet::
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
printfromtable gMentalHerbCureStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
copybyte gBattlerAttacker, sSAVED_BATTLER @ restore the original attacker just to be safe
|
|
return
|
|
|
|
BattleScript_MentalHerbCureEnd2::
|
|
call BattleScript_MentalHerbCureRet
|
|
end2
|
|
|
|
BattleScript_WhiteHerbEnd2::
|
|
call BattleScript_WhiteHerbRet
|
|
end2
|
|
|
|
BattleScript_WhiteHerbRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMRESTOREDSTATUS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_ItemHealHP_RemoveItemRet::
|
|
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_ItemHealHP_RemoveItemRet_AbilityPopUp
|
|
goto BattleScript_ItemHealHP_RemoveItemRet_Anim
|
|
BattleScript_ItemHealHP_RemoveItemRet_AbilityPopUp:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_ItemHealHP_RemoveItemRet_Anim:
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_SCRIPTING
|
|
datahpupdate BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_ItemHealHP_RemoveItemEnd2::
|
|
jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_ItemHealHP_RemoveItemEnd2_AbilityPopUp
|
|
goto BattleScript_ItemHealHP_RemoveItemEnd2_Anim
|
|
BattleScript_ItemHealHP_RemoveItemEnd2_AbilityPopUp:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_ItemHealHP_RemoveItemEnd2_Anim:
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
removeitem BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_BerryPPHealEnd2::
|
|
jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_BerryPPHealEnd2_AbilityPopup
|
|
goto BattleScript_BerryPPHealEnd2_Anim
|
|
BattleScript_BerryPPHealEnd2_AbilityPopup:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_BerryPPHealEnd2_Anim:
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMRESTOREDPP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_ItemHealHP_End2::
|
|
call BattleScript_ItemHealHP_Ret
|
|
end2
|
|
|
|
BattleScript_AirBaloonMsgIn::
|
|
printstring STRINGID_AIRBALLOONFLOAT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_AirBaloonMsgPop::
|
|
printstring STRINGID_AIRBALLOONPOP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_TARGET
|
|
return
|
|
|
|
BattleScript_ItemHurtRet::
|
|
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
printstring STRINGID_HURTBYITEM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_ItemHurtEnd2::
|
|
playanimation BS_ATTACKER, B_ANIM_MON_HIT
|
|
waitanimation
|
|
call BattleScript_ItemHurtRet
|
|
end2
|
|
|
|
BattleScript_ItemHealHP_Ret::
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_ATTACKER
|
|
datahpupdate BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_SelectingNotAllowedMoveChoiceItem::
|
|
printselectionstring STRINGID_ITEMALLOWSONLYYMOVE
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingNotAllowedMoveChoiceItemInPalace::
|
|
printstring STRINGID_ITEMALLOWSONLYYMOVE
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_SelectingNotAllowedMoveGorillaTactics::
|
|
printselectionstring STRINGID_ABILITYALLOWSONLYMOVE
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingNotAllowedMoveGorillaTacticsInPalace::
|
|
printstring STRINGID_ABILITYALLOWSONLYMOVE
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_SelectingNotAllowedMoveAssaultVest::
|
|
printselectionstring STRINGID_ASSAULTVESTDOESNTALLOW
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingNotAllowedMoveAssaultVestInPalace::
|
|
printstring STRINGID_ASSAULTVESTDOESNTALLOW
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_SelectingNotAllowedPlaceholder::
|
|
printselectionstring STRINGID_NOTDONEYET
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingNotAllowedPlaceholderInPalace::
|
|
printstring STRINGID_NOTDONEYET
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_HangedOnMsg::
|
|
playanimation BS_TARGET, B_ANIM_HANGED_ON
|
|
printstring STRINGID_PKMNHUNGONWITHX
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifnoholdeffect BS_TARGET, HOLD_EFFECT_FOCUS_SASH, BattleScript_HangedOnMsgRet
|
|
removeitem BS_TARGET
|
|
BattleScript_HangedOnMsgRet:
|
|
return
|
|
|
|
BattleScript_BerryConfuseHealEnd2::
|
|
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_BerryConfuseHealEnd2_AbilityPopup
|
|
goto BattleScript_BerryConfuseHealEnd2_Anim
|
|
BattleScript_BerryConfuseHealEnd2_AbilityPopup:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_BerryConfuseHealEnd2_Anim:
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_SCRIPTING
|
|
datahpupdate BS_SCRIPTING
|
|
printstring STRINGID_FORXCOMMAYZ
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveeffect MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER
|
|
seteffectprimary
|
|
removeitem BS_SCRIPTING
|
|
end2
|
|
|
|
BattleScript_BerryConfuseHealRet::
|
|
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_BerryConfuseHealRet_AbilityPopup
|
|
goto BattleScript_BerryConfuseHealRet_Anim
|
|
BattleScript_BerryConfuseHealRet_AbilityPopup:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_BerryConfuseHealRet_Anim:
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
|
healthbarupdate BS_SCRIPTING
|
|
datahpupdate BS_SCRIPTING
|
|
printstring STRINGID_FORXCOMMAYZ
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveeffect MOVE_EFFECT_CONFUSION | MOVE_EFFECT_CERTAIN
|
|
seteffectprimary
|
|
removeitem BS_TARGET
|
|
return
|
|
|
|
BattleScript_BerryStatRaiseEnd2::
|
|
jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_BerryStatRaiseEnd2_AbilityPopup
|
|
goto BattleScript_BerryStatRaiseEnd2_Anim
|
|
BattleScript_BerryStatRaiseEnd2_AbilityPopup:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_BerryStatRaiseEnd2_Anim:
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_BerryStatRaiseEnd2_End
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM
|
|
call BattleScript_StatUp
|
|
removeitem BS_ATTACKER
|
|
BattleScript_BerryStatRaiseEnd2_End::
|
|
end2
|
|
|
|
BattleScript_BerryStatRaiseRet::
|
|
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_BerryStatRaiseRet_AbilityPopup
|
|
goto BattleScript_BerryStatRaiseRet_Anim
|
|
BattleScript_BerryStatRaiseRet_AbilityPopup:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_BerryStatRaiseRet_Anim:
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_BerryStatRaiseRet_End
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM
|
|
call BattleScript_StatUp
|
|
removeitem BS_SCRIPTING
|
|
BattleScript_BerryStatRaiseRet_End:
|
|
return
|
|
|
|
BattleScript_BerryFocusEnergyRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNUSEDXTOGETPUMPED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryFocusEnergyEnd2::
|
|
call BattleScript_BerryFocusEnergyRet
|
|
end2
|
|
|
|
BattleScript_ActionSelectionItemsCantBeUsed::
|
|
printselectionstring STRINGID_ITEMSCANTBEUSEDNOW
|
|
endselectionscript
|
|
|
|
BattleScript_FlushMessageBox::
|
|
printstring STRINGID_EMPTYSTRING3
|
|
return
|
|
|
|
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
|
|
BattleScript_PalaceEndFlavorText::
|
|
addbyte gBattleCommunication + 1, 1
|
|
jumpifbytenotequal gBattleCommunication + 1, gBattlersCount, BattleScript_PalaceTryBattlerFlavorText
|
|
setbyte gBattleCommunication, 0
|
|
setbyte gBattleCommunication + 1, 0
|
|
end2
|
|
|
|
BattleScript_ArenaTurnBeginning::
|
|
waitcry BS_ATTACKER
|
|
volumedown
|
|
playse SE_ARENA_TIMEUP1
|
|
pause 8
|
|
playse SE_ARENA_TIMEUP1
|
|
arenadrawreftextbox
|
|
arenajudgmentstring B_MSG_REF_COMMENCE_BATTLE
|
|
arenawaitmessage B_MSG_REF_COMMENCE_BATTLE
|
|
pause B_WAIT_TIME_LONG
|
|
arenaerasereftextbox
|
|
volumeup
|
|
end2
|
|
|
|
@ Unused
|
|
BattleScript_ArenaNothingDecided::
|
|
playse SE_DING_DONG
|
|
arenadrawreftextbox
|
|
arenajudgmentstring B_MSG_REF_NOTHING_IS_DECIDED
|
|
arenawaitmessage B_MSG_REF_NOTHING_IS_DECIDED
|
|
pause B_WAIT_TIME_LONG
|
|
arenaerasereftextbox
|
|
end2
|
|
|
|
BattleScript_ArenaDoJudgment::
|
|
makevisible BS_PLAYER1
|
|
waitstate
|
|
makevisible BS_OPPONENT1
|
|
waitstate
|
|
volumedown
|
|
playse SE_ARENA_TIMEUP1
|
|
pause 8
|
|
playse SE_ARENA_TIMEUP1
|
|
pause B_WAIT_TIME_LONG
|
|
arenadrawreftextbox
|
|
arenajudgmentstring B_MSG_REF_THATS_IT
|
|
arenawaitmessage B_MSG_REF_THATS_IT
|
|
pause B_WAIT_TIME_LONG
|
|
setbyte gBattleCommunication, 0 @ Reset state for arenajudgmentwindow
|
|
arenajudgmentwindow
|
|
pause B_WAIT_TIME_LONG
|
|
arenajudgmentwindow
|
|
arenajudgmentstring B_MSG_REF_JUDGE_MIND
|
|
arenawaitmessage B_MSG_REF_JUDGE_MIND
|
|
arenajudgmentwindow
|
|
arenajudgmentstring B_MSG_REF_JUDGE_SKILL
|
|
arenawaitmessage B_MSG_REF_JUDGE_SKILL
|
|
arenajudgmentwindow
|
|
arenajudgmentstring B_MSG_REF_JUDGE_BODY
|
|
arenawaitmessage B_MSG_REF_JUDGE_BODY
|
|
arenajudgmentwindow
|
|
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
|
|
arenajudgmentstring B_MSG_REF_PLAYER_WON
|
|
arenawaitmessage B_MSG_REF_PLAYER_WON
|
|
arenajudgmentwindow
|
|
arenaerasereftextbox
|
|
printstring STRINGID_DEFEATEDOPPONENTBYREFEREE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playfaintcry BS_OPPONENT1
|
|
waitcry BS_ATTACKER
|
|
dofaintanimation BS_OPPONENT1
|
|
cleareffectsonfaint BS_OPPONENT1
|
|
arenaopponentmonlost
|
|
end2
|
|
|
|
BattleScript_ArenaJudgmentPlayerLoses:
|
|
arenajudgmentstring B_MSG_REF_OPPONENT_WON
|
|
arenawaitmessage B_MSG_REF_OPPONENT_WON
|
|
arenajudgmentwindow
|
|
arenaerasereftextbox
|
|
printstring STRINGID_LOSTTOOPPONENTBYREFEREE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playfaintcry BS_PLAYER1
|
|
waitcry BS_ATTACKER
|
|
dofaintanimation BS_PLAYER1
|
|
cleareffectsonfaint BS_PLAYER1
|
|
arenaplayermonlost
|
|
end2
|
|
|
|
BattleScript_ArenaJudgmentDraw:
|
|
arenajudgmentstring B_MSG_REF_DRAW
|
|
arenawaitmessage B_MSG_REF_DRAW
|
|
arenajudgmentwindow
|
|
arenaerasereftextbox
|
|
printstring STRINGID_TIEDOPPONENTBYREFEREE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playfaintcry BS_PLAYER1
|
|
waitcry BS_ATTACKER
|
|
dofaintanimation BS_PLAYER1
|
|
cleareffectsonfaint BS_PLAYER1
|
|
playfaintcry BS_OPPONENT1
|
|
waitcry BS_ATTACKER
|
|
dofaintanimation BS_OPPONENT1
|
|
cleareffectsonfaint BS_OPPONENT1
|
|
arenabothmonlost
|
|
end2
|
|
|
|
BattleScript_AskIfWantsToForfeitMatch::
|
|
printselectionstring STRINGID_QUESTIONFORFEITMATCH
|
|
forfeityesnobox BS_ATTACKER
|
|
endselectionscript
|
|
|
|
BattleScript_PrintPlayerForfeited::
|
|
printstring STRINGID_FORFEITEDMATCH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_PrintPlayerForfeitedLinkBattle::
|
|
printstring STRINGID_FORFEITEDMATCH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
endlinkbattle
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_TotemFlaredToLife::
|
|
playanimation BS_ATTACKER, B_ANIM_TOTEM_FLARE
|
|
printstring STRINGID_AURAFLAREDTOLIFE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_ApplyTotemVarBoost
|
|
|
|
BattleScript_TotemVar::
|
|
gettotemboost BattleScript_ApplyTotemVarBoost
|
|
BattleScript_TotemVarEnd:
|
|
end2
|
|
BattleScript_ApplyTotemVarBoost:
|
|
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TotemVarEnd
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_SCRIPTING, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
BattleScript_TotemVarPrintStatMsg:
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_TotemVar @loop until stats bitfield is empty
|
|
|
|
BattleScript_AnnounceAirLockCloudNine::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_AIRLOCKACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_WeatherFormChanges
|
|
end3
|
|
|
|
BattleScript_QuickClawActivation::
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
printstring STRINGID_CANACTFASTERTHANKSTO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_QuickDrawActivation::
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_CANACTFASTERTHANKSTO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_CustapBerryActivation::
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
printstring STRINGID_CANACTFASTERTHANKSTO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_MicleBerryActivateEnd2::
|
|
jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_MicleBerryActivateEnd2_Ripen
|
|
goto BattleScript_MicleBerryActivateEnd2_Anim
|
|
BattleScript_MicleBerryActivateEnd2_Ripen:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_MicleBerryActivateEnd2_Anim:
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_MICLEBERRYACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_MicleBerryActivateRet::
|
|
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_MicleBerryActivateRet_Ripen
|
|
goto BattleScript_MicleBerryActivateRet_Anim
|
|
BattleScript_MicleBerryActivateRet_Ripen:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_MicleBerryActivateRet_Anim:
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_MICLEBERRYACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_JabocaRowapBerryActivates::
|
|
jumpifability BS_TARGET, ABILITY_RIPEN, BattleScript_JabocaRowapBerryActivate_Ripen
|
|
goto BattleScript_JabocaRowapBerryActivate_Anim
|
|
BattleScript_JabocaRowapBerryActivate_Ripen:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_JabocaRowapBerryActivate_Anim:
|
|
jumpifabsent BS_TARGET, BattleScript_JabocaRowapBerryActivate_Dmg @ dont play the animation for a fainted target
|
|
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
BattleScript_JabocaRowapBerryActivate_Dmg:
|
|
call BattleScript_HurtAttacker
|
|
removeitem BS_TARGET
|
|
return
|
|
|
|
@ z moves / effects
|
|
BattleScript_ZMoveActivateDamaging::
|
|
printstring STRINGID_ZPOWERSURROUNDS
|
|
playanimation BS_ATTACKER, B_ANIM_ZMOVE_ACTIVATE, NULL
|
|
printstring STRINGID_ZMOVEUNLEASHED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ZMoveActivateStatus::
|
|
savetarget
|
|
printstring STRINGID_ZPOWERSURROUNDS
|
|
playanimation BS_ATTACKER, B_ANIM_ZMOVE_ACTIVATE, NULL
|
|
setzeffect
|
|
restoretarget
|
|
copybyte sSTATCHANGER, sSAVED_STAT_CHANGER
|
|
return
|
|
|
|
BattleScript_ZEffectPrintString::
|
|
printfromtable gZEffectStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_RecoverHPZMove::
|
|
healthbarupdate BS_SCRIPTING
|
|
datahpupdate BS_SCRIPTING
|
|
printfromtable gZEffectStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_StatUpZMove::
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_StatUpZMoveEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpZMoveEnd
|
|
setgraphicalstatchangevalues
|
|
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
|
printstring STRINGID_ZMOVESTATUP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_StatUpZMoveEnd:
|
|
return
|
|
|
|
BattleScript_HealReplacementZMove::
|
|
playanimation BS_SCRIPTING B_ANIM_WISH_HEAL 0x0
|
|
printfromtable gZEffectStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
healthbarupdate BS_SCRIPTING
|
|
datahpupdate BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_EffectExtremeEvoboost::
|
|
attackcanceler
|
|
attackstring
|
|
ppreduce
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_ExtremeEvoboostAnim:
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_ExtremeEvoboostAtk::
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0x0
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_ExtremeEvoboostDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ExtremeEvoboostDef::
|
|
setstatchanger STAT_DEF, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_ExtremeEvoboostSpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ExtremeEvoboostSpeed::
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_ExtremeEvoboostSpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ExtremeEvoboostSpAtk::
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_ExtremeEvoboostSpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ExtremeEvoboostSpDef::
|
|
setstatchanger STAT_SPDEF, 2, FALSE
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_ExtremeEvoboostEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ExtremeEvoboostEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTerrainHit:
|
|
attackcanceler
|
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
|
attackstring
|
|
ppreduce
|
|
critcalc
|
|
damagecalc
|
|
adjustdamage
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET
|
|
datahpupdate BS_TARGET
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setterrain BattleScript_TryFaint
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
printfromtable gTerrainStringIds
|
|
BattleScript_TryFaint:
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_Pickpocket::
|
|
call BattleScript_AbilityPopUp
|
|
jumpifability BS_ATTACKER, ABILITY_STICKY_HOLD, BattleScript_PickpocketPrevented
|
|
swapattackerwithtarget
|
|
call BattleScript_ItemSteal
|
|
swapattackerwithtarget
|
|
activateitemeffects BS_TARGET
|
|
return
|
|
|
|
BattleScript_PickpocketPrevented:
|
|
pause B_WAIT_TIME_SHORT
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ITEMCANNOTBEREMOVED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_StickyBarbTransfer::
|
|
playanimation BS_TARGET, B_ANIM_ITEM_STEAL
|
|
printstring STRINGID_STICKYBARBTRANSFER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_TARGET
|
|
return
|
|
|
|
BattleScript_RedCardActivates::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_REDCARDACTIVATE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
swapattackerwithtarget
|
|
jumpifstatus3 BS_EFFECT_BATTLER, STATUS3_ROOTED, BattleScript_RedCardIngrain
|
|
jumpifability BS_EFFECT_BATTLER, ABILITY_SUCTION_CUPS, BattleScript_RedCardSuctionCups
|
|
setbyte sSWITCH_CASE, B_SWITCH_RED_CARD
|
|
forcerandomswitch BattleScript_RedCardEnd
|
|
@ changes the current battle script. the rest happens in BattleScript_RoarSuccessSwitch_Ret, if switch is successful
|
|
BattleScript_RedCardEnd:
|
|
return
|
|
BattleScript_RedCardIngrain:
|
|
printstring STRINGID_PKMNANCHOREDITSELF
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
swapattackerwithtarget
|
|
return
|
|
BattleScript_RedCardSuctionCups:
|
|
printstring STRINGID_PKMNANCHORSITSELFWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
swapattackerwithtarget
|
|
return
|
|
|
|
BattleScript_EjectButtonActivates::
|
|
makevisible BS_ATTACKER
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_EJECTBUTTONACTIVATE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
makeinvisible BS_SCRIPTING
|
|
openpartyscreen BS_SCRIPTING, BattleScript_EjectButtonEnd
|
|
switchoutabilities BS_SCRIPTING
|
|
waitstate
|
|
switchhandleorder BS_SCRIPTING 0x2
|
|
returntoball BS_SCRIPTING
|
|
getswitchedmondata BS_SCRIPTING
|
|
switchindataupdate BS_SCRIPTING
|
|
hpthresholds BS_SCRIPTING
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
printstring 0x3
|
|
switchinanim BS_SCRIPTING 0x1
|
|
waitstate
|
|
switchineffects BS_SCRIPTING
|
|
BattleScript_EjectButtonEnd:
|
|
return
|
|
|
|
BattleScript_EjectPackActivate_Ret::
|
|
goto BattleScript_EjectButtonActivates
|
|
|
|
BattleScript_EjectPackActivate_End2::
|
|
call BattleScript_EjectPackActivate_Ret
|
|
end2
|
|
|
|
BattleScript_EjectPackActivates::
|
|
jumpifcantswitch BS_SCRIPTING, BattleScript_EjectButtonEnd
|
|
goto BattleScript_EjectPackActivate_Ret
|
|
|
|
BattleScript_DarkTypePreventsPrankster::
|
|
attackstring
|
|
ppreduce
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orhalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_PastelVeilActivates::
|
|
setbyte gBattleCommunication, 0
|
|
setbyte gBattleCommunication + 1, 0
|
|
BattleScript_PastelVeil_TryCurePoison:
|
|
jumpifstatus BS_TARGET, STATUS1_POISON | STATUS1_TOXIC_POISON, BattleScript_PastelVeilCurePoison
|
|
goto BattleScript_PastelVeilLoopIncrement
|
|
BattleScript_PastelVeilCurePoison:
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication + 1, 0x0, BattleScript_PastelVeilCurePoisonNoPopUp
|
|
call BattleScript_AbilityPopUp
|
|
setbyte gBattleCommunication + 1, 1
|
|
BattleScript_PastelVeilCurePoisonNoPopUp: @ Only show Pastel Veil pop up once if it cures two mons
|
|
printfromtable gSwitchInAbilityStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
curestatus BS_TARGET
|
|
updatestatusicon BS_TARGET
|
|
BattleScript_PastelVeilLoopIncrement:
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_PastelVeilEnd
|
|
addbyte gBattleCommunication, 1
|
|
jumpifnoally BS_TARGET, BattleScript_PastelVeilEnd
|
|
setallytonexttarget BattleScript_PastelVeil_TryCurePoison
|
|
goto BattleScript_PastelVeilEnd
|
|
BattleScript_PastelVeilEnd:
|
|
end3
|
|
|
|
sByteFour:
|
|
.byte MAX_BATTLERS_COUNT
|
|
|
|
BattleScript_NeutralizingGasExits::
|
|
savetarget
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_NEUTRALIZINGGASOVER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_NeutralizingGasExitsLoop:
|
|
switchinabilities BS_TARGET
|
|
addbyte gBattlerTarget, 1
|
|
jumpifbytenotequal gBattlerTarget, sByteFour, BattleScript_NeutralizingGasExitsLoop @ SOMEHOW, comparing to gBattlersCount is problematic.
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_MagicianActivates::
|
|
call BattleScript_AbilityPopUp
|
|
call BattleScript_ItemSteal
|
|
return
|
|
|
|
BattleScript_SymbiosisActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_SYMBIOSISITEMPASS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_TargetAbilityStatRaiseRet::
|
|
copybyte gBattlerAbility, gEffectBattler
|
|
copybyte gBattlerAttacker, gBattlerTarget
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_TargetAbilityStatRaiseRet_End
|
|
setgraphicalstatchangevalues
|
|
call BattleScript_StatUp
|
|
BattleScript_TargetAbilityStatRaiseRet_End:
|
|
return
|
|
|
|
BattleScript_PokemonCantUseTheMove::
|
|
attackstring
|
|
ppreduce
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_BUTPOKEMONCANTUSETHEMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|