diff options
24 files changed, 7828 insertions, 1310 deletions
diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc new file mode 100644 index 000000000..3a8e99a94 --- /dev/null +++ b/asm/macros/battle_script.inc @@ -0,0 +1,1232 @@ +@ commands + .macro attackcanceler + .byte 0x0 + .endm + + .macro accuracycheck param0, param1 + .byte 0x1 + .4byte \param0 + .2byte \param1 + .endm + + .macro attackstring + .byte 0x2 + .endm + + .macro ppreduce + .byte 0x3 + .endm + + .macro critcalc + .byte 0x4 + .endm + + .macro damagecalc + .byte 0x5 + .endm + + .macro typecalc + .byte 0x6 + .endm + + .macro adjustnormaldamage + .byte 0x7 + .endm + + .macro adjustnormaldamage2 + .byte 0x8 + .endm + + .macro attackanimation + .byte 0x9 + .endm + + .macro waitanimation + .byte 0xa + .endm + + .macro healthbarupdate bank + .byte 0xb + .byte \bank + .endm + + .macro datahpupdate bank + .byte 0xc + .byte \bank + .endm + + .macro critmessage + .byte 0xd + .endm + + .macro effectivenesssound + .byte 0xe + .endm + + .macro resultmessage + .byte 0xf + .endm + + .macro printstring param0 + .byte 0x10 + .2byte \param0 + .endm + + .macro printselectionstring param0 + .byte 0x11 + .2byte \param0 + .endm + + .macro waitmessage param0 + .byte 0x12 + .2byte \param0 + .endm + + .macro printfromtable param0 + .byte 0x13 + .4byte \param0 + .endm + + .macro printselectionstringfromtable param0 + .byte 0x14 + .4byte \param0 + .endm + + .macro seteffectwithchance + .byte 0x15 + .endm + + .macro seteffectprimary + .byte 0x16 + .endm + + .macro seteffectsecondary + .byte 0x17 + .endm + + .macro clearstatusfromeffect bank + .byte 0x18 + .byte \bank + .endm + + .macro tryfaintmon bank, param1, param2 + .byte 0x19 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro dofaintanimation bank + .byte 0x1a + .byte \bank + .endm + + .macro cleareffectsonfaint bank + .byte 0x1b + .byte \bank + .endm + + .macro jumpifstatus bank, status1, param2 + .byte 0x1c + .byte \bank + .4byte \status1 + .4byte \param2 + .endm + + .macro jumpifstatus2 bank, status2, param2 + .byte 0x1d + .byte \bank + .4byte \status2 + .4byte \param2 + .endm + + .macro jumpifability param0, ability, param2 + .byte 0x1e + .byte \param0 + .byte \ability + .4byte \param2 + .endm + + .macro jumpifsideaffecting bank, sidestatus, param2 + .byte 0x1f + .byte \bank + .2byte \sidestatus + .4byte \param2 + .endm + + .macro jumpifstat bank, ifflag, stat, param3, param4 + .byte 0x20 + .byte \bank + .byte \ifflag + .byte \stat + .byte \param3 + .4byte \param4 + .endm + + .macro jumpifstatus3 bank, status3, param2, param3 + .byte 0x21 + .byte \bank + .4byte \status3 + .byte \param2 + .4byte \param3 + .endm + + .macro jumpiftype bank, type, param2 + .byte 0x22 + .byte \bank + .byte \type + .4byte \param2 + .endm + + .macro getexp bank + .byte 0x23 + .byte \bank + .endm + + .macro atk24 param0 + .byte 0x24 + .4byte \param0 + .endm + + .macro movevaluescleanup + .byte 0x25 + .endm + + .macro setmultihit param0 + .byte 0x26 + .byte \param0 + .endm + + .macro decrementmultihit param0 + .byte 0x27 + .4byte \param0 + .endm + + .macro goto param0 + .byte 0x28 + .4byte \param0 + .endm + + .macro jumpifbyte ifflag, param1, param2, param3 + .byte 0x29 + .byte \ifflag + .4byte \param1 + .byte \param2 + .4byte \param3 + .endm + + .macro jumpifhalfword ifflag, param1, param2, param3 + .byte 0x2a + .byte \ifflag + .4byte \param1 + .2byte \param2 + .4byte \param3 + .endm + + .macro jumpifword ifflag, param1, param2, param3 + .byte 0x2b + .byte \ifflag + .4byte \param1 + .4byte \param2 + .4byte \param3 + .endm + + .macro jumpifarrayequal param0, param1, param2, param3 + .byte 0x2c + .4byte \param0 + .4byte \param1 + .byte \param2 + .4byte \param3 + .endm + + .macro jumpifarraynotequal param0, param1, param2, param3 + .byte 0x2d + .4byte \param0 + .4byte \param1 + .byte \param2 + .4byte \param3 + .endm + + .macro setbyte param0, param1 + .byte 0x2e + .4byte \param0 + .byte \param1 + .endm + + .macro addbyte param0, param1 + .byte 0x2f + .4byte \param0 + .byte \param1 + .endm + + .macro subbyte param0, param1 + .byte 0x30 + .4byte \param0 + .byte \param1 + .endm + + .macro copyarray param0, param1, param2 + .byte 0x31 + .4byte \param0 + .4byte \param1 + .byte \param2 + .endm + + .macro copyarraywithindex param0, param1, param2, param3 + .byte 0x32 + .4byte \param0 + .4byte \param1 + .4byte \param2 + .byte \param3 + .endm + + .macro orbyte param0, param1 + .byte 0x33 + .4byte \param0 + .byte \param1 + .endm + + .macro orhalfword param0, param1 + .byte 0x34 + .4byte \param0 + .2byte \param1 + .endm + + .macro orword param0, param1 + .byte 0x35 + .4byte \param0 + .4byte \param1 + .endm + + .macro bicbyte param0, param1 + .byte 0x36 + .4byte \param0 + .byte \param1 + .endm + + .macro bichalfword param0, param1 + .byte 0x37 + .4byte \param0 + .2byte \param1 + .endm + + .macro bicword param0, param1 + .byte 0x38 + .4byte \param0 + .4byte \param1 + .endm + + .macro pause param0 + .byte 0x39 + .2byte \param0 + .endm + + .macro waitstate + .byte 0x3a + .endm + + .macro healthbar_update bank + .byte 0x3b + .byte \bank + .endm + + .macro return + .byte 0x3c + .endm + + .macro end + .byte 0x3d + .endm + + .macro end2 + .byte 0x3e + .endm + + .macro end3 + .byte 0x3f + .endm + + .macro jumpifaffectedbyprotect param0 + .byte 0x40 + .4byte \param0 + .endm + + .macro call param0 + .byte 0x41 + .4byte \param0 + .endm + + .macro jumpiftype2 bank, type, param2 + .byte 0x42 + .byte \bank + .byte \type + .4byte \param2 + .endm + + .macro jumpifabilitypresent ability, param1 + .byte 0x43 + .byte \ability + .4byte \param1 + .endm + + .macro endselectionscript + .byte 0x44 + .endm + + .macro playanimation bank, param1, param2 + .byte 0x45 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro playanimation2 bank, param1, param2 + .byte 0x46 + .byte \bank + .4byte \param1 + .4byte \param2 + .endm + + .macro setgraphicalstatchangevalues + .byte 0x47 + .endm + + .macro playstatchangeanimation bank, param1, param2 + .byte 0x48 + .byte \bank + .byte \param1 + .byte \param2 + .endm + + .macro moveend param0, param1 + .byte 0x49 + .byte \param0 + .byte \param1 + .endm + + .macro typecalc2 + .byte 0x4a + .endm + + .macro returnatktoball + .byte 0x4b + .endm + + .macro getswitchedmondata bank + .byte 0x4c + .byte \bank + .endm + + .macro switchindataupdate bank + .byte 0x4d + .byte \bank + .endm + + .macro switchinanim bank, param1 + .byte 0x4e + .byte \bank + .byte \param1 + .endm + + .macro jumpifcantswitch bank, param1 + .byte 0x4f + .byte \bank + .4byte \param1 + .endm + + .macro openpartyscreen param0, param1 + .byte 0x50 + .byte \param0 + .4byte \param1 + .endm + + .macro switchhandleorder bank, param1 + .byte 0x51 + .byte \bank + .byte \param1 + .endm + + .macro switchineffects bank + .byte 0x52 + .byte \bank + .endm + + .macro trainerslidein bank + .byte 0x53 + .byte \bank + .endm + + .macro playse param0 + .byte 0x54 + .2byte \param0 + .endm + + .macro fanfare param0 + .byte 0x55 + .2byte \param0 + .endm + + .macro playfaintcry bank + .byte 0x56 + .byte \bank + .endm + + .macro atk57 + .byte 0x57 + .endm + + .macro returntoball bank + .byte 0x58 + .byte \bank + .endm + + .macro handlelearnnewmove param0, param1, param2 + .byte 0x59 + .4byte \param0 + .4byte \param1 + .byte \param2 + .endm + + .macro yesnoboxlearnmove param0 + .byte 0x5a + .4byte \param0 + .endm + + .macro yesnoboxstoplearningmove param0 + .byte 0x5b + .4byte \param0 + .endm + + .macro hitanimation bank + .byte 0x5c + .byte \bank + .endm + + .macro getmoneyreward + .byte 0x5d + .endm + + .macro atk5E bank + .byte 0x5e + .byte \bank + .endm + + .macro atk5F + .byte 0x5f + .endm + + .macro incrementgamestat param0 + .byte 0x60 + .byte \param0 + .endm + + .macro drawpartystatussummary bank + .byte 0x61 + .byte \bank + .endm + + .macro atk62 bank + .byte 0x62 + .byte \bank + .endm + + .macro jumptorandomattack param0 + .byte 0x63 + .byte \param0 + .endm + + .macro statusanimation bank + .byte 0x64 + .byte \bank + .endm + + .macro status2animation bank, status2 + .byte 0x65 + .byte \bank + .4byte \status2 + .endm + + .macro chosenstatusanimation bank, param1, param2 + .byte 0x66 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro yesnobox + .byte 0x67 + .endm + + .macro cancelallactions + .byte 0x68 + .endm + + .macro adjustsetdamage + .byte 0x69 + .endm + + .macro removeitem bank + .byte 0x6a + .byte \bank + .endm + + .macro atknameinbuff1 + .byte 0x6b + .endm + + .macro drawlvlupbox + .byte 0x6c + .endm + + .macro resetsentmonsvalue + .byte 0x6d + .endm + + .macro setatktoplayer0 + .byte 0x6e + .endm + + .macro makevisible bank + .byte 0x6f + .byte \bank + .endm + + .macro recordlastability bank + .byte 0x70 + .byte \bank + .endm + + .macro buffermovetolearn + .byte 0x71 + .endm + + .macro jumpifplayerran param0 + .byte 0x72 + .4byte \param0 + .endm + + .macro hpthresholds bank + .byte 0x73 + .byte \bank + .endm + + .macro hpthresholds2 bank + .byte 0x74 + .byte \bank + .endm + + .macro useitemonopponent + .byte 0x75 + .endm + + .macro various bank, param1 + .byte 0x76 + .byte \bank + .byte \param1 + .endm + + .macro setprotectlike + .byte 0x77 + .endm + + .macro faintifabilitynotdamp + .byte 0x78 + .endm + + .macro setatkhptozero + .byte 0x79 + .endm + + .macro jumpifnexttargetvalid param0 + .byte 0x7a + .4byte \param0 + .endm + + .macro tryhealhalfhealth param0, bank + .byte 0x7b + .4byte \param0 + .byte \bank + .endm + + .macro trymirrormove + .byte 0x7c + .endm + + .macro setrain + .byte 0x7d + .endm + + .macro setreflect + .byte 0x7e + .endm + + .macro setseeded + .byte 0x7f + .endm + + .macro manipulatedamage param0 + .byte 0x80 + .byte \param0 + .endm + + .macro trysetrest param0 + .byte 0x81 + .4byte \param0 + .endm + + .macro jumpifnotfirstturn param0 + .byte 0x82 + .4byte \param0 + .endm + + .macro nop + .byte 0x83 + .endm + + .macro jumpifcantmakeasleep param0 + .byte 0x84 + .4byte \param0 + .endm + + .macro stockpile + .byte 0x85 + .endm + + .macro stockpiletobasedamage param0 + .byte 0x86 + .4byte \param0 + .endm + + .macro stockpiletohpheal param0 + .byte 0x87 + .4byte \param0 + .endm + + .macro negativedamage + .byte 0x88 + .endm + + .macro statbuffchange param0, param1 + .byte 0x89 + .byte \param0 + .4byte \param1 + .endm + + .macro normalisebuffs + .byte 0x8a + .endm + + .macro setbide + .byte 0x8b + .endm + + .macro confuseifrepeatingattackends + .byte 0x8c + .endm + + .macro setmultihitcounter param0 + .byte 0x8d + .byte \param0 + .endm + + .macro initmultihitstring + .byte 0x8e + .endm + + .macro forcerandomswitch param0 + .byte 0x8f + .4byte \param0 + .endm + + .macro tryconversiontypechange param0 + .byte 0x90 + .4byte \param0 + .endm + + .macro givepaydaymoney + .byte 0x91 + .endm + + .macro setlightscreen + .byte 0x92 + .endm + + .macro tryKO param0 + .byte 0x93 + .4byte \param0 + .endm + + .macro damagetohalftargethp + .byte 0x94 + .endm + + .macro setsandstorm + .byte 0x95 + .endm + + .macro weatherdamage + .byte 0x96 + .endm + + .macro tryinfatuating param0 + .byte 0x97 + .4byte \param0 + .endm + + .macro updatestatusicon bank + .byte 0x98 + .byte \bank + .endm + + .macro setmist + .byte 0x99 + .endm + + .macro setfocusenergy + .byte 0x9a + .endm + + .macro transformdataexecution + .byte 0x9b + .endm + + .macro setsubstitute + .byte 0x9c + .endm + + .macro mimicattackcopy param0 + .byte 0x9d + .4byte \param0 + .endm + + .macro metronome + .byte 0x9e + .endm + + .macro dmgtolevel + .byte 0x9f + .endm + + .macro psywavedamageeffect + .byte 0xa0 + .endm + + .macro counterdamagecalculator param0 + .byte 0xa1 + .4byte \param0 + .endm + + .macro mirrorcoatdamagecalculator param0 + .byte 0xa2 + .4byte \param0 + .endm + + .macro disablelastusedattack param0 + .byte 0xa3 + .4byte \param0 + .endm + + .macro trysetencore param0 + .byte 0xa4 + .4byte \param0 + .endm + + .macro painsplitdmgcalc param0 + .byte 0xa5 + .4byte \param0 + .endm + + .macro settypetorandomresistance param0 + .byte 0xa6 + .4byte \param0 + .endm + + .macro setalwayshitflag + .byte 0xa7 + .endm + + .macro copymovepermanently param0 + .byte 0xa8 + .4byte \param0 + .endm + + .macro sleeptalk_choose_move param0 + .byte 0xa9 + .4byte \param0 + .endm + + .macro setdestinybond + .byte 0xaa + .endm + + .macro trysetdestinybondtohappen + .byte 0xab + .endm + + .macro remaininghptopower + .byte 0xac + .endm + + .macro tryspiteppreduce param0 + .byte 0xad + .4byte \param0 + .endm + + .macro healpartystatus + .byte 0xae + .endm + + .macro cursetarget param0 + .byte 0xaf + .4byte \param0 + .endm + + .macro trysetspikes param0 + .byte 0xb0 + .4byte \param0 + .endm + + .macro setforesight + .byte 0xb1 + .endm + + .macro trysetperishsong param0 + .byte 0xb2 + .4byte \param0 + .endm + + .macro rolloutdamagecalculation + .byte 0xb3 + .endm + + .macro jumpifconfusedandstatmaxed stat, param1 + .byte 0xb4 + .byte \stat + .4byte \param1 + .endm + + .macro furycuttercalc + .byte 0xb5 + .endm + + .macro happinesstodamagecalculation + .byte 0xb6 + .endm + + .macro presentdamagecalculation + .byte 0xb7 + .endm + + .macro setsafeguard + .byte 0xb8 + .endm + + .macro magnitudedamagecalculation + .byte 0xb9 + .endm + + .macro jumpifnopursuitswitchdmg param0 + .byte 0xba + .4byte \param0 + .endm + + .macro setsunny + .byte 0xbb + .endm + + .macro maxattackhalvehp param0 + .byte 0xbc + .4byte \param0 + .endm + + .macro copyfoestats param0 + .byte 0xbd + .4byte \param0 + .endm + + .macro rapidspinfree + .byte 0xbe + .endm + + .macro setdefensecurlbit + .byte 0xbf + .endm + + .macro recoverbasedonsunlight param0 + .byte 0xc0 + .4byte \param0 + .endm + + .macro hiddenpowercalc + .byte 0xc1 + .endm + + .macro selectfirstvalidtarget + .byte 0xc2 + .endm + + .macro trysetfutureattack param0 + .byte 0xc3 + .4byte \param0 + .endm + + .macro trydobeatup param0, param1 + .byte 0xc4 + .4byte \param0 + .4byte \param1 + .endm + + .macro setsemiinvulnerablebit + .byte 0xc5 + .endm + + .macro clearsemiinvulnerablebit + .byte 0xc6 + .endm + + .macro setminimize + .byte 0xc7 + .endm + + .macro sethail + .byte 0xc8 + .endm + + .macro jumpifattackandspecialattackcannotfall param0 + .byte 0xc9 + .4byte \param0 + .endm + + .macro setforcedtarget + .byte 0xca + .endm + + .macro setcharge + .byte 0xcb + .endm + + .macro callterrainattack + .byte 0xcc + .endm + + .macro cureifburnedparalysedorpoisoned param0 + .byte 0xcd + .4byte \param0 + .endm + + .macro settorment param0 + .byte 0xce + .4byte \param0 + .endm + + .macro jumpifnodamage param0 + .byte 0xcf + .4byte \param0 + .endm + + .macro settaunt param0 + .byte 0xd0 + .4byte \param0 + .endm + + .macro trysethelpinghand param0 + .byte 0xd1 + .4byte \param0 + .endm + + .macro tryswapitems param0 + .byte 0xd2 + .4byte \param0 + .endm + + .macro trycopyability param0 + .byte 0xd3 + .4byte \param0 + .endm + + .macro trywish param0, param1 + .byte 0xd4 + .byte \param0 + .4byte \param1 + .endm + + .macro trysetroots param0 + .byte 0xd5 + .4byte \param0 + .endm + + .macro doubledamagedealtifdamaged + .byte 0xd6 + .endm + + .macro setyawn param0 + .byte 0xd7 + .4byte \param0 + .endm + + .macro setdamagetohealthdifference param0 + .byte 0xd8 + .4byte \param0 + .endm + + .macro scaledamagebyhealthratio + .byte 0xd9 + .endm + + .macro tryswapabilities param0 + .byte 0xda + .4byte \param0 + .endm + + .macro tryimprision param0 + .byte 0xdb + .4byte \param0 + .endm + + .macro trysetgrudge param0 + .byte 0xdc + .4byte \param0 + .endm + + .macro weightdamagecalculation + .byte 0xdd + .endm + + .macro asistattackselect param0 + .byte 0xde + .4byte \param0 + .endm + + .macro trysetmagiccoat param0 + .byte 0xdf + .4byte \param0 + .endm + + .macro trysetsnatch param0 + .byte 0xe0 + .4byte \param0 + .endm + + .macro trygetintimidatetarget param0 + .byte 0xe1 + .4byte \param0 + .endm + + .macro switchoutabilities bank + .byte 0xe2 + .byte \bank + .endm + + .macro jumpifhasnohp bank, param1 + .byte 0xe3 + .byte \bank + .4byte \param1 + .endm + + .macro getsecretpowereffect + .byte 0xe4 + .endm + + .macro pickup + .byte 0xe5 + .endm + + .macro docastformchangeanimation + .byte 0xe6 + .endm + + .macro trycastformdatachange + .byte 0xe7 + .endm + + .macro settypebasedhalvers param0 + .byte 0xe8 + .4byte \param0 + .endm + + .macro setweatherballtype + .byte 0xe9 + .endm + + .macro tryrecycleitem param0 + .byte 0xea + .4byte \param0 + .endm + + .macro settypetoterrain param0 + .byte 0xeb + .4byte \param0 + .endm + + .macro pursuitrelated param0 + .byte 0xec + .4byte \param0 + .endm + + .macro snatchsetbanks + .byte 0xed + .endm + + .macro removelightscreenreflect + .byte 0xee + .endm + + .macro pokeball_catch_calculation + .byte 0xef + .endm + + .macro givecaughtmon + .byte 0xf0 + .endm + + .macro trysetcaughtmondexflags param0 + .byte 0xf1 + .4byte \param0 + .endm + + .macro displaydexinfo + .byte 0xf2 + .endm + + .macro trygivecaughtmonnick param0 + .byte 0xf3 + .4byte \param0 + .endm + + .macro subattackerhpbydmg + .byte 0xf4 + .endm + + .macro removeattackerstatus1 + .byte 0xf5 + .endm + + .macro finishaction + .byte 0xf6 + .endm + + .macro finishturn + .byte 0xf7 + .endm + + .macro trainerslideout param0 + .byte 0xf8 + .byte \param0 + .endm + +@ helpful macros + .macro setstatchanger stat, stages, down + setbyte sSTATCHANGER \stat | \stages << 4 | \down << 7 + .endm + + .macro setmoveeffect effect + setbyte cEFFECT_CHOOSER \effect + .endm + + .macro chosenstatus1animation bank, status + chosenstatusanimation \bank 0x0 \status + .endm + + .macro chosenstatus2animation bank, status + chosenstatusanimation \bank 0x1 \status + .endm diff --git a/constants/battle_constants.inc b/constants/battle_constants.inc new file mode 100644 index 000000000..34f16a8c9 --- /dev/null +++ b/constants/battle_constants.inc @@ -0,0 +1,170 @@ +@ battle types + .set BATTLE_TYPE_DOUBLE , 0x0001 + .set BATTLE_TYPE_LINK, 0x0002 + .set BATTLE_TYPE_WILD, 0x0004 + .set BATTLE_TYPE_TRAINER, 0x0008 + .set BATTLE_TYPE_FIRST_BATTLE, 0x0010 + .set BATTLE_TYPE_20, 0x0020 + .set BATTLE_TYPE_MULTI, 0x0040 + .set BATTLE_TYPE_SAFARI, 0x0080 + .set BATTLE_TYPE_BATTLE_TOWER, 0x0100 + .set BATTLE_TYPE_WALLY_TUTORIAL, 0x0200 + .set BATTLE_TYPE_ROAMER, 0x0400 + .set BATTLE_TYPE_EREADER_TRAINER, 0x0800 + .set BATTLE_TYPE_KYOGRE_GROUDON, 0x1000 + .set BATTLE_TYPE_LEGENDARY, 0x2000 + .set BATTLE_TYPE_REGI, 0x4000 + .set BATTLE_TYPE_TWO_OPPONENTS, 0x8000 + .set BATTLE_TYPE_DOME, 0x10000 + .set BATTLE_TYPE_PALACE, 0x20000 + .set BATTLE_TYPE_ARENA, 0x40000 + .set BATTLE_TYPE_FACTORY, 0x80000 + .set BATTLE_TYPE_x100000, 0x100000 + .set BATTLE_TYPE_PYRAMID, 0x200000 + .set BATTLE_TYPE_INGAME_PARTNER, 0x400000 + .set BATTLE_TYPE_x800000, 0x800000 + .set BATTLE_TYPE_RECORDED, 0x1000000 + .set BATTLE_TYPE_x2000000, 0x2000000 + .set BATTLE_TYPE_x4000000, 0x4000000 + .set BATTLE_TYPE_SECRET_BASE, 0x8000000 + .set BATTLE_TYPE_GROUDON, 0x10000000 + .set BATTLE_TYPE_KYORGE, 0x20000000 + .set BATTLE_TYPE_RAYQUAZA, 0x40000000 + .set BATTLE_TYPE_x80000000, 0x80000000 + +@ battle outcomes + .set WON, 0x1 + .set LOST, 0x2 + .set DREW, 0x3 + .set RAN, 0x4 + .set PLAYER_TELEPORTED, 0x5 + .set MON_FLED, 0x6 + .set CAUGHT, 0x7 + .set OUT_OF_BALLS, 0x8 + .set FORFEITED, 0x9 + .set OPPONENT_TELEPORTED, 0xA + +@ identities + .set IDENTITY_PLAYER_MON1, 0 + .set IDENTITY_OPPONENT_MON1, 1 + .set IDENTITY_PLAYER_MON2, 2 + .set IDENTITY_OPPONENT_MON2, 3 + +@ status 1 + .set STATUS_SLEEP, 0x7 + .set STATUS_POISON, 0x8 + .set STATUS_BURN, 0x10 + .set STATUS_FREEZE, 0x20 + .set STATUS_PARALYSIS, 0x40 + .set STATUS_TOXIC_POISON, 0x80 + .set STATUS_TOXIC_COUNTER, 0xF00 + + .set STATUS_ANY, STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON + +@ status 2 + .set STATUS2_CONFUSION, 0x00000007 + .set STATUS2_FLINCHED, 0x00000008 + .set STATUS2_UPROAR, 0x00000070 + .set STATUS2_BIDE, 0x00000300 + .set STATUS2_LOCK_CONFUSE, 0x00000C00 + .set STATUS2_MULTIPLETURNS, 0x00001000 + .set STATUS2_WRAPPED, 0x0000E000 + .set STATUS2_INFATUATION, 0x000F0000 + .set STATUS2_FOCUS_ENERGY, 0x00100000 + .set STATUS2_TRANSFORMED, 0x00200000 + .set STATUS2_RECHARGE, 0x00400000 + .set STATUS2_RAGE, 0x00800000 + .set STATUS2_SUBSTITUTE, 0x01000000 + .set STATUS2_DESTINY_BOND, 0x02000000 + .set STATUS2_ESCAPE_PREVENTION, 0x04000000 + .set STATUS2_NIGHTMARE, 0x08000000 + .set STATUS2_CURSED, 0x10000000 + .set STATUS2_FORESIGHT, 0x20000000 + .set STATUS2_DEFENSE_CURL, 0x40000000 + .set STATUS2_TORMENT, 0x80000000 + +@ status 3 + .set STATUS3_LEECHSEED_BANK, 0x3 + .set STATUS3_LEECHSEED, 0x4 + .set STATUS3_ALWAYS_HITS, 0x18 + .set STATUS3_PERISH_SONG, 0x20 + .set STATUS3_ON_AIR, 0x40 + .set STATUS3_UNDERGROUND, 0x80 + .set STATUS3_MINIMIZED, 0x100 + .set STATUS3_ROOTED, 0x400 + .set STATUS3_CHARGED_UP, 0x200 + .set STATUS3_YAWN, 0x1800 + .set STATUS3_IMPRISONED_OTHERS, 0x2000 + .set STATUS3_GRUDGE, 0x4000 + .set STATUS3_CANT_SCORE_A_CRIT, 0x8000 + .set STATUS3_MUDSPORT, 0x10000 + .set STATUS3_WATERSPORT, 0x20000 + .set STATUS3_UNDERWATER, 0x40000 + .set STATUS3_INTIMIDATE_POKES, 0x80000 + .set STATUS3_TRACE, 0x100000 + +@ side status + .set SIDE_STATUS_REFLECT, 0x1 + .set SIDE_STATUS_LIGHTSCREEN, 0x2 + .set SIDE_STATUS_X4, 0x4 + .set SIDE_STATUS_SPIKES, 0x10 + .set SIDE_STATUS_SAFEGUARD, 0x20 + .set SIDE_STATUS_FUTUREATTACK, 0x40 + .set SIDE_STATUS_MIST, 0x100 + .set SIDE_STATUS_SPIKES_DAMAGED, 0x200 + +@ stats + .set HP, 0x0 + .set ATK, 0x1 + .set DEF, 0x2 + .set SPEED, 0x3 + .set SPATK, 0x4 + .set SPDEF, 0x5 + .set ACC, 0x6 + .set EVASION, 0x7 + +@ weather flags + .set WEATHER_RAIN_TEMPORARY, 0x01 + .set WEATHER_RAIN_DOWNPOUR, 0x02 + .set WEATHER_RAIN_PERMANENT, 0x04 + .set WEATHER_SANDSTORM_TEMPORARY, 0x08 + .set WEATHER_SANDSTORM_PERMANENT, 0x10 + .set WEATHER_SUN_TEMPORARY, 0x20 + .set WEATHER_SUN_PERMANENT, 0x40 + .set WEATHER_HAIL, 0x80 + +@ hitmarker + .set HITMARKER_x10, 0x00000010 + .set HITMARKER_x20, 0x00000020 + .set HITMARKER_DESTINYBOND, 0x00000040 + .set HITMARKER_NO_ANIMATIONS, 0x00000080 + .set HITMARKER_IGNORE_SUBSTITUTE, 0x00000100 + .set HITMARKER_NO_ATTACKSTRING, 0x00000200 + .set HITMARKER_ATTACKSTRING_PRINTED, 0x00000400 + .set HITMARKER_NO_PPDEDUCT, 0x00000800 + .set HITMARKER_PURSUIT_TRAP, 0x00001000 + .set HITMARKER_IGNORE_SAFEGUARD, 0x00002000 + .set HITMARKER_SYNCHRONISE_EFFECT, 0x00004000 + .set HITMARKER_RUN, 0x00008000 + .set HITMARKER_IGNORE_ON_AIR, 0x00010000 + .set HITMARKER_IGNORE_UNDERGROUND, 0x00020000 + .set HITMARKER_IGNORE_UNDERWATER, 0x00040000 + .set HITMARKER_UNABLE_TO_USE_MOVE, 0x00080000 + .set HITMARKER_x100000, 0x00100000 + .set HITMARKER_x200000, 0x00200000 + .set HITMARKER_x400000, 0x00400000 + .set HITMARKER_x800000, 0x00800000 + .set HITMARKER_GRUDGE, 0x01000000 + .set HITMARKER_OBEYS, 0x02000000 + .set HITMARKER_x4000000, 0x04000000 + .set HITMARKER_x8000000, 0x08000000 + +@ move flags + .set MOVESTATUS_MISSED, 0x1 + .set MOVESTATUS_SUPEREFFECTIVE, 0x2 + .set MOVESTATUS_NOTVERYEFFECTIVE, 0x4 + .set MOVESTATUS_NOTAFFECTED, 0x8 + .set MOVESTATUS_ONEHITKO, 0x10 + .set MOVESTATUS_FAILED, 0x20 + .set MOVESTATUS_ENDURED, 0x40 + .set MOVESTATUS_HUNGON, 0x80 diff --git a/constants/battle_script_constants.inc b/constants/battle_script_constants.inc new file mode 100644 index 000000000..106bffd03 --- /dev/null +++ b/constants/battle_script_constants.inc @@ -0,0 +1,170 @@ +@ animation ids + .set ANIM_CASTFORM_CHANGE, 0x0 + .set ANIM_STATS_CHANGE, 0x1 + .set ANIM_SUBSTITUTE_FADE, 0x2 + .set ANIM_SUBSTITUTE_APPEAR, 0x3 + .set ANIM_x4, 0x4 + .set ANIM_ITEM_KNOCKOFF, 0x5 + .set ANIM_TURN_TRAP, 0x6 + .set ANIM_ITEM_EFFECT, 0x7 + .set ANIM_SMOKEBALL_ESCAPE, 0x8 + .set ANIM_HANGED_ON, 0x9 + .set ANIM_RAIN_CONTINUES, 0xA + .set ANIM_SUN_CONTINUES, 0xB + .set ANIM_SANDSTORM_CONTINUES, 0xC + .set ANIM_HAIL_CONTINUES, 0xD + .set ANIM_LEECH_SEED_DRAIN, 0xE + .set ANIM_MON_HIT, 0xF + .set ANIM_ITEM_STEAL, 0x10 + .set ANIM_SNATCH_MOVE, 0x11 + .set ANIM_FUTURE_SIGHT_HIT, 0x12 + .set ANIM_x13, 0x13 + .set ANIM_x14, 0x14 + .set ANIM_INGRAIN_HEAL, 0x15 + .set ANIM_WISH_HEAL, 0x16 + +@ atk 80 + .set ATK80_DMG_CHANGE_SIGN, 0x0 + .set ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP, 0x1 + .set ATK80_DMG_DOUBLED, 0x2 + +@ compare operands + .set EQUAL, 0x0 + .set NOT_EQUAL, 0x1 + .set GREATER_THAN, 0x2 + .set LESS_THAN, 0x3 + .set COMMON_BITS, 0x4 + .set NO_COMMON_BITS, 0x5 + +@ move effects + .set EFFECT_SLEEP, 0x1 + .set EFFECT_POISON, 0x2 + .set EFFECT_BURN, 0x3 + .set EFFECT_FREEZE, 0x4 + .set EFFECT_PARALYSIS, 0x5 + .set EFFECT_TOXIC, 0x6 + .set EFFECT_CONFUSION, 0x7 + .set EFFECT_FLINCH, 0x8 + .set EFFECT_TRI_ATTACK, 0x9 + .set EFFECT_UPROAR, 0xA + .set EFFECT_PAYDAY, 0xB + .set EFFECT_CHARGING, 0xC + .set EFFECT_WRAP, 0xD + .set EFFECT_RECOIL_25, 0xE + .set EFFECT_ATK_PLUS_1, 0xF + .set EFFECT_DEF_PLUS_1, 0x10 + .set EFFECT_SPD_PLUS_1, 0x11 + .set EFFECT_SP_ATK_PLUS_1, 0x12 + .set EFFECT_SP_DEF_PLUS_1, 0x13 + .set EFFECT_ACC_PLUS_1, 0x14 + .set EFFECT_EVS_PLUS_1, 0x15 + .set EFFECT_ATK_MINUS_1, 0x16 + .set EFFECT_DEF_MINUS_1, 0x17 + .set EFFECT_SPD_MINUS_1, 0x18 + .set EFFECT_SP_ATK_MINUS_1, 0x19 + .set EFFECT_SP_DEF_MINUS_1, 0x1A + .set EFFECT_ACC_MINUS_1, 0x1B + .set EFFECT_EVS_MINUS_1, 0x1C + .set EFFECT_RECHARGE, 0x1D + .set EFFECT_RAGE, 0x1E + .set EFFECT_STEAL_ITEM, 0x1F + .set EFFECT_PREVENT_ESCAPE, 0x20 + .set EFFECT_NIGHTMARE, 0x21 + .set EFFECT_ALL_STATS_UP, 0x22 + .set EFFECT_RAPIDSPIN, 0x23 + .set EFFECT_REMOVE_PARALYSIS, 0x24 + .set EFFECT_ATK_DEF_DOWN, 0x25 + .set EFFECT_RECOIL_33_PARALYSIS, 0x26 + .set EFFECT_ATK_PLUS_2, 0x27 + .set EFFECT_DEF_PLUS_2, 0x28 + .set EFFECT_SPD_PLUS_2, 0x29 + .set EFFECT_SP_ATK_PLUS_2, 0x2A + .set EFFECT_SP_DEF_PLUS_2, 0x2B + .set EFFECT_ACC_PLUS_2, 0x2C + .set EFFECT_EVS_PLUS_2, 0x2D + .set EFFECT_ATK_MINUS_2, 0x2E + .set EFFECT_DEF_MINUS_2, 0x2F + .set EFFECT_SPD_MINUS_2, 0x30 + .set EFFECT_SP_ATK_MINUS_2, 0x31 + .set EFFECT_SP_DEF_MINUS_2, 0x32 + .set EFFECT_ACC_MINUS_2, 0x33 + .set EFFECT_EVS_MINUS_2, 0x34 + .set EFFECT_THRASH, 0x35 + .set EFFECT_KNOCK_OFF, 0x36 + .set EFFECT_NOTHING_37, 0x37 + .set EFFECT_NOTHING_38, 0x38 + .set EFFECT_NOTHING_39, 0x39 + .set EFFECT_NOTHING_3A, 0x3A + .set EFFECT_SP_ATK_TWO_DOWN, 0x3B + .set EFFECT_NOTHING_3C, 0x3C + .set EFFECT_NOTHING_3D, 0x3D + .set EFFECT_NOTHING_3E, 0x3E + .set EFFECT_NOTHING_3F, 0x3F + + .set AFFECTS_USER, 0x40 + .set CERTAIN, 0x80 + +@ accuracy calc + .set NO_ACC_CALC, 0xFFFE + .set NO_ACC_CALC_CHECK_LOCK_ON, 0xFFFF + .set ACC_CURR_MOVE, 0x0 + +@ bank values + .set TARGET, 0x0 + .set ATTACKER, 0x1 + .set EFFECT_BANK, 0x2 + .set GBANK_1, 0x3 + .set ATTACKER_WITH_PARTNER, 0x4 @ only for cmd98 + .set BANK0, 0x7 + .set SCRIPTING_BANK, 0xA + .set OPPONENT1, 0xC + +@ various + .set VARIOUS_CANCEL_MULTI_TURN_MOVES, 0 + .set VARIOUS_SET_MAGIC_COAT_TARGET, 1 + .set VARIOUS_IS_RUNNING_IMPOSSIBLE, 2 + .set VARIOUS_GET_MOVE_TARGET, 3 + .set VARIOUS_RESET_INTIMIDATE_TRACE_BITS, 5 + .set VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP, 6 + .set VARIOUS_EMIT_YESNOBOX, 13 + .set VARIOUS_WAIT_CRY, 18 + .set VARIOUS_RETURN_OPPONENT_MON1, 19 + .set VARIOUS_RETURN_OPPONENT_MON2, 20 + .set VARIOUS_SET_TELEPORT_OUTCOME, 25 + .set VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC, 26 + +@ jumpifcant switch flag argument + .set ATK4F_DONT_CHECK_STATUSES, 0x80 + +@ battle scripting struct + .equiv sPAINSPLIT_HP, gBattleScripting + .equiv sBIDE_DMG, gBattleScripting + 4 + .equiv sMULTIHIT_STRING, gBattleScripting + 8 + .equiv sDMG_MULTIPLIER, gBattleScripting + 0xE + .equiv sFIELD_F, gBattleScripting + 0xF + .equiv sANIM_ARG1, gBattleScripting + 0x10 + .equiv sANIM_ARG2, gBattleScripting + 0x11 + .equiv sTRIPLE_KICK_POWER, gBattleScripting + 0x12 + .equiv sFIELD_13, gBattleScripting + 0x13 + .equiv sMOVEEND_STATE, gBattleScripting + 0x14 + .equiv sFIELD_15, gBattleScripting + 0x15 + .equiv sFIELD_16, gBattleScripting + 0x16 + .equiv sBANK, gBattleScripting + 0x17 + .equiv sANIM_TURN, gBattleScripting + 0x18 + .equiv sANIM_TARGETS_HIT, gBattleScripting + 0x19 + .equiv sSTATCHANGER, gBattleScripting + 0x1A + .equiv sFIELD_1B, gBattleScripting + 0x1B + .equiv sGIVEEXP_STATE, gBattleScripting + 0x1C + .equiv sBATTLE_STYLE, gBattleScripting + 0x1D + .equiv sLVLBOX_STATE, gBattleScripting + 0x1E + .equiv sLEARNMOVE_STATE, gBattleScripting + 0x1F + .equiv sFIELD_20, gBattleScripting + 0x20 + .equiv sRESHOW_MAIN_STATE, gBattleScripting + 0x21 + .equiv sRESHOW_HELPER_STATE, gBattleScripting + 0x22 + .equiv sFIELD_23, gBattleScripting + 0x23 + .equiv sFIELD_24, gBattleScripting + 0x24 + .equiv sMULTIPLAYER_ID, gBattleScripting + 0x25 + +@ battle communication struct + .equiv cEFFECT_CHOOSER, gBattleCommunication + 3 + .equiv cMULTISTRING_CHOOSER, gBattleCommunication + 5 diff --git a/constants/battle_text.inc b/constants/battle_text.inc new file mode 100644 index 000000000..1d3a5f346 --- /dev/null +++ b/constants/battle_text.inc @@ -0,0 +1,375 @@ + .set STRINGID_INTROMSG, 0 + .set STRINGID_INTROSENDOUT, 1 + .set STRINGID_RETURNMON, 2 + .set STRINGID_SWITCHINMON, 3 + .set STRINGID_USEDMOVE, 4 + .set STRINGID_BATTLEEND, 5 + .set STRINGID_TRAINER1LOSETEXT, 12 + .set STRINGID_PKMNGAINEDEXP, 13 + .set STRINGID_PKMNGREWTOLV, 14 + .set STRINGID_PKMNLEARNEDMOVE, 15 + .set STRINGID_TRYTOLEARNMOVE1, 16 + .set STRINGID_TRYTOLEARNMOVE2, 17 + .set STRINGID_TRYTOLEARNMOVE3, 18 + .set STRINGID_PKMNFORGOTMOVE, 19 + .set STRINGID_STOPLEARNINGMOVE, 20 + .set STRINGID_DIDNOTLEARNMOVE, 21 + .set STRINGID_PKMNLEARNEDMOVE2, 22 + .set STRINGID_ATTACKMISSED, 23 + .set STRINGID_PKMNPROTECTEDITSELF, 24 + .set STRINGID_STATSWONTINCREASE2, 25 + .set STRINGID_AVOIDEDDAMAGE, 26 + .set STRINGID_ITDOESNTAFFECT, 27 + .set STRINGID_ATTACKERFAINTED, 28 + .set STRINGID_TARGETFAINTED, 29 + .set STRINGID_PLAYERGOTMONEY, 30 + .set STRINGID_PLAYERWHITEOUT, 31 + .set STRINGID_PLAYERWHITEOUT2, 32 + .set STRINGID_PREVENTSESCAPE, 33 + .set STRINGID_HITXTIMES, 34 + .set STRINGID_PKMNFELLASLEEP, 35 + .set STRINGID_PKMNMADESLEEP, 36 + .set STRINGID_PKMNALREADYASLEEP, 37 + .set STRINGID_PKMNALREADYASLEEP2, 38 + .set STRINGID_PKMNWASNTAFFECTED, 39 + .set STRINGID_PKMNWASPOISONED, 40 + .set STRINGID_PKMNPOISONEDBY, 41 + .set STRINGID_PKMNHURTBYPOISON, 42 + .set STRINGID_PKMNALREADYPOISONED, 43 + .set STRINGID_PKMNBADLYPOISONED, 44 + .set STRINGID_PKMNENERGYDRAINED, 45 + .set STRINGID_PKMNWASBURNED, 46 + .set STRINGID_PKMNBURNEDBY, 47 + .set STRINGID_PKMNHURTBYBURN, 48 + .set STRINGID_PKMNWASFROZEN, 49 + .set STRINGID_PKMNFROZENBY, 50 + .set STRINGID_PKMNISFROZEN, 51 + .set STRINGID_PKMNWASDEFROSTED, 52 + .set STRINGID_PKMNWASDEFROSTED2, 53 + .set STRINGID_PKMNWASDEFROSTEDBY, 54 + .set STRINGID_PKMNWASPARALYZED, 55 + .set STRINGID_PKMNWASPARALYZEDBY, 56 + .set STRINGID_PKMNISPARALYZED, 57 + .set STRINGID_PKMNISALREADYPARALYZED, 58 + .set STRINGID_PKMNHEALEDPARALYSIS, 59 + .set STRINGID_PKMNDREAMEATEN, 60 + .set STRINGID_STATSWONTINCREASE, 61 + .set STRINGID_STATSWONTDECREASE, 62 + .set STRINGID_TEAMSTOPPEDWORKING, 63 + .set STRINGID_FOESTOPPEDWORKING, 64 + .set STRINGID_PKMNISCONFUSED, 65 + .set STRINGID_PKMNHEALEDCONFUSION, 66 + .set STRINGID_PKMNWASCONFUSED, 67 + .set STRINGID_PKMNALREADYCONFUSED, 68 + .set STRINGID_PKMNFELLINLOVE, 69 + .set STRINGID_PKMNINLOVE, 70 + .set STRINGID_PKMNIMMOBILIZEDBYLOVE, 71 + .set STRINGID_PKMNBLOWNAWAY, 72 + .set STRINGID_PKMNCHANGEDTYPE, 73 + .set STRINGID_PKMNFLINCHED, 74 + .set STRINGID_PKMNREGAINEDHEALTH, 75 + .set STRINGID_PKMNHPFULL, 76 + .set STRINGID_PKMNRAISEDSPDEF, 77 + .set STRINGID_PKMNRAISEDDEF, 78 + .set STRINGID_PKMNCOVEREDBYVEIL, 79 + .set STRINGID_PKMNUSEDSAFEGUARD, 80 + .set STRINGID_PKMNSAFEGUARDEXPIRED, 81 + .set STRINGID_PKMNWENTTOSLEEP, 82 + .set STRINGID_PKMNSLEPTHEALTHY, 83 + .set STRINGID_PKMNWHIPPEDWHIRLWIND, 84 + .set STRINGID_PKMNTOOKSUNLIGHT, 85 + .set STRINGID_PKMNLOWEREDHEAD, 86 + .set STRINGID_PKMNISGLOWING, 87 + .set STRINGID_PKMNFLEWHIGH, 88 + .set STRINGID_PKMNDUGHOLE, 89 + .set STRINGID_PKMNSQUEEZEDBYBIND, 90 + .set STRINGID_PKMNTRAPPEDINVORTEX, 91 + .set STRINGID_PKMNWRAPPEDBY, 92 + .set STRINGID_PKMNCLAMPED, 93 + .set STRINGID_PKMNHURTBY, 94 + .set STRINGID_PKMNFREEDFROM, 95 + .set STRINGID_PKMNCRASHED, 96 + .set STRINGID_PKMNSHROUDEDINMIST, 97 + .set STRINGID_PKMNPROTECTEDBYMIST, 98 + .set STRINGID_PKMNGETTINGPUMPED, 99 + .set STRINGID_PKMNHITWITHRECOIL, 100 + .set STRINGID_PKMNPROTECTEDITSELF2, 101 + .set STRINGID_PKMNBUFFETEDBYSANDSTORM, 102 + .set STRINGID_PKMNPELTEDBYHAIL, 103 + .set STRINGID_PKMNSEEDED, 104 + .set STRINGID_PKMNEVADEDATTACK, 105 + .set STRINGID_PKMNSAPPEDBYLEECHSEED, 106 + .set STRINGID_PKMNFASTASLEEP, 107 + .set STRINGID_PKMNWOKEUP, 108 + .set STRINGID_PKMNUPROARKEPTAWAKE, 109 + .set STRINGID_PKMNWOKEUPINUPROAR, 110 + .set STRINGID_PKMNCAUSEDUPROAR, 111 + .set STRINGID_PKMNMAKINGUPROAR, 112 + .set STRINGID_PKMNCALMEDDOWN, 113 + .set STRINGID_PKMNCANTSLEEPINUPROAR, 114 + .set STRINGID_PKMNSTOCKPILED, 115 + .set STRINGID_PKMNCANTSTOCKPILE, 116 + .set STRINGID_PKMNCANTSLEEPINUPROAR2, 117 + .set STRINGID_UPROARKEPTPKMNAWAKE, 118 + .set STRINGID_PKMNSTAYEDAWAKEUSING, 119 + .set STRINGID_PKMNSTORINGENERGY, 120 + .set STRINGID_PKMNUNLEASHEDENERGY, 121 + .set STRINGID_PKMNFATIGUECONFUSION, 122 + .set STRINGID_PKMNPICKEDUPITEM, 123 + .set STRINGID_PKMNUNAFFECTED, 124 + .set STRINGID_PKMNTRANSFORMEDINTO, 125 + .set STRINGID_PKMNMADESUBSTITUTE, 126 + .set STRINGID_PKMNHASSUBSTITUTE, 127 + .set STRINGID_SUBSTITUTEDAMAGED, 128 + .set STRINGID_PKMNSUBSTITUTEFADED, 129 + .set STRINGID_PKMNMUSTRECHARGE, 130 + .set STRINGID_PKMNRAGEBUILDING, 131 + .set STRINGID_PKMNMOVEWASDISABLED, 132 + .set STRINGID_PKMNMOVEISDISABLED, 133 + .set STRINGID_PKMNMOVEDISABLEDNOMORE, 134 + .set STRINGID_PKMNGOTENCORE, 135 + .set STRINGID_PKMNENCOREENDED, 136 + .set STRINGID_PKMNTOOKAIM, 137 + .set STRINGID_PKMNSKETCHEDMOVE, 138 + .set STRINGID_PKMNTRYINGTOTAKEFOE, 139 + .set STRINGID_PKMNTOOKFOE, 140 + .set STRINGID_PKMNREDUCEDPP, 141 + .set STRINGID_PKMNSTOLEITEM, 142 + .set STRINGID_TARGETCANTESCAPENOW, 143 + .set STRINGID_PKMNFELLINTONIGHTMARE, 144 + .set STRINGID_PKMNLOCKEDINNIGHTMARE, 145 + .set STRINGID_PKMNLAIDCURSE, 146 + .set STRINGID_PKMNAFFLICTEDBYCURSE, 147 + .set STRINGID_SPIKESSCATTERED, 148 + .set STRINGID_PKMNHURTBYSPIKES, 149 + .set STRINGID_PKMNIDENTIFIED, 150 + .set STRINGID_PKMNPERISHCOUNTFELL, 151 + .set STRINGID_PKMNBRACEDITSELF, 152 + .set STRINGID_PKMNENDUREDHIT, 153 + .set STRINGID_MAGNITUDESTRENGTH, 154 + .set STRINGID_PKMNCUTHPMAXEDATTACK, 155 + .set STRINGID_PKMNCOPIEDSTATCHANGES, 156 + .set STRINGID_PKMNGOTFREE, 157 + .set STRINGID_PKMNSHEDLEECHSEED, 158 + .set STRINGID_PKMNBLEWAWAYSPIKES, 159 + .set STRINGID_PKMNFLEDFROMBATTLE, 160 + .set STRINGID_PKMNFORESAWATTACK, 161 + .set STRINGID_PKMNTOOKATTACK, 162 + .set STRINGID_PKMNATTACK, 163 + .set STRINGID_PKMNCENTERATTENTION, 164 + .set STRINGID_PKMNCHARGINGPOWER, 165 + .set STRINGID_NATUREPOWERTURNEDINTO, 166 + .set STRINGID_PKMNSTATUSNORMAL, 167 + .set STRINGID_PKMNHASNOMOVESLEFT, 168 + .set STRINGID_PKMNSUBJECTEDTOTORMENT, 169 + .set STRINGID_PKMNCANTUSEMOVETORMENT, 170 + .set STRINGID_PKMNTIGHTENINGFOCUS, 171 + .set STRINGID_PKMNFELLFORTAUNT, 172 + .set STRINGID_PKMNCANTUSEMOVETAUNT, 173 + .set STRINGID_PKMNREADYTOHELP, 174 + .set STRINGID_PKMNSWITCHEDITEMS, 175 + .set STRINGID_PKMNCOPIEDFOE, 176 + .set STRINGID_PKMNMADEWISH, 177 + .set STRINGID_PKMNWISHCAMETRUE, 178 + .set STRINGID_PKMNPLANTEDROOTS, 179 + .set STRINGID_PKMNABSORBEDNUTRIENTS, 180 + .set STRINGID_PKMNANCHOREDITSELF, 181 + .set STRINGID_PKMNWASMADEDROWSY, 182 + .set STRINGID_PKMNKNOCKEDOFF, 183 + .set STRINGID_PKMNSWAPPEDABILITIES, 184 + .set STRINGID_PKMNSEALEDOPPONENTMOVE, 185 + .set STRINGID_PKMNCANTUSEMOVESEALED, 186 + .set STRINGID_PKMNWANTSGRUDGE, 187 + .set STRINGID_PKMNLOSTPPGRUDGE, 188 + .set STRINGID_PKMNSHROUDEDITSELF, 189 + .set STRINGID_PKMNMOVEBOUNCED, 190 + .set STRINGID_PKMNWAITSFORTARGET, 191 + .set STRINGID_PKMNSNATCHEDMOVE, 192 + .set STRINGID_PKMNMADEITRAIN, 193 + .set STRINGID_PKMNRAISEDSPEED, 194 + .set STRINGID_PKMNPROTECTEDBY, 195 + .set STRINGID_PKMNPREVENTSUSAGE, 196 + .set STRINGID_PKMNRESTOREDHPUSING, 197 + .set STRINGID_PKMNCHANGEDTYPEWITH, 198 + .set STRINGID_PKMNPREVENTSPARALYSISWITH, 199 + .set STRINGID_PKMNPREVENTSROMANCEWITH, 200 + .set STRINGID_PKMNPREVENTSPOISONINGWITH, 201 + .set STRINGID_PKMNPREVENTSCONFUSIONWITH, 202 + .set STRINGID_PKMNRAISEDFIREPOWERWITH, 203 + .set STRINGID_PKMNANCHORSITSELFWITH, 204 + .set STRINGID_PKMNCUTSATTACKWITH, 205 + .set STRINGID_PKMNPREVENTSSTATLOSSWITH, 206 + .set STRINGID_PKMNHURTSWITH, 207 + .set STRINGID_PKMNTRACED, 208 + .set STRINGID_STATSHARPLY, 209 + .set STRINGID_STATROSE, 210 + .set STRINGID_STATHARSHLY, 211 + .set STRINGID_STATFELL, 212 + .set STRINGID_PKMNSSTATCHANGED, 213 + .set STRINGID_PKMNSSTATCHANGED2, 214 + .set STRINGID_PKMNSSTATCHANGED3, 215 + .set STRINGID_PKMNSSTATCHANGED4, 216 + .set STRINGID_CRITICALHIT, 217 + .set STRINGID_ONEHITKO, 218 + .set STRINGID_123POOF, 219 + .set STRINGID_ANDELLIPSIS, 220 + .set STRINGID_NOTVERYEFFECTIVE, 221 + .set STRINGID_SUPEREFFECTIVE, 222 + .set STRINGID_GOTAWAYSAFELY, 223 + .set STRINGID_WILDPKMNFLED, 224 + .set STRINGID_NORUNNINGFROMTRAINERS, 225 + .set STRINGID_CANTESCAPE, 226 + .set STRINGID_DONTLEAVEBIRCH, 227 + .set STRINGID_BUTNOTHINGHAPPENED, 228 + .set STRINGID_BUTITFAILED, 229 + .set STRINGID_ITHURTCONFUSION, 230 + .set STRINGID_MIRRORMOVEFAILED, 231 + .set STRINGID_STARTEDTORAIN, 232 + .set STRINGID_DOWNPOURSTARTED, 233 + .set STRINGID_RAINCONTINUES, 234 + .set STRINGID_DOWNPOURCONTINUES, 235 + .set STRINGID_RAINSTOPPED, 236 + .set STRINGID_SANDSTORMBREWED, 237 + .set STRINGID_SANDSTORMRAGES, 238 + .set STRINGID_SANDSTORMSUBSIDED, 239 + .set STRINGID_SUNLIGHTGOTBRIGHT, 240 + .set STRINGID_SUNLIGHTSTRONG, 241 + .set STRINGID_SUNLIGHTFADED, 242 + .set STRINGID_STARTEDHAIL, 243 + .set STRINGID_HAILCONTINUES, 244 + .set STRINGID_HAILSTOPPED, 245 + .set STRINGID_FAILEDTOSPITUP, 246 + .set STRINGID_FAILEDTOSWALLOW, 247 + .set STRINGID_WINDBECAMEHEATWAVE, 248 + .set STRINGID_STATCHANGESGONE, 249 + .set STRINGID_COINSSCATTERED, 250 + .set STRINGID_TOOWEAKFORSUBSTITUTE, 251 + .set STRINGID_SHAREDPAIN, 252 + .set STRINGID_BELLCHIMED, 253 + .set STRINGID_FAINTINTHREE, 254 + .set STRINGID_NOPPLEFT, 255 + .set STRINGID_BUTNOPPLEFT, 256 + .set STRINGID_PLAYERUSEDITEM, 257 + .set STRINGID_WALLYUSEDITEM, 258 + .set STRINGID_TRAINERBLOCKEDBALL, 259 + .set STRINGID_DONTBEATHIEF, 260 + .set STRINGID_ITDODGEDBALL, 261 + .set STRINGID_YOUMISSEDPKMN, 262 + .set STRINGID_PKMNBROKEFREE, 263 + .set STRINGID_ITAPPEAREDCAUGHT, 264 + .set STRINGID_AARGHALMOSTHADIT, 265 + .set STRINGID_SHOOTSOCLOSE, 266 + .set STRINGID_GOTCHAPKMNCAUGHT, 267 + .set STRINGID_GOTCHAPKMNCAUGHT2, 268 + .set STRINGID_GIVENICKNAMECAPTURED, 269 + .set STRINGID_PKMNSENTTOPC, 270 + .set STRINGID_PKMNDATAADDEDTODEX, 271 + .set STRINGID_ITISRAINING, 272 + .set STRINGID_SANDSTORMISRAGING, 273 + .set STRINGID_CANTESCAPE2, 274 + .set STRINGID_PKMNIGNORESASLEEP, 275 + .set STRINGID_PKMNIGNOREDORDERS, 276 + .set STRINGID_PKMNBEGANTONAP, 277 + .set STRINGID_PKMNLOAFING, 278 + .set STRINGID_PKMNWONTOBEY, 279 + .set STRINGID_PKMNTURNEDAWAY, 280 + .set STRINGID_PKMNPRETENDNOTNOTICE, 281 + .set STRINGID_ENEMYABOUTTOSWITCHPKMN, 282 + .set STRINGID_CREPTCLOSER, 283 + .set STRINGID_CANTGETCLOSER, 284 + .set STRINGID_PKMNWATCHINGCAREFULLY, 285 + .set STRINGID_PKMNCURIOUSABOUTX, 286 + .set STRINGID_PKMNENTHRALLEDBYX, 287 + .set STRINGID_PKMNIGNOREDX, 288 + .set STRINGID_THREWPOKEBLOCKATPKMN, 289 + .set STRINGID_OUTOFSAFARIBALLS, 290 + .set STRINGID_PKMNSITEMCUREDPARALYSIS, 291 + .set STRINGID_PKMNSITEMCUREDPOISON, 292 + .set STRINGID_PKMNSITEMHEALEDBURN, 293 + .set STRINGID_PKMNSITEMDEFROSTEDIT, 294 + .set STRINGID_PKMNSITEMWOKEIT, 295 + .set STRINGID_PKMNSITEMSNAPPEDOUT, 296 + .set STRINGID_PKMNSITEMCUREDPROBLEM, 297 + .set STRINGID_PKMNSITEMRESTOREDHEALTH, 298 + .set STRINGID_PKMNSITEMRESTOREDPP, 299 + .set STRINGID_PKMNSITEMRESTOREDSTATUS, 300 + .set STRINGID_PKMNSITEMRESTOREDHPALITTLE, 301 + .set STRINGID_ITEMALLOWSONLYYMOVE, 302 + .set STRINGID_PKMNHUNGONWITHX, 303 + .set STRINGID_EMPTYSTRING3, 304 + .set STRINGID_PKMNSXPREVENTSBURNS, 305 + .set STRINGID_PKMNSXBLOCKSY, 306 + .set STRINGID_PKMNSXRESTOREDHPALITTLE2, 307 + .set STRINGID_PKMNSXWHIPPEDUPSANDSTORM, 308 + .set STRINGID_PKMNSXPREVENTSYLOSS, 309 + .set STRINGID_PKMNSXINFATUATEDY, 310 + .set STRINGID_PKMNSXMADEYINEFFECTIVE, 311 + .set STRINGID_PKMNSXCUREDYPROBLEM, 312 + .set STRINGID_ITSUCKEDLIQUIDOOZE, 313 + .set STRINGID_PKMNTRANSFORMED, 314 + .set STRINGID_ELECTRICITYWEAKENED, 315 + .set STRINGID_FIREWEAKENED, 316 + .set STRINGID_PKMNHIDUNDERWATER, 317 + .set STRINGID_PKMNSPRANGUP, 318 + .set STRINGID_HMMOVESCANTBEFORGOTTEN, 319 + .set STRINGID_XFOUNDONEY, 320 + .set STRINGID_PLAYERDEFEATEDTRAINER1, 321 + .set STRINGID_SOOTHINGAROMA, 322 + .set STRINGID_ITEMSCANTBEUSEDNOW, 323 + .set STRINGID_FORXCOMMAYZ, 324 + .set STRINGID_USINGXTHEYOFZN, 325 + .set STRINGID_PKMNUSEDXTOGETPUMPED, 326 + .set STRINGID_PKMNSXMADEYUSELESS, 327 + .set STRINGID_PKMNTRAPPEDBYSANDTOMB, 328 + .set STRINGID_EMPTYSTRING4, 329 + .set STRINGID_ABOOSTED, 330 + .set STRINGID_PKMNSXINTENSIFIEDSUN, 331 + .set STRINGID_PKMNMAKESGROUNDMISS, 332 + .set STRINGID_YOUTHROWABALLNOWRIGHT, 333 + .set STRINGID_PKMNSXTOOKATTACK, 334 + .set STRINGID_PKMNCHOSEXASDESTINY, 335 + .set STRINGID_PKMNLOSTFOCUS, 336 + .set STRINGID_USENEXTPKMN, 337 + .set STRINGID_PKMNFLEDUSINGITS, 338 + .set STRINGID_PKMNFLEDUSING, 339 + .set STRINGID_PKMNWASDRAGGEDOUT, 340 + .set STRINGID_PREVENTEDFROMWORKING, 341 + .set STRINGID_PKMNSITEMNORMALIZEDSTATUS, 342 + .set STRINGID_TRAINER1USEDITEM, 343 + .set STRINGID_BOXISFULL, 344 + .set STRINGID_PKMNAVOIDEDATTACK, 345 + .set STRINGID_PKMNSXMADEITINEFFECTIVE, 346 + .set STRINGID_PKMNSXPREVENTSFLINCHING, 347 + .set STRINGID_PKMNALREADYHASBURN, 348 + .set STRINGID_STATSWONTDECREASE2, 349 + .set STRINGID_PKMNSXBLOCKSY2, 350 + .set STRINGID_PKMNSXWOREOFF, 351 + .set STRINGID_PKMNRAISEDDEFALITTLE, 352 + .set STRINGID_PKMNRAISEDSPDEFALITTLE, 353 + .set STRINGID_THEWALLSHATTERED, 354 + .set STRINGID_PKMNSXPREVENTSYSZ, 355 + .set STRINGID_PKMNSXCUREDITSYPROBLEM, 356 + .set STRINGID_ATTACKERCANTESCAPE, 357 + .set STRINGID_PKMNOBTAINEDX, 358 + .set STRINGID_PKMNOBTAINEDX2, 359 + .set STRINGID_PKMNOBTAINEDXYOBTAINEDZ, 360 + .set STRINGID_BUTNOEFFECT, 361 + .set STRINGID_PKMNSXHADNOEFFECTONY, 362 + .set STRINGID_TWOENEMIESDEFEATED, 363 + .set STRINGID_TRAINER2LOSETEXT, 364 + .set STRINGID_PKMNINCAPABLEOFPOWER, 365 + .set STRINGID_GLINTAPPEARSINEYE, 366 + .set STRINGID_PKMNGETTINGINTOPOSITION, 367 + .set STRINGID_PKMNBEGANGROWLINGDEEPLY, 368 + .set STRINGID_PKMNEAGERFORMORE, 369 + .set STRINGID_DEFEATEDOPPONENTBYREFEREE, 370 + .set STRINGID_LOSTTOOPPONENTBYREFEREE, 371 + .set STRINGID_TIEDOPPONENTBYREFEREE, 372 + .set STRINGID_QUESTIONFORFEITMATCH, 373 + .set STRINGID_FORFEITEDMATCH, 374 + .set STRINGID_PKMNTRANSFERREDSOMEONESPC, 375 + .set STRINGID_PKMNTRANSFERREDLANETTESPC, 376 + .set STRINGID_PKMNBOXSOMEONESPCFULL, 377 + .set STRINGID_PKMNBOXLANETTESPCFULL, 378 + .set STRINGID_TRAINER1WINTEXT, 379 + .set STRINGID_TRAINER2WINTEXT, 380 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index b2dfec5d8..1f6be1390 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1,586 +1,4610 @@ .include "asm/macros.inc" + .include "asm/macros/battle_script.inc" .include "constants/constants.inc" + .include "constants/battle_constants.inc" + .include "constants/battle_script_constants.inc" + .include "constants/battle_text.inc" .section script_data, "aw", %progbits gBattleScriptsForMoveEffects:: @ 82D86A8 - .incbin "baserom.gba", 0x2d86a8, 0x388 - -BattleScript_PresentDamageTarget:: @ 82D8A30 - .incbin "baserom.gba", 0x2d8a30, 0x1e - -BattleScript_MoveEnd:: @ 82D8A4E - .incbin "baserom.gba", 0x2d8a4e, 0x12 - -BattleScript_PauseEffectivenessSoundResultMsgEndMove:: @ 82D8A60 - .incbin "baserom.gba", 0x2d8a60, 0x274 - -BattleScript_StatUp:: @ 82D8CD4 - .incbin "baserom.gba", 0x2d8cd4, 0x91 - -BattleScript_StatDown:: @ 82D8D65 - .incbin "baserom.gba", 0x2d8d65, 0x6fd - -BattleScript_MoveUsedMustRecharge:: @ 82D9462 - .incbin "baserom.gba", 0x2d9462, 0xa7f - -BattleScript_PresentHealTarget:: @ 82D9EE1 - .incbin "baserom.gba", 0x2d9ee1, 0x1a - -BattleScript_AlreadyAtFullHp:: @ 82D9EFB - .incbin "baserom.gba", 0x2d9efb, 0x21 - -BattleScript_ButItFailed:: @ 82D9F1C - .incbin "baserom.gba", 0x2d9f1c, 0x88e - -BattleScript_FaintAttacker:: @ 82DA7AA - .incbin "baserom.gba", 0x2da7aa, 0xd - -BattleScript_FaintTarget:: @ 82DA7B7 - .incbin "baserom.gba", 0x2da7b7, 0xd - -gUnknown_082DA7C4:: @ 82DA7C4 - .incbin "baserom.gba", 0x2da7c4, 0x9 - -gUnknown_082DA7CD:: @ 82DA7CD - .incbin "baserom.gba", 0x2da7cd, 0x160 - -BattleScript_LocalTrainerBattleWon:: @ 82DA92D - .incbin "baserom.gba", 0x2da92d, 0x3d - -BattleScript_PayDayMoneyAndPickUpItems:: @ 82DA96A - .incbin "baserom.gba", 0x2da96a, 0x3 - -BattleScript_LocalBattleLost:: @ 82DA96D - .incbin "baserom.gba", 0x2da96d, 0x9e - -gUnknown_082DAA0B:: @ 82DAA0B - .incbin "baserom.gba", 0x2daa0b, 0x2a - -BattleScript_LinkBattleWonOrLost:: @ 82DAA35 - .incbin "baserom.gba", 0x2daa35, 0x52 - -BattleScript_FrontierTrainerBattleWon:: @ 82DAA87 - .incbin "baserom.gba", 0x2daa87, 0x54 - -BattleScript_SmokeBallEscape:: @ 82DAADB - .incbin "baserom.gba", 0x2daadb, 0xe - -BattleScript_RanAwayUsingMonAbility:: @ 82DAAE9 - .incbin "baserom.gba", 0x2daae9, 0x7 - -BattleScript_GotAwaySafely:: @ 82DAAF0 - .incbin "baserom.gba", 0x2daaf0, 0x7 - -BattleScript_WildMonFled:: @ 82DAAF7 - .incbin "baserom.gba", 0x2daaf7, 0x7 - -gUnknown_082DAAFE:: @ 82DAAFE - .incbin "baserom.gba", 0x2daafe, 0x4 - -BattleScript_PrintFailedToRunString:: @ 82DAB02 - .incbin "baserom.gba", 0x2dab02, 0x9 - -gUnknown_082DAB0B:: @ 82DAB0B - .incbin "baserom.gba", 0x2dab0b, 0x6 - -gUnknown_082DAB11:: @ 82DAB11 - .incbin "baserom.gba", 0x2dab11, 0x4 - -BattleScript_ActionSwitch:: @ 82DAB15 - .incbin "baserom.gba", 0x2dab15, 0xa4 - -BattleScript_Pausex20:: @ 82DABB9 - .incbin "baserom.gba", 0x2dabb9, 0x4 - -BattleScript_LevelUp:: @ 82DABBD - .incbin "baserom.gba", 0x2dabbd, 0x6f - -gUnknown_082DAC2C:: @ 82DAC2C - .incbin "baserom.gba", 0x2dac2c, 0x1b - -gUnknown_082DAC47:: @ 82DAC47 - .incbin "baserom.gba", 0x2dac47, 0x82 - -gUnknown_082DACC9:: @ 82DACC9 - .incbin "baserom.gba", 0x2dacc9, 0x9 - -gUnknown_082DACD2:: @ 82DACD2 - .incbin "baserom.gba", 0x2dacd2, 0xe - -gUnknown_082DACE0:: @ 82DACE0 - .incbin "baserom.gba", 0x2dace0, 0x7 - -gUnknown_082DACE7:: @ 82DACE7 - .incbin "baserom.gba", 0x2dace7, 0x13 - -gUnknown_082DACFA:: @ 82DACFA - .incbin "baserom.gba", 0x2dacfa, 0x11 - -gUnknown_082DAD0B:: @ 82DAD0B - .incbin "baserom.gba", 0x2dad0b, 0xa - -BattleScript_LeechSeedTurnDrain:: @ 82DAD15 - .incbin "baserom.gba", 0x2dad15, 0x5c - -BattleScript_BideStoringEnergy:: @ 82DAD71 - .incbin "baserom.gba", 0x2dad71, 0xb - -BattleScript_BideAttack:: @ 82DAD7C - .incbin "baserom.gba", 0x2dad7c, 0x48 - -BattleScript_BideNoEnergyToAttack:: @ 82DADC4 - .incbin "baserom.gba", 0x2dadc4, 0x14 - -gUnknown_082DADD8:: @ 82DADD8 - .incbin "baserom.gba", 0x2dadd8, 0x2b - -BattleScript_MistProtected:: @ 82DAE03 - .incbin "baserom.gba", 0x2dae03, 0xa - -BattleScript_RageIsBuilding:: @ 82DAE0D - .incbin "baserom.gba", 0x2dae0d, 0x7 - -BattleScript_MoveUsedIsDisabled:: @ 82DAE14 - .incbin "baserom.gba", 0x2dae14, 0xb - -gUnknown_082DAE1F:: @ 82DAE1F - .incbin "baserom.gba", 0x2dae1f, 0x4 - -BattleScript_DisabledNoMore:: @ 82DAE23 - .incbin "baserom.gba", 0x2dae23, 0x7 - -gUnknown_082DAE2A:: @ 82DAE2A - .incbin "baserom.gba", 0x2dae2a, 0xd - -BattleScript_EncoredNoMore:: @ 82DAE37 - .incbin "baserom.gba", 0x2dae37, 0x7 - -BattleScript_DestinyBondTakesLife:: @ 82DAE3E - .incbin "baserom.gba", 0x2dae3e, 0x1b - -gUnknown_082DAE59:: @ 82DAE59 - .incbin "baserom.gba", 0x2dae59, 0x37 - -gUnknown_082DAE90:: @ 82DAE90 - .incbin "baserom.gba", 0x2dae90, 0x37 - -gUnknown_082DAEC7:: @ 82DAEC7 - .incbin "baserom.gba", 0x2daec7, 0x3e - -gUnknown_082DAF05:: @ 82DAF05 - .incbin "baserom.gba", 0x2daf05, 0x1b - -gUnknown_082DAF20:: @ 82DAF20 - .incbin "baserom.gba", 0x2daf20, 0x7 - -BattleScript_AllStatsUp:: @ 82DAF27 - .incbin "baserom.gba", 0x2daf27, 0x9c - -BattleScript_RapidSpinAway:: @ 82DAFC3 - .incbin "baserom.gba", 0x2dafc3, 0x2 - -BattleScript_WrapFree:: @ 82DAFC5 - .incbin "baserom.gba", 0x2dafc5, 0x11 - -BattleScript_LeechSeedFree:: @ 82DAFD6 - .incbin "baserom.gba", 0x2dafd6, 0x7 - -BattleScript_SpikesFree:: @ 82DAFDD - .incbin "baserom.gba", 0x2dafdd, 0x7 - -gUnknown_082DAFE4:: @ 82DAFE4 - .incbin "baserom.gba", 0x2dafe4, 0x8e - -BattleScript_NoMovesLeft:: @ 82DB072 - .incbin "baserom.gba", 0x2db072, 0x4 - -gUnknown_082DB076:: @ 82DB076 - .incbin "baserom.gba", 0x2db076, 0x4 - -BattleScript_NoPPForMove:: @ 82DB07A - .incbin "baserom.gba", 0x2db07a, 0xf - -gUnknown_082DB089:: @ 82DB089 - .incbin "baserom.gba", 0x2db089, 0xf - -gUnknown_082DB098:: @ 82DB098 - .incbin "baserom.gba", 0x2db098, 0x8 - -gUnknown_082DB0A0:: @ 82DB0A0 - .incbin "baserom.gba", 0x2db0a0, 0x4 - -BattleScript_MoveUsedIsTaunted:: @ 82DB0A4 - .incbin "baserom.gba", 0x2db0a4, 0xb - -gUnknown_082DB0AF:: @ 82DB0AF - .incbin "baserom.gba", 0x2db0af, 0x8 - -BattleScript_WishComesTrue:: @ 82DB0B7 - .incbin "baserom.gba", 0x2db0b7, 0x37 - -BattleScript_IngrainTurnHeal:: @ 82DB0EE - .incbin "baserom.gba", 0x2db0ee, 0x29 - -BattleScript_AtkDefDown:: @ 82DB117 - .incbin "baserom.gba", 0x2db117, 0x51 - -BattleScript_KnockedOff:: @ 82DB168 - .incbin "baserom.gba", 0x2db168, 0xe - -BattleScript_MoveUsedIsImprisoned:: @ 82DB176 - .incbin "baserom.gba", 0x2db176, 0xb - -gUnknown_082DB181:: @ 82DB181 - .incbin "baserom.gba", 0x2db181, 0x4 - -gUnknown_082DB185:: @ 82DB185 - .incbin "baserom.gba", 0x2db185, 0x8 - -BattleScript_GrudgeTakesPp:: @ 82DB18D - .incbin "baserom.gba", 0x2db18d, 0x7 - -BattleScript_MagicCoatBounce:: @ 82DB194 - .incbin "baserom.gba", 0x2db194, 0x18 - -BattleScript_SnatchedMove:: @ 82DB1AC - .incbin "baserom.gba", 0x2db1ac, 0x1b - -BattleScript_EnduredMsg:: @ 82DB1C7 - .incbin "baserom.gba", 0x2db1c7, 0x7 - -BattleScript_OneHitKOMsg:: @ 82DB1CE - .incbin "baserom.gba", 0x2db1ce, 0x7 - -BattleScript_SAtkDown2:: @ 82DB1D5 - .incbin "baserom.gba", 0x2db1d5, 0x2a - -BattleScript_FocusPunchSetUp:: @ 82DB1FF - .incbin "baserom.gba", 0x2db1ff, 0x14 - -BattleScript_MoveUsedIsAsleep:: @ 82DB213 - .incbin "baserom.gba", 0x2db213, 0xd - -BattleScript_MoveUsedWokeUp:: @ 82DB220 - .incbin "baserom.gba", 0x2db220, 0x14 - -gUnknown_082DB234:: @ 82DB234 - .incbin "baserom.gba", 0x2db234, 0x9 - -BattleScript_PoisonTurnDmg:: @ 82DB23D - .incbin "baserom.gba", 0x2db23d, 0x22 - -BattleScript_BurnTurnDmg:: @ 82DB25F - .incbin "baserom.gba", 0x2db25f, 0xb - -BattleScript_MoveUsedIsFrozen:: @ 82DB26A - .incbin "baserom.gba", 0x2db26a, 0xd - -BattleScript_MoveUsedUnfroze:: @ 82DB277 - .incbin "baserom.gba", 0x2db277, 0xb - -BattleScript_DefrostedViaFireMove:: @ 82DB282 - .incbin "baserom.gba", 0x2db282, 0x9 - -BattleScript_MoveUsedIsParalyzed:: @ 82DB28B - .incbin "baserom.gba", 0x2db28b, 0x10 - -BattleScript_MoveUsedFlinched:: @ 82DB29B - .incbin "baserom.gba", 0x2db29b, 0xb - -gUnknown_082DB2A6:: @ 82DB2A6 - .incbin "baserom.gba", 0x2db2a6, 0x9 - -BattleScript_ThrashConfuses:: @ 82DB2AF - .incbin "baserom.gba", 0x2db2af, 0xe - -BattleScript_MoveUsedIsConfused:: @ 82DB2BD - .incbin "baserom.gba", 0x2db2bd, 0x43 - -BattleScript_MoveUsedIsConfusedNoMore:: @ 82DB300 - .incbin "baserom.gba", 0x2db300, 0x7 - -BattleScript_PrintPayDayMoneyString:: @ 82DB307 - .incbin "baserom.gba", 0x2db307, 0x7 - -BattleScript_WrapTurnDmg:: @ 82DB30E - .incbin "baserom.gba", 0x2db30e, 0x12 - -BattleScript_WrapEnds:: @ 82DB320 - .incbin "baserom.gba", 0x2db320, 0x7 - -BattleScript_MoveUsedIsInLove:: @ 82DB327 - .incbin "baserom.gba", 0x2db327, 0xd - -BattleScript_MoveUsedIsParalyzedCantAttack:: @ 82DB334 - .incbin "baserom.gba", 0x2db334, 0xb - -BattleScript_NightmareTurnDmg:: @ 82DB33F - .incbin "baserom.gba", 0x2db33f, 0x11 - -BattleScript_CurseTurnDmg:: @ 82DB350 - .incbin "baserom.gba", 0x2db350, 0x11 - -BattleScript_TargetPRLZHeal:: @ 82DB361 - .incbin "baserom.gba", 0x2db361, 0x9 - -BattleScript_MoveEffectSleep:: @ 82DB36A - .incbin "baserom.gba", 0x2db36A, 0xE - -BattleScript_YawnMakesAsleep:: @ 82DB378 - .incbin "baserom.gba", 0x2db378, 0xE - -BattleScript_MoveEffectPoison:: @ 82DB386 - .incbin "baserom.gba", 0x2db386, 0xF - -BattleScript_MoveEffectBurn:: @ 82DB395 - .incbin "baserom.gba", 0x2db395, 0xF - -BattleScript_MoveEffectFreeze:: @ 82DB3A4 - .incbin "baserom.gba", 0x2db3A4, 0xF - -BattleScript_MoveEffectParalysis:: @ 82DB3B3 - .incbin "baserom.gba", 0x2db3B3, 0xF - -BattleScript_MoveEffectUproar:: @ 82DB3C2 - .incbin "baserom.gba", 0x2db3C2, 0x7 - -BattleScript_MoveEffectToxic:: @ 82DB3C9 - .incbin "baserom.gba", 0x2db3C9, 0xD - -BattleScript_MoveEffectPayDay:: @ 82DB3D6 - .incbin "baserom.gba", 0x2db3D6, 0x7 - -BattleScript_MoveEffectWrap:: @ 82DB3DD - .incbin "baserom.gba", 0x2db3DD, 0x9 - -BattleScript_MoveEffectConfusion:: @ 82DB3E6 - .incbin "baserom.gba", 0x2db3E6, 0xE - -BattleScript_MoveEffectRecoil33:: @ 82DB3F4 - .incbin "baserom.gba", 0x2db3F4, 0x2e - -BattleScript_ItemSteal:: @ 82DB422 - .incbin "baserom.gba", 0x2db422, 0xe - -BattleScript_DrizzleActivates:: @ 82DB430 - .incbin "baserom.gba", 0x2db430, 0x14 - -BattleScript_SpeedBoostActivates:: @ 82DB444 - .incbin "baserom.gba", 0x2db444, 0xe - -BattleScript_TraceActivates:: @ 82DB452 - .incbin "baserom.gba", 0x2db452, 0xa - -BattleScript_RainDishActivates:: @ 82DB45C - .incbin "baserom.gba", 0x2db45c, 0x14 - -BattleScript_SandstreamActivates:: @ 82DB470 - .incbin "baserom.gba", 0x2db470, 0x14 - -BattleScript_ShedSkinActivates:: @ 82DB484 - .incbin "baserom.gba", 0x2db484, 0x25 - -BattleScript_CastformChange:: @ 82DB4A9 - .incbin "baserom.gba", 0x2db4a9, 0xf - -gUnknown_082DB4B8:: @ 82DB4B8 - .incbin "baserom.gba", 0x2db4b8, 0x9 - -gUnknown_082DB4C1:: @ 82DB4C1 - .incbin "baserom.gba", 0x2db4c1, 0x69 - -BattleScript_DroughtActivates:: @ 82DB52A - .incbin "baserom.gba", 0x2db52a, 0x14 - -BattleScript_TookAttack:: @ 82DB53E - .incbin "baserom.gba", 0x2db53e, 0x14 - -BattleScript_SturdyPreventsOHKO:: @ 82DB552 - .incbin "baserom.gba", 0x2db552, 0xe - -BattleScript_DampStopsExplosion:: @ 82DB560 - .incbin "baserom.gba", 0x2db560, 0xe - -BattleScript_MoveHPDrain_PPLoss:: @ 82DB56E - .incbin "baserom.gba", 0x2db56e, 0x1 - -BattleScript_MoveHPDrain:: @ 82DB56F - .incbin "baserom.gba", 0x2db56f, 0x22 - -gUnknown_082DB591:: @ 82DB591 - .incbin "baserom.gba", 0x2db591, 0x1 - -gUnknown_082DB592:: @ 82DB592 - .incbin "baserom.gba", 0x2db592, 0x15 - -BattleScript_FlashFireBoost_PPLoss:: @ 82DB5A7 - .incbin "baserom.gba", 0x2db5a7, 0x1 - -BattleScript_FlashFireBoost:: @ 82DB5A8 - .incbin "baserom.gba", 0x2db5a8, 0x1f - -BattleScript_AbilityNoStatLoss:: @ 82DB5C7 - .incbin "baserom.gba", 0x2db5c7, 0xa - -BattleScript_BRNPrevention:: @ 82DB5D1 - .incbin "baserom.gba", 0x2db5d1, 0xc - -BattleScript_PRLZPrevention:: @ 82DB5DD - .incbin "baserom.gba", 0x2db5dd, 0xc - -BattleScript_PSNPrevention:: @ 82DB5E9 - .incbin "baserom.gba", 0x2db5e9, 0xc - -BattleScript_ObliviousPreventsAttraction:: @ 82DB5F5 - .incbin "baserom.gba", 0x2db5f5, 0xe - -BattleScript_FlinchPrevention:: @ 82DB603 - .incbin "baserom.gba", 0x2db603, 0x1c - -BattleScript_SoundproofProtected:: @ 82DB61F - .incbin "baserom.gba", 0x2db61f, 0x10 - -BattleScript_AbilityNoSpecificStatLoss:: @ 82DB62F - .incbin "baserom.gba", 0x2db62f, 0x10 - -BattleScript_StickyHoldActivates:: @ 82DB63F - .incbin "baserom.gba", 0x2db63f, 0xe - -BattleScript_ColorChangeActivates:: @ 82DB64D - .incbin "baserom.gba", 0x2db64d, 0x7 - -BattleScript_RoughSkinActivates:: @ 82DB654 - .incbin "baserom.gba", 0x2db654, 0x1b - -BattleScript_CuteCharmActivates:: @ 82DB66F - .incbin "baserom.gba", 0x2db66f, 0xd - -BattleScript_ApplySecondaryEffect:: @ 82DB67C - .incbin "baserom.gba", 0x2db67c, 0x3 - -BattleScript_SynchronizeActivates:: @ 82DB67F - .incbin "baserom.gba", 0x2db67f, 0x3 - -BattleScript_NoItemSteal:: @ 82DB682 - .incbin "baserom.gba", 0x2db682, 0xa - -gUnknown_082DB68C:: @ 82DB68C - .incbin "baserom.gba", 0x2db68c, 0x9 - -gUnknown_082DB695:: @ 82DB695 - .incbin "baserom.gba", 0x2db695, 0x10 - -gUnknown_082DB6A5:: @ 82DB6A5 - .incbin "baserom.gba", 0x2db6a5, 0x8 - -BattleScript_MoveUsedLoafingAround:: @ 82DB6AD - .incbin "baserom.gba", 0x2db6ad, 0x2c - -gUnknown_082DB6D9:: @ 82DB6D9 - .incbin "baserom.gba", 0x2db6d9, 0x17 - -gUnknown_082DB6F0:: @ 82DB6F0 - .incbin "baserom.gba", 0x2db6f0, 0xb - -BattleScript_SubstituteFade:: @ 82DB6FB - .incbin "baserom.gba", 0x2db6fb, 0xb - -BattleScript_BerryCurePrlzEnd2:: @ 82DB706 - .incbin "baserom.gba", 0x2db706, 0x6 - -BattleScript_BerryCureParRet:: @ 82DB70C - .incbin "baserom.gba", 0x2db70c, 0x12 - -BattleScript_BerryCurePsnEnd2:: @ 82DB71E - .incbin "baserom.gba", 0x2db71e, 0x6 - -BattleScript_BerryCurePsnRet:: @ 82DB724 - .incbin "baserom.gba", 0x2db724, 0x12 - -BattleScript_BerryCureBrnEnd2:: @ 82DB736 - .incbin "baserom.gba", 0x2db736, 0x6 - -BattleScript_BerryCureBrnRet:: @ 82DB73C - .incbin "baserom.gba", 0x2db73c, 0x12 - -BattleScript_BerryCureFrzEnd2:: @ 82DB74E - .incbin "baserom.gba", 0x2db74e, 0x6 - -BattleScript_BerryCureFrzRet:: @ 82DB754 - .incbin "baserom.gba", 0x2db754, 0x12 - -BattleScript_BerryCureSlpEnd2:: @ 82DB766 - .incbin "baserom.gba", 0x2db766, 0x6 - -BattleScript_BerryCureSlpRet:: @ 82DB76C - .incbin "baserom.gba", 0x2db76c, 0x12 - -BattleScript_BerryCureConfusionEnd2:: @ 82DB77E - .incbin "baserom.gba", 0x2db77e, 0x6 - -BattleScript_BerryCureConfusionRet:: @ 82DB784 - .incbin "baserom.gba", 0x2db784, 0x10 - -BattleScript_BerryCureChosenStatusEnd2:: @ 82DB794 - .incbin "baserom.gba", 0x2db794, 0x6 - -BattleScript_BerryCureChosenStatusRet:: @ 82DB79A - .incbin "baserom.gba", 0x2db79a, 0x14 - -BattleScript_WhiteHerbEnd2:: @ 82DB7AE - .incbin "baserom.gba", 0x2db7ae, 0x6 - -BattleScript_WhiteHerbRet:: @ 82DB7B4 - .incbin "baserom.gba", 0x2db7b4, 0x10 - -BattleScript_ItemHealHP_RemoveItem:: @ 82DB7C4 - .incbin "baserom.gba", 0x2db7c4, 0x1d - -BattleScript_BerryPPHealEnd2:: @ 82DB7E1 - .incbin "baserom.gba", 0x2db7e1, 0x10 - -BattleScript_ItemHealHP_End2:: @ 82DB7F1 - .incbin "baserom.gba", 0x2db7f1, 0x6 - -BattleScript_ItemHealHP_Ret:: @ 82DB7F7 - .incbin "baserom.gba", 0x2db7f7, 0x1b - -gUnknown_082DB812:: @ 82DB812 - .incbin "baserom.gba", 0x2db812, 0x4 - -BattleScript_HangedOnMsg:: @ 82DB816 - .incbin "baserom.gba", 0x2db816, 0xe - -BattleScript_BerryConfuseHealEnd2:: @ 82DB824 - .incbin "baserom.gba", 0x2db824, 0x2a - -BattleScript_BerryStatRaiseEnd2:: @ 82DB84E - .incbin "baserom.gba", 0x2db84e, 0x1b - -BattleScript_BerryFocusEnergyEnd2:: @ 82DB869 - .incbin "baserom.gba", 0x2db869, 0x10 - -BattleScript_ActionSelectionItemsCantBeUsed:: @ 82DB879 - .incbin "baserom.gba", 0x2db879, 0x4 - -gUnknown_082DB87D:: @ 82DB87D - .incbin "baserom.gba", 0x2db87d, 0x4 - -gUnknown_082DB881:: @ 82DB881 - .incbin "baserom.gba", 0x2db881, 0x3d - -gUnknown_082DB8BE:: @ 82DB8BE - .incbin "baserom.gba", 0x2db8be, 0x35 - -gUnknown_082DB8F3:: @ 82DB8F3 - .incbin "baserom.gba", 0x2db8f3, 0xc7 - -gUnknown_082DB9BA:: @ 82DB9BA - .incbin "baserom.gba", 0x2db9ba, 0x7 - -gUnknown_082DB9C1:: @ 82DB9C1 - .incbin "baserom.gba", 0x2db9c1, 0x7 - -gUnknown_082DB9C8:: @ 82DB9C8 - .incbin "baserom.gba", 0x2db9c8, 0xc + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSleep + .4byte BattleScript_EffectPoisonHit + .4byte BattleScript_EffectAbsorb + .4byte BattleScript_EffectBurnHit + .4byte BattleScript_EffectFreezeHit + .4byte BattleScript_EffectParalyzeHit + .4byte BattleScript_EffectExplosion + .4byte BattleScript_EffectDreamEater + .4byte BattleScript_EffectMirrorMove + .4byte BattleScript_EffectAttackUp + .4byte BattleScript_EffectDefenseUp + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSpecialAttackUp + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectEvasionUp + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectAttackDown + .4byte BattleScript_EffectDefenseDown + .4byte BattleScript_EffectSpeedDown + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectAccuracyDown + .4byte BattleScript_EffectEvasionDown + .4byte BattleScript_EffectHaze + .4byte BattleScript_EffectBide + .4byte BattleScript_EffectRampage + .4byte BattleScript_EffectRoar + .4byte BattleScript_EffectMultiHit + .4byte BattleScript_EffectConversion + .4byte BattleScript_EffectFlinchHit + .4byte BattleScript_EffectRestoreHp + .4byte BattleScript_EffectToxic + .4byte BattleScript_EffectPayDay + .4byte BattleScript_EffectLightScreen + .4byte BattleScript_EffectTriAttack + .4byte BattleScript_EffectRest + .4byte BattleScript_EffectOhko + .4byte BattleScript_EffectRazorWind + .4byte BattleScript_EffectSuperFang + .4byte BattleScript_EffectDragonRage + .4byte BattleScript_EffectTrap + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectDoubleHit + .4byte BattleScript_EffectRecoilIfMiss + .4byte BattleScript_EffectMist + .4byte BattleScript_EffectFocusEnergy + .4byte BattleScript_EffectRecoil + .4byte BattleScript_EffectConfuse + .4byte BattleScript_EffectAttackUp2 + .4byte BattleScript_EffectDefenseUp2 + .4byte BattleScript_EffectSpeedUp2 + .4byte BattleScript_EffectSpecialAttackUp2 + .4byte BattleScript_EffectSpecialDefenseUp2 + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectTransform + .4byte BattleScript_EffectAttackDown2 + .4byte BattleScript_EffectDefenseDown2 + .4byte BattleScript_EffectSpeedDown2 + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSpecialDefenseDown2 + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectReflect + .4byte BattleScript_EffectPoison + .4byte BattleScript_EffectParalyze + .4byte BattleScript_EffectAttackDownHit + .4byte BattleScript_EffectDefenseDownHit + .4byte BattleScript_EffectSpeedDownHit + .4byte BattleScript_EffectSpecialAttackDownHit + .4byte BattleScript_EffectSpecialDefenseDownHit + .4byte BattleScript_EffectAccuracyDownHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSkyAttack + .4byte BattleScript_EffectConfuseHit + .4byte BattleScript_EffectTwineedle + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSubstitute + .4byte BattleScript_EffectRecharge + .4byte BattleScript_EffectRage + .4byte BattleScript_EffectMimic + .4byte BattleScript_EffectMetronome + .4byte BattleScript_EffectLeechSeed + .4byte BattleScript_EffectSplash + .4byte BattleScript_EffectDisable + .4byte BattleScript_EffectLevelDamage + .4byte BattleScript_EffectPsywave + .4byte BattleScript_EffectCounter + .4byte BattleScript_EffectEncore + .4byte BattleScript_EffectPainSplit + .4byte BattleScript_EffectSnore + .4byte BattleScript_EffectConversion2 + .4byte BattleScript_EffectLockOn + .4byte BattleScript_EffectSketch + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSleepTalk + .4byte BattleScript_EffectDestinyBond + .4byte BattleScript_EffectFlail + .4byte BattleScript_EffectSpite + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHealBell + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectTripleKick + .4byte BattleScript_EffectThief + .4byte BattleScript_EffectMeanLook + .4byte BattleScript_EffectNightmare + .4byte BattleScript_EffectMinimize + .4byte BattleScript_EffectCurse + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectProtect + .4byte BattleScript_EffectSpikes + .4byte BattleScript_EffectForesight + .4byte BattleScript_EffectPerishSong + .4byte BattleScript_EffectSandstorm + .4byte BattleScript_EffectProtect + .4byte BattleScript_EffectRollout + .4byte BattleScript_EffectSwagger + .4byte BattleScript_EffectFuryCutter + .4byte BattleScript_EffectAttract + .4byte BattleScript_EffectReturn + .4byte BattleScript_EffectPresent + .4byte BattleScript_EffectReturn + .4byte BattleScript_EffectSafeguard + .4byte BattleScript_EffectThawHit + .4byte BattleScript_EffectMagnitude + .4byte BattleScript_EffectBatonPass + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectRapidSpin + .4byte BattleScript_EffectSonicboom + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectMorningSun + .4byte BattleScript_EffectMorningSun + .4byte BattleScript_EffectMorningSun + .4byte BattleScript_EffectHiddenPower + .4byte BattleScript_EffectRainDance + .4byte BattleScript_EffectSunnyDay + .4byte BattleScript_EffectDefenseUpHit + .4byte BattleScript_EffectAttackUpHit + .4byte BattleScript_EffectAllStatsUpHit + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectBellyDrum + .4byte BattleScript_EffectPsychUp + .4byte BattleScript_EffectMirrorCoat + .4byte BattleScript_EffectSkullBash + .4byte BattleScript_EffectTwister + .4byte BattleScript_EffectEarthquake + .4byte BattleScript_EffectFutureSight + .4byte BattleScript_EffectGust + .4byte BattleScript_EffectStomp + .4byte BattleScript_EffectSolarbeam + .4byte BattleScript_EffectThunder + .4byte BattleScript_EffectTeleport + .4byte BattleScript_EffectBeatUp + .4byte BattleScript_EffectFly + .4byte BattleScript_EffectDefenseCurl + .4byte BattleScript_EffectSoftboiled + .4byte BattleScript_EffectFakeOut + .4byte BattleScript_EffectUproar + .4byte BattleScript_EffectStockpile + .4byte BattleScript_EffectSpitUp + .4byte BattleScript_EffectSwallow + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectHail + .4byte BattleScript_EffectTorment + .4byte BattleScript_EffectFlatter + .4byte BattleScript_EffectWillOWisp + .4byte BattleScript_EffectMemento + .4byte BattleScript_EffectFacade + .4byte BattleScript_EffectFocusPunch + .4byte BattleScript_EffectSmellingsalt + .4byte BattleScript_EffectFollowMe + .4byte BattleScript_EffectNaturePower + .4byte BattleScript_EffectCharge + .4byte BattleScript_EffectTaunt + .4byte BattleScript_EffectHelpingHand + .4byte BattleScript_EffectTrick + .4byte BattleScript_EffectRolePlay + .4byte BattleScript_EffectWish + .4byte BattleScript_EffectAssist + .4byte BattleScript_EffectIngrain + .4byte BattleScript_EffectSuperpower + .4byte BattleScript_EffectMagicCoat + .4byte BattleScript_EffectRecycle + .4byte BattleScript_EffectRevenge + .4byte BattleScript_EffectBrickBreak + .4byte BattleScript_EffectYawn + .4byte BattleScript_EffectKnockOff + .4byte BattleScript_EffectEndeavor + .4byte BattleScript_EffectEruption + .4byte BattleScript_EffectSkillSwap + .4byte BattleScript_EffectImprison + .4byte BattleScript_EffectRefresh + .4byte BattleScript_EffectGrudge + .4byte BattleScript_EffectSnatch + .4byte BattleScript_EffectLowKick + .4byte BattleScript_EffectSecretPower + .4byte BattleScript_EffectDoubleEdge + .4byte BattleScript_EffectTeeterDance + .4byte BattleScript_EffectBurnHit + .4byte BattleScript_EffectMudSport + .4byte BattleScript_EffectPoisonFang + .4byte BattleScript_EffectWeatherBall + .4byte BattleScript_EffectOverheat + .4byte BattleScript_EffectTickle + .4byte BattleScript_EffectCosmicPower + .4byte BattleScript_EffectSkyUppercut + .4byte BattleScript_EffectBulkUp + .4byte BattleScript_EffectPoisonHit + .4byte BattleScript_EffectMudSport + .4byte BattleScript_EffectCalmMind + .4byte BattleScript_EffectDragonDance + .4byte BattleScript_EffectCamouflage + +BattleScript_EffectHit:: + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_SURF, BattleScript_HitFromAtkCanceler + jumpifstatus3 TARGET, STATUS3_UNDERWATER, 0x1, BattleScript_HitFromAtkCanceler + orword gHitMarker, HITMARKER_IGNORE_UNDERWATER + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_HitFromAtkCanceler:: + attackcanceler +BattleScript_HitFromAccCheck:: + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE +BattleScript_HitFromAtkString:: + attackstring + ppreduce +BattleScript_HitFromCritCalc:: + critcalc + damagecalc + typecalc + adjustnormaldamage +BattleScript_HitFromAtkAnimation:: + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL +BattleScript_MoveEnd:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + end + +BattleScript_MakeMoveMissed:: + orbyte gBattleMoveFlags, MOVESTATUS_MISSED +BattleScript_PrintMoveMissed:: + attackstring + ppreduce +BattleScript_MoveMissedPause:: + pause 0x20 +BattleScript_MoveMissed:: + effectivenesssound + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSleep:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8AB0 + jumpifcantmakeasleep BattleScript_82D8ACF + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_SLEEP + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_82D8AB0:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNALREADYASLEEP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D8AC1:: + pause 0x20 + printstring STRINGID_PKMNWASNTAFFECTED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D8ACF:: + pause 0x20 + printfromtable 0x85CC896 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoisonHit:: + setmoveeffect EFFECT_POISON + goto BattleScript_EffectHit + +BattleScript_EffectAbsorb:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + negativedamage + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + jumpifability TARGET, ABILITY_LIQUID_OOZE, BattleScript_82D8B26 + setbyte cMULTISTRING_CHOOSER, 0x0 + goto BattleScript_82D8B2E + +BattleScript_82D8B26:: + manipulatedamage ATK80_DMG_CHANGE_SIGN + setbyte cMULTISTRING_CHOOSER, 0x1 +BattleScript_82D8B2E:: + healthbarupdate ATTACKER + datahpupdate ATTACKER + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8B45 + printfromtable 0x85CC8FC + waitmessage 0x40 +BattleScript_82D8B45:: + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectBurnHit:: + setmoveeffect EFFECT_BURN + goto BattleScript_EffectHit + +BattleScript_EffectFreezeHit:: + setmoveeffect EFFECT_FREEZE + goto BattleScript_EffectHit + +BattleScript_EffectParalyzeHit:: + setmoveeffect EFFECT_PARALYSIS + goto BattleScript_EffectHit + +BattleScript_EffectExplosion:: + attackcanceler + attackstring + ppreduce + faintifabilitynotdamp + setatkhptozero + waitstate + jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_82D8B94 + call BattleScript_82D8BEA + goto BattleScript_82D8B96 + +BattleScript_82D8B94:: + attackanimation + waitanimation +BattleScript_82D8B96:: + movevaluescleanup + critcalc + damagecalc + typecalc + adjustnormaldamage + accuracycheck BattleScript_82D8BCF, ACC_CURR_MOVE + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D8B96 + tryfaintmon ATTACKER, FALSE, NULL + end + +BattleScript_82D8BCF:: + effectivenesssound + resultmessage + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D8B96 + tryfaintmon ATTACKER, FALSE, NULL + end + +BattleScript_82D8BEA:: + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + attackanimation + waitanimation + orbyte gBattleMoveFlags, MOVESTATUS_MISSED + return + +BattleScript_EffectDreamEater:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82D8C0E + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8C18 +BattleScript_82D8C0E:: + attackstring + ppreduce + waitmessage 0x40 + goto BattleScript_82D8AC1 + +BattleScript_82D8C18:: + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + negativedamage + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8C56 + printstring STRINGID_PKMNDREAMEATEN + waitmessage 0x40 +BattleScript_82D8C56:: + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectMirrorMove:: + attackcanceler + attackstring + pause 0x40 + trymirrormove + ppreduce + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_MIRRORMOVEFAILED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackUp:: + setstatchanger ATK, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectDefenseUp:: + setstatchanger DEF, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialAttackUp:: + setstatchanger SPATK, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectEvasionUp:: + setstatchanger EVASION, 1, FALSE +BattleScript_EffectStatUp:: + attackcanceler +BattleScript_EffectStatUpAfterAtkCanceler:: + attackstring + ppreduce + statbuffchange 0x41, BattleScript_82D8CCF + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8CBD + pause 0x20 + goto BattleScript_82D8CC7 + +BattleScript_82D8CBD:: + attackanimation + waitanimation +BattleScript_82D8CBF:: + setgraphicalstatchangevalues + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 +BattleScript_82D8CC7:: + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82D8CCF:: + goto BattleScript_MoveEnd + +BattleScript_StatUp:: + playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable 0x85CC89C + waitmessage 0x40 + return + +BattleScript_EffectAttackDown:: + setstatchanger ATK, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectDefenseDown:: + setstatchanger DEF, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpeedDown:: + setstatchanger SPEED, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectAccuracyDown:: + setstatchanger ACC, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectEvasionDown:: + setstatchanger EVASION, 1, TRUE +BattleScript_EffectStatDown:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + statbuffchange 0x1, BattleScript_82D8D60 + jumpifbyte LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8D4E + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_82D8D60 + pause 0x20 + goto BattleScript_82D8D58 + +BattleScript_82D8D4E:: + attackanimation + waitanimation + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 +BattleScript_82D8D58:: + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82D8D60:: + goto BattleScript_MoveEnd + +BattleScript_StatDown:: + playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable 0x85CC8A8 + waitmessage 0x40 + return + +BattleScript_EffectHaze:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + normalisebuffs + printstring STRINGID_STATCHANGESGONE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectBide:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + orword gHitMarker, HITMARKER_x8000000 + setbide + goto BattleScript_MoveEnd + +BattleScript_EffectRampage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D8DAE + ppreduce +BattleScript_82D8DAE:: + confuseifrepeatingattackends + goto BattleScript_HitFromCritCalc + +BattleScript_EffectRoar:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_SUCTION_CUPS, BattleScript_82DB5B9 + jumpifstatus3 TARGET, STATUS3_ROOTED, 0x0, BattleScript_82DB109 + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_ARENA, BattleScript_ButItFailed + forcerandomswitch BattleScript_ButItFailed + +BattleScript_EffectMultiHit:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setmultihitcounter 0x0 + initmultihitstring + setbyte sFIELD_16, 0x0 +BattleScript_82D8DFD:: + jumpifhasnohp ATTACKER, BattleScript_82D8E93 + jumpifhasnohp TARGET, BattleScript_82D8E74 + jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D8E1F + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D8E74 +BattleScript_82D8E1F:: + movevaluescleanup + copyarray cEFFECT_CHOOSER, sFIELD_16, 0x1 + critcalc + damagecalc + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8E71 + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + addbyte sMULTIHIT_STRING + 4, 0x1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_82D8E74 + decrementmultihit BattleScript_82D8DFD + goto BattleScript_82D8E74 + +BattleScript_82D8E71:: + pause 0x20 +BattleScript_82D8E74:: + resultmessage + waitmessage 0x40 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D8E93 + copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 + printstring STRINGID_HITXTIMES + waitmessage 0x40 +BattleScript_82D8E93:: + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x2 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0x4 + moveend 0x0, 0x0 + end + +BattleScript_EffectConversion:: + attackcanceler + attackstring + ppreduce + tryconversiontypechange BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlinchHit:: + setmoveeffect EFFECT_FLINCH + goto BattleScript_EffectHit + +BattleScript_EffectRestoreHp:: + attackcanceler + attackstring + ppreduce + tryhealhalfhealth BattleScript_AlreadyAtFullHp, ATTACKER + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectToxic:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_82D8F63 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected + jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_TOXIC + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyPoisoned:: + various ATTACKER, 0x17 + pause 0x40 + printstring STRINGID_PKMNALREADYPOISONED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D8F63:: + copyarray gEffectBank, gBankTarget, 0x1 + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_PSNPrevention + goto BattleScript_MoveEnd + +BattleScript_EffectPayDay:: + setmoveeffect EFFECT_PAYDAY + goto BattleScript_EffectHit + +BattleScript_EffectLightScreen:: + attackcanceler + attackstring + ppreduce + setlightscreen + goto BattleScript_82D928C + +BattleScript_EffectTriAttack:: + setmoveeffect EFFECT_TRI_ATTACK + goto BattleScript_EffectHit + +BattleScript_EffectRest:: + attackcanceler + attackstring + ppreduce + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D8FD6 + jumpifcantmakeasleep BattleScript_82D8FC6 + trysetrest BattleScript_AlreadyAtFullHp + pause 0x20 + printfromtable 0x85CC882 + waitmessage 0x40 + updatestatusicon ATTACKER + waitstate + goto BattleScript_PresentHealTarget + +BattleScript_82D8FC6:: + pause 0x40 + printfromtable 0x85CC896 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D8FD6:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNALREADYASLEEP2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectOhko:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_HitFromAtkAnimation + tryKO BattleScript_82D9008 + trysetdestinybondtohappen + goto BattleScript_HitFromAtkAnimation + +BattleScript_82D9008:: + pause 0x40 + printfromtable 0x85CC8F4 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRazorWind:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 + setbyte sFIELD_F, 0x0 + call BattleScript_82D906F + goto BattleScript_MoveEnd + +BattleScript_82D9040:: + attackcanceler + setmoveeffect EFFECT_CHARGING + setbyte sANIM_TURN, 0x1 + clearstatusfromeffect ATTACKER + orword gHitMarker, HITMARKER_NO_PPDEDUCT + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck + setmoveeffect EFFECT_FLINCH + goto BattleScript_HitFromAccCheck + +BattleScript_82D906F:: + attackcanceler + printstring STRINGID_EMPTYSTRING3 + ppreduce + attackanimation + waitanimation + orword gHitMarker, HITMARKER_x8000000 + setmoveeffect EFFECT_CHARGING | AFFECTS_USER + seteffectprimary + copyarray cMULTISTRING_CHOOSER, sFIELD_F, 0x1 + printfromtable 0x85CC8B0 + waitmessage 0x40 + return + +BattleScript_EffectSuperFang:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + damagetohalftargethp + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectDragonRage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + setbyte gBattleMoveDamage, 0x28 + setbyte gBattleMoveDamage + 1, 0x0 + setbyte gBattleMoveDamage + 2, 0x0 + setbyte gBattleMoveDamage + 3, 0x0 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectTrap:: + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_WHIRLPOOL, BattleScript_82D9105 + jumpifstatus3 TARGET, STATUS3_UNDERWATER, 0x1, BattleScript_82D9105 + orword gHitMarker, HITMARKER_IGNORE_UNDERWATER + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_82D9105:: + setmoveeffect EFFECT_WRAP + goto BattleScript_EffectHit + +BattleScript_EffectDoubleHit:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setmultihitcounter 0x2 + initmultihitstring + setbyte sFIELD_16, 0x0 + goto BattleScript_82D8DFD + +BattleScript_EffectRecoilIfMiss:: + attackcanceler + accuracycheck BattleScript_82D9135, ACC_CURR_MOVE + goto BattleScript_HitFromAtkString + +BattleScript_82D9135:: + attackstring + ppreduce + pause 0x40 + resultmessage + waitmessage 0x40 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_MoveEnd + printstring STRINGID_PKMNCRASHED + waitmessage 0x40 + damagecalc + typecalc + adjustnormaldamage + manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + orbyte gBattleMoveFlags, MOVESTATUS_MISSED + goto BattleScript_MoveEnd + +BattleScript_EffectMist:: + attackcanceler + attackstring + ppreduce + setmist + attackanimation + waitanimation + printfromtable 0x85CC8CC + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFocusEnergy:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed + setfocusenergy + attackanimation + waitanimation + printfromtable 0x85CC8D0 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecoil:: + setmoveeffect EFFECT_RECOIL_25 | AFFECTS_USER | CERTAIN + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_EffectHit + incrementgamestat 0x1B + goto BattleScript_EffectHit + +BattleScript_EffectConfuse:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_82D9201 + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_CONFUSION + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D9201:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNALREADYCONFUSED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackUp2:: + setstatchanger ATK, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectDefenseUp2:: + setstatchanger DEF, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpeedUp2:: + setstatchanger SPEED, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialAttackUp2:: + setstatchanger SPATK, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialDefenseUp2:: + setstatchanger SPDEF, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectTransform:: + attackcanceler + attackstring + ppreduce + transformdataexecution + attackanimation + waitanimation + printfromtable 0x85CC8D4 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackDown2:: + setstatchanger ATK, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectDefenseDown2:: + setstatchanger DEF, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpeedDown2:: + setstatchanger SPEED, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpecialDefenseDown2:: + setstatchanger SPDEF, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectReflect:: + attackcanceler + attackstring + ppreduce + setreflect +BattleScript_82D928C:: + attackanimation + waitanimation + printfromtable 0x85CC86C + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoison:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_82D8F63 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned + jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected + jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_POISON + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectParalyze:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_LIMBER, BattleScript_82D9362 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_82D9351 + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_PARALYSIS + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D9351:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNISALREADYPARALYZED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D9362:: + copyarray gEffectBank, gBankTarget, 0x1 + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_PRLZPrevention + goto BattleScript_MoveEnd + +BattleScript_EffectAttackDownHit:: + setmoveeffect EFFECT_ATK_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectDefenseDownHit:: + setmoveeffect EFFECT_DEF_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpeedDownHit:: + setmoveeffect EFFECT_SPD_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpecialAttackDownHit:: + setmoveeffect EFFECT_SP_ATK_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpecialDefenseDownHit:: + setmoveeffect EFFECT_SP_DEF_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectAccuracyDownHit:: + setmoveeffect EFFECT_ACC_MINUS_1 + goto BattleScript_EffectHit + + +BattleScript_EffectSkyAttack:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 + setbyte sFIELD_F, 0x3 + call BattleScript_82D906F + goto BattleScript_MoveEnd + +BattleScript_EffectConfuseHit:: + setmoveeffect EFFECT_CONFUSION + goto BattleScript_EffectHit + +BattleScript_EffectTwineedle:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setbyte sFIELD_16, 0x2 + attackstring + ppreduce + setmultihitcounter 0x2 + initmultihitstring + goto BattleScript_82D8DFD + +BattleScript_EffectSubstitute:: + attackcanceler + ppreduce + attackstring + waitstate + jumpifstatus2 ATTACKER, STATUS2_SUBSTITUTE, BattleScript_82D943E + setsubstitute + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_82D942B + pause 0x20 + goto BattleScript_82D9431 + +BattleScript_82D942B:: + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER +BattleScript_82D9431:: + printfromtable 0x85CC8D8 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D943E:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNHASSUBSTITUTE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecharge:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setmoveeffect EFFECT_RECHARGE | AFFECTS_USER | CERTAIN + goto BattleScript_HitFromAtkString + +BattleScript_MoveUsedMustRecharge:: + printstring STRINGID_PKMNMUSTRECHARGE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRage:: + attackcanceler + accuracycheck BattleScript_82D9487, ACC_CURR_MOVE + setmoveeffect EFFECT_RAGE + seteffectprimary + setmoveeffect 0 + goto BattleScript_HitFromAtkString + +BattleScript_82D9487:: + setmoveeffect EFFECT_RAGE + clearstatusfromeffect ATTACKER + goto BattleScript_PrintMoveMissed + +BattleScript_EffectMimic:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + mimicattackcopy BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNLEARNEDMOVE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMetronome:: + attackcanceler + attackstring + pause 0x20 + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + metronome +BattleScript_EffectLeechSeed:: + attackcanceler + attackstring + pause 0x20 + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_82D94E5, ACC_CURR_MOVE +BattleScript_82D94E5:: + setseeded + attackanimation + waitanimation + printfromtable 0x85CC878 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSplash:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + incrementgamestat 0x1A + printstring STRINGID_BUTNOTHINGHAPPENED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectDisable:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + disablelastusedattack BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNMOVEWASDISABLED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLevelDamage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + dmgtolevel + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectPsywave:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + psywavedamageeffect + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectCounter:: + attackcanceler + counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc2 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectEncore:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + trysetencore BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNGOTENCORE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPainSplit:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + painsplitdmgcalc BattleScript_ButItFailed + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + copyarray gBattleMoveDamage, sPAINSPLIT_HP, 0x4 + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_SHAREDPAIN + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSnore:: + attackcanceler + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D95CE + attackstring + ppreduce + goto BattleScript_ButItFailed + +BattleScript_82D95CE:: + jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D95E2 + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER +BattleScript_82D95E2:: + attackstring + ppreduce + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + setmoveeffect EFFECT_FLINCH + goto BattleScript_HitFromCritCalc + +BattleScript_EffectConversion2:: + attackcanceler + attackstring + ppreduce + settypetorandomresistance BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLockOn:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + setalwayshitflag + attackanimation + waitanimation + printstring STRINGID_PKMNTOOKAIM + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSketch:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + copymovepermanently BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSKETCHEDMOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSleepTalk:: + attackcanceler + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D965E + attackstring + ppreduce + goto BattleScript_ButItFailed + +BattleScript_82D965E:: + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER + attackstring + ppreduce + orword gHitMarker, HITMARKER_NO_PPDEDUCT + sleeptalk_choose_move BattleScript_82D967E + pause 0x40 + goto BattleScript_ButItFailed + +BattleScript_82D967E:: + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + jumptorandomattack 0x1 + +BattleScript_EffectDestinyBond:: + attackcanceler + attackstring + ppreduce + setdestinybond + attackanimation + waitanimation + printstring STRINGID_PKMNTRYINGTOTAKEFOE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlail:: + remaininghptopower + goto BattleScript_EffectHit + +BattleScript_EffectSpite:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryspiteppreduce BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNREDUCEDPP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHealBell:: + attackcanceler + attackstring + ppreduce + healpartystatus + waitstate + attackanimation + waitanimation + printfromtable 0x85CC904 + waitmessage 0x40 + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_HEAL_BELL, BattleScript_82D96FE + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_82D96ED + printstring STRINGID_PKMNSXBLOCKSY + waitmessage 0x40 +BattleScript_82D96ED:: + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D96FE + printstring STRINGID_PKMNSXBLOCKSY2 + waitmessage 0x40 +BattleScript_82D96FE:: + updatestatusicon ATTACKER_WITH_PARTNER + waitstate + goto BattleScript_MoveEnd + +BattleScript_EffectTripleKick:: + attackcanceler + attackstring + ppreduce + setbyte sTRIPLE_KICK_POWER, 0x0 + setbyte sFIELD_13, 0x0 + initmultihitstring + setmultihit 0x3 +BattleScript_82D9718:: + jumpifhasnohp ATTACKER, BattleScript_82D97D7 + jumpifhasnohp TARGET, BattleScript_82D9799 + jumpifhalfword EQUAL, gLastUsedMove, 0xD6, BattleScript_82D973A + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_82D9799 +BattleScript_82D973A:: + accuracycheck BattleScript_82D9799, ACC_CURR_MOVE + movevaluescleanup + addbyte sTRIPLE_KICK_POWER, 0xA + addbyte sMULTIHIT_STRING + 4, 0x1 + copyarray gDynamicBasePower, sTRIPLE_KICK_POWER, 0x2 + critcalc + damagecalc + typecalc + adjustnormaldamage + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D9799 + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_82D97AD + decrementmultihit BattleScript_82D9718 + goto BattleScript_82D97AD + +BattleScript_82D9799:: + pause 0x20 + jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_82D97AD + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED +BattleScript_82D97AD:: + resultmessage + waitmessage 0x40 + jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_82D97D7 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_82D97D7 + copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 + printstring STRINGID_HITXTIMES + waitmessage 0x40 +BattleScript_82D97D7:: + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0xE + moveend 0x0, 0x0 + end + +BattleScript_EffectThief:: + setmoveeffect EFFECT_STEAL_ITEM + goto BattleScript_EffectHit + +BattleScript_EffectMeanLook:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC + jumpifstatus2 TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + attackanimation + waitanimation + setmoveeffect EFFECT_PREVENT_ESCAPE + seteffectprimary + printstring STRINGID_TARGETCANTESCAPENOW + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectNightmare:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_NightmareWorked + goto BattleScript_ButItFailed + +BattleScript_NightmareWorked:: + attackanimation + waitanimation + setmoveeffect EFFECT_NIGHTMARE + seteffectprimary + printstring STRINGID_PKMNFELLINTONIGHTMARE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMinimize:: + attackcanceler + setminimize + setstatchanger EVASION, 1, FALSE + goto BattleScript_EffectStatUpAfterAtkCanceler + +BattleScript_EffectCurse:: + jumpiftype2 ATTACKER, TYPE_GHOST, BattleScript_82D98E5 + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, GREATER_THAN, SPEED, 0x0, BattleScript_82D9892 + jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_82D9892 + jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed +BattleScript_82D9892:: + copyarray gBankTarget, gBankAttacker, 0x1 + setbyte sANIM_TURN, 0x1 + attackanimation + waitanimation + setstatchanger SPEED, 1, TRUE + statbuffchange 0x41, BattleScript_82D98B8 + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82D98B8:: + setstatchanger ATK, 1, FALSE + statbuffchange 0x41, BattleScript_82D98CC + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82D98CC:: + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82D98E0 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82D98E0:: + goto BattleScript_MoveEnd + +BattleScript_82D98E5:: + jumpifarraynotequal gBankAttacker, gBankTarget, 0x1, BattleScript_82D98F6 + various ATTACKER, VARIOUS_GET_MOVE_TARGET +BattleScript_82D98F6:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + cursetarget BattleScript_ButItFailed + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + setbyte sANIM_TURN, 0x0 + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNLAIDCURSE + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectProtect:: + attackcanceler + attackstring + ppreduce + setprotectlike + attackanimation + waitanimation + printfromtable 0x85CC866 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSpikes:: + attackcanceler + trysetspikes BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + printstring STRINGID_SPIKESSCATTERED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectForesight:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setforesight + attackanimation + waitanimation + printstring STRINGID_PKMNIDENTIFIED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPerishSong:: + attackcanceler + attackstring + ppreduce + trysetperishsong BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_FAINTINTHREE + waitmessage 0x40 + setbyte sBANK, 0x0 +BattleScript_PerishSongLoop:: + jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected +BattleScript_PerishSongLoopIncrement:: + addbyte sBANK, 0x1 + jumpifarraynotequal sBANK, gNoOfAllBanks, 0x1, BattleScript_PerishSongLoop + goto BattleScript_MoveEnd + +BattleScript_PerishSongNotAffected:: + printstring STRINGID_PKMNSXBLOCKSY2 + waitmessage 0x40 + goto BattleScript_PerishSongLoopIncrement + +BattleScript_EffectSandstorm:: + attackcanceler + attackstring + ppreduce + setsandstorm + goto BattleScript_82D9B41 + +BattleScript_EffectRollout:: + attackcanceler + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D99CD + ppreduce +BattleScript_82D99CD:: + accuracycheck BattleScript_82D99D4, ACC_CURR_MOVE +BattleScript_82D99D4:: + typecalc2 + rolloutdamagecalculation + goto BattleScript_HitFromCritCalc + +BattleScript_EffectSwagger:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + jumpifconfusedandstatmaxed ATK, BattleScript_ButItFailed + attackanimation + waitanimation + setstatchanger ATK, 2, FALSE + statbuffchange 0x1, BattleScript_82D9A1E + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D9A1E + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82D9A1E:: + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + setmoveeffect EFFECT_CONFUSION + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_EffectFuryCutter:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_82D9A43, ACC_CURR_MOVE +BattleScript_82D9A43:: + furycuttercalc + critcalc + damagecalc + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_82D9A43 + adjustnormaldamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectAttract:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryinfatuating BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNFELLINLOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectReturn:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + happinesstodamagecalculation + goto BattleScript_HitFromAtkString + +BattleScript_EffectPresent:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + presentdamagecalculation +BattleScript_EffectSafeguard:: + attackcanceler + attackstring + ppreduce + setsafeguard + goto BattleScript_82D928C + +BattleScript_EffectThawHit:: + setmoveeffect EFFECT_BURN + goto BattleScript_EffectHit + +BattleScript_EffectMagnitude:: + attackcanceler + attackstring + ppreduce + selectfirstvalidtarget + magnitudedamagecalculation + pause 0x20 + printstring STRINGID_MAGNITUDESTRENGTH + waitmessage 0x40 + goto BattleScript_82D9C44 + +BattleScript_EffectBatonPass:: + attackcanceler + attackstring + ppreduce + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_ARENA, BattleScript_ButItFailed + jumpifcantswitch ATK4F_DONT_CHECK_STATUSES | ATTACKER, BattleScript_ButItFailed + attackanimation + waitanimation + openpartyscreen 0x1, BattleScript_ButItFailed + switchoutabilities ATTACKER + waitstate + switchhandleorder ATTACKER, 0x2 + returntoball ATTACKER + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + switchinanim ATTACKER, 0x1 + waitstate + switchineffects ATTACKER + goto BattleScript_MoveEnd + +BattleScript_EffectRapidSpin:: + setmoveeffect EFFECT_RAPIDSPIN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectSonicboom:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + setbyte gBattleMoveDamage, 0x14 + setbyte gBattleMoveDamage + 1, 0x0 + setbyte gBattleMoveDamage + 2, 0x0 + setbyte gBattleMoveDamage + 3, 0x0 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectMorningSun:: + attackcanceler + attackstring + ppreduce + recoverbasedonsunlight BattleScript_AlreadyAtFullHp + goto BattleScript_PresentHealTarget + +BattleScript_EffectHiddenPower:: + hiddenpowercalc + goto BattleScript_EffectHit + +BattleScript_EffectRainDance:: + attackcanceler + attackstring + ppreduce + setrain +BattleScript_82D9B41:: + attackanimation + waitanimation + printfromtable 0x85CC848 + waitmessage 0x40 + call BattleScript_82DB48D + goto BattleScript_MoveEnd + +BattleScript_EffectSunnyDay:: + attackcanceler + attackstring + ppreduce + setsunny + goto BattleScript_82D9B41 + +BattleScript_EffectDefenseUpHit:: + setmoveeffect EFFECT_DEF_PLUS_1 | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectAttackUpHit:: + setmoveeffect EFFECT_ATK_PLUS_1 | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectAllStatsUpHit:: + setmoveeffect EFFECT_ALL_STATS_UP | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectBellyDrum:: + attackcanceler + attackstring + ppreduce + maxattackhalvehp BattleScript_ButItFailed + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNCUTHPMAXEDATTACK + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPsychUp:: + attackcanceler + attackstring + ppreduce + copyfoestats BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCOPIEDSTATCHANGES + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMirrorCoat:: + attackcanceler + mirrorcoatdamagecalculator BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc2 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectSkullBash:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 + setbyte sFIELD_F, 0x2 + call BattleScript_82D906F + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82D9C16 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D9C16 + setgraphicalstatchangevalues + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82D9C16:: + goto BattleScript_MoveEnd + +BattleScript_EffectTwister:: + jumpifstatus3 TARGET, STATUS3_ON_AIR, 0x1, BattleScript_82D9C35 + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_82D9C35:: + setmoveeffect EFFECT_FLINCH + goto BattleScript_EffectHit + +BattleScript_EffectEarthquake:: + attackcanceler + attackstring + ppreduce + selectfirstvalidtarget +BattleScript_82D9C44:: + movevaluescleanup + jumpifstatus3 TARGET, STATUS3_UNDERGROUND, 0x1, BattleScript_82D9C64 + orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_82D9C73 + +BattleScript_82D9C64:: + bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND + setbyte sDMG_MULTIPLIER, 0x1 +BattleScript_82D9C73:: + accuracycheck BattleScript_82D9CAC, ACC_CURR_MOVE + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D9C44 + end + +BattleScript_82D9CAC:: + pause 0x20 + typecalc + effectivenesssound + resultmessage + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D9C44 + end + +BattleScript_EffectFutureSight:: + attackcanceler + attackstring + ppreduce + trysetfutureattack BattleScript_ButItFailed + attackanimation + waitanimation + printfromtable 0x85CC90E + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectGust:: + jumpifstatus3 TARGET, STATUS3_ON_AIR, 0x1, BattleScript_EffectHit + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectStomp:: + jumpifstatus3 TARGET, STATUS3_MINIMIZED, 0x1, BattleScript_82D9C35 + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_82D9C35 + +BattleScript_EffectSolarbeam:: + jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_82D9D28 + jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_82D9D28 + jumpifhalfword COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_82D9D50 +BattleScript_82D9D28:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9040 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9040 + setbyte sFIELD_F, 0x1 + call BattleScript_82D906F + goto BattleScript_MoveEnd + +BattleScript_82D9D50:: + orword gHitMarker, HITMARKER_x8000000 + setmoveeffect EFFECT_CHARGING | AFFECTS_USER + seteffectprimary + ppreduce + goto BattleScript_82D9040 + +BattleScript_EffectThunder:: + setmoveeffect EFFECT_PARALYSIS + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + goto BattleScript_EffectHit + +BattleScript_EffectTeleport:: + attackcanceler + attackstring + ppreduce + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_ButItFailed + various ATTACKER, VARIOUS_IS_RUNNING_IMPOSSIBLE + jumpifbyte EQUAL, gBattleCommunication, 0x1, BattleScript_ButItFailed + jumpifbyte EQUAL, gBattleCommunication, 0x2, BattleScript_82DA382 + attackanimation + waitanimation + printstring STRINGID_PKMNFLEDFROMBATTLE + waitmessage 0x40 + various ATTACKER, VARIOUS_SET_TELEPORT_OUTCOME + goto BattleScript_MoveEnd + +BattleScript_EffectBeatUp:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + pause 0x20 + ppreduce + setbyte gBattleCommunication, 0x0 +BattleScript_BeatUpLoop:: + movevaluescleanup + trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed + printstring STRINGID_PKMNATTACK + critcalc + jumpifbyte NOT_EQUAL, gCritMultiplier, 0x2, BattleScript_BeatUpAttack + manipulatedamage ATK80_DMG_DOUBLED +BattleScript_BeatUpAttack:: + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + goto BattleScript_BeatUpLoop + +BattleScript_BeatUpEnd:: + end + +BattleScript_EffectFly:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9E79 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_82D9E79 + jumpifhalfword EQUAL, gCurrentMove, MOVE_FLY, BattleScript_82D9E68 + jumpifhalfword EQUAL, gCurrentMove, MOVE_DIVE, BattleScript_82D9E5D + jumpifhalfword EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_82D9E52 + setbyte sFIELD_F, 0x5 + goto BattleScript_82D9E6E + +BattleScript_82D9E52:: + setbyte sFIELD_F, 0x7 + goto BattleScript_82D9E6E + +BattleScript_82D9E5D:: + setbyte sFIELD_F, 0x6 + goto BattleScript_82D9E6E + +BattleScript_82D9E68:: + setbyte sFIELD_F, 0x4 +BattleScript_82D9E6E:: + call BattleScript_82D906F + setsemiinvulnerablebit + goto BattleScript_MoveEnd + +BattleScript_82D9E79:: + attackcanceler + setmoveeffect EFFECT_CHARGING + setbyte sANIM_TURN, 0x1 + clearstatusfromeffect ATTACKER + orword gHitMarker, HITMARKER_NO_PPDEDUCT + jumpifhalfword NOT_EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_82D9EA3 + setmoveeffect EFFECT_PARALYSIS +BattleScript_82D9EA3:: + accuracycheck BattleScript_82D9EB0, ACC_CURR_MOVE + clearsemiinvulnerablebit + goto BattleScript_HitFromAtkString + +BattleScript_82D9EB0:: + clearsemiinvulnerablebit + goto BattleScript_PrintMoveMissed + +BattleScript_EffectDefenseCurl:: + attackcanceler + attackstring + ppreduce + setdefensecurlbit + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82D9ED3 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82D8CC7 + attackanimation + waitanimation +BattleScript_82D9ED3:: + goto BattleScript_82D8CBF + +BattleScript_EffectSoftboiled:: + attackcanceler + attackstring + ppreduce + tryhealhalfhealth BattleScript_AlreadyAtFullHp, TARGET +BattleScript_PresentHealTarget:: + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyAtFullHp:: + pause 0x20 + printstring STRINGID_PKMNHPFULL + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFakeOut:: + attackcanceler + jumpifnotfirstturn BattleScript_ButItFailedAtkStringPpReduce + setmoveeffect EFFECT_FLINCH | CERTAIN + goto BattleScript_EffectHit + +BattleScript_ButItFailedAtkStringPpReduce:: + attackstring +BattleScript_ButItFailedPpReduce:: + ppreduce +BattleScript_ButItFailed:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_NotAffected:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectUproar:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setmoveeffect EFFECT_UPROAR | AFFECTS_USER + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D9F5A + ppreduce +BattleScript_82D9F5A:: + nop + goto BattleScript_HitFromCritCalc + +BattleScript_EffectStockpile:: + attackcanceler + attackstring + ppreduce + stockpile + attackanimation + waitanimation + printfromtable 0x85CC88A + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSpitUp:: + attackcanceler + jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82D9FA2 + attackstring + ppreduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + stockpiletobasedamage BattleScript_SpitUpFail + typecalc + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_SpitUpFail:: + pause 0x20 + printstring STRINGID_FAILEDTOSPITUP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D9FA2:: + attackstring + ppreduce + pause 0x40 + stockpiletobasedamage BattleScript_SpitUpFail + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSwallow:: + attackcanceler + attackstring + ppreduce + stockpiletohpheal BattleScript_SwallowFail + goto BattleScript_PresentHealTarget + +BattleScript_SwallowFail:: + pause 0x20 + printfromtable 0x85CC892 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHail:: + attackcanceler + attackstring + ppreduce + sethail + goto BattleScript_82D9B41 + +BattleScript_EffectTorment:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + settorment BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSUBJECTEDTOTORMENT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlatter:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + jumpifconfusedandstatmaxed SPATK, BattleScript_ButItFailed + attackanimation + waitanimation + setstatchanger SPATK, 1, FALSE + statbuffchange 0x1, BattleScript_82DA03A + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA03A + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA03A:: + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DB611 + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + setmoveeffect EFFECT_CONFUSION + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_EffectWillOWisp:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_BURN, BattleScript_82DA0BB + jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected + jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_82DA0A1 + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + attackanimation + waitanimation + setmoveeffect EFFECT_BURN + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_82DA0A1:: + copyarray gEffectBank, gBankTarget, 0x1 + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_BRNPrevention + goto BattleScript_MoveEnd + +BattleScript_82DA0BB:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNALREADYHASBURN + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMemento:: + attackcanceler + jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82DA153 + attackstring + ppreduce + jumpifattackandspecialattackcannotfall BattleScript_ButItFailed + setatkhptozero + attackanimation + waitanimation + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DA148 + setbyte sFIELD_1B, 0x0 + playstatchangeanimation TARGET, 0x12, 0x7 + playstatchangeanimation TARGET, 0x2, 0x3 + setstatchanger ATK, 2, TRUE + statbuffchange 0x1, BattleScript_82DA119 + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA119 + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DA119:: + playstatchangeanimation TARGET, 0x10, 0x3 + setstatchanger SPATK, 2, TRUE + statbuffchange 0x1, BattleScript_82DA13C + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA13C + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DA13C:: + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_82DA148:: + printstring STRINGID_BUTNOEFFECT + waitmessage 0x40 + goto BattleScript_82DA13C + +BattleScript_82DA153:: + attackstring + ppreduce + jumpifattackandspecialattackcannotfall BattleScript_82DA15A +BattleScript_82DA15A:: + setatkhptozero + pause 0x40 + effectivenesssound + resultmessage + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectFacade:: + jumpifstatus ATTACKER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleScript_FacadeDoubleDmg + goto BattleScript_EffectHit + +BattleScript_FacadeDoubleDmg:: + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectFocusPunch:: + attackcanceler + jumpifnodamage BattleScript_HitFromAccCheck + ppreduce + printstring STRINGID_PKMNLOSTFOCUS + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSmellingsalt:: + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit + setmoveeffect EFFECT_REMOVE_PARALYSIS | CERTAIN + jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_82DA1BA + goto BattleScript_EffectHit + +BattleScript_82DA1BA:: + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectFollowMe:: + attackcanceler + attackstring + ppreduce + setforcedtarget + attackanimation + waitanimation + printstring STRINGID_PKMNCENTERATTENTION + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectNaturePower:: + attackcanceler + attackstring + pause 0x20 + callterrainattack + printstring STRINGID_NATUREPOWERTURNEDINTO + waitmessage 0x40 + return + +BattleScript_EffectCharge:: + attackcanceler + attackstring + ppreduce + setcharge + attackanimation + waitanimation + printstring STRINGID_PKMNCHARGINGPOWER + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectTaunt:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + settaunt BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNFELLFORTAUNT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHelpingHand:: + attackcanceler + attackstring + ppreduce + trysethelpinghand BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNREADYTOHELP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectTrick:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryswapitems BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSWITCHEDITEMS + waitmessage 0x40 + printfromtable 0x85CC970 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRolePlay:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + trycopyability BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCOPIEDFOE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectWish:: + attackcanceler + attackstring + ppreduce + trywish 0x0, BattleScript_ButItFailed + attackanimation + waitanimation + goto BattleScript_MoveEnd + +BattleScript_EffectAssist:: + attackcanceler + attackstring + asistattackselect BattleScript_ButItFailedPpReduce + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + jumptorandomattack 0x1 + +BattleScript_EffectIngrain:: + attackcanceler + attackstring + ppreduce + trysetroots BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNPLANTEDROOTS + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSuperpower:: + setmoveeffect EFFECT_ATK_DEF_DOWN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectMagicCoat:: + attackcanceler + trysetmagiccoat BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + printstring STRINGID_PKMNSHROUDEDITSELF + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecycle:: + attackcanceler + attackstring + ppreduce + tryrecycleitem BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_XFOUNDONEY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRevenge:: + doubledamagedealtifdamaged + goto BattleScript_EffectHit + +BattleScript_EffectBrickBreak:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + removelightscreenreflect + critcalc + damagecalc + typecalc + adjustnormaldamage + jumpifbyte EQUAL, sANIM_TURN, 0x0, BattleScript_82DA306 + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED +BattleScript_82DA306:: + attackanimation + waitanimation + jumpifbyte LESS_THAN, sANIM_TURN, 0x2, BattleScript_82DA319 + printstring STRINGID_THEWALLSHATTERED + waitmessage 0x40 +BattleScript_82DA319:: + typecalc2 + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectYawn:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_VITAL_SPIRIT, BattleScript_82DA378 + jumpifability TARGET, ABILITY_INSOMNIA, BattleScript_82DA378 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DAD01 + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + jumpifcantmakeasleep BattleScript_ButItFailed + setyawn BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNWASMADEDROWSY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DA378:: + copyarray sBANK, sFIELD_15, 0x1 +BattleScript_82DA382:: + pause 0x20 + printstring STRINGID_PKMNSXMADEITINEFFECTIVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectKnockOff:: + setmoveeffect EFFECT_KNOCK_OFF + goto BattleScript_EffectHit + +BattleScript_EffectEndeavor:: + attackcanceler + attackstring + ppreduce + setdamagetohealthdifference BattleScript_ButItFailed + copyarray gHpDealt, gBattleMoveDamage, 0x4 + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + typecalc + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, BattleScript_HitFromAtkAnimation + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + copyarray gBattleMoveDamage, gHpDealt, 0x4 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectEruption:: + scaledamagebyhealthratio + goto BattleScript_EffectHit + + + + +BattleScript_EffectSkillSwap:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + tryswapabilities BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSWAPPEDABILITIES + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectImprison:: + attackcanceler + attackstring + ppreduce + tryimprision BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSEALEDOPPONENTMOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRefresh:: + attackcanceler + attackstring + ppreduce + cureifburnedparalysedorpoisoned BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSTATUSNORMAL + waitmessage 0x40 + updatestatusicon ATTACKER + goto BattleScript_MoveEnd + +BattleScript_EffectGrudge:: + attackcanceler + attackstring + ppreduce + trysetgrudge BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNWANTSGRUDGE + waitmessage 0x40 + goto BattleScript_MoveEnd + + +BattleScript_EffectSnatch:: + attackcanceler + trysetsnatch BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + pause 0x20 + printstring STRINGID_PKMNWAITSFORTARGET + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLowKick:: + attackcanceler + attackstring + ppreduce + weightdamagecalculation + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + goto BattleScript_HitFromCritCalc + +BattleScript_EffectSecretPower:: + getsecretpowereffect + goto BattleScript_EffectHit + +BattleScript_EffectDoubleEdge:: + setmoveeffect EFFECT_RECOIL_33_PARALYSIS | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectTeeterDance:: + attackcanceler + attackstring + ppreduce + setbyte gBankTarget, 0x0 +BattleScript_82DA47B:: + movevaluescleanup + setmoveeffect EFFECT_CONFUSION + jumpifarrayequal gBankAttacker, gBankTarget, 0x1, BattleScript_82DA4D0 + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_82DA4E5 + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DA501 + jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_82DA50F + jumpifhasnohp TARGET, BattleScript_82DA4D0 + accuracycheck BattleScript_82DA520, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_82DA4F3 + attackanimation + waitanimation + seteffectprimary + resultmessage + waitmessage 0x40 +BattleScript_82DA4C7:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 +BattleScript_82DA4D0:: + addbyte gBankTarget, 0x1 + jumpifarraynotequal gBankTarget, gNoOfAllBanks, 0x1, BattleScript_82DA47B + end + +BattleScript_82DA4E5:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSCONFUSIONWITH + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA4F3:: + pause 0x20 + printstring STRINGID_PKMNUSEDSAFEGUARD + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA501:: + pause 0x20 + printstring STRINGID_BUTITFAILED + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA50F:: + various ATTACKER, 0x17 + pause 0x20 + printstring STRINGID_PKMNALREADYCONFUSED + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_82DA520:: + resultmessage + waitmessage 0x40 + goto BattleScript_82DA4C7 + +BattleScript_EffectMudSport:: + attackcanceler + attackstring + ppreduce + settypebasedhalvers BattleScript_ButItFailed + attackanimation + waitanimation + printfromtable 0x85CC900 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoisonFang:: + setmoveeffect EFFECT_TOXIC + goto BattleScript_EffectHit + + +BattleScript_EffectWeatherBall:: + setweatherballtype + goto BattleScript_EffectHit + +BattleScript_EffectOverheat:: + setmoveeffect EFFECT_SP_ATK_TWO_DOWN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectTickle:: + attackcanceler + attackstring + ppreduce + jumpifstat TARGET, GREATER_THAN, ATK, 0x0, BattleScript_82DA571 + jumpifstat TARGET, EQUAL, DEF, 0x0, BattleScript_82DA5CF +BattleScript_82DA571:: + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation TARGET, 0x6, 0x5 + playstatchangeanimation TARGET, 0x2, 0x1 + setstatchanger ATK, 1, TRUE + statbuffchange 0x1, BattleScript_82DA5A7 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA5A7 + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DA5A7:: + playstatchangeanimation TARGET, 0x4, 0x1 + setstatchanger DEF, 1, TRUE + statbuffchange 0x1, BattleScript_82DA5CA + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA5CA + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DA5CA:: + goto BattleScript_MoveEnd + + +BattleScript_82DA5CF:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_STATSWONTDECREASE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectCosmicPower:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_82DA5F8 + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_82DA5F8:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x24, 0x0 + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DA623 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA623 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA623:: + setstatchanger SPDEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DA642 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA642 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA642:: + goto BattleScript_MoveEnd + +BattleScript_EffectSkyUppercut:: + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + goto BattleScript_EffectHit + +BattleScript_EffectBulkUp:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DA66A + jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_82DA66A:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x6, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange 0x41, BattleScript_82DA695 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA695 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA695:: + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DA6B4 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6B4 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA6B4:: + goto BattleScript_MoveEnd + +BattleScript_EffectCalmMind:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_82DA6CE + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_82DA6CE:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x30, 0x0 + setstatchanger SPATK, 1, FALSE + statbuffchange 0x41, BattleScript_82DA6F9 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA6F9 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA6F9:: + setstatchanger SPDEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DA718 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA718 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA718:: + goto BattleScript_MoveEnd + +BattleScript_CantRaiseMultipleStats:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_STATSWONTINCREASE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectDragonDance:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DA746 + jumpifstat ATTACKER, EQUAL, SPEED, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_82DA746:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0xA, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange 0x41, BattleScript_82DA771 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA771 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA771:: + setstatchanger SPEED, 1, FALSE + statbuffchange 0x41, BattleScript_82DA790 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DA790 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DA790:: + goto BattleScript_MoveEnd + +BattleScript_EffectCamouflage:: + attackcanceler + attackstring + ppreduce + settypetoterrain BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_FaintAttacker:: + playfaintcry ATTACKER + pause 0x40 + dofaintanimation ATTACKER + cleareffectsonfaint ATTACKER + printstring STRINGID_ATTACKERFAINTED + return + +BattleScript_FaintTarget:: + playfaintcry TARGET + pause 0x40 + dofaintanimation TARGET + cleareffectsonfaint TARGET + printstring STRINGID_TARGETFAINTED + return + +BattleScript_82DA7C4:: + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET + end2 + +BattleScript_82DA7CD:: + atk24 BattleScript_82DA8F6 + jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_82DA8F5 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA816 + jumpifword NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_82DA816 + printstring STRINGID_USENEXTPKMN + setbyte gBattleCommunication, 0x0 + yesnobox + jumpifbyte EQUAL, gBattleCommunication + 1, 0x0, BattleScript_82DA816 + jumpifplayerran BattleScript_82DA8F5 + printstring STRINGID_CANTESCAPE2 +BattleScript_82DA816:: + openpartyscreen 0x3, BattleScript_82DA8F5 + switchhandleorder GBANK_1, 0x2 + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_LINK, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x2000000, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DA8D0 + jumpifword COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_82DA8D0 + jumpifbyte EQUAL, sBATTLE_STYLE, 0x1, BattleScript_82DA8D0 + jumpifcantswitch 11, BattleScript_82DA8D0 + printstring STRINGID_ENEMYABOUTTOSWITCHPKMN + setbyte gBattleCommunication, 0x0 + yesnobox + jumpifbyte EQUAL, gBattleCommunication + 1, 0x1, BattleScript_82DA8D0 + setatktoplayer0 + openpartyscreen 0x81, BattleScript_82DA8D0 + switchhandleorder ATTACKER, 0x2 + jumpifbyte EQUAL, gBattleCommunication, 0x6, BattleScript_82DA8D0 + atknameinbuff1 + various ATTACKER, VARIOUS_RESET_INTIMIDATE_TRACE_BITS + hpthresholds2 ATTACKER + printstring STRINGID_RETURNMON + switchoutabilities ATTACKER + waitstate + returnatktoball + waitstate + drawpartystatussummary ATTACKER + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + atk62 ATTACKER + switchinanim ATTACKER, 0x0 + waitstate + switchineffects ATTACKER + resetsentmonsvalue +BattleScript_82DA8D0:: + drawpartystatussummary GBANK_1 + getswitchedmondata GBANK_1 + switchindataupdate GBANK_1 + hpthresholds GBANK_1 + printstring STRINGID_SWITCHINMON + atk62 GBANK_1 + switchinanim GBANK_1, 0x0 + waitstate + various ATTACKER, 0x7 + switchineffects GBANK_1 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DA8F5 + cancelallactions +BattleScript_82DA8F5:: + end2 + +BattleScript_82DA8F6:: + openpartyscreen 0x5, BattleScript_82DA8FC +BattleScript_82DA8FC:: + switchhandleorder GBANK_1, 0x0 + openpartyscreen 0x6, BattleScript_82DA92C + switchhandleorder GBANK_1, 0x0 +BattleScript_82DA908:: + switchhandleorder GBANK_1, 0x3 + drawpartystatussummary GBANK_1 + getswitchedmondata GBANK_1 + switchindataupdate GBANK_1 + hpthresholds GBANK_1 + printstring STRINGID_SWITCHINMON + atk62 GBANK_1 + switchinanim GBANK_1, 0x0 + waitstate + switchineffects 5 + jumpifarraynotequal gBank1, gNoOfAllBanks, 0x1, BattleScript_82DA908 +BattleScript_82DA92C:: + end2 + +BattleScript_LocalTrainerBattleWon:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DA943 + printstring STRINGID_PLAYERDEFEATEDTRAINER1 + goto BattleScript_82DA946 + +BattleScript_82DA943:: + printstring STRINGID_TWOENEMIESDEFEATED +BattleScript_82DA946:: + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DA963 + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT +BattleScript_82DA963:: + getmoneyreward + printstring STRINGID_PLAYERGOTMONEY + waitmessage 0x40 +BattleScript_PayDayMoneyAndPickUpItems:: + givepaydaymoney + pickup + end2 + +BattleScript_LocalBattleLost:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOME, BattleScript_82DA9BE + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID, BattleScript_82DA9C9 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x4000000, BattleScript_82DA9C9 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_EREADER_TRAINER, BattleScript_82DA9BD + jumpifhalfword EQUAL, 0x2038BCA, 0x400, BattleScript_82DA9BD +BattleScript_82DA9B1:: + printstring STRINGID_PLAYERWHITEOUT + waitmessage 0x40 + printstring STRINGID_PLAYERWHITEOUT2 + waitmessage 0x40 +BattleScript_82DA9BD:: + end2 + +BattleScript_82DA9BE:: + jumpifbyte EQUAL, gBattleOutcome, DREW, BattleScript_82DAA0A +BattleScript_82DA9C9:: + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DA9B1 + various ATTACKER, VARIOUS_RETURN_OPPONENT_MON1 + waitstate + various ATTACKER, VARIOUS_RETURN_OPPONENT_MON2 + waitstate + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1WINTEXT + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_x800000, BattleScript_82DAA01 + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAA0A +BattleScript_82DAA01:: + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2WINTEXT +BattleScript_82DAA0A:: + end2 + +BattleScript_82DAA0B:: + various ATTACKER, VARIOUS_RETURN_OPPONENT_MON1 + waitstate + various ATTACKER, VARIOUS_RETURN_OPPONENT_MON2 + waitstate + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1WINTEXT + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2WINTEXT + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA31 + atk57 +BattleScript_82DAA31:: + waitmessage 0x40 + end2 + +BattleScript_LinkBattleWonOrLost:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER, BattleScript_82DAA5C + printstring STRINGID_BATTLEEND + waitmessage 0x40 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA58 + atk57 +BattleScript_82DAA58:: + waitmessage 0x40 + end2 + +BattleScript_82DAA5C:: + various ATTACKER, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC + printstring STRINGID_BATTLEEND + waitmessage 0x40 + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_RECORDED, BattleScript_82DAA83 + atk57 +BattleScript_82DAA83:: + waitmessage 0x40 + end2 + +BattleScript_FrontierTrainerBattleWon:: + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_PayDayMoneyAndPickUpItems + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAAAB + printstring STRINGID_PLAYERDEFEATEDTRAINER1 + goto BattleScript_82DAAAE + +BattleScript_82DAAAB:: + printstring STRINGID_TWOENEMIESDEFEATED +BattleScript_82DAAAE:: + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAACB + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT +BattleScript_82DAACB:: + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_PYRAMID, BattleScript_82DAADA + pickup +BattleScript_82DAADA:: + end2 + +BattleScript_SmokeBallEscape:: + playanimation ATTACKER, ANIM_SMOKEBALL_ESCAPE, NULL + printstring STRINGID_PKMNFLEDUSINGITS + waitmessage 0x40 + end2 + +BattleScript_RanAwayUsingMonAbility:: + printstring STRINGID_PKMNFLEDUSING + waitmessage 0x40 + end2 + +BattleScript_GotAwaySafely:: + printstring STRINGID_GOTAWAYSAFELY + waitmessage 0x40 + end2 + +BattleScript_WildMonFled:: + printstring STRINGID_WILDPKMNFLED + waitmessage 0x40 + end2 + +BattleScript_82DAAFE:: + printstring STRINGID_NORUNNINGFROMTRAINERS + end2 + +BattleScript_PrintFailedToRunString:: + printfromtable 0x85CC83E + waitmessage 0x40 + end2 + +BattleScript_82DAB0B:: + printselectionstringfromtable 0x85CC83E + endselectionscript + +BattleScript_82DAB11:: + printselectionstring STRINGID_BOXISFULL + endselectionscript + +BattleScript_ActionSwitch:: + hpthresholds2 ATTACKER + printstring STRINGID_RETURNMON + setbyte sDMG_MULTIPLIER, 0x2 + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_82DAB35 + setmultihit 0x1 + goto BattleScript_82DAB37 + +BattleScript_82DAB35:: + setmultihit 0x2 +BattleScript_82DAB37:: + jumpifnopursuitswitchdmg BattleScript_82DAB44 + atk5F + trysetdestinybondtohappen + call BattleScript_82DAB77 + atk5F +BattleScript_82DAB44:: + decrementmultihit BattleScript_82DAB37 + switchoutabilities ATTACKER + waitstate + returnatktoball + waitstate + drawpartystatussummary ATTACKER + switchhandleorder ATTACKER, 0x1 + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + atk62 ATTACKER + switchinanim ATTACKER, 0x0 + waitstate + switchineffects ATTACKER + setbyte sMOVEEND_STATE, 0x4 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + end2 + +BattleScript_82DAB77:: + pause 0x20 + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x3 + moveend 0x2, 0x6 + various TARGET, 0x4 + jumpifbyte EQUAL, gBattleCommunication, 0x0, BattleScript_82DABB8 + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET +BattleScript_82DABB8:: + return + +BattleScript_Pausex20:: + pause 0x20 + return + +BattleScript_LevelUp:: + fanfare BGM_FANFA1 + printstring STRINGID_PKMNGREWTOLV + setbyte sLVLBOX_STATE, 0x0 + drawlvlupbox + handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, TRUE + goto BattleScript_AskToLearnMove + +BattleScript_TryLearnMoveLoop:: + handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, FALSE +BattleScript_AskToLearnMove:: + buffermovetolearn + printstring STRINGID_TRYTOLEARNMOVE1 + printstring STRINGID_TRYTOLEARNMOVE2 + printstring STRINGID_TRYTOLEARNMOVE3 + waitstate + setbyte sLEARNMOVE_STATE, 0x0 + yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove + printstring STRINGID_STOPLEARNINGMOVE + waitstate + setbyte sLEARNMOVE_STATE, 0x0 + yesnoboxstoplearningmove BattleScript_AskToLearnMove + printstring STRINGID_DIDNOTLEARNMOVE + goto BattleScript_TryLearnMoveLoop + +BattleScript_ForgotAndLearnedNewMove:: + printstring STRINGID_123POOF + printstring STRINGID_PKMNFORGOTMOVE + printstring STRINGID_ANDELLIPSIS +BattleScript_LearnedNewMove:: + buffermovetolearn + fanfare BGM_FANFA1 + printstring STRINGID_PKMNLEARNEDMOVE + waitmessage 0x40 + various ATTACKER, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP + goto BattleScript_TryLearnMoveLoop + +BattleScript_LearnMoveReturn:: + return + +BattleScript_82DAC2C:: + printfromtable 0x85CC860 + waitmessage 0x40 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DAC46 + playanimation ATTACKER, ANIM_RAIN_CONTINUES, NULL +BattleScript_82DAC46:: + end2 + +BattleScript_82DAC47:: + printfromtable 0x85CC854 + waitmessage 0x40 + playanimation2 ATTACKER, sANIM_ARG1, NULL + setbyte gBattleCommunication, 0x0 +BattleScript_82DAC5F:: + copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 0x1 + weatherdamage + jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_82DACA0 + printfromtable 0x85CC858 + waitmessage 0x40 + orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE + effectivenesssound + hitanimation ATTACKER + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + atk24 BattleScript_82DACA0 +BattleScript_82DACA0:: + jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_82DACBF + addbyte gBattleCommunication, 0x1 + jumpifarraynotequal gBattleCommunication, gNoOfAllBanks, 0x1, BattleScript_82DAC5F +BattleScript_82DACBF:: + bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE + end2 + +BattleScript_82DACC9:: + printfromtable 0x85CC85C + waitmessage 0x40 + end2 + +BattleScript_82DACD2:: + printstring STRINGID_SUNLIGHTSTRONG + waitmessage 0x40 + playanimation ATTACKER, ANIM_SUN_CONTINUES, NULL + end2 + +BattleScript_82DACE0:: + printstring STRINGID_SUNLIGHTFADED + waitmessage 0x40 + end2 + +BattleScript_82DACE7:: + printfromtable 0x85CC91A + waitmessage 0x40 + playanimation2 ATTACKER, sANIM_ARG1, NULL + end3 + +BattleScript_82DACFA:: + printstring STRINGID_PKMNSXWOREOFF + waitmessage 0x40 + end2 + +BattleScript_82DAD01:: + pause 0x20 + printstring STRINGID_PKMNUSEDSAFEGUARD + waitmessage 0x40 + end2 + +BattleScript_82DAD0B:: + pause 0x20 + printstring STRINGID_PKMNSAFEGUARDEXPIRED + waitmessage 0x40 + end2 + +BattleScript_LeechSeedTurnDrain:: + playanimation ATTACKER, ANIM_LEECH_SEED_DRAIN, sANIM_ARG1 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + copyarray gBattleMoveDamage, gHpDealt, 0x4 + jumpifability ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_82DAD47 + manipulatedamage ATK80_DMG_CHANGE_SIGN + setbyte cMULTISTRING_CHOOSER, 0x3 + goto BattleScript_82DAD4D + +BattleScript_82DAD47:: + setbyte cMULTISTRING_CHOOSER, 0x4 +BattleScript_82DAD4D:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate TARGET + datahpupdate TARGET + printfromtable 0x85CC878 + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon TARGET, FALSE, NULL + end2 + +BattleScript_BideStoringEnergy:: + printstring STRINGID_PKMNSTORINGENERGY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_BideAttack:: + attackcanceler + setmoveeffect EFFECT_CHARGING + clearstatusfromeffect ATTACKER + printstring STRINGID_PKMNUNLEASHEDENERGY + waitmessage 0x40 + accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + copyarray gBattleMoveDamage, sBIDE_DMG, 0x4 + adjustsetdamage + setbyte sANIM_TURN, 0x1 + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_BideNoEnergyToAttack:: + attackcanceler + setmoveeffect EFFECT_CHARGING + clearstatusfromeffect ATTACKER + printstring STRINGID_PKMNUNLEASHEDENERGY + waitmessage 0x40 + goto BattleScript_ButItFailed + +BattleScript_82DADD8:: + attackanimation + waitanimation + switchoutabilities TARGET + returntoball TARGET + waitstate + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_82DADF1 + various ATTACKER, VARIOUS_SET_TELEPORT_OUTCOME + finishaction + +BattleScript_82DADF1:: + getswitchedmondata TARGET + switchindataupdate TARGET + switchinanim TARGET, 0x0 + waitstate + printstring STRINGID_PKMNWASDRAGGEDOUT + switchineffects TARGET + goto BattleScript_MoveEnd + +BattleScript_MistProtected:: + pause 0x20 + printstring STRINGID_PKMNPROTECTEDBYMIST + waitmessage 0x40 + return + +BattleScript_RageIsBuilding:: + printstring STRINGID_PKMNRAGEBUILDING + waitmessage 0x40 + return + +BattleScript_MoveUsedIsDisabled:: + printstring STRINGID_PKMNMOVEISDISABLED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DAE1F:: + printselectionstring STRINGID_PKMNMOVEISDISABLED + endselectionscript + +BattleScript_DisabledNoMore:: + printstring STRINGID_PKMNMOVEDISABLEDNOMORE + waitmessage 0x40 + end2 + +BattleScript_82DAE2A:: + printstring STRINGID_PKMNMOVEISDISABLED +BattleScript_82DAE2D:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_EncoredNoMore:: + printstring STRINGID_PKMNENCOREENDED + waitmessage 0x40 + end2 + +BattleScript_DestinyBondTakesLife:: + printstring STRINGID_PKMNTOOKFOE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + return + +BattleScript_SpikesOnAttacker:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + call BattleScript_82DAEFE + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon ATTACKER, TRUE, BattleScript_82DAE7A + return + +BattleScript_82DAE7A:: + setbyte sGIVEEXP_STATE, 0x0 + getexp ATTACKER + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_82DA7CD + +BattleScript_SpikesOnTarget:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate TARGET + datahpupdate TARGET + call BattleScript_82DAEFE + tryfaintmon TARGET, FALSE, NULL + tryfaintmon TARGET, TRUE, BattleScript_82DAEB1 + return + +BattleScript_82DAEB1:: + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_82DA7CD + +BattleScript_SpikesOngBank1:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate GBANK_1 + datahpupdate GBANK_1 + call BattleScript_82DAEFE + tryfaintmon GBANK_1, FALSE, NULL + tryfaintmon GBANK_1, TRUE, BattleScript_82DAEE8 + return + +BattleScript_82DAEE8:: + setbyte sGIVEEXP_STATE, 0x0 + getexp GBANK_1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_82DA7CD + +BattleScript_82DAEFE:: + printstring STRINGID_PKMNHURTBYSPIKES + waitmessage 0x40 + return + +BattleScript_82DAF05:: + printstring STRINGID_PKMNPERISHCOUNTFELL + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + end2 + +BattleScript_82DAF20:: + printstring STRINGID_PKMNPERISHCOUNTFELL + waitmessage 0x40 + end2 + +BattleScript_AllStatsUp:: + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, LESS_THAN, SPEED, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_82DAF54 + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_82DAFC2 +BattleScript_82DAF54:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x3E, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange 0x41, BattleScript_82DAF72 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DAF72:: + setstatchanger DEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DAF86 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DAF86:: + setstatchanger SPEED, 1, FALSE + statbuffchange 0x41, BattleScript_82DAF9A + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DAF9A:: + setstatchanger SPATK, 1, FALSE + statbuffchange 0x41, BattleScript_82DAFAE + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DAFAE:: + setstatchanger SPDEF, 1, FALSE + statbuffchange 0x41, BattleScript_82DAFC2 + printfromtable 0x85CC89C + waitmessage 0x40 +BattleScript_82DAFC2:: + return + +BattleScript_RapidSpinAway:: + rapidspinfree + return + +BattleScript_WrapFree:: + printstring STRINGID_PKMNGOTFREE + waitmessage 0x40 + copyarray gBankTarget, sBANK, 0x1 + return + +BattleScript_LeechSeedFree:: + printstring STRINGID_PKMNSHEDLEECHSEED + waitmessage 0x40 + return + +BattleScript_SpikesFree:: + printstring STRINGID_PKMNBLEWAWAYSPIKES + waitmessage 0x40 + return + +BattleScript_82DAFE4:: + printstring STRINGID_PKMNTOOKATTACK + waitmessage 0x40 + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB001 + accuracycheck BattleScript_82DB058, MOVE_FUTURE_SIGHT + goto BattleScript_82DB008 + +BattleScript_82DB001:: + accuracycheck BattleScript_82DB058, MOVE_DOOM_DESIRE +BattleScript_82DB008:: + adjustnormaldamage2 + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB020 + playanimation ATTACKER, ANIM_FUTURE_SIGHT_HIT, NULL + goto BattleScript_82DB027 + +BattleScript_82DB020:: + playanimation ATTACKER, ANIM_x13, NULL +BattleScript_82DB027:: + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + atk24 BattleScript_82DB03F +BattleScript_82DB03F:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0xB + moveend 0x2, 0xE + setbyte gBattleMoveFlags, 0 + end2 + +BattleScript_82DB058:: + pause 0x20 + setbyte gBattleMoveFlags, 0 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + resultmessage + waitmessage 0x40 + setbyte gBattleMoveFlags, 0 + end2 + +BattleScript_NoMovesLeft:: + printselectionstring STRINGID_PKMNHASNOMOVESLEFT + endselectionscript + +BattleScript_82DB076:: + printselectionstring STRINGID_NOPPLEFT + endselectionscript + +BattleScript_NoPPForMove:: + attackstring + pause 0x20 + printstring STRINGID_BUTNOPPLEFT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB089:: + printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT + endselectionscript + +BattleScript_82DB08D:: + printstring STRINGID_PKMNCANTUSEMOVETORMENT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB098:: + printstring STRINGID_PKMNCANTUSEMOVETORMENT + goto BattleScript_82DAE2D + +BattleScript_82DB0A0:: + printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT + endselectionscript + +BattleScript_MoveUsedIsTaunted:: + printstring STRINGID_PKMNCANTUSEMOVETAUNT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB0AF:: + printstring STRINGID_PKMNCANTUSEMOVETAUNT + goto BattleScript_82DAE2D + +BattleScript_WishComesTrue:: + trywish 0x1, BattleScript_82DB0DE + playanimation TARGET, ANIM_WISH_HEAL, NULL + printstring STRINGID_PKMNWISHCAMETRUE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + end2 + +BattleScript_82DB0DE:: + printstring STRINGID_PKMNWISHCAMETRUE + waitmessage 0x40 + pause 0x20 + printstring STRINGID_PKMNHPFULL + waitmessage 0x40 + end2 + +BattleScript_IngrainTurnHeal:: + playanimation ATTACKER, ANIM_INGRAIN_HEAL, NULL + printstring STRINGID_PKMNABSORBEDNUTRIENTS + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + end2 + +BattleScript_82DB109:: + pause 0x20 + printstring STRINGID_PKMNANCHOREDITSELF + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AtkDefDown:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x6, 0xD + playstatchangeanimation ATTACKER, 0x2, 0x9 + setstatchanger ATK, 1, TRUE + statbuffchange 0xC1, BattleScript_82DB144 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144 + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DB144:: + playstatchangeanimation ATTACKER, 0x4, 0x9 + setstatchanger DEF, 1, TRUE + statbuffchange 0xC1, BattleScript_82DB167 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167 + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DB167:: + return + +BattleScript_KnockedOff:: + playanimation TARGET, ANIM_ITEM_KNOCKOFF, NULL + printstring STRINGID_PKMNKNOCKEDOFF + waitmessage 0x40 + return + +BattleScript_MoveUsedIsImprisoned:: + printstring STRINGID_PKMNCANTUSEMOVESEALED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB181:: + printselectionstring STRINGID_PKMNCANTUSEMOVESEALED + endselectionscript + +BattleScript_82DB185:: + printstring STRINGID_PKMNCANTUSEMOVESEALED + goto BattleScript_82DAE2D + +BattleScript_GrudgeTakesPp:: + printstring STRINGID_PKMNLOSTPPGRUDGE + waitmessage 0x40 + return + +BattleScript_MagicCoatBounce:: + attackstring + ppreduce + pause 0x20 + printstring STRINGID_PKMNMOVEBOUNCED + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 + various ATTACKER, VARIOUS_SET_MAGIC_COAT_TARGET + return + +BattleScript_SnatchedMove:: + attackstring + ppreduce + snatchsetbanks + playanimation TARGET, ANIM_SNATCH_MOVE, NULL + printstring STRINGID_PKMNSNATCHEDMOVE + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 + atk5F + return + +BattleScript_EnduredMsg:: + printstring STRINGID_PKMNENDUREDHIT + waitmessage 0x40 + return + +BattleScript_OneHitKOMsg:: + printstring STRINGID_ONEHITKO + waitmessage 0x40 + return + +BattleScript_SAtkDown2:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x10, 0xB + setstatchanger SPATK, 2, TRUE + statbuffchange 0xC1, BattleScript_82DB1FE + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB1FE + printfromtable 0x85CC8A8 + waitmessage 0x40 +BattleScript_82DB1FE:: + return + +BattleScript_FocusPunchSetUp:: + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + playanimation ATTACKER, ANIM_x14, NULL + printstring STRINGID_PKMNTIGHTENINGFOCUS + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsAsleep:: + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER + goto BattleScript_MoveEnd + +BattleScript_MoveUsedWokeUp:: + bicword gHitMarker, HITMARKER_x10 + printfromtable 0x85CC88E + waitmessage 0x40 + updatestatusicon ATTACKER + return + +BattleScript_82DB234:: + printstring STRINGID_PKMNWOKEUPINUPROAR + waitmessage 0x40 + updatestatusicon ATTACKER + end2 + +BattleScript_PoisonTurnDmg:: + printstring STRINGID_PKMNHURTBYPOISON + waitmessage 0x40 +BattleScript_82DB243:: + statusanimation ATTACKER +BattleScript_82DB245:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + atk24 BattleScript_82DB25E +BattleScript_82DB25E:: + end2 + +BattleScript_BurnTurnDmg:: + printstring STRINGID_PKMNHURTBYBURN + waitmessage 0x40 + goto BattleScript_82DB243 + +BattleScript_MoveUsedIsFrozen:: + printstring STRINGID_PKMNISFROZEN + waitmessage 0x40 + statusanimation ATTACKER + goto BattleScript_MoveEnd + +BattleScript_MoveUsedUnfroze:: + printfromtable 0x85CC8F0 + waitmessage 0x40 + updatestatusicon ATTACKER + return + +BattleScript_DefrostedViaFireMove:: + printstring STRINGID_PKMNWASDEFROSTED + waitmessage 0x40 + updatestatusicon TARGET + return + +BattleScript_MoveUsedIsParalyzed:: + printstring STRINGID_PKMNISPARALYZED + waitmessage 0x40 + statusanimation ATTACKER + various ATTACKER, VARIOUS_CANCEL_MULTI_TURN_MOVES + goto BattleScript_MoveEnd + +BattleScript_MoveUsedFlinched:: + printstring STRINGID_PKMNFLINCHED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB2A6:: + printfromtable 0x85CC886 + waitmessage 0x40 + end2 + +BattleScript_ThrashConfuses:: + chosenstatus2animation ATTACKER, STATUS2_CONFUSION + printstring STRINGID_PKMNFATIGUECONFUSION + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsConfused:: + printstring STRINGID_PKMNISCONFUSED + waitmessage 0x40 + status2animation ATTACKER, STATUS2_CONFUSION + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB2FF +BattleScript_82DB2D4:: + various ATTACKER, VARIOUS_CANCEL_MULTI_TURN_MOVES + adjustnormaldamage2 + printstring STRINGID_ITHURTCONFUSION + waitmessage 0x40 + effectivenesssound + hitanimation ATTACKER + waitstate + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + resultmessage + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_82DB2FF:: + return + +BattleScript_MoveUsedIsConfusedNoMore:: + printstring STRINGID_PKMNHEALEDCONFUSION + waitmessage 0x40 + return + +BattleScript_PrintPayDayMoneyString:: + printstring STRINGID_PKMNPICKEDUPITEM + waitmessage 0x40 + return + +BattleScript_WrapTurnDmg:: + playanimation ATTACKER, ANIM_TURN_TRAP, sANIM_ARG1 + printstring STRINGID_PKMNHURTBY + waitmessage 0x40 + goto BattleScript_82DB245 + +BattleScript_WrapEnds:: + printstring STRINGID_PKMNFREEDFROM + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsInLove:: + printstring STRINGID_PKMNINLOVE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_INFATUATION + return + +BattleScript_MoveUsedIsParalyzedCantAttack:: + printstring STRINGID_PKMNIMMOBILIZEDBYLOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_NightmareTurnDmg:: + printstring STRINGID_PKMNLOCKEDINNIGHTMARE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_NIGHTMARE + goto BattleScript_82DB245 + +BattleScript_CurseTurnDmg:: + printstring STRINGID_PKMNAFFLICTEDBYCURSE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_CURSED + goto BattleScript_82DB245 + +BattleScript_TargetPRLZHeal:: + printstring STRINGID_PKMNHEALEDPARALYSIS + waitmessage 0x40 + updatestatusicon TARGET + return + +BattleScript_MoveEffectSleep:: + statusanimation EFFECT_BANK + printfromtable 0x85CC8E4 + waitmessage 0x40 +BattleScript_82DB374:: + updatestatusicon EFFECT_BANK + waitstate + return + +BattleScript_YawnMakesAsleep:: + statusanimation EFFECT_BANK + printstring STRINGID_PKMNFELLASLEEP + waitmessage 0x40 + updatestatusicon EFFECT_BANK + waitstate + makevisible EFFECT_BANK + end2 + +BattleScript_MoveEffectPoison:: + statusanimation EFFECT_BANK + printfromtable 0x85CC8DC + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectBurn:: + statusanimation EFFECT_BANK + printfromtable 0x85CC8E8 + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectFreeze:: + statusanimation EFFECT_BANK + printfromtable 0x85CC8EC + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectParalysis:: + statusanimation EFFECT_BANK + printfromtable 0x85CC8E0 + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectUproar:: + printstring STRINGID_PKMNCAUSEDUPROAR + waitmessage 0x40 + return + +BattleScript_MoveEffectToxic:: + statusanimation EFFECT_BANK + printstring STRINGID_PKMNBADLYPOISONED + waitmessage 0x40 + goto BattleScript_82DB374 + +BattleScript_MoveEffectPayDay:: + printstring STRINGID_COINSSCATTERED + waitmessage 0x40 + return + +BattleScript_MoveEffectWrap:: + printfromtable 0x85CC8C0 + waitmessage 0x40 + return + +BattleScript_MoveEffectConfusion:: + chosenstatus2animation EFFECT_BANK, STATUS2_CONFUSION + printstring STRINGID_PKMNWASCONFUSED + waitmessage 0x40 + return + +BattleScript_MoveEffectRecoil33:: + jumpifhalfword EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_82DB407 + jumpifability ATTACKER, ABILITY_ROCK_HEAD, BattleScript_82DB421 +BattleScript_82DB407:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNHITWITHRECOIL + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL +BattleScript_82DB421:: + return + +BattleScript_ItemSteal:: + playanimation TARGET, ANIM_ITEM_STEAL, NULL + printstring STRINGID_PKMNSTOLEITEM + waitmessage 0x40 + return + +BattleScript_DrizzleActivates:: + pause 0x20 + printstring STRINGID_PKMNMADEITRAIN + waitstate + playanimation BANK0, ANIM_RAIN_CONTINUES, NULL + call BattleScript_82DB48D + end3 + +BattleScript_SpeedBoostActivates:: + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 + printstring STRINGID_PKMNRAISEDSPEED + waitmessage 0x40 + end3 + +BattleScript_TraceActivates:: + pause 0x20 + printstring STRINGID_PKMNTRACED + waitmessage 0x40 + end3 + +BattleScript_RainDishActivates:: + printstring STRINGID_PKMNSXRESTOREDHPALITTLE2 + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + end3 + +BattleScript_SandstreamActivates:: + pause 0x20 + printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM + waitstate + playanimation BANK0, ANIM_SANDSTORM_CONTINUES, NULL + call BattleScript_82DB48D + end3 + +BattleScript_ShedSkinActivates:: + printstring STRINGID_PKMNSXCUREDYPROBLEM + waitmessage 0x40 + updatestatusicon ATTACKER + end3 + +BattleScript_82DB48D:: + setbyte sBANK, 0x0 +BattleScript_82DB493:: + trycastformdatachange + addbyte sBANK, 0x1 + jumpifarraynotequal sBANK, gNoOfAllBanks, 0x1, BattleScript_82DB493 + return + +BattleScript_CastformChange:: + call BattleScript_82DB4AF + end3 + +BattleScript_82DB4AF:: + docastformchangeanimation + waitstate + printstring STRINGID_PKMNTRANSFORMED + waitmessage 0x40 + return + +BattleScript_82DB4B8:: + call BattleScript_82DB4BE + end3 + +BattleScript_82DB4BE:: + pause 0x20 +BattleScript_82DB4C1:: + setbyte gBankTarget, 0x0 + setstatchanger ATK, 1, TRUE +BattleScript_82DB4CD:: + trygetintimidatetarget BattleScript_82DB51B + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DB510 + jumpifability TARGET, ABILITY_CLEAR_BODY, BattleScript_82DB51C + jumpifability TARGET, ABILITY_HYPER_CUTTER, BattleScript_82DB51C + jumpifability TARGET, ABILITY_WHITE_SMOKE, BattleScript_82DB51C + statbuffchange 0x21, BattleScript_82DB510 + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DB510 + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printstring STRINGID_PKMNCUTSATTACKWITH + waitmessage 0x40 +BattleScript_82DB510:: + addbyte gBankTarget, 0x1 + goto BattleScript_82DB4CD +BattleScript_82DB51B:: + return + +BattleScript_82DB51C:: + pause 0x20 + printstring STRINGID_PREVENTEDFROMWORKING + waitmessage 0x40 + goto BattleScript_82DB510 + +BattleScript_DroughtActivates:: + pause 0x20 + printstring STRINGID_PKMNSXINTENSIFIEDSUN + waitstate + playanimation BANK0, ANIM_SUN_CONTINUES, NULL + call BattleScript_82DB48D + end3 + +BattleScript_TookAttack:: + attackstring + pause 0x20 + printstring STRINGID_PKMNSXTOOKATTACK + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED + return + +BattleScript_SturdyPreventsOHKO:: + pause 0x20 + printstring STRINGID_PKMNPROTECTEDBY + pause 0x40 + goto BattleScript_MoveEnd + +BattleScript_DampStopsExplosion:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSUSAGE + pause 0x40 + goto BattleScript_MoveEnd + +BattleScript_MoveHPDrain_PPLoss:: + ppreduce +BattleScript_MoveHPDrain:: + attackstring + pause 0x20 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNRESTOREDHPUSING + waitmessage 0x40 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + goto BattleScript_MoveEnd + +BattleScript_82DB591:: + ppreduce +BattleScript_82DB592:: + attackstring + pause 0x20 + printstring STRINGID_PKMNSXMADEYUSELESS + waitmessage 0x40 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + goto BattleScript_MoveEnd + +BattleScript_FlashFireBoost_PPLoss:: + ppreduce +BattleScript_FlashFireBoost:: + attackstring + pause 0x20 + printfromtable 0x85CC976 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB5B9:: + pause 0x20 + printstring STRINGID_PKMNANCHORSITSELFWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AbilityNoStatLoss:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSSTATLOSSWITH + waitmessage 0x40 + return + +BattleScript_BRNPrevention:: + pause 0x20 + printfromtable 0x85CC95E + waitmessage 0x40 + return + +BattleScript_PRLZPrevention:: + pause 0x20 + printfromtable 0x85CC964 + waitmessage 0x40 + return + +BattleScript_PSNPrevention:: + pause 0x20 + printfromtable 0x85CC96A + waitmessage 0x40 + return + +BattleScript_ObliviousPreventsAttraction:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSROMANCEWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_FlinchPrevention:: + pause 0x20 + printstring STRINGID_PKMNSXPREVENTSFLINCHING + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82DB611:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSCONFUSIONWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SoundproofProtected:: + attackstring + ppreduce + pause 0x20 + printstring STRINGID_PKMNSXBLOCKSY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AbilityNoSpecificStatLoss:: + pause 0x20 + printstring STRINGID_PKMNSXPREVENTSYLOSS + waitmessage 0x40 + setbyte cMULTISTRING_CHOOSER, 0x3 + return + +BattleScript_StickyHoldActivates:: + pause 0x20 + printstring STRINGID_PKMNSXMADEYINEFFECTIVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_ColorChangeActivates:: + printstring STRINGID_PKMNCHANGEDTYPEWITH + waitmessage 0x40 + return + +BattleScript_RoughSkinActivates:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNHURTSWITH + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + return + +BattleScript_CuteCharmActivates:: + status2animation ATTACKER, STATUS2_INFATUATION + printstring STRINGID_PKMNSXINFATUATEDY + waitmessage 0x40 + return + +BattleScript_ApplySecondaryEffect:: + waitstate + seteffectsecondary + return + +BattleScript_SynchronizeActivates:: + waitstate + seteffectprimary + return + +BattleScript_NoItemSteal:: + pause 0x20 + printstring STRINGID_PKMNSXMADEYINEFFECTIVE + waitmessage 0x40 + return + +BattleScript_82DB68C:: + printstring STRINGID_PKMNSXCUREDITSYPROBLEM + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + return + +BattleScript_82DB695:: + printstring STRINGID_PKMNIGNORESASLEEP + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_82DB6A5:: + printstring STRINGID_PKMNIGNOREDORDERS + waitmessage 0x40 + jumptorandomattack 0x0 + +BattleScript_MoveUsedLoafingAround:: + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x4, BattleScript_82DB6C7 + setbyte gBattleCommunication, 0x0 + various ATTACKER, 0x18 + setbyte cMULTISTRING_CHOOSER, 0x4 +BattleScript_82DB6C7:: + printfromtable 0x85CC93A + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_82DB6D9:: + printstring STRINGID_PKMNBEGANTONAP + waitmessage 0x40 + setmoveeffect EFFECT_SLEEP | AFFECTS_USER + seteffectprimary + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_82DB6F0:: + printstring STRINGID_PKMNWONTOBEY + waitmessage 0x40 + goto BattleScript_82DB2D4 + +BattleScript_SubstituteFade:: + playanimation TARGET, ANIM_SUBSTITUTE_FADE, NULL + printstring STRINGID_PKMNSUBSTITUTEFADED + return + +BattleScript_BerryCurePrlzEnd2:: + call BattleScript_BerryCureParRet + end2 + +BattleScript_BerryCureParRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMCUREDPARALYSIS + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCurePsnEnd2:: + call BattleScript_BerryCurePsnRet + end2 + +BattleScript_BerryCurePsnRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMCUREDPOISON + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureBrnEnd2:: + call BattleScript_BerryCureBrnRet + end2 + +BattleScript_BerryCureBrnRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMHEALEDBURN + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureFrzEnd2:: + call BattleScript_BerryCureFrzRet + end2 + +BattleScript_BerryCureFrzRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMDEFROSTEDIT + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureSlpEnd2:: + call BattleScript_BerryCureSlpRet + end2 + +BattleScript_BerryCureSlpRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMWOKEIT + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureConfusionEnd2:: + call BattleScript_BerryCureConfusionRet + end2 + +BattleScript_BerryCureConfusionRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMSNAPPEDOUT + waitmessage 0x40 + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureChosenStatusEnd2:: + call BattleScript_BerryCureChosenStatusRet + end2 + +BattleScript_BerryCureChosenStatusRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printfromtable 0x85CC95A + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_WhiteHerbEnd2:: + call BattleScript_WhiteHerbRet + end2 + +BattleScript_WhiteHerbRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDSTATUS + waitmessage 0x40 + removeitem SCRIPTING_BANK + return + +BattleScript_ItemHealHP_RemoveItem:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + removeitem ATTACKER + end2 + +BattleScript_BerryPPHealEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDPP + waitmessage 0x40 + removeitem ATTACKER + end2 + +BattleScript_ItemHealHP_End2:: + call BattleScript_ItemHealHP_Ret + end2 + +BattleScript_ItemHealHP_Ret:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + return + +BattleScript_82DB812:: + printselectionstring STRINGID_ITEMALLOWSONLYYMOVE + endselectionscript + +BattleScript_HangedOnMsg:: + playanimation TARGET, ANIM_HANGED_ON, NULL + printstring STRINGID_PKMNHUNGONWITHX + waitmessage 0x40 + return + +BattleScript_BerryConfuseHealEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_FORXCOMMAYZ + waitmessage 0x40 + setmoveeffect EFFECT_CONFUSION | AFFECTS_USER + seteffectprimary + removeitem ATTACKER + end2 + +BattleScript_BerryStatRaiseEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + statbuffchange 0x41, BattleScript_82DB85B +BattleScript_82DB85B:: + setbyte cMULTISTRING_CHOOSER, 0x4 + call BattleScript_StatUp + removeitem ATTACKER + end2 + +BattleScript_BerryFocusEnergyEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNUSEDXTOGETPUMPED + waitmessage 0x40 + removeitem ATTACKER + end2 + +BattleScript_ActionSelectionItemsCantBeUsed:: + printselectionstring STRINGID_ITEMSCANTBEUSEDNOW + endselectionscript + +BattleScript_82DB87D:: + printstring STRINGID_EMPTYSTRING3 + return + +BattleScript_82DB881:: + setbyte gBattleCommunication + 1, 0x0 +BattleScript_82DB887:: + various ATTACKER, 0x8 + jumpifbyte NOT_EQUAL, gBattleCommunication, 0x1, BattleScript_82DB89D + printfromtable 0x85CCF0A + waitmessage 0x40 +BattleScript_82DB89D:: + addbyte gBattleCommunication + 1, 0x1 + jumpifarraynotequal gBattleCommunication + 1, gNoOfAllBanks, 0x1, BattleScript_82DB887 + setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication + 1, 0x0 + end2 + +BattleScript_82DB8BE:: + various ATTACKER, VARIOUS_WAIT_CRY + various ATTACKER, 0x15 + playse 0x109 + pause 0x8 + playse 0x109 + various ATTACKER, 0xE + various 8, 0x10 + various 8, 0x11 + pause 0x40 + various ATTACKER, 0xF + various ATTACKER, 0x16 + end2 + +BattleScript_82DB8E0:: + playse SE_PINPON + various ATTACKER, 0xE + various TARGET, 0x10 + various TARGET, 0x11 + pause 0x40 + various ATTACKER, 0xF + end2 + +BattleScript_82DB8F3:: + makevisible 11 + waitstate + makevisible OPPONENT1 + waitstate + various ATTACKER, 0x15 + playse 0x109 + pause 0x8 + playse 0x109 + pause 0x40 + various ATTACKER, 0xE + various ATTACKER, 0x10 + various ATTACKER, 0x11 + pause 0x40 + setbyte gBattleCommunication, 0x0 + various ATTACKER, 0x9 + pause 0x40 + various ATTACKER, 0x9 + various EFFECT_BANK, 0x10 + various EFFECT_BANK, 0x11 + various ATTACKER, 0x9 + various GBANK_1, 0x10 + various GBANK_1, 0x11 + various ATTACKER, 0x9 + various 4, 0x10 + various 4, 0x11 + various ATTACKER, 0x9 + jumpifbyte EQUAL, gBattleCommunication + 1, 0x3, BattleScript_82DB973 + jumpifbyte EQUAL, gBattleCommunication + 1, 0x4, BattleScript_82DB992 + various 5, 0x10 + various 5, 0x11 + various ATTACKER, 0x9 + various ATTACKER, 0xF + printstring STRINGID_DEFEATEDOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry OPPONENT1 + various ATTACKER, VARIOUS_WAIT_CRY + dofaintanimation OPPONENT1 + cleareffectsonfaint OPPONENT1 + various ATTACKER, 0xA + end2 + +BattleScript_82DB973:: + various 6, 0x10 + various 6, 0x11 + various ATTACKER, 0x9 + various ATTACKER, 0xF + printstring STRINGID_LOSTTOOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry 11 + various ATTACKER, VARIOUS_WAIT_CRY + dofaintanimation 11 + cleareffectsonfaint 11 + various ATTACKER, 0xB + end2 + +BattleScript_82DB992:: + various BANK0, 0x10 + various BANK0, 0x11 + various ATTACKER, 0x9 + various ATTACKER, 0xF + printstring STRINGID_TIEDOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry 11 + various ATTACKER, VARIOUS_WAIT_CRY + dofaintanimation 11 + cleareffectsonfaint 11 + playfaintcry OPPONENT1 + various ATTACKER, VARIOUS_WAIT_CRY + dofaintanimation OPPONENT1 + cleareffectsonfaint OPPONENT1 + various ATTACKER, 0xC + end2 + +BattleScript_82DB9BA:: + printselectionstring STRINGID_QUESTIONFORFEITMATCH + various ATTACKER, VARIOUS_EMIT_YESNOBOX + endselectionscript + +BattleScript_82DB9C1:: + printstring STRINGID_FORFEITEDMATCH + waitmessage 0x40 + end2 + +BattleScript_82DB9C8:: + printstring STRINGID_FORFEITEDMATCH + waitmessage 0x40 + atk57 + waitmessage 0x40 + end2 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 4a4dc4665..6f6ea084b 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -1,32 +1,36 @@ .include "asm/macros.inc" + .include "asm/macros/battle_script.inc" .include "constants/constants.inc" + .include "constants/battle_constants.inc" + .include "constants/battle_script_constants.inc" + .include "constants/battle_text.inc" .section script_data, "aw", %progbits .align 2 gBattlescriptsForBallThrow:: @ 82DBD08 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD7E - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD7E + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 + .4byte BattleScript_82DBD68 .align 2 gUnknown_082DBD3C:: @ 82DBD3C - .4byte gUnknown_082DBE12 - .4byte gUnknown_082DBE1C - .4byte gUnknown_082DBE1C - .4byte gUnknown_082DBE4B - .4byte gUnknown_082DBE6F - .4byte gUnknown_082DBE91 + .4byte BattleScript_82DBE12 + .4byte BattleScript_82DBE1C + .4byte BattleScript_82DBE1C + .4byte BattleScript_82DBE4B + .4byte BattleScript_82DBE6F + .4byte BattleScript_82DBE91 .align 2 gBattlescriptsForRunningByItem:: @ 82DBD54 @@ -34,55 +38,167 @@ gBattlescriptsForRunningByItem:: @ 82DBD54 .align 2 gBattlescriptsForSafariActions:: @ 82DBD58 - .4byte gUnknown_082DBEBD - .4byte gUnknown_082DBEC4 - .4byte gUnknown_082DBECD - .4byte gUnknown_082DBEE3 - -gUnknown_082DBD68:: @ 82DBD68 - .incbin "baserom.gba", 0x2dbd68, 0x16 - -gUnknown_082DBD7E:: @ 82DBD7E - .incbin "baserom.gba", 0x2dbd7e, 0x6 - -BattleScript_SuccessBallThrow:: @ 82DBD84 - .incbin "baserom.gba", 0x2dbd84, 0x46 - -BattleScript_WallyBallThrow:: @ 82DBDCA - .incbin "baserom.gba", 0x2dbdca, 0xa - -BattleScript_ShakeBallThrow:: @ 82DBDD4 - .incbin "baserom.gba", 0x2dbdd4, 0x2e - -BattleScript_TrainerBallBlock:: @ 82DBE02 - .incbin "baserom.gba", 0x2dbe02, 0x10 - -gUnknown_082DBE12:: @ 82DBE12 - .incbin "baserom.gba", 0x2dbe12, 0xa - -gUnknown_082DBE1C:: @ 82DBE1C - .incbin "baserom.gba", 0x2dbe1c, 0x2f - -gUnknown_082DBE4B:: @ 82DBE4B - .incbin "baserom.gba", 0x2dbe4b, 0x24 - -gUnknown_082DBE6F:: @ 82DBE6F - .incbin "baserom.gba", 0x2dbe6f, 0x22 - -gUnknown_082DBE91:: @ 82DBE91 - .incbin "baserom.gba", 0x2dbe91, 0x22 - -BattleScript_RunByUsingItem:: @ 82DBEB3 - .incbin "baserom.gba", 0x2dbeb3, 0xA - -gUnknown_082DBEBD:: @ 82DBEBD - .incbin "baserom.gba", 0x2dbebd, 0x7 - -gUnknown_082DBEC4:: @ 82DBEC4 - .incbin "baserom.gba", 0x2dbec4, 0x9 - -gUnknown_082DBECD:: @ 82DBECD - .incbin "baserom.gba", 0x2dbecd, 0x16 - -gUnknown_082DBEE3:: @ 82DBEE3 - .incbin "baserom.gba", 0x2dbee3, 0x15 + .4byte BattleScript_82DBEBD + .4byte BattleScript_82DBEC4 + .4byte BattleScript_82DBECD + .4byte BattleScript_82DBEE3 + +BattleScript_82DBD68:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_82DBD7A + printstring STRINGID_PLAYERUSEDITEM + pokeball_catch_calculation + +BattleScript_82DBD7A:: + printstring STRINGID_WALLYUSEDITEM + pokeball_catch_calculation + +BattleScript_82DBD7E:: + printstring STRINGID_PLAYERUSEDITEM + updatestatusicon ATTACKER + pokeball_catch_calculation + +BattleScript_SuccessBallThrow:: + jumpifhalfword EQUAL, gLastUsedItem, 0x5, BattleScript_82DBD92 + incrementgamestat 0xB +BattleScript_82DBD92:: + printstring STRINGID_GOTCHAPKMNCAUGHT + trysetcaughtmondexflags BattleScript_82DBDA5 + printstring STRINGID_PKMNDATAADDEDTODEX + waitstate + setbyte gBattleCommunication, 0x0 + displaydexinfo +BattleScript_82DBDA5:: + printstring STRINGID_GIVENICKNAMECAPTURED + waitstate + setbyte gBattleCommunication, 0x0 + trygivecaughtmonnick BattleScript_82DBDC2 + givecaughtmon + printfromtable 0x85CC97A + waitmessage 0x40 + goto BattleScript_82DBDC3 + +BattleScript_82DBDC2:: + givecaughtmon +BattleScript_82DBDC3:: + setbyte gBattleOutcome, CAUGHT + finishturn + +BattleScript_WallyBallThrow:: + printstring STRINGID_GOTCHAPKMNCAUGHT2 + setbyte gBattleOutcome, CAUGHT + finishturn + +BattleScript_ShakeBallThrow:: + printfromtable 0x85CC912 + waitmessage 0x40 + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_82DBE01 + jumpifbyte NOT_EQUAL, gNumSafariBalls, 0x0, BattleScript_82DBE01 + printstring STRINGID_OUTOFSAFARIBALLS + waitmessage 0x40 + setbyte gBattleOutcome, OUT_OF_BALLS +BattleScript_82DBE01:: + finishaction + +BattleScript_TrainerBallBlock:: + waitmessage 0x40 + printstring STRINGID_TRAINERBLOCKEDBALL + waitmessage 0x40 + printstring STRINGID_DONTBEATHIEF + waitmessage 0x40 + finishaction + +BattleScript_82DBE12:: + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + end + +BattleScript_82DBE1C:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse 0x1 + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + updatestatusicon ATTACKER + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_82DBE4B:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse 0x1 + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable 0x85CC94E + waitmessage 0x40 + updatestatusicon ATTACKER + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_82DBE6F:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse 0x1 + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable 0x85CC89C + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_82DBE91:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse 0x1 + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable 0x85CC8CC + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_RunByUsingItem:: + playse 0x11 + setbyte gBattleOutcome, RAN + finishturn + +BattleScript_82DBEBD:: + printstring STRINGID_PKMNWATCHINGCAREFULLY + waitmessage 0x40 + end2 + +BattleScript_82DBEC4:: + printfromtable 0x85CC944 + waitmessage 0x40 + end2 + +BattleScript_82DBECD:: + printstring STRINGID_THREWPOKEBLOCKATPKMN + waitmessage 0x40 + playanimation ATTACKER, ANIM_x4, NULL + printfromtable 0x85CC948 + waitmessage 0x40 + end2 + +BattleScript_82DBEE3:: + printstring STRINGID_RETURNMON + waitmessage 0x40 + returnatktoball + waitstate + trainerslidein TARGET + waitstate + printstring STRINGID_YOUTHROWABALLNOWRIGHT + waitmessage 0x40 + end2 diff --git a/include/battle.h b/include/battle.h index 0939c92b6..ada5282dc 100644 --- a/include/battle.h +++ b/include/battle.h @@ -272,6 +272,8 @@ #define BS_GET_TARGET 0 #define BS_GET_ATTACKER 1 #define BS_GET_EFFECT_BANK 2 +#define BS_GET_gBank1 3 +#define BS_GET_BANK_0 7 #define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update #define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability #define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability @@ -847,7 +849,7 @@ struct BattleScripting u8 field_F; u8 animArg1; u8 animArg2; - u8 field_12; + u8 tripleKickPower; u8 field_13; u8 atk49_state; u8 field_15; diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 973a723e0..c69cb1017 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -198,7 +198,7 @@ void EmitBallThrowAnim(u8 bufferId, u8 caseId); void EmitPause(u8 bufferId, u8 toWait, void *data); // unused void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit); void EmitPrintString(u8 bufferId, u16 stringId); -void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId); +void EmitPrintSelectionString(u8 bufferId, u16 stringId); void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); void EmitUnknownYesNoBox(u8 bufferId); void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); @@ -224,7 +224,7 @@ void EmitCmd39(u8 bufferId); // unused void EmitCmd40(u8 bufferId); // unused void EmitHitAnimation(u8 bufferId); void EmitCmd42(u8 bufferId); -void EmitEffectivenessSound(u8 bufferId, u16 songId); +void EmitPlaySE(u8 bufferId, u16 songId); void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM); void EmitFaintingCry(u8 bufferId); void EmitIntroSlide(u8 bufferId, u8 terrainId); diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h index 4a9415379..003913380 100644 --- a/include/battle_move_effects.h +++ b/include/battle_move_effects.h @@ -153,7 +153,7 @@ enum EFFECT_EARTHQUAKE, EFFECT_FUTURE_SIGHT, EFFECT_GUST, - EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM + EFFECT_STOMP, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM EFFECT_SOLARBEAM, EFFECT_THUNDER, EFFECT_TELEPORT, diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index ebfeabccc..80fabaa64 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -1,6 +1,10 @@ #ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H #define GUARD_BATTLE_SCRIPT_COMMANDS_H +#define NO_ACC_CALC 0xFFFE +#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF +#define ACC_CURR_MOVE 0 + #define CMP_EQUAL 0x0 #define CMP_NOT_EQUAL 0x1 #define CMP_GREATER_THAN 0x2 @@ -21,7 +25,7 @@ #define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 #define VARIOUS_SET_MAGIC_COAT_TARGET 1 -#define VARIOUS_CAN_RUN_FROM_BATTLE 2 +#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2 #define VARIOUS_GET_MOVE_TARGET 3 #define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 #define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 diff --git a/include/battle_scripts.h b/include/battle_scripts.h new file mode 100644 index 000000000..b04a82673 --- /dev/null +++ b/include/battle_scripts.h @@ -0,0 +1,640 @@ +#ifndef GUARD_BATTLE_SCRIPTS_H +#define GUARD_BATTLE_SCRIPTS_H + +extern const u8 BattleScript_EffectHit[]; +extern const u8 BattleScript_HitFromAtkCanceler[]; +extern const u8 BattleScript_HitFromAccCheck[]; +extern const u8 BattleScript_HitFromAtkString[]; +extern const u8 BattleScript_HitFromCritCalc[]; +extern const u8 BattleScript_HitFromAtkAnimation[]; +extern const u8 BattleScript_MoveEnd[]; +extern const u8 BattleScript_MakeMoveMissed[]; +extern const u8 BattleScript_PrintMoveMissed[]; +extern const u8 BattleScript_MoveMissedPause[]; +extern const u8 BattleScript_MoveMissed[]; +extern const u8 BattleScript_EffectSleep[]; +extern const u8 BattleScript_82D8AB0[]; +extern const u8 BattleScript_82D8AC1[]; +extern const u8 BattleScript_82D8ACF[]; +extern const u8 BattleScript_EffectPoisonHit[]; +extern const u8 BattleScript_EffectAbsorb[]; +extern const u8 BattleScript_82D8B26[]; +extern const u8 BattleScript_82D8B2E[]; +extern const u8 BattleScript_82D8B45[]; +extern const u8 BattleScript_EffectBurnHit[]; +extern const u8 BattleScript_EffectFreezeHit[]; +extern const u8 BattleScript_EffectParalyzeHit[]; +extern const u8 BattleScript_EffectExplosion[]; +extern const u8 BattleScript_82D8B94[]; +extern const u8 BattleScript_82D8B96[]; +extern const u8 BattleScript_82D8BCF[]; +extern const u8 BattleScript_82D8BEA[]; +extern const u8 BattleScript_EffectDreamEater[]; +extern const u8 BattleScript_82D8C0E[]; +extern const u8 BattleScript_82D8C18[]; +extern const u8 BattleScript_82D8C56[]; +extern const u8 BattleScript_EffectMirrorMove[]; +extern const u8 BattleScript_EffectAttackUp[]; +extern const u8 BattleScript_EffectDefenseUp[]; +extern const u8 BattleScript_EffectSpecialAttackUp[]; +extern const u8 BattleScript_EffectEvasionUp[]; +extern const u8 BattleScript_EffectStatUp[]; +extern const u8 BattleScript_EffectStatUpAfterAtkCanceler[]; +extern const u8 BattleScript_82D8CBD[]; +extern const u8 BattleScript_82D8CBF[]; +extern const u8 BattleScript_82D8CC7[]; +extern const u8 BattleScript_82D8CCF[]; +extern const u8 BattleScript_StatUp[]; +extern const u8 BattleScript_EffectAttackDown[]; +extern const u8 BattleScript_EffectDefenseDown[]; +extern const u8 BattleScript_EffectSpeedDown[]; +extern const u8 BattleScript_EffectAccuracyDown[]; +extern const u8 BattleScript_EffectEvasionDown[]; +extern const u8 BattleScript_EffectStatDown[]; +extern const u8 BattleScript_82D8D4E[]; +extern const u8 BattleScript_82D8D58[]; +extern const u8 BattleScript_82D8D60[]; +extern const u8 BattleScript_StatDown[]; +extern const u8 BattleScript_EffectHaze[]; +extern const u8 BattleScript_EffectBide[]; +extern const u8 BattleScript_EffectRampage[]; +extern const u8 BattleScript_82D8DAE[]; +extern const u8 BattleScript_EffectRoar[]; +extern const u8 BattleScript_EffectMultiHit[]; +extern const u8 BattleScript_82D8DFD[]; +extern const u8 BattleScript_82D8E1F[]; +extern const u8 BattleScript_82D8E71[]; +extern const u8 BattleScript_82D8E74[]; +extern const u8 BattleScript_82D8E93[]; +extern const u8 BattleScript_EffectConversion[]; +extern const u8 BattleScript_EffectFlinchHit[]; +extern const u8 BattleScript_EffectRestoreHp[]; +extern const u8 BattleScript_EffectToxic[]; +extern const u8 BattleScript_AlreadyPoisoned[]; +extern const u8 BattleScript_82D8F63[]; +extern const u8 BattleScript_EffectPayDay[]; +extern const u8 BattleScript_EffectLightScreen[]; +extern const u8 BattleScript_EffectTriAttack[]; +extern const u8 BattleScript_EffectRest[]; +extern const u8 BattleScript_82D8FC6[]; +extern const u8 BattleScript_82D8FD6[]; +extern const u8 BattleScript_EffectOhko[]; +extern const u8 BattleScript_82D9008[]; +extern const u8 BattleScript_EffectRazorWind[]; +extern const u8 BattleScript_82D9040[]; +extern const u8 BattleScript_82D906F[]; +extern const u8 BattleScript_EffectSuperFang[]; +extern const u8 BattleScript_EffectDragonRage[]; +extern const u8 BattleScript_EffectTrap[]; +extern const u8 BattleScript_82D9105[]; +extern const u8 BattleScript_EffectDoubleHit[]; +extern const u8 BattleScript_EffectRecoilIfMiss[]; +extern const u8 BattleScript_82D9135[]; +extern const u8 BattleScript_EffectMist[]; +extern const u8 BattleScript_EffectFocusEnergy[]; +extern const u8 BattleScript_EffectRecoil[]; +extern const u8 BattleScript_EffectConfuse[]; +extern const u8 BattleScript_82D9201[]; +extern const u8 BattleScript_EffectAttackUp2[]; +extern const u8 BattleScript_EffectDefenseUp2[]; +extern const u8 BattleScript_EffectSpeedUp2[]; +extern const u8 BattleScript_EffectSpecialAttackUp2[]; +extern const u8 BattleScript_EffectSpecialDefenseUp2[]; +extern const u8 BattleScript_EffectTransform[]; +extern const u8 BattleScript_EffectAttackDown2[]; +extern const u8 BattleScript_EffectDefenseDown2[]; +extern const u8 BattleScript_EffectSpeedDown2[]; +extern const u8 BattleScript_EffectSpecialDefenseDown2[]; +extern const u8 BattleScript_EffectReflect[]; +extern const u8 BattleScript_82D928C[]; +extern const u8 BattleScript_EffectPoison[]; +extern const u8 BattleScript_EffectParalyze[]; +extern const u8 BattleScript_82D9351[]; +extern const u8 BattleScript_82D9362[]; +extern const u8 BattleScript_EffectAttackDownHit[]; +extern const u8 BattleScript_EffectDefenseDownHit[]; +extern const u8 BattleScript_EffectSpeedDownHit[]; +extern const u8 BattleScript_EffectSpecialAttackDownHit[]; +extern const u8 BattleScript_EffectSpecialDefenseDownHit[]; +extern const u8 BattleScript_EffectAccuracyDownHit[]; +extern const u8 BattleScript_EffectSkyAttack[]; +extern const u8 BattleScript_EffectConfuseHit[]; +extern const u8 BattleScript_EffectTwineedle[]; +extern const u8 BattleScript_EffectSubstitute[]; +extern const u8 BattleScript_82D942B[]; +extern const u8 BattleScript_82D9431[]; +extern const u8 BattleScript_82D943E[]; +extern const u8 BattleScript_EffectRecharge[]; +extern const u8 BattleScript_MoveUsedMustRecharge[]; +extern const u8 BattleScript_EffectRage[]; +extern const u8 BattleScript_82D9487[]; +extern const u8 BattleScript_EffectMimic[]; +extern const u8 BattleScript_EffectMetronome[]; +extern const u8 BattleScript_EffectLeechSeed[]; +extern const u8 BattleScript_82D94E5[]; +extern const u8 BattleScript_EffectSplash[]; +extern const u8 BattleScript_EffectDisable[]; +extern const u8 BattleScript_EffectLevelDamage[]; +extern const u8 BattleScript_EffectPsywave[]; +extern const u8 BattleScript_EffectCounter[]; +extern const u8 BattleScript_EffectEncore[]; +extern const u8 BattleScript_EffectPainSplit[]; +extern const u8 BattleScript_EffectSnore[]; +extern const u8 BattleScript_82D95CE[]; +extern const u8 BattleScript_82D95E2[]; +extern const u8 BattleScript_EffectConversion2[]; +extern const u8 BattleScript_EffectLockOn[]; +extern const u8 BattleScript_EffectSketch[]; +extern const u8 BattleScript_EffectSleepTalk[]; +extern const u8 BattleScript_82D965E[]; +extern const u8 BattleScript_82D967E[]; +extern const u8 BattleScript_EffectDestinyBond[]; +extern const u8 BattleScript_EffectFlail[]; +extern const u8 BattleScript_EffectSpite[]; +extern const u8 BattleScript_EffectHealBell[]; +extern const u8 BattleScript_82D96ED[]; +extern const u8 BattleScript_82D96FE[]; +extern const u8 BattleScript_EffectTripleKick[]; +extern const u8 BattleScript_82D9718[]; +extern const u8 BattleScript_82D973A[]; +extern const u8 BattleScript_82D9799[]; +extern const u8 BattleScript_82D97AD[]; +extern const u8 BattleScript_82D97D7[]; +extern const u8 BattleScript_EffectThief[]; +extern const u8 BattleScript_EffectMeanLook[]; +extern const u8 BattleScript_EffectNightmare[]; +extern const u8 BattleScript_NightmareWorked[]; +extern const u8 BattleScript_EffectMinimize[]; +extern const u8 BattleScript_EffectCurse[]; +extern const u8 BattleScript_82D9892[]; +extern const u8 BattleScript_82D98B8[]; +extern const u8 BattleScript_82D98CC[]; +extern const u8 BattleScript_82D98E0[]; +extern const u8 BattleScript_82D98E5[]; +extern const u8 BattleScript_82D98F6[]; +extern const u8 BattleScript_EffectProtect[]; +extern const u8 BattleScript_EffectSpikes[]; +extern const u8 BattleScript_EffectForesight[]; +extern const u8 BattleScript_EffectPerishSong[]; +extern const u8 BattleScript_PerishSongLoop[]; +extern const u8 BattleScript_PerishSongLoopIncrement[]; +extern const u8 BattleScript_PerishSongNotAffected[]; +extern const u8 BattleScript_EffectSandstorm[]; +extern const u8 BattleScript_EffectRollout[]; +extern const u8 BattleScript_82D99CD[]; +extern const u8 BattleScript_82D99D4[]; +extern const u8 BattleScript_EffectSwagger[]; +extern const u8 BattleScript_82D9A1E[]; +extern const u8 BattleScript_EffectFuryCutter[]; +extern const u8 BattleScript_82D9A43[]; +extern const u8 BattleScript_EffectAttract[]; +extern const u8 BattleScript_EffectReturn[]; +extern const u8 BattleScript_EffectPresent[]; +extern const u8 BattleScript_EffectSafeguard[]; +extern const u8 BattleScript_EffectThawHit[]; +extern const u8 BattleScript_EffectMagnitude[]; +extern const u8 BattleScript_EffectBatonPass[]; +extern const u8 BattleScript_EffectRapidSpin[]; +extern const u8 BattleScript_EffectSonicboom[]; +extern const u8 BattleScript_EffectMorningSun[]; +extern const u8 BattleScript_EffectHiddenPower[]; +extern const u8 BattleScript_EffectRainDance[]; +extern const u8 BattleScript_82D9B41[]; +extern const u8 BattleScript_EffectSunnyDay[]; +extern const u8 BattleScript_EffectDefenseUpHit[]; +extern const u8 BattleScript_EffectAttackUpHit[]; +extern const u8 BattleScript_EffectAllStatsUpHit[]; +extern const u8 BattleScript_EffectBellyDrum[]; +extern const u8 BattleScript_EffectPsychUp[]; +extern const u8 BattleScript_EffectMirrorCoat[]; +extern const u8 BattleScript_EffectSkullBash[]; +extern const u8 BattleScript_82D9C16[]; +extern const u8 BattleScript_EffectTwister[]; +extern const u8 BattleScript_82D9C35[]; +extern const u8 BattleScript_EffectEarthquake[]; +extern const u8 BattleScript_82D9C44[]; +extern const u8 BattleScript_82D9C64[]; +extern const u8 BattleScript_82D9C73[]; +extern const u8 BattleScript_82D9CAC[]; +extern const u8 BattleScript_EffectFutureSight[]; +extern const u8 BattleScript_EffectGust[]; +extern const u8 BattleScript_EffectStomp[]; +extern const u8 BattleScript_EffectSolarbeam[]; +extern const u8 BattleScript_82D9D28[]; +extern const u8 BattleScript_82D9D50[]; +extern const u8 BattleScript_EffectThunder[]; +extern const u8 BattleScript_EffectTeleport[]; +extern const u8 BattleScript_EffectBeatUp[]; +extern const u8 BattleScript_BeatUpLoop[]; +extern const u8 BattleScript_BeatUpAttack[]; +extern const u8 BattleScript_BeatUpEnd[]; +extern const u8 BattleScript_EffectFly[]; +extern const u8 BattleScript_82D9E52[]; +extern const u8 BattleScript_82D9E5D[]; +extern const u8 BattleScript_82D9E68[]; +extern const u8 BattleScript_82D9E6E[]; +extern const u8 BattleScript_82D9E79[]; +extern const u8 BattleScript_82D9EA3[]; +extern const u8 BattleScript_82D9EB0[]; +extern const u8 BattleScript_EffectDefenseCurl[]; +extern const u8 BattleScript_82D9ED3[]; +extern const u8 BattleScript_EffectSoftboiled[]; +extern const u8 BattleScript_PresentHealTarget[]; +extern const u8 BattleScript_AlreadyAtFullHp[]; +extern const u8 BattleScript_EffectFakeOut[]; +extern const u8 BattleScript_ButItFailedAtkStringPpReduce[]; +extern const u8 BattleScript_ButItFailedPpReduce[]; +extern const u8 BattleScript_ButItFailed[]; +extern const u8 BattleScript_NotAffected[]; +extern const u8 BattleScript_EffectUproar[]; +extern const u8 BattleScript_82D9F5A[]; +extern const u8 BattleScript_EffectStockpile[]; +extern const u8 BattleScript_EffectSpitUp[]; +extern const u8 BattleScript_SpitUpFail[]; +extern const u8 BattleScript_82D9FA2[]; +extern const u8 BattleScript_EffectSwallow[]; +extern const u8 BattleScript_SwallowFail[]; +extern const u8 BattleScript_EffectHail[]; +extern const u8 BattleScript_EffectTorment[]; +extern const u8 BattleScript_EffectFlatter[]; +extern const u8 BattleScript_82DA03A[]; +extern const u8 BattleScript_EffectWillOWisp[]; +extern const u8 BattleScript_82DA0A1[]; +extern const u8 BattleScript_82DA0BB[]; +extern const u8 BattleScript_EffectMemento[]; +extern const u8 BattleScript_82DA119[]; +extern const u8 BattleScript_82DA13C[]; +extern const u8 BattleScript_82DA148[]; +extern const u8 BattleScript_82DA153[]; +extern const u8 BattleScript_82DA15A[]; +extern const u8 BattleScript_EffectFacade[]; +extern const u8 BattleScript_FacadeDoubleDmg[]; +extern const u8 BattleScript_EffectFocusPunch[]; +extern const u8 BattleScript_EffectSmellingsalt[]; +extern const u8 BattleScript_82DA1BA[]; +extern const u8 BattleScript_EffectFollowMe[]; +extern const u8 BattleScript_EffectNaturePower[]; +extern const u8 BattleScript_EffectCharge[]; +extern const u8 BattleScript_EffectTaunt[]; +extern const u8 BattleScript_EffectHelpingHand[]; +extern const u8 BattleScript_EffectTrick[]; +extern const u8 BattleScript_EffectRolePlay[]; +extern const u8 BattleScript_EffectWish[]; +extern const u8 BattleScript_EffectAssist[]; +extern const u8 BattleScript_EffectIngrain[]; +extern const u8 BattleScript_EffectSuperpower[]; +extern const u8 BattleScript_EffectMagicCoat[]; +extern const u8 BattleScript_EffectRecycle[]; +extern const u8 BattleScript_EffectRevenge[]; +extern const u8 BattleScript_EffectBrickBreak[]; +extern const u8 BattleScript_82DA306[]; +extern const u8 BattleScript_82DA319[]; +extern const u8 BattleScript_EffectYawn[]; +extern const u8 BattleScript_82DA378[]; +extern const u8 BattleScript_82DA382[]; +extern const u8 BattleScript_EffectKnockOff[]; +extern const u8 BattleScript_EffectEndeavor[]; +extern const u8 BattleScript_EffectEruption[]; +extern const u8 BattleScript_EffectSkillSwap[]; +extern const u8 BattleScript_EffectImprison[]; +extern const u8 BattleScript_EffectRefresh[]; +extern const u8 BattleScript_EffectGrudge[]; +extern const u8 BattleScript_EffectSnatch[]; +extern const u8 BattleScript_EffectLowKick[]; +extern const u8 BattleScript_EffectSecretPower[]; +extern const u8 BattleScript_EffectDoubleEdge[]; +extern const u8 BattleScript_EffectTeeterDance[]; +extern const u8 BattleScript_82DA47B[]; +extern const u8 BattleScript_82DA4C7[]; +extern const u8 BattleScript_82DA4D0[]; +extern const u8 BattleScript_82DA4E5[]; +extern const u8 BattleScript_82DA4F3[]; +extern const u8 BattleScript_82DA501[]; +extern const u8 BattleScript_82DA50F[]; +extern const u8 BattleScript_82DA520[]; +extern const u8 BattleScript_EffectMudSport[]; +extern const u8 BattleScript_EffectPoisonFang[]; +extern const u8 BattleScript_EffectWeatherBall[]; +extern const u8 BattleScript_EffectOverheat[]; +extern const u8 BattleScript_EffectTickle[]; +extern const u8 BattleScript_82DA571[]; +extern const u8 BattleScript_82DA5A7[]; +extern const u8 BattleScript_82DA5CA[]; +extern const u8 BattleScript_82DA5CF[]; +extern const u8 BattleScript_EffectCosmicPower[]; +extern const u8 BattleScript_82DA5F8[]; +extern const u8 BattleScript_82DA623[]; +extern const u8 BattleScript_82DA642[]; +extern const u8 BattleScript_EffectSkyUppercut[]; +extern const u8 BattleScript_EffectBulkUp[]; +extern const u8 BattleScript_82DA66A[]; +extern const u8 BattleScript_82DA695[]; +extern const u8 BattleScript_82DA6B4[]; +extern const u8 BattleScript_EffectCalmMind[]; +extern const u8 BattleScript_82DA6CE[]; +extern const u8 BattleScript_82DA6F9[]; +extern const u8 BattleScript_82DA718[]; +extern const u8 BattleScript_CantRaiseMultipleStats[]; +extern const u8 BattleScript_EffectDragonDance[]; +extern const u8 BattleScript_82DA746[]; +extern const u8 BattleScript_82DA771[]; +extern const u8 BattleScript_82DA790[]; +extern const u8 BattleScript_EffectCamouflage[]; +extern const u8 BattleScript_FaintAttacker[]; +extern const u8 BattleScript_FaintTarget[]; +extern const u8 BattleScript_82DA7C4[]; +extern const u8 BattleScript_82DA7CD[]; +extern const u8 BattleScript_82DA816[]; +extern const u8 BattleScript_82DA8D0[]; +extern const u8 BattleScript_82DA8F5[]; +extern const u8 BattleScript_82DA8F6[]; +extern const u8 BattleScript_82DA8FC[]; +extern const u8 BattleScript_82DA908[]; +extern const u8 BattleScript_82DA92C[]; +extern const u8 BattleScript_LocalTrainerBattleWon[]; +extern const u8 BattleScript_82DA943[]; +extern const u8 BattleScript_82DA946[]; +extern const u8 BattleScript_82DA963[]; +extern const u8 BattleScript_PayDayMoneyAndPickUpItems[]; +extern const u8 BattleScript_LocalBattleLost[]; +extern const u8 BattleScript_82DA9B1[]; +extern const u8 BattleScript_82DA9BD[]; +extern const u8 BattleScript_82DA9BE[]; +extern const u8 BattleScript_82DA9C9[]; +extern const u8 BattleScript_82DAA01[]; +extern const u8 BattleScript_82DAA0A[]; +extern const u8 BattleScript_82DAA0B[]; +extern const u8 BattleScript_82DAA31[]; +extern const u8 BattleScript_LinkBattleWonOrLost[]; +extern const u8 BattleScript_82DAA58[]; +extern const u8 BattleScript_82DAA5C[]; +extern const u8 BattleScript_82DAA83[]; +extern const u8 BattleScript_FrontierTrainerBattleWon[]; +extern const u8 BattleScript_82DAAAB[]; +extern const u8 BattleScript_82DAAAE[]; +extern const u8 BattleScript_82DAACB[]; +extern const u8 BattleScript_82DAADA[]; +extern const u8 BattleScript_SmokeBallEscape[]; +extern const u8 BattleScript_RanAwayUsingMonAbility[]; +extern const u8 BattleScript_GotAwaySafely[]; +extern const u8 BattleScript_WildMonFled[]; +extern const u8 BattleScript_82DAAFE[]; +extern const u8 BattleScript_PrintFailedToRunString[]; +extern const u8 BattleScript_82DAB0B[]; +extern const u8 BattleScript_82DAB11[]; +extern const u8 BattleScript_ActionSwitch[]; +extern const u8 BattleScript_82DAB35[]; +extern const u8 BattleScript_82DAB37[]; +extern const u8 BattleScript_82DAB44[]; +extern const u8 BattleScript_82DAB77[]; +extern const u8 BattleScript_82DABB8[]; +extern const u8 BattleScript_Pausex20[]; +extern const u8 BattleScript_LevelUp[]; +extern const u8 BattleScript_TryLearnMoveLoop[]; +extern const u8 BattleScript_AskToLearnMove[]; +extern const u8 BattleScript_ForgotAndLearnedNewMove[]; +extern const u8 BattleScript_LearnedNewMove[]; +extern const u8 BattleScript_LearnMoveReturn[]; +extern const u8 BattleScript_82DAC2C[]; +extern const u8 BattleScript_82DAC46[]; +extern const u8 BattleScript_82DAC47[]; +extern const u8 BattleScript_82DAC5F[]; +extern const u8 BattleScript_82DACA0[]; +extern const u8 BattleScript_82DACBF[]; +extern const u8 BattleScript_82DACC9[]; +extern const u8 BattleScript_82DACD2[]; +extern const u8 BattleScript_82DACE0[]; +extern const u8 BattleScript_82DACE7[]; +extern const u8 BattleScript_82DACFA[]; +extern const u8 BattleScript_82DAD01[]; +extern const u8 BattleScript_82DAD0B[]; +extern const u8 BattleScript_LeechSeedTurnDrain[]; +extern const u8 BattleScript_82DAD47[]; +extern const u8 BattleScript_82DAD4D[]; +extern const u8 BattleScript_BideStoringEnergy[]; +extern const u8 BattleScript_BideAttack[]; +extern const u8 BattleScript_BideNoEnergyToAttack[]; +extern const u8 BattleScript_82DADD8[]; +extern const u8 BattleScript_82DADF1[]; +extern const u8 BattleScript_MistProtected[]; +extern const u8 BattleScript_RageIsBuilding[]; +extern const u8 BattleScript_MoveUsedIsDisabled[]; +extern const u8 BattleScript_82DAE1F[]; +extern const u8 BattleScript_DisabledNoMore[]; +extern const u8 BattleScript_82DAE2A[]; +extern const u8 BattleScript_82DAE2D[]; +extern const u8 BattleScript_EncoredNoMore[]; +extern const u8 BattleScript_DestinyBondTakesLife[]; +extern const u8 BattleScript_SpikesOnAttacker[]; +extern const u8 BattleScript_82DAE7A[]; +extern const u8 BattleScript_SpikesOnTarget[]; +extern const u8 BattleScript_82DAEB1[]; +extern const u8 BattleScript_SpikesOngBank1[]; +extern const u8 BattleScript_82DAEE8[]; +extern const u8 BattleScript_82DAEFE[]; +extern const u8 BattleScript_82DAF05[]; +extern const u8 BattleScript_82DAF20[]; +extern const u8 BattleScript_AllStatsUp[]; +extern const u8 BattleScript_82DAF54[]; +extern const u8 BattleScript_82DAF72[]; +extern const u8 BattleScript_82DAF86[]; +extern const u8 BattleScript_82DAF9A[]; +extern const u8 BattleScript_82DAFAE[]; +extern const u8 BattleScript_82DAFC2[]; +extern const u8 BattleScript_RapidSpinAway[]; +extern const u8 BattleScript_WrapFree[]; +extern const u8 BattleScript_LeechSeedFree[]; +extern const u8 BattleScript_SpikesFree[]; +extern const u8 BattleScript_82DAFE4[]; +extern const u8 BattleScript_82DB001[]; +extern const u8 BattleScript_82DB008[]; +extern const u8 BattleScript_82DB020[]; +extern const u8 BattleScript_82DB027[]; +extern const u8 BattleScript_82DB03F[]; +extern const u8 BattleScript_82DB058[]; +extern const u8 BattleScript_NoMovesLeft[]; +extern const u8 BattleScript_82DB076[]; +extern const u8 BattleScript_NoPPForMove[]; +extern const u8 BattleScript_82DB089[]; +extern const u8 BattleScript_82DB08D[]; +extern const u8 BattleScript_82DB098[]; +extern const u8 BattleScript_82DB0A0[]; +extern const u8 BattleScript_MoveUsedIsTaunted[]; +extern const u8 BattleScript_82DB0AF[]; +extern const u8 BattleScript_WishComesTrue[]; +extern const u8 BattleScript_82DB0DE[]; +extern const u8 BattleScript_IngrainTurnHeal[]; +extern const u8 BattleScript_82DB109[]; +extern const u8 BattleScript_AtkDefDown[]; +extern const u8 BattleScript_82DB144[]; +extern const u8 BattleScript_82DB167[]; +extern const u8 BattleScript_KnockedOff[]; +extern const u8 BattleScript_MoveUsedIsImprisoned[]; +extern const u8 BattleScript_82DB181[]; +extern const u8 BattleScript_82DB185[]; +extern const u8 BattleScript_GrudgeTakesPp[]; +extern const u8 BattleScript_MagicCoatBounce[]; +extern const u8 BattleScript_SnatchedMove[]; +extern const u8 BattleScript_EnduredMsg[]; +extern const u8 BattleScript_OneHitKOMsg[]; +extern const u8 BattleScript_SAtkDown2[]; +extern const u8 BattleScript_82DB1FE[]; +extern const u8 BattleScript_FocusPunchSetUp[]; +extern const u8 BattleScript_MoveUsedIsAsleep[]; +extern const u8 BattleScript_MoveUsedWokeUp[]; +extern const u8 BattleScript_82DB234[]; +extern const u8 BattleScript_PoisonTurnDmg[]; +extern const u8 BattleScript_82DB243[]; +extern const u8 BattleScript_82DB245[]; +extern const u8 BattleScript_82DB25E[]; +extern const u8 BattleScript_BurnTurnDmg[]; +extern const u8 BattleScript_MoveUsedIsFrozen[]; +extern const u8 BattleScript_MoveUsedUnfroze[]; +extern const u8 BattleScript_DefrostedViaFireMove[]; +extern const u8 BattleScript_MoveUsedIsParalyzed[]; +extern const u8 BattleScript_MoveUsedFlinched[]; +extern const u8 BattleScript_82DB2A6[]; +extern const u8 BattleScript_ThrashConfuses[]; +extern const u8 BattleScript_MoveUsedIsConfused[]; +extern const u8 BattleScript_82DB2D4[]; +extern const u8 BattleScript_82DB2FF[]; +extern const u8 BattleScript_MoveUsedIsConfusedNoMore[]; +extern const u8 BattleScript_PrintPayDayMoneyString[]; +extern const u8 BattleScript_WrapTurnDmg[]; +extern const u8 BattleScript_WrapEnds[]; +extern const u8 BattleScript_MoveUsedIsInLove[]; +extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[]; +extern const u8 BattleScript_NightmareTurnDmg[]; +extern const u8 BattleScript_CurseTurnDmg[]; +extern const u8 BattleScript_TargetPRLZHeal[]; +extern const u8 BattleScript_MoveEffectSleep[]; +extern const u8 BattleScript_82DB374[]; +extern const u8 BattleScript_YawnMakesAsleep[]; +extern const u8 BattleScript_MoveEffectPoison[]; +extern const u8 BattleScript_MoveEffectBurn[]; +extern const u8 BattleScript_MoveEffectFreeze[]; +extern const u8 BattleScript_MoveEffectParalysis[]; +extern const u8 BattleScript_MoveEffectUproar[]; +extern const u8 BattleScript_MoveEffectToxic[]; +extern const u8 BattleScript_MoveEffectPayDay[]; +extern const u8 BattleScript_MoveEffectWrap[]; +extern const u8 BattleScript_MoveEffectConfusion[]; +extern const u8 BattleScript_MoveEffectRecoil33[]; +extern const u8 BattleScript_82DB407[]; +extern const u8 BattleScript_82DB421[]; +extern const u8 BattleScript_ItemSteal[]; +extern const u8 BattleScript_DrizzleActivates[]; +extern const u8 BattleScript_SpeedBoostActivates[]; +extern const u8 BattleScript_TraceActivates[]; +extern const u8 BattleScript_RainDishActivates[]; +extern const u8 BattleScript_SandstreamActivates[]; +extern const u8 BattleScript_ShedSkinActivates[]; +extern const u8 BattleScript_82DB48D[]; +extern const u8 BattleScript_82DB493[]; +extern const u8 BattleScript_CastformChange[]; +extern const u8 BattleScript_82DB4AF[]; +extern const u8 BattleScript_82DB4B8[]; +extern const u8 BattleScript_82DB4BE[]; +extern const u8 BattleScript_82DB4C1[]; +extern const u8 BattleScript_82DB4CD[]; +extern const u8 BattleScript_82DB510[]; +extern const u8 BattleScript_82DB51B[]; +extern const u8 BattleScript_82DB51C[]; +extern const u8 BattleScript_DroughtActivates[]; +extern const u8 BattleScript_TookAttack[]; +extern const u8 BattleScript_SturdyPreventsOHKO[]; +extern const u8 BattleScript_DampStopsExplosion[]; +extern const u8 BattleScript_MoveHPDrain_PPLoss[]; +extern const u8 BattleScript_MoveHPDrain[]; +extern const u8 BattleScript_82DB591[]; +extern const u8 BattleScript_82DB592[]; +extern const u8 BattleScript_FlashFireBoost_PPLoss[]; +extern const u8 BattleScript_FlashFireBoost[]; +extern const u8 BattleScript_82DB5B9[]; +extern const u8 BattleScript_AbilityNoStatLoss[]; +extern const u8 BattleScript_BRNPrevention[]; +extern const u8 BattleScript_PRLZPrevention[]; +extern const u8 BattleScript_PSNPrevention[]; +extern const u8 BattleScript_ObliviousPreventsAttraction[]; +extern const u8 BattleScript_FlinchPrevention[]; +extern const u8 BattleScript_82DB611[]; +extern const u8 BattleScript_SoundproofProtected[]; +extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; +extern const u8 BattleScript_StickyHoldActivates[]; +extern const u8 BattleScript_ColorChangeActivates[]; +extern const u8 BattleScript_RoughSkinActivates[]; +extern const u8 BattleScript_CuteCharmActivates[]; +extern const u8 BattleScript_ApplySecondaryEffect[]; +extern const u8 BattleScript_SynchronizeActivates[]; +extern const u8 BattleScript_NoItemSteal[]; +extern const u8 BattleScript_82DB68C[]; +extern const u8 BattleScript_82DB695[]; +extern const u8 BattleScript_82DB6A5[]; +extern const u8 BattleScript_MoveUsedLoafingAround[]; +extern const u8 BattleScript_82DB6C7[]; +extern const u8 BattleScript_82DB6D9[]; +extern const u8 BattleScript_82DB6F0[]; +extern const u8 BattleScript_SubstituteFade[]; +extern const u8 BattleScript_BerryCurePrlzEnd2[]; +extern const u8 BattleScript_BerryCureParRet[]; +extern const u8 BattleScript_BerryCurePsnEnd2[]; +extern const u8 BattleScript_BerryCurePsnRet[]; +extern const u8 BattleScript_BerryCureBrnEnd2[]; +extern const u8 BattleScript_BerryCureBrnRet[]; +extern const u8 BattleScript_BerryCureFrzEnd2[]; +extern const u8 BattleScript_BerryCureFrzRet[]; +extern const u8 BattleScript_BerryCureSlpEnd2[]; +extern const u8 BattleScript_BerryCureSlpRet[]; +extern const u8 BattleScript_BerryCureConfusionEnd2[]; +extern const u8 BattleScript_BerryCureConfusionRet[]; +extern const u8 BattleScript_BerryCureChosenStatusEnd2[]; +extern const u8 BattleScript_BerryCureChosenStatusRet[]; +extern const u8 BattleScript_WhiteHerbEnd2[]; +extern const u8 BattleScript_WhiteHerbRet[]; +extern const u8 BattleScript_ItemHealHP_RemoveItem[]; +extern const u8 BattleScript_BerryPPHealEnd2[]; +extern const u8 BattleScript_ItemHealHP_End2[]; +extern const u8 BattleScript_ItemHealHP_Ret[]; +extern const u8 BattleScript_82DB812[]; +extern const u8 BattleScript_HangedOnMsg[]; +extern const u8 BattleScript_BerryConfuseHealEnd2[]; +extern const u8 BattleScript_BerryStatRaiseEnd2[]; +extern const u8 BattleScript_82DB85B[]; +extern const u8 BattleScript_BerryFocusEnergyEnd2[]; +extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[]; +extern const u8 BattleScript_82DB87D[]; +extern const u8 BattleScript_82DB881[]; +extern const u8 BattleScript_82DB887[]; +extern const u8 BattleScript_82DB89D[]; +extern const u8 BattleScript_82DB8BE[]; +extern const u8 BattleScript_82DB8E0[]; +extern const u8 BattleScript_82DB8F3[]; +extern const u8 BattleScript_82DB973[]; +extern const u8 BattleScript_82DB992[]; +extern const u8 BattleScript_82DB9BA[]; +extern const u8 BattleScript_82DB9C1[]; +extern const u8 BattleScript_82DB9C8[]; +extern const u8 BattleScript_82DBD68[]; +extern const u8 BattleScript_82DBD7A[]; +extern const u8 BattleScript_82DBD7E[]; +extern const u8 BattleScript_SuccessBallThrow[]; +extern const u8 BattleScript_82DBD92[]; +extern const u8 BattleScript_82DBDA5[]; +extern const u8 BattleScript_82DBDC2[]; +extern const u8 BattleScript_82DBDC3[]; +extern const u8 BattleScript_WallyBallThrow[]; +extern const u8 BattleScript_ShakeBallThrow[]; +extern const u8 BattleScript_82DBE01[]; +extern const u8 BattleScript_TrainerBallBlock[]; +extern const u8 BattleScript_82DBE12[]; +extern const u8 BattleScript_82DBE1C[]; +extern const u8 BattleScript_82DBE4B[]; +extern const u8 BattleScript_82DBE6F[]; +extern const u8 BattleScript_82DBE91[]; +extern const u8 BattleScript_RunByUsingItem[]; +extern const u8 BattleScript_82DBEBD[]; +extern const u8 BattleScript_82DBEC4[]; +extern const u8 BattleScript_82DBECD[]; +extern const u8 BattleScript_82DBEE3[]; + +#endif // GUARD_BATTLE_SCRIPTS_H diff --git a/src/battle_2.c b/src/battle_2.c index 2be6f9d77..d7f051272 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -6,6 +6,7 @@ #include "gpu_regs.h" #include "unknown_task.h" #include "battle_setup.h" +#include "battle_scripts.h" #include "pokemon.h" #include "palette.h" #include "task.h" @@ -178,31 +179,6 @@ extern const u8 gText_Ice[]; extern const u8 gText_Confusion[]; extern const u8 gText_Love[]; -// battlescripts -extern const u8 gUnknown_082DB8BE[]; -extern const u8 gUnknown_082DB881[]; -extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[]; -extern const u8 gUnknown_082DAB11[]; -extern const u8 gUnknown_082DB9BA[]; -extern const u8 gUnknown_082DAAFE[]; -extern const u8 gUnknown_082DAB0B[]; -extern const u8 BattleScript_FocusPunchSetUp[]; -extern const u8 BattleScript_LinkBattleWonOrLost[]; -extern const u8 BattleScript_FrontierTrainerBattleWon[]; -extern const u8 BattleScript_LocalTrainerBattleWon[]; -extern const u8 BattleScript_PayDayMoneyAndPickUpItems[]; -extern const u8 BattleScript_LocalBattleLost[]; -extern const u8 gUnknown_082DB9C8[]; -extern const u8 gUnknown_082DAA0B[]; -extern const u8 gUnknown_082DB9C1[]; -extern const u8 BattleScript_RanAwayUsingMonAbility[]; -extern const u8 BattleScript_SmokeBallEscape[]; -extern const u8 BattleScript_GotAwaySafely[]; -extern const u8 BattleScript_WildMonFled[]; -extern const u8 BattleScript_MoveUsedLoafingAround[]; -extern const u8 BattleScript_ActionSwitch[]; -extern const u8 BattleScript_PrintFailedToRunString[]; - // functions extern void dp12_8087EA4(void); extern void sub_80356D0(void); @@ -3704,7 +3680,7 @@ static void TryDoEventsBeforeFirstTurn(void) if (gBattleTypeFlags & BATTLE_TYPE_ARENA) { StopCryAndClearCrySongs(); - BattleScriptExecute(gUnknown_082DB8BE); + BattleScriptExecute(BattleScript_82DB8BE); } } @@ -3792,9 +3768,9 @@ void BattleTurnPassed(void) gRandomTurnNumber = Random(); if (gBattleTypeFlags & BATTLE_TYPE_PALACE) - BattleScriptExecute(gUnknown_082DB881); + BattleScriptExecute(BattleScript_82DB881); else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0) - BattleScriptExecute(gUnknown_082DB8BE); + BattleScriptExecute(BattleScript_82DB8BE); } u8 IsRunningFromBattleImpossible(void) @@ -4052,7 +4028,7 @@ static void HandleTurnActionSelectionState(void) case ACTION_SAFARI_ZONE_BALL: if (IsPlayerPartyAndPokemonStorageFull()) { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DAB11; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DAB11; gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4107,7 +4083,7 @@ static void HandleTurnActionSelectionState(void) && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB9BA; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB9BA; gBattleCommunication[gActiveBank] = 8; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4117,13 +4093,13 @@ static void HandleTurnActionSelectionState(void) && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - BattleScriptExecute(gUnknown_082DAAFE); + BattleScriptExecute(BattleScript_82DAAFE); gBattleCommunication[gActiveBank] = 1; } else if (IsRunningFromBattleImpossible() != 0 && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DAB0B; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DAB0B; gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4811,13 +4787,13 @@ static void HandleEndTurn_BattleLost(void) { if (gBattleOutcome & BATTLE_OUTCOME_BIT_x80) { - gBattlescriptCurrInstr = gUnknown_082DB9C8; + gBattlescriptCurrInstr = BattleScript_82DB9C8; gBattleOutcome &= ~(BATTLE_OUTCOME_BIT_x80); gSaveBlock2Ptr->field_CA9_b = 1; } else { - gBattlescriptCurrInstr = gUnknown_082DAA0B; + gBattlescriptCurrInstr = BattleScript_82DAA0B; gBattleOutcome &= ~(BATTLE_OUTCOME_BIT_x80); } } @@ -4843,13 +4819,13 @@ static void HandleEndTurn_RanFromBattle(void) if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER && gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - gBattlescriptCurrInstr = gUnknown_082DB9C1; + gBattlescriptCurrInstr = BattleScript_82DB9C1; gBattleOutcome = BATTLE_FORFEITED; gSaveBlock2Ptr->field_CA9_b = 1; } else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) { - gBattlescriptCurrInstr = gUnknown_082DB9C1; + gBattlescriptCurrInstr = BattleScript_82DB9C1; gBattleOutcome = BATTLE_FORFEITED; } else diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 423d34d45..5758aba87 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -82,7 +82,7 @@ static void LinkOpponentHandleBallThrowAnim(void); static void LinkOpponentHandlePause(void); static void LinkOpponentHandleMoveAnimation(void); static void LinkOpponentHandlePrintString(void); -static void LinkOpponentHandlePrintStringPlayerOnly(void); +static void LinkOpponentHandlePrintSelectionString(void); static void LinkOpponentHandleChooseAction(void); static void LinkOpponentHandleUnknownYesNoBox(void); static void LinkOpponentHandleChooseMove(void); @@ -108,7 +108,7 @@ static void LinkOpponentHandleCmd39(void); static void LinkOpponentHandleCmd40(void); static void LinkOpponentHandleHitAnimation(void); static void LinkOpponentHandleCmd42(void); -static void LinkOpponentHandleEffectivenessSound(void); +static void LinkOpponentHandlePlaySE(void); static void LinkOpponentHandlePlayFanfareOrBGM(void); static void LinkOpponentHandleFaintingCry(void); static void LinkOpponentHandleIntroSlide(void); @@ -154,7 +154,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkOpponentHandlePause, LinkOpponentHandleMoveAnimation, LinkOpponentHandlePrintString, - LinkOpponentHandlePrintStringPlayerOnly, + LinkOpponentHandlePrintSelectionString, LinkOpponentHandleChooseAction, LinkOpponentHandleUnknownYesNoBox, LinkOpponentHandleChooseMove, @@ -180,7 +180,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkOpponentHandleCmd40, LinkOpponentHandleHitAnimation, LinkOpponentHandleCmd42, - LinkOpponentHandleEffectivenessSound, + LinkOpponentHandlePlaySE, LinkOpponentHandlePlayFanfareOrBGM, LinkOpponentHandleFaintingCry, LinkOpponentHandleIntroSlide, @@ -1505,7 +1505,7 @@ static void LinkOpponentHandlePrintString(void) sub_817C95C(*stringId); } -static void LinkOpponentHandlePrintStringPlayerOnly(void) +static void LinkOpponentHandlePrintSelectionString(void) { LinkOpponentBufferExecCompleted(); } @@ -1681,7 +1681,7 @@ static void LinkOpponentHandleCmd42(void) LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleEffectivenessSound(void) +static void LinkOpponentHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index e3bee98d9..1af6da1cd 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -78,7 +78,7 @@ static void LinkPartnerHandleBallThrowAnim(void); static void LinkPartnerHandlePause(void); static void LinkPartnerHandleMoveAnimation(void); static void LinkPartnerHandlePrintString(void); -static void LinkPartnerHandlePrintStringPlayerOnly(void); +static void LinkPartnerHandlePrintSelectionString(void); static void LinkPartnerHandleChooseAction(void); static void LinkPartnerHandleUnknownYesNoBox(void); static void LinkPartnerHandleChooseMove(void); @@ -104,7 +104,7 @@ static void LinkPartnerHandleCmd39(void); static void LinkPartnerHandleCmd40(void); static void LinkPartnerHandleHitAnimation(void); static void LinkPartnerHandleCmd42(void); -static void LinkPartnerHandleEffectivenessSound(void); +static void LinkPartnerHandlePlaySE(void); static void LinkPartnerHandlePlayFanfareOrBGM(void); static void LinkPartnerHandleFaintingCry(void); static void LinkPartnerHandleIntroSlide(void); @@ -149,7 +149,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkPartnerHandlePause, LinkPartnerHandleMoveAnimation, LinkPartnerHandlePrintString, - LinkPartnerHandlePrintStringPlayerOnly, + LinkPartnerHandlePrintSelectionString, LinkPartnerHandleChooseAction, LinkPartnerHandleUnknownYesNoBox, LinkPartnerHandleChooseMove, @@ -175,7 +175,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkPartnerHandleCmd40, LinkPartnerHandleHitAnimation, LinkPartnerHandleCmd42, - LinkPartnerHandleEffectivenessSound, + LinkPartnerHandlePlaySE, LinkPartnerHandlePlayFanfareOrBGM, LinkPartnerHandleFaintingCry, LinkPartnerHandleIntroSlide, @@ -1327,7 +1327,7 @@ static void LinkPartnerHandlePrintString(void) sub_817C95C(*stringId); } -static void LinkPartnerHandlePrintStringPlayerOnly(void) +static void LinkPartnerHandlePrintSelectionString(void) { LinkPartnerBufferExecCompleted(); } @@ -1503,7 +1503,7 @@ static void LinkPartnerHandleCmd42(void) LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleEffectivenessSound(void) +static void LinkPartnerHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 0aac4cbe4..d69de8c29 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -83,7 +83,7 @@ static void OpponentHandleBallThrow(void); static void OpponentHandlePause(void); static void OpponentHandleMoveAnimation(void); static void OpponentHandlePrintString(void); -static void OpponentHandlePrintStringPlayerOnly(void); +static void OpponentHandlePrintSelectionString(void); static void OpponentHandleChooseAction(void); static void OpponentHandleUnknownYesNoBox(void); static void OpponentHandleChooseMove(void); @@ -109,7 +109,7 @@ static void OpponentHandleCmd39(void); static void OpponentHandleCmd40(void); static void OpponentHandleHitAnimation(void); static void OpponentHandleCmd42(void); -static void OpponentHandleEffectivenessSound(void); +static void OpponentHandlePlaySE(void); static void OpponentHandlePlayFanfareOrBGM(void); static void OpponentHandleFaintingCry(void); static void OpponentHandleIntroSlide(void); @@ -155,7 +155,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = OpponentHandlePause, OpponentHandleMoveAnimation, OpponentHandlePrintString, - OpponentHandlePrintStringPlayerOnly, + OpponentHandlePrintSelectionString, OpponentHandleChooseAction, OpponentHandleUnknownYesNoBox, OpponentHandleChooseMove, @@ -181,7 +181,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = OpponentHandleCmd40, OpponentHandleHitAnimation, OpponentHandleCmd42, - OpponentHandleEffectivenessSound, + OpponentHandlePlaySE, OpponentHandlePlayFanfareOrBGM, OpponentHandleFaintingCry, OpponentHandleIntroSlide, @@ -1537,7 +1537,7 @@ static void OpponentHandlePrintString(void) sub_81A57E4(gActiveBank, *stringId); } -static void OpponentHandlePrintStringPlayerOnly(void) +static void OpponentHandlePrintSelectionString(void) { OpponentBufferExecCompleted(); } @@ -1826,7 +1826,7 @@ static void OpponentHandleCmd42(void) OpponentBufferExecCompleted(); } -static void OpponentHandleEffectivenessSound(void) +static void OpponentHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 16c62c53b..7ea2abccf 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -102,7 +102,7 @@ static void PlayerHandleBallThrowAnim(void); static void PlayerHandlePause(void); static void PlayerHandleMoveAnimation(void); static void PlayerHandlePrintString(void); -static void PlayerHandlePrintStringPlayerOnly(void); +static void PlayerHandlePrintSelectionString(void); static void PlayerHandleChooseAction(void); static void PlayerHandleUnknownYesNoBox(void); static void PlayerHandleChooseMove(void); @@ -128,7 +128,7 @@ static void PlayerHandleCmd39(void); static void PlayerHandleCmd40(void); static void PlayerHandleHitAnimation(void); static void PlayerHandleCmd42(void); -static void PlayerHandleEffectivenessSound(void); +static void PlayerHandlePlaySE(void); static void PlayerHandlePlayFanfareOrBGM(void); static void PlayerHandleFaintingCry(void); static void PlayerHandleIntroSlide(void); @@ -189,7 +189,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerHandlePause, PlayerHandleMoveAnimation, PlayerHandlePrintString, - PlayerHandlePrintStringPlayerOnly, + PlayerHandlePrintSelectionString, PlayerHandleChooseAction, PlayerHandleUnknownYesNoBox, PlayerHandleChooseMove, @@ -215,7 +215,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerHandleCmd40, PlayerHandleHitAnimation, PlayerHandleCmd42, - PlayerHandleEffectivenessSound, + PlayerHandlePlaySE, PlayerHandlePlayFanfareOrBGM, PlayerHandleFaintingCry, PlayerHandleIntroSlide, @@ -2576,7 +2576,7 @@ static void PlayerHandlePrintString(void) sub_81A57E4(gActiveBank, *stringId); } -static void PlayerHandlePrintStringPlayerOnly(void) +static void PlayerHandlePrintSelectionString(void) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) PlayerHandlePrintString(); @@ -2913,7 +2913,7 @@ static void PlayerHandleCmd42(void) PlayerBufferExecCompleted(); } -static void PlayerHandleEffectivenessSound(void) +static void PlayerHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 0cd34442a..4cca5c002 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -78,7 +78,7 @@ static void PlayerPartnerHandleBallThrowAnim(void); static void PlayerPartnerHandlePause(void); static void PlayerPartnerHandleMoveAnimation(void); static void PlayerPartnerHandlePrintString(void); -static void PlayerPartnerHandlePrintStringPlayerOnly(void); +static void PlayerPartnerHandlePrintSelectionString(void); static void PlayerPartnerHandleChooseAction(void); static void PlayerPartnerHandleUnknownYesNoBox(void); static void PlayerPartnerHandleChooseMove(void); @@ -104,7 +104,7 @@ static void PlayerPartnerHandleCmd39(void); static void PlayerPartnerHandleCmd40(void); static void PlayerPartnerHandleHitAnimation(void); static void PlayerPartnerHandleCmd42(void); -static void PlayerPartnerHandleEffectivenessSound(void); +static void PlayerPartnerHandlePlaySE(void); static void PlayerPartnerHandlePlayFanfareOrBGM(void); static void PlayerPartnerHandleFaintingCry(void); static void PlayerPartnerHandleIntroSlide(void); @@ -155,7 +155,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerPartnerHandlePause, PlayerPartnerHandleMoveAnimation, PlayerPartnerHandlePrintString, - PlayerPartnerHandlePrintStringPlayerOnly, + PlayerPartnerHandlePrintSelectionString, PlayerPartnerHandleChooseAction, PlayerPartnerHandleUnknownYesNoBox, PlayerPartnerHandleChooseMove, @@ -181,7 +181,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerPartnerHandleCmd40, PlayerPartnerHandleHitAnimation, PlayerPartnerHandleCmd42, - PlayerPartnerHandleEffectivenessSound, + PlayerPartnerHandlePlaySE, PlayerPartnerHandlePlayFanfareOrBGM, PlayerPartnerHandleFaintingCry, PlayerPartnerHandleIntroSlide, @@ -1519,7 +1519,7 @@ static void PlayerPartnerHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter2; } -static void PlayerPartnerHandlePrintStringPlayerOnly(void) +static void PlayerPartnerHandlePrintSelectionString(void) { PlayerPartnerBufferExecCompleted(); } @@ -1756,7 +1756,7 @@ static void PlayerPartnerHandleCmd42(void) PlayerPartnerBufferExecCompleted(); } -static void PlayerPartnerHandleEffectivenessSound(void) +static void PlayerPartnerHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index b55d644ac..027230be4 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -81,7 +81,7 @@ static void RecordedOpponentHandleBallThrowAnim(void); static void RecordedOpponentHandlePause(void); static void RecordedOpponentHandleMoveAnimation(void); static void RecordedOpponentHandlePrintString(void); -static void RecordedOpponentHandlePrintStringPlayerOnly(void); +static void RecordedOpponentHandlePrintSelectionString(void); static void RecordedOpponentHandleChooseAction(void); static void RecordedOpponentHandleUnknownYesNoBox(void); static void RecordedOpponentHandleChooseMove(void); @@ -107,7 +107,7 @@ static void RecordedOpponentHandleCmd39(void); static void RecordedOpponentHandleCmd40(void); static void RecordedOpponentHandleHitAnimation(void); static void RecordedOpponentHandleCmd42(void); -static void RecordedOpponentHandleEffectivenessSound(void); +static void RecordedOpponentHandlePlaySE(void); static void RecordedOpponentHandlePlayFanfareOrBGM(void); static void RecordedOpponentHandleFaintingCry(void); static void RecordedOpponentHandleIntroSlide(void); @@ -153,7 +153,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void RecordedOpponentHandlePause, RecordedOpponentHandleMoveAnimation, RecordedOpponentHandlePrintString, - RecordedOpponentHandlePrintStringPlayerOnly, + RecordedOpponentHandlePrintSelectionString, RecordedOpponentHandleChooseAction, RecordedOpponentHandleUnknownYesNoBox, RecordedOpponentHandleChooseMove, @@ -179,7 +179,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void RecordedOpponentHandleCmd40, RecordedOpponentHandleHitAnimation, RecordedOpponentHandleCmd42, - RecordedOpponentHandleEffectivenessSound, + RecordedOpponentHandlePlaySE, RecordedOpponentHandlePlayFanfareOrBGM, RecordedOpponentHandleFaintingCry, RecordedOpponentHandleIntroSlide, @@ -1435,7 +1435,7 @@ static void RecordedOpponentHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void RecordedOpponentHandlePrintStringPlayerOnly(void) +static void RecordedOpponentHandlePrintSelectionString(void) { RecordedOpponentBufferExecCompleted(); } @@ -1625,7 +1625,7 @@ static void RecordedOpponentHandleCmd42(void) RecordedOpponentBufferExecCompleted(); } -static void RecordedOpponentHandleEffectivenessSound(void) +static void RecordedOpponentHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 78e7497a5..f5f3ab3c0 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -81,7 +81,7 @@ static void RecordedPlayerHandleBallThrowAnim(void); static void RecordedPlayerHandlePause(void); static void RecordedPlayerHandleMoveAnimation(void); static void RecordedPlayerHandlePrintString(void); -static void RecordedPlayerHandlePrintStringPlayerOnly(void); +static void RecordedPlayerHandlePrintSelectionString(void); static void RecordedPlayerHandleChooseAction(void); static void RecordedPlayerHandleUnknownYesNoBox(void); static void RecordedPlayerHandleChooseMove(void); @@ -107,7 +107,7 @@ static void RecordedPlayerHandleCmd39(void); static void RecordedPlayerHandleCmd40(void); static void RecordedPlayerHandleHitAnimation(void); static void RecordedPlayerHandleCmd42(void); -static void RecordedPlayerHandleEffectivenessSound(void); +static void RecordedPlayerHandlePlaySE(void); static void RecordedPlayerHandlePlayFanfareOrBGM(void); static void RecordedPlayerHandleFaintingCry(void); static void RecordedPlayerHandleIntroSlide(void); @@ -152,7 +152,7 @@ static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) RecordedPlayerHandlePause, RecordedPlayerHandleMoveAnimation, RecordedPlayerHandlePrintString, - RecordedPlayerHandlePrintStringPlayerOnly, + RecordedPlayerHandlePrintSelectionString, RecordedPlayerHandleChooseAction, RecordedPlayerHandleUnknownYesNoBox, RecordedPlayerHandleChooseMove, @@ -178,7 +178,7 @@ static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) RecordedPlayerHandleCmd40, RecordedPlayerHandleHitAnimation, RecordedPlayerHandleCmd42, - RecordedPlayerHandleEffectivenessSound, + RecordedPlayerHandlePlaySE, RecordedPlayerHandlePlayFanfareOrBGM, RecordedPlayerHandleFaintingCry, RecordedPlayerHandleIntroSlide, @@ -1437,7 +1437,7 @@ static void RecordedPlayerHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void RecordedPlayerHandlePrintStringPlayerOnly(void) +static void RecordedPlayerHandlePrintSelectionString(void) { RecordedPlayerBufferExecCompleted(); } @@ -1644,7 +1644,7 @@ static void RecordedPlayerHandleCmd42(void) RecordedPlayerBufferExecCompleted(); } -static void RecordedPlayerHandleEffectivenessSound(void) +static void RecordedPlayerHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index a4f35bed1..635f5fef1 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -66,7 +66,7 @@ static void SafariHandleBallThrowAnim(void); static void SafariHandlePause(void); static void SafariHandleMoveAnimation(void); static void SafariHandlePrintString(void); -static void SafariHandlePrintStringPlayerOnly(void); +static void SafariHandlePrintSelectionString(void); static void SafariHandleChooseAction(void); static void SafariHandleUnknownYesNoBox(void); static void SafariHandleChooseMove(void); @@ -92,7 +92,7 @@ static void SafariHandleCmd39(void); static void SafariHandleCmd40(void); static void SafariHandleHitAnimation(void); static void SafariHandleCmd42(void); -static void SafariHandleEffectivenessSound(void); +static void SafariHandlePlaySE(void); static void SafariHandlePlayFanfareOrBGM(void); static void SafariHandleFaintingCry(void); static void SafariHandleIntroSlide(void); @@ -130,7 +130,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) = SafariHandlePause, SafariHandleMoveAnimation, SafariHandlePrintString, - SafariHandlePrintStringPlayerOnly, + SafariHandlePrintSelectionString, SafariHandleChooseAction, SafariHandleUnknownYesNoBox, SafariHandleChooseMove, @@ -156,7 +156,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) = SafariHandleCmd40, SafariHandleHitAnimation, SafariHandleCmd42, - SafariHandleEffectivenessSound, + SafariHandlePlaySE, SafariHandlePlayFanfareOrBGM, SafariHandleFaintingCry, SafariHandleIntroSlide, @@ -449,7 +449,7 @@ static void SafariHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void SafariHandlePrintStringPlayerOnly(void) +static void SafariHandlePrintSelectionString(void) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) SafariHandlePrintString(); @@ -607,7 +607,7 @@ static void SafariHandleCmd42(void) SafariBufferExecCompleted(); } -static void SafariHandleEffectivenessSound(void) +static void SafariHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 4dac1d264..442e32cca 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -86,7 +86,7 @@ static void WallyHandleBallThrowAnim(void); static void WallyHandlePause(void); static void WallyHandleMoveAnimation(void); static void WallyHandlePrintString(void); -static void WallyHandlePrintStringPlayerOnly(void); +static void WallyHandlePrintSelectionString(void); static void WallyHandleChooseAction(void); static void WallyHandleUnknownYesNoBox(void); static void WallyHandleChooseMove(void); @@ -112,7 +112,7 @@ static void WallyHandleCmd39(void); static void WallyHandleCmd40(void); static void WallyHandleHitAnimation(void); static void WallyHandleCmd42(void); -static void WallyHandleEffectivenessSound(void); +static void WallyHandlePlaySE(void); static void WallyHandlePlayFanfareOrBGM(void); static void WallyHandleFaintingCry(void); static void WallyHandleIntroSlide(void); @@ -155,7 +155,7 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) = WallyHandlePause, WallyHandleMoveAnimation, WallyHandlePrintString, - WallyHandlePrintStringPlayerOnly, + WallyHandlePrintSelectionString, WallyHandleChooseAction, WallyHandleUnknownYesNoBox, WallyHandleChooseMove, @@ -181,7 +181,7 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) = WallyHandleCmd40, WallyHandleHitAnimation, WallyHandleCmd42, - WallyHandleEffectivenessSound, + WallyHandlePlaySE, WallyHandlePlayFanfareOrBGM, WallyHandleFaintingCry, WallyHandleIntroSlide, @@ -1211,7 +1211,7 @@ static void WallyHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void WallyHandlePrintStringPlayerOnly(void) +static void WallyHandlePrintSelectionString(void) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) WallyHandlePrintString(); @@ -1419,7 +1419,7 @@ static void WallyHandleCmd42(void) WallyBufferExecCompleted(); } -static void WallyHandleEffectivenessSound(void) +static void WallyHandlePlaySE(void) { PlaySE(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); WallyBufferExecCompleted(); diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 858540a9f..ed48ec5d9 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1140,10 +1140,10 @@ void EmitPrintString(u8 bufferId, u16 stringID) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); } -void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringID) +void EmitPrintSelectionString(u8 bufferId, u16 stringID) { s32 i; - struct StringInfoBattle* stringInfo; + struct StringInfoBattle *stringInfo; gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY; gBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY; @@ -1427,7 +1427,7 @@ void EmitCmd42(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitEffectivenessSound(u8 bufferId, u16 songId) +void EmitPlaySE(u8 bufferId, u16 songId) { gBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND; gBattleBuffersTransferData[1] = songId; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 6409ff56e..e0a61a612 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3,6 +3,7 @@ #include "battle_move_effects.h" #include "battle_message.h" #include "battle_ai_script_commands.h" +#include "battle_scripts.h" #include "moves.h" #include "abilities.h" #include "item.h" @@ -146,88 +147,6 @@ extern u8 sub_813B21C(void); extern u16 get_unknown_box_id(void); extern void sub_80356D0(void); -// BattleScripts -extern const u8 BattleScript_MoveEnd[]; -extern const u8 BattleScript_NoPPForMove[]; -extern const u8 BattleScript_MagicCoatBounce[]; -extern const u8 BattleScript_TookAttack[]; -extern const u8 BattleScript_SnatchedMove[]; -extern const u8 BattleScript_Pausex20[]; -extern const u8 BattleScript_SubstituteFade[]; -extern const u8 BattleScript_HangedOnMsg[]; -extern const u8 BattleScript_OneHitKOMsg[]; -extern const u8 BattleScript_EnduredMsg[]; -extern const u8 BattleScript_PSNPrevention[]; -extern const u8 BattleScript_BRNPrevention[]; -extern const u8 BattleScript_PRLZPrevention[]; -extern const u8 BattleScript_FlinchPrevention[]; -extern const u8 BattleScript_StatUp[]; -extern const u8 BattleScript_StatDown[]; -extern const u8 BattleScript_NoItemSteal[]; -extern const u8 BattleScript_ItemSteal[]; -extern const u8 BattleScript_RapidSpinAway[]; -extern const u8 BattleScript_TargetPRLZHeal[]; -extern const u8 BattleScript_KnockedOff[]; -extern const u8 BattleScript_StickyHoldActivates[]; -extern const u8 BattleScript_AllStatsUp[]; -extern const u8 BattleScript_AtkDefDown[]; -extern const u8 BattleScript_SAtkDown2[]; -extern const u8 BattleScript_LevelUp[]; -extern const u8 BattleScript_WrapFree[]; -extern const u8 BattleScript_LeechSeedFree[]; -extern const u8 BattleScript_SpikesFree[]; -extern const u8 BattleScript_ButItFailed[]; -extern const u8 BattleScript_ObliviousPreventsAttraction[]; -extern const u8 BattleScript_MistProtected[]; -extern const u8 BattleScript_AbilityNoStatLoss[]; -extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; -extern const u8 BattleScript_TrainerBallBlock[]; -extern const u8 BattleScript_WallyBallThrow[]; -extern const u8 BattleScript_SuccessBallThrow[]; -extern const u8 BattleScript_ShakeBallThrow[]; -extern const u8 BattleScript_FaintAttacker[]; -extern const u8 BattleScript_FaintTarget[]; -extern const u8 BattleScript_DestinyBondTakesLife[]; -extern const u8 BattleScript_GrudgeTakesPp[]; -extern const u8 BattleScript_RageIsBuilding[]; -extern const u8 BattleScript_DefrostedViaFireMove[]; -extern const u8 gUnknown_082DB87D[]; -extern const u8 gUnknown_082DAE90[]; -extern const u8 gUnknown_082DAE59[]; -extern const u8 gUnknown_082DAEC7[]; -extern const u8 BattleScript_MoveEffectSleep[]; -extern const u8 BattleScript_MoveEffectPoison[]; -extern const u8 BattleScript_MoveEffectBurn[]; -extern const u8 BattleScript_MoveEffectFreeze[]; -extern const u8 BattleScript_MoveEffectParalysis[]; -extern const u8 BattleScript_MoveEffectToxic[]; -extern const u8 BattleScript_MoveEffectConfusion[]; -extern const u8 BattleScript_MoveEffectUproar[]; -extern const u8 BattleScript_MoveEffectPayDay[]; -extern const u8 BattleScript_MoveEffectWrap[]; -extern const u8 BattleScript_MoveEffectRecoil33[]; -extern const u8 BattleScript_DampStopsExplosion[]; -extern const u8 BattleScript_MistProtected[]; -extern const u8 BattleScript_AbilityNoStatLoss[]; -extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; -extern const u8 BattleScript_ButItFailed[]; -extern const u8 gUnknown_082DADD8[]; -extern const u8 BattleScript_PrintPayDayMoneyString[]; -extern const u8 BattleScript_SturdyPreventsOHKO[]; -extern const u8 BattleScript_ObliviousPreventsAttraction[]; -extern const u8 BattleScript_PauseEffectivenessSoundResultMsgEndMove[]; -extern const u8 BattleScript_CastformChange[]; -extern const u8 BattleScript_TrainerBallBlock[]; -extern const u8 BattleScript_WallyBallThrow[]; -extern const u8 BattleScript_SuccessBallThrow[]; -extern const u8 BattleScript_ShakeBallThrow[]; -extern const u8 BattleScript_PresentDamageTarget[]; -extern const u8 BattleScript_AlreadyAtFullHp[]; -extern const u8 BattleScript_PresentHealTarget[]; -extern const u8 BattleScript_WrapFree[]; -extern const u8 BattleScript_LeechSeedFree[]; -extern const u8 BattleScript_SpikesFree[]; - // strings extern const u8 gText_BattleYesNoChoice[]; @@ -247,7 +166,7 @@ extern const u8 gText_BattleYesNoChoice[]; // this file's functions static bool8 IsTwoTurnsMove(u16 move); -static void DestinyBondFlagUpdate(void); +static void TrySetDestinyBondToHappen(void); static u8 AttacksThisTurn(u8 bank, u16 move); // Note: returns 1 if it's a charging turn, otherwise 2. static void CheckWonderGuardAndLevitate(void); static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8, const u8* BS_ptr); @@ -267,29 +186,29 @@ static void atk01_accuracycheck(void); static void atk02_attackstring(void); static void atk03_ppreduce(void); static void atk04_critcalc(void); -static void atk05_damagecalc1(void); +static void atk05_damagecalc(void); static void atk06_typecalc(void); -static void atk07_dmg_adjustment(void); -static void atk08_dmg_adjustment2(void); +static void atk07_adjustnormaldamage(void); +static void atk08_adjustnormaldamage2(void); static void atk09_attackanimation(void); static void atk0A_waitanimation(void); static void atk0B_healthbarupdate(void); static void atk0C_datahpupdate(void); static void atk0D_critmessage(void); -static void atk0E_effectiveness_sound(void); +static void atk0E_effectivenesssound(void); static void atk0F_resultmessage(void); static void atk10_printstring(void); -static void atk11_printstring_playeronly(void); +static void atk11_printselectionstring(void); static void atk12_waitmessage(void); static void atk13_printfromtable(void); -static void atk14_printfromtable_playeronly(void); +static void atk14_printselectionstringfromtable(void); static void atk15_seteffectwithchance(void); static void atk16_seteffectprimary(void); static void atk17_seteffectsecondary(void); -static void atk18_status_effect_clear(void); -static void atk19_faint_pokemon(void); -static void atk1A_faint_animation(void); -static void atk1B_faint_effects_clear(void); +static void atk18_clearstatusfromeffect(void); +static void atk19_tryfaintmon(void); +static void atk1A_dofaintanimation(void); +static void atk1B_cleareffectsonfaint(void); static void atk1C_jumpifstatus(void); static void atk1D_jumpifstatus2(void); static void atk1E_jumpifability(void); @@ -299,9 +218,9 @@ static void atk21_jumpifstatus3(void); static void atk22_jumpiftype(void); static void atk23_getexp(void); static void atk24(void); -static void atk25_move_values_cleanup(void); -static void atk26_set_multihit(void); -static void atk27_decrement_multihit(void); +static void atk25_movevaluescleanup(void); +static void atk26_setmultihit(void); +static void atk27_decrementmultihit(void); static void atk28_goto(void); static void atk29_jumpifbyte(void); static void atk2A_jumpifhalfword(void); @@ -312,7 +231,7 @@ static void atk2E_setbyte(void); static void atk2F_addbyte(void); static void atk30_subbyte(void); static void atk31_copyarray(void); -static void atk32_copyarray_withindex(void); +static void atk32_copyarraywithindex(void); static void atk33_orbyte(void); static void atk34_orhalfword(void); static void atk35_orword(void); @@ -326,75 +245,75 @@ static void atk3C_return(void); static void atk3D_end(void); static void atk3E_end2(void); static void atk3F_end3(void); -static void atk40_jump_if_move_affected_by_protect(void); +static void atk40_jumpifaffectedbyprotect(void); static void atk41_call(void); static void atk42_jumpiftype2(void); static void atk43_jumpifabilitypresent(void); -static void atk44_end_selection_script(void); +static void atk44_endselectionscript(void); static void atk45_playanimation(void); static void atk46_playanimation2(void); static void atk47_setgraphicalstatchangevalues(void); static void atk48_playstatchangeanimation(void); static void atk49_moveend(void); static void atk4A_typecalc2(void); -static void atk4B_return_atk_to_ball(void); -static void atk4C_get_switched_mon_data(void); -static void atk4D_switch_data_update(void); -static void atk4E_switchin_anim(void); -static void atk4F_jump_if_cannot_switch(void); +static void atk4B_returnatktoball(void); +static void atk4C_getswitchedmondata(void); +static void atk4D_switchindataupdate(void); +static void atk4E_switchinanim(void); +static void atk4F_jumpifcantswitch(void); static void atk50_openpartyscreen(void); -static void atk51_switch_handle_order(void); -static void atk52_switch_in_effects(void); -static void atk53_trainer_slide(void); -static void atk54_effectiveness_sound(void); -static void atk55_play_fanfare(void); -static void atk56_fainting_cry(void); +static void atk51_switchhandleorder(void); +static void atk52_switchineffects(void); +static void atk53_trainerslidein(void); +static void atk54_playse(void); +static void atk55_fanfare(void); +static void atk56_playfaintcry(void); static void atk57(void); -static void atk58_return_to_ball(void); -static void atk59_learnmove_inbattle(void); +static void atk58_returntoball(void); +static void atk59_handlelearnnewmove(void); static void atk5A_yesnoboxlearnmove(void); static void atk5B_yesnoboxstoplearningmove(void); static void atk5C_hitanimation(void); static void atk5D_getmoneyreward(void); -static void atk5E_8025A70(void); -static void atk5F_8025B24(void); -static void atk60_increment_gamestat(void); -static void atk61_draw_party_status_summary(void); -static void atk62_08025C6C(void); +static void atk5E(void); +static void atk5F(void); +static void atk60_incrementgamestat(void); +static void atk61_drawpartystatussummary(void); +static void atk62(void); static void atk63_jumptorandomattack(void); static void atk64_statusanimation(void); static void atk65_status2animation(void); static void atk66_chosenstatusanimation(void); static void atk67_yesnobox(void); -static void atk68_cancel_everyones_actions(void); -static void atk69_dmg_adjustment3(void); +static void atk68_cancelallactions(void); +static void atk69_adjustsetdamage(void); static void atk6A_removeitem(void); static void atk6B_atknameinbuff1(void); -static void atk6C_draw_lvlupbox(void); -static void atk6D_reset_sentpokes_value(void); -static void atk6E_set_atk_to_player0(void); -static void atk6F_set_visible(void); -static void atk70_record_last_used_ability(void); -static void atk71_buffer_move_to_learn(void); -static void atk72_jump_if_run_attempt_success(void); -static void atk73_hp_thresholds(void); -static void atk74_hp_thresholds2(void); -static void atk75_item_effect_on_opponent(void); +static void atk6C_drawlvlupbox(void); +static void atk6D_resetsentmonsvalue(void); +static void atk6E_setatktoplayer0(void); +static void atk6F_makevisible(void); +static void atk70_recordlastability(void); +static void atk71_buffermovetolearn(void); +static void atk72_jumpifplayerran(void); +static void atk73_hpthresholds(void); +static void atk74_hpthresholds2(void); +static void atk75_useitemonopponent(void); static void atk76_various(void); -static void atk77_set_protect_like(void); +static void atk77_setprotectlike(void); static void atk78_faintifabilitynotdamp(void); static void atk79_setatkhptozero(void); -static void atk7A_jumpwhiletargetvalid(void); -static void atk7B_healhalfHP_if_possible(void); +static void atk7A_jumpifnexttargetvalid(void); +static void atk7B_tryhealhalfhealth(void); static void atk7C_trymirrormove(void); -static void atk7D_set_rain(void); +static void atk7D_setrain(void); static void atk7E_setreflect(void); static void atk7F_setseeded(void); static void atk80_manipulatedamage(void); -static void atk81_setrest(void); +static void atk81_trysetrest(void); static void atk82_jumpifnotfirstturn(void); static void atk83_nop(void); -static void atk84_jump_if_cant_sleep(void); +static void atk84_jumpifcantmakeasleep(void); static void atk85_stockpile(void); static void atk86_stockpiletobasedamage(void); static void atk87_stockpiletohpheal(void); @@ -403,22 +322,22 @@ static void atk89_statbuffchange(void); static void atk8A_normalisebuffs(void); static void atk8B_setbide(void); static void atk8C_confuseifrepeatingattackends(void); -static void atk8D_setmultihit_counter(void); -static void atk8E_init_multihit_string(void); +static void atk8D_setmultihitcounter(void); +static void atk8E_initmultihitstring(void); static void atk8F_forcerandomswitch(void); -static void atk90_conversion_type_change(void); +static void atk90_tryconversiontypechange(void); static void atk91_givepaydaymoney(void); static void atk92_setlightscreen(void); -static void atk93_ko_move(void); +static void atk93_tryKO(void); static void atk94_damagetohalftargethp(void); static void atk95_setsandstorm(void); static void atk96_weatherdamage(void); -static void atk97_try_infatuation(void); -static void atk98_status_icon_update(void); +static void atk97_tryinfatuating(void); +static void atk98_updatestatusicon(void); static void atk99_setmist(void); -static void atk9A_set_focusenergy(void); +static void atk9A_setfocusenergy(void); static void atk9B_transformdataexecution(void); -static void atk9C_set_substitute(void); +static void atk9C_setsubstitute(void); static void atk9D_mimicattackcopy(void); static void atk9E_metronome(void); static void atk9F_dmgtolevel(void); @@ -426,39 +345,39 @@ static void atkA0_psywavedamageeffect(void); static void atkA1_counterdamagecalculator(void); static void atkA2_mirrorcoatdamagecalculator(void); static void atkA3_disablelastusedattack(void); -static void atkA4_setencore(void); +static void atkA4_trysetencore(void); static void atkA5_painsplitdmgcalc(void); static void atkA6_settypetorandomresistance(void); static void atkA7_setalwayshitflag(void); static void atkA8_copymovepermanently(void); static void atkA9_sleeptalk_choose_move(void); -static void atkAA_set_destinybond(void); -static void atkAB_DestinyBondFlagUpdate(void); +static void atkAA_setdestinybond(void); +static void atkAB_trysetdestinybondtohappen(void); static void atkAC_remaininghptopower(void); -static void atkAD_spite_ppreduce(void); -static void atkAE_heal_party_status(void); +static void atkAD_tryspiteppreduce(void); +static void atkAE_healpartystatus(void); static void atkAF_cursetarget(void); -static void atkB0_set_spikes(void); -static void atkB1_set_foresight(void); -static void atkB2_setperishsong(void); +static void atkB0_trysetspikes(void); +static void atkB1_setforesight(void); +static void atkB2_trysetperishsong(void); static void atkB3_rolloutdamagecalculation(void); static void atkB4_jumpifconfusedandstatmaxed(void); static void atkB5_furycuttercalc(void); static void atkB6_happinesstodamagecalculation(void); static void atkB7_presentdamagecalculation(void); -static void atkB8_set_safeguard(void); +static void atkB8_setsafeguard(void); static void atkB9_magnitudedamagecalculation(void); static void atkBA_jumpifnopursuitswitchdmg(void); static void atkBB_setsunny(void); static void atkBC_maxattackhalvehp(void); static void atkBD_copyfoestats(void); static void atkBE_rapidspinfree(void); -static void atkBF_set_defense_curl(void); +static void atkBF_setdefensecurlbit(void); static void atkC0_recoverbasedonsunlight(void); -static void atkC1_hidden_power_calc(void); -static void atkC2_selectnexttarget(void); -static void atkC3_setfutureattack(void); -static void atkC4_beat_up(void); +static void atkC1_hiddenpowercalc(void); +static void atkC2_selectfirstvalidtarget(void); +static void atkC3_trysetfutureattack(void); +static void atkC4_trydobeatup(void); static void atkC5_setsemiinvulnerablebit(void); static void atkC6_clearsemiinvulnerablebit(void); static void atkC7_setminimize(void); @@ -471,46 +390,46 @@ static void atkCD_cureifburnedparalysedorpoisoned(void); static void atkCE_settorment(void); static void atkCF_jumpifnodamage(void); static void atkD0_settaunt(void); -static void atkD1_set_helpinghand(void); -static void atkD2_swap_items(void); -static void atkD3_copy_ability(void); -static void atkD4_wish_effect(void); -static void atkD5_setroots(void); +static void atkD1_trysethelpinghand(void); +static void atkD2_tryswapitems(void); +static void atkD3_trycopyability(void); +static void atkD4_trywish(void); +static void atkD5_trysetroots(void); static void atkD6_doubledamagedealtifdamaged(void); static void atkD7_setyawn(void); static void atkD8_setdamagetohealthdifference(void); static void atkD9_scaledamagebyhealthratio(void); -static void atkDA_abilityswap(void); -static void atkDB_imprisoneffect(void); -static void atkDC_setgrudge(void); +static void atkDA_tryswapabilities(void); +static void atkDB_tryimprision(void); +static void atkDC_trysetgrudge(void); static void atkDD_weightdamagecalculation(void); static void atkDE_asistattackselect(void); -static void atkDF_setmagiccoat(void); -static void atkE0_setstealstatchange(void); -static void atkE1_intimidate_string_loader(void); -static void atkE2_switchout_abilities(void); +static void atkDF_trysetmagiccoat(void); +static void atkE0_trysetsnatch(void); +static void atkE1_trygetintimidatetarget(void); +static void atkE2_switchoutabilities(void); static void atkE3_jumpifhasnohp(void); static void atkE4_getsecretpowereffect(void); static void atkE5_pickup(void); -static void atkE6_castform_change_animation(void); -static void atkE7_castform_data_change(void); +static void atkE6_docastformchangeanimation(void); +static void atkE7_trycastformdatachange(void); static void atkE8_settypebasedhalvers(void); static void atkE9_setweatherballtype(void); -static void atkEA_recycleitem(void); +static void atkEA_tryrecycleitem(void); static void atkEB_settypetoterrain(void); -static void atkEC_pursuit_sth(void); -static void atkED_802B4B4(void); +static void atkEC_pursuitrelated(void); +static void atkEF_snatchsetbanks(void); static void atkEE_removelightscreenreflect(void); static void atkEF_pokeball_catch_calculation(void); -static void atkF0_give_caught_mon(void); -static void atkF1_set_caught_mon_dex_flags(void); -static void atkF2_display_dex_info(void); -static void atkF3_nickname_caught_poke(void); +static void atkF0_givecaughtmon(void); +static void atkF1_trysetcaughtmondexflags(void); +static void atkF2_displaydexinfo(void); +static void atkF3_trygivecaughtmonnick(void); static void atkF4_subattackerhpbydmg(void); static void atkF5_removeattackerstatus1(void); -static void atkF6_action_finished(void); -static void atkF7_turn_finished(void); -static void atkF8_trainer_slide_back(void); +static void atkF6_finishaction(void); +static void atkF7_finishturn(void); +static void atkF8_trainerslideout(void); void (* const gBattleScriptingCommandsTable[])(void) = { @@ -519,29 +438,29 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk02_attackstring, atk03_ppreduce, atk04_critcalc, - atk05_damagecalc1, + atk05_damagecalc, atk06_typecalc, - atk07_dmg_adjustment, - atk08_dmg_adjustment2, + atk07_adjustnormaldamage, + atk08_adjustnormaldamage2, atk09_attackanimation, atk0A_waitanimation, atk0B_healthbarupdate, atk0C_datahpupdate, atk0D_critmessage, - atk0E_effectiveness_sound, + atk0E_effectivenesssound, atk0F_resultmessage, atk10_printstring, - atk11_printstring_playeronly, + atk11_printselectionstring, atk12_waitmessage, atk13_printfromtable, - atk14_printfromtable_playeronly, + atk14_printselectionstringfromtable, atk15_seteffectwithchance, atk16_seteffectprimary, atk17_seteffectsecondary, - atk18_status_effect_clear, - atk19_faint_pokemon, - atk1A_faint_animation, - atk1B_faint_effects_clear, + atk18_clearstatusfromeffect, + atk19_tryfaintmon, + atk1A_dofaintanimation, + atk1B_cleareffectsonfaint, atk1C_jumpifstatus, atk1D_jumpifstatus2, atk1E_jumpifability, @@ -551,9 +470,9 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk22_jumpiftype, atk23_getexp, atk24, - atk25_move_values_cleanup, - atk26_set_multihit, - atk27_decrement_multihit, + atk25_movevaluescleanup, + atk26_setmultihit, + atk27_decrementmultihit, atk28_goto, atk29_jumpifbyte, atk2A_jumpifhalfword, @@ -564,7 +483,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk2F_addbyte, atk30_subbyte, atk31_copyarray, - atk32_copyarray_withindex, + atk32_copyarraywithindex, atk33_orbyte, atk34_orhalfword, atk35_orword, @@ -578,75 +497,75 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk3D_end, atk3E_end2, atk3F_end3, - atk40_jump_if_move_affected_by_protect, + atk40_jumpifaffectedbyprotect, atk41_call, atk42_jumpiftype2, atk43_jumpifabilitypresent, - atk44_end_selection_script, + atk44_endselectionscript, atk45_playanimation, atk46_playanimation2, atk47_setgraphicalstatchangevalues, atk48_playstatchangeanimation, atk49_moveend, atk4A_typecalc2, - atk4B_return_atk_to_ball, - atk4C_get_switched_mon_data, - atk4D_switch_data_update, - atk4E_switchin_anim, - atk4F_jump_if_cannot_switch, + atk4B_returnatktoball, + atk4C_getswitchedmondata, + atk4D_switchindataupdate, + atk4E_switchinanim, + atk4F_jumpifcantswitch, atk50_openpartyscreen, - atk51_switch_handle_order, - atk52_switch_in_effects, - atk53_trainer_slide, - atk54_effectiveness_sound, - atk55_play_fanfare, - atk56_fainting_cry, + atk51_switchhandleorder, + atk52_switchineffects, + atk53_trainerslidein, + atk54_playse, + atk55_fanfare, + atk56_playfaintcry, atk57, - atk58_return_to_ball, - atk59_learnmove_inbattle, + atk58_returntoball, + atk59_handlelearnnewmove, atk5A_yesnoboxlearnmove, atk5B_yesnoboxstoplearningmove, atk5C_hitanimation, atk5D_getmoneyreward, - atk5E_8025A70, - atk5F_8025B24, - atk60_increment_gamestat, - atk61_draw_party_status_summary, - atk62_08025C6C, + atk5E, + atk5F, + atk60_incrementgamestat, + atk61_drawpartystatussummary, + atk62, atk63_jumptorandomattack, atk64_statusanimation, atk65_status2animation, atk66_chosenstatusanimation, atk67_yesnobox, - atk68_cancel_everyones_actions, - atk69_dmg_adjustment3, + atk68_cancelallactions, + atk69_adjustsetdamage, atk6A_removeitem, atk6B_atknameinbuff1, - atk6C_draw_lvlupbox, - atk6D_reset_sentpokes_value, - atk6E_set_atk_to_player0, - atk6F_set_visible, - atk70_record_last_used_ability, - atk71_buffer_move_to_learn, - atk72_jump_if_run_attempt_success, - atk73_hp_thresholds, - atk74_hp_thresholds2, - atk75_item_effect_on_opponent, + atk6C_drawlvlupbox, + atk6D_resetsentmonsvalue, + atk6E_setatktoplayer0, + atk6F_makevisible, + atk70_recordlastability, + atk71_buffermovetolearn, + atk72_jumpifplayerran, + atk73_hpthresholds, + atk74_hpthresholds2, + atk75_useitemonopponent, atk76_various, - atk77_set_protect_like, + atk77_setprotectlike, atk78_faintifabilitynotdamp, atk79_setatkhptozero, - atk7A_jumpwhiletargetvalid, - atk7B_healhalfHP_if_possible, + atk7A_jumpifnexttargetvalid, + atk7B_tryhealhalfhealth, atk7C_trymirrormove, - atk7D_set_rain, + atk7D_setrain, atk7E_setreflect, atk7F_setseeded, atk80_manipulatedamage, - atk81_setrest, + atk81_trysetrest, atk82_jumpifnotfirstturn, atk83_nop, - atk84_jump_if_cant_sleep, + atk84_jumpifcantmakeasleep, atk85_stockpile, atk86_stockpiletobasedamage, atk87_stockpiletohpheal, @@ -655,22 +574,22 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk8A_normalisebuffs, atk8B_setbide, atk8C_confuseifrepeatingattackends, - atk8D_setmultihit_counter, - atk8E_init_multihit_string, + atk8D_setmultihitcounter, + atk8E_initmultihitstring, atk8F_forcerandomswitch, - atk90_conversion_type_change, + atk90_tryconversiontypechange, atk91_givepaydaymoney, atk92_setlightscreen, - atk93_ko_move, + atk93_tryKO, atk94_damagetohalftargethp, atk95_setsandstorm, atk96_weatherdamage, - atk97_try_infatuation, - atk98_status_icon_update, + atk97_tryinfatuating, + atk98_updatestatusicon, atk99_setmist, - atk9A_set_focusenergy, + atk9A_setfocusenergy, atk9B_transformdataexecution, - atk9C_set_substitute, + atk9C_setsubstitute, atk9D_mimicattackcopy, atk9E_metronome, atk9F_dmgtolevel, @@ -678,39 +597,39 @@ void (* const gBattleScriptingCommandsTable[])(void) = atkA1_counterdamagecalculator, atkA2_mirrorcoatdamagecalculator, atkA3_disablelastusedattack, - atkA4_setencore, + atkA4_trysetencore, atkA5_painsplitdmgcalc, atkA6_settypetorandomresistance, atkA7_setalwayshitflag, atkA8_copymovepermanently, atkA9_sleeptalk_choose_move, - atkAA_set_destinybond, - atkAB_DestinyBondFlagUpdate, + atkAA_setdestinybond, + atkAB_trysetdestinybondtohappen, atkAC_remaininghptopower, - atkAD_spite_ppreduce, - atkAE_heal_party_status, + atkAD_tryspiteppreduce, + atkAE_healpartystatus, atkAF_cursetarget, - atkB0_set_spikes, - atkB1_set_foresight, - atkB2_setperishsong, + atkB0_trysetspikes, + atkB1_setforesight, + atkB2_trysetperishsong, atkB3_rolloutdamagecalculation, atkB4_jumpifconfusedandstatmaxed, atkB5_furycuttercalc, atkB6_happinesstodamagecalculation, atkB7_presentdamagecalculation, - atkB8_set_safeguard, + atkB8_setsafeguard, atkB9_magnitudedamagecalculation, atkBA_jumpifnopursuitswitchdmg, atkBB_setsunny, atkBC_maxattackhalvehp, atkBD_copyfoestats, atkBE_rapidspinfree, - atkBF_set_defense_curl, + atkBF_setdefensecurlbit, atkC0_recoverbasedonsunlight, - atkC1_hidden_power_calc, - atkC2_selectnexttarget, - atkC3_setfutureattack, - atkC4_beat_up, + atkC1_hiddenpowercalc, + atkC2_selectfirstvalidtarget, + atkC3_trysetfutureattack, + atkC4_trydobeatup, atkC5_setsemiinvulnerablebit, atkC6_clearsemiinvulnerablebit, atkC7_setminimize, @@ -723,46 +642,46 @@ void (* const gBattleScriptingCommandsTable[])(void) = atkCE_settorment, atkCF_jumpifnodamage, atkD0_settaunt, - atkD1_set_helpinghand, - atkD2_swap_items, - atkD3_copy_ability, - atkD4_wish_effect, - atkD5_setroots, + atkD1_trysethelpinghand, + atkD2_tryswapitems, + atkD3_trycopyability, + atkD4_trywish, + atkD5_trysetroots, atkD6_doubledamagedealtifdamaged, atkD7_setyawn, atkD8_setdamagetohealthdifference, atkD9_scaledamagebyhealthratio, - atkDA_abilityswap, - atkDB_imprisoneffect, - atkDC_setgrudge, + atkDA_tryswapabilities, + atkDB_tryimprision, + atkDC_trysetgrudge, atkDD_weightdamagecalculation, atkDE_asistattackselect, - atkDF_setmagiccoat, - atkE0_setstealstatchange, - atkE1_intimidate_string_loader, - atkE2_switchout_abilities, + atkDF_trysetmagiccoat, + atkE0_trysetsnatch, + atkE1_trygetintimidatetarget, + atkE2_switchoutabilities, atkE3_jumpifhasnohp, atkE4_getsecretpowereffect, atkE5_pickup, - atkE6_castform_change_animation, - atkE7_castform_data_change, + atkE6_docastformchangeanimation, + atkE7_trycastformdatachange, atkE8_settypebasedhalvers, atkE9_setweatherballtype, - atkEA_recycleitem, + atkEA_tryrecycleitem, atkEB_settypetoterrain, - atkEC_pursuit_sth, - atkED_802B4B4, + atkEC_pursuitrelated, + atkEF_snatchsetbanks, atkEE_removelightscreenreflect, atkEF_pokeball_catch_calculation, - atkF0_give_caught_mon, - atkF1_set_caught_mon_dex_flags, - atkF2_display_dex_info, - atkF3_nickname_caught_poke, + atkF0_givecaughtmon, + atkF1_trysetcaughtmondexflags, + atkF2_displaydexinfo, + atkF3_trygivecaughtmonnick, atkF4_subattackerhpbydmg, atkF5_removeattackerstatus1, - atkF6_action_finished, - atkF7_turn_finished, - atkF8_trainer_slide_back + atkF6_finishaction, + atkF7_finishturn, + atkF8_trainerslideout }; struct StatFractions @@ -1208,14 +1127,14 @@ static void JumpIfMoveFailed(u8 adder, u16 move) } else { - DestinyBondFlagUpdate(); + TrySetDestinyBondToHappen(); if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBankTarget, 0, 0, move)) return; } gBattlescriptCurrInstr = BS_ptr; } -static void atk40_jump_if_move_affected_by_protect(void) +static void atk40_jumpifaffectedbyprotect(void) { if (TARGET_PROTECT_AFFECTED) { @@ -1476,7 +1395,7 @@ static void atk04_critcalc(void) gBattlescriptCurrInstr++; } -static void atk05_damagecalc1(void) +static void atk05_damagecalc(void) { u16 sideStatus = gSideAffecting[GET_BANK_SIDE(gBankTarget)]; gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, @@ -1843,7 +1762,7 @@ static void Unused_ApplyRandomDmgMultiplier(void) ApplyRandomDmgMultiplier(); } -static void atk07_dmg_adjustment(void) +static void atk07_adjustnormaldamage(void) { u8 holdEffect, quality; @@ -1891,7 +1810,7 @@ static void atk07_dmg_adjustment(void) gBattlescriptCurrInstr++; } -static void atk08_dmg_adjustment2(void) // The same as 0x7 except it doesn't check for false swipe move effect. +static void atk08_adjustnormaldamage2(void) // The same as 0x7 except it doesn't check for false swipe move effect. { u8 holdEffect, quality; @@ -2172,7 +2091,7 @@ static void atk0D_critmessage(void) } } -static void atk0E_effectiveness_sound(void) +static void atk0E_effectivenesssound(void) { if (gBattleExecBuffer) return; @@ -2183,11 +2102,11 @@ static void atk0E_effectiveness_sound(void) switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED))) { case MOVESTATUS_SUPEREFFECTIVE: - EmitEffectivenessSound(0, SE_KOUKA_H); + EmitPlaySE(0, SE_KOUKA_H); MarkBufferBankForExecution(gActiveBank); break; case MOVESTATUS_NOTVERYEFFECTIVE: - EmitEffectivenessSound(0, SE_KOUKA_L); + EmitPlaySE(0, SE_KOUKA_L); MarkBufferBankForExecution(gActiveBank); break; case MOVESTATUS_NOTAFFECTED: @@ -2200,17 +2119,17 @@ static void atk0E_effectiveness_sound(void) default: if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) { - EmitEffectivenessSound(0, SE_KOUKA_H); + EmitPlaySE(0, SE_KOUKA_H); MarkBufferBankForExecution(gActiveBank); } else if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE) { - EmitEffectivenessSound(0, SE_KOUKA_L); + EmitPlaySE(0, SE_KOUKA_L); MarkBufferBankForExecution(gActiveBank); } else if (!(gBattleMoveFlags & (MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))) { - EmitEffectivenessSound(0, SE_KOUKA_M); + EmitPlaySE(0, SE_KOUKA_M); MarkBufferBankForExecution(gActiveBank); } break; @@ -2319,11 +2238,11 @@ static void atk10_printstring(void) } } -static void atk11_printstring_playeronly(void) +static void atk11_printselectionstring(void) { gActiveBank = gBankAttacker; - EmitPrintStringPlayerOnly(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); + EmitPrintSelectionString(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 3; @@ -2365,7 +2284,7 @@ static void atk13_printfromtable(void) } } -static void atk14_printfromtable_playeronly(void) +static void atk14_printselectionstringfromtable(void) { if (gBattleExecBuffer == 0) { @@ -2373,7 +2292,7 @@ static void atk14_printfromtable_playeronly(void) ptr += gBattleCommunication[MULTISTRING_CHOOSER]; gActiveBank = gBankAttacker; - EmitPrintStringPlayerOnly(0, *ptr); + EmitPrintSelectionString(0, *ptr); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 5; @@ -3134,7 +3053,7 @@ static void atk17_seteffectsecondary(void) SetMoveEffect(FALSE, 0); } -static void atk18_status_effect_clear(void) +static void atk18_clearstatusfromeffect(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -3148,7 +3067,7 @@ static void atk18_status_effect_clear(void) gBattleScripting.field_16 = 0; } -static void atk19_faint_pokemon(void) +static void atk19_tryfaintmon(void) { const u8 *BS_ptr; @@ -3235,7 +3154,7 @@ static void atk19_faint_pokemon(void) } } -static void atk1A_faint_animation(void) +static void atk1A_dofaintanimation(void) { if (gBattleExecBuffer == 0) { @@ -3246,7 +3165,7 @@ static void atk1A_faint_animation(void) } } -static void atk1B_faint_effects_clear(void) +static void atk1B_cleareffectsonfaint(void) { if (gBattleExecBuffer == 0) { @@ -4098,19 +4017,19 @@ static void MoveValuesCleanUp(void) gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); } -static void atk25_move_values_cleanup(void) +static void atk25_movevaluescleanup(void) { MoveValuesCleanUp(); gBattlescriptCurrInstr += 1; } -static void atk26_set_multihit(void) +static void atk26_setmultihit(void) { gMultiHitCounter = gBattlescriptCurrInstr[1]; gBattlescriptCurrInstr += 2; } -static void atk27_decrement_multihit(void) +static void atk27_decrementmultihit(void) { if (--gMultiHitCounter == 0) gBattlescriptCurrInstr += 5; @@ -4320,7 +4239,7 @@ static void atk31_copyarray(void) gBattlescriptCurrInstr += 10; } -static void atk32_copyarray_withindex(void) +static void atk32_copyarraywithindex(void) { u8* dest = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); const u8* src = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5); @@ -4470,7 +4389,7 @@ static void atk43_jumpifabilitypresent(void) gBattlescriptCurrInstr += 6; } -static void atk44_end_selection_script(void) +static void atk44_endselectionscript(void) { *(gBankAttacker + gBattleStruct->selectionScriptFinished) = TRUE; } @@ -5190,7 +5109,7 @@ static void atk49_moveend(void) gBattleScripting.atk49_state = 0; MoveValuesCleanUp(); BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); - gBattlescriptCurrInstr = gUnknown_082DB87D; + gBattlescriptCurrInstr = BattleScript_82DB87D; return; } else @@ -5310,7 +5229,7 @@ static void atk4A_typecalc2(void) gBattlescriptCurrInstr++; } -static void atk4B_return_atk_to_ball(void) +static void atk4B_returnatktoball(void) { gActiveBank = gBankAttacker; if (!(gHitMarker & HITMARKER_FAINTED(gActiveBank))) @@ -5321,7 +5240,7 @@ static void atk4B_return_atk_to_ball(void) gBattlescriptCurrInstr++; } -static void atk4C_get_switched_mon_data(void) +static void atk4C_getswitchedmondata(void) { if (gBattleExecBuffer) return; @@ -5336,7 +5255,7 @@ static void atk4C_get_switched_mon_data(void) gBattlescriptCurrInstr += 2; } -static void atk4D_switch_data_update(void) +static void atk4D_switchindataupdate(void) { struct BattlePokemon oldData; s32 i; @@ -5389,7 +5308,7 @@ static void atk4D_switch_data_update(void) gBattlescriptCurrInstr += 2; } -static void atk4E_switchin_anim(void) +static void atk4E_switchinanim(void) { if (gBattleExecBuffer) return; @@ -5415,7 +5334,7 @@ static void atk4E_switchin_anim(void) sub_81A56B4(); } -static void atk4F_jump_if_cannot_switch(void) +static void atk4F_jumpifcantswitch(void) { s32 val = 0; s32 compareVar = 0; @@ -5869,7 +5788,7 @@ static void atk50_openpartyscreen(void) } } -static void atk51_switch_handle_order(void) +static void atk51_switchhandleorder(void) { s32 i; if (gBattleExecBuffer) @@ -5936,7 +5855,7 @@ static void atk51_switch_handle_order(void) gBattlescriptCurrInstr += 3; } -static void atk52_switch_in_effects(void) +static void atk52_switchineffects(void) { s32 i; @@ -5967,12 +5886,12 @@ static void atk52_switch_in_effects(void) gBattleScripting.bank = gActiveBank; BattleScriptPushCursor(); - if (gBattlescriptCurrInstr[1] == 0) - gBattlescriptCurrInstr = gUnknown_082DAE90; - else if (gBattlescriptCurrInstr[1] == 1) - gBattlescriptCurrInstr = gUnknown_082DAE59; + if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) + gBattlescriptCurrInstr = BattleScript_SpikesOnTarget; + else if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) + gBattlescriptCurrInstr = BattleScript_SpikesOnAttacker; else - gBattlescriptCurrInstr = gUnknown_082DAEC7; + gBattlescriptCurrInstr = BattleScript_SpikesOngBank1; } else { @@ -6017,7 +5936,7 @@ static void atk52_switch_in_effects(void) } } -static void atk53_trainer_slide(void) +static void atk53_trainerslidein(void) { gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]); EmitTrainerSlide(0); @@ -6026,16 +5945,16 @@ static void atk53_trainer_slide(void) gBattlescriptCurrInstr += 2; } -static void atk54_effectiveness_sound(void) +static void atk54_playse(void) { gActiveBank = gBankAttacker; - EmitEffectivenessSound(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); + EmitPlaySE(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 3; } -static void atk55_play_fanfare(void) +static void atk55_fanfare(void) { gActiveBank = gBankAttacker; EmitPlayFanfareOrBGM(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), FALSE); @@ -6044,7 +5963,7 @@ static void atk55_play_fanfare(void) gBattlescriptCurrInstr += 3; } -static void atk56_fainting_cry(void) +static void atk56_playfaintcry(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitFaintingCry(0); @@ -6055,14 +5974,14 @@ static void atk56_fainting_cry(void) static void atk57(void) { - gActiveBank = GetBankByIdentity(0); + gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); EmitCmd55(0, gBattleOutcome); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 1; } -static void atk58_return_to_ball(void) +static void atk58_returntoball(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitReturnMonToBall(0, 1); @@ -6071,7 +5990,7 @@ static void atk58_return_to_ball(void) gBattlescriptCurrInstr += 2; } -static void atk59_learnmove_inbattle(void) +static void atk59_handlelearnnewmove(void) { const u8* jumpPtr1 = BSScriptReadPtr(gBattlescriptCurrInstr + 1); const u8* jumpPtr2 = BSScriptReadPtr(gBattlescriptCurrInstr + 5); @@ -6367,7 +6286,7 @@ static void atk5D_getmoneyreward(void) gBattlescriptCurrInstr++; } -static void atk5E_8025A70(void) +static void atk5E(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -6394,7 +6313,7 @@ static void atk5E_8025A70(void) } } -static void atk5F_8025B24(void) +static void atk5F(void) { gActiveBank = gBankAttacker; gBankAttacker = gBankTarget; @@ -6408,7 +6327,7 @@ static void atk5F_8025B24(void) gBattlescriptCurrInstr++; } -static void atk60_increment_gamestat(void) +static void atk60_incrementgamestat(void) { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) IncrementGameStat(gBattlescriptCurrInstr[1]); @@ -6416,7 +6335,7 @@ static void atk60_increment_gamestat(void) gBattlescriptCurrInstr += 2; } -static void atk61_draw_party_status_summary(void) +static void atk61_drawpartystatussummary(void) { s32 i; struct Pokemon* party; @@ -6453,7 +6372,7 @@ static void atk61_draw_party_status_summary(void) gBattlescriptCurrInstr += 2; } -static void atk62_08025C6C(void) +static void atk62(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitCmd49(0); @@ -6569,7 +6488,7 @@ static void atk67_yesnobox(void) } } -static void atk68_cancel_everyones_actions(void) +static void atk68_cancelallactions(void) { s32 i; @@ -6579,7 +6498,7 @@ static void atk68_cancel_everyones_actions(void) gBattlescriptCurrInstr++; } -static void atk69_dmg_adjustment3(void) // The same as 0x7, except there's no random damage multiplier. +static void atk69_adjustsetdamage(void) // The same as 0x7, except there's no random damage multiplier. { u8 holdEffect, quality; @@ -6648,7 +6567,7 @@ static void atk6B_atknameinbuff1(void) gBattlescriptCurrInstr++; } -static void atk6C_draw_lvlupbox(void) +static void atk6C_drawlvlupbox(void) { if (gBattleScripting.atk6C_state == 0) { @@ -6922,19 +6841,19 @@ static bool32 IsMonGettingExpSentOut(void) return FALSE; } -static void atk6D_reset_sentpokes_value(void) +static void atk6D_resetsentmonsvalue(void) { ResetSentPokesToOpponentValue(); gBattlescriptCurrInstr++; } -static void atk6E_set_atk_to_player0(void) +static void atk6E_setatktoplayer0(void) { gBankAttacker = GetBankByIdentity(0); gBattlescriptCurrInstr++; } -static void atk6F_set_visible(void) +static void atk6F_makevisible(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitSpriteInvisibility(0, FALSE); @@ -6943,7 +6862,7 @@ static void atk6F_set_visible(void) gBattlescriptCurrInstr += 2; } -static void atk70_record_last_used_ability(void) +static void atk70_recordlastability(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); RecordAbilityBattle(gActiveBank, gLastUsedAbility); @@ -6955,13 +6874,13 @@ void BufferMoveToLearnIntoBattleTextBuff2(void) PREPARE_MOVE_BUFFER(gBattleTextBuff2, gMoveToLearn); } -static void atk71_buffer_move_to_learn(void) +static void atk71_buffermovetolearn(void) { BufferMoveToLearnIntoBattleTextBuff2(); gBattlescriptCurrInstr++; } -static void atk72_jump_if_run_attempt_success(void) +static void atk72_jumpifplayerran(void) { if (TryRunFromBattle(gBank1)) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -6969,7 +6888,7 @@ static void atk72_jump_if_run_attempt_success(void) gBattlescriptCurrInstr += 5; } -static void atk73_hp_thresholds(void) +static void atk73_hpthresholds(void) { u8 opposingBank; s32 result; @@ -6996,7 +6915,7 @@ static void atk73_hp_thresholds(void) gBattlescriptCurrInstr += 2; } -static void atk74_hp_thresholds2(void) +static void atk74_hpthresholds2(void) { u8 opposingBank; s32 result; @@ -7022,7 +6941,7 @@ static void atk74_hp_thresholds2(void) gBattlescriptCurrInstr += 2; } -static void atk75_item_effect_on_opponent(void) +static void atk75_useitemonopponent(void) { gBankInMenu = gBankAttacker; ExecuteTableBasedItemEffect(&gEnemyParty[gBattlePartyID[gBankAttacker]], gLastUsedItem, gBattlePartyID[gBankAttacker], 0, 1); @@ -7044,13 +6963,13 @@ static void atk76_various(void) break; case VARIOUS_SET_MAGIC_COAT_TARGET: gBankAttacker = gBankTarget; - side = GetBankSide(gBankAttacker) ^ 1; + side = GetBankSide(gBankAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) gBankTarget = gSideTimers[side].followmeTarget; else gBankTarget = gActiveBank; break; - case VARIOUS_CAN_RUN_FROM_BATTLE: + case VARIOUS_IS_RUNNING_IMPOSSIBLE: gBattleCommunication[0] = IsRunningFromBattleImpossible(); break; case VARIOUS_GET_MOVE_TARGET: @@ -7209,7 +7128,7 @@ static void atk76_various(void) gBattlescriptCurrInstr += 3; } -static void atk77_set_protect_like(void) // protect and endure +static void atk77_setprotectlike(void) // protect and endure { bool8 notLastTurn = TRUE; u16 lastMove = gUnknown_02024260[gBankAttacker]; @@ -7292,9 +7211,9 @@ static void atk79_setatkhptozero(void) gBattlescriptCurrInstr++; } -static void atk7A_jumpwhiletargetvalid(void) // Used by intimidate to loop through all targets. +static void atk7A_jumpifnexttargetvalid(void) { - const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8 *jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { @@ -7312,10 +7231,12 @@ static void atk7A_jumpwhiletargetvalid(void) // Used by intimidate to loop throu gBattlescriptCurrInstr = jumpPtr; } else + { gBattlescriptCurrInstr += 5; + } } -static void atk7B_healhalfHP_if_possible(void) +static void atk7B_tryhealhalfhealth(void) { const u8* failPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -7383,7 +7304,7 @@ static void atk7C_trymirrormove(void) } } -static void atk7D_set_rain(void) +static void atk7D_setrain(void) { if (gBattleWeather & WEATHER_RAIN_ANY) { @@ -7464,9 +7385,9 @@ static void atk80_manipulatedamage(void) gBattlescriptCurrInstr += 2; } -static void atk81_setrest(void) +static void atk81_trysetrest(void) { - const u8* failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8 *failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); gActiveBank = gBankTarget = gBankAttacker; gBattleMoveDamage = gBattleMons[gBankTarget].maxHP * (-1); @@ -7530,9 +7451,9 @@ bool8 UproarWakeUpCheck(u8 bank) return TRUE; } -static void atk84_jump_if_cant_sleep(void) +static void atk84_jumpifcantmakeasleep(void) { - const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8 *jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); if (UproarWakeUpCheck(gBankTarget)) { @@ -7844,7 +7765,7 @@ static void atk8C_confuseifrepeatingattackends(void) gBattlescriptCurrInstr++; } -static void atk8D_setmultihit_counter(void) +static void atk8D_setmultihitcounter(void) { if (gBattlescriptCurrInstr[1]) { @@ -7862,7 +7783,7 @@ static void atk8D_setmultihit_counter(void) gBattlescriptCurrInstr += 2; } -static void atk8E_init_multihit_string(void) +static void atk8E_initmultihitstring(void) { PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) @@ -7886,7 +7807,7 @@ static bool8 sub_8051064(void) *(gBattleStruct->field_58 + gBankTarget) = gBattlePartyID[gBankTarget]; } - gBattlescriptCurrInstr = gUnknown_082DADD8; + gBattlescriptCurrInstr = BattleScript_82DADD8; return TRUE; } @@ -8051,7 +7972,7 @@ static void atk8F_forcerandomswitch(void) } } -static void atk90_conversion_type_change(void) // randomly changes user's type to one of its moves' type +static void atk90_tryconversiontypechange(void) // randomly changes user's type to one of its moves' type { u8 validMoves = 0; u8 moveChecked; @@ -8155,7 +8076,7 @@ static void atk92_setlightscreen(void) gBattlescriptCurrInstr++; } -static void atk93_ko_move(void) +static void atk93_tryKO(void) { u8 holdEffect, param; @@ -8319,7 +8240,7 @@ static void atk96_weatherdamage(void) gBattlescriptCurrInstr++; } -static void atk97_try_infatuation(void) +static void atk97_tryinfatuating(void) { struct Pokemon *monAttacker, *monTarget; u16 speciesAttacker, speciesTarget; @@ -8364,7 +8285,7 @@ static void atk97_try_infatuation(void) } } -static void atk98_status_icon_update(void) +static void atk98_updatestatusicon(void) { if (gBattleExecBuffer) return; @@ -8414,7 +8335,7 @@ static void atk99_setmist(void) gBattlescriptCurrInstr++; } -static void atk9A_set_focusenergy(void) +static void atk9A_setfocusenergy(void) { if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) { @@ -8473,7 +8394,7 @@ static void atk9B_transformdataexecution(void) } } -static void atk9C_set_substitute(void) +static void atk9C_setsubstitute(void) { u32 hp = gBattleMons[gBankAttacker].maxHP / 4; if (gBattleMons[gBankAttacker].maxHP / 4 == 0) @@ -8673,7 +8594,7 @@ static void atkA3_disablelastusedattack(void) } } -static void atkA4_setencore(void) +static void atkA4_trysetencore(void) { s32 i; @@ -8937,13 +8858,13 @@ static void atkA9_sleeptalk_choose_move(void) } } -static void atkAA_set_destinybond(void) +static void atkAA_setdestinybond(void) { gBattleMons[gBankAttacker].status2 |= STATUS2_DESTINY_BOND; gBattlescriptCurrInstr++; } -static void DestinyBondFlagUpdate(void) +static void TrySetDestinyBondToHappen(void) { u8 sideAttacker = GetBankSide(gBankAttacker); u8 sideTarget = GetBankSide(gBankTarget); @@ -8955,9 +8876,9 @@ static void DestinyBondFlagUpdate(void) } } -static void atkAB_DestinyBondFlagUpdate(void) +static void atkAB_trysetdestinybondtohappen(void) { - DestinyBondFlagUpdate(); + TrySetDestinyBondToHappen(); gBattlescriptCurrInstr++; } @@ -8976,7 +8897,7 @@ static void atkAC_remaininghptopower(void) gBattlescriptCurrInstr++; } -static void atkAD_spite_ppreduce(void) +static void atkAD_tryspiteppreduce(void) { if (gLastUsedMovesByBanks[gBankTarget] != 0 && gLastUsedMovesByBanks[gBankTarget] != 0xFFFF) @@ -9027,7 +8948,7 @@ static void atkAD_spite_ppreduce(void) } } -static void atkAE_heal_party_status(void) +static void atkAE_healpartystatus(void) { u32 zero = 0; u8 toHeal = 0; @@ -9140,7 +9061,7 @@ static void atkAF_cursetarget(void) } } -static void atkB0_set_spikes(void) +static void atkB0_trysetspikes(void) { u8 targetSide = GetBankSide(gBankAttacker) ^ BIT_SIDE; @@ -9157,13 +9078,13 @@ static void atkB0_set_spikes(void) } } -static void atkB1_set_foresight(void) +static void atkB1_setforesight(void) { gBattleMons[gBankTarget].status2 |= STATUS2_FORESIGHT; gBattlescriptCurrInstr++; } -static void atkB2_setperishsong(void) +static void atkB2_trysetperishsong(void) { s32 i; s32 notAffectedCount = 0; @@ -9196,7 +9117,7 @@ static void atkB3_rolloutdamagecalculation(void) if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) { CancelMultiTurnMoves(gBankAttacker); - gBattlescriptCurrInstr = BattleScript_PauseEffectivenessSoundResultMsgEndMove; + gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { @@ -9240,7 +9161,7 @@ static void atkB5_furycuttercalc(void) if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) { gDisableStructs[gBankAttacker].furyCutterCounter = 0; - gBattlescriptCurrInstr = BattleScript_PauseEffectivenessSoundResultMsgEndMove; + gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { @@ -9286,7 +9207,7 @@ static void atkB7_presentdamagecalculation(void) gBattleMoveDamage *= -1; } if (rand < 204) - gBattlescriptCurrInstr = BattleScript_PresentDamageTarget; + gBattlescriptCurrInstr = BattleScript_HitFromCritCalc; else if (gBattleMons[gBankTarget].maxHP == gBattleMons[gBankTarget].hp) gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else @@ -9296,7 +9217,7 @@ static void atkB7_presentdamagecalculation(void) } } -static void atkB8_set_safeguard(void) +static void atkB8_setsafeguard(void) { if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_SAFEGUARD) { @@ -9501,7 +9422,7 @@ static void atkBE_rapidspinfree(void) } } -static void atkBF_set_defense_curl(void) +static void atkBF_setdefensecurlbit(void) { gBattleMons[gBankAttacker].status2 |= STATUS2_DEFENSE_CURL; gBattlescriptCurrInstr++; @@ -9533,7 +9454,7 @@ static void atkC0_recoverbasedonsunlight(void) } #ifdef NONMATCHING -static void atkC1_hidden_power_calc(void) +static void atkC1_hiddenpowercalc(void) { u32 powerBits = 0; u32 typeBits = 0; @@ -9564,7 +9485,7 @@ static void atkC1_hidden_power_calc(void) #else __attribute__((naked)) -static void atkC1_hidden_power_calc(void) +static void atkC1_hiddenpowercalc(void) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -9707,7 +9628,7 @@ _080544F0:\n\ } #endif // NONMATCHING -static void atkC2_selectnexttarget(void) +static void atkC2_selectfirstvalidtarget(void) { for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) { @@ -9719,7 +9640,7 @@ static void atkC2_selectnexttarget(void) gBattlescriptCurrInstr++; } -static void atkC3_setfutureattack(void) +static void atkC3_trysetfutureattack(void) { if (gWishFutureKnock.futureSightCounter[gBankTarget] != 0) { @@ -9747,9 +9668,9 @@ static void atkC3_setfutureattack(void) } } -static void atkC4_beat_up(void) +static void atkC4_trydobeatup(void) { - struct Pokemon* party; + struct Pokemon *party; if (GetBankSide(gBankAttacker) == SIDE_PLAYER) party = gPlayerParty; @@ -9950,7 +9871,7 @@ static void atkD0_settaunt(void) } } -static void atkD1_set_helpinghand(void) +static void atkD1_trysethelpinghand(void) { gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); @@ -9968,7 +9889,7 @@ static void atkD1_set_helpinghand(void) } } -static void atkD2_swap_items(void) // trick +static void atkD2_tryswapitems(void) // trick { // opponent can't swap items with player in regular battles if (gBattleTypeFlags & BATTLE_TYPE_x4000000 @@ -10055,7 +9976,7 @@ static void atkD2_swap_items(void) // trick } } -static void atkD3_copy_ability(void) // role play +static void atkD3_trycopyability(void) // role play { if (gBattleMons[gBankTarget].ability != 0 && gBattleMons[gBankTarget].ability != ABILITY_WONDER_GUARD) @@ -10070,7 +9991,7 @@ static void atkD3_copy_ability(void) // role play } } -static void atkD4_wish_effect(void) +static void atkD4_trywish(void) { switch (gBattlescriptCurrInstr[1]) { @@ -10103,7 +10024,7 @@ static void atkD4_wish_effect(void) } } -static void atkD5_setroots(void) // ingrain +static void atkD5_trysetroots(void) // ingrain { if (gStatuses3[gBankAttacker] & STATUS3_ROOTED) { @@ -10168,7 +10089,7 @@ static void atkD9_scaledamagebyhealthratio(void) gBattlescriptCurrInstr++; } -static void atkDA_abilityswap(void) // skill swap +static void atkDA_tryswapabilities(void) // skill swap { if ((gBattleMons[gBankAttacker].ability == 0 && gBattleMons[gBankTarget].ability == 0) @@ -10188,7 +10109,7 @@ static void atkDA_abilityswap(void) // skill swap } } -static void atkDB_imprisoneffect(void) +static void atkDB_tryimprision(void) { if ((gStatuses3[gBankAttacker] & STATUS3_IMPRISONED_OTHERS)) { @@ -10230,7 +10151,7 @@ static void atkDB_imprisoneffect(void) } } -static void atkDC_setgrudge(void) +static void atkDC_trysetgrudge(void) { if (gStatuses3[gBankAttacker] & STATUS3_GRUDGE) { @@ -10313,7 +10234,7 @@ static void atkDE_asistattackselect(void) } } -static void atkDF_setmagiccoat(void) +static void atkDF_trysetmagiccoat(void) { gBankTarget = gBankAttacker; gSpecialStatuses[gBankAttacker].flag20 = 1; @@ -10328,7 +10249,7 @@ static void atkDF_setmagiccoat(void) } } -static void atkE0_setstealstatchange(void) // snatch +static void atkE0_trysetsnatch(void) // snatch { gSpecialStatuses[gBankAttacker].flag20 = 1; if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) // moves last turn @@ -10342,7 +10263,7 @@ static void atkE0_setstealstatchange(void) // snatch } } -static void atkE1_intimidate_string_loader(void) +static void atkE1_trygetintimidatetarget(void) { u8 side; @@ -10365,7 +10286,7 @@ static void atkE1_intimidate_string_loader(void) gBattlescriptCurrInstr += 5; } -static void atkE2_switchout_abilities(void) +static void atkE2_switchoutabilities(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -10502,7 +10423,7 @@ static void atkE5_pickup(void) gBattlescriptCurrInstr++; } -static void atkE6_castform_change_animation(void) +static void atkE6_docastformchangeanimation(void) { gActiveBank = gBattleScripting.bank; @@ -10515,7 +10436,7 @@ static void atkE6_castform_change_animation(void) gBattlescriptCurrInstr++; } -static void atkE7_castform_data_change(void) +static void atkE7_trycastformdatachange(void) { u8 form; @@ -10578,7 +10499,7 @@ static void atkE9_setweatherballtype(void) gBattlescriptCurrInstr++; } -static void atkEA_recycleitem(void) +static void atkEA_tryrecycleitem(void) { u16 *usedHeldItem; @@ -10619,7 +10540,7 @@ static void atkEB_settypetoterrain(void) } } -static void atkEC_pursuit_sth(void) +static void atkEC_pursuitrelated(void) { gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); @@ -10641,7 +10562,7 @@ static void atkEC_pursuit_sth(void) } } -static void atkED_802B4B4(void) +static void atkEF_snatchsetbanks(void) { gEffectBank = gBankAttacker; @@ -10827,7 +10748,7 @@ static void atkEF_pokeball_catch_calculation(void) } } -static void atkF0_give_caught_mon(void) +static void atkF0_givecaughtmon(void) { if (GiveMonToPlayer(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY) { @@ -10856,7 +10777,7 @@ static void atkF0_give_caught_mon(void) gBattlescriptCurrInstr++; } -static void atkF1_set_caught_mon_dex_flags(void) +static void atkF1_trysetcaughtmondexflags(void) { u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL); u32 personality = GetMonData(&gEnemyParty[0], MON_DATA_PERSONALITY, NULL); @@ -10872,7 +10793,7 @@ static void atkF1_set_caught_mon_dex_flags(void) } } -static void atkF2_display_dex_info(void) +static void atkF2_displaydexinfo(void) { u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL); @@ -10991,7 +10912,7 @@ void BattleDestroyYesNoCursorAt(u8 cursorPosition) CopyBgTilemapBufferToVram(0); } -static void atkF3_nickname_caught_poke(void) +static void atkF3_trygivecaughtmonnick(void) { switch (gBattleCommunication[MULTIUSE_STATE]) { @@ -11079,18 +11000,18 @@ static void atkF5_removeattackerstatus1(void) gBattlescriptCurrInstr++; } -static void atkF6_action_finished(void) +static void atkF6_finishaction(void) { gCurrentActionFuncId = ACTION_FINISHED; } -static void atkF7_turn_finished(void) +static void atkF7_finishturn(void) { gCurrentActionFuncId = ACTION_FINISHED; gCurrentTurnActionNumber = gNoOfAllBanks; } -static void atkF8_trainer_slide_back(void) +static void atkF8_trainerslideout(void) { gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]); EmitTrainerSlideBack(0); diff --git a/src/battle_util.c b/src/battle_util.c index ed3bdef98..0ec98d125 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -9,6 +9,7 @@ #include "items.h" #include "util.h" #include "battle_move_effects.h" +#include "battle_scripts.h" #include "rng.h" #include "text.h" #include "string_util.h" @@ -60,119 +61,6 @@ extern u8 gSentPokesToOpponent[2]; extern const struct BattleMove gBattleMoves[]; -// scripts -extern const u8 gUnknown_082DAE2A[]; -extern const u8 gUnknown_082DAE1F[]; -extern const u8 gUnknown_082DB089[]; -extern const u8 gUnknown_082DB098[]; -extern const u8 gUnknown_082DB0AF[]; -extern const u8 gUnknown_082DB0A0[]; -extern const u8 gUnknown_082DB185[]; -extern const u8 gUnknown_082DB181[]; -extern const u8 gUnknown_082DB812[]; -extern const u8 gUnknown_082DB076[]; -extern const u8 BattleScript_NoMovesLeft[]; -extern const u8 gUnknown_082DACFA[]; -extern const u8 gUnknown_082DAD0B[]; -extern const u8 gUnknown_082DACC9[]; -extern const u8 gUnknown_082DAC47[]; -extern const u8 gUnknown_082DACE0[]; -extern const u8 gUnknown_082DACD2[]; -extern const u8 BattleScript_WishComesTrue[]; -extern const u8 gUnknown_082DACC9[]; -extern const u8 gUnknown_082DAC2C[]; -extern const u8 BattleScript_IngrainTurnHeal[]; -extern const u8 BattleScript_LeechSeedTurnDrain[]; -extern const u8 BattleScript_PoisonTurnDmg[]; -extern const u8 BattleScript_BurnTurnDmg[]; -extern const u8 BattleScript_NightmareTurnDmg[]; -extern const u8 BattleScript_CurseTurnDmg[]; -extern const u8 BattleScript_WrapTurnDmg[]; -extern const u8 BattleScript_WrapEnds[]; -extern const u8 gUnknown_082DB234[]; -extern const u8 gUnknown_082DB2A6[]; -extern const u8 BattleScript_ThrashConfuses[]; -extern const u8 BattleScript_DisabledNoMore[]; -extern const u8 BattleScript_EncoredNoMore[]; -extern const u8 BattleScript_YawnMakesAsleep[]; -extern const u8 gUnknown_082DAFE4[]; -extern const u8 gUnknown_082DB8F3[]; -extern const u8 gUnknown_082DAF05[]; -extern const u8 gUnknown_082DAF20[]; -extern const u8 gUnknown_082DA7C4[]; -extern const u8 gUnknown_082DA7CD[]; -extern const u8 BattleScript_MoveUsedWokeUp[]; -extern const u8 BattleScript_MoveUsedIsAsleep[]; -extern const u8 BattleScript_MoveUsedIsFrozen[]; -extern const u8 BattleScript_MoveUsedUnfroze[]; -extern const u8 BattleScript_MoveUsedLoafingAround[]; -extern const u8 BattleScript_MoveUsedMustRecharge[]; -extern const u8 BattleScript_MoveUsedFlinched[]; -extern const u8 BattleScript_MoveUsedIsDisabled[]; -extern const u8 BattleScript_MoveUsedIsTaunted[]; -extern const u8 BattleScript_MoveUsedIsImprisoned[]; -extern const u8 BattleScript_MoveUsedIsConfused[]; -extern const u8 BattleScript_MoveUsedIsConfusedNoMore[]; -extern const u8 BattleScript_MoveUsedIsParalyzed[]; -extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[]; -extern const u8 BattleScript_MoveUsedIsInLove[]; -extern const u8 BattleScript_BideStoringEnergy[]; -extern const u8 BattleScript_BideAttack[]; -extern const u8 BattleScript_BideNoEnergyToAttack[]; -extern const u8 gUnknown_082DACE7[]; -extern const u8 BattleScript_DrizzleActivates[]; -extern const u8 BattleScript_SandstreamActivates[]; -extern const u8 BattleScript_DroughtActivates[]; -extern const u8 BattleScript_CastformChange[]; -extern const u8 BattleScript_RainDishActivates[]; -extern const u8 BattleScript_ShedSkinActivates[]; -extern const u8 BattleScript_SpeedBoostActivates[]; -extern const u8 BattleScript_SoundproofProtected[]; -extern const u8 BattleScript_MoveHPDrain[]; -extern const u8 BattleScript_MoveHPDrain_PPLoss[]; -extern const u8 BattleScript_FlashFireBoost[]; -extern const u8 BattleScript_FlashFireBoost_PPLoss[]; -extern const u8 gUnknown_082DB592[]; -extern const u8 gUnknown_082DB591[]; -extern const u8 BattleScript_ColorChangeActivates[]; -extern const u8 BattleScript_RoughSkinActivates[]; -extern const u8 BattleScript_ApplySecondaryEffect[]; -extern const u8 BattleScript_CuteCharmActivates[]; -extern const u8 gUnknown_082DB68C[]; -extern const u8 BattleScript_SynchronizeActivates[]; -extern const u8 gUnknown_082DB4B8[]; -extern const u8 gUnknown_082DB4C1[]; -extern const u8 BattleScript_TraceActivates[]; - -extern const u8 BattleScript_WhiteHerbEnd2[]; -extern const u8 BattleScript_WhiteHerbRet[]; -extern const u8 BattleScript_ItemHealHP_RemoveItem[]; -extern const u8 BattleScript_BerryPPHealEnd2[]; -extern const u8 BattleScript_ItemHealHP_End2[]; -extern const u8 BattleScript_BerryConfuseHealEnd2[]; -extern const u8 BattleScript_BerryStatRaiseEnd2[]; -extern const u8 BattleScript_BerryFocusEnergyEnd2[]; -extern const u8 BattleScript_BerryCurePrlzEnd2[]; -extern const u8 BattleScript_BerryCurePsnEnd2[]; -extern const u8 BattleScript_BerryCureBrnEnd2[]; -extern const u8 BattleScript_BerryCureFrzEnd2[]; -extern const u8 BattleScript_BerryCureSlpEnd2[]; -extern const u8 BattleScript_BerryCureConfusionEnd2[]; -extern const u8 BattleScript_BerryCureChosenStatusEnd2[]; -extern const u8 BattleScript_BerryCureParRet[]; -extern const u8 BattleScript_BerryCurePsnRet[]; -extern const u8 BattleScript_BerryCureBrnRet[]; -extern const u8 BattleScript_BerryCureFrzRet[]; -extern const u8 BattleScript_BerryCureSlpRet[]; -extern const u8 BattleScript_BerryCureConfusionRet[]; -extern const u8 BattleScript_BerryCureChosenStatusRet[]; -extern const u8 BattleScript_ItemHealHP_Ret[]; - -extern const u8 gUnknown_082DB695[]; //disobedient while asleep -extern const u8 gUnknown_082DB6A5[]; //disobedient, uses a random move -extern const u8 gUnknown_082DB6D9[]; //disobedient, went to sleep -extern const u8 gUnknown_082DB6F0[]; //disobedient, hits itself - extern u8 weather_get_current(void); // rom const data @@ -196,13 +84,13 @@ u8 GetBattleBank(u8 caseId) case BS_GET_EFFECT_BANK: ret = gEffectBank; break; - case 7: + case BS_GET_BANK_0: ret = 0; break; case BS_GET_SCRIPTING_BANK: ret = gBattleScripting.bank; break; - case 3: + case BS_GET_gBank1: ret = gBank1; break; case 5: @@ -474,12 +362,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DAE2A; + gUnknown_02024230[gActiveBank] = BattleScript_82DAE2A; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DAE1F; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DAE1F; limitations = 1; } } @@ -489,12 +377,12 @@ u8 TrySetCantSelectMoveBattleScript(void) CancelMultiTurnMoves(gActiveBank); if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DB098; + gUnknown_02024230[gActiveBank] = BattleScript_82DB098; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB089; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB089; limitations++; } } @@ -504,12 +392,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DB0AF; + gUnknown_02024230[gActiveBank] = BattleScript_82DB0AF; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB0A0; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB0A0; limitations++; } } @@ -519,12 +407,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DB185; + gUnknown_02024230[gActiveBank] = BattleScript_82DB185; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB181; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB181; limitations++; } } @@ -546,7 +434,7 @@ u8 TrySetCantSelectMoveBattleScript(void) } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB812; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB812; limitations++; } } @@ -559,7 +447,7 @@ u8 TrySetCantSelectMoveBattleScript(void) } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB076; + gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_82DB076; limitations++; } } @@ -694,7 +582,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].reflectTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; - BattleScriptExecute(gUnknown_082DACFA); + BattleScriptExecute(BattleScript_82DACFA); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; gBattleTextBuff1[2] = MOVE_REFLECT; @@ -723,7 +611,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].lightscreenTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; - BattleScriptExecute(gUnknown_082DACFA); + BattleScriptExecute(BattleScript_82DACFA); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; @@ -752,7 +640,7 @@ u8 UpdateTurnCounters(void) && --gSideTimers[sideBank].mistTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; - BattleScriptExecute(gUnknown_082DACFA); + BattleScriptExecute(BattleScript_82DACFA); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; @@ -781,7 +669,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].safeguardTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD; - BattleScriptExecute(gUnknown_082DAD0B); + BattleScriptExecute(BattleScript_82DAD0B); effect++; } } @@ -836,7 +724,7 @@ u8 UpdateTurnCounters(void) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else gBattleCommunication[MULTISTRING_CHOOSER] = 0; - BattleScriptExecute(gUnknown_082DAC2C); + BattleScriptExecute(BattleScript_82DAC2C); effect++; } gBattleStruct->turncountersTracker++; @@ -847,10 +735,10 @@ u8 UpdateTurnCounters(void) if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_SANDSTORM_TEMPORARY; - gBattlescriptCurrInstr = gUnknown_082DACC9; + gBattlescriptCurrInstr = BattleScript_82DACC9; } else - gBattlescriptCurrInstr = gUnknown_082DAC47; + gBattlescriptCurrInstr = BattleScript_82DAC47; gBattleScripting.animArg1 = 0xC; gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -865,10 +753,10 @@ u8 UpdateTurnCounters(void) if (!(gBattleWeather & WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_SUN_TEMPORARY; - gBattlescriptCurrInstr = gUnknown_082DACE0; + gBattlescriptCurrInstr = BattleScript_82DACE0; } else - gBattlescriptCurrInstr = gUnknown_082DACD2; + gBattlescriptCurrInstr = BattleScript_82DACD2; BattleScriptExecute(gBattlescriptCurrInstr); effect++; @@ -881,10 +769,10 @@ u8 UpdateTurnCounters(void) if (--gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_HAIL; - gBattlescriptCurrInstr = gUnknown_082DACC9; + gBattlescriptCurrInstr = BattleScript_82DACC9; } else - gBattlescriptCurrInstr = gUnknown_082DAC47; + gBattlescriptCurrInstr = BattleScript_82DAC47; gBattleScripting.animArg1 = 0xD; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -1075,7 +963,7 @@ u8 TurnBasedEffects(void) gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleCommunication[MULTISTRING_CHOOSER] = 1; - BattleScriptExecute(gUnknown_082DB234); + BattleScriptExecute(BattleScript_82DB234); gActiveBank = gBankAttacker; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); @@ -1106,7 +994,7 @@ u8 TurnBasedEffects(void) gBattleCommunication[MULTISTRING_CHOOSER] = 1; CancelMultiTurnMoves(gActiveBank); } - BattleScriptExecute(gUnknown_082DB2A6); + BattleScriptExecute(BattleScript_82DB2A6); effect = 1; } } @@ -1259,7 +1147,7 @@ bool8 sub_8041364(void) gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; - BattleScriptExecute(gUnknown_082DAFE4); + BattleScriptExecute(BattleScript_82DAFE4); if (gWishFutureKnock.futureSightCounter[gActiveBank] == 0 && gWishFutureKnock.futureSightCounter[gActiveBank ^ 2] == 0) @@ -1298,12 +1186,12 @@ bool8 sub_8041364(void) { gStatuses3[gActiveBank] &= ~STATUS3_PERISH_SONG; gBattleMoveDamage = gBattleMons[gActiveBank].hp; - gBattlescriptCurrInstr = gUnknown_082DAF05; + gBattlescriptCurrInstr = BattleScript_82DAF05; } else { gDisableStructs[gActiveBank].perishSongTimer1--; - gBattlescriptCurrInstr = gUnknown_082DAF20; + gBattlescriptCurrInstr = BattleScript_82DAF20; } BattleScriptExecute(gBattlescriptCurrInstr); return 1; @@ -1326,8 +1214,8 @@ bool8 sub_8041364(void) for (i = 0; i < 2; i++) CancelMultiTurnMoves(i); - gBattlescriptCurrInstr = gUnknown_082DB8F3; - BattleScriptExecute(gUnknown_082DB8F3); + gBattlescriptCurrInstr = BattleScript_82DB8F3; + BattleScriptExecute(BattleScript_82DB8F3); gBattleStruct->field_1A0++; return 1; } @@ -1367,7 +1255,7 @@ bool8 sub_8041728(void) && !(gBattleStruct->field_DF & gBitTable[gBattlePartyID[gBattleStruct->field_4E]]) && !(gAbsentBankFlags & gBitTable[gBattleStruct->field_4E])) { - BattleScriptExecute(gUnknown_082DA7C4); + BattleScriptExecute(BattleScript_82DA7C4); gBattleStruct->field_4D = 2; return TRUE; } @@ -1392,7 +1280,7 @@ bool8 sub_8041728(void) if (gBattleMons[gBattleStruct->field_4E].hp == 0 && !(gAbsentBankFlags & gBitTable[gBattleStruct->field_4E])) { - BattleScriptExecute(gUnknown_082DA7CD); + BattleScriptExecute(BattleScript_82DA7CD); gBattleStruct->field_4D = 5; return TRUE; } @@ -1961,7 +1849,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (effect) { gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current(); - BattleScriptPushCursorAndCallback(gUnknown_082DACE7); + BattleScriptPushCursorAndCallback(BattleScript_82DACE7); } break; case ABILITY_DRIZZLE: @@ -2167,9 +2055,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBattleMons[bank].maxHP == gBattleMons[bank].hp) { if ((gProtectStructs[gBankAttacker].notFirstStrike)) - gBattlescriptCurrInstr = gUnknown_082DB592; + gBattlescriptCurrInstr = BattleScript_82DB592; else - gBattlescriptCurrInstr = gUnknown_082DB591; + gBattlescriptCurrInstr = BattleScript_82DB591; } else { @@ -2380,7 +2268,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } BattleScriptPushCursor(); - gBattlescriptCurrInstr = gUnknown_082DB68C; + gBattlescriptCurrInstr = BattleScript_82DB68C; gBattleScripting.bank = bank; gActiveBank = bank; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); @@ -2445,7 +2333,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { gLastUsedAbility = ABILITY_INTIMIDATE; gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); - BattleScriptPushCursorAndCallback(gUnknown_082DB4B8); + BattleScriptPushCursorAndCallback(BattleScript_82DB4B8); gBattleStruct->intimidateBank = i; effect++; break; @@ -2517,7 +2405,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gLastUsedAbility = ABILITY_INTIMIDATE; gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); BattleScriptPushCursor(); - gBattlescriptCurrInstr = gUnknown_082DB4C1; + gBattlescriptCurrInstr = BattleScript_82DB4C1; gBattleStruct->intimidateBank = i; effect++; break; @@ -3536,7 +3424,7 @@ u8 IsPokeDisobedient(void) gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RAGE); if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) { - gBattlescriptCurrInstr = gUnknown_082DB695; + gBattlescriptCurrInstr = BattleScript_82DB695; return 1; } @@ -3559,7 +3447,7 @@ u8 IsPokeDisobedient(void) } while (gBitTable[gCurrMovePos] & calc); gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - gBattlescriptCurrInstr = gUnknown_082DB6A5; + gBattlescriptCurrInstr = BattleScript_82DB6A5; gBankTarget = GetMoveTarget(gRandomMove, 0); gHitMarker |= HITMARKER_x200000; return 2; @@ -3581,7 +3469,7 @@ u8 IsPokeDisobedient(void) } if (i == gNoOfAllBanks) { - gBattlescriptCurrInstr = gUnknown_082DB6D9; + gBattlescriptCurrInstr = BattleScript_82DB6D9; return 1; } } @@ -3590,7 +3478,7 @@ u8 IsPokeDisobedient(void) { gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); gBankTarget = gBankAttacker; - gBattlescriptCurrInstr = gUnknown_082DB6F0; + gBattlescriptCurrInstr = BattleScript_82DB6F0; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; return 2; } |