mirror of
https://github.com/rh-hideout/pokeemerald-expansion.git
synced 2026-03-21 18:04:50 -05:00
8272 lines
266 KiB
ArmAsm
8272 lines
266 KiB
ArmAsm
#include "config/general.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_move_resolution.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 "constants/generational_changes.h"
|
|
.include "asm/macros.inc"
|
|
.include "asm/macros/battle_script.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.section script_data, "aw", %progbits
|
|
|
|
BattleScript_TryRevertWeatherform:
|
|
setbyte gEffectBattler, 0
|
|
sortbattlers
|
|
BattleScript_TryRevertWeatherformLoop:
|
|
tryrevertweatherform
|
|
addbyte gEffectBattler, 1
|
|
jumpifbytenotequal gEffectBattler, gBattlersCount, BattleScript_TryRevertWeatherformLoop
|
|
return
|
|
|
|
BattleScript_FickleBeamMessage::
|
|
pause B_WAIT_TIME_SHORTEST
|
|
printstring STRINGID_FICKLEBEAMDOUBLED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MagnitudeMessage::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_MAGNITUDESTRENGTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_Terastallization::
|
|
@ TODO: no string prints in S/V, but right now this helps with clarity
|
|
printstring STRINGID_PKMNSTORINGENERGY
|
|
playanimation BS_ATTACKER, B_ANIM_TERA_CHARGE
|
|
waitanimation
|
|
applyterastallization
|
|
playanimation BS_ATTACKER, B_ANIM_TERA_ACTIVATE
|
|
waitanimation
|
|
printstring STRINGID_PKMNTERASTALLIZEDINTO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_TeraFormChange::
|
|
@ TODO: no string prints in S/V, but right now this helps with clarity
|
|
printstring STRINGID_PKMNSTORINGENERGY
|
|
handleformchange BS_ATTACKER, 0, FALSE @ Prevent species name from overriting type name
|
|
handleformchange BS_ATTACKER, 1
|
|
playanimation BS_ATTACKER, B_ANIM_TERA_CHARGE
|
|
waitanimation
|
|
applyterastallization
|
|
playanimation BS_ATTACKER, B_ANIM_TERA_ACTIVATE
|
|
waitanimation
|
|
printstring STRINGID_PKMNTERASTALLIZEDINTO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_ATTACKER
|
|
end3
|
|
|
|
BattleScript_LowerAtkSpAtk::
|
|
jumpifstat BS_EFFECT_BATTLER, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_LowerAtkSpAtkDoAnim
|
|
jumpifstat BS_EFFECT_BATTLER, CMP_EQUAL, STAT_SPATK, MIN_STAT_STAGE, BattleScript_LowerAtkSpAtkEnd
|
|
BattleScript_LowerAtkSpAtkDoAnim::
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_LowerAtkSpAtkTrySpAtk, BIT_SPATK
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_LowerAtkSpAtkTrySpAtk::
|
|
setstatchanger STAT_SPATK, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_LowerAtkSpAtkEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_LowerAtkSpAtkEnd:
|
|
return
|
|
|
|
BattleScript_EffectSpicyExtract::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_SpicyExtract_CheckShouldSkipAttackAnim
|
|
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_SpicyExtract_CheckShouldSkipAttackAnim
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_SpicyExtract_CheckShouldSkipAttackAnim:
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_SpicyExtract_RaiseAtk
|
|
goto BattleScript_SpicyExtract_SkipAttackAnim
|
|
BattleScript_SpicyExtract_RaiseAtk:
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_SpicyExtract_SkipAttackAnim:
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectSpicyExtractDefenseDown
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectSpicyExtractDefenseDown:
|
|
setstatchanger STAT_DEF, 2, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectSpicyExtract_End
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectSpicyExtract_End:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTidyUp::
|
|
attackcanceler
|
|
pause B_WAIT_TIME_MED
|
|
waitstate
|
|
saveattacker
|
|
savetarget
|
|
trytidyup FALSE, BattleScript_EffectTidyUpDoMoveAnimation
|
|
restoreattacker
|
|
restoretarget
|
|
goto BattleScript_EffectDragonDanceFromStatUp
|
|
|
|
BattleScript_EffectTidyUpDoMoveAnimation::
|
|
attackanimation
|
|
waitanimation
|
|
trytidyup TRUE, NULL
|
|
printstring STRINGID_TIDYINGUPCOMPLETE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
restoreattacker
|
|
restoretarget
|
|
goto BattleScript_EffectDragonDanceFromStatUp
|
|
|
|
BattleScript_EffectShedTail::
|
|
attackcanceler
|
|
waitstate
|
|
jumpifvolatile BS_ATTACKER, VOLATILE_SUBSTITUTE, BattleScript_AlreadyHasSubstitute
|
|
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
|
|
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
|
|
setsubstitute
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SUBSTITUTE_FAILED, BattleScript_SubstituteString
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_SHEDITSTAIL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
moveendto MOVEEND_ATTACKER_VISIBLE
|
|
moveendfrom MOVEEND_TARGET_VISIBLE
|
|
call BattleScript_MoveSwitchOpenPartyScreenReturnWithNoAnim
|
|
switchinanim BS_ATTACKER, FALSE, TRUE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
switchinevents
|
|
end
|
|
|
|
BattleScript_EffectPsychicNoise::
|
|
printstring STRINGID_PKMNPREVENTEDFROMHEALING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectFilletAway::
|
|
attackcanceler
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_FilletAwayTryAttack
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_FilletAwayTryAttack
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ButItFailed
|
|
BattleScript_FilletAwayTryAttack::
|
|
halvehp BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_FilletAwayTrySpAtk, BIT_SPATK | BIT_SPEED
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_FilletAwayTrySpAtk::
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_FilletAwayTrySpeed, BIT_SPEED
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_FilletAwayTrySpeed::
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_FilletAwayEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_FilletAwayEnd::
|
|
clearmoveresultflags MOVE_RESULT_NO_EFFECT
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDoodle::
|
|
attackcanceler
|
|
trycopyability BS_ATTACKER, BattleScript_ButItFailed
|
|
saveattacker
|
|
attackanimation
|
|
waitanimation
|
|
setbyte gBattleCommunication, 0
|
|
goto BattleScript_EffectDoodle_AfterCopy
|
|
BattleScript_EffectDoodle_CopyAbility:
|
|
trycopyability BS_ATTACKER, BattleScript_EffectDoodleMoveEnd
|
|
BattleScript_EffectDoodle_AfterCopy:
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUpOverwriteThenNormal
|
|
recordability BS_ATTACKER
|
|
printstring STRINGID_PKMNCOPIEDFOE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_ATTACKER
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_EffectDoodleMoveEnd
|
|
addbyte gBattleCommunication, 1
|
|
jumpifnoally BS_ATTACKER, BattleScript_EffectDoodleMoveEnd
|
|
setallytonextattacker BattleScript_EffectDoodle_CopyAbility
|
|
BattleScript_EffectDoodleMoveEnd:
|
|
restoreattacker
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SyrupBombActivates::
|
|
printstring STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_SyrupBombEndTurn::
|
|
flushtextbox
|
|
playanimation BS_ATTACKER, B_ANIM_SYRUP_BOMB_SPEED_DROP
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_CHECK_PREVENTION | STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_SyrupBombTurnDmgEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_SyrupBombTurnDmgEnd:
|
|
end2
|
|
|
|
BattleScript_MoveSwitchPursuitEnd:
|
|
call BattleScript_MoveSwitchPursuitRet
|
|
end
|
|
|
|
BattleScript_MoveSwitchPursuitRet:
|
|
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_MoveSwitchEnd
|
|
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_MoveSwitchEnd
|
|
printstring STRINGID_PKMNWENTBACK
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
jumpifnopursuitswitchdmg BattleScript_MoveSwitchOpenPartyScreenRet
|
|
return
|
|
|
|
BattleScript_MoveSwitch::
|
|
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_MoveSwitchEnd
|
|
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_MoveSwitchEnd
|
|
printstring STRINGID_PKMNWENTBACK
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
BattleScript_MoveSwitchOpenPartyScreen::
|
|
call BattleScript_MoveSwitchOpenPartyScreenRet
|
|
BattleScript_MoveSwitchEnd:
|
|
end
|
|
|
|
BattleScript_MoveSwitchOpenPartyScreenRet:
|
|
call BattleScript_MoveSwitchOpenPartyScreenReturnWithNoAnim
|
|
switchinanim BS_ATTACKER, FALSE, FALSE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
switchinevents
|
|
return
|
|
|
|
BattleScript_MoveSwitchOpenPartyScreenReturnWithNoAnim:
|
|
openpartyscreen BS_ATTACKER, BattleScript_MoveSwitchEnd
|
|
waitstate
|
|
returntoball BS_ATTACKER, FALSE
|
|
switchoutabilities BS_ATTACKER
|
|
switchhandleorder BS_ATTACKER, 2
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
trytoclearprimalweather
|
|
printstring STRINGID_EMPTYSTRING3
|
|
waitmessage 1
|
|
printstring STRINGID_SWITCHINMON
|
|
return
|
|
|
|
BattleScript_EffectPledge::
|
|
attackcanceler
|
|
setpledge BattleScript_HitFromAccCheck
|
|
pause B_WAIT_TIME_MED
|
|
printstring STRINGID_WAITINGFORPARTNERSMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCombinedPledge_Water::
|
|
call BattleScript_EffectHit_Pledge
|
|
setpledgestatus BS_ATTACKER, SIDE_STATUS_RAINBOW
|
|
pause B_WAIT_TIME_SHORTEST
|
|
printstring STRINGID_ARAINBOWAPPEAREDONSIDE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_RAINBOW
|
|
waitanimation
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_TheRainbowDisappeared::
|
|
printstring STRINGID_THERAINBOWDISAPPEARED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_EffectCombinedPledge_Fire::
|
|
call BattleScript_EffectHit_Pledge
|
|
setpledgestatus BS_TARGET, SIDE_STATUS_SEA_OF_FIRE
|
|
pause B_WAIT_TIME_SHORTEST
|
|
printstring STRINGID_SEAOFFIREENVELOPEDSIDE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_TARGET, B_ANIM_SEA_OF_FIRE
|
|
waitanimation
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_HurtByTheSeaOfFire::
|
|
printstring STRINGID_HURTBYTHESEAOFFIRE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_DoTurnDmg
|
|
|
|
BattleScript_TheSeaOfFireDisappeared::
|
|
printstring STRINGID_THESEAOFFIREDISAPPEARED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_EffectCombinedPledge_Grass::
|
|
call BattleScript_EffectHit_Pledge
|
|
setpledgestatus BS_TARGET, SIDE_STATUS_SWAMP
|
|
pause B_WAIT_TIME_SHORTEST
|
|
printstring STRINGID_SWAMPENVELOPEDSIDE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_TARGET, B_ANIM_SWAMP
|
|
waitanimation
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_TheSwampDisappeared::
|
|
printstring STRINGID_THESWAMPDISAPPEARED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_EffectHit_Pledge::
|
|
pause B_WAIT_TIME_MED
|
|
printstring STRINGID_THETWOMOVESBECOMEONE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_EffectHit_RetFromAccCheck
|
|
return
|
|
|
|
BattleScript_MoveEffectSaltCure::
|
|
printstring STRINGID_TARGETISBEINGSALTCURED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_SaltCureExtraDamage::
|
|
playanimation BS_ATTACKER, B_ANIM_SALT_CURE_DAMAGE, NULL
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_TARGETISHURTBYSALTCURE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
tryactivateitem BS_ATTACKER, ACTIVATION_ON_HP_THRESHOLD
|
|
end2
|
|
|
|
BattleScript_EffectCorrosiveGas::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
jumpifsubstituteblocks BattleScript_CorrosiveGasFail
|
|
jumpifcantloseitem BattleScript_CorrosiveGasFail
|
|
attackanimation
|
|
waitanimation
|
|
jumpifability BS_TARGET, ABILITY_STICKY_HOLD, BattleScript_StickyHoldActivates
|
|
setlastuseditem BS_TARGET
|
|
removeitem BS_TARGET
|
|
printstring STRINGID_PKMNITEMMELTED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_CorrosiveGasFail:
|
|
pause B_WAIT_TIME_SHORT
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
printstring STRINGID_NOEFFECTONTARGET
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTakeHeart::
|
|
attackcanceler
|
|
curestatuswithmove BattleScript_CalmMindTryToRaiseStats
|
|
attackanimation
|
|
waitanimation
|
|
updatestatusicon BS_ATTACKER
|
|
printstring STRINGID_PKMNSTATUSNORMAL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_CalmMindStatRaise
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_CalmMindStatRaise
|
|
goto BattleScript_CantRaiseMultipleStats
|
|
|
|
BattleScript_EffectRevivalBlessing::
|
|
attackcanceler
|
|
tryrevivalblessing BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNREVIVEDREADYTOFIGHT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_EffectRevivalBlessingSendOut
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRevivalBlessingSendOut:
|
|
getswitchedmondata BS_SCRIPTING
|
|
switchindataupdate BS_SCRIPTING
|
|
hpthresholds BS_SCRIPTING
|
|
switchinanim BS_SCRIPTING, FALSE, FALSE
|
|
waitstate
|
|
switchineffects BS_SCRIPTING
|
|
switchinevents
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_StealthRockActivates::
|
|
setstealthrock BattleScript_StealthRockActivatesRet
|
|
printfromtable gDmgHazardsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_StealthRockActivatesRet:
|
|
return
|
|
|
|
BattleScript_SpikesActivates::
|
|
trysetspikes BattleScript_SpikesActivatesRet
|
|
printfromtable gDmgHazardsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_SpikesActivatesRet:
|
|
return
|
|
|
|
BattleScript_EffectTeatime::
|
|
attackcanceler
|
|
checkteatimetargets BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
movevaluescleanup
|
|
goto BattleScript_EffectTeatimeGetTarget
|
|
BattleScript_EffectTeatimeNextTarget:
|
|
jumpifnoberry BS_TARGET, BattleScript_EffectTeatimeGetTarget
|
|
setbyte sBERRY_OVERRIDE, TRUE @ override the requirements for eating berries
|
|
consumeberry BS_TARGET, TRUE @ consume the berry, then restore the item from changedItems
|
|
setbyte sBERRY_OVERRIDE, FALSE
|
|
removeitem BS_TARGET
|
|
moveendcase MOVEEND_NEXT_TARGET
|
|
BattleScript_EffectTeatimeGetTarget:
|
|
getpossiblenexttarget BattleScript_EffectTeatimeNextTarget
|
|
moveendfrom MOVEEND_ITEM_EFFECTS_ATTACKER_2
|
|
end
|
|
|
|
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
|
|
jumpifstatus BS_ATTACKER, STATUS1_FROSTBITE, BattleScript_AffectionBasedStatus_HealFrostbiteString
|
|
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
|
|
goto BattleScript_AffectionBasedStatusHeal_Continue
|
|
BattleScript_AffectionBasedStatus_HealFrostbiteString:
|
|
printstring STRINGID_ATTACKERHEALEDITSFROSTBITE
|
|
BattleScript_AffectionBasedStatusHeal_Continue:
|
|
waitmessage B_WAIT_TIME_LONG
|
|
clearstatus BS_ATTACKER
|
|
waitstate
|
|
updatestatusicon BS_ATTACKER
|
|
waitstate
|
|
end2
|
|
|
|
BattleScript_ShellTrapSetUp::
|
|
flushtextbox
|
|
playanimation BS_ATTACKER, B_ANIM_SHELL_TRAP_SETUP, NULL
|
|
printstring STRINGID_PREPARESHELLTRAP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_EffectShellTrap::
|
|
attackcanceler
|
|
jumpifshelltrap BS_ATTACKER, BattleScript_HitFromAccCheck
|
|
printstring STRINGID_SHELLTRAPDIDNTWORK
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCourtChange::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
swapsidestatuses
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_COURTCHANGE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BeakBlastSetUp::
|
|
flushtextbox
|
|
playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL
|
|
printstring STRINGID_HEATUPBEAK
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_BeakBlastBurn::
|
|
setbyte cMULTISTRING_CHOOSER, 0
|
|
copybyte gEffectBattler, gBattlerAttacker
|
|
call BattleScript_MoveEffectBurn
|
|
return
|
|
|
|
BattleScript_EffectFling::
|
|
attackcanceler
|
|
accuracycheck BattleScript_FlingMissed
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNFLUNG
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
damagecalc
|
|
removeitem BS_ATTACKER
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
|
|
datahpupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_MED
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_MED
|
|
tryflingholdeffect
|
|
goto BattleScript_FlingEnd
|
|
|
|
BattleScript_EffectFlingConsumeBerry::
|
|
savebattleritem
|
|
battleritemtolastuseditem
|
|
setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries
|
|
orword gHitMarker, HITMARKER_DISABLE_ANIMATION
|
|
consumeberry BS_TARGET, FALSE
|
|
bicword gHitMarker, HITMARKER_DISABLE_ANIMATION
|
|
setbyte sBERRY_OVERRIDE, 0
|
|
restorebattleritem
|
|
BattleScript_FlingEnd:
|
|
trysymbiosis BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_FlingFailConsumeItem::
|
|
removeitem BS_ATTACKER
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_TargetAvoidsAttackConsumeFlingItem::
|
|
pause B_WAIT_TIME_SHORT
|
|
printfromtable gMissStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_FlingBlockedByShieldDust::
|
|
printstring STRINGID_ITEMWASUSEDUP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_FlingEnd
|
|
|
|
BattleScript_FlingMissed:
|
|
removeitem BS_ATTACKER
|
|
goto BattleScript_MoveMissedPause
|
|
|
|
BattleScript_EffectClangorousSoul::
|
|
attackcanceler
|
|
cutonethirdhpandraisestats BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
call BattleScript_AllStatsUp
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectOctolock::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
trysetoctolock BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_OctolockEndTurn::
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_OctolockTryLowerSpDef, BIT_SPDEF
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_OctolockTryLowerSpDef:
|
|
setstatchanger STAT_SPDEF, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_OctlockTurnDmgEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_OctlockTurnDmgEnd:
|
|
end2
|
|
|
|
BattleScript_EffectPoltergeist::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
setpoltergeistmessage
|
|
printstring STRINGID_ABOUTTOUSEPOLTERGEIST
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_HitFromDamageCalc
|
|
|
|
BattleScript_EffectTarShot::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
cantarshotwork BattleScript_ButItFailed
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
attackanimation
|
|
waitanimation
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_TryTarShot
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_TryTarShot:
|
|
trytarshot BattleScript_MoveEnd
|
|
printstring STRINGID_PKMNBECAMEWEAKERTOFIRE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectNoRetreat::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
jumpifvolatile BS_TARGET, VOLATILE_NO_RETREAT, BattleScript_ButItFailed
|
|
setvolatile BS_TARGET, VOLATILE_NO_RETREAT
|
|
attackanimation
|
|
waitanimation
|
|
call BattleScript_AllStatsUp
|
|
jumpifvolatile BS_TARGET, VOLATILE_ESCAPE_PREVENTION, BattleScript_MoveEnd
|
|
seteffectprimary BS_TARGET, BS_TARGET, MOVE_EFFECT_PREVENT_ESCAPE
|
|
printstring STRINGID_CANTESCAPEDUETOUSEDMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BothCanNoLongerEscape::
|
|
printstring STRINGID_BOTHCANNOLONGERESCAPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectHyperspaceFury::
|
|
jumpifspecies SPECIES_HOOPA_UNBOUND, BattleScript_EffectHit
|
|
jumpifspecies SPECIES_HOOPA_CONFINED, BattleScript_ButHoopaCantUseIt
|
|
goto BattleScript_PokemonCantUseTheMove
|
|
|
|
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_MoveEffectIonDeluge::
|
|
printstring STRINGID_IONDELUGEON
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveEffectHaze::
|
|
printstring STRINGID_STATCHANGESGONE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveEffectLeechSeed::
|
|
printstring STRINGID_PKMNSEEDED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveEffectReflect::
|
|
printfromtable gReflectLightScreenSafeguardStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveEffectLightScreen::
|
|
printfromtable gReflectLightScreenSafeguardStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectStuffCheeks::
|
|
attackcanceler
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sBERRY_OVERRIDE, 1
|
|
orword gHitMarker, HITMARKER_DISABLE_ANIMATION
|
|
consumeberry BS_ATTACKER, TRUE
|
|
bicword gHitMarker, HITMARKER_DISABLE_ANIMATION
|
|
setbyte sBERRY_OVERRIDE, 0
|
|
removeitem BS_ATTACKER
|
|
setstatchanger STAT_DEF, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_StuffCheeksEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_StuffCheeksEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDecorate::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_DecorateBoost
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_DecorateBoost
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_DecorateBoost:
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_DecorateBoostSpAtk, BIT_SPATK
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DecorateBoostSpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DecorateBoostSpAtk:
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange BS_TARGET, 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_EffectCoaching::
|
|
attackcanceler
|
|
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
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_CoachingBoostDef, BIT_DEF
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CoachingBoostDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CoachingBoostDef:
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange BS_TARGET, 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
|
|
jumpifteamhealthy BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
setbyte gBattleCommunication, 0
|
|
JungleHealing_RestoreTargetHealth:
|
|
copybyte gBattlerAttacker, gBattlerTarget
|
|
tryhealquarterhealth BS_TARGET, BattleScript_JungleHealing_TryCureStatus
|
|
healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_JungleHealing_TryCureStatus:
|
|
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_EffectLifeDew::
|
|
attackcanceler
|
|
jumpiffullhp BS_ATTACKER, BattleScript_EffectLifeDewCheckPartner
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
attackanimation
|
|
waitanimation
|
|
call BattleScript_EffectLifeDewHealing
|
|
jumpifabsent BS_ATTACKER_PARTNER, BattleScript_EffectLifeDewEnd
|
|
jumpiffullhp BS_ATTACKER_PARTNER, BattleScript_EffectLifeDewEnd
|
|
setallytonexttarget BattleScript_EffectLifeDewNextTarget
|
|
BattleScript_EffectLifeDewNextTarget:
|
|
call BattleScript_EffectLifeDewHealing
|
|
BattleScript_EffectLifeDewEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectLifeDewCheckPartner:
|
|
jumpifabsent BS_ATTACKER_PARTNER, BattleScript_ButItFailed
|
|
jumpiffullhp BS_ATTACKER_PARTNER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setallytonexttarget BattleScript_EffectLifeDewNextTarget
|
|
|
|
BattleScript_EffectLifeDewHealing:
|
|
tryhealquarterhealth BS_TARGET, BattleScript_EffectLifeDewEnd
|
|
healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectAllySwitch::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
tryallyswitch BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
@ The actual data/gfx swap happens in the move animation. Here it's just the gBattlerAttacker / scripting battler change
|
|
allyswitchswapbattlers
|
|
printstring STRINGID_ALLYSWITCHPOSITION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFairyLock::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
trysetfairylock BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_NOONEWILLBEABLETORUNAWAY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_RemoveFireType::
|
|
printstring STRINGID_ATTACKERLOSTFIRETYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_RemoveElectricType::
|
|
printstring STRINGID_ATTACKERLOSTELECTRICTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_RemoveGenericType::
|
|
printstring STRINGID_ATTACKERLOSTITSTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_DefDown::
|
|
modifybattlerstatstage BS_TARGET, STAT_DEF, DECREASE, 1, BattleScript_DefDown_Ret, ANIM_ON
|
|
BattleScript_DefDown_Ret:
|
|
return
|
|
|
|
BattleScript_EffectPurify::
|
|
attackcanceler
|
|
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 BS_ATTACKER, BattleScript_AlreadyAtFullHp
|
|
goto BattleScript_RestoreHp
|
|
|
|
BattleScript_EffectStrengthSap::
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
jumpifstatignorecontrary BS_TARGET, CMP_EQUAL, STAT_ATK, MIN_STAT_STAGE, BattleScript_StrengthSapPrintStatMessage
|
|
attackanimation
|
|
waitanimation
|
|
getstatvalue STAT_ATK
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_MoveEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_StrengthSapPrintStatMessage:
|
|
pause B_WAIT_TIME_SHORT
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveEffectIncinerate::
|
|
printstring STRINGID_INCINERATEBURN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveEffectBugBite::
|
|
printstring STRINGID_BUGBITE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
orword gHitMarker, HITMARKER_DISABLE_ANIMATION
|
|
setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries
|
|
savetarget
|
|
consumeberry BS_ATTACKER, FALSE
|
|
bicword gHitMarker, HITMARKER_DISABLE_ANIMATION
|
|
setbyte sBERRY_OVERRIDE, 0
|
|
restoretarget
|
|
trysymbiosis BS_TARGET
|
|
return
|
|
|
|
BattleScript_MoveEffectCoreEnforcer::
|
|
setgastroacid BattleScript_CoreEnforcerRet
|
|
printstring STRINGID_PKMNSABILITYSUPPRESSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trytoclearprimalweather
|
|
call BattleScript_TryRevertWeatherform
|
|
flushtextbox
|
|
BattleScript_CoreEnforcerRet:
|
|
return
|
|
|
|
BattleScript_EffectLaserFocus::
|
|
attackcanceler
|
|
trysetvolatile BS_ATTACKER, VOLATILE_LASER_FOCUS, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_LASERFOCUS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
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:
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_CERTAIN, BattleScript_VCreateTrySpDef, BIT_SPDEF | BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VCreateTrySpDef
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VCreateTrySpDef:
|
|
setstatchanger STAT_SPDEF, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_CERTAIN, BattleScript_VCreateTrySpeed, BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VCreateTrySpeed
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VCreateTrySpeed:
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_CERTAIN, BattleScript_VCreateStatLossRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VCreateStatLossRet
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VCreateStatLossRet:
|
|
return
|
|
|
|
BattleScript_EffectPartingShot::
|
|
attackcanceler
|
|
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_EffectPartingShotTryAtk
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MIN_STAT_STAGE, BattleScript_EffectPartingShotCantLowerMultipleStats
|
|
BattleScript_EffectPartingShotTryAtk:
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
attackanimation
|
|
waitanimation
|
|
setbyte sB_ANIM_TARGETS_HIT, 0
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectPartingShotTrySpAtk, BIT_SPATK
|
|
call BattleScript_EffectPartingShotMaybePrintStat
|
|
BattleScript_EffectPartingShotTrySpAtk:
|
|
setstatchanger STAT_SPATK, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectPartingShotMaybeSwitch
|
|
call BattleScript_EffectPartingShotMaybePrintStat
|
|
BattleScript_EffectPartingShotMaybeSwitch:
|
|
jumpifgenconfiglowerthan CONFIG_B_PARTING_SHOT_SWITCH, GEN_7, BattleScript_EffectPartingShotSwitch
|
|
jumpifbyte CMP_NOT_EQUAL, sB_ANIM_TARGETS_HIT, 0, BattleScript_EffectPartingShotSwitch
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPartingShotSwitch:
|
|
moveendall
|
|
goto BattleScript_MoveSwitchPursuitEnd
|
|
|
|
BattleScript_EffectPartingShotCantLowerMultipleStats:
|
|
pause B_WAIT_TIME_SHORT
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
call BattleScript_EffectPartingShotPrintWontDecrease
|
|
setbyte sB_ANIM_TARGETS_HIT, 0
|
|
goto BattleScript_EffectPartingShotMaybeSwitch
|
|
|
|
BattleScript_EffectPartingShotMaybePrintStat:
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_ATTACKER_STAT_CHANGED, BattleScript_EffectPartingShotPrintStat
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, BattleScript_EffectPartingShotPrintStat
|
|
return
|
|
|
|
BattleScript_EffectPartingShotPrintStat:
|
|
setbyte sB_ANIM_TARGETS_HIT, 1
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectPartingShotPrintWontDecrease:
|
|
jumpifability BS_TARGET, ABILITY_CONTRARY, BattleScript_EffectPartingShotPrintWontDecreaseContrary
|
|
printstring STRINGID_STATSWONTDECREASE2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectPartingShotPrintWontDecreaseContrary:
|
|
swapattackerwithtarget
|
|
printstring STRINGID_STATSWONTDECREASE2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
swapattackerwithtarget
|
|
return
|
|
|
|
BattleScript_EffectPowder::
|
|
attackcanceler
|
|
jumpifvolatile BS_TARGET, VOLATILE_POWDER, BattleScript_ButItFailed
|
|
setvolatile BS_TARGET, VOLATILE_POWDER
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_COVEREDINPOWDER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAromaticMist::
|
|
attackcanceler
|
|
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed
|
|
jumpiftargetally BattleScript_EffectAromaticMistWorks
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_EffectAromaticMistWorks:
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ONLY_CHECKING, BattleScript_EffectAromaticMistWontGoHigher
|
|
attackanimation
|
|
waitanimation
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectAromaticMistEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectAromaticMistEnd:
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_EffectAromaticMistWontGoHigher:
|
|
pause B_WAIT_TIME_SHORTEST
|
|
printstring STRINGID_TARGETSTATWONTGOHIGHER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveresultflags MOVE_RESULT_MISSED @ TODO: Is this even necessary?
|
|
goto BattleScript_EffectAromaticMistEnd
|
|
|
|
BattleScript_EffectMagneticFlux::
|
|
attackcanceler
|
|
savetarget
|
|
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:
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMagneticFluxTrySpDef, BIT_SPDEF
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectMagneticFluxTrySpDef
|
|
addbyte gBattleCommunication, 1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectMagneticFluxTrySpDef:
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMagneticFluxLoop
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectMagneticFluxLoop
|
|
addbyte gBattleCommunication, 1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectMagneticFluxLoop:
|
|
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectMagneticFluxEnd
|
|
jumpifnoally BS_ATTACKER, BattleScript_EffectMagneticFluxEnd
|
|
setallytonexttarget BattleScript_EffectMagneticFluxStart
|
|
BattleScript_EffectMagneticFluxEnd:
|
|
restoretarget
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_MoveEnd
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_EffectGearUp::
|
|
attackcanceler
|
|
savetarget
|
|
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:
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectGearUpTrySpAtk, BIT_SPATK
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectGearUpTrySpAtk
|
|
addbyte gBattleCommunication, 1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectGearUpTrySpAtk:
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectGearUpLoop
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectGearUpLoop
|
|
addbyte gBattleCommunication, 1
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectGearUpLoop:
|
|
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectGearUpEnd
|
|
jumpifnoally BS_ATTACKER, BattleScript_EffectGearUpEnd
|
|
setallytonexttarget BattleScript_EffectGearUpStart
|
|
BattleScript_EffectGearUpEnd:
|
|
restoretarget
|
|
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_MoveEnd
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_EffectAcupressure::
|
|
attackcanceler
|
|
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectAcupressureTry
|
|
jumpifvolatile BS_TARGET, VOLATILE_SUBSTITUTE, BattleScript_MoveMissedPause
|
|
BattleScript_EffectAcupressureTry:
|
|
tryacupressure BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
statbuffchange BS_TARGET, STAT_CHANGE_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_EffectThirdType::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
trythirdtype BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_THIRDTYPEADDED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFlowerShield::
|
|
attackcanceler
|
|
savetarget
|
|
setbyte gBattlerTarget, 0
|
|
selectfirstvalidtarget
|
|
BattleScript_FlowerShieldIsAnyValidTarget:
|
|
jumpifvolatile BS_TARGET, VOLATILE_SEMI_INVULNERABLE, BattleScript_FlowerShieldCheckNextTarget
|
|
jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_FlowerShieldLoopStart
|
|
BattleScript_FlowerShieldCheckNextTarget:
|
|
jumpifnexttargetvalid BattleScript_FlowerShieldIsAnyValidTarget
|
|
goto BattleScript_RestoreTargetButItFailed
|
|
BattleScript_FlowerShieldLoopStart:
|
|
selectfirstvalidtarget
|
|
BattleScript_FlowerShieldLoop:
|
|
movevaluescleanup
|
|
jumpifvolatile BS_TARGET, VOLATILE_SEMI_INVULNERABLE, BattleScript_FlowerShieldMoveTargetEnd
|
|
jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_FlowerShieldLoop2
|
|
goto BattleScript_FlowerShieldMoveTargetEnd
|
|
BattleScript_FlowerShieldLoop2:
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_FlowerShieldMoveTargetEnd
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_FlowerShieldDoAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_FlowerShieldMoveTargetEnd
|
|
pause 21
|
|
goto BattleScript_FlowerShieldString
|
|
BattleScript_FlowerShieldDoAnim:
|
|
attackanimation
|
|
waitanimation
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_FlowerShieldMoveTargetEnd
|
|
BattleScript_FlowerShieldString:
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_FlowerShieldMoveTargetEnd:
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
jumpifnexttargetvalid BattleScript_FlowerShieldLoop
|
|
restoretarget
|
|
moveendfrom MOVEEND_ITEM_EFFECTS_ATTACKER_2
|
|
end
|
|
|
|
BattleScript_EffectRototiller::
|
|
attackcanceler
|
|
getrototillertargets BattleScript_ButItFailed
|
|
@ at least one battler is affected
|
|
attackanimation
|
|
waitanimation
|
|
goto BattleScript_EffectRototillerGetTarget
|
|
BattleScript_RototillerLoop:
|
|
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:
|
|
jumpifmoveresultflags MOVE_RESULT_NO_EFFECT, BattleScript_EffectRototillerGetTarget
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_RototillerTrySpAtk, BIT_SPATK
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_RototillerTrySpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_RototillerTrySpAtk::
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectRototillerMoves
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectRototillerMoves
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectRototillerMoves:
|
|
moveendcase MOVEEND_NEXT_TARGET
|
|
BattleScript_EffectRototillerGetTarget:
|
|
getpossiblenexttarget BattleScript_RototillerLoop
|
|
moveendfrom MOVEEND_ITEM_EFFECTS_ATTACKER_2
|
|
end
|
|
|
|
BattleScript_RototillerCantRaiseMultipleStats:
|
|
saveattacker
|
|
copybyte gBattlerAttacker, gBattlerTarget
|
|
printstring STRINGID_STATSWONTINCREASE2
|
|
restoreattacker
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_EffectRototillerGetTarget
|
|
|
|
BattleScript_RototillerNoEffect:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_NOEFFECTONTARGET
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_EffectRototillerGetTarget
|
|
|
|
BattleScript_EffectBestow::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
trybestow BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_BESTOWITEMGIVING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryactivateabilitywithabilityshield BS_TARGET, FALSE
|
|
tryactivateitem BS_TARGET, ACTIVATION_ON_USABLE_AGAIN
|
|
trysymbiosis BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_ActivateSwitchInAbility::
|
|
switchinabilities BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_EffectAfterYou::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
tryafteryou BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_KINDOFFER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveEffectFlameBurst::
|
|
printstring STRINGID_BURSTINGFLAMESHIT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
tryfaintmon BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_EffectPowerTrick::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
powertrick
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSWITCHEDATKANDDEF
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPsychoShift::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
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, BattleScript_SleepClauseBlocked
|
|
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_ItDoesntAffectFoe::
|
|
savetarget
|
|
copybyte gBattlerTarget, sBATTLER
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
flushtextbox
|
|
restoretarget
|
|
return
|
|
|
|
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
|
|
jumpifgenconfiglowerthan CONFIG_B_DEFOG_EFFECT_CLEARING, GEN_5, BattleScript_DefogAfterSubstituteCheck
|
|
jumpifsubstituteblocks BattleScript_DefogIfCanClearHazards
|
|
BattleScript_DefogAfterSubstituteCheck:
|
|
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_EVASION, MIN_STAT_STAGE, BattleScript_DefogWorks
|
|
BattleScript_DefogIfCanClearHazards:
|
|
trydefog FALSE, BattleScript_ButItFailed
|
|
BattleScript_DefogWorks:
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
jumpifgenconfiglowerthan CONFIG_B_DEFOG_EFFECT_CLEARING, GEN_5, BattleScript_DefogWorksAfterSubstituteCheck
|
|
jumpifsubstituteblocks BattleScript_DefogTryHazardsWithAnim
|
|
BattleScript_DefogWorksAfterSubstituteCheck:
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_DefogTryHazardsWithAnim
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DefogDoAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_DefogTryHazardsWithAnim
|
|
pause B_WAIT_TIME_SHORT
|
|
setmoveresultflags MOVE_RESULT_MISSED @ TODO: Is this even necessary?
|
|
goto BattleScript_DefogPrintString
|
|
BattleScript_DefogDoAnim::
|
|
attackanimation
|
|
waitanimation
|
|
call BattleScript_SwapFromSubstitute
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_DefogTryHazards
|
|
call BattleScript_SwapToSubstitute
|
|
BattleScript_DefogPrintString::
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DefogTryHazards:
|
|
copybyte gEffectBattler, gBattlerAttacker
|
|
trydefog TRUE, NULL
|
|
copybyte gBattlerAttacker, gEffectBattler
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_DefogTryHazardsWithAnim:
|
|
attackanimation
|
|
waitanimation
|
|
goto BattleScript_DefogTryHazards
|
|
|
|
BattleScript_MoveEffectDefog::
|
|
saveattacker
|
|
trydefog TRUE, NULL
|
|
restoreattacker
|
|
return
|
|
|
|
BattleScript_EffectInstruct::
|
|
attackcanceler
|
|
pause B_WAIT_TIME_SHORT
|
|
tryinstruct BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_USEDINSTRUCTEDMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
copybyte gBattlerAttacker, gBattlerTarget
|
|
copybyte gBattlerTarget, gEffectBattler
|
|
jumptocalledmove TRUE
|
|
|
|
BattleScript_EffectAutotomize::
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
attackcanceler
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_AutotomizeWeightLoss
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AutotomizeAttackAnim
|
|
pause B_WAIT_TIME_SHORT
|
|
goto BattleScript_AutotomizePrintString
|
|
BattleScript_AutotomizeAttackAnim::
|
|
attackanimation
|
|
waitanimation
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AutotomizeWeightLoss
|
|
BattleScript_AutotomizePrintString::
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AutotomizeWeightLoss::
|
|
jumpifmovehadnoeffect BattleScript_MoveEnd
|
|
tryautotomize BattleScript_MoveEnd
|
|
printstring STRINGID_BECAMENIMBLE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_FinalGambit::
|
|
setatkhptozero
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
tryfaintmon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_TryHitSwitchTarget::
|
|
forcerandomswitch BattleScript_HitSwitchTargetForceRandomSwitchFailed
|
|
return
|
|
|
|
BattleScript_HitSwitchTargetDynamaxed::
|
|
printstring STRINGID_MOVEBLOCKEDBYDYNAMAX
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_HitSwitchTargetForceRandomSwitchFailed:
|
|
setbyte sSWITCH_CASE, B_SWITCH_NORMAL
|
|
return
|
|
|
|
BattleScript_EffectToxicThread::
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
checknonvolatiletrigger MOVE_EFFECT_POISON, BattleScript_EffectStatDownFromAccCheck
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_ToxicThreadTryPsn
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ToxicThreadDoAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_ToxicThreadTryPsn
|
|
pause B_WAIT_TIME_SHORT
|
|
goto BattleScript_ToxicThreadPrintString
|
|
BattleScript_ToxicThreadDoAnim::
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_ToxicThreadTryPsn
|
|
BattleScript_ToxicThreadPrintString::
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ToxicThreadTryPsn::
|
|
seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_POISON
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectVenomDrench::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
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
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_VenomDrenchTryLowerSpAtk, BIT_SPATK | BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VenomDrenchTryLowerSpAtk
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VenomDrenchTryLowerSpAtk::
|
|
setstatchanger STAT_SPATK, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_VenomDrenchTryLowerSpeed, BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VenomDrenchTryLowerSpeed
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VenomDrenchTryLowerSpeed::
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_VenomDrenchEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VenomDrenchEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VenomDrenchEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectNobleRoar::
|
|
attackcanceler
|
|
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
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_NobleRoarTryLowerSpAtk, BIT_SPATK
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_NobleRoarTryLowerSpAtk
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_NobleRoarTryLowerSpAtk::
|
|
setstatchanger STAT_SPATK, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_NobleRoarEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_NobleRoarEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_NobleRoarEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectShellSmash::
|
|
attackcanceler
|
|
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
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_CERTAIN, BattleScript_ShellSmashTrySpDef, BIT_SPDEF
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShellSmashTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShellSmashTrySpDef:
|
|
setstatchanger STAT_SPDEF, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_CERTAIN, BattleScript_ShellSmashTryAttack
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShellSmashTryAttack
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShellSmashTryAttack:
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ShellSmashTrySpAtk, BIT_SPATK | BIT_SPEED,
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShellSmashTrySpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShellSmashTrySpAtk:
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ShellSmashTrySpeed, BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShellSmashTrySpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShellSmashTrySpeed:
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ShellSmashEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShellSmashEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShellSmashEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGrowth::
|
|
attackcanceler
|
|
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
|
|
jumpifweatheraffected B_WEATHER_SUN, BattleScript_GrowthAtk2
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
goto BattleScript_GrowthAtk
|
|
BattleScript_GrowthAtk2:
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
BattleScript_GrowthAtk:
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_GrowthTrySpAtk, BIT_SPATK
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_GrowthTrySpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GrowthTrySpAtk::
|
|
jumpifweatheraffected B_WEATHER_SUN, BattleScript_GrowthSpAtk2
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
goto BattleScript_GrowthSpAtk
|
|
BattleScript_GrowthSpAtk2:
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
BattleScript_GrowthSpAtk:
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_GrowthEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_GrowthEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GrowthEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSoak::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
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_MoveMissedPause
|
|
tryreflecttype BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_REFLECTTARGETSTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectElectrify::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
tryelectrify BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_TARGETELECTRIFIED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectShiftGear::
|
|
attackcanceler
|
|
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
|
|
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, 10, BattleScript_ShiftGearSpeedBy1
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
goto BattleScript_ShiftGearDoSpeed
|
|
BattleScript_ShiftGearSpeedBy1:
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
BattleScript_ShiftGearDoSpeed:
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ShiftGearTryAtk, BIT_ATK
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShiftGearTryAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShiftGearTryAtk:
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ShiftGearEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShiftGearEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ShiftGearEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCoil::
|
|
attackcanceler
|
|
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
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CoilTryDef, BIT_DEF | BIT_ACC
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CoilTryDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CoilTryDef:
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CoilTryAcc, BIT_ACC
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CoilTryAcc
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CoilTryAcc:
|
|
setstatchanger STAT_ACC, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CoilEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CoilEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CoilEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectQuiverDance::
|
|
attackcanceler
|
|
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
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_QuiverDanceTrySpDef, BIT_SPDEF | BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_QuiverDanceTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_QuiverDanceTrySpDef::
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_QuiverDanceTrySpeed, BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_QuiverDanceTrySpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_QuiverDanceTrySpeed::
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_QuiverDanceEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_QuiverDanceEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_QuiverDanceEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectVictoryDance::
|
|
attackcanceler
|
|
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
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_VictoryDanceTryDef, BIT_DEF | BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VictoryDanceTryDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VictoryDanceTryDef::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_VictoryDanceTrySpeed, BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VictoryDanceTrySpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VictoryDanceTrySpeed::
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_VictoryDanceEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VictoryDanceEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_VictoryDanceEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackSpAttackUp::
|
|
attackcanceler
|
|
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
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AttackSpAttackUpTrySpAtk, BIT_SPATK
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AttackSpAttackUpTrySpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AttackSpAttackUpTrySpAtk::
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AttackSpAttackUpEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AttackSpAttackUpEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AttackSpAttackUpEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAttackAccUp::
|
|
attackcanceler
|
|
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
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AttackAccUpTryAcc, BIT_ACC
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AttackAccUpTryAcc
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AttackAccUpTryAcc::
|
|
setstatchanger STAT_ACC, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AttackAccUpEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AttackAccUpEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AttackAccUpEnd:
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMistyTerrain::
|
|
BattleScript_EffectGrassyTerrain::
|
|
BattleScript_EffectElectricTerrain::
|
|
BattleScript_EffectPsychicTerrain::
|
|
attackcanceler
|
|
setterrain BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gTerrainStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
call BattleScript_ActivateTerrainEffects
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTopsyTurvy::
|
|
attackcanceler
|
|
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
|
|
printstring STRINGID_TOPSYTURVYSWITCHEDSTATS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectIonDeluge::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
orword gFieldStatuses, STATUS_FIELD_ION_DELUGE
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_IONDELUGEON
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectQuash::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
tryquash BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_QUASHSUCCESS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHealPulse::
|
|
attackcanceler
|
|
jumpifvolatile BS_ATTACKER, VOLATILE_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents @ stops pollen puff
|
|
jumpifvolatile BS_TARGET, VOLATILE_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
tryhealpulse BattleScript_AlreadyAtFullHp
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectEntrainment::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
tryentrainment BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
switchinabilities BS_TARGET
|
|
printstring STRINGID_PKMNACQUIREDABILITY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trytoclearprimalweather
|
|
call BattleScript_TryRevertWeatherform
|
|
flushtextbox
|
|
tryendneutralizinggas
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectLuckyChant::
|
|
attackcanceler
|
|
setluckychant BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_SHIELDEDFROMCRITICALHITS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHealingWish::
|
|
attackcanceler
|
|
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
instanthpdrop
|
|
setatkhptozero
|
|
tryfaintmon BS_ATTACKER
|
|
storehealingwish BS_ATTACKER
|
|
jumpifgenconfiglowerthan CONFIG_B_HEALING_WISH_SWITCH, GEN_5, BattleScript_EffectHealingWishGen4
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHealingWishGen4:
|
|
openpartyscreen BS_ATTACKER, BattleScript_MoveEnd
|
|
waitstate
|
|
switchhandleorder BS_ATTACKER, 2
|
|
returnatktoball
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
trytoclearprimalweather
|
|
call BattleScript_TryRevertWeatherform
|
|
flushtextbox
|
|
tryendneutralizinggas
|
|
flushtextbox
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_ATTACKER, FALSE, TRUE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
switchinevents
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_HealingWishActivates::
|
|
setbyte cMULTISTRING_CHOOSER, 0
|
|
goto BattleScript_EffectHealingWishRestore
|
|
BattleScript_LunarDanceActivates::
|
|
setbyte cMULTISTRING_CHOOSER, 1
|
|
restoremovepp BS_SCRIPTING
|
|
BattleScript_EffectHealingWishRestore:
|
|
printfromtable gHealingWishStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_SCRIPTING, B_ANIM_WISH_HEAL
|
|
waitanimation
|
|
healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
clearstatus BS_SCRIPTING,
|
|
waitstate
|
|
updatestatusicon BS_SCRIPTING
|
|
waitstate
|
|
printstring STRINGID_HEALINGWISHHEALED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectOverwriteAbility::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
tryoverwriteability BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
call BattleScript_AbilityPopUpOverwriteThenNormal
|
|
recordability BS_TARGET
|
|
printstring STRINGID_PKMNACQUIREDABILITY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trytoclearprimalweather
|
|
call BattleScript_TryRevertWeatherform
|
|
flushtextbox
|
|
tryendneutralizinggas
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPowerSplit::
|
|
attackcanceler
|
|
averagestats STAT_ATK
|
|
averagestats STAT_SPATK
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_SHAREDITSPOWER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGuardSplit::
|
|
attackcanceler
|
|
averagestats STAT_DEF
|
|
averagestats STAT_SPDEF
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_SHAREDITSGUARD
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHeartSwap::
|
|
attackcanceler
|
|
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
|
|
swapstatstages STAT_ATK
|
|
swapstatstages STAT_SPATK
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSWITCHEDSTATCHANGES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGuardSwap::
|
|
attackcanceler
|
|
swapstatstages STAT_DEF
|
|
swapstatstages STAT_SPDEF
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSWITCHEDSTATCHANGES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSpeedSwap::
|
|
attackcanceler
|
|
swapstats STAT_SPEED
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_ATTACKERSWITCHEDSTATWITHTARGET
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTelekinesis::
|
|
attackcanceler
|
|
settelekinesis BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_HURLEDINTOTHEAIR
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectStealthRock::
|
|
attackcanceler
|
|
setstealthrock BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_POINTEDSTONESFLOAT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectStickyWeb::
|
|
attackcanceler
|
|
setstickyweb BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_STICKYWEBUSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGastroAcid::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
jumpifvolatile BS_TARGET, VOLATILE_GASTRO_ACID, BattleScript_ButItFailed
|
|
setgastroacid BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSABILITYSUPPRESSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trytoclearprimalweather
|
|
call BattleScript_TryRevertWeatherform
|
|
flushtextbox
|
|
tryendneutralizinggas
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectToxicSpikes::
|
|
attackcanceler
|
|
settoxicspikes BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_POISONSPIKESSCATTERED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMagnetRise::
|
|
attackcanceler
|
|
jumpifvolatile BS_ATTACKER, VOLATILE_ROOT, BattleScript_ButItFailed
|
|
jumpifvolatile BS_ATTACKER, VOLATILE_SMACK_DOWN, BattleScript_ButItFailed
|
|
trysetvolatile BS_ATTACKER, VOLATILE_MAGNET_RISE, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNLEVITATEDONELECTROMAGNETISM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTrickRoom::
|
|
attackcanceler
|
|
setroom
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gRoomsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_TryRoomServiceLoop
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_TryRoomServiceLoop:
|
|
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
|
|
return
|
|
|
|
BattleScript_EffectWonderRoom::
|
|
BattleScript_EffectMagicRoom::
|
|
attackcanceler
|
|
setroom
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gRoomsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAquaRing::
|
|
attackcanceler
|
|
jumpifvolatile BS_ATTACKER, VOLATILE_AQUA_RING, BattleScript_ButItFailed
|
|
setvolatile BS_ATTACKER, VOLATILE_AQUA_RING
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSURROUNDEDWITHVEILOFWATER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectEmbargo::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
setembargo BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNCANTUSEITEMSANYMORE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTailwind::
|
|
attackcanceler
|
|
settailwind BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_TAILWINDBLEW
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_TryTailwindAbilitiesLoop
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_TryTailwindAbilitiesLoop:
|
|
savetarget
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_TryTailwindAbilitiesLoop_Iter:
|
|
trywindriderpower BS_TARGET, BattleScript_TryTailwindAbilitiesLoop_Increment
|
|
jumpifability BS_TARGET, ABILITY_WIND_RIDER, BattleScript_TryTailwindAbilitiesLoop_WindRider
|
|
jumpifability BS_TARGET, ABILITY_WIND_POWER, BattleScript_TryTailwindAbilitiesLoop_WindPower
|
|
BattleScript_TryTailwindAbilitiesLoop_Increment:
|
|
addbyte gBattlerTarget, 0x1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TryTailwindAbilitiesLoop_Iter
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_TryTailwindAbilitiesLoop_WindRider:
|
|
call BattleScript_AbilityPopUp
|
|
modifybattlerstatstage BS_TARGET, STAT_ATK, INCREASE, 1, BattleScript_TryTailwindAbilitiesLoop_Increment, ANIM_ON
|
|
goto BattleScript_TryTailwindAbilitiesLoop_Increment
|
|
|
|
BattleScript_TryTailwindAbilitiesLoop_WindPower:
|
|
call BattleScript_AbilityPopUp
|
|
setvolatile BS_TARGET, VOLATILE_CHARGE_TIMER, 2
|
|
printstring STRINGID_BEINGHITCHARGEDPKMNWITHPOWER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_TryTailwindAbilitiesLoop_Increment
|
|
|
|
BattleScript_EffectMiracleEye::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
jumpifgenconfiglowerthan CONFIG_B_MIRACLE_EYE_FAIL, GEN_5, BattleScript_MiracleEyeSet
|
|
jumpifvolatile BS_TARGET, VOLATILE_MIRACLE_EYE, BattleScript_ButItFailed
|
|
BattleScript_MiracleEyeSet:
|
|
setvolatile BS_TARGET, VOLATILE_MIRACLE_EYE
|
|
goto BattleScript_IdentifiedFoe
|
|
|
|
BattleScript_EffectGravity::
|
|
call BattleScript_EffectGravityInternal
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGravityInternal:
|
|
attackcanceler
|
|
setgravity BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_EffectGravitySuccess::
|
|
printstring STRINGID_GRAVITYINTENSIFIED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
savetarget
|
|
selectfirstvalidtarget
|
|
BattleScript_GravityLoop:
|
|
movevaluescleanup
|
|
jumpfifsemiinvulnerable BS_TARGET, STATE_ON_AIR, BattleScript_GravityLoopDrop
|
|
jumpifvolatile BS_TARGET, VOLATILE_MAGNET_RISE, BattleScript_GravityLoopDrop
|
|
jumpifvolatile BS_TARGET, VOLATILE_TELEKINESIS, BattleScript_GravityLoopDrop
|
|
goto BattleScript_GravityLoopEnd
|
|
BattleScript_GravityLoopDrop:
|
|
gravityonairbornemons
|
|
printstring STRINGID_GRAVITYGROUNDING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GravityLoopEnd:
|
|
moveendcase MOVEEND_TARGET_VISIBLE
|
|
jumpifnexttargetvalid BattleScript_GravityLoop
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectRoost::
|
|
attackcanceler
|
|
tryhealhalfhealth BS_TARGET, BattleScript_AlreadyAtFullHp
|
|
setroost
|
|
goto BattleScript_PresentHealTarget
|
|
|
|
BattleScript_EffectCaptivate::
|
|
setstatchanger STAT_SPATK, 2, TRUE
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifcaptivateaffected BattleScript_CaptivateCheckAcc
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_CaptivateCheckAcc:
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
goto BattleScript_EffectStatDownFromStatBuffChange
|
|
|
|
BattleScript_EffectHealBlock::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
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_EffectHitEscape::
|
|
jumpiffainted BS_TARGET, FALSE, BattleScript_HitEscapeSwitch
|
|
setbyte sGIVEEXP_STATE, 0
|
|
getexp BS_TARGET
|
|
BattleScript_HitEscapeSwitch:
|
|
call BattleScript_MoveSwitchPursuitRet
|
|
return
|
|
|
|
BattleScript_EffectPlaceholder::
|
|
attackcanceler
|
|
pause 5
|
|
printstring STRINGID_NOTDONEYET
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHit::
|
|
attackcanceler
|
|
BattleScript_HitFromAccCheck::
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
copybyte gEffectBattler, gBattlerAttacker
|
|
setpreattackadditionaleffect
|
|
BattleScript_HitFromDamageCalc::
|
|
damagecalc
|
|
call BattleScript_Hit_RetFromAtkAnimation
|
|
BattleScript_MoveEnd::
|
|
moveendall
|
|
end
|
|
|
|
BattleScript_EffectHit_RetFromAccCheck::
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
copybyte gEffectBattler, gBattlerAttacker
|
|
setpreattackadditionaleffect
|
|
damagecalc
|
|
BattleScript_Hit_RetFromAtkAnimation::
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
|
|
datahpupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setadditionaleffects
|
|
return
|
|
|
|
BattleScript_MakeMoveMissed::
|
|
setmoveresultflags MOVE_RESULT_MISSED
|
|
BattleScript_MoveMissedPause::
|
|
pause B_WAIT_TIME_SHORT
|
|
BattleScript_MoveMissed::
|
|
effectivenesssound
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_TerrainPreventsEnd2::
|
|
pause B_WAIT_TIME_SHORT
|
|
printfromtable gTerrainPreventsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_ImmunityProtectedEnd2::
|
|
call BattleScript_AbilityPopUp
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_ElectricTerrainPrevents::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_ELECTRICTERRAINPREVENTS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MistyTerrainPrevents::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_MISTYTERRAINPREVENTS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveresultflags 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
|
|
setmoveresultflags 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
|
|
setmoveresultflags 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
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AbilityProtectsDoesntAffectRet::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AbilityProtectsDoesntAffect::
|
|
call BattleScript_AbilityProtectsDoesntAffectRet
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_InsomniaProtects::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSTAYEDAWAKEUSING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyAsleep::
|
|
setalreadystatusedmoveattempt
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNALREADYASLEEP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_CantMakeAsleep::
|
|
pause B_WAIT_TIME_SHORT
|
|
printfromtable gUproarAwakeStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectAbsorbLiquidOoze::
|
|
call BattleScript_AbilityPopUpTarget
|
|
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_EffectAbsorbRet
|
|
goto BattleScript_EffectAbsorb
|
|
|
|
BattleScript_EffectAbsorb::
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
printfromtable gAbsorbDrainStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
BattleScript_EffectAbsorbRet:
|
|
return
|
|
|
|
BattleScript_Explosion::
|
|
tryexplosion
|
|
setatkhptozero
|
|
return
|
|
|
|
BattleScript_FaintAttackerForExplosion::
|
|
tryfaintmon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_MaxHp50Recoil::
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
tryfaintmon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_EffectDreamEater::
|
|
attackcanceler
|
|
.if B_DREAM_EATER_SUBSTITUTE < GEN_5
|
|
jumpifsubstituteblocks BattleScript_DoesntAffectTargetAtkString
|
|
.endif
|
|
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_HitFromAccCheck
|
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_HitFromAccCheck
|
|
goto BattleScript_DoesntAffectTargetAtkString
|
|
|
|
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::
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_StatUpEnd
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_StatUpAttackAnim
|
|
pause B_WAIT_TIME_SHORT
|
|
setmoveresultflags MOVE_RESULT_MISSED @ TODO: Is this even necessary?
|
|
goto BattleScript_StatUpPrintString
|
|
BattleScript_StatUpAttackAnim::
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_StatUpDoAnim::
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_StatUpEnd
|
|
BattleScript_StatUpPrintString::
|
|
saveattacker
|
|
copybyte gBattlerAttacker, gBattlerTarget
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
restoreattacker
|
|
BattleScript_StatUpEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_StatUp::
|
|
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
|
|
goto BattleScript_EffectStatDown
|
|
|
|
BattleScript_EffectStatDown:
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
BattleScript_EffectStatDownFromAccCheck:
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
BattleScript_EffectStatDownFromStatBuffChange:
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_StatDownEnd
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_StatDownDoAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_StatDownEnd
|
|
pause B_WAIT_TIME_SHORT
|
|
setmoveresultflags MOVE_RESULT_MISSED @ TODO: Is this even necessary?
|
|
goto BattleScript_StatDownPrintString
|
|
BattleScript_StatDownDoAnim::
|
|
attackanimation
|
|
waitanimation
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_StatDownEnd
|
|
bicword gHitMarker, HITMARKER_DISABLE_ANIMATION
|
|
BattleScript_StatDownPrintString::
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_StatDownEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MirrorArmorReflect::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
jumpifvolatile BS_ATTACKER, VOLATILE_SUBSTITUTE, BattleScript_MirrorArmorDoesntAffect
|
|
BattleScript_MirrorArmorReflectStatLoss:
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_MIRROR_ARMOR | STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_MirrorArmorReflectEnd
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_MirrorArmorReflectPrintString
|
|
goto BattleScript_MirrorArmorReflectWontFall
|
|
BattleScript_MirrorArmorReflectPrintString:
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_MirrorArmorReflectEnd:
|
|
return
|
|
|
|
BattleScript_MirrorArmorDoesntAffect:
|
|
swapattackerwithtarget
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
swapattackerwithtarget
|
|
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
|
|
call BattleScript_MirrorArmorReflectStatLoss
|
|
goto BattleScript_StickyWebOnSwitchInEnd
|
|
|
|
BattleScript_StatDown::
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectHaze::
|
|
attackcanceler
|
|
attackanimation
|
|
waitanimation
|
|
normalisebuffs
|
|
printstring STRINGID_STATCHANGESGONE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectBide::
|
|
attackcanceler
|
|
attackanimation
|
|
waitanimation
|
|
setbide
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRoar::
|
|
attackcanceler
|
|
jumpifroarfails BattleScript_ButItFailed
|
|
jumpifcommanderactive BattleScript_ButItFailed
|
|
jumpifability BS_TARGET, ABILITY_GUARD_DOG, BattleScript_ButItFailed
|
|
jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
|
|
jumpifvolatile BS_TARGET, VOLATILE_ROOT, BattleScript_PrintMonIsRooted
|
|
jumpiftargetdynamaxed BattleScript_RoarBlockedByDynamax
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
|
|
forcerandomswitch BattleScript_ButItFailed
|
|
|
|
BattleScript_RoarBlockedByDynamax:
|
|
printstring STRINGID_MOVEBLOCKEDBYDYNAMAX
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MultiHitPrintStrings::
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 6
|
|
printstring STRINGID_HITXTIMES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ScaleShot::
|
|
call BattleScript_MultiHitPrintStrings
|
|
goto BattleScript_DefDownSpeedUp
|
|
|
|
BattleScript_EffectConversion::
|
|
attackcanceler
|
|
tryconversiontypechange BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNCHANGEDTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRestoreHp::
|
|
attackcanceler
|
|
tryhealhalfhealth BS_ATTACKER, BattleScript_AlreadyAtFullHp
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_RestoreHp:
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyPoisoned::
|
|
setalreadystatusedmoveattempt
|
|
pause B_WAIT_TIME_LONG
|
|
printstring STRINGID_PKMNALREADYPOISONED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_ImmunityProtected::
|
|
call BattleScript_AbilityPopUp
|
|
goto BattleScript_DoesntAffectTargetAtkString
|
|
|
|
BattleScript_EffectAuroraVeil::
|
|
attackcanceler
|
|
setauroraveil
|
|
goto BattleScript_PrintReflectLightScreenSafeguardString
|
|
|
|
BattleScript_EffectLightScreen::
|
|
attackcanceler
|
|
setlightscreen
|
|
goto BattleScript_PrintReflectLightScreenSafeguardString
|
|
|
|
BattleScript_EffectRest::
|
|
attackcanceler
|
|
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_RestIsAlreadyAsleep
|
|
jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_RestIsAlreadyAsleep
|
|
jumpifuproarwakes BattleScript_RestCantSleep
|
|
jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_InsomniaProtects
|
|
jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_InsomniaProtects
|
|
jumpifability BS_ATTACKER, ABILITY_PURIFYING_SALT, BattleScript_InsomniaProtects
|
|
jumpifabilitypreventsrest BS_TARGET, BattleScript_AbilityPreventsRest
|
|
trysetrest
|
|
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
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNALREADYASLEEP2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AbilityPreventsRest::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_BUTITFAILED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_RecoilIfMiss::
|
|
printstring STRINGID_PKMNCRASHED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_RecoilEnd
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
tryfaintmon BS_ATTACKER
|
|
BattleScript_RecoilEnd:
|
|
return
|
|
|
|
BattleScript_EffectMist::
|
|
attackcanceler
|
|
setmist
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gMistUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFocusEnergy::
|
|
attackcanceler
|
|
jumpifvolatile BS_ATTACKER, VOLATILE_DRAGON_CHEER, BattleScript_ButItFailed
|
|
jumpifvolatile BS_ATTACKER, VOLATILE_FOCUS_ENERGY, BattleScript_ButItFailed
|
|
setfocusenergy BS_TARGET
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gFocusEnergyUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectConfuse::
|
|
attackcanceler
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifvolatile BS_TARGET, VOLATILE_CONFUSION, BattleScript_AlreadyConfused
|
|
jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents
|
|
accuracycheck BattleScript_ButItFailed
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
attackanimation
|
|
waitanimation
|
|
seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_CONFUSION
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyConfused::
|
|
setalreadystatusedmoveattempt
|
|
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
|
|
trytoclearprimalweather
|
|
call BattleScript_TryRevertWeatherform
|
|
flushtextbox
|
|
tryendneutralizinggas
|
|
flushtextbox
|
|
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
|
|
setreflect
|
|
BattleScript_PrintReflectLightScreenSafeguardString::
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gReflectLightScreenSafeguardStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveEffectAuroraVeil::
|
|
printfromtable gReflectLightScreenSafeguardStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_VoltAbsorbHeal:
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
tryhealquarterhealth BS_TARGET, BattleScript_MonMadeMoveUseless @ Check if max hp
|
|
goto BattleScript_MoveHPDrain
|
|
|
|
BattleScript_AlreadyParalyzed::
|
|
setalreadystatusedmoveattempt
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNISALREADYPARALYZED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGeomancy::
|
|
attackcanceler
|
|
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
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_GeomancyTrySpDef, BIT_SPDEF | BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_GeomancyTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GeomancyTrySpDef::
|
|
setstatchanger STAT_SPDEF, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_GeomancyTrySpeed, BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_GeomancyTrySpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GeomancyTrySpeed::
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_GeomancyEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_GeomancyEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GeomancyEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_PowerHerbActivation::
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_POWERHERB
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_TwoTurnMoveCharging::
|
|
waitmessage B_WAIT_TIME_LONG
|
|
twoturnmoveschargestringandanimation
|
|
setadditionaleffects @ only onChargeTurnOnly effects will work here
|
|
return
|
|
|
|
BattleScript_SkyDropCharging::
|
|
call BattleScript_TwoTurnMoveCharging
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_TwoTurnMovesSecondTurnRet:
|
|
setbyte sB_ANIM_TURN, 1
|
|
setbyte sB_ANIM_TARGETS_HIT, 0
|
|
clearvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS
|
|
clearsemiinvulnerablebit @ only for moves with EFFECT_SEMI_INVULNERABLE/EFFECT_SKY_DROP
|
|
return
|
|
|
|
BattleScript_SkyDropTargetTooHeavy::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_TARGETTOOHEAVY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SkyDropFlyingType::
|
|
makevisible BS_TARGET
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
makevisible BS_ATTACKER
|
|
jumpifvolatile BS_TARGET, VOLATILE_CONFUSION, BattleScript_SkyDropFlyingAlreadyConfused
|
|
jumpifvolatile BS_TARGET, VOLATILE_RAMPAGE_TURNS, BattleScript_SkyDropFlyingConfuseLock
|
|
return
|
|
|
|
BattleScript_SkyDropFlyingConfuseLock:
|
|
seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_CONFUSION
|
|
BattleScript_SkyDropFlyingAlreadyConfused:
|
|
clearvolatile BS_TARGET, VOLATILE_RAMPAGE_TURNS
|
|
jumpifvolatile BS_TARGET, VOLATILE_CONFUSION, BattleScript_SkyDropFlyingAlreadyConfusedRet
|
|
setbyte BS_ATTACKER, BS_TARGET
|
|
call BattleScript_ThrashConfusesRet
|
|
BattleScript_SkyDropFlyingAlreadyConfusedRet:
|
|
return
|
|
|
|
BattleScript_SkyDropNoTarget::
|
|
pause B_WAIT_TIME_SHORT
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
makevisible BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSubstitute::
|
|
attackcanceler
|
|
waitstate
|
|
jumpifvolatile BS_ATTACKER, VOLATILE_SUBSTITUTE, BattleScript_AlreadyHasSubstitute
|
|
setsubstitute
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SUBSTITUTE_FAILED, BattleScript_SubstituteString
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
BattleScript_SubstituteString::
|
|
pause B_WAIT_TIME_SHORT
|
|
printfromtable gSubstituteUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_AlreadyHasSubstitute::
|
|
setalreadystatusedmoveattempt
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNHASSUBSTITUTE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveUsedMustRecharge::
|
|
printstring STRINGID_PKMNMUSTRECHARGE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMimic::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
mimicattackcopy BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNLEARNEDMOVE2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectLeechSeed::
|
|
attackcanceler
|
|
pause B_WAIT_TIME_SHORT
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
accuracycheck BattleScript_DoLeechSeed
|
|
BattleScript_DoLeechSeed::
|
|
setseeded
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gLeechSeedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDoNothing::
|
|
attackcanceler
|
|
attackanimation
|
|
waitanimation
|
|
incrementgamestat GAME_STAT_USED_SPLASH
|
|
printstring STRINGID_BUTNOTHINGHAPPENED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHoldHands::
|
|
attackcanceler
|
|
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCelebrate::
|
|
attackcanceler
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_CELEBRATEMESSAGE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHappyHour::
|
|
attackcanceler
|
|
attackanimation
|
|
waitanimation
|
|
seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_HAPPY_HOUR
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDisable::
|
|
attackcanceler
|
|
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
|
|
accuracycheck BattleScript_ButItFailed
|
|
disablelastusedattack BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNMOVEWASDISABLED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectEncore::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
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
|
|
painsplitdmgcalc BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_SHAREDPAIN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectConversion2::
|
|
attackcanceler
|
|
settypetorandomresistance BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNCHANGEDTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectLockOn::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
accuracycheck BattleScript_ButItFailed
|
|
setalwayshitflag
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNTOOKAIM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSketch::
|
|
attackcanceler
|
|
copymovepermanently BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSKETCHEDMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDestinyBond::
|
|
attackcanceler
|
|
setvolatile BS_ATTACKER, VOLATILE_DESTINY_BOND, 2
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNTRYINGTOTAKEFOE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveEffectEerieSpell::
|
|
printstring STRINGID_PKMNREDUCEDPP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectSpite::
|
|
attackcanceler
|
|
accuracycheck BattleScript_ButItFailed
|
|
tryspiteppreduce BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNREDUCEDPP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
@ TODO: Simplfy script
|
|
BattleScript_EffectHealBell::
|
|
attackcanceler
|
|
attackanimation
|
|
waitanimation
|
|
healpartystatus
|
|
waitstate
|
|
printfromtable gPartyStatusHealStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifblockedbysoundproof BS_ATTACKER_PARTNER, BattleScript_HealBellSoundproof
|
|
goto BattleScript_PartyHealEnd
|
|
BattleScript_HealBellSoundproof::
|
|
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_PKMNSXBLOCKSY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_PartyHealEnd::
|
|
updatestatusicon BS_ATTACKER_WITH_PARTNER
|
|
waitstate
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveEffectAromatherapy::
|
|
healpartystatus
|
|
waitstate
|
|
printfromtable gPartyStatusHealStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_ATTACKER_WITH_PARTNER
|
|
waitstate
|
|
return
|
|
|
|
BattleScript_EffectMeanLook::
|
|
attackcanceler
|
|
jumpifvolatile BS_TARGET, VOLATILE_ESCAPE_PREVENTION, BattleScript_ButItFailed
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
jumpifgenconfiglowerthan CONFIG_B_GHOSTS_ESCAPE, GEN_6, BattleScript_EffectMeanLookGen5
|
|
jumpiftype BS_TARGET, TYPE_GHOST, BattleScript_ButItFailed
|
|
BattleScript_EffectMeanLookGen5:
|
|
attackanimation
|
|
waitanimation
|
|
seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_PREVENT_ESCAPE
|
|
printstring STRINGID_TARGETCANTESCAPENOW
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectNightmare::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
jumpifvolatile BS_TARGET, VOLATILE_NIGHTMARE, BattleScript_ButItFailed
|
|
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_NightmareWorked
|
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_NightmareWorked
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_NightmareWorked::
|
|
attackanimation
|
|
waitanimation
|
|
seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_NIGHTMARE
|
|
printstring STRINGID_PKMNFELLINTONIGHTMARE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMinimize::
|
|
attackcanceler
|
|
setvolatile BS_ATTACKER, VOLATILE_MINIMIZE
|
|
jumpifgenconfiglowerthan CONFIG_B_MINIMIZE_EVASION, GEN_5, BattleScript_EffectMinimizeGen4
|
|
setstatchanger STAT_EVASION, 2, FALSE
|
|
goto BattleScript_EffectStatUpAfterAtkCanceler
|
|
BattleScript_EffectMinimizeGen4:
|
|
setstatchanger STAT_EVASION, 1, FALSE
|
|
goto BattleScript_EffectStatUpAfterAtkCanceler
|
|
|
|
BattleScript_EffectCurse::
|
|
jumpiftype BS_ATTACKER, TYPE_GHOST, BattleScript_GhostCurse
|
|
attackcanceler
|
|
jumpiftype BS_ATTACKER, TYPE_GHOST, BattleScript_DoGhostCurse
|
|
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 BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CurseTryAttack
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CurseTryAttack::
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CurseTryDefense, BIT_DEF
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CurseTryDefense::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, 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
|
|
BattleScript_DoGhostCurse::
|
|
attackcanceler
|
|
cursetarget BattleScript_ButItFailed
|
|
setbyte sB_ANIM_TURN, 0
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_PKMNLAIDCURSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectProtect::
|
|
BattleScript_EffectEndure::
|
|
attackcanceler
|
|
setprotectlike
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gProtectLikeUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSpikes::
|
|
attackcanceler
|
|
trysetspikes BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_SPIKESSCATTERED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectForesight::
|
|
attackcanceler
|
|
accuracycheck BattleScript_ButItFailed
|
|
jumpifgenconfiglowerthan CONFIG_B_FORESIGHT_FAIL, GEN_3, BattleScript_ForesightFailCheck
|
|
jumpifgenconfiglowerthan CONFIG_B_FORESIGHT_FAIL, GEN_5, BattleScript_ForesightSet
|
|
BattleScript_ForesightFailCheck:
|
|
jumpifvolatile BS_TARGET, VOLATILE_FORESIGHT, BattleScript_ButItFailed
|
|
BattleScript_ForesightSet:
|
|
setvolatile BS_TARGET, VOLATILE_FORESIGHT
|
|
BattleScript_IdentifiedFoe:
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNIDENTIFIED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPerishSong::
|
|
attackcanceler
|
|
trysetperishsong BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_FAINTINTHREE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSwagger::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_MakeMoveMissed
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
jumpifconfusedandstatmaxed STAT_ATK, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_SwaggerTryConfuse
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_SwaggerTryConfuse
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_SwaggerTryConfuse:
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_CONFUSION
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_TryDestinyKnotTarget:
|
|
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_DESTINY_KNOT, BattleScript_TryDestinyKnotTargetRet
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
printstring STRINGID_DESTINYKNOTACTIVATES
|
|
tryinfatuating BattleScript_TryDestinyKnotTargetFailed
|
|
volatileanimation BS_TARGET, VOLATILE_INFATUATION
|
|
waitanimation
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_TryDestinyKnotTargetRet
|
|
BattleScript_TryDestinyKnotTargetFailed:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_BUTITFAILED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_TryDestinyKnotTargetRet:
|
|
return
|
|
|
|
BattleScript_TryDestinyKnotAttacker:
|
|
jumpifnoholdeffect BS_TARGET, HOLD_EFFECT_DESTINY_KNOT, BattleScript_TryDestinyKnotTargetRet
|
|
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
swapattackerwithtarget
|
|
printstring STRINGID_DESTINYKNOTACTIVATES
|
|
tryinfatuating BattleScript_SwapTargetAttackerButItFailed
|
|
swapattackerwithtarget
|
|
volatileanimation BS_ATTACKER, VOLATILE_INFATUATION
|
|
waitanimation
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectAttract::
|
|
attackcanceler
|
|
accuracycheck BattleScript_ButItFailed
|
|
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_MoveMissedPause
|
|
typecalc
|
|
presentdamagecalculation
|
|
|
|
BattleScript_EffectSafeguard::
|
|
attackcanceler
|
|
setsafeguard
|
|
goto BattleScript_PrintReflectLightScreenSafeguardString
|
|
|
|
BattleScript_EffectBatonPass::
|
|
attackcanceler
|
|
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
|
|
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
openpartyscreen BS_ATTACKER, BattleScript_ButItFailed
|
|
waitstate
|
|
returntoball BS_ATTACKER, FALSE
|
|
switchoutabilities BS_ATTACKER
|
|
switchhandleorder BS_ATTACKER, 2
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
trytoclearprimalweather
|
|
flushtextbox
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_ATTACKER, FALSE, TRUE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
switchinevents
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMorningSun::
|
|
BattleScript_EffectSynthesis::
|
|
BattleScript_EffectMoonlight::
|
|
BattleScript_EffectShoreUp::
|
|
attackcanceler
|
|
recoverbasedonsunlight BattleScript_AlreadyAtFullHp
|
|
goto BattleScript_PresentHealTarget
|
|
|
|
BattleScript_EffectWeather::
|
|
attackcanceler
|
|
BattleScript_EffectWeatherSetWeather:
|
|
setfieldweather
|
|
attackanimation
|
|
waitanimation
|
|
call BattleScript_MoveWeatherChangeRet
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_ChillyReceptionMessage::
|
|
printstring STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectWeatherAndSwitch::
|
|
attackcanceler
|
|
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_EffectWeatherSetWeather
|
|
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_EffectWeatherSetWeather
|
|
setfieldweather
|
|
clearmoveresultflags MOVE_RESULT_NO_EFFECT
|
|
attackanimation
|
|
waitanimation
|
|
call BattleScript_MoveWeatherChangeRet
|
|
moveendall
|
|
goto BattleScript_MoveSwitch
|
|
|
|
BattleScript_MoveWeatherChangeRet::
|
|
printfromtable gMoveWeatherChangeStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_ActivateWeatherAbilities
|
|
return
|
|
|
|
BattleScript_FailOnPrimalWeather::
|
|
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
|
|
return
|
|
|
|
BattleScript_ExtremelyHarshSunlightWasNotLessened:
|
|
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
|
|
return
|
|
|
|
BattleScript_MysteriousAirCurrentBlowsOn:
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_MYSTERIOUSAIRCURRENTBLOWSON
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_BlockedByPrimalWeather::
|
|
call BattleScript_AbilityPopUp
|
|
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
|
|
return
|
|
|
|
BattleScript_EffectBellyDrum::
|
|
attackcanceler
|
|
jumpifstatignorecontrary BS_ATTACKER, CMP_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_ButItFailed
|
|
halvehp BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
setstatchanger STAT_ATK, MAX_STAT_STAGE, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd
|
|
printstring STRINGID_PKMNCUTHPMAXEDATTACK
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectPsychUp::
|
|
attackcanceler
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
copyfoestats
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNCOPIEDSTATCHANGES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFutureSight::
|
|
attackcanceler
|
|
setfutureattack
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gFutureMoveUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTeleport::
|
|
jumpifgenconfiglowerthan CONFIG_B_TELEPORT_BEHAVIOR, GEN_8, BattleScript_EffectTeleportGen7
|
|
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_EffectBatonPass
|
|
jumpifside BS_ATTACKER, B_SIDE_PLAYER, BattleScript_EffectBatonPass
|
|
goto BattleScript_DoEffectTeleport
|
|
BattleScript_EffectTeleportGen7::
|
|
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_FailedFromAtkCanceler
|
|
BattleScript_DoEffectTeleport::
|
|
attackcanceler
|
|
isrunningimpossible
|
|
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
|
|
setteleportoutcome BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BeatUpAttackMessage::
|
|
printstring STRINGID_PKMNATTACK
|
|
return
|
|
|
|
BattleScript_EffectDefenseCurl::
|
|
attackcanceler
|
|
setvolatile BS_TARGET, VOLATILE_DEFENSE_CURL
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_DefenseCurlDoStatUpAnim
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_StatUpPrintString
|
|
attackanimation
|
|
waitanimation
|
|
BattleScript_DefenseCurlDoStatUpAnim::
|
|
goto BattleScript_StatUpDoAnim
|
|
|
|
BattleScript_EffectSoftboiled::
|
|
attackcanceler
|
|
tryhealhalfhealth BS_TARGET, BattleScript_AlreadyAtFullHp
|
|
BattleScript_PresentHealTarget::
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
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_FailedFromAtkCanceler::
|
|
attackcanceler
|
|
BattleScript_ButItFailed::
|
|
pause B_WAIT_TIME_SHORT
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_RestoreAttackerButItFailed:
|
|
restoreattacker
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_RestoreTargetButItFailed:
|
|
restoretarget
|
|
goto BattleScript_ButItFailed
|
|
BattleScript_SwapTargetAttackerButItFailed:
|
|
swapattackerwithtarget
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_NotAffected::
|
|
pause B_WAIT_TIME_SHORT
|
|
setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_NotAffectedAbilityPopUp::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUpTarget
|
|
setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectStockpile::
|
|
attackcanceler
|
|
stockpile
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSTOCKPILED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
.if B_STOCKPILE_RAISES_DEFS < GEN_4
|
|
goto BattleScript_MoveEnd
|
|
.endif
|
|
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_EffectStockpileDef
|
|
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_MoveEnd
|
|
BattleScript_EffectStockpileDef:
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectStockpileSpDef, BIT_SPDEF
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectStockpileSpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectStockpileSpDef::
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_MoveEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveEffectStockpileWoreOff::
|
|
dostockpilestatchangeswearoff BS_ATTACKER, BattleScript_StockpileStatChangeDown
|
|
printstring STRINGID_STOCKPILEDEFFECTWOREOFF
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
return
|
|
|
|
BattleScript_StockpileStatChangeDown:
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN, BattleScript_StockpileStatChangeDown_Ret
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_StockpileStatChangeDown_Ret:
|
|
return
|
|
|
|
BattleScript_EffectSwallow::
|
|
attackcanceler
|
|
stockpiletohpheal BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTorment::
|
|
attackcanceler
|
|
accuracycheck BattleScript_ButItFailed
|
|
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_MoveMissedPause
|
|
jumpifconfusedandstatmaxed STAT_SPATK, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_FlatterTryConfuse
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_FlatterTryConfuse
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_FlatterTryConfuse::
|
|
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
|
|
jumpifsafeguard BattleScript_SafeguardProtected
|
|
seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_CONFUSION
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDarkVoid::
|
|
.if B_DARK_VOID_FAIL >= GEN_7
|
|
jumpifspecies SPECIES_DARKRAI, BattleScript_EffectNonVolatileStatus
|
|
goto BattleScript_PokemonCantUseTheMove
|
|
.endif
|
|
BattleScript_EffectNonVolatileStatus::
|
|
attackcanceler
|
|
trynonvolatilestatus
|
|
accuracycheck BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
setnonvolatilestatus TRIGGER_ON_MOVE
|
|
clearmoveresultflags MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AlreadyBurned::
|
|
setalreadystatusedmoveattempt
|
|
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
|
|
trymemento BattleScript_ButItFailed
|
|
setatkhptozero
|
|
attackanimation
|
|
waitanimation
|
|
jumpifsubstituteblocks BattleScript_EffectMementoPrintNoEffect
|
|
setstatchanger STAT_ATK, 2, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMementoTrySpAtk, BIT_SPATK
|
|
@ Greater than B_MSG_DEFENDER_STAT_CHANGED is checking if the stat cannot decrease
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, BattleScript_EffectMementoTrySpAtk
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectMementoTrySpAtk:
|
|
setstatchanger STAT_SPATK, 2, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMementoTryFaint
|
|
@ Greater than B_MSG_DEFENDER_STAT_CHANGED is checking if the stat cannot decrease
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, 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:
|
|
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_FocusPunchLostFocus::
|
|
printstring STRINGID_PKMNLOSTFOCUS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectFollowMe::
|
|
attackcanceler
|
|
setforcedtarget
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNCENTERATTENTION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCharge::
|
|
attackcanceler
|
|
setvolatile BS_ATTACKER, VOLATILE_CHARGE_TIMER, 2
|
|
attackanimation
|
|
waitanimation
|
|
.if B_CHARGE_SPDEF_RAISE >= GEN_5
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectChargeString
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectChargeString
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectChargeString:
|
|
.endif
|
|
printstring STRINGID_PKMNCHARGINGPOWER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTaunt::
|
|
attackcanceler
|
|
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
|
|
accuracycheck BattleScript_ButItFailed
|
|
settaunt BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNFELLFORTAUNT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectHelpingHand::
|
|
attackcanceler
|
|
trysethelpinghand BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNREADYTOHELP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTrick::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
accuracycheck BattleScript_ButItFailed
|
|
tryswapitems BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSWITCHEDITEMS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
printfromtable gItemSwapStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryactivateabilitywithabilityshield BS_TARGET, TRUE
|
|
tryactivateitem BS_ATTACKER, ACTIVATION_ON_USABLE_AGAIN
|
|
tryactivateitem BS_TARGET, ACTIVATION_ON_USABLE_AGAIN
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRolePlay::
|
|
attackcanceler
|
|
trycopyability BS_ATTACKER, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUpOverwriteThenNormal
|
|
recordability BS_ATTACKER
|
|
printstring STRINGID_PKMNCOPIEDFOE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectWish::
|
|
attackcanceler
|
|
trywish BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectIngrain::
|
|
attackcanceler
|
|
trysetvolatile BS_ATTACKER, VOLATILE_ROOT, BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNPLANTEDROOTS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectMagicCoat::
|
|
attackcanceler
|
|
trysetmagiccoat BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSHROUDEDITSELF
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRecycle::
|
|
attackcanceler
|
|
tryrecycleitem BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_XFOUNDONEY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BreakScreens::
|
|
playmoveanimation MOVE_NONE @use current move
|
|
waitanimation
|
|
printstring STRINGID_THEWALLSHATTERED
|
|
return
|
|
|
|
BattleScript_StealStats::
|
|
playmoveanimation MOVE_SPECTRAL_THIEF
|
|
waitanimation
|
|
printstring STRINGID_SPECTRALTHIEFSTEAL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
spectralthiefprintstats
|
|
flushtextbox
|
|
return
|
|
|
|
BattleScript_EffectYawn::
|
|
attackcanceler
|
|
trynonvolatilestatus
|
|
setyawn BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNWASMADEDROWSY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveEffectYawnSide::
|
|
printstring STRINGID_PKMNWASMADEDROWSY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_PrintAbilityMadeIneffective::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXMADEITINEFFECTIVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSkillSwap::
|
|
attackcanceler
|
|
tryswapabilities BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
jumpiftargetally BattleScript_EffectSkillSwap_AfterAbilityPopUp
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUpOverwriteThenNormal
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
copyhword sABILITY_OVERWRITE, gLastUsedAbility
|
|
call BattleScript_AbilityPopUpOverwriteThenNormal
|
|
BattleScript_EffectSkillSwap_AfterAbilityPopUp:
|
|
recordability BS_ATTACKER
|
|
recordability BS_TARGET
|
|
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
|
|
tryimprison BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSEALEDOPPONENTMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectRefresh::
|
|
attackcanceler
|
|
curestatuswithmove BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNSTATUSNORMAL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectGrudge::
|
|
attackcanceler
|
|
jumpifvolatile BS_ATTACKER, VOLATILE_GRUDGE, BattleScript_ButItFailed
|
|
setvolatile BS_ATTACKER, VOLATILE_GRUDGE, 2
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNWANTSGRUDGE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectSnatch::
|
|
attackcanceler
|
|
trysetsnatch BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNWAITSFORTARGET
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectStruggle::
|
|
jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit
|
|
incrementgamestat GAME_STAT_USED_STRUGGLE
|
|
goto BattleScript_EffectHit
|
|
|
|
BattleScript_EffectMudSport::
|
|
BattleScript_EffectWaterSport::
|
|
attackcanceler
|
|
settypebasedhalvers BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printfromtable gSportsUsedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectTickle::
|
|
attackcanceler
|
|
jumpifsubstituteblocks BattleScript_ButItFailed
|
|
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
|
|
attackanimation
|
|
waitanimation
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_TickleTryLowerDef, BIT_DEF
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_TickleTryLowerDef
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_TickleTryLowerDef::
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_TickleEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_TickleEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_TickleEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_CantLowerMultipleStats::
|
|
pause B_WAIT_TIME_SHORT
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
printstring STRINGID_STATSWONTDECREASE2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCosmicPower::
|
|
attackcanceler
|
|
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
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CosmicPowerTrySpDef, BIT_SPDEF
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CosmicPowerTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CosmicPowerTrySpDef::
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CosmicPowerEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CosmicPowerEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CosmicPowerEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectBulkUp::
|
|
attackcanceler
|
|
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
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_BulkUpTryDef, BIT_DEF
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_BulkUpTryDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_BulkUpTryDef::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_BulkUpEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_BulkUpEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_BulkUpEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCalmMind::
|
|
attackcanceler
|
|
BattleScript_CalmMindTryToRaiseStats::
|
|
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
|
|
BattleScript_CalmMindStatRaise::
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CalmMindTrySpDef, BIT_SPDEF
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CalmMindTrySpDef
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CalmMindTrySpDef::
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CalmMindEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CalmMindEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CalmMindEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_CantRaiseMultipleStats::
|
|
pause B_WAIT_TIME_SHORT
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
printstring STRINGID_STATSWONTINCREASE2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectDragonDance::
|
|
attackcanceler
|
|
BattleScript_EffectDragonDanceFromStatUp::
|
|
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
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_DragonDanceTrySpeed, BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DragonDanceTrySpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DragonDanceTrySpeed::
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_DragonDanceEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DragonDanceEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DragonDanceEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_EffectCamouflage::
|
|
attackcanceler
|
|
settypetoenvironment BattleScript_ButItFailed
|
|
attackanimation
|
|
waitanimation
|
|
printstring STRINGID_PKMNCHANGEDTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_FaintBattler::
|
|
tryillusionoff BS_FAINTED
|
|
undodynamax BS_FAINTED
|
|
playfaintcry BS_FAINTED
|
|
pause B_WAIT_TIME_LONG
|
|
dofaintanimation BS_FAINTED
|
|
copybyte sBATTLER, gBattlerFainted @ for message
|
|
printstring STRINGID_BATTLERFAINTED
|
|
cleareffectsonfaint BS_FAINTED
|
|
trytoclearprimalweather
|
|
call BattleScript_TryRevertWeatherform
|
|
flushtextbox
|
|
waitanimation
|
|
tryactivatereceiver BS_FAINTED
|
|
tryactivatesoulheart
|
|
trytrainerslidemsgfirstoff BS_FAINTED
|
|
return
|
|
|
|
BattleScript_GiveExp::
|
|
setbyte sGIVEEXP_STATE, 0
|
|
getexp BS_TARGET
|
|
end2
|
|
|
|
BattleScript_HandleFaintedMon::
|
|
setbyte sSHIFT_SWITCHED, 0
|
|
checkteamslost BattleScript_HandleFaintedMonMultiple
|
|
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
|
|
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
|
|
flushtextbox
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_ATTACKER
|
|
switchinanim BS_ATTACKER, FALSE, FALSE
|
|
waitstate
|
|
setbyte sSHIFT_SWITCHED, 1
|
|
BattleScript_FaintedMonSendOutNew:
|
|
drawpartystatussummary BS_FAINTED
|
|
getswitchedmondata BS_FAINTED
|
|
switchindataupdate BS_FAINTED
|
|
hpthresholds BS_FAINTED
|
|
trytoclearprimalweather
|
|
flushtextbox
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_FAINTED
|
|
switchinanim BS_FAINTED, FALSE, FALSE
|
|
waitstate
|
|
resetplayerfainted
|
|
trytrainerslidemsglaston BS_FAINTED
|
|
jumpifbytenotequal sSHIFT_SWITCHED, sZero, BattleScript_FaintedMonShiftSwitched
|
|
BattleScript_FaintedMonSendOutNewEnd:
|
|
switchineffects BS_FAINTED
|
|
switchinevents
|
|
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonEnd
|
|
cancelallactions
|
|
BattleScript_FaintedMonEnd::
|
|
end2
|
|
BattleScript_FaintedMonShiftSwitched:
|
|
copybyte sSAVED_BATTLER, gBattlerTarget
|
|
switchineffects BS_ATTACKER
|
|
switchinevents
|
|
resetsentmonsvalue
|
|
copybyte gBattlerTarget, sSAVED_BATTLER
|
|
goto BattleScript_FaintedMonSendOutNewEnd
|
|
|
|
BattleScript_HandleFaintedMonMultiple::
|
|
openpartyscreen BS_FAINTED_MULTIPLE_1, BattleScript_HandleFaintedMonMultipleStart
|
|
BattleScript_HandleFaintedMonMultipleStart::
|
|
switchhandleorder BS_FAINTED, 0
|
|
openpartyscreen BS_FAINTED_MULTIPLE_2, BattleScript_HandleFaintedMonMultipleEnd
|
|
switchhandleorder BS_FAINTED, 0
|
|
BattleScript_HandleFaintedMonLoop::
|
|
switchhandleorder BS_FAINTED, 3
|
|
drawpartystatussummary BS_FAINTED
|
|
getswitchedmondata BS_FAINTED
|
|
switchindataupdate BS_FAINTED
|
|
hpthresholds BS_FAINTED
|
|
trytoclearprimalweather
|
|
flushtextbox
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_FAINTED
|
|
switchinanim BS_FAINTED, FALSE, FALSE
|
|
waitstate
|
|
trytrainerslidemsglaston BS_FAINTED
|
|
switchineffects BS_FAINTED_MULTIPLE_1
|
|
jumpifbytenotequal gBattlerFainted, gBattlersCount, BattleScript_HandleFaintedMonLoop
|
|
BattleScript_HandleFaintedMonMultipleEnd::
|
|
switchinevents
|
|
end2
|
|
|
|
BattleScript_FirstTurnSwitchInEvents::
|
|
switchinevents
|
|
end3
|
|
|
|
BattleScript_LocalTrainerBattleWon::
|
|
jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalTwoTrainersDefeated
|
|
printstring STRINGID_PLAYERDEFEATEDTRAINER1
|
|
goto BattleScript_LocalBattleWonLoseTexts
|
|
BattleScript_LocalTwoTrainersDefeated::
|
|
printstring STRINGID_TWOENEMIESDEFEATED
|
|
BattleScript_LocalBattleWonLoseTexts::
|
|
trainerslidein BS_OPPONENT1
|
|
waitstate
|
|
printstring STRINGID_TRAINER1LOSETEXT
|
|
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleWonReward
|
|
trainerslideout BS_OPPONENT1
|
|
waitstate
|
|
trainerslidein BS_OPPONENT2
|
|
waitstate
|
|
printstring STRINGID_TRAINER2LOSETEXT
|
|
BattleScript_LocalBattleWonReward::
|
|
getmoneyreward
|
|
printstring STRINGID_PLAYERGOTMONEY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_PayDayMoneyAndPickUpItems::
|
|
givepaydaymoney
|
|
pickup
|
|
end2
|
|
|
|
BattleScript_RivalBattleLost::
|
|
jumpifhasnohp BS_ATTACKER, BattleScript_RivalBattleLostSkipMonRecall
|
|
printstring STRINGID_TRAINER1MON1COMEBACK
|
|
waitmessage B_WAIT_TIME_LONG
|
|
returnatktoball
|
|
waitstate
|
|
BattleScript_RivalBattleLostSkipMonRecall::
|
|
trainerslidein BS_ATTACKER
|
|
waitstate
|
|
printstring STRINGID_TRAINER1WINTEXT
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_LocalBattleLostPrintWhiteOut
|
|
end2
|
|
|
|
BattleScript_LocalBattleLost::
|
|
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, gTrainerBattleParameter + 2, TRAINER_SECRET_BASE, BattleScript_LocalBattleLostEnd
|
|
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_RivalBattleLost
|
|
jumpifnowhiteout BattleScript_LocalBattleLostEnd_
|
|
jumpifbattletype BATTLE_TYPE_INGAME_PARTNER, BattleScript_LocalBattleLostPrintWhiteOut
|
|
BattleScript_LocalBattleLostPrintWhiteOut::
|
|
getmoneyreward
|
|
printstring STRINGID_PLAYERWHITEOUT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
.if B_WHITEOUT_MONEY >= GEN_4
|
|
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostEnd
|
|
printstring STRINGID_PLAYERWHITEOUT2_WILD
|
|
waitmessage B_WAIT_TIME_LONG
|
|
printstring STRINGID_PLAYERWHITEOUT3
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
BattleScript_LocalBattleLostEnd::
|
|
printstring STRINGID_PLAYERWHITEOUT2_TRAINER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
printstring STRINGID_PLAYERWHITEOUT3
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
.else
|
|
printstring STRINGID_PLAYERWHITEOUT3
|
|
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
|
|
waitstate
|
|
returnopponentmon2toball
|
|
waitstate
|
|
trainerslidein BS_OPPONENT1
|
|
waitstate
|
|
printstring STRINGID_TRAINER1WINTEXT
|
|
jumpifbattletype BATTLE_TYPE_TOWER_LINK_MULTI, BattleScript_LocalBattleLostDoTrainer2WinText
|
|
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_
|
|
BattleScript_LocalBattleLostDoTrainer2WinText::
|
|
trainerslideout BS_OPPONENT1
|
|
waitstate
|
|
trainerslidein BS_OPPONENT2
|
|
waitstate
|
|
printstring STRINGID_TRAINER2WINTEXT
|
|
BattleScript_LocalBattleLostEnd_::
|
|
end2
|
|
|
|
BattleScript_FrontierLinkBattleLost::
|
|
returnopponentmon1toball
|
|
waitstate
|
|
returnopponentmon2toball
|
|
waitstate
|
|
trainerslidein BS_OPPONENT1
|
|
waitstate
|
|
printstring STRINGID_TRAINER1WINTEXT
|
|
trainerslideout BS_OPPONENT1
|
|
waitstate
|
|
trainerslidein BS_OPPONENT2
|
|
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::
|
|
playtrainerdefeatedmusic
|
|
printstring STRINGID_BATTLEEND
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trainerslidein BS_OPPONENT1
|
|
waitstate
|
|
printstring STRINGID_TRAINER1LOSETEXT
|
|
trainerslideout BS_OPPONENT1
|
|
waitstate
|
|
trainerslidein BS_OPPONENT2
|
|
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_OPPONENT1
|
|
waitstate
|
|
printstring STRINGID_TRAINER1LOSETEXT
|
|
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_TryPickUpItems
|
|
trainerslideout BS_OPPONENT1
|
|
waitstate
|
|
trainerslidein BS_OPPONENT2
|
|
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
|
|
jumpifnopursuitswitchdmg BattleScript_DoSwitchOut
|
|
end2
|
|
|
|
BattleScript_DoSwitchOut::
|
|
undodynamax BS_ATTACKER
|
|
waitstate
|
|
returnatktoball
|
|
waitstate
|
|
switchoutabilities BS_ATTACKER
|
|
drawpartystatussummary BS_ATTACKER
|
|
switchhandleorder BS_ATTACKER, 1
|
|
getswitchedmondata BS_ATTACKER
|
|
switchindataupdate BS_ATTACKER
|
|
hpthresholds BS_ATTACKER
|
|
trytoclearprimalweather
|
|
flushtextbox
|
|
printstring STRINGID_SWITCHINMON
|
|
hidepartystatussummary BS_ATTACKER
|
|
switchinanim BS_ATTACKER, FALSE, FALSE
|
|
waitstate
|
|
switchineffects BS_ATTACKER
|
|
switchinevents
|
|
moveendcase MOVEEND_STATUS_IMMUNITY_ABILITIES
|
|
moveendcase MOVEEND_MIRROR_MOVE
|
|
end2
|
|
|
|
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
|
|
.if P_ASK_MOVE_CONFIRMATION == TRUE
|
|
printstring STRINGID_STOPLEARNINGMOVE
|
|
waitstate
|
|
setbyte sLEARNMOVE_STATE, 0
|
|
yesnoboxstoplearningmove BattleScript_AskToLearnMove
|
|
.endif
|
|
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
|
|
goto BattleScript_TryLearnMoveLoop
|
|
BattleScript_LearnMoveReturn::
|
|
return
|
|
|
|
BattleScript_WeatherAbilityActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
jumpifability BS_SCRIPTING, ABILITY_SAND_SPIT, BattleScript_SandSpitActivates
|
|
printfromtable gAbilityWeatherChangeStringId
|
|
BattleScript_WeatherAbilityActivatesContinue:
|
|
waitstate
|
|
playanimation_var BS_BATTLER_0, sB_ANIM_ARG1
|
|
call BattleScript_ActivateWeatherAbilities
|
|
return
|
|
|
|
BattleScript_SandSpitActivates::
|
|
printstring STRINGID_ASANDSTORMKICKEDUP
|
|
goto BattleScript_WeatherAbilityActivatesContinue
|
|
|
|
BattleScript_WeatherContinues::
|
|
printfromtable gWeatherTurnStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation_var BS_ATTACKER, sB_ANIM_ARG1
|
|
setbyte gBattleCommunication, 0
|
|
call BattleScript_ActivateWeatherAbilities
|
|
end2
|
|
|
|
BattleScript_WeatherFaded::
|
|
printfromtable gWeatherEndsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_ActivateWeatherAbilities
|
|
end2
|
|
|
|
BattleScript_DamagingWeather::
|
|
printfromtable gSandStormHailDmgStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
goto BattleScript_DoTurnDmg
|
|
|
|
BattleScript_FogEnded_Ret::
|
|
printstring STRINGID_FOGLIFTED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_ActivateWeatherAbilities
|
|
return
|
|
|
|
BattleScript_IceBodyHeal::
|
|
call BattleScript_AbilityPopUp
|
|
playanimation BS_ATTACKER, B_ANIM_SIMPLE_HEAL
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_ICEBODYHPGAIN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_OverworldStatusStarts::
|
|
printfromtable gStartingStatusStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation_var BS_ATTACKER, sB_ANIM_ARG1
|
|
call BattleScript_OverworldStatusStarts_TryActivations
|
|
end3
|
|
|
|
BattleScript_OverworldStatusStarts_TryActivations:
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SET_TRICK_ROOM, BattleScript_TryRoomServiceLoop
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SET_TAILWIND, BattleScript_TryTailwindAbilitiesLoop
|
|
return
|
|
|
|
BattleScript_OverworldWeatherStarts::
|
|
printfromtable gWeatherStartsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation_var BS_BATTLER_0, sB_ANIM_ARG1
|
|
call BattleScript_ActivateWeatherAbilities
|
|
end3
|
|
|
|
BattleScript_OverworldTerrain::
|
|
printfromtable gTerrainStartsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_BATTLER_0, B_ANIM_RESTORE_BG
|
|
call BattleScript_ActivateTerrainEffects
|
|
end3
|
|
|
|
BattleScript_OverworldHazard::
|
|
printfromtable gStartingStatusStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
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
|
|
setbyte gBattlerTarget, 0
|
|
sortbattlers
|
|
BattleScript_MagicRoomHealingItemsLoop:
|
|
copyarraywithindex gBattlerAttacker, gBattlersBySpeed, gBattlerTarget, 1
|
|
tryactivateitem BS_ATTACKER, ACTIVATION_ON_USABLE_AGAIN
|
|
addbyte gBattlerTarget, 1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_MagicRoomHealingItemsLoop
|
|
end2
|
|
|
|
BattleScript_TerrainEnds_Ret::
|
|
printfromtable gTerrainStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
tryboosterenergy ON_TERRAIN
|
|
return
|
|
|
|
BattleScript_TerrainEnds::
|
|
call BattleScript_TerrainEnds_Ret
|
|
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
|
|
|
|
@ Leech Seed end turn effect
|
|
@ attacker is the victim
|
|
@ target is the leech seeder (recieving HP)
|
|
BattleScript_LeechSeedTurnDrainLiquidOoze::
|
|
call BattleScript_LeechSeedTurnDrain
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
copybyte gBattlerAttacker, gBattlerTarget @ needed to get liquid ooze message correct
|
|
jumpifability BS_TARGET, ABILITY_MAGIC_GUARD, BattleScript_LeechSeedTurnDrainHealBlockEnd2
|
|
goto BattleScript_LeechSeedTurnDrainGainHp
|
|
|
|
BattleScript_LeechSeedTurnDrainHealBlock::
|
|
call BattleScript_LeechSeedTurnDrain
|
|
BattleScript_LeechSeedTurnDrainHealBlockEnd2:
|
|
end2
|
|
|
|
BattleScript_LeechSeedTurnDrainRecovery::
|
|
call BattleScript_LeechSeedTurnDrain
|
|
BattleScript_LeechSeedTurnDrainGainHp:
|
|
healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
printfromtable gLeechSeedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_TARGET
|
|
end2
|
|
|
|
BattleScript_LeechSeedTurnDrain:
|
|
playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
tryfaintmon BS_ATTACKER
|
|
tryactivateitem BS_ATTACKER, ACTIVATION_ON_HP_THRESHOLD
|
|
return
|
|
|
|
BattleScript_BideStoringEnergy::
|
|
printstring STRINGID_PKMNSTORINGENERGY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BideAttack::
|
|
attackcanceler
|
|
clearvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS
|
|
printstring STRINGID_PKMNUNLEASHEDENERGY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
accuracycheck BattleScript_MoveMissed
|
|
typecalc
|
|
clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
|
copybidedmg
|
|
setbyte sB_ANIM_TURN, 1
|
|
attackanimation
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_TARGET
|
|
waitstate
|
|
healthbarupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
|
|
datahpupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BideNoEnergyToAttack::
|
|
attackcanceler
|
|
clearvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS
|
|
printstring STRINGID_PKMNUNLEASHEDENERGY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_ButItFailed
|
|
|
|
BattleScript_RoarSuccessSwitch::
|
|
call BattleScript_RoarSuccessRet
|
|
getswitchedmondata BS_TARGET
|
|
switchindataupdate BS_TARGET
|
|
trytoclearprimalweather
|
|
flushtextbox
|
|
switchinanim BS_TARGET, FALSE, FALSE
|
|
waitstate
|
|
printstring STRINGID_PKMNWASDRAGGEDOUT
|
|
switchineffects BS_TARGET
|
|
switchinevents
|
|
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
|
|
restoreattacker
|
|
setbyte sSWITCH_CASE, B_SWITCH_NORMAL
|
|
return
|
|
|
|
BattleScript_RoarSuccessEndBattle::
|
|
call BattleScript_RoarSuccessRet
|
|
setbyte sSWITCH_CASE, B_SWITCH_NORMAL
|
|
setteleportoutcome 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:
|
|
returntoball BS_TARGET, FALSE
|
|
waitstate
|
|
switchoutabilities BS_TARGET
|
|
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
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_WeaknessPolicySpAtk, BIT_SPATK
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_WeaknessPolicySpAtk
|
|
printstring STRINGID_USINGITEMSTATOFPKMNROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_WeaknessPolicySpAtk:
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_WeaknessPolicyRemoveItem
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_WeaknessPolicyRemoveItem
|
|
printstring STRINGID_USINGITEMSTATOFPKMNROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_WeaknessPolicyRemoveItem:
|
|
removeitem BS_TARGET
|
|
BattleScript_WeaknessPolicyEnd:
|
|
return
|
|
|
|
BattleScript_TargetItemStatRaise::
|
|
copybyte sBATTLER, gBattlerTarget
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ONLY_CHECKING, BattleScript_TargetItemStatRaiseRemoveItemRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_TargetItemStatRaiseRemoveItemRet
|
|
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
statbuffchange BS_TARGET, 0, BattleScript_TargetItemStatRaiseRemoveItemRet
|
|
printstring STRINGID_USINGITEMSTATOFPKMNROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_TARGET
|
|
BattleScript_TargetItemStatRaiseRemoveItemRet:
|
|
return
|
|
|
|
BattleScript_AttackerItemStatRaise::
|
|
copybyte sBATTLER, gBattlerAttacker
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ONLY_CHECKING, BattleScript_AttackerItemStatRaiseRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AttackerItemStatRaiseRet
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
statbuffchange BS_ATTACKER, 0, BattleScript_AttackerItemStatRaiseRet
|
|
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::
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_RageIsBuildingEnd
|
|
printstring STRINGID_PKMNRAGEBUILDING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_RageIsBuildingEnd:
|
|
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
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_EncoredMove::
|
|
printselectionstring STRINGID_PKMNGOTENCOREDMOVE
|
|
endselectionscript
|
|
|
|
BattleScript_EncoredMoveInPalace::
|
|
printselectionstring STRINGID_PKMNGOTENCOREDMOVE
|
|
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
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
tryfaintmon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_DmgHazardsOnBattler::
|
|
healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
call BattleScript_PrintHurtByDmgHazards
|
|
tryfaintmon BS_SCRIPTING
|
|
return
|
|
|
|
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_ToxicSpikesBadlyPoisoned::
|
|
printstring STRINGID_TOXICSPIKESBADLYPOISONED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_SCRIPTING
|
|
updatestatusicon BS_SCRIPTING
|
|
waitstate
|
|
return
|
|
|
|
BattleScript_StickyWebOnSwitchIn::
|
|
savetarget
|
|
saveattacker
|
|
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 BS_TARGET, STAT_CHANGE_CHECK_PREVENTION | STAT_CHANGE_ALLOW_PTR, BattleScript_StickyWebOnSwitchInEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_StickyWebOnSwitchInEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_StickyWebOnSwitchInEnd:
|
|
restoretarget
|
|
restoreattacker
|
|
setbyte sSTICKY_WEB_STAT_DROP, 0
|
|
return
|
|
|
|
BattleScript_PerishSongTakesLife::
|
|
printstring STRINGID_PKMNPERISHCOUNTFELL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
tryfaintmon BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_PerishBodyActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSWILLPERISHIN3TURNS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_GulpMissileGorging::
|
|
call BattleScript_AbilityPopUp
|
|
handleformchange BS_TARGET, 0
|
|
playanimation BS_TARGET, B_ANIM_FORM_CHANGE_INSTANT
|
|
waitanimation
|
|
playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
waitstate
|
|
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_GulpMissileNoDmgGorging
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
tryfaintmon BS_ATTACKER
|
|
jumpiffainted BS_ATTACKER, TRUE, BattleScript_GulpMissileNoSecondEffectGorging
|
|
BattleScript_GulpMissileNoDmgGorging:
|
|
seteffectprimary BS_TARGET, BS_ATTACKER, MOVE_EFFECT_PARALYSIS
|
|
BattleScript_GulpMissileNoSecondEffectGorging:
|
|
return
|
|
|
|
BattleScript_GulpMissileGulping::
|
|
call BattleScript_AbilityPopUp
|
|
handleformchange BS_TARGET, 0
|
|
playanimation BS_TARGET, B_ANIM_FORM_CHANGE_INSTANT
|
|
waitanimation
|
|
playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
waitstate
|
|
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_GulpMissileNoDmgGulping
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
tryfaintmon BS_ATTACKER
|
|
jumpiffainted BS_ATTACKER, TRUE, BattleScript_GulpMissileNoSecondEffectGulping
|
|
BattleScript_GulpMissileNoDmgGulping:
|
|
swapattackerwithtarget @ to make gStatDownStringIds down below print the right battler
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_GulpMissileGulpingEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_GulpMissileGulpingEnd:
|
|
swapattackerwithtarget
|
|
BattleScript_GulpMissileNoSecondEffectGulping:
|
|
return
|
|
|
|
BattleScript_SeedSowerActivates::
|
|
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_ActivateTerrainEffects
|
|
return
|
|
|
|
BattleScript_BerserkActivates::
|
|
saveattacker
|
|
copybyte gBattlerAttacker, gEffectBattler
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange BS_EFFECT_BATTLER, STAT_CHANGE_CERTAIN, BattleScript_BerserkActivatesTryBerry
|
|
call BattleScript_StatUp
|
|
BattleScript_BerserkActivatesTryBerry:
|
|
restoreattacker
|
|
return
|
|
|
|
BattleScript_AngerShellActivates::
|
|
call BattleScript_AbilityPopUp
|
|
jumpifstat BS_EFFECT_BATTLER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AngerShellTryDef
|
|
jumpifstat BS_EFFECT_BATTLER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_AngerShellTryDef
|
|
jumpifstat BS_EFFECT_BATTLER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_AngerShellTryDef
|
|
jumpifstat BS_EFFECT_BATTLER, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_AngerShellTryDef
|
|
jumpifstat BS_EFFECT_BATTLER, CMP_EQUAL, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_RestoreAttackerButItFailed
|
|
BattleScript_AngerShellTryDef::
|
|
modifybattlerstatstage BS_EFFECT_BATTLER, STAT_DEF, DECREASE, 1, BattleScript_AngerShellTrySpDef, ANIM_ON
|
|
BattleScript_AngerShellTrySpDef:
|
|
modifybattlerstatstage BS_EFFECT_BATTLER, STAT_SPDEF, DECREASE, 1, BattleScript_AngerShellTryAttack, ANIM_ON
|
|
BattleScript_AngerShellTryAttack:
|
|
modifybattlerstatstage BS_EFFECT_BATTLER, STAT_ATK, INCREASE, 1, BattleScript_AngerShellTrySpAtk, ANIM_ON
|
|
BattleScript_AngerShellTrySpAtk:
|
|
modifybattlerstatstage BS_EFFECT_BATTLER, STAT_SPATK, INCREASE, 1, BattleScript_AngerShellTrySpeed, ANIM_ON
|
|
BattleScript_AngerShellTrySpeed:
|
|
modifybattlerstatstage BS_EFFECT_BATTLER, STAT_SPEED, INCREASE, 1, BattleScript_AngerShellRet, ANIM_ON
|
|
BattleScript_AngerShellRet:
|
|
return
|
|
|
|
BattleScript_WindPowerActivates::
|
|
call BattleScript_AbilityPopUp
|
|
setvolatile BS_TARGET, VOLATILE_CHARGE_TIMER, 1
|
|
printstring STRINGID_BEINGHITCHARGEDPKMNWITHPOWER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ToxicDebrisActivates::
|
|
call BattleScript_AbilityPopUp
|
|
pause B_WAIT_TIME_SHORT
|
|
settoxicspikes BattleScript_ToxicDebrisRet
|
|
printstring STRINGID_POISONSPIKESSCATTERED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ToxicDebrisRet:
|
|
restoretarget
|
|
restoreattacker
|
|
return
|
|
|
|
BattleScript_EarthEaterActivates::
|
|
call BattleScript_AbilityPopUp
|
|
pause B_WAIT_TIME_LONG
|
|
tryhealquarterhealth BS_TARGET, BattleScript_EarthEaterRet
|
|
healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EarthEaterRet:
|
|
return
|
|
|
|
BattleScript_PerishSongCountGoesDown::
|
|
printstring STRINGID_PKMNPERISHCOUNTFELL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_AllStatsUpZMove::
|
|
printfromtable gZEffectStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
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::
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpDef, BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AllStatsUpDef::
|
|
setstatchanger STAT_DEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpeed, BIT_SPEED | BIT_SPATK | BIT_SPDEF
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AllStatsUpSpeed::
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpAtk, BIT_SPATK | BIT_SPDEF
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AllStatsUpSpAtk::
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpDef, BIT_SPDEF
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AllStatsUpSpDef::
|
|
setstatchanger STAT_SPDEF, 1, FALSE
|
|
statbuffchange BS_ATTACKER, 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_SpinHazardsAway::
|
|
printfromtable gSpinHazardsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_DefogClearHazards::
|
|
printfromtable gDefogHazardsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MonTookFutureAttack::
|
|
printstring STRINGID_PKMNTOOKATTACK
|
|
waitmessage B_WAIT_TIME_LONG
|
|
futuresighttargetfailure BattleScript_DoFutureAttackResult
|
|
jumpifmovehadnoeffect BattleScript_FutureAttackEnd
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
damagecalc
|
|
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, MOVE_DAMAGE_HP_UPDATE
|
|
datahpupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
|
|
critmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DoFutureAttackResult:
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_FutureAttackEnd::
|
|
moveendcase MOVEEND_SET_VALUES
|
|
moveendcase MOVEEND_RAGE
|
|
moveendcase MOVEEND_ABILITIES
|
|
moveendcase MOVEEND_ITEM_EFFECTS_TARGET
|
|
moveendfromto MOVEEND_SYMBIOSIS, MOVEEND_UPDATE_LAST_MOVES
|
|
moveendcase MOVEEND_COLOR_CHANGE
|
|
checkteamslost BattleScript_FutureAttackClearResults
|
|
BattleScript_FutureAttackClearResults:
|
|
setmoveresultflags 0
|
|
clearspecialstatuses
|
|
end2
|
|
|
|
BattleScript_NoMovesLeft::
|
|
printselectionstring STRINGID_PKMNHASNOMOVESLEFT
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingMoveWithNoPP::
|
|
printselectionstring STRINGID_NOPPLEFT
|
|
endselectionscript
|
|
|
|
BattleScript_NoPPForMove::
|
|
printattackstring
|
|
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_SelectingNotAllowedCurrentMove::
|
|
printselectionstring STRINGID_CURRENTMOVECANTSELECT
|
|
endselectionscript
|
|
|
|
BattleScript_SelectingNotAllowedCurrentMoveInPalace::
|
|
printstring STRINGID_CURRENTMOVECANTSELECT
|
|
goto BattleScript_SelectingUnusableMoveInPalace
|
|
|
|
BattleScript_WishComesTrue::
|
|
playanimation BS_TARGET, B_ANIM_WISH_HEAL
|
|
printstring STRINGID_PKMNWISHCAMETRUE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
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_WishButHealBlocked::
|
|
printstring STRINGID_PKMNWISHCAMETRUE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_HEALBLOCKPREVENTSUSAGE
|
|
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
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
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_PrintMonIsRootedRet::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNANCHOREDITSELF
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AtkDefDown::
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_AtkDefDownTryDef, BIT_DEF
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AtkDefDownTryDef
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AtkDefDownTryDef:
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_AtkDefDownRet
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AtkDefDownRet:
|
|
return
|
|
|
|
BattleScript_DefSpDefDown::
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_DefSpDefDownTrySpDef, BIT_SPDEF
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DefSpDefDownTrySpDef
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DefSpDefDownTrySpDef::
|
|
setstatchanger STAT_SPDEF, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_DefSpDefDownRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, 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::
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_CERTAIN, BattleScript_DefDownSpeedUpTrySpeed
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DefDownSpeedUpTrySpeed
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DefDownSpeedUpTrySpeed:
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_CERTAIN, BattleScript_DefDownSpeedUpRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, 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_MagicBounce::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNMOVEBOUNCEDABILITY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmagiccoattarget
|
|
return
|
|
|
|
BattleScript_MagicCoat::
|
|
pause B_WAIT_TIME_SHORT
|
|
setmagiccoattarget
|
|
printstring STRINGID_PKMNMOVEBOUNCED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MagicCoatPrankster::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNMOVEBOUNCED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveresultflags MOVE_RESULT_NO_EFFECT
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SnatchedMove::
|
|
snatchsetbattlers
|
|
playanimation BS_TARGET, B_ANIM_SNATCH_MOVE
|
|
printstring STRINGID_PKMNSNATCHEDMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
swapattackerwithtarget
|
|
return
|
|
|
|
BattleScript_EnduredMsg::
|
|
printstring STRINGID_PKMNENDUREDHIT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_SturdiedMsg::
|
|
pause B_WAIT_TIME_SHORTEST
|
|
call BattleScript_AbilityPopUpTarget
|
|
printstring STRINGID_ENDUREDSTURDY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_OneHitKOMsg::
|
|
printstring STRINGID_ONEHITKO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveEffectClearSmog::
|
|
printstring STRINGID_RESETSTARGETSSTATLEVELS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_FocusPunchSetUp::
|
|
flushtextbox
|
|
call BattleScript_SwapFromSubstitute
|
|
playanimation BS_ATTACKER, B_ANIM_FOCUS_PUNCH_SETUP
|
|
call BattleScript_SwapToSubstitute
|
|
printstring STRINGID_PKMNTIGHTENINGFOCUS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end3
|
|
|
|
BattleScript_MegaEvolution::
|
|
flushtextbox
|
|
trytrainerslidemegaevolutionmsg
|
|
printstring STRINGID_MEGAEVOREACTING
|
|
BattleScript_MegaEvolutionAfterString:
|
|
waitmessage B_WAIT_TIME_LONG
|
|
handleformchange BS_SCRIPTING, 0
|
|
playanimation BS_SCRIPTING, B_ANIM_MEGA_EVOLUTION
|
|
waitanimation
|
|
handleformchange BS_SCRIPTING, 1
|
|
printstring STRINGID_MEGAEVOEVOLVED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_SCRIPTING
|
|
end3
|
|
|
|
BattleScript_WishMegaEvolution::
|
|
flushtextbox
|
|
trytrainerslidemegaevolutionmsg
|
|
printstring STRINGID_FERVENTWISHREACHED
|
|
goto BattleScript_MegaEvolutionAfterString
|
|
|
|
BattleScript_PrimalReversion::
|
|
flushtextbox
|
|
handleformchange BS_SCRIPTING, 0
|
|
playanimation BS_SCRIPTING, B_ANIM_PRIMAL_REVERSION
|
|
waitanimation
|
|
handleformchange BS_SCRIPTING, 1
|
|
printstring STRINGID_PKMNREVERTEDTOPRIMAL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_PowerConstruct::
|
|
flushtextbox
|
|
printstring STRINGID_POWERCONSTRUCTPRESENCEOFMANY
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUpScripting
|
|
handleformchange BS_SCRIPTING, 0
|
|
playanimation BS_SCRIPTING, B_ANIM_POWER_CONSTRUCT
|
|
waitanimation
|
|
handleformchange BS_SCRIPTING, 1
|
|
printstring STRINGID_POWERCONSTRUCTTRANSFORM
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
end2
|
|
|
|
BattleScript_UltraBurst::
|
|
flushtextbox
|
|
trytrainerslidezmovemsg
|
|
printstring STRINGID_ULTRABURSTREACTING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
handleformchange BS_SCRIPTING, 0
|
|
playanimation BS_SCRIPTING, B_ANIM_ULTRA_BURST
|
|
waitanimation
|
|
handleformchange BS_SCRIPTING, 1
|
|
printstring STRINGID_ULTRABURSTCOMPLETED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_SCRIPTING
|
|
end3
|
|
|
|
BattleScript_BattlerFormChange::
|
|
pause 5
|
|
call BattleScript_AbilityPopUpScripting
|
|
flushtextbox
|
|
BattleScript_BattlerFormChangeNoPopup::
|
|
handleformchange BS_SCRIPTING, 0
|
|
playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
BattleScript_BattlerFormChangeFromAfterAnimation::
|
|
handleformchange BS_SCRIPTING, 1
|
|
switchinabilities BS_SCRIPTING
|
|
jumpifability BS_SCRIPTING, ABILITY_DISGUISE, BattleScript_ApplyDisguiseFormChangeHPLoss
|
|
return
|
|
|
|
BattleScript_ZenMode::
|
|
flushtextbox
|
|
call BattleScript_AbilityPopUpScripting
|
|
handleformchange BS_SCRIPTING, 0
|
|
playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
handleformchange BS_SCRIPTING, 1
|
|
printfromtable gZenModeStringIds
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
end2
|
|
|
|
BattleScript_BattlerFormChangeDisguise::
|
|
call BattleScript_AbilityPopUpScripting
|
|
pause B_WAIT_TIME_LONG
|
|
handleformchange BS_SCRIPTING, 0
|
|
playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE_DISGUISE
|
|
waitanimation
|
|
printstring STRINGID_PKMNDISGUISEWASBUSTED
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
call BattleScript_BattlerFormChangeFromAfterAnimation
|
|
return
|
|
|
|
BattleScript_BattlerFormChangeEnd3NoPopup::
|
|
call BattleScript_BattlerFormChangeNoPopup
|
|
end2
|
|
|
|
BattleScript_BattlerFormChangeEnd2::
|
|
call BattleScript_BattlerFormChange
|
|
end2
|
|
|
|
BattleScript_BattlerFormChangeWithString::
|
|
pause 5
|
|
call BattleScript_AbilityPopUpScripting
|
|
flushtextbox
|
|
handleformchange BS_SCRIPTING, 0
|
|
playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
handleformchange BS_SCRIPTING, 1
|
|
printstring STRINGID_PKMNTRANSFORMED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_AttackerFormChangeMoveEffect::
|
|
waitmessage 1
|
|
handleformchange BS_ATTACKER, 0
|
|
playanimation BS_ATTACKER, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
handleformchange BS_ATTACKER, 1
|
|
copybyte sBATTLER, gBattlerAttacker
|
|
printstring STRINGID_PKMNTRANSFORMED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_BallFetch::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_FETCHEDPOKEBALL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_CudChewActivates::
|
|
pause B_WAIT_TIME_SHORTEST
|
|
call BattleScript_AbilityPopUp
|
|
setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries
|
|
consumeberry BS_ATTACKER, FALSE
|
|
setbyte sBERRY_OVERRIDE, 0
|
|
end2
|
|
|
|
BattleScript_ApplyDisguiseFormChangeHPLoss::
|
|
jumpifgenconfiglowerthan CONFIG_B_DISGUISE_HP_LOSS, GEN_8, BattleScript_ApplyDisguiseFormChangeHPLossReturn
|
|
healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
BattleScript_ApplyDisguiseFormChangeHPLossReturn:
|
|
return
|
|
|
|
BattleScript_TargetFormChangeNoPopup:
|
|
flushtextbox
|
|
handleformchange BS_SCRIPTING, 0
|
|
playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
call BattleScript_BattlerFormChangeFromAfterAnimation
|
|
return
|
|
|
|
BattleScript_TargetFormChange::
|
|
pause 5
|
|
call BattleScript_AbilityPopUpTarget
|
|
call BattleScript_TargetFormChangeNoPopup
|
|
return
|
|
|
|
BattleScript_TargetFormChangeWithString::
|
|
pause 5
|
|
call BattleScript_AbilityPopUpTarget
|
|
BattleScript_TargetFormChangeWithStringNoPopup::
|
|
call BattleScript_TargetFormChangeNoPopup
|
|
printstring STRINGID_PKMNTRANSFORMED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_IllusionOffAndTerastallization::
|
|
call BattleScript_IllusionOff
|
|
goto BattleScript_Terastallization
|
|
|
|
BattleScript_IllusionOff::
|
|
call BattleScript_SwapFromSubstitute
|
|
playanimation BS_SCRIPTING, B_ANIM_ILLUSION_OFF
|
|
waitanimation
|
|
call BattleScript_SwapToSubstitute
|
|
updatenick
|
|
waitstate
|
|
printstring STRINGID_ILLUSIONWOREOFF
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_CottonDownActivates::
|
|
saveattacker
|
|
savetarget
|
|
call BattleScript_AbilityPopUpTarget
|
|
copybyte gEffectBattler, gBattlerTarget
|
|
swapattackerwithtarget
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_CottonDownLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_CottonDownLoopIncrement
|
|
setstatchanger STAT_SPEED, 1, TRUE
|
|
jumpifbyteequal gBattlerTarget, gEffectBattler, BattleScript_CottonDownLoopIncrement
|
|
statbuffchange BS_TARGET, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_CottonDownLoopIncrement
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CottonDownTargetSpeedCantGoLower
|
|
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
|
|
swapattackerwithtarget
|
|
restoreattacker
|
|
restoretarget
|
|
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_AbilityPopUpScripting
|
|
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_AftermathDmgRet
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_AFTERMATHDMG
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
BattleScript_AftermathDmgRet:
|
|
return
|
|
|
|
BattleScript_DampPreventsAftermath::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
pause 40
|
|
copybyte gBattlerAbility, sBATTLER
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSABILITYPREVENTSABILITY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveUsedIsAsleep::
|
|
printstring STRINGID_PKMNFASTASLEEP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_BeforeSnoreMessage::
|
|
printstring STRINGID_PKMNFASTASLEEP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_MoveUsedWokeUp::
|
|
printfromtable gWokeUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_MonWokeUpInUproar::
|
|
printstring STRINGID_PKMNWOKEUPINUPROAR
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_EFFECT_BATTLER
|
|
end2
|
|
|
|
BattleScript_PoisonTurnDmg::
|
|
printstring STRINGID_PKMNHURTBYPOISON
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DoStatusTurnDmg::
|
|
statusanimation BS_ATTACKER
|
|
BattleScript_DoTurnDmg:
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
tryfaintmon BS_ATTACKER
|
|
checkteamslost BattleScript_DoTurnDmgEnd
|
|
tryactivateitem BS_ATTACKER, ACTIVATION_ON_HP_THRESHOLD
|
|
BattleScript_DoTurnDmgEnd:
|
|
end2
|
|
|
|
BattleScript_PoisonHealActivates::
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_POISONHEALHPUP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_ATTACKER
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
end2
|
|
|
|
BattleScript_BurnTurnDmg::
|
|
printstring STRINGID_PKMNHURTBYBURN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_DoStatusTurnDmg
|
|
|
|
BattleScript_FrostbiteTurnDmg::
|
|
printstring STRINGID_PKMNHURTBYFROSTBITE
|
|
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_BattlerDefrosted::
|
|
printfromtable gGotDefrostedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BattlerFrostbiteHealed::
|
|
printfromtable gFrostbiteHealedStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_MoveUsedIsParalyzed::
|
|
printstring STRINGID_PKMNISPARALYZED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_ATTACKER
|
|
cancelmultiturnmoves
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_PowderMoveNoEffect::
|
|
pause B_WAIT_TIME_SHORT
|
|
jumpiftype BS_SCRIPTING, TYPE_GRASS, BattleScript_PowderMoveNoEffectPrint
|
|
jumpifability BS_SCRIPTING, ABILITY_OVERCOAT, BattleScript_PowderMoveNoEffectOvercoat
|
|
setlastuseditem BS_SCRIPTING
|
|
printstring STRINGID_SAFETYGOGGLESPROTECTED
|
|
goto BattleScript_PowderMoveNoEffectWaitMsg
|
|
BattleScript_PowderMoveNoEffectOvercoat:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_PowderMoveNoEffectPrint:
|
|
printstring STRINGID_SCR_ITDOESNTAFFECT
|
|
BattleScript_PowderMoveNoEffectWaitMsg:
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
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 BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_MoveUsedFlinchedEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_MoveUsedFlinchedEnd
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveUsedFlinchedEnd
|
|
setbyte gBattleCommunication, STAT_SPEED
|
|
stattextbuffer
|
|
printstring STRINGID_ATTACKERABILITYSTATRAISE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveUsedFlinchedEnd
|
|
|
|
BattleScript_PrintUproarOverTurns::
|
|
printfromtable gUproarOverTurnStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_ThrashConfuses::
|
|
volatileanimation BS_ATTACKER, VOLATILE_CONFUSION
|
|
copybyte sBATTLER, gBattlerAttacker
|
|
printstring STRINGID_PKMNFATIGUECONFUSION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_ThrashConfusesRet::
|
|
volatileanimation BS_SCRIPTING, VOLATILE_CONFUSION
|
|
printstring STRINGID_PKMNFATIGUECONFUSION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveUsedIsConfused::
|
|
printstring STRINGID_PKMNISCONFUSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
volatileanimation BS_ATTACKER, VOLATILE_CONFUSION
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, FALSE, BattleScript_MoveUsedIsConfusedRet
|
|
BattleScript_DoSelfConfusionDmg::
|
|
cancelmultiturnmoves
|
|
printstring STRINGID_ITHURTCONFUSION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
waitstate
|
|
tryselfconfusiondmgformchange
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
resultmessage
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
goto BattleScript_MoveEnd
|
|
BattleScript_MoveUsedIsConfusedRet::
|
|
return
|
|
|
|
BattleScript_MoveUsedPowder::
|
|
pause B_WAIT_TIME_SHORT
|
|
cancelmultiturnmoves
|
|
volatileanimation BS_ATTACKER, VOLATILE_POWDER
|
|
waitanimation
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
waitstate
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
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
|
|
volatileanimation BS_ATTACKER, VOLATILE_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
|
|
volatileanimation BS_ATTACKER, VOLATILE_NIGHTMARE
|
|
goto BattleScript_DoTurnDmg
|
|
|
|
BattleScript_CurseTurnDmg::
|
|
printstring STRINGID_PKMNAFFLICTEDBYCURSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
volatileanimation BS_ATTACKER, VOLATILE_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_TargetPoisonHealed::
|
|
printstring STRINGID_PASTELVEILENTERS
|
|
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
|
|
trytriggerstatusform
|
|
flushtextbox
|
|
return
|
|
|
|
BattleScript_YawnMakesAsleepEnd2::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printstring STRINGID_PKMNFELLASLEEP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_EFFECT_BATTLER
|
|
waitstate
|
|
tryactivateitem BS_EFFECT_BATTLER, ACTIVATION_ON_STATUS_CHANGE
|
|
jumpfifsemiinvulnerable BS_EFFECT_BATTLER, STATE_SKY_DROP, BattleScript_YawnEnd
|
|
makevisible BS_EFFECT_BATTLER
|
|
skydropyawn
|
|
BattleScript_YawnEnd:
|
|
end2
|
|
|
|
BattleScript_EmbargoEndTurn::
|
|
printstring STRINGID_EMBARGOENDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryactivateitem BS_ATTACKER, ACTIVATION_ON_USABLE_AGAIN
|
|
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_MoveEffectFrostbite::
|
|
statusanimation BS_EFFECT_BATTLER
|
|
printfromtable gGotFrostbiteStringIds
|
|
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::
|
|
volatileanimation BS_EFFECT_BATTLER, VOLATILE_CONFUSION
|
|
printstring STRINGID_PKMNWASCONFUSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveEffectRecoil::
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_PKMNHITWITHRECOIL
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_ItemSteal::
|
|
playanimation BS_EFFECT_BATTLER, B_ANIM_ITEM_STEAL
|
|
printstring STRINGID_PKMNSTOLEITEM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryactivateabilitywithabilityshield BS_ATTACKER, FALSE
|
|
return
|
|
|
|
BattleScript_AbilityRaisesDefenderStat::
|
|
pause B_WAIT_TIME_SHORT
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ONLY_CHECKING, BattleScript_AbilityCantRaiseDefenderStat
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange BS_TARGET, 0, BattleScript_AbilityCantRaiseDefenderStat
|
|
printstring STRINGID_DEFENDERSSTATROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AbilityCantRaiseDefenderStat::
|
|
saveattacker
|
|
copybyte gBattlerAttacker, gBattlerTarget
|
|
printstring STRINGID_STATSWONTINCREASE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
restoreattacker
|
|
return
|
|
|
|
BattleScript_AbilityShieldProtects::
|
|
saveattacker
|
|
copybyte gBattlerAttacker, gBattlerAbility
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
printstring STRINGID_ABILITYSHIELDPROTECTS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
restoreattacker
|
|
return
|
|
|
|
BattleScript_AbilityPopUpTarget::
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
BattleScript_AbilityPopUp::
|
|
tryactivateabilityshield BS_ABILITY_BATTLER
|
|
showabilitypopup
|
|
pause B_WAIT_TIME_SHORT
|
|
recordability BS_ABILITY_BATTLER
|
|
sethword sABILITY_OVERWRITE, 0
|
|
return
|
|
|
|
BattleScript_AbilityPopUpScripting:
|
|
copybyte gBattlerAbility, sBATTLER
|
|
goto BattleScript_AbilityPopUp
|
|
|
|
BattleScript_AbilityPopUpOverwriteThenNormal:
|
|
setbyte sFIXED_ABILITY_POPUP, TRUE
|
|
showabilitypopup
|
|
pause B_WAIT_TIME_SHORT
|
|
sethword sABILITY_OVERWRITE, 0
|
|
updateabilitypopup
|
|
pause B_WAIT_TIME_SHORT
|
|
recordability BS_ABILITY_BATTLER
|
|
destroyabilitypopup
|
|
setbyte sFIXED_ABILITY_POPUP, FALSE
|
|
return
|
|
|
|
@ 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 BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_MoodyLower
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, BattleScript_MoodyLower
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_MoodyLower:
|
|
jumpifbyteequal sSAVED_STAT_CHANGER, sZero, BattleScript_MoodyEnd
|
|
copybyte sSTATCHANGER, sSAVED_STAT_CHANGER
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_MoodyEnd
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, BattleScript_MoodyEnd
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_MoodyEnd:
|
|
end2
|
|
|
|
BattleScript_EmergencyExit::
|
|
pause 5
|
|
call BattleScript_AbilityPopUpScripting
|
|
pause B_WAIT_TIME_LONG
|
|
playanimation BS_SCRIPTING, B_ANIM_SLIDE_OFFSCREEN
|
|
waitanimation
|
|
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_EmergencyExitTrainer
|
|
setteleportoutcome BS_SCRIPTING
|
|
finishaction
|
|
return
|
|
BattleScript_EmergencyExitTrainer:
|
|
openpartyscreen BS_SCRIPTING, BattleScript_EmergencyExitRet
|
|
waitstate
|
|
returntoball BS_SCRIPTING, FALSE
|
|
switchoutabilities BS_SCRIPTING
|
|
switchhandleorder BS_SCRIPTING, 2
|
|
getswitchedmondata BS_SCRIPTING
|
|
switchindataupdate BS_SCRIPTING
|
|
hpthresholds BS_SCRIPTING
|
|
printstring STRINGID_SWITCHINMON
|
|
switchinanim BS_SCRIPTING, FALSE, TRUE
|
|
waitstate
|
|
switchineffects BS_SCRIPTING
|
|
switchinevents
|
|
BattleScript_EmergencyExitRet:
|
|
return
|
|
|
|
BattleScript_EmergencyExitEnd2::
|
|
call BattleScript_EmergencyExit
|
|
end2
|
|
|
|
BattleScript_TraceActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUpScripting
|
|
printstring STRINGID_PKMNTRACED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
settracedability BS_SCRIPTING
|
|
switchinabilities BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_ReceiverActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_RECEIVERABILITYTAKEOVER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
settracedability BS_ABILITY_BATTLER
|
|
switchinabilities BS_ABILITY_BATTLER
|
|
return
|
|
|
|
BattleScript_AbilityHpHeal:
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXRESTOREDHPALITTLE2
|
|
waitmessage B_WAIT_TIME_LONG
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
return
|
|
|
|
BattleScript_RainDishActivates::
|
|
call BattleScript_AbilityHpHeal
|
|
end2
|
|
|
|
BattleScript_CheekPouchActivates::
|
|
copybyte sSAVED_BATTLER, gBattlerAttacker
|
|
copybyte gBattlerAttacker, gBattlerAbility
|
|
call BattleScript_AbilityHpHeal
|
|
copybyte gBattlerAttacker, sSAVED_BATTLER
|
|
return
|
|
|
|
BattleScript_PickupActivates::
|
|
pause 5
|
|
tryrecycleitem BattleScript_PickupActivatesEnd
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_XFOUNDONEY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryactivateitem BS_ATTACKER, ACTIVATION_ON_PICK_UP
|
|
BattleScript_PickupActivatesEnd:
|
|
end2
|
|
|
|
BattleScript_HarvestActivates::
|
|
pause 5
|
|
tryrecycleitem BattleScript_HarvestActivatesEnd
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_HARVESTBERRY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryactivateitem BS_ATTACKER, ACTIVATION_ON_HARVEST
|
|
BattleScript_HarvestActivatesEnd:
|
|
end2
|
|
|
|
BattleScript_SolarPowerActivates::
|
|
call BattleScript_AbilityPopUp
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_SOLARPOWERHPDROP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_HealerActivates::
|
|
call BattleScript_AbilityPopUp
|
|
curestatus BS_SCRIPTING
|
|
updatestatusicon BS_SCRIPTING
|
|
printstring STRINGID_HEALERCURE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_ShedSkinActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXCUREDYPROBLEM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_ActivateWeatherAbilities:
|
|
saveattacker
|
|
savetarget
|
|
tryboosterenergy ON_WEATHER
|
|
setbyte gBattlerAttacker, 0
|
|
sortbattlers
|
|
BattleScript_ActivateWeatherAbilities_Loop:
|
|
copyarraywithindex gBattlerTarget, gBattlersBySpeed, gBattlerAttacker, 1
|
|
activateweatherchangeabilities BS_TARGET
|
|
addbyte gBattlerAttacker, 1
|
|
jumpifbytenotequal gBattlerAttacker, gBattlersCount, BattleScript_ActivateWeatherAbilities_Loop
|
|
restoreattacker
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_TryIntimidateHoldEffects:
|
|
jumpifnoholdeffect BS_TARGET, HOLD_EFFECT_ADRENALINE_ORB, BattleScript_TryIntimidateHoldEffectsRet
|
|
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_TryIntimidateHoldEffectsRet
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT
|
|
statbuffchange BS_TARGET, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_TryIntimidateHoldEffectsRet
|
|
copybyte sBATTLER, gBattlerTarget
|
|
setlastuseditem BS_TARGET
|
|
printstring STRINGID_USINGITEMSTATOFPKMNROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_TARGET
|
|
BattleScript_TryIntimidateHoldEffectsRet:
|
|
return
|
|
|
|
BattleScript_IntimidateActivates::
|
|
savetarget
|
|
call BattleScript_AbilityPopUp
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_IntimidateLoop:
|
|
jumpiftargetally BattleScript_IntimidateLoopIncrement
|
|
jumpifabsent BS_TARGET, BattleScript_IntimidateLoopIncrement
|
|
jumpifvolatile BS_TARGET, VOLATILE_SUBSTITUTE, BattleScript_IntimidateLoopIncrement
|
|
jumpifintimidateabilityprevented
|
|
BattleScript_IntimidateEffect:
|
|
copybyte sBATTLER, gBattlerAttacker
|
|
setstatchanger STAT_ATK, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_IntimidateLoopIncrement
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_IntimidateWontDecrease
|
|
printstring STRINGID_PKMNCUTSATTACKWITH
|
|
BattleScript_IntimidateEffect_WaitString:
|
|
waitmessage B_WAIT_TIME_LONG
|
|
saveattacker
|
|
savetarget
|
|
copybyte sBATTLER, gBattlerTarget
|
|
call BattleScript_TryIntimidateHoldEffects
|
|
restoreattacker
|
|
restoretarget
|
|
BattleScript_IntimidateLoopIncrement:
|
|
addbyte gBattlerTarget, 1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_IntimidateLoop
|
|
copybyte sBATTLER, gBattlerAttacker
|
|
destroyabilitypopup
|
|
restoretarget
|
|
restoreattacker
|
|
pause B_WAIT_TIME_MED
|
|
return
|
|
|
|
BattleScript_IntimidatePrevented::
|
|
copybyte sBATTLER, gBattlerTarget
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNPREVENTSSTATLOSSWITH
|
|
goto BattleScript_IntimidateEffect_WaitString
|
|
|
|
BattleScript_IntimidateWontDecrease:
|
|
printstring STRINGID_STATSWONTDECREASE
|
|
goto BattleScript_IntimidateEffect_WaitString
|
|
|
|
BattleScript_IntimidateInReverse::
|
|
copybyte sBATTLER, gBattlerTarget
|
|
call BattleScript_AbilityPopUpTarget
|
|
pause B_WAIT_TIME_SHORT
|
|
modifybattlerstatstage BS_TARGET, STAT_ATK, INCREASE, 1, BattleScript_IntimidateLoopIncrement, ANIM_ON
|
|
call BattleScript_TryIntimidateHoldEffects
|
|
goto BattleScript_IntimidateLoopIncrement
|
|
|
|
BattleScript_SupersweetSyrupActivates::
|
|
savetarget
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_SUPERSWEETAROMAWAFTS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setbyte gBattlerTarget, 0
|
|
BattleScript_SupersweetSyrupLoop:
|
|
jumpiftargetally BattleScript_SupersweetSyrupLoopIncrement
|
|
jumpifabsent BS_TARGET, BattleScript_SupersweetSyrupLoopIncrement
|
|
jumpifvolatile BS_TARGET, VOLATILE_SUBSTITUTE, BattleScript_SupersweetSyrupLoopIncrement
|
|
BattleScript_SupersweetSyrupEffect:
|
|
copybyte sBATTLER, gBattlerAttacker
|
|
setstatchanger STAT_EVASION, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_SupersweetSyrupLoopIncrement
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_SupersweetSyrupWontDecrease
|
|
printfromtable gStatDownStringIds
|
|
BattleScript_SupersweetSyrupEffect_WaitString:
|
|
waitmessage B_WAIT_TIME_LONG
|
|
saveattacker
|
|
savetarget
|
|
copybyte sBATTLER, gBattlerTarget
|
|
call BattleScript_TryIntimidateHoldEffects
|
|
restoreattacker
|
|
restoretarget
|
|
BattleScript_SupersweetSyrupLoopIncrement:
|
|
addbyte gBattlerTarget, 1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_SupersweetSyrupLoop
|
|
copybyte sBATTLER, gBattlerAttacker
|
|
destroyabilitypopup
|
|
restoretarget
|
|
restoreattacker
|
|
pause B_WAIT_TIME_MED
|
|
return
|
|
|
|
BattleScript_SupersweetSyrupWontDecrease:
|
|
printstring STRINGID_STATSWONTDECREASE
|
|
goto BattleScript_SupersweetSyrupEffect_WaitString
|
|
|
|
BattleScript_PrimalWeatherBlocksMove::
|
|
pause B_WAIT_TIME_SHORT
|
|
printfromtable gPrimalWeatherBlocksStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_ProtosynthesisActivates::
|
|
call BattleScript_AbilityPopUpScripting
|
|
printstring STRINGID_SUNLIGHTACTIVATEDABILITY
|
|
waitmessage B_WAIT_TIME_MED
|
|
printstring STRINGID_STATWASHEIGHTENED
|
|
waitmessage B_WAIT_TIME_MED
|
|
return
|
|
|
|
BattleScript_QuarkDriveActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ELECTRICTERRAINACTIVATEDABILITY
|
|
waitmessage B_WAIT_TIME_MED
|
|
printstring STRINGID_STATWASHEIGHTENED
|
|
waitmessage B_WAIT_TIME_MED
|
|
return
|
|
|
|
BattleScript_RuinAbilityActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ABILITYWEAKENEDSURROUNDINGMONSSTAT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_SupremeOverlordActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_CostarActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNCOPIEDSTATCHANGES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ZeroToHeroActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUpScripting
|
|
printstring STRINGID_ZEROTOHEROTRANSFORMATION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_CommanderActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUpScripting
|
|
printstring STRINGID_COMMANDERACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CommanderAtkIncrease:
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderDefIncrease, BIT_DEF | BIT_SPATK | BIT_SPDEF | BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CommanderDefIncrease
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CommanderDefIncrease:
|
|
setstatchanger STAT_DEF, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderSpAtkIncrease, BIT_SPATK | BIT_SPDEF | BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CommanderSpAtkIncrease
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CommanderSpAtkIncrease:
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderSpDefIncrease, BIT_SPDEF | BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CommanderSpDefIncrease
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CommanderSpDefIncrease:
|
|
setstatchanger STAT_SPDEF, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderSpeedIncrease, BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CommanderSpeedIncrease
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CommanderSpeedIncrease:
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CommanderEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_CommanderEnd:
|
|
restoreattacker
|
|
return
|
|
|
|
BattleScript_HospitalityActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_HOSPITALITYRESTORATION
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_EFFECT_BATTLER, B_ANIM_SIMPLE_HEAL
|
|
healthbarupdate BS_EFFECT_BATTLER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_EFFECT_BATTLER, PASSIVE_HP_UPDATE
|
|
return
|
|
|
|
BattleScript_AttackWeakenedByStrongWinds::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_ATTACKWEAKENEDBSTRONGWINDS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MimicryActivates::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_BATTLERTYPECHANGEDTO
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
return
|
|
|
|
BattleScript_ActivateTerrainEffects:
|
|
saveattacker
|
|
savetarget
|
|
tryboosterenergy ON_TERRAIN
|
|
resetterrainabilityflags
|
|
setbyte gBattlerAttacker, 0
|
|
sortbattlers
|
|
BattleScript_ActivateTerrainSeed:
|
|
copyarraywithindex gBattlerTarget, gBattlersBySpeed, gBattlerAttacker, 1
|
|
tryterrainseed BS_TARGET, BattleScript_ActivateTerrainAbility
|
|
removeitem BS_TARGET
|
|
BattleScript_ActivateTerrainAbility:
|
|
activateterrainchangeabilities BS_TARGET
|
|
addbyte gBattlerAttacker, 1
|
|
jumpifbytenotequal gBattlerAttacker, gBattlersCount, BattleScript_ActivateTerrainSeed
|
|
restoreattacker
|
|
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_ActivateTerrainEffects
|
|
return
|
|
|
|
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_ActivateTerrainEffects
|
|
return
|
|
|
|
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_ActivateTerrainEffects
|
|
return
|
|
|
|
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_ActivateTerrainEffects
|
|
return
|
|
|
|
BattleScript_BadDreamsActivates::
|
|
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:
|
|
jumpifbyteequal sFIXED_ABILITY_POPUP, sZero, BattleScript_BadDreams_ShowPopUp
|
|
BattleScript_BadDreams_DmgAfterPopUp:
|
|
printstring STRINGID_BADDREAMSDMG
|
|
waitmessage B_WAIT_TIME_LONG
|
|
dmg_1_8_targethp
|
|
healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
jumpifhasnohp BS_TARGET, BattleScript_BadDreams_HidePopUp
|
|
BattleScript_BadDreamsIncrement:
|
|
addbyte gBattlerTarget, 1
|
|
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_BadDreamsLoop
|
|
jumpifbyteequal sFIXED_ABILITY_POPUP, sZero, BattleScript_BadDreamsEnd
|
|
destroyabilitypopup
|
|
pause 15
|
|
BattleScript_BadDreamsEnd:
|
|
end2
|
|
BattleScript_BadDreams_ShowPopUp:
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
setbyte sFIXED_ABILITY_POPUP, TRUE
|
|
goto BattleScript_BadDreams_DmgAfterPopUp
|
|
BattleScript_BadDreams_HidePopUp:
|
|
destroyabilitypopup
|
|
tryfaintmon BS_TARGET
|
|
goto BattleScript_BadDreamsIncrement
|
|
|
|
BattleScript_TookAttack::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNSXTOOKATTACK
|
|
waitmessage B_WAIT_TIME_LONG
|
|
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
|
|
call BattleScript_AbilityPopUpScripting
|
|
printstring STRINGID_PKMNPREVENTSUSAGE
|
|
pause B_WAIT_TIME_LONG
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
moveendcase MOVEEND_CLEAR_BITS
|
|
end
|
|
|
|
BattleScript_MoveHPDrain::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_PKMNRESTOREDHPUSING
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MoveStatDrain::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveStatDrain_Cont
|
|
printstring STRINGID_SCRIPTINGSTATROSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_MoveStatDrain_Cont:
|
|
clearsemiinvulnerablebit
|
|
return
|
|
|
|
BattleScript_MonMadeMoveUseless::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXMADEYUSELESS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_FlashFireBoost::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printfromtable gFlashFireStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AbilityPreventsPhasingOut::
|
|
call BattleScript_AbilityPreventsPhasingOutRet
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_AbilityPreventsPhasingOutRet::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUpTarget
|
|
printstring STRINGID_PKMNANCHORSITSELFWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AbilityNoStatLoss::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNPREVENTSSTATLOSSWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ItemNoStatLoss::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_CLEARAMULETWONTLOWERSTATS
|
|
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
|
|
return
|
|
|
|
BattleScript_OwnTempoPrevents::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
copybyte sBATTLER, gBattlerTarget
|
|
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SoundproofProtected::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXBLOCKSY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_IceFaceNullsDamage::
|
|
call BattleScript_TargetFormChangeWithString
|
|
return
|
|
|
|
BattleScript_DazzlingProtected::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUpScripting
|
|
printstring STRINGID_POKEMONCANNOTUSEMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_MoveUsedPsychicTerrainPrevents::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PSYCHICTERRAINPREVENTS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_GrassyTerrainHeals::
|
|
printstring STRINGID_GRASSYTERRAINHEALS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
end2
|
|
|
|
BattleScript_AbilityNoSpecificStatLoss::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNSXPREVENTSYLOSS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY
|
|
setmoveresultflags MOVE_RESULT_NO_EFFECT
|
|
return
|
|
|
|
BattleScript_StickyHoldActivates::
|
|
call BattleScript_StickyHoldActivatesRet
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_StickyHoldActivatesRet::
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUp
|
|
copybyte sBATTLER, gBattlerAbility
|
|
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ColorChangeActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNCHANGEDTYPEWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ProteanActivates::
|
|
pause B_WAIT_TIME_SHORTEST
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_PKMNCHANGEDTYPE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AbilityAvoidsDamage::
|
|
call BattleScript_AbilityPopUp
|
|
printfromtable gMissStringIds @ waitmessage is executed next so no waitmessage here
|
|
return
|
|
|
|
BattleScript_TeraShellDistortingTypeMatchups::
|
|
pause B_WAIT_TIME_SHORTEST
|
|
call BattleScript_AbilityPopUpScripting
|
|
printstring STRINGID_PKMNMADESHELLGLEAM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_CursedBodyActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_CURSEDBODYDISABLED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_MummyActivates::
|
|
setbyte sFIXED_ABILITY_POPUP, TRUE
|
|
call BattleScript_AbilityPopUpTarget
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
copyhword sABILITY_OVERWRITE, gLastUsedAbility
|
|
call BattleScript_AbilityPopUpOverwriteThenNormal
|
|
recordability BS_TARGET
|
|
recordability BS_ATTACKER
|
|
printstring STRINGID_ATTACKERACQUIREDABILITY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
trytoclearprimalweather
|
|
call BattleScript_TryRevertWeatherform
|
|
flushtextbox
|
|
tryendneutralizinggas
|
|
return
|
|
|
|
BattleScript_WanderingSpiritActivates::
|
|
saveattacker
|
|
savetarget
|
|
copybyte gBattlerAbility, gBattlerTarget
|
|
sethword sABILITY_OVERWRITE, ABILITY_WANDERING_SPIRIT
|
|
call BattleScript_AbilityPopUpOverwriteThenNormal
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
copyhword sABILITY_OVERWRITE, gLastUsedAbility
|
|
call BattleScript_AbilityPopUpOverwriteThenNormal
|
|
recordability BS_TARGET
|
|
recordability BS_ATTACKER
|
|
printstring STRINGID_SWAPPEDABILITIES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
switchinabilities BS_ATTACKER
|
|
jumpiffainted BS_TARGET, TRUE, BattleScript_WanderingSpiritActivatesRet
|
|
switchinabilities BS_TARGET
|
|
BattleScript_WanderingSpiritActivatesRet:
|
|
restoreattacker
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_TargetsStatWasMaxedOut::
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange BS_TARGET, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_CERTAIN, BattleScript_TargetsStatWasMaxedOutRet
|
|
printstring STRINGID_TARGETSSTATWASMAXEDOUT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_TargetsStatWasMaxedOutRet:
|
|
return
|
|
|
|
BattleScript_BattlerAbilityStatRaiseOnSwitchIn::
|
|
call BattleScript_AbilityPopUpScripting
|
|
statbuffchange BS_SCRIPTING, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_CERTAIN, BattleScript_BattlerAbilityStatRaiseOnSwitchInRet
|
|
waitanimation
|
|
printstring STRINGID_SCRIPTINGABILITYSTATRAISE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_BattlerAbilityStatRaiseOnSwitchInRet:
|
|
return
|
|
|
|
BattleScript_ScriptingAbilityStatRaise::
|
|
copybyte gBattlerAbility, sBATTLER
|
|
call BattleScript_AbilityPopUp
|
|
saveattacker
|
|
copybyte gBattlerAttacker, sBATTLER
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_CERTAIN, BattleScript_ScriptingAbilityStatRaiseRet
|
|
printstring STRINGID_ATTACKERABILITYSTATRAISE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ScriptingAbilityStatRaiseRet:
|
|
restoreattacker
|
|
return
|
|
|
|
BattleScript_WeakArmorActivates::
|
|
call BattleScript_AbilityPopUp
|
|
setstatchanger STAT_DEF, 1, TRUE
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_WeakArmorActivatesSpeed
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_WeakArmorDefPrintString
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_WeakArmorActivatesSpeed
|
|
pause B_WAIT_TIME_SHORTEST
|
|
printfromtable gStatDownStringIds
|
|
clearmoveresultflags MOVE_RESULT_MISSED @ Set by statbuffchange when stat can't be decreased
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_WeakArmorActivatesSpeed
|
|
BattleScript_WeakArmorDefPrintString:
|
|
printstring STRINGID_TARGETABILITYSTATLOWER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_WeakArmorActivatesSpeed:
|
|
jumpifgenconfiglowerthan CONFIG_B_WEAK_ARMOR_SPEED, GEN_7, BattleScript_WeakArmorSetSpeedGen6
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
goto BattleScript_WeakArmorDoSpeed
|
|
BattleScript_WeakArmorSetSpeedGen6:
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
BattleScript_WeakArmorDoSpeed:
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_WeakArmorActivatesEnd
|
|
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_WeakArmorSpeedPrintString
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_WeakArmorActivatesEnd
|
|
pause B_WAIT_TIME_SHORTEST
|
|
printstring STRINGID_TARGETSTATWONTGOHIGHER
|
|
clearmoveresultflags MOVE_RESULT_MISSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_WeakArmorActivatesEnd
|
|
BattleScript_WeakArmorSpeedPrintString:
|
|
printstring STRINGID_TARGETABILITYSTATRAISE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_WeakArmorActivatesEnd:
|
|
return
|
|
|
|
BattleScript_RaiseStatOnFaintingTarget::
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_RaiseStatOnFaintingTarget_End
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_RaiseStatOnFaintingTarget_End
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_RaiseStatOnFaintingTarget_End:
|
|
return
|
|
|
|
BattleScript_AttackerAbilityStatRaise::
|
|
statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_AttackerAbilityStatRaise_End
|
|
call BattleScript_AbilityPopUpScripting
|
|
statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR, BattleScript_AttackerAbilityStatRaise_End
|
|
printstring STRINGID_ATTACKERABILITYSTATRAISE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_AttackerAbilityStatRaise_End:
|
|
return
|
|
|
|
BattleScript_FellStingerRaisesStat::
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_FellStingerRaisesAtkEnd
|
|
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, BattleScript_FellStingerRaisesAtkEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_FellStingerRaisesAtkEnd:
|
|
return
|
|
|
|
BattleScript_AttackerAbilityStatRaiseEnd3::
|
|
call BattleScript_AttackerAbilityStatRaise
|
|
restoreattacker
|
|
return
|
|
|
|
BattleScript_AttackerAbilityStatRaiseEnd2::
|
|
call BattleScript_AttackerAbilityStatRaise
|
|
restoreattacker
|
|
end2
|
|
|
|
BattleScript_SwitchInAbilityMsg::
|
|
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
|
|
return
|
|
|
|
BattleScript_FriskMsgWithPopup::
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_FriskMsg::
|
|
printstring STRINGID_FRISKACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_FriskActivates::
|
|
saveattacker
|
|
savetarget
|
|
copybyte gBattlerAttacker, sBATTLER
|
|
tryfriskmessage
|
|
restoreattacker
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_ImposterActivates::
|
|
call BattleScript_AbilityPopUp
|
|
transformdataexecution
|
|
playmoveanimation MOVE_TRANSFORM
|
|
waitanimation
|
|
printstring STRINGID_IMPOSTERTRANSFORM
|
|
waitmessage B_WAIT_TIME_LONG
|
|
restoreattacker
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_HurtAttacker:
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
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
|
|
clearmoveresultflags MOVE_RESULT_NO_EFFECT
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_PKMNHURTSWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryfaintmon BS_ATTACKER
|
|
setmoveresultflags MOVE_RESULT_MISSED
|
|
BattleScript_SpikyShieldRet::
|
|
return
|
|
|
|
BattleScript_KingsShieldEffect::
|
|
clearmoveresultflags MOVE_RESULT_NO_EFFECT
|
|
seteffectsecondary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_NONE
|
|
copybyte sBATTLER, gBattlerTarget
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
copybyte gBattlerAttacker, sBATTLER
|
|
setmoveresultflags MOVE_RESULT_MISSED
|
|
return
|
|
|
|
BattleScript_BanefulBunkerEffect::
|
|
clearmoveresultflags MOVE_RESULT_NO_EFFECT
|
|
setnonvolatilestatus TRIGGER_ON_PROTECT
|
|
setmoveresultflags MOVE_RESULT_MISSED
|
|
return
|
|
|
|
BattleScript_CuteCharmActivates::
|
|
call BattleScript_AbilityPopUp
|
|
volatileanimation BS_ATTACKER, VOLATILE_INFATUATION
|
|
printstring STRINGID_PKMNSXINFATUATEDY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_TryDestinyKnotTarget
|
|
return
|
|
|
|
BattleScript_GooeyActivates::
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ONLY_CHECKING, BattleScript_GooeyActivatesRet
|
|
waitstate
|
|
call BattleScript_AbilityPopUp
|
|
swapattackerwithtarget @ for defiant, mirror armor
|
|
seteffectsecondary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_SPD_MINUS_1
|
|
swapattackerwithtarget
|
|
BattleScript_GooeyActivatesRet:
|
|
return
|
|
|
|
BattleScript_AbilityStatusEffect::
|
|
waitstate
|
|
call BattleScript_AbilityPopUp
|
|
setnonvolatilestatus TRIGGER_ON_ABILITY
|
|
return
|
|
|
|
BattleScript_BattleBondActivatesOnMoveEndAttacker::
|
|
pause 5
|
|
copybyte gBattlerAbility, gBattlerAttacker
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_ATTACKERBECAMEFULLYCHARGED
|
|
handleformchange BS_ATTACKER, 0
|
|
playanimation BS_ATTACKER, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
handleformchange BS_ATTACKER, 1
|
|
printstring STRINGID_ATTACKERBECAMEASHSPECIES
|
|
return
|
|
|
|
BattleScript_EffectBattleBondStatIncrease::
|
|
call BattleScript_AbilityPopUp
|
|
setstatchanger STAT_ATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectBattleBondStatIncreaseTrySpAtk, BIT_SPATK | BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectBattleBondStatIncreaseTrySpAtk
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectBattleBondStatIncreaseTrySpAtk:
|
|
setstatchanger STAT_SPATK, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectBattleBondStatIncreaseTrySpeed, BIT_SPEED
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectBattleBondStatIncreaseTrySpeed
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectBattleBondStatIncreaseTrySpeed:
|
|
setstatchanger STAT_SPEED, 1, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectBattleBondStatIncreaseRet
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectBattleBondStatIncreaseRet
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_EffectBattleBondStatIncreaseRet:
|
|
return
|
|
|
|
BattleScript_DancerActivates::
|
|
call BattleScript_AbilityPopUp
|
|
waitmessage B_WAIT_TIME_SHORT
|
|
jumptocalledmove TRUE
|
|
|
|
BattleScript_SynchronizeActivates::
|
|
waitstate
|
|
call BattleScript_AbilityPopUp
|
|
setnonvolatilestatus TRIGGER_ON_ABILITY
|
|
return
|
|
|
|
BattleScript_NoItemSteal::
|
|
call BattleScript_AbilityPopUpTarget
|
|
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
|
|
return
|
|
|
|
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
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_INCAPABLE_OF_POWER
|
|
BattleScript_MoveUsedLoafingAroundMsg::
|
|
printfromtable gInobedientStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
moveendto MOVEEND_NEXT_TARGET
|
|
end
|
|
BattleScript_TruantLoafingAround::
|
|
flushtextbox
|
|
call BattleScript_AbilityPopUp
|
|
goto BattleScript_MoveUsedLoafingAroundMsg
|
|
|
|
BattleScript_IgnoresAndFallsAsleep::
|
|
printstring STRINGID_PKMNBEGANTONAP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
seteffectprimary BS_ATTACKER, BS_ATTACKER, MOVE_EFFECT_SLEEP
|
|
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_BerryCureStatusRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printfromtable CureStatusBerryEffectStringID
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_GemActivates::
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
printstring STRINGID_GEMACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_ATTACKER
|
|
return
|
|
|
|
BattleScript_BerryReduceDmg::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
printstring STRINGID_BERRYDMGREDUCES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryCureConfusionRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMSNAPPEDOUT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_MentalHerbCureRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printfromtable gMentalHerbCureStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
updatestatusicon BS_SCRIPTING
|
|
removeitem BS_SCRIPTING
|
|
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_RemoveItem::
|
|
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_ItemHealHP_RemoveItemRet_AbilityPopUp
|
|
goto BattleScript_ItemHealHP_RemoveItemRet_Anim
|
|
BattleScript_ItemHealHP_RemoveItemRet_AbilityPopUp:
|
|
call BattleScript_AbilityPopUpScripting
|
|
BattleScript_ItemHealHP_RemoveItemRet_Anim:
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BerryPPHeal::
|
|
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_BerryPPHeal_AbilityPopup
|
|
goto BattleScript_BerryPPHeal_Anim
|
|
BattleScript_BerryPPHeal_AbilityPopup:
|
|
call BattleScript_AbilityPopUpScripting
|
|
BattleScript_BerryPPHeal_Anim:
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNSITEMRESTOREDPP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_ItemHealHP_End2::
|
|
call BattleScript_ItemHealHP_Ret
|
|
end2
|
|
|
|
BattleScript_AirBalloonMsgInRet::
|
|
printstring STRINGID_AIRBALLOONFLOAT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_AirBalloonMsgPop::
|
|
printstring STRINGID_AIRBALLOONPOP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_TARGET
|
|
return
|
|
|
|
BattleScript_ItemHurtRet::
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
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
|
|
healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
|
|
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_BerryConfuseHeal::
|
|
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
|
|
healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
seteffectprimary BS_SCRIPTING, BS_SCRIPTING, MOVE_EFFECT_CONFUSION
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_ConsumableStatRaiseRet::
|
|
jumpifnotberry BS_SCRIPTING, BattleScript_ConsumableStatRaiseRet_Anim
|
|
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_ConsumableStatRaiseRet_AbilityPopup
|
|
goto BattleScript_ConsumableStatRaiseRet_Anim
|
|
BattleScript_ConsumableStatRaiseRet_AbilityPopup:
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_ConsumableStatRaiseRet_Anim:
|
|
statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_ConsumableStatRaiseRet_End
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
|
|
statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR, BattleScript_ConsumableStatRaiseRet_End
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGED_ITEM
|
|
savetarget
|
|
copybyte gBattlerTarget, sBATTLER @ BattleScript_StatUp uses target as a message arg
|
|
call BattleScript_StatUp
|
|
restoretarget
|
|
removeitem BS_SCRIPTING
|
|
BattleScript_ConsumableStatRaiseRet_End:
|
|
return
|
|
|
|
BattleScript_BerryFocusEnergy::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_PKMNUSEDXTOGETPUMPED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_ActionSelectionItemsCantBeUsed::
|
|
printselectionstring STRINGID_ITEMSCANTBEUSEDNOW
|
|
endselectionscript
|
|
|
|
BattleScript_FlushMessageBox::
|
|
flushtextbox
|
|
return
|
|
|
|
BattleScript_PalacePrintFlavorText::
|
|
setbyte gBattleCommunication + 1, 0
|
|
BattleScript_PalaceTryBattlerFlavorText::
|
|
palaceflavortext
|
|
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
|
|
volumedown
|
|
playse SE_ARENA_TIMEUP1
|
|
pause 8
|
|
playse SE_ARENA_TIMEUP1
|
|
drawarenareftextbox
|
|
arenajudgmentstring B_MSG_REF_COMMENCE_BATTLE
|
|
arenawaitmessage
|
|
pause B_WAIT_TIME_LONG
|
|
erasearenareftextbox
|
|
volumeup
|
|
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
|
|
drawarenareftextbox
|
|
arenajudgmentstring B_MSG_REF_THATS_IT
|
|
arenawaitmessage
|
|
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
|
|
arenajudgmentwindow
|
|
arenajudgmentstring B_MSG_REF_JUDGE_SKILL
|
|
arenawaitmessage
|
|
arenajudgmentwindow
|
|
arenajudgmentstring B_MSG_REF_JUDGE_BODY
|
|
arenawaitmessage
|
|
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
|
|
arenajudgmentwindow
|
|
erasearenareftextbox
|
|
printstring STRINGID_DEFEATEDOPPONENTBYREFEREE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
undodynamax BS_OPPONENT1
|
|
playfaintcry BS_OPPONENT1
|
|
waitcry
|
|
dofaintanimation BS_OPPONENT1
|
|
cleareffectsonfaint BS_OPPONENT1
|
|
waitanimation
|
|
arenaopponentmonlost
|
|
end2
|
|
|
|
BattleScript_ArenaJudgmentPlayerLoses:
|
|
arenajudgmentstring B_MSG_REF_OPPONENT_WON
|
|
arenawaitmessage
|
|
arenajudgmentwindow
|
|
erasearenareftextbox
|
|
printstring STRINGID_LOSTTOOPPONENTBYREFEREE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
undodynamax BS_PLAYER1
|
|
playfaintcry BS_PLAYER1
|
|
waitcry
|
|
dofaintanimation BS_PLAYER1
|
|
cleareffectsonfaint BS_PLAYER1
|
|
waitanimation
|
|
arenaplayermonlost
|
|
end2
|
|
|
|
BattleScript_ArenaJudgmentDraw:
|
|
arenajudgmentstring B_MSG_REF_DRAW
|
|
arenawaitmessage
|
|
arenajudgmentwindow
|
|
erasearenareftextbox
|
|
printstring STRINGID_TIEDOPPONENTBYREFEREE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
arenabothmonslost
|
|
undodynamax BS_PLAYER1
|
|
playfaintcry BS_PLAYER1
|
|
waitcry
|
|
dofaintanimation BS_PLAYER1
|
|
cleareffectsonfaint BS_PLAYER1
|
|
waitanimation
|
|
undodynamax BS_OPPONENT1
|
|
playfaintcry BS_OPPONENT1
|
|
waitcry
|
|
dofaintanimation BS_OPPONENT1
|
|
cleareffectsonfaint BS_OPPONENT1
|
|
waitanimation
|
|
end2
|
|
|
|
BattleScript_AskIfWantsToForfeitMatch::
|
|
printselectionstring STRINGID_QUESTIONFORFEITMATCH
|
|
forfeityesnobox
|
|
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, NULL
|
|
printstring STRINGID_AURAFLAREDTOLIFE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_ApplyTotemVarBoost
|
|
end2
|
|
|
|
BattleScript_MirrorHerbCopyStatChangeEnd2::
|
|
call BattleScript_MirrorHerbCopyStatChange
|
|
end2
|
|
|
|
BattleScript_MirrorHerbCopyStatChange::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL
|
|
printstring STRINGID_MIRRORHERBCOPIED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
BattleScript_MirrorHerbStartCopyStats:
|
|
copyfoesstatincrease BS_SCRIPTING, BattleScript_MirrorHerbStartReturn
|
|
statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR, BattleScript_MirrorHerbStartReturn
|
|
setbyte sSTAT_ANIM_PLAYED, TRUE @ play stat change animation only once
|
|
goto BattleScript_MirrorHerbStartCopyStats
|
|
BattleScript_MirrorHerbStartReturn:
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
return
|
|
|
|
BattleScript_OpportunistCopyStatChange::
|
|
call BattleScript_AbilityPopUpScripting
|
|
BattleScript_OpportunistStartCopyStats:
|
|
copyfoesstatincrease BS_SCRIPTING, BattleScript_OpportunistCopyStatChangeEnd
|
|
statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR, BattleScript_OpportunistCopyStatChangeEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setbyte sSTAT_ANIM_PLAYED, TRUE @ play stat change animation only once
|
|
goto BattleScript_OpportunistStartCopyStats
|
|
BattleScript_OpportunistCopyStatChangeEnd:
|
|
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
return
|
|
|
|
BattleScript_TotemVar::
|
|
call BattleScript_TotemVar_Ret
|
|
end2
|
|
|
|
BattleScript_TotemVar_Ret::
|
|
gettotemboost BattleScript_ApplyTotemVarBoost
|
|
BattleScript_TotemVarEnd:
|
|
return
|
|
BattleScript_ApplyTotemVarBoost:
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_TotemVarEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_TotemVar_Ret @loop until stats bitfield is empty
|
|
|
|
|
|
BattleScript_AnnounceAirLockCloudNine::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_AIRLOCKACTIVATES
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_ActivateWeatherAbilities
|
|
return
|
|
|
|
BattleScript_ActivateTeraformZero::
|
|
call BattleScript_AbilityPopUp
|
|
waitmessage B_WAIT_TIME_LONG
|
|
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_ANY, BattleScript_ActivateTeraformZero_RemoveWeather
|
|
jumpifhalfword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_ANY, BattleScript_ActivateTeraformZero_RemoveTerrain
|
|
goto BattleScript_ActivateTeraformZero_Ret
|
|
BattleScript_ActivateTeraformZero_RemoveWeather:
|
|
removeweather
|
|
printfromtable gWeatherEndsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_ActivateWeatherAbilities
|
|
jumpifhalfword CMP_NO_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_ANY, BattleScript_ActivateTeraformZeroEffects
|
|
BattleScript_ActivateTeraformZero_RemoveTerrain:
|
|
removeterrain
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
printfromtable gTerrainStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ActivateTeraformZeroEffects:
|
|
saveattacker
|
|
savetarget
|
|
tryboosterenergy ON_ANY
|
|
resetterrainabilityflags
|
|
setbyte gBattlerAttacker, 0
|
|
sortbattlers
|
|
BattleScript_ActivateTeraformZeroLoop:
|
|
copyarraywithindex gBattlerTarget, gBattlersBySpeed, gBattlerAttacker, 1
|
|
activateterrainchangeabilities BS_TARGET
|
|
activateweatherchangeabilities BS_TARGET
|
|
addbyte gBattlerAttacker, 1
|
|
jumpifbytenotequal gBattlerAttacker, gBattlersCount, BattleScript_ActivateTeraformZeroLoop
|
|
restoreattacker
|
|
restoretarget
|
|
BattleScript_ActivateTeraformZero_Ret:
|
|
return
|
|
|
|
BattleScript_QuickClawActivation::
|
|
flushtextbox
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
printstring STRINGID_CANACTFASTERTHANKSTO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_QuickDrawActivation::
|
|
flushtextbox
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_CANACTFASTERTHANKSTO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_CustapBerryActivation::
|
|
flushtextbox
|
|
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
|
waitanimation
|
|
printstring STRINGID_CANACTFASTERTHANKSTO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_ATTACKER
|
|
end2
|
|
|
|
BattleScript_MicleBerryActivate::
|
|
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_MicleBerryActivateRet_Ripen
|
|
goto BattleScript_MicleBerryActivateRet_Anim
|
|
BattleScript_MicleBerryActivateRet_Ripen:
|
|
call BattleScript_AbilityPopUpScripting
|
|
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::
|
|
flushtextbox
|
|
trytrainerslidezmovemsg
|
|
printstring STRINGID_ZPOWERSURROUNDS
|
|
playanimation BS_ATTACKER, B_ANIM_ZMOVE_ACTIVATE, NULL
|
|
printstring STRINGID_ZMOVEUNLEASHED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_ZMoveActivateStatus::
|
|
flushtextbox
|
|
trytrainerslidezmovemsg
|
|
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, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
printfromtable gZEffectStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_StatUpZMove::
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_StatUpZMoveEnd
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_StatUpZMoveEnd
|
|
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, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
|
|
return
|
|
|
|
BattleScript_EffectExtremeEvoboost::
|
|
attackcanceler
|
|
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
|
|
setstatchanger STAT_ATK, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ExtremeEvoboostDef, BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ExtremeEvoboostDef::
|
|
setstatchanger STAT_DEF, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ExtremeEvoboostSpeed, BIT_SPEED | BIT_SPATK | BIT_SPDEF
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ExtremeEvoboostSpeed::
|
|
setstatchanger STAT_SPEED, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ExtremeEvoboostSpAtk, BIT_SPATK | BIT_SPDEF
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ExtremeEvoboostSpAtk::
|
|
setstatchanger STAT_SPATK, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ExtremeEvoboostSpDef, BIT_SPDEF
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ExtremeEvoboostSpDef::
|
|
setstatchanger STAT_SPDEF, 2, FALSE
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ExtremeEvoboostEnd
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ExtremeEvoboostEnd::
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_RemoveTerrain::
|
|
removeterrain
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
printfromtable gTerrainStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_Pickpocket::
|
|
call BattleScript_AbilityPopUp
|
|
jumpifability BS_ATTACKER, ABILITY_STICKY_HOLD, BattleScript_PickpocketPrevented
|
|
swapattackerwithtarget
|
|
copybyte gEffectBattler, gBattlerTarget
|
|
call BattleScript_ItemSteal
|
|
swapattackerwithtarget
|
|
activateitemeffects
|
|
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_RedCardActivationNoSwitch::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_REDCARDACTIVATE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
restoretarget
|
|
restoreattacker
|
|
return
|
|
|
|
BattleScript_RedCardActivates::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
|
printstring STRINGID_REDCARDACTIVATE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
swapattackerwithtarget
|
|
jumpifvolatile BS_EFFECT_BATTLER, VOLATILE_ROOT, BattleScript_RedCardIngrain
|
|
jumpifability BS_EFFECT_BATTLER, ABILITY_SUCTION_CUPS, BattleScript_RedCardSuctionCups
|
|
jumpiftargetdynamaxed BattleScript_RedCardDynamaxed
|
|
removeitem BS_SCRIPTING
|
|
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_RedCardIngrain:
|
|
printstring STRINGID_PKMNANCHOREDITSELF
|
|
BattleScript_RedCardIngrainContinue:
|
|
waitmessage B_WAIT_TIME_LONG
|
|
removeitem BS_SCRIPTING
|
|
goto BattleScript_RedCardEnd
|
|
BattleScript_RedCardSuctionCups:
|
|
printstring STRINGID_PKMNANCHORSITSELFWITH
|
|
goto BattleScript_RedCardIngrainContinue
|
|
BattleScript_RedCardDynamaxed:
|
|
printstring STRINGID_MOVEBLOCKEDBYDYNAMAX
|
|
goto BattleScript_RedCardIngrainContinue
|
|
|
|
BattleScript_RedCardEnd:
|
|
restoretarget
|
|
restoreattacker
|
|
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
|
|
undodynamax BS_SCRIPTING
|
|
makeinvisible BS_SCRIPTING
|
|
openpartyscreen BS_SCRIPTING, BattleScript_EjectButtonEnd
|
|
waitstate
|
|
returntoball BS_SCRIPTING, FALSE
|
|
copybyte sSAVED_BATTLER, sBATTLER
|
|
switchoutabilities BS_SCRIPTING
|
|
copybyte sBATTLER, sSAVED_BATTLER
|
|
switchhandleorder BS_SCRIPTING, 0x2
|
|
getswitchedmondata BS_SCRIPTING
|
|
switchindataupdate BS_SCRIPTING
|
|
hpthresholds BS_SCRIPTING
|
|
trytoclearprimalweather
|
|
flushtextbox
|
|
printstring 0x3
|
|
switchinanim BS_SCRIPTING, FALSE, TRUE
|
|
waitstate
|
|
switchineffects BS_SCRIPTING
|
|
switchinevents
|
|
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_DoesntAffectTargetAtkString::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setmoveresultflags MOVE_RESULT_NO_EFFECT
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_NoEffectivenessAbility::
|
|
call BattleScript_AbilityPopUp
|
|
BattleScript_DoesntAffectScripting::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_SCR_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_GoodAsGoldActivates::
|
|
call BattleScript_AbilityPopUp
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_SCR_ITDOESNTAFFECT
|
|
waitmessage B_WAIT_TIME_MED
|
|
return
|
|
|
|
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:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_NeutralizingGasExits::
|
|
saveattacker
|
|
savetarget
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_NEUTRALIZINGGASOVER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
setbyte gBattlerAttacker, 0
|
|
sortbattlers
|
|
BattleScript_NeutralizingGasExitsLoop:
|
|
copyarraywithindex gBattlerTarget, gBattlersBySpeed, gBattlerAttacker, 1
|
|
jumpifabilitycantbereactivated BS_TARGET, BattleScript_NeutralizingGasExitsLoopIncrement
|
|
saveattacker
|
|
switchinabilities BS_TARGET
|
|
restoreattacker
|
|
BattleScript_NeutralizingGasExitsLoopIncrement:
|
|
addbyte gBattlerAttacker, 1
|
|
jumpifbytenotequal gBattlerAttacker, gBattlersCount, BattleScript_NeutralizingGasExitsLoop
|
|
restoreattacker
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_MagicianActivates::
|
|
call BattleScript_AbilityPopUp
|
|
call BattleScript_ItemSteal
|
|
return
|
|
|
|
BattleScript_SymbiosisActivates::
|
|
call BattleScript_AbilityPopUp
|
|
printstring STRINGID_SYMBIOSISITEMPASS
|
|
waitmessage B_WAIT_TIME_LONG
|
|
tryactivateabilitywithabilityshield BS_EFFECT_BATTLER, FALSE
|
|
return
|
|
|
|
BattleScript_TargetAbilityStatRaiseRet::
|
|
saveattacker
|
|
copybyte gBattlerAttacker, gEffectBattler
|
|
call BattleScript_AbilityPopUp
|
|
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN, BattleScript_TargetAbilityStatRaiseRet_End
|
|
call BattleScript_StatUp
|
|
BattleScript_TargetAbilityStatRaiseRet_End:
|
|
restoreattacker
|
|
return
|
|
|
|
BattleScript_EffectRaiseStatAllies::
|
|
savetarget
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
copybyte sSAVED_STAT_CHANGER, sSTATCHANGER
|
|
BattleScript_RaiseSideStatsLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_RaiseSideStatsIncrement
|
|
copybyte sSTATCHANGER, sSAVED_STAT_CHANGER
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_RaiseSideStatsIncrement
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_RaiseSideStatsIncrement
|
|
printfromtable gStatUpStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_RaiseSideStatsIncrement:
|
|
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_RaiseSideStatsEnd
|
|
setallytonexttarget BattleScript_RaiseSideStatsLoop
|
|
BattleScript_RaiseSideStatsEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectLowerStatFoes::
|
|
savetarget
|
|
copybyte sBATTLER, gBattlerTarget
|
|
copybyte sSAVED_STAT_CHANGER, sSTATCHANGER
|
|
BattleScript_LowerSideStatsLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_LowerSideStatsIncrement
|
|
copybyte sSTATCHANGER, sSAVED_STAT_CHANGER
|
|
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_LowerSideStatsIncrement
|
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_LowerSideStatsIncrement
|
|
printfromtable gStatDownStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_LowerSideStatsIncrement:
|
|
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_LowerSideStatsEnd
|
|
setallytonexttarget BattleScript_LowerSideStatsLoop
|
|
BattleScript_LowerSideStatsEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectSetWeather::
|
|
playanimation 0, B_ANIM_MAX_SET_WEATHER
|
|
printfromtable gMoveWeatherChangeStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
call BattleScript_ActivateWeatherAbilities
|
|
return
|
|
|
|
BattleScript_EffectSetTerrain::
|
|
printfromtable gTerrainStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
|
call BattleScript_ActivateTerrainEffects
|
|
return
|
|
|
|
BattleScript_DamageNonTypesStarts::
|
|
printfromtable gDamageNonTypesStartStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_DamageNonTypesContinues::
|
|
printfromtable gDamageNonTypesDmgStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
effectivenesssound
|
|
hitanimation BS_ATTACKER
|
|
goto BattleScript_DoTurnDmg
|
|
|
|
BattleScript_EffectTryReducePP::
|
|
tryspiteppreduce BattleScript_MoveEnd
|
|
printstring STRINGID_PKMNREDUCEDPP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_EffectParalyzeSide::
|
|
savetarget
|
|
copybyte sBATTLER, gBattlerTarget
|
|
BattleScript_ParalyzeSideLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_ParalyzeSideIncrement
|
|
trysetparalysis BattleScript_ParalyzeSideIncrement
|
|
BattleScript_ParalyzeSideIncrement:
|
|
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_ParalyzeSideEnd
|
|
setallytonexttarget BattleScript_ParalyzeSideLoop
|
|
BattleScript_ParalyzeSideEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectPoisonSide::
|
|
savetarget
|
|
copybyte sBATTLER, gBattlerTarget
|
|
BattleScript_PoisonSideLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_PoisonSideIncrement
|
|
trysetpoison BattleScript_PoisonSideIncrement
|
|
BattleScript_PoisonSideIncrement:
|
|
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_PoisonSideEnd
|
|
setallytonexttarget BattleScript_PoisonSideLoop
|
|
BattleScript_PoisonSideEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectPoisonParalyzeSide::
|
|
savetarget
|
|
copybyte sBATTLER, gBattlerTarget
|
|
BattleScript_PoisonParalyzeSideLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_PoisonParalyzeSideIncrement
|
|
trysetpoisonparalysis BattleScript_PoisonParalyzeSideIncrement
|
|
BattleScript_PoisonParalyzeSideIncrement:
|
|
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_PoisonParalyzeSideEnd
|
|
setallytonexttarget BattleScript_PoisonParalyzeSideLoop
|
|
BattleScript_PoisonParalyzeSideEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectEffectSporeSide::
|
|
savetarget
|
|
copybyte sBATTLER, gBattlerTarget
|
|
BattleScript_EffectSporeSideLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_EffectSporeSideIncrement
|
|
tryseteffectspore BattleScript_EffectSporeSideIncrement
|
|
BattleScript_EffectSporeSideIncrement:
|
|
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_EffectSporeSideEnd
|
|
setallytonexttarget BattleScript_EffectSporeSideLoop
|
|
BattleScript_EffectSporeSideEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectConfuseSide::
|
|
savetarget
|
|
copybyte sBATTLER, gBattlerTarget
|
|
BattleScript_ConfuseSideLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_ConfuseSideIncrement
|
|
trysetconfusion BattleScript_ConfuseSideIncrement
|
|
volatileanimation BS_EFFECT_BATTLER, VOLATILE_CONFUSION
|
|
BattleScript_ConfuseSidePrintMessage:
|
|
printstring STRINGID_PKMNWASCONFUSED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_ConfuseSideIncrement:
|
|
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_ConfuseSideEnd
|
|
setallytonexttarget BattleScript_ConfuseSideLoop
|
|
BattleScript_ConfuseSideEnd:
|
|
restoretarget
|
|
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 1, BattleScript_PrintCoinsScattered @ Gold Rush
|
|
return
|
|
|
|
BattleScript_PrintCoinsScattered:
|
|
printstring STRINGID_COINSSCATTERED
|
|
return
|
|
|
|
BattleScript_EffectInfatuateSide::
|
|
savetarget
|
|
copybyte sBATTLER, gBattlerTarget
|
|
BattleScript_InfatuateSideLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_InfatuateSideIncrement
|
|
trysetinfatuation BattleScript_InfatuateSideIncrement
|
|
volatileanimation BS_EFFECT_BATTLER, VOLATILE_INFATUATION
|
|
BattleScript_InfatuateSidePrintMessage:
|
|
printstring STRINGID_PKMNFELLINLOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_InfatuateSideIncrement:
|
|
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_InfatuateSideEnd
|
|
setallytonexttarget BattleScript_InfatuateSideLoop
|
|
BattleScript_InfatuateSideEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectTormentSide::
|
|
savetarget
|
|
copybyte sBATTLER, gBattlerTarget
|
|
BattleScript_TormentSideLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_TormentSideIncrement
|
|
trysettorment BattleScript_TormentSideIncrement
|
|
BattleScript_TormentSidePrintMessage:
|
|
printstring STRINGID_PKMNSUBJECTEDTOTORMENT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_TormentSideIncrement:
|
|
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_TormentSideEnd
|
|
setallytonexttarget BattleScript_TormentSideLoop
|
|
BattleScript_TormentSideEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_TormentEnds::
|
|
printstring STRINGID_TORMENTEDNOMORE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_EffectMeanLookSide::
|
|
savetarget
|
|
copybyte sBATTLER, gBattlerTarget
|
|
BattleScript_MeanLookSideLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_MeanLookSideIncrement
|
|
trysetescapeprevention BattleScript_MeanLookSideIncrement
|
|
BattleScript_MeanLookSidePrintMessage:
|
|
printstring STRINGID_TARGETCANTESCAPENOW
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_MeanLookSideIncrement:
|
|
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_MeanLookSideEnd
|
|
setallytonexttarget BattleScript_MeanLookSideLoop
|
|
BattleScript_MeanLookSideEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectRaiseCritAlliesAnim::
|
|
savetarget
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
BattleScript_RaiseCritAlliesLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_RaiseCritAlliesIncrement
|
|
setstatchanger STAT_ATK, 0, FALSE @ for animation
|
|
statbuffchange BS_TARGET, 0, BattleScript_RaiseCritAlliesIncrement @ for animation
|
|
printstring STRINGID_PKMNGETTINGPUMPED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_RaiseCritAlliesIncrement:
|
|
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_RaiseCritAlliesEnd
|
|
setallytonexttarget BattleScript_RaiseCritAlliesLoop
|
|
BattleScript_RaiseCritAlliesEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectHealOneSixthAllies::
|
|
jumpifteamhealthy BattleScript_MoveEnd
|
|
savetarget
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
BattleScript_HealOneSixthAlliesLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_HealOneSixthAlliesIncrement
|
|
tryhealsixthhealth BattleScript_HealOneSixthAlliesIncrement
|
|
healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
|
|
printstring STRINGID_PKMNREGAINEDHEALTH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_HealOneSixthAlliesIncrement:
|
|
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_HealOneSixthAlliesEnd
|
|
setallytonexttarget BattleScript_HealOneSixthAlliesLoop
|
|
BattleScript_HealOneSixthAlliesEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectRecycleBerriesAllies::
|
|
savetarget
|
|
copybyte gBattlerTarget, gBattlerAttacker
|
|
BattleScript_RecycleBerriesAlliesLoop:
|
|
jumpifabsent BS_TARGET, BattleScript_RecycleBerriesAlliesIncrement
|
|
tryrecycleberry BattleScript_RecycleBerriesAlliesIncrement
|
|
swapattackerwithtarget
|
|
printstring STRINGID_XFOUNDONEY
|
|
waitmessage B_WAIT_TIME_LONG
|
|
swapattackerwithtarget
|
|
BattleScript_RecycleBerriesAlliesIncrement:
|
|
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_RecycleBerriesAlliesEnd
|
|
setallytonexttarget BattleScript_RecycleBerriesAlliesLoop
|
|
BattleScript_RecycleBerriesAlliesEnd:
|
|
restoretarget
|
|
return
|
|
|
|
BattleScript_EffectSteelsurge::
|
|
setsteelsurge BattleScript_MoveEnd
|
|
printfromtable gDmgHazardsStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
@@@ END MAX MOVES @@@
|
|
|
|
BattleScript_DynamaxBegins::
|
|
flushtextbox
|
|
trytrainerslidedynamaxmsg
|
|
jumpifcangigantamax BS_ATTACKER, BattleScript_DynamaxBegins_GigantamaxString_01
|
|
printstring STRINGID_TIMETODYNAMAX
|
|
waitmessage B_WAIT_TIME_MED
|
|
goto BattleScript_DynamaxBegins_SwitchIn
|
|
BattleScript_DynamaxBegins_GigantamaxString_01:
|
|
printstring STRINGID_TIMETOGIGANTAMAX
|
|
waitmessage B_WAIT_TIME_MED
|
|
BattleScript_DynamaxBegins_SwitchIn:
|
|
returnatktoball
|
|
pause B_WAIT_TIME_SHORT
|
|
returntoball BS_SCRIPTING, TRUE
|
|
switchinanim BS_SCRIPTING, TRUE, TRUE
|
|
updatedynamax
|
|
playanimation BS_SCRIPTING, B_ANIM_DYNAMAX_GROWTH
|
|
waitanimation
|
|
jumpifbyteequal B_SHOW_DYNAMAX_MESSAGE, FALSE, BattleScript_DynamaxBegins_End3
|
|
jumpifcangigantamax BS_ATTACKER, BattleScript_DynamaxBegins_GigantamaxString_02
|
|
printstring STRINGID_PKMNDYNAMAXED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_DynamaxBegins_End3
|
|
BattleScript_DynamaxBegins_GigantamaxString_02:
|
|
printstring STRINGID_PKMNGIGANTAMAXED
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_DynamaxBegins_End3:
|
|
end3
|
|
|
|
BattleScript_DynamaxEnds::
|
|
flushtextbox
|
|
updatedynamax
|
|
playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
end2
|
|
|
|
BattleScript_DynamaxEnds_Ret::
|
|
flushtextbox
|
|
updatedynamax
|
|
playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE
|
|
waitanimation
|
|
pause B_WAIT_TIME_SHORT
|
|
return
|
|
|
|
BattleScript_MoveBlockedByDynamax::
|
|
accuracycheck BattleScript_MoveMissedPause
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_MOVEBLOCKEDBYDYNAMAX
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_PokemonCantUseTheMove::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_BUTPOKEMONCANTUSETHEMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_TargetAvoidsAttack::
|
|
pause B_WAIT_TIME_SHORT
|
|
printfromtable gMissStringIds
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_CouldntFullyProtect::
|
|
printstring STRINGID_COULDNTFULLYPROTECT
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_BerserkGeneRet::
|
|
statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_BerserkGeneRet_TryConfuse
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
|
|
statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR, BattleScript_BerserkGeneRet_TryConfuse
|
|
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGED_ITEM
|
|
call BattleScript_StatUp
|
|
BattleScript_BerserkGeneRet_TryConfuse:
|
|
jumpifability BS_SCRIPTING, ABILITY_OWN_TEMPO, BattleScript_BerserkGeneRet_OwnTempoPrevents
|
|
jumpifsafeguard BattleScript_BerserkGeneRet_SafeguardProtected
|
|
seteffectprimary BS_SCRIPTING, BS_SCRIPTING, MOVE_EFFECT_CONFUSION
|
|
goto BattleScript_BerserkGeneRet_End
|
|
BattleScript_BerserkGeneRet_SafeguardProtected::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_PKMNUSEDSAFEGUARD
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_BerserkGeneRet_End
|
|
BattleScript_BerserkGeneRet_OwnTempoPrevents:
|
|
pause B_WAIT_TIME_SHORT
|
|
call BattleScript_AbilityPopUpScripting
|
|
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
|
|
waitmessage B_WAIT_TIME_LONG
|
|
BattleScript_BerserkGeneRet_End:
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_BoosterEnergyRet::
|
|
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
|
|
call BattleScript_AbilityPopUpScripting
|
|
printstring STRINGID_BOOSTERENERGYACTIVATES
|
|
waitmessage B_WAIT_TIME_MED
|
|
printstring STRINGID_STATWASHEIGHTENED
|
|
waitmessage B_WAIT_TIME_MED
|
|
removeitem BS_SCRIPTING
|
|
return
|
|
|
|
BattleScript_SleepClauseBlocked::
|
|
pause B_WAIT_TIME_SHORT
|
|
setmoveresultflags MOVE_RESULT_FAILED
|
|
printstring STRINGID_BLOCKEDBYSLEEPCLAUSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SleepClausePreventsEnd2::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_BLOCKEDBYSLEEPCLAUSE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_QuestionForfeitBattle::
|
|
printselectionstring STRINGID_QUESTIONFORFEITBATTLE
|
|
forfeityesnobox
|
|
endselectionscript
|
|
|
|
BattleScript_ForfeitBattleGaveMoney::
|
|
getmoneyreward
|
|
.if B_WHITEOUT_MONEY >= GEN_4
|
|
printstring STRINGID_PLAYERWHITEOUT2_TRAINER
|
|
.else
|
|
printstring STRINGID_PLAYERWHITEOUT3
|
|
.endif
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|
|
BattleScript_Attackstring::
|
|
printattackstring
|
|
return
|
|
|
|
BattleScript_SubmoveAttackstring::
|
|
printattackstring
|
|
pause B_WAIT_TIME_LONG
|
|
attackanimation
|
|
waitanimation
|
|
setcalledmove
|
|
return
|
|
|
|
BattleScript_SleepTalkAttackstring::
|
|
printattackstring
|
|
pause B_WAIT_TIME_LONG
|
|
printstring STRINGID_PKMNFASTASLEEP
|
|
waitmessage B_WAIT_TIME_LONG
|
|
statusanimation BS_ATTACKER
|
|
attackanimation
|
|
waitanimation
|
|
setcalledmove
|
|
return
|
|
|
|
BattleScript_MetronomeAttackstring::
|
|
printattackstring
|
|
pause B_WAIT_TIME_LONG
|
|
attackanimation
|
|
waitanimation
|
|
setcalledmove
|
|
printstring STRINGID_WAGGLINGAFINGER
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_NaturePowerAttackstring::
|
|
printattackstring
|
|
pause B_WAIT_TIME_SHORT
|
|
setcalledmove
|
|
printstring STRINGID_NATUREPOWERTURNEDINTO
|
|
waitmessage B_WAIT_TIME_LONG
|
|
return
|
|
|
|
BattleScript_SwapFromSubstitute::
|
|
jumpifvolatile BS_SCRIPTING, VOLATILE_SUBSTITUTE, BattleScript_SwapFromSubstituteContinue
|
|
goto BattleScript_SwapFromSubstituteReturn
|
|
BattleScript_SwapFromSubstituteContinue:
|
|
playanimation BS_SCRIPTING, B_ANIM_SWAP_FROM_SUBSTITUTE
|
|
waitanimation
|
|
BattleScript_SwapFromSubstituteReturn:
|
|
return
|
|
|
|
BattleScript_SwapToSubstitute::
|
|
jumpifvolatile BS_SCRIPTING, VOLATILE_SUBSTITUTE, BattleScript_SwapToSubstituteContinue
|
|
goto BattleScript_SwapToSubstituteReturn
|
|
BattleScript_SwapToSubstituteContinue:
|
|
playanimation BS_SCRIPTING, B_ANIM_SWAP_TO_SUBSTITUTE
|
|
waitanimation
|
|
BattleScript_SwapToSubstituteReturn:
|
|
return
|
|
|
|
BattleScript_TooScaredToMove::
|
|
printstring STRINGID_MONTOOSCAREDTOMOVE
|
|
waitmessage B_WAIT_TIME_LONG
|
|
playanimation BS_ATTACKER, B_ANIM_MON_SCARED
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_GhostGetOutGetOut::
|
|
printstring STRINGID_GHOSTGETOUTGETOUT
|
|
playanimation BS_ATTACKER, B_ANIM_GHOST_GET_OUT
|
|
goto BattleScript_MoveEnd
|
|
|
|
BattleScript_SilphScopeUnveiled::
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_SILPHSCOPEUNVEILED
|
|
waitstate
|
|
playanimation BS_OPPONENT1, B_ANIM_SILPH_SCOPED
|
|
pause B_WAIT_TIME_SHORT
|
|
printstring STRINGID_GHOSTWASMAROWAK
|
|
waitmessage B_WAIT_TIME_LONG
|
|
end2
|
|
|