diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-11-06 11:26:22 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-11-06 11:26:22 -0500 |
commit | 95d19b8e8821d8ac8ad998d4b7109b456335d6bd (patch) | |
tree | c4824525ef6de5abde1b9f1965eb7ee08a2a70c9 | |
parent | 2ed15a3bb5275376649873490bd67a6dea5068c1 (diff) |
Sync battle script commands with emerald
-rw-r--r-- | asm/macros/battle_script.inc | 1093 | ||||
-rw-r--r-- | data/battle_scripts_1.s | 2171 | ||||
-rw-r--r-- | include/constants/battle.h | 1 |
3 files changed, 1726 insertions, 1539 deletions
diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index fea575042..5c3c141ca 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1,346 +1,333 @@ -@ 0 == -@ 1 != -@ 2 < -@ 3 > -@ 4 &= - - .macro calculatedamage - critical - atk5 - atk6 - atk7 - .endm - - +@ commands .macro attackcanceler - .byte 0x00 + .byte 0x0 .endm - .macro accuracycheck address, param1 - .byte 0x01 - .4byte \address + .macro accuracycheck param0:req, param1:req + .byte 0x1 + .4byte \param0 .2byte \param1 .endm .macro attackstring - .byte 0x02 + .byte 0x2 .endm .macro ppreduce - .byte 0x03 + .byte 0x3 .endm .macro critcalc - .byte 0x04 + .byte 0x4 .endm - .macro atk5 - .byte 0x05 + .macro damagecalc + .byte 0x5 .endm - .macro atk6 - .byte 0x06 + .macro typecalc + .byte 0x6 .endm - .macro atk7 - .byte 0x07 + .macro adjustnormaldamage + .byte 0x7 .endm - .macro atk8 - .byte 0x08 + .macro adjustnormaldamage2 + .byte 0x8 .endm .macro attackanimation - .byte 0x09 + .byte 0x9 .endm .macro waitanimation - .byte 0x0a + .byte 0xa .endm - .macro graphicalhpupdate bank - .byte 0x0b - .byte \bank + .macro healthbarupdate battler:req + .byte 0xb + .byte \battler .endm - .macro datahpupdate bank - .byte 0x0c - .byte \bank + .macro datahpupdate battler:req + .byte 0xc + .byte \battler .endm .macro critmessage - .byte 0x0d + .byte 0xd .endm - .macro missmessage - .byte 0x0e + .macro effectivenesssound + .byte 0xe .endm .macro resultmessage - .byte 0x0f + .byte 0xf .endm - .macro printstring string + .macro printstring id:req .byte 0x10 - .2byte \string + .2byte \id .endm - .macro printstring2 string + .macro printselectionstring id:req .byte 0x11 - .2byte \string + .2byte \id .endm - .macro waitmessage delay + .macro waitmessage param0:req .byte 0x12 - .2byte \delay + .2byte \param0 .endm - .macro printfromtable table + .macro printfromtable ptr:req .byte 0x13 - .4byte \table + .4byte \ptr .endm - .macro printfromtable2 table + .macro printselectionstringfromtable ptr:req .byte 0x14 - .4byte \table + .4byte \ptr .endm - .macro seteffectwithchancetarget + .macro seteffectwithchance .byte 0x15 .endm - .macro seteffecttarget + .macro seteffectprimary .byte 0x16 .endm - .macro seteffectuser + .macro seteffectsecondary .byte 0x17 .endm - .macro clearstatus bank + .macro clearstatusfromeffect battler:req .byte 0x18 - .byte \bank + .byte \battler .endm - .macro faintpokemon bank, param2, param3 + .macro tryfaintmon battler:req, fromMove:req, ptr:req .byte 0x19 - .byte \bank - .byte \param2 - .4byte \param3 + .byte \battler + .byte \fromMove + .4byte \ptr .endm - .macro atk1a param1 + .macro dofaintanimation battler:req .byte 0x1a - .byte \param1 + .byte \battler .endm - .macro atk1b bank + .macro cleareffectsonfaint battler:req .byte 0x1b - .byte \bank + .byte \battler .endm - .macro jumpifstatus bank, status, address + .macro jumpifstatus battler:req, status1:req, ptr:req .byte 0x1c - .byte \bank - .4byte \status - .4byte \address + .byte \battler + .4byte \status1 + .4byte \ptr .endm - .macro jumpifsecondarytstatus bank, status, address + .macro jumpifstatus2 battler:req, status2:req, ptr:req .byte 0x1d - .byte \bank - .4byte \status - .4byte \address + .byte \battler + .4byte \status2 + .4byte \ptr .endm - .macro jumpifability bank, ability, address + .macro jumpifability param0:req, ability:req, ptr:req .byte 0x1e - .byte \bank + .byte \param0 .byte \ability - .4byte \address + .4byte \ptr .endm - .macro jumpifhalverset bank, status, address + .macro jumpifsideaffecting battler:req, sidestatus:req, ptr:req .byte 0x1f - .byte \bank - .2byte \status - .4byte \address + .byte \battler + .2byte \sidestatus + .4byte \ptr .endm - .macro jumpifstat bank, flag, quantity, statid, address + .macro jumpifstat battler:req, ifflag:req, stat:req, value:req, ptr .byte 0x20 - .byte \bank - .byte \flag - .byte \quantity - .byte \statid - .4byte \address + .byte \battler + .byte \ifflag + .byte \stat + .byte \value + .4byte \ptr .endm - .macro jumpifspecialstatusflag bank, mask, status, address + .macro jumpifstatus3condition battler:req, status3:req, param2:req, ptr:req .byte 0x21 - .byte \bank - .4byte \mask - .byte \status - .4byte \address + .byte \battler + .4byte \status3 + .byte \param2 + .4byte \ptr .endm - .macro jumpiftype bank, type, address + .macro jumpiftype battler:req, type:req, ptr:req .byte 0x22 - .byte \bank + .byte \battler .byte \type - .4byte \address + .4byte \ptr .endm - .macro atk23 bank + .macro getexp battler:req .byte 0x23 - .byte \bank + .byte \battler .endm - .macro atk24 address + .macro atk24 ptr:req .byte 0x24 - .4byte \address + .4byte \ptr .endm - .macro atk25 + .macro movevaluescleanup .byte 0x25 .endm - .macro atk26 param1 + .macro setmultihit value:req .byte 0x26 - .byte \param1 + .byte \value .endm - .macro atk27 address + .macro decrementmultihit value:req .byte 0x27 - .4byte \address + .4byte \value .endm - .macro jump address + .macro goto ptr:req .byte 0x28 - .4byte \address + .4byte \ptr .endm - .macro jumpifbyte ifflag, checkaddr, compare, address + .macro jumpifbyte ifflag:req, param1:req, param2:req, param3:req .byte 0x29 .byte \ifflag - .4byte \checkaddr - .byte \compare - .4byte \address + .4byte \param1 + .byte \param2 + .4byte \param3 .endm - .macro jumpifhalfword ifflag, checkaddr, compare, address + .macro jumpifhalfword ifflag:req, param1:req, param2:req, param3:req .byte 0x2a .byte \ifflag - .4byte \checkaddr - .2byte \compare - .4byte \address + .4byte \param1 + .2byte \param2 + .4byte \param3 .endm - .macro jumpifword ifflag, checkaddr, compare, address + .macro jumpifword ifflag:req, param1:req, param2:req, param3:req .byte 0x2b .byte \ifflag - .4byte \checkaddr - .4byte \compare - .4byte \address + .4byte \param1 + .4byte \param2 + .4byte \param3 .endm - .macro jumpifarrayequal mem1, mem2, size, address + .macro jumpifarrayequal param0:req, param1:req, param2:req, param3:req .byte 0x2c - .4byte \mem1 - .4byte \mem2 - .byte \size - .4byte \address + .4byte \param0 + .4byte \param1 + .byte \param2 + .4byte \param3 .endm - .macro jumpifarraynotequal mem1, mem2, size, address + .macro jumpifarraynotequal param0:req, param1:req, param2:req, param3:req .byte 0x2d - .4byte \mem1 - .4byte \mem2 - .byte \size - .4byte \address + .4byte \param0 + .4byte \param1 + .byte \param2 + .4byte \param3 .endm - .macro setbyte pointer, value + .macro setbyte ptr:req, param1:req .byte 0x2e - .4byte \pointer - .byte \value + .4byte \ptr + .byte \param1 .endm - .macro addbyte pointer, value + .macro addbyte ptr:req, param1:req .byte 0x2f - .4byte \pointer - .byte \value + .4byte \ptr + .byte \param1 .endm - .macro subtractbyte pointer, value + .macro subbyte ptr:req, param1:req .byte 0x30 - .4byte \pointer - .byte \value + .4byte \ptr + .byte \param1 .endm - .macro copyarray destination, source, size + .macro copyarray param0:req, param1:req, param2:req .byte 0x31 - .4byte \destination - .4byte \source - .byte \size + .4byte \param0 + .4byte \param1 + .byte \param2 .endm - .macro atk32 param1, param2, param3, byte + .macro copyarraywithindex param0:req, param1:req, param2:req, param3:req .byte 0x32 + .4byte \param0 .4byte \param1 .4byte \param2 - .4byte \param3 - .byte \byte + .byte \param3 .endm - .macro orbyte pointer, value + .macro orbyte ptr:req, param1:req .byte 0x33 - .4byte \pointer - .byte \value + .4byte \ptr + .byte \param1 .endm - .macro orhalfword pointer, value + .macro orhalfword ptr:req, param1:req .byte 0x34 - .4byte \pointer - .2byte \value + .4byte \ptr + .2byte \param1 .endm - .macro orword pointer, value + .macro orword ptr:req, param1:req .byte 0x35 - .4byte \pointer - .4byte \value + .4byte \ptr + .4byte \param1 .endm - .macro bicbyte pointer, value + .macro bicbyte ptr:req, param1:req .byte 0x36 - .4byte \pointer - .byte \value + .4byte \ptr + .byte \param1 .endm - .macro bichalfword pointer, value + .macro bichalfword ptr:req, param1:req .byte 0x37 - .4byte \pointer - .2byte \value + .4byte \ptr + .2byte \param1 .endm - .macro bicword pointer, value + .macro bicword ptr:req, param1:req .byte 0x38 - .4byte \pointer - .4byte \value + .4byte \ptr + .4byte \param1 .endm - .macro pause pause_duration + .macro pause param0:req .byte 0x39 - .2byte \pause_duration + .2byte \param0 .endm - .macro waitstateatk + .macro waitstate .byte 0x3a .endm - .macro somethinghealatk3b bank + .macro healthbar_update battler:req .byte 0x3b - .byte \bank + .byte \battler .endm .macro return @@ -359,287 +346,319 @@ .byte 0x3f .endm - .macro atk40 address + .macro jumpifaffectedbyprotect ptr:req .byte 0x40 - .4byte \address + .4byte \ptr .endm - .macro callatk address + .macro call ptr:req .byte 0x41 - .4byte \address + .4byte \ptr .endm - .macro jumpiftype2 bank, type, address + .macro jumpiftype2 battler:req, type:req, ptr:req .byte 0x42 - .byte \bank + .byte \battler .byte \type - .4byte \address + .4byte \ptr .endm - .macro jumpifabilitypresent ability, address + .macro jumpifabilitypresent ability:req, ptr:req .byte 0x43 .byte \ability - .4byte \address + .4byte \ptr .endm - .macro atk44 + .macro endselectionscript .byte 0x44 .endm - .macro playanimation bank, animation, var_address + .macro playanimation battler:req, param1:req, param2:req .byte 0x45 - .byte \bank - .byte \animation - .4byte \var_address + .byte \battler + .byte \param1 + .4byte \param2 .endm - .macro atk46 bank, address, int + .macro playanimation2 battler:req, param1:req, param2:req .byte 0x46 - .byte \bank - .4byte \address - .4byte \int + .byte \battler + .4byte \param1 + .4byte \param2 .endm - .macro atk47 + .macro setgraphicalstatchangevalues .byte 0x47 .endm - .macro playstatchangeanimation bank, color, byte + .macro playstatchangeanimation battler:req, param1:req, param2:req .byte 0x48 - .byte \bank - .byte \color - .byte \byte + .byte \battler + .byte \param1 + .byte \param2 .endm - .macro atk49 byte1, byte2 + .macro moveend param0:req, param1:req .byte 0x49 - .byte \byte1 - .byte \byte2 + .byte \param0 + .byte \param1 .endm - .macro damagecalc2 + @ Help macros for 5 uses of moveend command + + @ All cases + .macro moveendall + setbyte sMOVEEND_STATE, 0 + moveend 0, 0 + .endm + + @ Chosen case + .macro moveendcase case:req + setbyte sMOVEEND_STATE, \case + moveend 1, 0 + .endm + + @ All cases from (inclusive) + .macro moveendfrom from:req + setbyte sMOVEEND_STATE, \from + moveend 0, 0 + .endm + + @ All cases from 0 to (not inclusive) + .macro moveendto to:req + setbyte sMOVEEND_STATE, 0 + moveend 2, \to + .endm + + @ Cases from (inclusive) to (not inclusive) + .macro moveendfromto from:req, to:req + setbyte sMOVEEND_STATE, \from + moveend 2, \to + .endm + + .macro typecalc2 .byte 0x4a .endm - .macro atk4b + .macro returnatktoball .byte 0x4b .endm - .macro switch1 bank + .macro getswitchedmondata battler:req .byte 0x4c - .byte \bank + .byte \battler .endm - .macro switch2 bank + .macro switchindataupdate battler:req .byte 0x4d - .byte \bank + .byte \battler .endm - .macro switch3 bank, byte + .macro switchinanim battler:req, dontclearsubstitutebit:req .byte 0x4e - .byte \bank - .byte \byte + .byte \battler + .byte \dontclearsubstitutebit .endm - .macro jumpifcannotswitch bank, address + .macro jumpifcantswitch battler:req, ptr:req .byte 0x4f - .byte \bank - .4byte \address + .byte \battler + .4byte \ptr .endm - .macro openpartyscreen bank, address + .macro openpartyscreen param0:req, param1:req .byte 0x50 - .byte \bank - .4byte \address + .byte \param0 + .4byte \param1 .endm - .macro atk51 bank, param2 + .macro switchhandleorder battler:req, param1:req .byte 0x51 - .byte \bank - .byte \param2 + .byte \battler + .byte \param1 .endm - .macro atk52 bank + .macro switchineffects battler:req .byte 0x52 - .byte \bank + .byte \battler .endm - .macro atk53 bank + .macro trainerslidein battler:req .byte 0x53 - .byte \bank + .byte \battler .endm - .macro atk54 word + .macro playse song:req .byte 0x54 - .2byte \word + .2byte \song .endm - .macro atk55 int + .macro fanfare song:req .byte 0x55 - .2byte \int + .2byte \song .endm - .macro atk56 bank_or_side + .macro playfaintcry battler:req .byte 0x56 - .byte \bank_or_side + .byte \battler .endm .macro atk57 .byte 0x57 .endm - .macro atk58 bank + .macro returntoball battler:req .byte 0x58 - .byte \bank + .byte \battler .endm - .macro checkiflearnmoveinbattle param1, param2, bank_maybe + .macro handlelearnnewmove param0:req, param1:req, param2:req .byte 0x59 + .4byte \param0 .4byte \param1 - .4byte \param2 - .byte \bank_maybe + .byte \param2 .endm - .macro atk5a address + .macro yesnoboxlearnmove param0:req .byte 0x5a - .4byte \address + .4byte \param0 .endm - .macro atk5b address + .macro yesnoboxstoplearningmove param0:req .byte 0x5b - .4byte \address + .4byte \param0 .endm - .macro atk5c bank + .macro hitanimation battler:req .byte 0x5c - .byte \bank + .byte \battler .endm - .macro atk5d addr + .macro getmoneyreward addr .byte 0x5d .4byte \addr .endm - .macro atk5e bank + .macro atk5E battler:req .byte 0x5e - .byte \bank + .byte \battler .endm - .macro atk5f + .macro swapattackerwithtarget .byte 0x5f .endm - .macro atk60 byte + .macro incrementgamestat param0:req .byte 0x60 - .byte \byte + .byte \param0 .endm - .macro atk61 bank_or_side + .macro drawpartystatussummary battler:req .byte 0x61 - .byte \bank_or_side + .byte \battler .endm - .macro atk62_hidepartystatussummary bank_or_side + .macro hidepartystatussummary battler:req .byte 0x62 - .byte \bank_or_side + .byte \battler .endm - .macro jumptoattack bank + .macro jumptocalledmove param0:req .byte 0x63 - .byte \bank + .byte \param0 .endm - .macro statusanimation bank + .macro statusanimation battler:req .byte 0x64 - .byte \bank + .byte \battler .endm - .macro atk65 bank_or_side, address + .macro status2animation battler:req, status2:req .byte 0x65 - .byte \bank_or_side - .4byte \address + .byte \battler + .4byte \status2 .endm - .macro atk66 bank_or_side, bank_or_side2, address + .macro chosenstatusanimation battler:req, param1:req, param2:req .byte 0x66 - .byte \bank_or_side - .byte \bank_or_side2 - .4byte \address + .byte \battler + .byte \param1 + .4byte \param2 .endm - .macro atk67 + .macro yesnobox .byte 0x67 .endm - .macro atk68 + .macro cancelallactions .byte 0x68 .endm - .macro atk69 + .macro adjustsetdamage .byte 0x69 .endm - .macro removeitem bank + .macro removeitem battler:req .byte 0x6a - .byte \bank + .byte \battler .endm - .macro atk6b + .macro atknameinbuff1 .byte 0x6b .endm - .macro atk6c + .macro drawlvlupbox .byte 0x6c .endm - .macro atk6d + .macro resetsentmonsvalue .byte 0x6d .endm - .macro atk6e + .macro setatktoplayer0 .byte 0x6e .endm - .macro atk6f bank + .macro makevisible battler:req .byte 0x6f - .byte \bank + .byte \battler .endm - .macro atk70 bank + .macro recordlastability battler:req .byte 0x70 - .byte \bank + .byte \battler .endm - .macro atk71 + .macro buffermovetolearn .byte 0x71 .endm - .macro atk72 address + .macro jumpifplayerran ptr:req .byte 0x72 - .4byte \address + .4byte \ptr .endm - .macro atk73 bank + .macro hpthresholds battler:req .byte 0x73 - .byte \bank + .byte \battler .endm - .macro atk74 bank + .macro hpthresholds2 battler:req .byte 0x74 - .byte \bank + .byte \battler .endm - .macro atk75 + .macro useitemonopponent .byte 0x75 .endm - .macro atk76 bank, byte + .macro various battler:req, param1:req .byte 0x76 - .byte \bank - .byte \byte + .byte \battler + .byte \param1 .endm - .macro setprotect + .macro setprotectlike .byte 0x77 .endm @@ -647,22 +666,22 @@ .byte 0x78 .endm - .macro setuserhptozero + .macro setatkhptozero .byte 0x79 .endm - .macro jumpwhiletargetvalid address + .macro jumpifnexttargetvalid ptr:req .byte 0x7a - .4byte \address + .4byte \ptr .endm - .macro setdamageasrestorehalfmaxhp address, byte + .macro tryhealhalfhealth param0:req, battler:req .byte 0x7b - .4byte \address - .byte \byte + .4byte \param0 + .byte \battler .endm - .macro jumptolastusedattack + .macro trymirrormove .byte 0x7c .endm @@ -674,56 +693,56 @@ .byte 0x7e .endm - .macro setleechseed + .macro setseeded .byte 0x7f .endm - .macro manipulatedamage id + .macro manipulatedamage param0:req .byte 0x80 - .byte \id + .byte \param0 .endm - .macro setrest address + .macro trysetrest param0:req .byte 0x81 - .4byte \address + .4byte \param0 .endm - .macro jumpifnotfirstturn address + .macro jumpifnotfirstturn ptr:req .byte 0x82 - .4byte \address + .4byte \ptr .endm - .macro nop3 + .macro nop .byte 0x83 .endm - .macro jumpifcannotsleep address + .macro jumpifcantmakeasleep param0:req .byte 0x84 - .4byte \address + .4byte \param0 .endm .macro stockpile .byte 0x85 .endm - .macro stockpiletobasedamage address + .macro stockpiletobasedamage param0:req .byte 0x86 - .4byte \address + .4byte \param0 .endm - .macro stockpiletohprecovery address + .macro stockpiletohpheal param0:req .byte 0x87 - .4byte \address + .4byte \param0 .endm .macro negativedamage .byte 0x88 .endm - .macro statbuffchange target, address + .macro statbuffchange param0:req, param1:req .byte 0x89 - .byte \target - .4byte \address + .byte \param0 + .4byte \param1 .endm .macro normalisebuffs @@ -738,26 +757,26 @@ .byte 0x8c .endm - .macro setloopcounter count + .macro setmultihitcounter param0:req .byte 0x8d - .byte \count + .byte \param0 .endm - .macro atk8e + .macro initmultihitstring .byte 0x8e .endm - .macro forcerandomswitch address + .macro forcerandomswitch param0:req .byte 0x8f - .4byte \address + .4byte \param0 .endm - .macro changetypestoenemyattacktype address + .macro tryconversiontypechange param0:req .byte 0x90 - .4byte \address + .4byte \param0 .endm - .macro givemoney + .macro givepaydaymoney .byte 0x91 .endm @@ -765,12 +784,12 @@ .byte 0x92 .endm - .macro koplussomethings address + .macro tryKO param0:req .byte 0x93 - .4byte \address + .4byte \param0 .endm - .macro gethalfcurrentenemyhp + .macro damagetohalftargethp .byte 0x94 .endm @@ -782,21 +801,21 @@ .byte 0x96 .endm - .macro tryinfatuatetarget address + .macro tryinfatuating param0:req .byte 0x97 - .4byte \address + .4byte \param0 .endm - .macro atk98 byte + .macro updatestatusicon battler:req .byte 0x98 - .byte \byte + .byte \battler .endm - .macro setmisteffect + .macro setmist .byte 0x99 .endm - .macro setincreasedcriticalchance + .macro setfocusenergy .byte 0x9a .endm @@ -804,20 +823,20 @@ .byte 0x9b .endm - .macro setsubstituteeffect + .macro setsubstitute .byte 0x9c .endm - .macro copyattack address + .macro mimicattackcopy param0:req .byte 0x9d - .4byte \address + .4byte \param0 .endm - .macro metronomeeffect + .macro metronome .byte 0x9e .endm - .macro nightshadedamageeffect + .macro dmgtolevel .byte 0x9f .endm @@ -825,55 +844,55 @@ .byte 0xa0 .endm - .macro counterdamagecalculator address + .macro counterdamagecalculator param0:req .byte 0xa1 - .4byte \address + .4byte \param0 .endm - .macro mirrorcoatdamagecalculator address + .macro mirrorcoatdamagecalculator param0:req .byte 0xa2 - .4byte \address + .4byte \param0 .endm - .macro disablelastusedattack address + .macro disablelastusedattack param0:req .byte 0xa3 - .4byte \address + .4byte \param0 .endm - .macro setencore address + .macro trysetencore param0:req .byte 0xa4 - .4byte \address + .4byte \param0 .endm - .macro painsplitdamagecalculator address + .macro painsplitdmgcalc param0:req .byte 0xa5 - .4byte \address + .4byte \param0 .endm - .macro settypetorandomresistance address + .macro settypetorandomresistance param0:req .byte 0xa6 - .4byte \address + .4byte \param0 .endm .macro setalwayshitflag .byte 0xa7 .endm - .macro copymovepermanently address + .macro copymovepermanently param0:req .byte 0xa8 - .4byte \address + .4byte \param0 .endm - .macro selectrandommovefromusermoves address + .macro trychoosesleeptalkmove param0:req .byte 0xa9 - .4byte \address + .4byte \param0 .endm - .macro destinybondeffect + .macro setdestinybond .byte 0xaa .endm - .macro atkab + .macro trysetdestinybondtohappen .byte 0xab .endm @@ -881,45 +900,45 @@ .byte 0xac .endm - .macro reducepprandom address + .macro tryspiteppreduce param0:req .byte 0xad - .4byte \address + .4byte \param0 .endm - .macro clearstatusifnotsoundproofed + .macro healpartystatus .byte 0xae .endm - .macro cursetarget address + .macro cursetarget param0:req .byte 0xaf - .4byte \address + .4byte \param0 .endm - .macro setspikes address + .macro trysetspikes param0:req .byte 0xb0 - .4byte \address + .4byte \param0 .endm .macro setforesight .byte 0xb1 .endm - .macro setperishsong address + .macro trysetperishsong param0:req .byte 0xb2 - .4byte \address + .4byte \param0 .endm .macro rolloutdamagecalculation .byte 0xb3 .endm - .macro jumpifconfusedandattackmaxed bank, address + .macro jumpifconfusedandstatmaxed stat:req, ptr:req .byte 0xb4 - .byte \bank - .4byte \address + .byte \stat + .4byte \ptr .endm - .macro furycutterdamagecalculation + .macro furycuttercalc .byte 0xb5 .endm @@ -939,62 +958,62 @@ .byte 0xb9 .endm - .macro atkba address + .macro jumpifnopursuitswitchdmg param0:req .byte 0xba - .4byte \address + .4byte \param0 .endm .macro setsunny .byte 0xbb .endm - .macro maxattackhalvehp address + .macro maxattackhalvehp param0:req .byte 0xbc - .4byte \address + .4byte \param0 .endm - .macro copyfoestats address + .macro copyfoestats param0:req .byte 0xbd - .4byte \address + .4byte \param0 .endm - .macro breakfree + .macro rapidspinfree .byte 0xbe .endm - .macro setcurled + .macro setdefensecurlbit .byte 0xbf .endm - .macro recoverbasedonsunlight address + .macro recoverbasedonsunlight param0:req .byte 0xc0 - .4byte \address + .4byte \param0 .endm - .macro hiddenpowerdamagecalculation + .macro hiddenpowercalc .byte 0xc1 .endm - .macro selectnexttarget + .macro selectfirstvalidtarget .byte 0xc2 .endm - .macro setfutureattack address + .macro trysetfutureattack param0:req .byte 0xc3 - .4byte \address + .4byte \param0 .endm - .macro beatupcalculation address1, address2 + .macro trydobeatup param0:req, param1:req .byte 0xc4 - .4byte \address1 - .4byte \address2 + .4byte \param0 + .4byte \param1 .endm - .macro hidepreattack + .macro setsemiinvulnerablebit .byte 0xc5 .endm - .macro unhidepostattack + .macro clearsemiinvulnerablebit .byte 0xc6 .endm @@ -1006,9 +1025,9 @@ .byte 0xc8 .endm - .macro jumpifattackandspecialattackcannotfall address + .macro jumpifattackandspecialattackcannotfall ptr:req .byte 0xc9 - .4byte \address + .4byte \ptr .endm .macro setforcedtarget @@ -1023,207 +1042,393 @@ .byte 0xcc .endm - .macro cureifburnedparalysedorpoisoned address + .macro cureifburnedparalysedorpoisoned param0:req .byte 0xcd - .4byte \address + .4byte \param0 .endm - .macro settorment address + .macro settorment param0:req .byte 0xce - .4byte \address + .4byte \param0 .endm - .macro jumpifnodamage address + .macro jumpifnodamage param0:req .byte 0xcf - .4byte \address + .4byte \param0 .endm - .macro settaunt address + .macro settaunt param0:req .byte 0xd0 - .4byte \address + .4byte \param0 .endm - .macro sethelpinghand address + .macro trysethelpinghand param0:req .byte 0xd1 - .4byte \address + .4byte \param0 .endm - .macro itemswap address + .macro tryswapitems param0:req .byte 0xd2 - .4byte \address + .4byte \param0 .endm - .macro copyability address + .macro trycopyability param0:req .byte 0xd3 - .4byte \address + .4byte \param0 .endm - .macro atkd4 byte, address + .macro trywish param0:req, param1:req .byte 0xd4 - .byte \byte - .4byte \address + .byte \param0 + .4byte \param1 .endm - .macro setroots address + .macro trysetroots param0:req .byte 0xd5 - .4byte \address + .4byte \param0 .endm .macro doubledamagedealtifdamaged .byte 0xd6 .endm - .macro setyawn address + .macro setyawn param0:req .byte 0xd7 - .4byte \address + .4byte \param0 .endm - .macro setdamagetohealthdifference address + .macro setdamagetohealthdifference param0:req .byte 0xd8 - .4byte \address + .4byte \param0 .endm .macro scaledamagebyhealthratio .byte 0xd9 .endm - .macro abilityswap address + .macro tryswapabilities param0:req .byte 0xda - .4byte \address + .4byte \param0 .endm - .macro imprisoneffect address + .macro tryimprison param0:req .byte 0xdb - .4byte \address + .4byte \param0 .endm - .macro setgrudge address + .macro trysetgrudge param0:req .byte 0xdc - .4byte \address + .4byte \param0 .endm .macro weightdamagecalculation .byte 0xdd .endm - .macro assistattackselect address + .macro assistattackselect param0:req .byte 0xde - .4byte \address + .4byte \param0 .endm - .macro setmagiccoat address + .macro trysetmagiccoat param0:req .byte 0xdf - .4byte \address + .4byte \param0 .endm - .macro setstealstatchange address + .macro trysetsnatch param0:req .byte 0xe0 - .4byte \address + .4byte \param0 .endm - .macro atke1 address + .macro trygetintimidatetarget param0:req .byte 0xe1 - .4byte \address + .4byte \param0 .endm - .macro atke2 bank + .macro switchoutabilities battler:req .byte 0xe2 - .byte \bank + .byte \battler .endm - .macro jumpiffainted bank, address + .macro jumpifhasnohp battler:req, param1:req .byte 0xe3 - .byte \bank - .4byte \address + .byte \battler + .4byte \param1 .endm - .macro naturepowereffect + .macro getsecretpowereffect .byte 0xe4 .endm - .macro pickupitemcalculation + .macro pickup .byte 0xe5 .endm - .macro actualcastformswitch + .macro docastformchangeanimation .byte 0xe6 .endm - .macro castformswitch + .macro trycastformdatachange .byte 0xe7 .endm - .macro settypebasedhalvers address + .macro settypebasedhalvers param0:req .byte 0xe8 - .4byte \address + .4byte \param0 .endm - .macro seteffectbyweather + .macro setweatherballtype .byte 0xe9 .endm - .macro recycleitem address + .macro tryrecycleitem param0:req .byte 0xea - .4byte \address + .4byte \param0 .endm - .macro settypetoterrain address + .macro settypetoterrain param0:req .byte 0xeb - .4byte \address + .4byte \param0 .endm - .macro pursuitwhenswitched address + .macro pursuitrelated param0:req .byte 0xec - .4byte \address + .4byte \param0 .endm - .macro snatchmove + .macro snatchsetbattlers .byte 0xed .endm - .macro removereflectlightscreen + .macro removelightscreenreflect .byte 0xee .endm - .macro pokemoncatchfunction + .macro handleballthrow .byte 0xef .endm - .macro catchpoke + .macro givecaughtmon .byte 0xf0 .endm - .macro capturesomethingf1 address + .macro trysetcaughtmondexflags param0:req .byte 0xf1 - .4byte \address + .4byte \param0 .endm - .macro capturesomethingf2 + .macro displaydexinfo .byte 0xf2 .endm - .macro capturesomethingf3 address + .macro trygivecaughtmonnick param0:req .byte 0xf3 - .4byte \address + .4byte \param0 .endm - .macro removehp + .macro subattackerhpbydmg .byte 0xf4 .endm - .macro curestatusfirstword + .macro removeattackerstatus1 .byte 0xf5 .endm - .macro atkf6 + .macro finishaction .byte 0xf6 .endm - .macro activesidesomething + .macro finishturn .byte 0xf7 .endm - .macro atkf8 bank + .macro trainerslideout param0:req .byte 0xf8 - .byte \bank + .byte \param0 + .endm + +@ various command changed to more readable macros + .macro cancelmultiturnmoves battler:req + various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES + .endm + + .macro setmagiccoattarget battler:req + various \battler, VARIOUS_SET_MAGIC_COAT_TARGET + .endm + + .macro getifcantrunfrombattle battler:req + various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE + .endm + + .macro getmovetarget battler:req + various \battler, VARIOUS_GET_MOVE_TARGET + .endm + + .macro various4 battler:req + various \battler, 4 + .endm + + .macro resetintrimidatetracebits battler:req + various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS + .endm + + .macro updatechoicemoveonlvlup battler:req + various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP + .endm + + .macro various7 battler:req + various \battler, 7 + .endm + + .macro various8 battler:req + various \battler, 8 + .endm + + .macro arenajudgmentwindow + various BS_ATTACKER, VARIOUS_ARENA_JUDGMENT_WINDOW + .endm + + .macro arenaopponentmonlost + various BS_ATTACKER, VARIOUS_ARENA_OPPONENT_MON_LOST + .endm + + .macro arenaplayermonlost + various BS_ATTACKER, VARIOUS_ARENA_PLAYER_MON_LOST + .endm + + .macro arenabothmonlost + various BS_ATTACKER, VARIOUS_ARENA_BOTH_MONS_LOST + .endm + + .macro forfeityesnobox battler:req + various \battler, VARIOUS_EMIT_YESNOBOX + .endm + + .macro various14 battler:req + various \battler, 14 + .endm + + .macro various15 battler:req + various \battler, 15 + .endm + + .macro arenajudmengtstring id:req + various \id, VARIOUS_ARENA_JUDGMENT_STRING + .endm + + .macro arenawaitmessage id:req + various \id, VARIOUS_ARENA_WAIT_STRING + .endm + + .macro waitcry battler:req + various \battler, VARIOUS_WAIT_CRY + .endm + + .macro returnopponentmon1toball battler:req + various \battler, VARIOUS_RETURN_OPPONENT_MON1 + .endm + + .macro returnopponentmon2toball battler:req + various \battler, VARIOUS_RETURN_OPPONENT_MON2 + .endm + + .macro volumedown + various BS_ATTACKER, VARIOUS_VOLUME_DOWN + .endm + + .macro volumeup + various BS_ATTACKER, VARIOUS_VOLUME_UP + .endm + + .macro setalreadystatusedmoveattempt battler:req + various \battler, 23 + .endm + + .macro various24 battler:req + various \battler, 24 + .endm + + .macro setoutcomeonteleport battler:req + various \battler, VARIOUS_SET_TELEPORT_OUTCOME + .endm + + .macro playtrainerdefeatbgm battler:req + various \battler, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC + .endm + +@ helpful macros + .macro setstatchanger stat:req, stages:req, down:req + setbyte sSTATCHANGER \stat | \stages << 4 | \down << 7 + .endm + + .macro setmoveeffect effect:req + setbyte cEFFECT_CHOOSER \effect + .endm + + .macro chosenstatus1animation battler:req, status:req + chosenstatusanimation \battler 0x0 \status + .endm + + .macro chosenstatus2animation battler:req, status:req + chosenstatusanimation \battler 0x1 \status + .endm + + .macro sethword dst:req, value:req + setbyte \dst, (\value) & 0xFF + setbyte \dst + 1, ((\value) >> 8) & 0xFF + .endm + + .macro setword dst:req, value:req + setbyte \dst, (\value) & 0xFF + setbyte \dst + 1, ((\value) >> 8) & 0xFF + setbyte \dst + 2, ((\value) >> 16) & 0xFF + setbyte \dst + 3, ((\value) >> 24) & 0xFF + .endm + + .macro copybyte dst:req, src:req + copyarray \dst, \src, 0x1 + .endm + + .macro copyhword dst:req, src:req + copyarray \dst, \src, 0x2 + .endm + + .macro copyword dst:req, src:req + copyarray \dst, \src, 0x4 + .endm + + .macro jumpifbytenotequal byte1:req, byte2:req, jumpptr:req + jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr + .endm + + .macro jumpifbyteequal byte1:req, byte2:req, jumpptr:req + jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr + .endm + + .macro jumpifmove move:req, jumpptr:req + jumpifhalfword CMP_EQUAL, gCurrentMove, \move, \jumpptr + .endm + + .macro jumpifnotmove move:req, jumpptr:req + jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, \move, \jumpptr + .endm + + .macro jumpifstatus3 battler:req, status:req, jumpptr:req + jumpifstatus3condition \battler, \status, 0x0, \jumpptr + .endm + + .macro jumpifnostatus3 battler:req, status:req, jumpptr:req + jumpifstatus3condition \battler, \status, 0x1, \jumpptr + .endm + + .macro jumpifmovehadnoeffect jumpptr:req + jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr + .endm + + .macro jumpifbattletype flags:req, jumpptr:req + jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr + .endm + + .macro jumpifnotbattletype flags:req, jumpptr:req + jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr .endm diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index a3675befd..0bdfa777a 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -8,9 +8,13 @@ #include "constants/species.h" #include "constants/pokemon.h" #include "constants/songs.h" +#include "constants/game_stat.h" #include "battle_string_ids.h" .include "asm/macros/battle_script.inc" +@ Define these here since misc_constants.inc conflicts with the C headers .set NULL, 0 + .set FALSE, 0 + .set TRUE, 1 .section script_data, "aw", %progbits .align 2 @@ -231,8 +235,8 @@ gBattleScriptsForMoveEffects:: @ 81D65A8 .4byte BattleScript_EffectCamouflage BattleScript_EffectHit:: @ 81D6900 - jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, 0x39, BattleScript_81D6926 - jumpifspecialstatusflag BS_TARGET, 0x40000, 0x1, BattleScript_81D6926 + jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, MOVE_SURF, BattleScript_81D6926 + jumpifstatus3condition BS_TARGET, 0x40000, 0x1, BattleScript_81D6926 orword gHitMarker, HITMARKER_IGNORE_UNDERWATER setbyte sDMG_MULTIPLIER, 0x2 @@ -248,28 +252,27 @@ BattleScript_81D692E:: @ 81D692E BattleScript_HitFromCritCalc:: @ 81D6930 critcalc - atk5 - atk6 - atk7 + damagecalc + typecalc + adjustnormaldamage BattleScript_81D6934:: @ 81D6934 attackanimation waitanimation - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 - seteffectwithchancetarget - faintpokemon BS_TARGET, 0x0, NULL + seteffectwithchance + tryfaintmon BS_TARGET, 0x0, NULL BattleScript_MoveEnd:: @ 81D694E - setbyte sMOVEEND_STATE, 0x0 - atk49 0x0, 0x0 + moveendall end BattleScript_81D6958:: @ 81D6958 @@ -283,48 +286,48 @@ BattleScript_MoveMissedPause:: @ 81D6960 pause 0x20 BattleScript_81D6963:: @ 81D6963 - missmessage + effectivenesssound resultmessage waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSleep:: @ 81D696D attackcanceler attackstring ppreduce - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed - jumpifstatus BS_TARGET, 0x7, BattleScript_81D69B0 - jumpifcannotsleep BattleScript_81D69CC - jumpifstatus BS_TARGET, 0xFF, BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_81D69B0 + jumpifcantmakeasleep BattleScript_81D69CC + jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_FREEZE | STATUS1_SLEEP | STATUS1_POISON, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, 0x0 - jumpifhalverset BS_TARGET, 0x20, BattleScript_81D8B39 + jumpifsideaffecting BS_TARGET, 0x20, BattleScript_81D8B39 attackanimation waitanimation - setbyte cEFFECT_CHOOSER, 0x1 - seteffecttarget - jump BattleScript_MoveEnd + setmoveeffect MOVE_EFFECT_SLEEP + seteffectprimary + goto BattleScript_MoveEnd BattleScript_81D69B0:: @ 81D69B0 pause 0x20 printstring STRINGID_PKMNALREADYASLEEP waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D69BE:: @ 81D69BE pause 0x20 printstring STRINGID_PKMNWASNTAFFECTED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D69CC:: @ 81D69CC pause 0x20 printfromtable gUproarAwakeStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectPoisonHit:: @ 81D69DC - setbyte cEFFECT_CHOOSER, 0x2 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_POISON + goto BattleScript_EffectHit BattleScript_EffectAbsorb:: @ 81D69E7 attackcanceler @@ -332,15 +335,15 @@ BattleScript_EffectAbsorb:: @ 81D69E7 attackstring ppreduce critcalc - atk5 - atk6 - atk7 + damagecalc + typecalc + adjustnormaldamage attackanimation waitanimation - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage waitmessage 0x40 @@ -348,84 +351,82 @@ BattleScript_EffectAbsorb:: @ 81D69E7 waitmessage 0x40 negativedamage orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_81D6A23 + jumpifability 0x0, ABILITY_LIQUID_OOZE, BattleScript_81D6A23 setbyte cMULTISTRING_CHOOSER, 0x0 - jump BattleScript_81D6A2B + goto BattleScript_81D6A2B BattleScript_81D6A23:: @ 81D6A23 manipulatedamage 0x0 setbyte cMULTISTRING_CHOOSER, 0x1 BattleScript_81D6A2B:: @ 81D6A2B - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, 0x29, BattleScript_81D6A42 printfromtable gLeechSeedDrainStringIds waitmessage 0x40 BattleScript_81D6A42:: @ 81D6A42 - faintpokemon BS_ATTACKER, 0x0, NULL - faintpokemon BS_TARGET, 0x0, NULL - jump BattleScript_MoveEnd + tryfaintmon BS_ATTACKER, 0x0, NULL + tryfaintmon BS_TARGET, 0x0, NULL + goto BattleScript_MoveEnd BattleScript_EffectBurnHit:: @ 81D6A55 - setbyte cEFFECT_CHOOSER, 0x3 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_BURN + goto BattleScript_EffectHit BattleScript_EffectFreezeHit:: @ 81D6A60 - setbyte cEFFECT_CHOOSER, 0x4 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_FREEZE + goto BattleScript_EffectHit BattleScript_EffectParalyzeHit:: @ 81D6A6B - setbyte cEFFECT_CHOOSER, 0x5 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_PARALYSIS + goto BattleScript_EffectHit BattleScript_EffectExplosion:: @ 81D6A76 attackcanceler attackstring ppreduce faintifabilitynotdamp - setuserhptozero - waitstateatk + setatkhptozero + waitstate jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, 0x1, BattleScript_81D6A91 - callatk BattleScript_81D6AE7 - jump BattleScript_81D6A93 + call BattleScript_81D6AE7 + goto BattleScript_81D6A93 BattleScript_81D6A91:: @ 81D6A91 attackanimation waitanimation BattleScript_81D6A93:: @ 81D6A93 - atk25 + movevaluescleanup critcalc - atk5 - atk6 - atk7 + damagecalc + typecalc + adjustnormaldamage accuracycheck BattleScript_81D6ACC, 0x0 - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 - faintpokemon BS_TARGET, 0x0, NULL - setbyte sMOVEEND_STATE, 0x0 - atk49 0x2, 0x10 - jumpwhiletargetvalid BattleScript_81D6A93 - faintpokemon BS_ATTACKER, 0x0, NULL + tryfaintmon BS_TARGET, 0x0, NULL + moveendto 0x10 + jumpifnexttargetvalid BattleScript_81D6A93 + tryfaintmon BS_ATTACKER, 0x0, NULL end BattleScript_81D6ACC:: @ 81D6ACC - missmessage + effectivenesssound resultmessage waitmessage 0x40 - setbyte sMOVEEND_STATE, 0x0 - atk49 0x2, 0x10 - jumpwhiletargetvalid BattleScript_81D6A93 - faintpokemon BS_ATTACKER, 0x0, NULL + moveendto 0x10 + jumpifnexttargetvalid BattleScript_81D6A93 + tryfaintmon BS_ATTACKER, 0x0, NULL end BattleScript_81D6AE7:: @ 81D6AE7 @@ -437,29 +438,29 @@ BattleScript_81D6AE7:: @ 81D6AE7 BattleScript_EffectDreamEater:: @ 81D6AF6 attackcanceler - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_81D6B0B - jumpifstatus BS_TARGET, 0x7, BattleScript_81D6B15 + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D6B0B + jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_81D6B15 BattleScript_81D6B0B:: @ 81D6B0B attackstring ppreduce waitmessage 0x40 - jump BattleScript_81D69BE + goto BattleScript_81D69BE BattleScript_81D6B15:: @ 81D6B15 accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce critcalc - atk5 - atk6 - atk7 + damagecalc + typecalc + adjustnormaldamage attackanimation waitanimation - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage waitmessage 0x40 @@ -467,41 +468,41 @@ BattleScript_81D6B15:: @ 81D6B15 waitmessage 0x40 negativedamage orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, 0x29, BattleScript_81D6B53 printstring STRINGID_PKMNDREAMEATEN waitmessage 0x40 BattleScript_81D6B53:: @ 81D6B53 - faintpokemon BS_TARGET, 0x0, NULL - jump BattleScript_MoveEnd + tryfaintmon BS_TARGET, 0x0, NULL + goto BattleScript_MoveEnd BattleScript_EffectMirrorMove:: @ 81D6B5F attackcanceler attackstring pause 0x40 - jumptolastusedattack + trymirrormove ppreduce orbyte gMoveResultFlags, 0x20 printstring STRINGID_MIRRORMOVEFAILED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectAttackUp:: @ 81D6B77 - setbyte sSTATCHANGER, 0x11 - jump BattleScript_81D6B9E + setstatchanger STAT_ATK, 1, FALSE + goto BattleScript_81D6B9E BattleScript_EffectDefenseUp:: @ 81D6B82 - setbyte sSTATCHANGER, 0x12 - jump BattleScript_81D6B9E + setstatchanger STAT_DEF, 1, FALSE + goto BattleScript_81D6B9E BattleScript_EffectSpecialAttackUp:: @ 81D6B8D - setbyte sSTATCHANGER, 0x14 - jump BattleScript_81D6B9E + setstatchanger STAT_SPATK, 1, FALSE + goto BattleScript_81D6B9E BattleScript_EffectEvasionUp:: @ 81D6B98 - setbyte sSTATCHANGER, 0x17 + setstatchanger STAT_EVASION, 1, FALSE BattleScript_81D6B9E:: @ 81D6B9E attackcanceler @@ -512,14 +513,14 @@ BattleScript_81D6B9F:: @ 81D6B9F statbuffchange 0x41, BattleScript_81D6BCC jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D6BBA pause 0x20 - jump BattleScript_81D6BC4 + goto BattleScript_81D6BC4 BattleScript_81D6BBA:: @ 81D6BBA attackanimation waitanimation BattleScript_81D6BBC:: @ 81D6BBC - atk47 + setgraphicalstatchangevalues playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 BattleScript_81D6BC4:: @ 81D6BC4 @@ -527,7 +528,7 @@ BattleScript_81D6BC4:: @ 81D6BC4 waitmessage 0x40 BattleScript_81D6BCC:: @ 81D6BCC - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_StatUp:: @ 81D6BD1 playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 @@ -536,27 +537,27 @@ BattleScript_StatUp:: @ 81D6BD1 return BattleScript_EffectAttackDown:: @ 81D6BE1 - setbyte sSTATCHANGER, 0x91 - jump BattleScript_81D6C13 + setstatchanger STAT_ATK, 1, TRUE + goto BattleScript_81D6C13 BattleScript_EffectDefenseDown:: @ 81D6BEC - setbyte sSTATCHANGER, 0x92 - jump BattleScript_81D6C13 + setstatchanger STAT_DEF, 1, TRUE + goto BattleScript_81D6C13 BattleScript_EffectSpeedDown:: @ 81D6BF7 - setbyte sSTATCHANGER, 0x93 - jump BattleScript_81D6C13 + setstatchanger STAT_SPEED, 1, TRUE + goto BattleScript_81D6C13 BattleScript_EffectAccuracyDown:: @ 81D6C02 - setbyte sSTATCHANGER, 0x96 - jump BattleScript_81D6C13 + setstatchanger STAT_ACC, 1, TRUE + goto BattleScript_81D6C13 BattleScript_EffectEvasionDown:: @ 81D6C0D - setbyte sSTATCHANGER, 0x97 + setstatchanger STAT_EVASION, 1, TRUE BattleScript_81D6C13:: @ 81D6C13 attackcanceler - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_81D7DF0 + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D7DF0 accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce @@ -564,12 +565,12 @@ BattleScript_81D6C13:: @ 81D6C13 jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D6C4B jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_81D6C5D pause 0x20 - jump BattleScript_81D6C55 + goto BattleScript_81D6C55 BattleScript_81D6C4B:: @ 81D6C4B attackanimation waitanimation - atk47 + setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 BattleScript_81D6C55:: @ 81D6C55 @@ -577,7 +578,7 @@ BattleScript_81D6C55:: @ 81D6C55 waitmessage 0x40 BattleScript_81D6C5D:: @ 81D6C5D - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_StatDown:: @ 81D6C62 playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 @@ -594,7 +595,7 @@ BattleScript_EffectHaze:: @ 81D6C72 normalisebuffs printstring STRINGID_STATCHANGESGONE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectBide:: @ 81D6C83 attackcanceler @@ -604,25 +605,25 @@ BattleScript_EffectBide:: @ 81D6C83 waitanimation orword gHitMarker, HITMARKER_CHARGING setbide - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectRampage:: @ 81D6C97 attackcanceler accuracycheck BattleScript_81D695E, 0x0 attackstring - jumpifsecondarytstatus BS_ATTACKER, 0x1000, BattleScript_81D6CAB + jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D6CAB ppreduce BattleScript_81D6CAB:: @ 81D6CAB confuseifrepeatingattackends - jump BattleScript_HitFromCritCalc + goto BattleScript_HitFromCritCalc BattleScript_EffectRoar:: @ 81D6CB1 attackcanceler attackstring ppreduce - jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_81D9408 - jumpifspecialstatusflag BS_TARGET, 0x400, 0x0, BattleScript_81D8F27 + jumpifability 0x0, ABILITY_SUCTION_CUPS, BattleScript_81D9408 + jumpifstatus3condition BS_TARGET, 0x400, 0x0, BattleScript_81D8F27 accuracycheck BattleScript_ButItFailed, 0xFFFF accuracycheck BattleScript_MoveMissedPause, 0x0 forcerandomswitch BattleScript_ButItFailed @@ -632,41 +633,40 @@ BattleScript_EffectMultiHit:: @ 81D6CD9 accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - setloopcounter 0x0 - atk8e + setmultihitcounter 0x0 + initmultihitstring setbyte sMULTIHIT_EFFECT, 0x0 BattleScript_81D6CEC:: @ 81D6CEC - jumpiffainted BS_ATTACKER, BattleScript_81D6D82 - jumpiffainted BS_TARGET, BattleScript_81D6D63 - jumpifhalfword CMP_EQUAL, gChosenMove, 0xD6, BattleScript_81D6D0E - jumpifstatus BS_ATTACKER, 0x7, BattleScript_81D6D63 + jumpifhasnohp BS_ATTACKER, BattleScript_81D6D82 + jumpifhasnohp BS_TARGET, BattleScript_81D6D63 + jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_81D6D0E + jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_81D6D63 BattleScript_81D6D0E:: @ 81D6D0E - atk25 + movevaluescleanup copyarray cEFFECT_CHOOSER, sMULTIHIT_EFFECT, 0x1 critcalc - atk5 - atk6 + damagecalc + typecalc jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, 0x29, BattleScript_81D6D60 - atk7 + adjustnormaldamage attackanimation waitanimation - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage waitmessage 0x40 printstring STRINGID_EMPTYSTRING3 waitmessage 0x1 addbyte gBattleScripting + 0xC, 0x1 - setbyte sMOVEEND_STATE, 0x0 - atk49 0x2, 0x10 + moveendto 0x10 jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, 0x40, BattleScript_81D6D63 - atk27 BattleScript_81D6CEC - jump BattleScript_81D6D63 + decrementmultihit BattleScript_81D6CEC + goto BattleScript_81D6D63 BattleScript_81D6D60:: @ 81D6D60 pause 0x20 @@ -680,150 +680,148 @@ BattleScript_81D6D63:: @ 81D6D63 waitmessage 0x40 BattleScript_81D6D82:: @ 81D6D82 - seteffectwithchancetarget - faintpokemon BS_TARGET, 0x0, NULL - setbyte sMOVEEND_STATE, 0x2 - atk49 0x1, 0x0 - setbyte sMOVEEND_STATE, 0x4 - atk49 0x0, 0x0 + seteffectwithchance + tryfaintmon BS_TARGET, 0x0, NULL + moveendcase 0x2 + moveendfrom 0x4 end BattleScript_EffectConversion:: @ 81D6D9D attackcanceler attackstring ppreduce - changetypestoenemyattacktype BattleScript_ButItFailed + tryconversiontypechange BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNCHANGEDTYPE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectFlinchHit:: @ 81D6DB2 - setbyte cEFFECT_CHOOSER, 0x8 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_FLINCH + goto BattleScript_EffectHit BattleScript_EffectRestoreHp:: @ 81D6DBD attackcanceler attackstring ppreduce - setdamageasrestorehalfmaxhp BattleScript_AlreadyAtFullHp, 0x1 + tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER attackanimation waitanimation orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNREGAINEDHEALTH waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectToxic:: @ 81D6DE0 attackcanceler attackstring ppreduce - jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_81D6E4F - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed - jumpifstatus BS_TARGET, 0x8, BattleScript_81D6E41 - jumpifstatus BS_TARGET, 0x80, BattleScript_81D6E41 - jumpifstatus BS_TARGET, 0xFF, BattleScript_ButItFailed + jumpifability 0x0, ABILITY_IMMUNITY, BattleScript_81D6E4F + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_81D6E41 + jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_81D6E41 + jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_FREEZE | STATUS1_SLEEP | STATUS1_POISON, BattleScript_ButItFailed jumpiftype BS_TARGET, 0x3, BattleScript_81D7E04 jumpiftype BS_TARGET, 0x8, BattleScript_81D7E04 accuracycheck BattleScript_ButItFailed, 0x0 - jumpifhalverset BS_TARGET, 0x20, BattleScript_81D8B39 + jumpifsideaffecting BS_TARGET, 0x20, BattleScript_81D8B39 attackanimation waitanimation - setbyte cEFFECT_CHOOSER, 0x6 - seteffecttarget + setmoveeffect MOVE_EFFECT_TOXIC + seteffectprimary resultmessage waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D6E41:: @ 81D6E41 pause 0x40 printstring STRINGID_PKMNALREADYPOISONED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D6E4F:: @ 81D6E4F copyarray gEffectBattler, gBattlerTarget, 0x1 setbyte cMULTISTRING_CHOOSER, 0x0 - callatk BattleScript_PSNPrevention - jump BattleScript_MoveEnd + call BattleScript_PSNPrevention + goto BattleScript_MoveEnd BattleScript_EffectPayDay:: @ 81D6E69 - setbyte cEFFECT_CHOOSER, 0xB - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_PAYDAY + goto BattleScript_EffectHit BattleScript_EffectLightScreen:: @ 81D6E74 attackcanceler attackstring ppreduce setlightscreen - jump BattleScript_81D7172 + goto BattleScript_81D7172 BattleScript_EffectTriAttack:: @ 81D6E7D - setbyte cEFFECT_CHOOSER, 0x9 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_TRI_ATTACK + goto BattleScript_EffectHit BattleScript_EffectRest:: @ 81D6E88 attackcanceler attackstring ppreduce - jumpifstatus BS_ATTACKER, 0x7, BattleScript_81D6EC2 - jumpifcannotsleep BattleScript_81D6EB2 - setrest BattleScript_AlreadyAtFullHp + jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_81D6EC2 + jumpifcantmakeasleep BattleScript_81D6EB2 + trysetrest BattleScript_AlreadyAtFullHp pause 0x20 printfromtable gRestUsedStringIds waitmessage 0x40 - atk98 0x1 - waitstateatk - jump BattleScript_PresentHealTarget + updatestatusicon BS_ATTACKER + waitstate + goto BattleScript_PresentHealTarget BattleScript_81D6EB2:: @ 81D6EB2 pause 0x40 printfromtable gUproarAwakeStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D6EC2:: @ 81D6EC2 pause 0x20 printstring STRINGID_PKMNALREADYASLEEP2 waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectOhko:: @ 81D6ED0 attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, 0xFFFF - atk6 + typecalc jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, 0x29, BattleScript_81D6934 - koplussomethings BattleScript_81D6EF1 - atkab - jump BattleScript_81D6934 + tryKO BattleScript_81D6EF1 + trysetdestinybondtohappen + goto BattleScript_81D6934 BattleScript_81D6EF1:: @ 81D6EF1 pause 0x40 printfromtable gKOFailedStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectRazorWind:: @ 81D6F01 - jumpifsecondarytstatus BS_ATTACKER, 0x1000, BattleScript_81D6F29 + jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D6F29 jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_81D6F29 setbyte sTWOTURN_STRINGID, 0x0 - callatk BattleScript_81D6F58 - jump BattleScript_MoveEnd + call BattleScript_81D6F58 + goto BattleScript_MoveEnd BattleScript_81D6F29:: @ 81D6F29 attackcanceler - setbyte cEFFECT_CHOOSER, 0xC + setmoveeffect MOVE_EFFECT_CHARGING setbyte sB_ANIM_TURN, 0x1 - clearstatus BS_ATTACKER + clearstatusfromeffect BS_ATTACKER orword gHitMarker, HITMARKER_NO_PPDEDUCT - jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, 0x8F, BattleScript_81D6927 - setbyte cEFFECT_CHOOSER, 0x8 - jump BattleScript_81D6927 + jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, MOVE_SKY_ATTACK, BattleScript_81D6927 + setmoveeffect MOVE_EFFECT_FLINCH + goto BattleScript_81D6927 BattleScript_81D6F58:: @ 81D6F58 attackcanceler @@ -832,8 +830,8 @@ BattleScript_81D6F58:: @ 81D6F58 attackanimation waitanimation orword gHitMarker, HITMARKER_CHARGING - setbyte cEFFECT_CHOOSER, 0x4C - seteffecttarget + setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER + seteffectprimary copyarray cMULTISTRING_CHOOSER, sTWOTURN_STRINGID, 0x1 printfromtable gFirstTurnOfTwoStringIds waitmessage 0x40 @@ -844,49 +842,49 @@ BattleScript_EffectSuperFang:: @ 81D6F82 accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - atk6 + typecalc bicbyte gMoveResultFlags, 0x6 - gethalfcurrentenemyhp - jump BattleScript_81D6934 + damagetohalftargethp + goto BattleScript_81D6934 BattleScript_EffectDragonRage:: @ 81D6F99 attackcanceler accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - atk6 + typecalc bicbyte gMoveResultFlags, 0x6 setbyte gBattleMoveDamage, 0x28 setbyte gBattleMoveDamage + 0x1, 0x0 setbyte gBattleMoveDamage + 0x2, 0x0 setbyte gBattleMoveDamage + 0x3, 0x0 - atk69 - jump BattleScript_81D6934 + adjustsetdamage + goto BattleScript_81D6934 BattleScript_EffectTrap:: @ 81D6FC8 - jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, 0xFA, BattleScript_81D6FEE - jumpifspecialstatusflag BS_TARGET, 0x40000, 0x1, BattleScript_81D6FEE + jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, MOVE_WHIRLPOOL, BattleScript_81D6FEE + jumpifstatus3condition BS_TARGET, 0x40000, 0x1, BattleScript_81D6FEE orword gHitMarker, HITMARKER_IGNORE_UNDERWATER setbyte sDMG_MULTIPLIER, 0x2 BattleScript_81D6FEE:: @ 81D6FEE - setbyte cEFFECT_CHOOSER, 0xD - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_WRAP + goto BattleScript_EffectHit BattleScript_EffectDoubleHit:: @ 81D6FF9 attackcanceler accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - setloopcounter 0x2 - atk8e + setmultihitcounter 0x2 + initmultihitstring setbyte sMULTIHIT_EFFECT, 0x0 - jump BattleScript_81D6CEC + goto BattleScript_81D6CEC BattleScript_EffectRecoilIfMiss:: @ 81D7011 attackcanceler accuracycheck BattleScript_81D701E, 0x0 - jump BattleScript_81D692E + goto BattleScript_81D692E BattleScript_81D701E:: @ 81D701E attackstring @@ -897,89 +895,89 @@ BattleScript_81D701E:: @ 81D701E jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, 0x8, BattleScript_MoveEnd printstring STRINGID_PKMNCRASHED waitmessage 0x40 - atk5 - atk6 - atk7 + damagecalc + typecalc + adjustnormaldamage manipulatedamage 0x1 bicbyte gMoveResultFlags, 0x1 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER - faintpokemon BS_ATTACKER, 0x0, NULL + tryfaintmon BS_ATTACKER, 0x0, NULL orbyte gMoveResultFlags, 0x1 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectMist:: @ 81D7062 attackcanceler attackstring ppreduce - setmisteffect + setmist attackanimation waitanimation printfromtable gMistUsedStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectFocusEnergy:: @ 81D7075 attackcanceler attackstring ppreduce - jumpifsecondarytstatus BS_ATTACKER, 0x100000, BattleScript_ButItFailed - setincreasedcriticalchance + jumpifstatus2 BS_ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed + setfocusenergy attackanimation waitanimation printfromtable gFocusEnergyUsedStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectRecoil:: @ 81D7092 - setbyte cEFFECT_CHOOSER, 0xCE - jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, 0xA5, BattleScript_EffectHit - atk60 0x1B - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_RECOIL_25 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN + jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_EffectHit + incrementgamestat GAME_STAT_USED_STRUGGLE + goto BattleScript_EffectHit BattleScript_EffectConfuse:: @ 81D70AB attackcanceler attackstring ppreduce - jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_81D9460 - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed - jumpifsecondarytstatus BS_TARGET, 0x7, BattleScript_81D70EA + jumpifability 0x0, ABILITY_OWN_TEMPO, BattleScript_81D9460 + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_81D70EA accuracycheck BattleScript_ButItFailed, 0x0 - jumpifhalverset BS_TARGET, 0x20, BattleScript_81D8B39 + jumpifsideaffecting BS_TARGET, 0x20, BattleScript_81D8B39 attackanimation waitanimation - setbyte cEFFECT_CHOOSER, 0x7 - seteffecttarget + setmoveeffect MOVE_EFFECT_CONFUSION + seteffectprimary resultmessage waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D70EA:: @ 81D70EA pause 0x20 printstring STRINGID_PKMNALREADYCONFUSED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectAttackUp2:: @ 81D70F8 - setbyte sSTATCHANGER, 0x21 - jump BattleScript_81D6B9E + setstatchanger STAT_ATK, 2, FALSE + goto BattleScript_81D6B9E BattleScript_EffectDefenseUp2:: @ 81D7103 - setbyte sSTATCHANGER, 0x22 - jump BattleScript_81D6B9E + setstatchanger STAT_DEF, 2, FALSE + goto BattleScript_81D6B9E BattleScript_EffectSpeedUp2:: @ 81D710E - setbyte sSTATCHANGER, 0x23 - jump BattleScript_81D6B9E + setstatchanger STAT_SPEED, 2, FALSE + goto BattleScript_81D6B9E BattleScript_EffectSpecialAttackUp2:: @ 81D7119 - setbyte sSTATCHANGER, 0x24 - jump BattleScript_81D6B9E + setstatchanger STAT_SPATK, 2, FALSE + goto BattleScript_81D6B9E BattleScript_EffectSpecialDefenseUp2:: @ 81D7124 - setbyte sSTATCHANGER, 0x25 - jump BattleScript_81D6B9E + setstatchanger STAT_SPDEF, 2, FALSE + goto BattleScript_81D6B9E BattleScript_EffectTransform:: @ 81D712F attackcanceler @@ -990,23 +988,23 @@ BattleScript_EffectTransform:: @ 81D712F waitanimation printfromtable gTransformUsedStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectAttackDown2:: @ 81D7142 - setbyte sSTATCHANGER, 0xA1 - jump BattleScript_81D6C13 + setstatchanger STAT_ATK, 2, TRUE + goto BattleScript_81D6C13 BattleScript_EffectDefenseDown2:: @ 81D714D - setbyte sSTATCHANGER, 0xA2 - jump BattleScript_81D6C13 + setstatchanger STAT_DEF, 2, TRUE + goto BattleScript_81D6C13 BattleScript_EffectSpeedDown2:: @ 81D7158 - setbyte sSTATCHANGER, 0xA3 - jump BattleScript_81D6C13 + setstatchanger STAT_SPEED, 2, TRUE + goto BattleScript_81D6C13 BattleScript_EffectSpecialDefenseDown2:: @ 81D7163 - setbyte sSTATCHANGER, 0xA5 - jump BattleScript_81D6C13 + setstatchanger STAT_SPDEF, 2, TRUE + goto BattleScript_81D6C13 BattleScript_EffectReflect:: @ 81D716E attackcanceler @@ -1019,95 +1017,95 @@ BattleScript_81D7172:: @ 81D7172 waitanimation printfromtable gReflectLightScreenSafeguardStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectPoison:: @ 81D7181 attackcanceler attackstring ppreduce - jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_81D6E4F - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed - jumpifstatus BS_TARGET, 0x8, BattleScript_81D6E41 - jumpifstatus BS_TARGET, 0x80, BattleScript_81D6E41 + jumpifability 0x0, ABILITY_IMMUNITY, BattleScript_81D6E4F + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_81D6E41 + jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_81D6E41 jumpiftype BS_TARGET, 0x3, BattleScript_81D7E04 jumpiftype BS_TARGET, 0x8, BattleScript_81D7E04 - jumpifstatus BS_TARGET, 0xFF, BattleScript_ButItFailed + jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_FREEZE | STATUS1_SLEEP | STATUS1_POISON, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, 0x0 - jumpifhalverset BS_TARGET, 0x20, BattleScript_81D8B39 + jumpifsideaffecting BS_TARGET, 0x20, BattleScript_81D8B39 attackanimation waitanimation - setbyte cEFFECT_CHOOSER, 0x2 - seteffecttarget + setmoveeffect MOVE_EFFECT_POISON + seteffectprimary resultmessage waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectParalyze:: @ 81D71E2 attackcanceler attackstring ppreduce - jumpifability BS_TARGET, ABILITY_LIMBER, BattleScript_81D7245 - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed - atk6 + jumpifability 0x0, ABILITY_LIMBER, BattleScript_81D7245 + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + typecalc jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, 0x29, BattleScript_ButItFailed - jumpifstatus BS_TARGET, 0x40, BattleScript_81D7237 - jumpifstatus BS_TARGET, 0xFF, BattleScript_ButItFailed + jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_81D7237 + jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_FREEZE | STATUS1_SLEEP | STATUS1_POISON, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, 0x0 - jumpifhalverset BS_TARGET, 0x20, BattleScript_81D8B39 + jumpifsideaffecting BS_TARGET, 0x20, BattleScript_81D8B39 attackanimation waitanimation - setbyte cEFFECT_CHOOSER, 0x5 - seteffecttarget + setmoveeffect MOVE_EFFECT_PARALYSIS + seteffectprimary resultmessage waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D7237:: @ 81D7237 pause 0x20 printstring STRINGID_PKMNISALREADYPARALYZED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D7245:: @ 81D7245 copyarray gEffectBattler, gBattlerTarget, 0x1 setbyte cMULTISTRING_CHOOSER, 0x0 - callatk BattleScript_PRLZPrevention - jump BattleScript_MoveEnd + call BattleScript_PRLZPrevention + goto BattleScript_MoveEnd BattleScript_EffectAttackDownHit:: @ 81D725F - setbyte cEFFECT_CHOOSER, 0x16 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_ATK_MINUS_1 + goto BattleScript_EffectHit BattleScript_EffectDefenseDownHit:: @ 81D726A - setbyte cEFFECT_CHOOSER, 0x17 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_DEF_MINUS_1 + goto BattleScript_EffectHit BattleScript_EffectSpeedDownHit:: @ 81D7275 - setbyte cEFFECT_CHOOSER, 0x18 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_SPD_MINUS_1 + goto BattleScript_EffectHit BattleScript_EffectSpecialAttackDownHit:: @ 81D7280 - setbyte cEFFECT_CHOOSER, 0x19 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_SP_ATK_MINUS_1 + goto BattleScript_EffectHit BattleScript_EffectSpecialDefenseDownHit:: @ 81D728B - setbyte cEFFECT_CHOOSER, 0x1A - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_SP_DEF_MINUS_1 + goto BattleScript_EffectHit BattleScript_EffectAccuracyDownHit:: @ 81D7296 - setbyte cEFFECT_CHOOSER, 0x1B - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_ACC_MINUS_1 + goto BattleScript_EffectHit BattleScript_EffectSkyAttack:: @ 81D72A1 - jumpifsecondarytstatus BS_ATTACKER, 0x1000, BattleScript_81D6F29 + jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D6F29 jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_81D6F29 setbyte sTWOTURN_STRINGID, 0x3 - callatk BattleScript_81D6F58 - jump BattleScript_MoveEnd + call BattleScript_81D6F58 + goto BattleScript_MoveEnd BattleScript_EffectConfuseHit:: @ 81D72C9 - setbyte cEFFECT_CHOOSER, 0x7 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_CONFUSION + goto BattleScript_EffectHit BattleScript_EffectTwineedle:: @ 81D72D4 attackcanceler @@ -1115,74 +1113,74 @@ BattleScript_EffectTwineedle:: @ 81D72D4 setbyte sMULTIHIT_EFFECT, 0x2 attackstring ppreduce - setloopcounter 0x2 - atk8e - jump BattleScript_81D6CEC + setmultihitcounter 0x2 + initmultihitstring + goto BattleScript_81D6CEC BattleScript_EffectSubstitute:: @ 81D72EC attackcanceler ppreduce attackstring - waitstateatk - jumpifsecondarytstatus BS_ATTACKER, 0x1000000, BattleScript_81D7321 - setsubstituteeffect + waitstate + jumpifstatus2 BS_ATTACKER, STATUS2_SUBSTITUTE, BattleScript_81D7321 + setsubstitute jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_81D730E pause 0x20 - jump BattleScript_81D7314 + goto BattleScript_81D7314 BattleScript_81D730E:: @ 81D730E attackanimation waitanimation - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER BattleScript_81D7314:: @ 81D7314 printfromtable gSubsituteUsedStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D7321:: @ 81D7321 pause 0x20 printstring STRINGID_PKMNHASSUBSTITUTE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectRecharge:: @ 81D732F attackcanceler accuracycheck BattleScript_81D695E, 0x0 - setbyte cEFFECT_CHOOSER, 0xDD - jump BattleScript_81D692E + setmoveeffect MOVE_EFFECT_RECHARGE | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN + goto BattleScript_81D692E BattleScript_MoveUsedMustRecharge:: @ 81D7342 printstring STRINGID_PKMNMUSTRECHARGE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectRage:: @ 81D734D attackcanceler accuracycheck BattleScript_81D7367, 0x0 - setbyte cEFFECT_CHOOSER, 0x1E - seteffecttarget - setbyte cEFFECT_CHOOSER, 0x0 - jump BattleScript_81D692E + setmoveeffect MOVE_EFFECT_RAGE + seteffectprimary + setmoveeffect MOVE_EFFECT_NOTHING_0 + goto BattleScript_81D692E BattleScript_81D7367:: @ 81D7367 - setbyte cEFFECT_CHOOSER, 0x1E - clearstatus BS_ATTACKER - jump BattleScript_81D695E + setmoveeffect MOVE_EFFECT_RAGE + clearstatusfromeffect BS_ATTACKER + goto BattleScript_81D695E BattleScript_EffectMimic:: @ 81D7374 attackcanceler attackstring ppreduce - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, 0xFFFF - copyattack BattleScript_ButItFailed + mimicattackcopy BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNLEARNEDMOVE2 waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectMetronome:: @ 81D739A attackcanceler @@ -1192,23 +1190,23 @@ BattleScript_EffectMetronome:: @ 81D739A waitanimation setbyte sB_ANIM_TURN, 0x0 setbyte sB_ANIM_TARGETS_HIT, 0x0 - metronomeeffect + metronome BattleScript_EffectLeechSeed:: @ 81D73AE attackcanceler attackstring pause 0x20 ppreduce - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed accuracycheck BattleScript_81D73C5, 0x0 BattleScript_81D73C5:: @ 81D73C5 - setleechseed + setseeded attackanimation waitanimation printfromtable gLeechSeedStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSplash:: @ 81D73D5 attackcanceler @@ -1216,10 +1214,10 @@ BattleScript_EffectSplash:: @ 81D73D5 ppreduce attackanimation waitanimation - atk60 0x1A + incrementgamestat GAME_STAT_USED_SPLASH printstring STRINGID_BUTNOTHINGHAPPENED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectDisable:: @ 81D73E7 attackcanceler @@ -1231,29 +1229,29 @@ BattleScript_EffectDisable:: @ 81D73E7 waitanimation printstring STRINGID_PKMNMOVEWASDISABLED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectLevelDamage:: @ 81D7403 attackcanceler accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - atk6 + typecalc bicbyte gMoveResultFlags, 0x6 - nightshadedamageeffect - atk69 - jump BattleScript_81D6934 + dmgtolevel + adjustsetdamage + goto BattleScript_81D6934 BattleScript_EffectPsywave:: @ 81D741B attackcanceler accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - atk6 + typecalc bicbyte gMoveResultFlags, 0x6 psywavedamageeffect - atk69 - jump BattleScript_81D6934 + adjustsetdamage + goto BattleScript_81D6934 BattleScript_EffectCounter:: @ 81D7433 attackcanceler @@ -1261,49 +1259,49 @@ BattleScript_EffectCounter:: @ 81D7433 accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - damagecalc2 - atk69 - jump BattleScript_81D6934 + typecalc2 + adjustsetdamage + goto BattleScript_81D6934 BattleScript_EffectEncore:: @ 81D7449 attackcanceler accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - setencore BattleScript_ButItFailed + trysetencore BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNGOTENCORE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectPainSplit:: @ 81D7465 attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, 0xFFFF - painsplitdamagecalculator BattleScript_ButItFailed + painsplitdmgcalc BattleScript_ButItFailed attackanimation waitanimation orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER copyarray gBattleMoveDamage, gBattleScripting, 0x4 - graphicalhpupdate BS_TARGET + healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_SHAREDPAIN waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSnore:: @ 81D749C attackcanceler - jumpifstatus BS_ATTACKER, 0x7, BattleScript_81D74AE + jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_81D74AE attackstring ppreduce - jump BattleScript_ButItFailed + goto BattleScript_ButItFailed BattleScript_81D74AE:: @ 81D74AE - jumpifhalfword CMP_EQUAL, gChosenMove, 0xD6, BattleScript_81D74C2 + jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_81D74C2 printstring STRINGID_PKMNFASTASLEEP waitmessage 0x40 statusanimation BS_ATTACKER @@ -1312,8 +1310,8 @@ BattleScript_81D74C2:: @ 81D74C2 attackstring ppreduce accuracycheck BattleScript_MoveMissedPause, 0x0 - setbyte cEFFECT_CHOOSER, 0x8 - jump BattleScript_HitFromCritCalc + setmoveeffect MOVE_EFFECT_FLINCH + goto BattleScript_HitFromCritCalc BattleScript_EffectConversion2:: @ 81D74D6 attackcanceler @@ -1324,39 +1322,39 @@ BattleScript_EffectConversion2:: @ 81D74D6 waitanimation printstring STRINGID_PKMNCHANGEDTYPE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectLockOn:: @ 81D74EB attackcanceler attackstring ppreduce - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, 0x0 setalwayshitflag attackanimation waitanimation printstring STRINGID_PKMNTOOKAIM waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSketch:: @ 81D750D attackcanceler attackstring ppreduce - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed copymovepermanently BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNSKETCHEDMOVE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSleepTalk:: @ 81D752C attackcanceler - jumpifstatus BS_ATTACKER, 0x7, BattleScript_81D753E + jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_81D753E attackstring ppreduce - jump BattleScript_ButItFailed + goto BattleScript_ButItFailed BattleScript_81D753E:: @ 81D753E printstring STRINGID_PKMNFASTASLEEP @@ -1365,55 +1363,55 @@ BattleScript_81D753E:: @ 81D753E attackstring ppreduce orword gHitMarker, HITMARKER_NO_PPDEDUCT - selectrandommovefromusermoves BattleScript_81D755E + trychoosesleeptalkmove BattleScript_81D755E pause 0x40 - jump BattleScript_ButItFailed + goto BattleScript_ButItFailed BattleScript_81D755E:: @ 81D755E attackanimation waitanimation setbyte sB_ANIM_TURN, 0x0 setbyte sB_ANIM_TARGETS_HIT, 0x0 - jumptoattack BS_ATTACKER + jumptocalledmove 0x1 BattleScript_EffectDestinyBond:: @ 81D756E attackcanceler attackstring ppreduce - destinybondeffect + setdestinybond attackanimation waitanimation printstring STRINGID_PKMNTRYINGTOTAKEFOE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectFlail:: @ 81D757F remaininghptopower - jump BattleScript_EffectHit + goto BattleScript_EffectHit BattleScript_EffectSpite:: @ 81D7585 attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, 0x0 - reducepprandom BattleScript_ButItFailed + tryspiteppreduce BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNREDUCEDPP waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectHealBell:: @ 81D75A1 attackcanceler attackstring ppreduce - clearstatusifnotsoundproofed - waitstateatk + healpartystatus + waitstate attackanimation waitanimation printfromtable gPartyStatusHealStringIds waitmessage 0x40 - jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, 0xD7, BattleScript_81D75DE + jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, MOVE_HEAL_BELL, BattleScript_81D75DE jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_81D75CD printstring STRINGID_PKMNSXBLOCKSY waitmessage 0x40 @@ -1424,9 +1422,9 @@ BattleScript_81D75CD:: @ 81D75CD waitmessage 0x40 BattleScript_81D75DE:: @ 81D75DE - atk98 0x4 - waitstateatk - jump BattleScript_MoveEnd + updatestatusicon BS_ATTACKER_WITH_PARTNER + waitstate + goto BattleScript_MoveEnd BattleScript_EffectTripleKick:: @ 81D75E6 attackcanceler @@ -1434,42 +1432,41 @@ BattleScript_EffectTripleKick:: @ 81D75E6 ppreduce setbyte sTRIPLE_KICK_POWER, 0x0 setbyte gBattleScripting + 0x13, 0x0 - atk8e - atk26 0x3 + initmultihitstring + setmultihit 0x3 BattleScript_81D75F8:: @ 81D75F8 - jumpiffainted BS_ATTACKER, BattleScript_81D76B7 - jumpiffainted BS_TARGET, BattleScript_81D7679 - jumpifhalfword CMP_EQUAL, gChosenMove, 0xD6, BattleScript_81D761A - jumpifstatus BS_ATTACKER, 0x7, BattleScript_81D7679 + jumpifhasnohp BS_ATTACKER, BattleScript_81D76B7 + jumpifhasnohp BS_TARGET, BattleScript_81D7679 + jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_81D761A + jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_81D7679 BattleScript_81D761A:: @ 81D761A accuracycheck BattleScript_81D7679, 0x0 - atk25 + movevaluescleanup addbyte sTRIPLE_KICK_POWER, 0xA addbyte gBattleScripting + 0xC, 0x1 copyarray gDynamicBasePower, sTRIPLE_KICK_POWER, 0x2 critcalc - atk5 - atk6 - atk7 + damagecalc + typecalc + adjustnormaldamage jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, 0x29, BattleScript_81D7679 attackanimation waitanimation - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage waitmessage 0x40 printstring STRINGID_EMPTYSTRING3 waitmessage 0x1 - setbyte sMOVEEND_STATE, 0x0 - atk49 0x2, 0x10 + moveendto 0x10 jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, 0x40, BattleScript_81D768D - atk27 BattleScript_81D75F8 - jump BattleScript_81D768D + decrementmultihit BattleScript_81D75F8 + goto BattleScript_81D768D BattleScript_81D7679:: @ 81D7679 pause 0x20 @@ -1486,132 +1483,131 @@ BattleScript_81D768D:: @ 81D768D waitmessage 0x40 BattleScript_81D76B7:: @ 81D76B7 - seteffectwithchancetarget - faintpokemon BS_TARGET, 0x0, NULL - setbyte sMOVEEND_STATE, 0xE - atk49 0x0, 0x0 + seteffectwithchance + tryfaintmon BS_TARGET, 0x0, NULL + moveendfrom 0xE end BattleScript_EffectThief:: @ 81D76C9 - setbyte cEFFECT_CHOOSER, 0x1F - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_STEAL_ITEM + goto BattleScript_EffectHit BattleScript_EffectMeanLook:: @ 81D76D4 attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, 0xFFFE - jumpifsecondarytstatus BS_TARGET, 0x4000000, BattleScript_ButItFailed - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed attackanimation waitanimation - setbyte cEFFECT_CHOOSER, 0x20 - seteffecttarget + setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE + seteffectprimary printstring STRINGID_TARGETCANTESCAPENOW waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectNightmare:: @ 81D7706 attackcanceler attackstring ppreduce - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed - jumpifsecondarytstatus BS_TARGET, Start, BattleScript_ButItFailed - jumpifstatus BS_TARGET, 0x7, BattleScript_81D772C - jump BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed + jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_81D772C + goto BattleScript_ButItFailed BattleScript_81D772C:: @ 81D772C attackanimation waitanimation - setbyte cEFFECT_CHOOSER, 0x21 - seteffecttarget + setmoveeffect MOVE_EFFECT_NIGHTMARE + seteffectprimary printstring STRINGID_PKMNFELLINTONIGHTMARE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectMinimize:: @ 81D7740 attackcanceler setminimize - setbyte sSTATCHANGER, 0x17 - jump BattleScript_81D6B9F + setstatchanger STAT_EVASION, 1, FALSE + goto BattleScript_81D6B9F BattleScript_EffectCurse:: @ 81D774D jumpiftype2 BS_ATTACKER, 0x7, BattleScript_81D77C5 attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, 0x0, BattleScript_81D7772 - jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, 0xC, BattleScript_81D7772 - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 0xC, BattleScript_ButItFailed + jumpifstat BS_ATTACKER, CMP_GREATER_THAN, 0x3, 0x0, BattleScript_81D7772 + jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, 0x1, 0xC, BattleScript_81D7772 + jumpifstat BS_ATTACKER, CMP_EQUAL, 0x2, 0xC, BattleScript_ButItFailed BattleScript_81D7772:: @ 81D7772 copyarray gBattlerTarget, gBattlerAttacker, 0x1 setbyte sB_ANIM_TURN, 0x1 attackanimation waitanimation - setbyte sSTATCHANGER, 0x93 + setstatchanger STAT_SPEED, 1, TRUE statbuffchange 0x41, BattleScript_81D7798 printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_81D7798:: @ 81D7798 - setbyte sSTATCHANGER, 0x11 + setstatchanger STAT_ATK, 1, FALSE statbuffchange 0x41, BattleScript_81D77AC printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D77AC:: @ 81D77AC - setbyte sSTATCHANGER, 0x12 + setstatchanger STAT_DEF, 1, FALSE statbuffchange 0x41, BattleScript_81D77C0 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D77C0:: @ 81D77C0 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D77C5:: @ 81D77C5 jumpifarraynotequal gBattlerAttacker, gBattlerTarget, 0x1, BattleScript_81D77D6 - atk76 0x1, BS_FAINTED + various BS_ATTACKER, 0x3 BattleScript_81D77D6:: @ 81D77D6 attackcanceler attackstring ppreduce - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, 0xFFFF cursetarget BattleScript_ButItFailed orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE setbyte sB_ANIM_TURN, 0x0 attackanimation waitanimation - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNLAIDCURSE waitmessage 0x40 - faintpokemon BS_ATTACKER, 0x0, NULL - jump BattleScript_MoveEnd + tryfaintmon BS_ATTACKER, 0x0, NULL + goto BattleScript_MoveEnd BattleScript_EffectProtect:: @ 81D7816 attackcanceler attackstring ppreduce - setprotect + setprotectlike attackanimation waitanimation printfromtable gProtectLikeUsedStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSpikes:: @ 81D7829 attackcanceler - setspikes BattleScript_81D7DF0 + trysetspikes BattleScript_81D7DF0 attackstring ppreduce attackanimation waitanimation printstring STRINGID_SPIKESSCATTERED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectForesight:: @ 81D783E attackcanceler @@ -1623,13 +1619,13 @@ BattleScript_EffectForesight:: @ 81D783E waitanimation printstring STRINGID_PKMNIDENTIFIED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectPerishSong:: @ 81D7856 attackcanceler attackstring ppreduce - setperishsong BattleScript_ButItFailed + trysetperishsong BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_FAINTINTHREE @@ -1637,62 +1633,62 @@ BattleScript_EffectPerishSong:: @ 81D7856 setbyte sBATTLER, 0x0 BattleScript_81D786C:: @ 81D786C - jumpifability BS_SCRIPTING, ABILITY_SOUNDPROOF, BattleScript_81D788C + jumpifability 0xA, ABILITY_SOUNDPROOF, BattleScript_81D788C BattleScript_81D7873:: @ 81D7873 addbyte sBATTLER, 0x1 jumpifarraynotequal sBATTLER, gBattlersCount, 0x1, BattleScript_81D786C - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D788C:: @ 81D788C printstring STRINGID_PKMNSXBLOCKSY2 waitmessage 0x40 - jump BattleScript_81D7873 + goto BattleScript_81D7873 BattleScript_EffectSandstorm:: @ 81D7897 attackcanceler attackstring ppreduce setsandstorm - jump BattleScript_81D7A14 + goto BattleScript_81D7A14 BattleScript_EffectRollout:: @ 81D78A0 attackcanceler attackstring - jumpifsecondarytstatus BS_ATTACKER, 0x1000, BattleScript_81D78AD + jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D78AD ppreduce BattleScript_81D78AD:: @ 81D78AD accuracycheck BattleScript_81D78B4, 0x0 BattleScript_81D78B4:: @ 81D78B4 - damagecalc2 + typecalc2 rolloutdamagecalculation - jump BattleScript_HitFromCritCalc + goto BattleScript_HitFromCritCalc BattleScript_EffectSwagger:: @ 81D78BB attackcanceler - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_81D6958 + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D6958 accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - jumpifconfusedandattackmaxed BS_ATTACKER, BattleScript_ButItFailed + jumpifconfusedandstatmaxed 0x1, BattleScript_ButItFailed attackanimation waitanimation - setbyte sSTATCHANGER, 0x21 + setstatchanger STAT_ATK, 2, FALSE statbuffchange 0x1, BattleScript_81D78FE jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D78FE - atk47 + setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D78FE:: @ 81D78FE - jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_81D9460 - jumpifhalverset BS_TARGET, 0x20, BattleScript_81D8B39 - setbyte cEFFECT_CHOOSER, 0x7 - seteffecttarget - jump BattleScript_MoveEnd + jumpifability 0x0, ABILITY_OWN_TEMPO, BattleScript_81D9460 + jumpifsideaffecting BS_TARGET, 0x20, BattleScript_81D8B39 + setmoveeffect MOVE_EFFECT_CONFUSION + seteffectprimary + goto BattleScript_MoveEnd BattleScript_EffectFuryCutter:: @ 81D7919 attackcanceler @@ -1701,38 +1697,38 @@ BattleScript_EffectFuryCutter:: @ 81D7919 accuracycheck BattleScript_81D7923, 0x0 BattleScript_81D7923:: @ 81D7923 - furycutterdamagecalculation + furycuttercalc critcalc - atk5 - atk6 + damagecalc + typecalc jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, 0x29, BattleScript_81D7923 - atk7 - jump BattleScript_81D6934 + adjustnormaldamage + goto BattleScript_81D6934 BattleScript_EffectAttract:: @ 81D7938 attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, 0x0 - tryinfatuatetarget BattleScript_ButItFailed + tryinfatuating BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNFELLINLOVE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectReturn:: @ 81D7954 attackcanceler accuracycheck BattleScript_81D695E, 0x0 happinesstodamagecalculation - jump BattleScript_81D692E + goto BattleScript_81D692E BattleScript_EffectPresent:: @ 81D7962 attackcanceler accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - atk6 + typecalc presentdamagecalculation BattleScript_EffectSafeguard:: @ 81D796E @@ -1740,73 +1736,73 @@ BattleScript_EffectSafeguard:: @ 81D796E attackstring ppreduce setsafeguard - jump BattleScript_81D7172 + goto BattleScript_81D7172 BattleScript_EffectThawHit:: @ 81D7977 - setbyte cEFFECT_CHOOSER, 0x3 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_BURN + goto BattleScript_EffectHit BattleScript_EffectMagnitude:: @ 81D7982 attackcanceler attackstring ppreduce - selectnexttarget + selectfirstvalidtarget magnitudedamagecalculation pause 0x20 printstring STRINGID_MAGNITUDESTRENGTH waitmessage 0x40 - jump BattleScript_81D7B17 + goto BattleScript_81D7B17 BattleScript_EffectBatonPass:: @ 81D7995 attackcanceler attackstring ppreduce - jumpifcannotswitch BS_ATTACKER | 0x80, BattleScript_ButItFailed + jumpifcantswitch BS_ATTACKER | 0x80, BattleScript_ButItFailed attackanimation waitanimation openpartyscreen 0x1, BattleScript_ButItFailed - atke2 BS_ATTACKER - waitstateatk - atk51 BS_ATTACKER, 0x2 - atk58 BS_ATTACKER - switch1 BS_ATTACKER - switch2 BS_ATTACKER - atk73 BS_ATTACKER + switchoutabilities BS_ATTACKER + waitstate + switchhandleorder BS_ATTACKER, 0x2 + returntoball BS_ATTACKER + getswitchedmondata BS_ATTACKER + switchindataupdate BS_ATTACKER + hpthresholds BS_ATTACKER printstring STRINGID_SWITCHINMON - switch3 BS_ATTACKER, 0x1 - waitstateatk - atk52 BS_ATTACKER - jump BattleScript_MoveEnd + switchinanim BS_ATTACKER, 0x1 + waitstate + switchineffects BS_ATTACKER + goto BattleScript_MoveEnd BattleScript_EffectRapidSpin:: @ 81D79C2 - setbyte cEFFECT_CHOOSER, 0xE3 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN + goto BattleScript_EffectHit BattleScript_EffectSonicboom:: @ 81D79CD attackcanceler accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - atk6 + typecalc bicbyte gMoveResultFlags, 0x6 setbyte gBattleMoveDamage, 0x14 setbyte gBattleMoveDamage + 0x1, 0x0 setbyte gBattleMoveDamage + 0x2, 0x0 setbyte gBattleMoveDamage + 0x3, 0x0 - atk69 - jump BattleScript_81D6934 + adjustsetdamage + goto BattleScript_81D6934 BattleScript_EffectMorningSun:: @ 81D79FC attackcanceler attackstring ppreduce recoverbasedonsunlight BattleScript_AlreadyAtFullHp - jump BattleScript_PresentHealTarget + goto BattleScript_PresentHealTarget BattleScript_EffectHiddenPower:: @ 81D7A09 attackcanceler - hiddenpowerdamagecalculation - jump BattleScript_81D6927 + hiddenpowercalc + goto BattleScript_81D6927 BattleScript_EffectRainDance:: @ 81D7A10 attackcanceler @@ -1819,27 +1815,27 @@ BattleScript_81D7A14:: @ 81D7A14 waitanimation printfromtable gMoveWeatherChangeStringIds waitmessage 0x40 - callatk BattleScript_81D92DC - jump BattleScript_MoveEnd + call BattleScript_81D92DC + goto BattleScript_MoveEnd BattleScript_EffectSunnyDay:: @ 81D7A28 attackcanceler attackstring ppreduce setsunny - jump BattleScript_81D7A14 + goto BattleScript_81D7A14 BattleScript_EffectDefenseUpHit:: @ 81D7A31 - setbyte cEFFECT_CHOOSER, 0x50 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_DEF_PLUS_1 | MOVE_EFFECT_AFFECTS_USER + goto BattleScript_EffectHit BattleScript_EffectAttackUpHit:: @ 81D7A3C - setbyte cEFFECT_CHOOSER, 0x4F - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER + goto BattleScript_EffectHit BattleScript_EffectAllStatsUpHit:: @ 81D7A47 - setbyte cEFFECT_CHOOSER, 0x62 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_ALL_STATS_UP | MOVE_EFFECT_AFFECTS_USER + goto BattleScript_EffectHit BattleScript_EffectBellyDrum:: @ 81D7A52 attackcanceler @@ -1849,11 +1845,11 @@ BattleScript_EffectBellyDrum:: @ 81D7A52 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE attackanimation waitanimation - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNCUTHPMAXEDATTACK waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectPsychUp:: @ 81D7A74 attackcanceler @@ -1864,7 +1860,7 @@ BattleScript_EffectPsychUp:: @ 81D7A74 waitanimation printstring STRINGID_PKMNCOPIEDSTATCHANGES waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectMirrorCoat:: @ 81D7A89 attackcanceler @@ -1872,47 +1868,47 @@ BattleScript_EffectMirrorCoat:: @ 81D7A89 accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - damagecalc2 - atk69 - jump BattleScript_81D6934 + typecalc2 + adjustsetdamage + goto BattleScript_81D6934 BattleScript_EffectSkullBash:: @ 81D7A9F - jumpifsecondarytstatus BS_ATTACKER, 0x1000, BattleScript_81D6F29 + jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D6F29 jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_81D6F29 setbyte sTWOTURN_STRINGID, 0x2 - callatk BattleScript_81D6F58 - setbyte sSTATCHANGER, 0x12 + call BattleScript_81D6F58 + setstatchanger STAT_DEF, 1, FALSE statbuffchange 0x41, BattleScript_81D7AE9 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D7AE9 - atk47 + setgraphicalstatchangevalues playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D7AE9:: @ 81D7AE9 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectTwister:: @ 81D7AEE - jumpifspecialstatusflag BS_TARGET, 0x40, 0x1, BattleScript_81D7B08 + jumpifstatus3condition BS_TARGET, 0x40, 0x1, BattleScript_81D7B08 orword gHitMarker, HITMARKER_IGNORE_ON_AIR setbyte sDMG_MULTIPLIER, 0x2 BattleScript_81D7B08:: @ 81D7B08 - setbyte cEFFECT_CHOOSER, 0x8 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_FLINCH + goto BattleScript_EffectHit BattleScript_EffectEarthquake:: @ 81D7B13 attackcanceler attackstring ppreduce - selectnexttarget + selectfirstvalidtarget BattleScript_81D7B17:: @ 81D7B17 - atk25 - jumpifspecialstatusflag BS_TARGET, 0x80, 0x1, BattleScript_81D7B37 + movevaluescleanup + jumpifstatus3condition BS_TARGET, 0x80, 0x1, BattleScript_81D7B37 orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND setbyte sDMG_MULTIPLIER, 0x2 - jump BattleScript_81D7B46 + goto BattleScript_81D7B46 BattleScript_81D7B37:: @ 81D7B37 bicword gHitMarker, 0x20000 @@ -1921,15 +1917,15 @@ BattleScript_81D7B37:: @ 81D7B37 BattleScript_81D7B46:: @ 81D7B46 accuracycheck BattleScript_81D7B7F, 0x0 critcalc - atk5 - atk6 - atk7 + damagecalc + typecalc + adjustnormaldamage attackanimation waitanimation - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage waitmessage 0x40 @@ -1937,44 +1933,42 @@ BattleScript_81D7B46:: @ 81D7B46 waitmessage 0x40 printstring STRINGID_EMPTYSTRING3 waitmessage 0x1 - faintpokemon BS_TARGET, 0x0, NULL - setbyte sMOVEEND_STATE, 0x0 - atk49 0x2, 0x10 - jumpwhiletargetvalid BattleScript_81D7B17 + tryfaintmon BS_TARGET, 0x0, NULL + moveendto 0x10 + jumpifnexttargetvalid BattleScript_81D7B17 end BattleScript_81D7B7F:: @ 81D7B7F pause 0x20 - atk6 - missmessage + typecalc + effectivenesssound resultmessage waitmessage 0x40 - setbyte sMOVEEND_STATE, 0x0 - atk49 0x2, 0x10 - jumpwhiletargetvalid BattleScript_81D7B17 + moveendto 0x10 + jumpifnexttargetvalid BattleScript_81D7B17 end BattleScript_EffectFutureSight:: @ 81D7B97 attackcanceler attackstring ppreduce - setfutureattack BattleScript_ButItFailed + trysetfutureattack BattleScript_ButItFailed attackanimation waitanimation printfromtable gFutureMoveUsedStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectGust:: @ 81D7BAE - jumpifspecialstatusflag BS_TARGET, 0x40, 0x1, BattleScript_EffectHit + jumpifstatus3condition BS_TARGET, 0x40, 0x1, BattleScript_EffectHit orword gHitMarker, HITMARKER_IGNORE_ON_AIR setbyte sDMG_MULTIPLIER, 0x2 - jump BattleScript_EffectHit + goto BattleScript_EffectHit BattleScript_EffectFlinchMinimizeHit:: @ 81D7BCD - jumpifspecialstatusflag BS_TARGET, 0x100, 0x1, BattleScript_81D7B08 + jumpifstatus3condition BS_TARGET, 0x100, 0x1, BattleScript_81D7B08 setbyte sDMG_MULTIPLIER, 0x2 - jump BattleScript_81D7B08 + goto BattleScript_81D7B08 BattleScript_EffectSolarbeam:: @ 81D7BE3 jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_81D7BFB @@ -1982,30 +1976,30 @@ BattleScript_EffectSolarbeam:: @ 81D7BE3 jumpifhalfword CMP_COMMON_BITS, gBattleWeather, 0x60, BattleScript_81D7C23 BattleScript_81D7BFB:: @ 81D7BFB - jumpifsecondarytstatus BS_ATTACKER, 0x1000, BattleScript_81D6F29 + jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D6F29 jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_81D6F29 setbyte sTWOTURN_STRINGID, 0x1 - callatk BattleScript_81D6F58 - jump BattleScript_MoveEnd + call BattleScript_81D6F58 + goto BattleScript_MoveEnd BattleScript_81D7C23:: @ 81D7C23 orword gHitMarker, HITMARKER_CHARGING - setbyte cEFFECT_CHOOSER, 0x4C - seteffecttarget + setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER + seteffectprimary ppreduce - jump BattleScript_81D6F29 + goto BattleScript_81D6F29 BattleScript_EffectThunder:: @ 81D7C39 - setbyte cEFFECT_CHOOSER, 0x5 + setmoveeffect MOVE_EFFECT_PARALYSIS orword gHitMarker, HITMARKER_IGNORE_ON_AIR - jump BattleScript_EffectHit + goto BattleScript_EffectHit BattleScript_EffectTeleport:: @ 81D7C4D attackcanceler attackstring ppreduce jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_ButItFailed - atk76 0x1, BS_EFFECT_BATTLER + various BS_ATTACKER, 0x2 jumpifbyte CMP_EQUAL, gBattleCommunication, 0x1, BattleScript_ButItFailed jumpifbyte CMP_EQUAL, gBattleCommunication, 0x2, BattleScript_81D8255 attackanimation @@ -2013,7 +2007,7 @@ BattleScript_EffectTeleport:: @ 81D7C4D printstring STRINGID_PKMNFLEDFROMBATTLE waitmessage 0x40 setbyte gBattleOutcome, 0x5 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectBeatUp:: @ 81D7C8A attackcanceler @@ -2024,118 +2018,117 @@ BattleScript_EffectBeatUp:: @ 81D7C8A setbyte gBattleCommunication, 0x0 BattleScript_81D7C9D:: @ 81D7C9D - atk25 - beatupcalculation BattleScript_81D7CE0, BattleScript_ButItFailed + movevaluescleanup + trydobeatup BattleScript_81D7CE0, BattleScript_ButItFailed printstring STRINGID_PKMNATTACK critcalc jumpifbyte CMP_NOT_EQUAL, gCritMultiplier, 0x2, BattleScript_81D7CB8 manipulatedamage 0x2 BattleScript_81D7CB8:: @ 81D7CB8 - atk7 + adjustnormaldamage attackanimation waitanimation - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 - faintpokemon BS_TARGET, 0x0, NULL - setbyte sMOVEEND_STATE, 0x0 - atk49 0x2, 0x10 - jump BattleScript_81D7C9D + tryfaintmon BS_TARGET, 0x0, NULL + moveendto 0x10 + goto BattleScript_81D7C9D BattleScript_81D7CE0:: @ 81D7CE0 end BattleScript_EffectSemiInvulnerable:: @ 81D7CE1 - jumpifsecondarytstatus BS_ATTACKER, 0x1000, BattleScript_81D7D4F + jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D7D4F jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_81D7D4F - jumpifhalfword CMP_EQUAL, gCurrentMove, 0x13, BattleScript_81D7D3E - jumpifhalfword CMP_EQUAL, gCurrentMove, 0x123, BattleScript_81D7D33 - jumpifhalfword CMP_EQUAL, gCurrentMove, 0x154, BattleScript_81D7D28 + jumpifhalfword CMP_EQUAL, gCurrentMove, MOVE_FLY, BattleScript_81D7D3E + jumpifhalfword CMP_EQUAL, gCurrentMove, MOVE_DIVE, BattleScript_81D7D33 + jumpifhalfword CMP_EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_81D7D28 setbyte sTWOTURN_STRINGID, 0x5 - jump BattleScript_81D7D44 + goto BattleScript_81D7D44 BattleScript_81D7D28:: @ 81D7D28 setbyte sTWOTURN_STRINGID, 0x7 - jump BattleScript_81D7D44 + goto BattleScript_81D7D44 BattleScript_81D7D33:: @ 81D7D33 setbyte sTWOTURN_STRINGID, 0x6 - jump BattleScript_81D7D44 + goto BattleScript_81D7D44 BattleScript_81D7D3E:: @ 81D7D3E setbyte sTWOTURN_STRINGID, 0x4 BattleScript_81D7D44:: @ 81D7D44 - callatk BattleScript_81D6F58 - hidepreattack - jump BattleScript_MoveEnd + call BattleScript_81D6F58 + setsemiinvulnerablebit + goto BattleScript_MoveEnd BattleScript_81D7D4F:: @ 81D7D4F attackcanceler - setbyte cEFFECT_CHOOSER, 0xC + setmoveeffect MOVE_EFFECT_CHARGING setbyte sB_ANIM_TURN, 0x1 - clearstatus BS_ATTACKER + clearstatusfromeffect BS_ATTACKER orword gHitMarker, HITMARKER_NO_PPDEDUCT - jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, 0x154, BattleScript_81D7D79 - setbyte cEFFECT_CHOOSER, 0x5 + jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, MOVE_BOUNCE, BattleScript_81D7D79 + setmoveeffect MOVE_EFFECT_PARALYSIS BattleScript_81D7D79:: @ 81D7D79 accuracycheck BattleScript_81D7D86, 0x0 - unhidepostattack - jump BattleScript_81D692E + clearsemiinvulnerablebit + goto BattleScript_81D692E BattleScript_81D7D86:: @ 81D7D86 - unhidepostattack - jump BattleScript_81D695E + clearsemiinvulnerablebit + goto BattleScript_81D695E BattleScript_EffectDefenseCurl:: @ 81D7D8C attackcanceler attackstring ppreduce - setcurled - setbyte sSTATCHANGER, 0x12 + setdefensecurlbit + setstatchanger STAT_DEF, 1, FALSE statbuffchange 0x41, BattleScript_81D7DA9 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D6BC4 attackanimation waitanimation BattleScript_81D7DA9:: @ 81D7DA9 - jump BattleScript_81D6BBC + goto BattleScript_81D6BBC BattleScript_EffectSoftboiled:: @ 81D7DAE attackcanceler attackstring ppreduce - setdamageasrestorehalfmaxhp BattleScript_AlreadyAtFullHp, 0x0 + tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_TARGET BattleScript_PresentHealTarget:: @ 81D7DB7 attackanimation waitanimation orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_TARGET + healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_PKMNREGAINEDHEALTH waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_AlreadyAtFullHp:: @ 81D7DD1 pause 0x20 printstring STRINGID_PKMNHPFULL waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectFakeOut:: @ 81D7DDF attackcanceler jumpifnotfirstturn BattleScript_81D7DF0 - setbyte cEFFECT_CHOOSER, 0x88 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_FLINCH | MOVE_EFFECT_CERTAIN + goto BattleScript_EffectHit BattleScript_81D7DF0:: @ 81D7DF0 attackstring @@ -2148,26 +2141,26 @@ BattleScript_ButItFailed:: @ 81D7DF2 orbyte gMoveResultFlags, 0x20 resultmessage waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D7E04:: @ 81D7E04 pause 0x20 orbyte gMoveResultFlags, 0x8 resultmessage waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectUproar:: @ 81D7E16 attackcanceler accuracycheck BattleScript_81D695E, 0x0 - setbyte cEFFECT_CHOOSER, 0x4A + setmoveeffect MOVE_EFFECT_UPROAR | MOVE_EFFECT_AFFECTS_USER attackstring - jumpifsecondarytstatus BS_ATTACKER, 0x1000, BattleScript_81D7E30 + jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_81D7E30 ppreduce BattleScript_81D7E30:: @ 81D7E30 - nop3 - jump BattleScript_HitFromCritCalc + nop + goto BattleScript_HitFromCritCalc BattleScript_EffectStockpile:: @ 81D7E36 attackcanceler @@ -2178,7 +2171,7 @@ BattleScript_EffectStockpile:: @ 81D7E36 waitanimation printfromtable gStockpileUsedStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSpitUp:: @ 81D7E49 attackcanceler @@ -2187,15 +2180,15 @@ BattleScript_EffectSpitUp:: @ 81D7E49 ppreduce accuracycheck BattleScript_81D695E, 0x0 stockpiletobasedamage BattleScript_81D7E6A - atk6 - atk69 - jump BattleScript_81D6934 + typecalc + adjustsetdamage + goto BattleScript_81D6934 BattleScript_81D7E6A:: @ 81D7E6A pause 0x20 printstring STRINGID_FAILEDTOSPITUP waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D7E78:: @ 81D7E78 attackstring @@ -2204,27 +2197,27 @@ BattleScript_81D7E78:: @ 81D7E78 stockpiletobasedamage BattleScript_81D7E6A resultmessage waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSwallow:: @ 81D7E8B attackcanceler attackstring ppreduce - stockpiletohprecovery BattleScript_81D7E98 - jump BattleScript_PresentHealTarget + stockpiletohpheal BattleScript_81D7E98 + goto BattleScript_PresentHealTarget BattleScript_81D7E98:: @ 81D7E98 pause 0x20 printfromtable gSwallowFailStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectHail:: @ 81D7EA8 attackcanceler attackstring ppreduce sethail - jump BattleScript_81D7A14 + goto BattleScript_81D7A14 BattleScript_EffectTorment:: @ 81D7EB1 attackcanceler @@ -2236,60 +2229,60 @@ BattleScript_EffectTorment:: @ 81D7EB1 waitanimation printstring STRINGID_PKMNSUBJECTEDTOTORMENT waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectFlatter:: @ 81D7ECD attackcanceler - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_81D6958 + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D6958 accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - jumpifconfusedandattackmaxed BS_ATTACKER_WITH_PARTNER, BattleScript_ButItFailed + jumpifconfusedandstatmaxed 0x4, BattleScript_ButItFailed attackanimation waitanimation - setbyte sSTATCHANGER, 0x14 + setstatchanger STAT_SPATK, 1, FALSE statbuffchange 0x1, BattleScript_81D7F10 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D7F10 - atk47 + setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D7F10:: @ 81D7F10 - jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_81D9460 - jumpifhalverset BS_TARGET, 0x20, BattleScript_81D8B39 - setbyte cEFFECT_CHOOSER, 0x7 - seteffecttarget - jump BattleScript_MoveEnd + jumpifability 0x0, ABILITY_OWN_TEMPO, BattleScript_81D9460 + jumpifsideaffecting BS_TARGET, 0x20, BattleScript_81D8B39 + setmoveeffect MOVE_EFFECT_CONFUSION + seteffectprimary + goto BattleScript_MoveEnd BattleScript_EffectWillOWisp:: @ 81D7F2B attackcanceler attackstring ppreduce - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed - jumpifstatus BS_TARGET, 0x10, BattleScript_81D7F91 + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus BS_TARGET, STATUS1_BURN, BattleScript_81D7F91 jumpiftype BS_TARGET, 0xA, BattleScript_81D7E04 - jumpifability BS_TARGET, ABILITY_WATER_VEIL, BattleScript_81D7F77 - jumpifstatus BS_TARGET, 0xFF, BattleScript_ButItFailed + jumpifability 0x0, ABILITY_WATER_VEIL, BattleScript_81D7F77 + jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_FREEZE | STATUS1_SLEEP | STATUS1_POISON, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, 0x0 - jumpifhalverset BS_TARGET, 0x20, BattleScript_81D8B39 + jumpifsideaffecting BS_TARGET, 0x20, BattleScript_81D8B39 attackanimation waitanimation - setbyte cEFFECT_CHOOSER, 0x3 - seteffecttarget - jump BattleScript_MoveEnd + setmoveeffect MOVE_EFFECT_BURN + seteffectprimary + goto BattleScript_MoveEnd BattleScript_81D7F77:: @ 81D7F77 copyarray gEffectBattler, gBattlerTarget, 0x1 setbyte cMULTISTRING_CHOOSER, 0x0 - callatk BattleScript_BRNPrevention - jump BattleScript_MoveEnd + call BattleScript_BRNPrevention + goto BattleScript_MoveEnd BattleScript_81D7F91:: @ 81D7F91 pause 0x20 printstring STRINGID_PKMNALREADYHASBURN waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectMemento:: @ 81D7F9F attackcanceler @@ -2297,14 +2290,14 @@ BattleScript_EffectMemento:: @ 81D7F9F attackstring ppreduce jumpifattackandspecialattackcannotfall BattleScript_ButItFailed - setuserhptozero + setatkhptozero attackanimation waitanimation - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_81D801B + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D801B setbyte sSTAT_ANIM_PLAYED, 0x0 playstatchangeanimation BS_TARGET, 0x12, 0x7 playstatchangeanimation BS_TARGET, 0x2, 0x3 - setbyte sSTATCHANGER, 0xA1 + setstatchanger STAT_ATK, 2, TRUE statbuffchange 0x1, BattleScript_81D7FEC jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_81D7FEC printfromtable gStatDownStringIds @@ -2312,20 +2305,20 @@ BattleScript_EffectMemento:: @ 81D7F9F BattleScript_81D7FEC:: @ 81D7FEC playstatchangeanimation BS_TARGET, 0x10, 0x3 - setbyte sSTATCHANGER, 0xA4 + setstatchanger STAT_SPATK, 2, TRUE statbuffchange 0x1, BattleScript_81D800F jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_81D800F printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_81D800F:: @ 81D800F - faintpokemon BS_ATTACKER, 0x0, NULL - jump BattleScript_MoveEnd + tryfaintmon BS_ATTACKER, 0x0, NULL + goto BattleScript_MoveEnd BattleScript_81D801B:: @ 81D801B printstring STRINGID_BUTNOEFFECT waitmessage 0x40 - jump BattleScript_81D800F + goto BattleScript_81D800F BattleScript_81D8026:: @ 81D8026 attackstring @@ -2333,21 +2326,21 @@ BattleScript_81D8026:: @ 81D8026 jumpifattackandspecialattackcannotfall BattleScript_81D802D BattleScript_81D802D:: @ 81D802D - setuserhptozero + setatkhptozero pause 0x40 - missmessage + effectivenesssound resultmessage waitmessage 0x40 - faintpokemon BS_ATTACKER, 0x0, NULL - jump BattleScript_MoveEnd + tryfaintmon BS_ATTACKER, 0x0, NULL + goto BattleScript_MoveEnd BattleScript_EffectFacade:: @ 81D8042 - jumpifstatus BS_ATTACKER, 0xD8, BattleScript_81D8051 - jump BattleScript_EffectHit + jumpifstatus BS_ATTACKER, STATUS1_TOXIC_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_POISON, BattleScript_81D8051 + goto BattleScript_EffectHit BattleScript_81D8051:: @ 81D8051 setbyte sDMG_MULTIPLIER, 0x2 - jump BattleScript_EffectHit + goto BattleScript_EffectHit BattleScript_EffectFocusPunch:: @ 81D805C attackcanceler @@ -2355,17 +2348,17 @@ BattleScript_EffectFocusPunch:: @ 81D805C ppreduce printstring STRINGID_PKMNLOSTFOCUS waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSmellingsalt:: @ 81D806E - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_EffectHit - setbyte cEFFECT_CHOOSER, 0xA4 - jumpifstatus BS_TARGET, 0x40, BattleScript_81D808D - jump BattleScript_EffectHit + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_REMOVE_PARALYSIS | MOVE_EFFECT_CERTAIN + jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_81D808D + goto BattleScript_EffectHit BattleScript_81D808D:: @ 81D808D setbyte sDMG_MULTIPLIER, 0x2 - jump BattleScript_EffectHit + goto BattleScript_EffectHit BattleScript_EffectFollowMe:: @ 81D8098 attackcanceler @@ -2376,7 +2369,7 @@ BattleScript_EffectFollowMe:: @ 81D8098 waitanimation printstring STRINGID_PKMNCENTERATTENTION waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectNaturePower:: @ 81D80A9 attackcanceler @@ -2396,7 +2389,7 @@ BattleScript_EffectCharge:: @ 81D80B6 waitanimation printstring STRINGID_PKMNCHARGINGPOWER waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectTaunt:: @ 81D80C7 attackcanceler @@ -2408,54 +2401,54 @@ BattleScript_EffectTaunt:: @ 81D80C7 waitanimation printstring STRINGID_PKMNFELLFORTAUNT waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectHelpingHand:: @ 81D80E3 attackcanceler attackstring ppreduce - sethelpinghand BattleScript_ButItFailed + trysethelpinghand BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNREADYTOHELP waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectTrick:: @ 81D80F8 attackcanceler attackstring ppreduce - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, 0x0 - itemswap BattleScript_ButItFailed + tryswapitems BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNSWITCHEDITEMS waitmessage 0x40 printfromtable gItemSwapStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectRolePlay:: @ 81D8126 attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, 0xFFFF - copyability BattleScript_ButItFailed + trycopyability BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNCOPIEDFOE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectWish:: @ 81D8142 attackcanceler attackstring ppreduce - atkd4 0x0, BattleScript_ButItFailed + trywish 0x0, BattleScript_ButItFailed attackanimation waitanimation - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectAssist:: @ 81D8152 attackcanceler @@ -2465,59 +2458,59 @@ BattleScript_EffectAssist:: @ 81D8152 waitanimation setbyte sB_ANIM_TURN, 0x0 setbyte sB_ANIM_TARGETS_HIT, 0x0 - jumptoattack BS_ATTACKER + jumptocalledmove 0x1 BattleScript_EffectIngrain:: @ 81D8169 attackcanceler attackstring ppreduce - setroots BattleScript_ButItFailed + trysetroots BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNPLANTEDROOTS waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSuperpower:: @ 81D817E - setbyte cEFFECT_CHOOSER, 0xE5 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_ATK_DEF_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN + goto BattleScript_EffectHit BattleScript_EffectMagicCoat:: @ 81D8189 attackcanceler - setmagiccoat BattleScript_81D7DF0 + trysetmagiccoat BattleScript_81D7DF0 attackstring ppreduce attackanimation waitanimation printstring STRINGID_PKMNSHROUDEDITSELF waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectRecycle:: @ 81D819E attackcanceler attackstring ppreduce - recycleitem BattleScript_ButItFailed + tryrecycleitem BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_XFOUNDONEY waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectRevenge:: @ 81D81B3 doubledamagedealtifdamaged - jump BattleScript_EffectHit + goto BattleScript_EffectHit BattleScript_EffectBrickBreak:: @ 81D81B9 attackcanceler accuracycheck BattleScript_81D695E, 0x0 attackstring ppreduce - removereflectlightscreen + removelightscreenreflect critcalc - atk5 - atk6 - atk7 + damagecalc + typecalc + adjustnormaldamage jumpifbyte CMP_EQUAL, sB_ANIM_TURN, 0x0, BattleScript_81D81D9 bicbyte gMoveResultFlags, 0x9 @@ -2529,36 +2522,36 @@ BattleScript_81D81D9:: @ 81D81D9 waitmessage 0x40 BattleScript_81D81EC:: @ 81D81EC - damagecalc2 - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + typecalc2 + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 - seteffectwithchancetarget - faintpokemon BS_TARGET, 0x0, NULL - jump BattleScript_MoveEnd + seteffectwithchance + tryfaintmon BS_TARGET, 0x0, NULL + goto BattleScript_MoveEnd BattleScript_EffectYawn:: @ 81D820A attackcanceler attackstring ppreduce - jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_81D824B - jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_81D824B - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_ButItFailed - jumpifhalverset BS_TARGET, 0x20, BattleScript_81D8B39 + jumpifability 0x0, ABILITY_VITAL_SPIRIT, BattleScript_81D824B + jumpifability 0x0, ABILITY_INSOMNIA, BattleScript_81D824B + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifsideaffecting BS_TARGET, 0x20, BattleScript_81D8B39 accuracycheck BattleScript_ButItFailed, 0xFFFF - jumpifcannotsleep BattleScript_ButItFailed + jumpifcantmakeasleep BattleScript_ButItFailed setyawn BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNWASMADEDROWSY waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D824B:: @ 81D824B copyarray sBATTLER, sBATTLER_WITH_ABILITY, 0x1 @@ -2567,11 +2560,11 @@ BattleScript_81D8255:: @ 81D8255 pause 0x20 printstring STRINGID_PKMNSXMADEITINEFFECTIVE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectKnockOff:: @ 81D8263 - setbyte cEFFECT_CHOOSER, 0x36 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_KNOCK_OFF + goto BattleScript_EffectHit BattleScript_EffectEndeavor:: @ 81D826E attackcanceler @@ -2580,39 +2573,39 @@ BattleScript_EffectEndeavor:: @ 81D826E setdamagetohealthdifference BattleScript_ButItFailed copyarray gHpDealt, gBattleMoveDamage, 0x4 accuracycheck BattleScript_MoveMissedPause, 0x0 - atk6 + typecalc jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, 0x29, BattleScript_81D6934 bicbyte gMoveResultFlags, 0x6 copyarray gBattleMoveDamage, gHpDealt, 0x4 - atk69 - jump BattleScript_81D6934 + adjustsetdamage + goto BattleScript_81D6934 BattleScript_EffectEruption:: @ 81D82A9 scaledamagebyhealthratio - jump BattleScript_EffectHit + goto BattleScript_EffectHit BattleScript_EffectSkillSwap:: @ 81D82AF attackcanceler attackstring ppreduce accuracycheck BattleScript_ButItFailed, 0xFFFF - abilityswap BattleScript_ButItFailed + tryswapabilities BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNSWAPPEDABILITIES waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectImprison:: @ 81D82CB attackcanceler attackstring ppreduce - imprisoneffect BattleScript_ButItFailed + tryimprison BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNSEALEDOPPONENTMOVE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectRefresh:: @ 81D82E0 attackcanceler @@ -2623,23 +2616,23 @@ BattleScript_EffectRefresh:: @ 81D82E0 waitanimation printstring STRINGID_PKMNSTATUSNORMAL waitmessage 0x40 - atk98 0x1 - jump BattleScript_MoveEnd + updatestatusicon BS_ATTACKER + goto BattleScript_MoveEnd BattleScript_EffectGrudge:: @ 81D82F7 attackcanceler attackstring ppreduce - setgrudge BattleScript_ButItFailed + trysetgrudge BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNWANTSGRUDGE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSnatch:: @ 81D830C attackcanceler - setstealstatchange BattleScript_81D7DF0 + trysetsnatch BattleScript_81D7DF0 attackstring ppreduce attackanimation @@ -2647,7 +2640,7 @@ BattleScript_EffectSnatch:: @ 81D830C pause 0x20 printstring STRINGID_PKMNWAITSFORTARGET waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectLowKick:: @ 81D8324 attackcanceler @@ -2655,15 +2648,15 @@ BattleScript_EffectLowKick:: @ 81D8324 ppreduce weightdamagecalculation accuracycheck BattleScript_MoveMissedPause, 0x0 - jump BattleScript_HitFromCritCalc + goto BattleScript_HitFromCritCalc BattleScript_EffectSecretPower:: @ 81D8334 - naturepowereffect - jump BattleScript_EffectHit + getsecretpowereffect + goto BattleScript_EffectHit BattleScript_EffectDoubleEdge:: @ 81D833A - setbyte cEFFECT_CHOOSER, 0xE6 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_RECOIL_33 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN + goto BattleScript_EffectHit BattleScript_EffectTeeterDance:: @ 81D8345 attackcanceler @@ -2672,23 +2665,22 @@ BattleScript_EffectTeeterDance:: @ 81D8345 setbyte gBattlerTarget, 0x0 BattleScript_81D834E:: @ 81D834E - atk25 - setbyte cEFFECT_CHOOSER, 0x7 + movevaluescleanup + setmoveeffect MOVE_EFFECT_CONFUSION jumpifarrayequal gBattlerAttacker, gBattlerTarget, 0x1, BattleScript_81D8394 - jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_81D83B2 - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_81D83CE - jumpifsecondarytstatus BS_TARGET, 0x7, BattleScript_81D83DC + jumpifability 0x0, ABILITY_OWN_TEMPO, BattleScript_81D83B2 + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D83CE + jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_81D83DC accuracycheck BattleScript_81D83EA, 0x0 - jumpifhalverset BS_TARGET, 0x20, BattleScript_81D83C0 + jumpifsideaffecting BS_TARGET, 0x20, BattleScript_81D83C0 attackanimation waitanimation - seteffecttarget + seteffectprimary resultmessage waitmessage 0x40 BattleScript_81D8394:: @ 81D8394 - setbyte sMOVEEND_STATE, 0x0 - atk49 0x2, 0x10 + moveendto 0x10 addbyte gBattlerTarget, 0x1 jumpifarraynotequal gBattlerTarget, gBattlersCount, 0x1, BattleScript_81D834E end @@ -2697,30 +2689,30 @@ BattleScript_81D83B2:: @ 81D83B2 pause 0x20 printstring STRINGID_PKMNPREVENTSCONFUSIONWITH waitmessage 0x40 - jump BattleScript_81D8394 + goto BattleScript_81D8394 BattleScript_81D83C0:: @ 81D83C0 pause 0x20 printstring STRINGID_PKMNUSEDSAFEGUARD waitmessage 0x40 - jump BattleScript_81D8394 + goto BattleScript_81D8394 BattleScript_81D83CE:: @ 81D83CE pause 0x20 printstring STRINGID_BUTITFAILED waitmessage 0x40 - jump BattleScript_81D8394 + goto BattleScript_81D8394 BattleScript_81D83DC:: @ 81D83DC pause 0x20 printstring STRINGID_PKMNALREADYCONFUSED waitmessage 0x40 - jump BattleScript_81D8394 + goto BattleScript_81D8394 BattleScript_81D83EA:: @ 81D83EA resultmessage waitmessage 0x40 - jump BattleScript_81D8394 + goto BattleScript_81D8394 BattleScript_EffectMudSport:: @ 81D83F3 attackcanceler @@ -2731,26 +2723,26 @@ BattleScript_EffectMudSport:: @ 81D83F3 waitanimation printfromtable gSportsUsedStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectPoisonFang:: @ 81D840A - setbyte cEFFECT_CHOOSER, 0x6 - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_TOXIC + goto BattleScript_EffectHit BattleScript_EffectWeatherBall:: @ 81D8415 - seteffectbyweather - jump BattleScript_EffectHit + setweatherballtype + goto BattleScript_EffectHit BattleScript_EffectOverheat:: @ 81D841B - setbyte cEFFECT_CHOOSER, 0xFB - jump BattleScript_EffectHit + setmoveeffect MOVE_EFFECT_SP_ATK_TWO_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN + goto BattleScript_EffectHit BattleScript_EffectTickle:: @ 81D8426 attackcanceler attackstring ppreduce - jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0x0, BattleScript_81D843B - jumpifstat BS_TARGET, CMP_EQUAL, STAT_DEF, 0x0, BattleScript_81D8499 + jumpifstat BS_TARGET, CMP_GREATER_THAN, 0x1, 0x0, BattleScript_81D843B + jumpifstat BS_TARGET, CMP_EQUAL, 0x2, 0x0, BattleScript_81D8499 BattleScript_81D843B:: @ 81D843B accuracycheck BattleScript_ButItFailed, 0x0 @@ -2759,7 +2751,7 @@ BattleScript_81D843B:: @ 81D843B setbyte sSTAT_ANIM_PLAYED, 0x0 playstatchangeanimation BS_TARGET, 0x6, 0x5 playstatchangeanimation BS_TARGET, 0x2, 0x1 - setbyte sSTATCHANGER, 0x91 + setstatchanger STAT_ATK, 1, TRUE statbuffchange 0x1, BattleScript_81D8471 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D8471 printfromtable gStatDownStringIds @@ -2767,144 +2759,144 @@ BattleScript_81D843B:: @ 81D843B BattleScript_81D8471:: @ 81D8471 playstatchangeanimation BS_TARGET, 0x4, 0x1 - setbyte sSTATCHANGER, 0x92 + setstatchanger STAT_DEF, 1, TRUE statbuffchange 0x1, BattleScript_81D8494 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D8494 printfromtable gStatDownStringIds waitmessage 0x40 BattleScript_81D8494:: @ 81D8494 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D8499:: @ 81D8499 pause 0x20 orbyte gMoveResultFlags, 0x20 printstring STRINGID_STATSWONTDECREASE2 waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectCosmicPower:: @ 81D84AD attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_81D84C2 - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_81D85E7 + jumpifstat BS_ATTACKER, CMP_LESS_THAN, 0x2, 0xC, BattleScript_81D84C2 + jumpifstat BS_ATTACKER, CMP_EQUAL, 0x5, 0xC, BattleScript_81D85E7 BattleScript_81D84C2:: @ 81D84C2 attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, 0x0 playstatchangeanimation BS_ATTACKER, 0x24, 0x0 - setbyte sSTATCHANGER, 0x12 + setstatchanger STAT_DEF, 1, FALSE statbuffchange 0x41, BattleScript_81D84ED jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D84ED printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D84ED:: @ 81D84ED - setbyte sSTATCHANGER, 0x15 + setstatchanger STAT_SPDEF, 1, FALSE statbuffchange 0x41, BattleScript_81D850C jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D850C printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D850C:: @ 81D850C - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectSkyUppercut:: @ 81D8511 orword gHitMarker, HITMARKER_IGNORE_ON_AIR - jump BattleScript_EffectHit + goto BattleScript_EffectHit BattleScript_EffectBulkUp:: @ 81D851F attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_81D8534 - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 0xC, BattleScript_81D85E7 + jumpifstat BS_ATTACKER, CMP_LESS_THAN, 0x1, 0xC, BattleScript_81D8534 + jumpifstat BS_ATTACKER, CMP_EQUAL, 0x2, 0xC, BattleScript_81D85E7 BattleScript_81D8534:: @ 81D8534 attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, 0x0 playstatchangeanimation BS_ATTACKER, 0x6, 0x0 - setbyte sSTATCHANGER, 0x11 + setstatchanger STAT_ATK, 1, FALSE statbuffchange 0x41, BattleScript_81D855F jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D855F printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D855F:: @ 81D855F - setbyte sSTATCHANGER, 0x12 + setstatchanger STAT_DEF, 1, FALSE statbuffchange 0x41, BattleScript_81D857E jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D857E printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D857E:: @ 81D857E - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectCalmMind:: @ 81D8583 attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_81D8598 - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_81D85E7 + jumpifstat BS_ATTACKER, CMP_LESS_THAN, 0x4, 0xC, BattleScript_81D8598 + jumpifstat BS_ATTACKER, CMP_EQUAL, 0x5, 0xC, BattleScript_81D85E7 BattleScript_81D8598:: @ 81D8598 attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, 0x0 playstatchangeanimation BS_ATTACKER, 0x30, 0x0 - setbyte sSTATCHANGER, 0x14 + setstatchanger STAT_SPATK, 1, FALSE statbuffchange 0x41, BattleScript_81D85C3 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D85C3 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D85C3:: @ 81D85C3 - setbyte sSTATCHANGER, 0x15 + setstatchanger STAT_SPDEF, 1, FALSE statbuffchange 0x41, BattleScript_81D85E2 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D85E2 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D85E2:: @ 81D85E2 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D85E7:: @ 81D85E7 pause 0x20 orbyte gMoveResultFlags, 0x20 printstring STRINGID_STATSWONTINCREASE2 waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectDragonDance:: @ 81D85FB attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_81D8610 - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 0xC, BattleScript_81D85E7 + jumpifstat BS_ATTACKER, CMP_LESS_THAN, 0x1, 0xC, BattleScript_81D8610 + jumpifstat BS_ATTACKER, CMP_EQUAL, 0x3, 0xC, BattleScript_81D85E7 BattleScript_81D8610:: @ 81D8610 attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, 0x0 playstatchangeanimation BS_ATTACKER, 0xA, 0x0 - setbyte sSTATCHANGER, 0x11 + setstatchanger STAT_ATK, 1, FALSE statbuffchange 0x41, BattleScript_81D863B jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D863B printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D863B:: @ 81D863B - setbyte sSTATCHANGER, 0x13 + setstatchanger STAT_SPEED, 1, FALSE statbuffchange 0x41, BattleScript_81D865A jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D865A printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D865A:: @ 81D865A - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectCamouflage:: @ 81D865F attackcanceler @@ -2915,29 +2907,29 @@ BattleScript_EffectCamouflage:: @ 81D865F waitanimation printstring STRINGID_PKMNCHANGEDTYPE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_FaintAttacker:: @ 81D8674 - atk56 0x1 + playfaintcry BS_ATTACKER pause 0x40 - atk1a 0x1 - atk1b BS_ATTACKER + dofaintanimation BS_ATTACKER + cleareffectsonfaint BS_ATTACKER printstring STRINGID_ATTACKERFAINTED printstring STRINGID_EMPTYSTRING3 return BattleScript_FaintTarget:: @ 81D8684 - atk56 0x0 + playfaintcry BS_TARGET pause 0x40 - atk1a 0x0 - atk1b BS_TARGET + dofaintanimation BS_TARGET + cleareffectsonfaint BS_TARGET printstring STRINGID_TARGETFAINTED printstring STRINGID_EMPTYSTRING3 return BattleScript_GiveExp:: @ 81D8694 setbyte sGIVEEXP_STATE, 0x0 - atk23 BS_TARGET + getexp BS_TARGET end2 BattleScript_HandleFaintedMon:: @ 81D869D @@ -2947,61 +2939,61 @@ BattleScript_HandleFaintedMon:: @ 81D869D jumpifword CMP_NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_81D86E6 printstring STRINGID_USENEXTPKMN setbyte gBattleCommunication, 0x0 - atk67 + yesnobox jumpifbyte CMP_EQUAL, gBattleCommunication + 0x1, 0x0, BattleScript_81D86E6 - atk72 BattleScript_81D87B7 + jumpifplayerran BattleScript_81D87B7 printstring STRINGID_CANTESCAPE2 BattleScript_81D86E6:: @ 81D86E6 openpartyscreen 0x3, BattleScript_81D87B7 - atk51 BS_FAINTED, 0x2 + switchhandleorder BS_FAINTED, 0x2 jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_81D8792 jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_LINK, BattleScript_81D8792 jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_BATTLE_TOWER, BattleScript_81D8792 jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_81D8792 jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_81D8792 jumpifbyte CMP_EQUAL, sBATTLE_STYLE, 0x1, BattleScript_81D8792 - jumpifcannotswitch BS_PLAYER1, BattleScript_81D8792 + jumpifcantswitch BS_PLAYER1, BattleScript_81D8792 printstring STRINGID_ENEMYABOUTTOSWITCHPKMN setbyte gBattleCommunication, 0x0 - atk67 + yesnobox jumpifbyte CMP_EQUAL, gBattleCommunication + 0x1, 0x1, BattleScript_81D8792 - atk6e + setatktoplayer0 openpartyscreen 0x81, BattleScript_81D8792 - atk51 BS_ATTACKER, 0x2 + switchhandleorder BS_ATTACKER, 0x2 jumpifbyte CMP_EQUAL, gBattleCommunication, 0x6, BattleScript_81D8792 - atk6b - atk76 0x1, 0x5 - atk74 BS_ATTACKER + atknameinbuff1 + various BS_ATTACKER, 0x5 + hpthresholds2 BS_ATTACKER printstring STRINGID_RETURNMON - atke2 BS_ATTACKER - waitstateatk - atk4b - waitstateatk - atk61 0x1 - switch1 BS_ATTACKER - switch2 BS_ATTACKER - atk73 BS_ATTACKER + switchoutabilities BS_ATTACKER + waitstate + returnatktoball + waitstate + drawpartystatussummary BS_ATTACKER + getswitchedmondata BS_ATTACKER + switchindataupdate BS_ATTACKER + hpthresholds BS_ATTACKER printstring STRINGID_SWITCHINMON - atk62_hidepartystatussummary 0x1 - switch3 BS_ATTACKER, 0x0 - waitstateatk - atk52 BS_ATTACKER - atk6d + hidepartystatussummary BS_ATTACKER + switchinanim BS_ATTACKER, 0x0 + waitstate + switchineffects BS_ATTACKER + resetsentmonsvalue BattleScript_81D8792:: @ 81D8792 - atk61 0x3 - switch1 BS_FAINTED - switch2 BS_FAINTED - atk73 BS_FAINTED + drawpartystatussummary BS_FAINTED + getswitchedmondata BS_FAINTED + switchindataupdate BS_FAINTED + hpthresholds BS_FAINTED printstring STRINGID_SWITCHINMON - atk62_hidepartystatussummary 0x3 - switch3 BS_FAINTED, 0x0 - waitstateatk - atk76 0x1, BS_BATTLER_0 - atk52 BS_FAINTED + hidepartystatussummary BS_FAINTED + switchinanim BS_FAINTED, 0x0 + waitstate + various BS_ATTACKER, 0x7 + switchineffects BS_FAINTED jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_81D87B7 - atk68 + cancelallactions BattleScript_81D87B7:: @ 81D87B7 end2 @@ -3010,21 +3002,21 @@ BattleScript_81D87B8:: @ 81D87B8 openpartyscreen 0x5, BattleScript_81D87BE BattleScript_81D87BE:: @ 81D87BE - atk51 BS_FAINTED, 0x0 + switchhandleorder BS_FAINTED, 0x0 openpartyscreen 0x6, BattleScript_81D87EE - atk51 BS_FAINTED, 0x0 + switchhandleorder BS_FAINTED, 0x0 BattleScript_81D87CA:: @ 81D87CA - atk51 BS_FAINTED, 0x2 - atk61 0x3 - switch1 BS_FAINTED - switch2 BS_FAINTED - atk73 BS_FAINTED + switchhandleorder BS_FAINTED, 0x2 + drawpartystatussummary BS_FAINTED + getswitchedmondata BS_FAINTED + switchindataupdate BS_FAINTED + hpthresholds BS_FAINTED printstring STRINGID_SWITCHINMON - atk62_hidepartystatussummary 0x3 - switch3 BS_FAINTED, 0x0 - waitstateatk - atk52 0x5 + hidepartystatussummary BS_FAINTED + switchinanim BS_FAINTED, 0x0 + waitstate + switchineffects 0x5 jumpifarraynotequal gBattlerFainted, gBattlersCount, 0x1, BattleScript_81D87CA BattleScript_81D87EE:: @ 81D87EE @@ -3032,18 +3024,18 @@ BattleScript_81D87EE:: @ 81D87EE BattleScript_LocalTrainerBattleWon:: @ 81D87EF printstring STRINGID_PLAYERDEFEATEDTRAINER1 - atk53 BS_ATTACKER - waitstateatk + trainerslidein BS_ATTACKER + waitstate printstring STRINGID_TRAINER1LOSETEXT - atk5d BattleScript_81D87FD + getmoneyreward BattleScript_81D87FD BattleScript_81D87FD:: @ 81D87FD printstring STRINGID_PLAYERGOTMONEY waitmessage 0x40 BattleScript_PayDayMoneyAndPickUpItems:: @ 81D8803 - givemoney - pickupitemcalculation + givepaydaymoney + pickup end2 BattleScript_LocalBattleLost:: @ 81D8806 @@ -3056,15 +3048,15 @@ BattleScript_81D8839:: @ 81D8839 jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_81D885D printstring STRINGID_PLAYERWHITEOUT waitmessage 0x40 - atk5d BattleScript_81D886F + getmoneyreward BattleScript_81D886F printstring STRINGID_PLAYERWHITEOUT2 waitmessage 0x40 - jump BattleScript_81D886E + goto BattleScript_81D886E BattleScript_81D885D:: @ 81D885D printstring STRINGID_PLAYERLOSTAGAINSTENEMYTRAINER waitmessage 0x40 - atk5d BattleScript_81D886F + getmoneyreward BattleScript_81D886F printstring STRINGID_PLAYERPAIDPRIZEMONEY waitmessage 0x40 @@ -3077,32 +3069,32 @@ BattleScript_81D886F:: @ 81D886F end2 BattleScript_81D8876:: @ 81D8876 - jumpiffainted BS_ATTACKER, BattleScript_81D8884 + jumpifhasnohp BS_ATTACKER, BattleScript_81D8884 printstring STRINGID_TRAINER1MON1COMEBACK waitmessage 0x40 - atk4b - waitstateatk + returnatktoball + waitstate BattleScript_81D8884:: @ 81D8884 - atk53 BS_ATTACKER - waitstateatk + trainerslidein BS_ATTACKER + waitstate printstring STRINGID_TRAINER1WINTEXT jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D8839 end2 BattleScript_81D8896:: @ 81D8896 - atk76 0x1, BS_ATTACKER_SIDE + various BS_ATTACKER, 0x8 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_81D88B4 printfromtable gDoubleBattleRecallStrings waitmessage 0x40 - atk76 0x1, BS_NOT_ATTACKER_SIDE - waitstateatk - atk76 0x1, BS_SCRIPTING - waitstateatk + various BS_ATTACKER, 0x9 + waitstate + various BS_ATTACKER, 0xA + waitstate BattleScript_81D88B4:: @ 81D88B4 - atk53 BS_ATTACKER - waitstateatk + trainerslidein BS_ATTACKER + waitstate printstring STRINGID_TRAINER1WINTEXT jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_81D88CB printstring STRINGID_TRAINER2NAME @@ -3119,15 +3111,15 @@ BattleScript_LinkBattleWonOrLost:: @ 81D88CC gUnknown_81D88D7:: @ 81D88D7 printstring STRINGID_PLAYERDEFEATEDTRAINER1 - atk53 BS_ATTACKER - waitstateatk + trainerslidein BS_ATTACKER + waitstate jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER_TOWER, BattleScript_81D88FF printstring STRINGID_TRAINER1LOSETEXT jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_81D88FF printstring STRINGID_TRAINER2CLASS BattleScript_81D88FF:: @ 81D88FF - pickupitemcalculation + pickup end2 BattleScript_SmokeBallEscape:: @ 81D8901 @@ -3166,51 +3158,49 @@ BattleScript_PrintFailedToRunString:: @ 81D893A end2 BattleScript_PrintCantEscapeFromBattle:: @ 81D8943 - printfromtable2 gNoEscapeStringIds - atk44 + printselectionstringfromtable gNoEscapeStringIds + endselectionscript BattleScript_PrintFullBox:: @ 81D8949 - printstring2 STRINGID_BOXISFULL - atk44 + printselectionstring STRINGID_BOXISFULL + endselectionscript BattleScript_ActionSwitch:: @ 81D894D - atk74 BS_ATTACKER + hpthresholds2 BS_ATTACKER printstring STRINGID_RETURNMON setbyte sDMG_MULTIPLIER, 0x2 jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_DOUBLE, BattleScript_81D896D - atk26 0x1 - jump BattleScript_81D896F + setmultihit 0x1 + goto BattleScript_81D896F BattleScript_81D896D:: @ 81D896D - atk26 0x2 + setmultihit 0x2 BattleScript_81D896F:: @ 81D896F - atkba BattleScript_81D897C - atk5f - atkab - callatk BattleScript_81D89AF - atk5f + jumpifnopursuitswitchdmg BattleScript_81D897C + swapattackerwithtarget + trysetdestinybondtohappen + call BattleScript_81D89AF + swapattackerwithtarget BattleScript_81D897C:: @ 81D897C - atk27 BattleScript_81D896F - atke2 BS_ATTACKER - waitstateatk - atk4b - waitstateatk - atk61 0x1 - atk51 BS_ATTACKER, 0x1 - switch1 BS_ATTACKER - switch2 BS_ATTACKER - atk73 BS_ATTACKER + decrementmultihit BattleScript_81D896F + switchoutabilities BS_ATTACKER + waitstate + returnatktoball + waitstate + drawpartystatussummary BS_ATTACKER + switchhandleorder BS_ATTACKER, 0x1 + getswitchedmondata BS_ATTACKER + switchindataupdate BS_ATTACKER + hpthresholds BS_ATTACKER printstring STRINGID_SWITCHINMON - atk62_hidepartystatussummary 0x1 - switch3 BS_ATTACKER, 0x0 - waitstateatk - atk52 BS_ATTACKER - setbyte sMOVEEND_STATE, 0x4 - atk49 0x1, 0x0 - setbyte sMOVEEND_STATE, 0xF - atk49 0x1, 0x0 + hidepartystatussummary BS_ATTACKER + switchinanim BS_ATTACKER, 0x0 + waitstate + switchineffects BS_ATTACKER + moveendcase 0x4 + moveendcase 0xF end2 BattleScript_81D89AF:: @ 81D89AF @@ -3218,27 +3208,26 @@ BattleScript_81D89AF:: @ 81D89AF attackstring ppreduce critcalc - atk5 - atk6 - atk7 + damagecalc + typecalc + adjustnormaldamage attackanimation waitanimation - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage waitmessage 0x40 resultmessage waitmessage 0x40 - faintpokemon BS_TARGET, 0x0, NULL - setbyte sMOVEEND_STATE, 0x3 - atk49 0x2, 0x6 - atk76 0x0, BS_ATTACKER_WITH_PARTNER + tryfaintmon BS_TARGET, 0x0, NULL + moveendfromto 0x3, 0x6 + various BS_TARGET, 0x4 jumpifbyte CMP_EQUAL, gBattleCommunication, 0x0, BattleScript_81D89F0 setbyte sGIVEEXP_STATE, 0x0 - atk23 BS_TARGET + getexp BS_TARGET BattleScript_81D89F0:: @ 81D89F0 return @@ -3248,30 +3237,30 @@ BattleScript_Pausex20:: @ 81D89F1 return BattleScript_LevelUp:: @ 81D89F5 - atk55 MUS_FANFA1 + fanfare MUS_FANFA1 printstring STRINGID_PKMNGREWTOLV setbyte sLVLBOX_STATE, 0x0 - atk6c - checkiflearnmoveinbattle BattleScript_81D8A51, BattleScript_81D8A63, 0x1 - jump BattleScript_81D8A1B + drawlvlupbox + handlelearnnewmove BattleScript_81D8A51, BattleScript_81D8A63, 0x1 + goto BattleScript_81D8A1B BattleScript_81D8A11:: @ 81D8A11 - checkiflearnmoveinbattle BattleScript_81D8A51, BattleScript_81D8A63, 0x0 + handlelearnnewmove BattleScript_81D8A51, BattleScript_81D8A63, 0x0 BattleScript_81D8A1B:: @ 81D8A1B - atk71 + buffermovetolearn printstring STRINGID_TRYTOLEARNMOVE1 printstring STRINGID_TRYTOLEARNMOVE2 printstring STRINGID_TRYTOLEARNMOVE3 - waitstateatk + waitstate setbyte sLEARNMOVE_STATE, 0x0 - atk5a BattleScript_81D8A48 + yesnoboxlearnmove BattleScript_81D8A48 printstring STRINGID_STOPLEARNINGMOVE - waitstateatk + waitstate setbyte sLEARNMOVE_STATE, 0x0 - atk5b BattleScript_81D8A1B + yesnoboxstoplearningmove BattleScript_81D8A1B printstring STRINGID_DIDNOTLEARNMOVE - jump BattleScript_81D8A11 + goto BattleScript_81D8A11 BattleScript_81D8A48:: @ 81D8A48 printstring STRINGID_123POOF @@ -3279,12 +3268,12 @@ BattleScript_81D8A48:: @ 81D8A48 printstring STRINGID_ANDELLIPSIS BattleScript_81D8A51:: @ 81D8A51 - atk71 - atk55 MUS_FANFA1 + buffermovetolearn + fanfare MUS_FANFA1 printstring STRINGID_PKMNLEARNEDMOVE waitmessage 0x40 - atk76 0x1, 0x6 - jump BattleScript_81D8A11 + various BS_ATTACKER, 0x6 + goto BattleScript_81D8A11 BattleScript_81D8A63:: @ 81D8A63 return @@ -3301,21 +3290,21 @@ BattleScript_81D8A7E:: @ 81D8A7E BattleScript_DamagingWeatherContinues:: @ 81D8A7F printfromtable gSandStormHailContinuesStringIds waitmessage 0x40 - atk46 BS_ATTACKER, sB_ANIM_ARG1, NULL + playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL setbyte gBattleCommunication, 0x0 BattleScript_81D8A97:: @ 81D8A97 - atk32 gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 0x1 + copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 0x1 weatherdamage jumpifword CMP_EQUAL, gBattleMoveDamage, NULL, BattleScript_81D8AD8 printfromtable gSandStormHailDmgStringIds waitmessage 0x40 orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE - missmessage - atk5c BS_ATTACKER - graphicalhpupdate BS_ATTACKER + effectivenesssound + hitanimation BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER - faintpokemon BS_ATTACKER, 0x0, NULL + tryfaintmon BS_ATTACKER, 0x0, NULL atk24 BattleScript_81D8AD8 BattleScript_81D8AD8:: @ 81D8AD8 @@ -3346,7 +3335,7 @@ BattleScript_SunlightFaded:: @ 81D8B18 BattleScript_OverworldWeatherStarts:: @ 81D8B1F printfromtable gWeatherContinuesStringIds waitmessage 0x40 - atk46 BS_ATTACKER, sB_ANIM_ARG1, NULL + playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL end3 BattleScript_SideStatusWoreOff:: @ 81D8B32 @@ -3369,82 +3358,82 @@ BattleScript_SafeguardEnds:: @ 81D8B43 BattleScript_LeechSeedTurnDrain:: @ 81D8B4D playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER copyarray gBattleMoveDamage, gHpDealt, 0x4 - jumpifability BS_ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_81D8B7F + jumpifability 0x1, ABILITY_LIQUID_OOZE, BattleScript_81D8B7F manipulatedamage 0x0 setbyte cMULTISTRING_CHOOSER, 0x3 - jump BattleScript_81D8B85 + goto BattleScript_81D8B85 BattleScript_81D8B7F:: @ 81D8B7F setbyte cMULTISTRING_CHOOSER, 0x4 BattleScript_81D8B85:: @ 81D8B85 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - graphicalhpupdate BS_TARGET + healthbarupdate BS_TARGET datahpupdate BS_TARGET printfromtable gLeechSeedStringIds waitmessage 0x40 - faintpokemon BS_ATTACKER, 0x0, NULL - faintpokemon BS_TARGET, 0x0, NULL + tryfaintmon BS_ATTACKER, 0x0, NULL + tryfaintmon BS_TARGET, 0x0, NULL end2 BattleScript_BideStoringEnergy:: @ 81D8BA9 printstring STRINGID_PKMNSTORINGENERGY waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_BideAttack:: @ 81D8BB4 attackcanceler - setbyte cEFFECT_CHOOSER, 0xC - clearstatus BS_ATTACKER + setmoveeffect MOVE_EFFECT_CHARGING + clearstatusfromeffect BS_ATTACKER printstring STRINGID_PKMNUNLEASHEDENERGY waitmessage 0x40 accuracycheck BattleScript_81D6963, 0x0 - atk6 + typecalc bicbyte gMoveResultFlags, 0x6 copyarray gBattleMoveDamage, sBIDE_DMG, 0x4 - atk69 + adjustsetdamage setbyte sB_ANIM_TURN, 0x1 attackanimation waitanimation - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET resultmessage waitmessage 0x40 - faintpokemon BS_TARGET, 0x0, NULL - jump BattleScript_MoveEnd + tryfaintmon BS_TARGET, 0x0, NULL + goto BattleScript_MoveEnd BattleScript_BideNoEnergyToAttack:: @ 81D8BFC attackcanceler - setbyte cEFFECT_CHOOSER, 0xC - clearstatus BS_ATTACKER + setmoveeffect MOVE_EFFECT_CHARGING + clearstatusfromeffect BS_ATTACKER printstring STRINGID_PKMNUNLEASHEDENERGY waitmessage 0x40 - jump BattleScript_ButItFailed + goto BattleScript_ButItFailed BattleScript_SuccessForceOut:: @ 81D8C10 attackanimation waitanimation - atke2 BS_TARGET - atk58 BS_TARGET - waitstateatk + switchoutabilities BS_TARGET + returntoball BS_TARGET + waitstate jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_TRAINER, BattleScript_81D8C2C setbyte gBattleOutcome, 0x5 - atkf6 + finishaction BattleScript_81D8C2C:: @ 81D8C2C - switch1 BS_TARGET - switch2 BS_TARGET - switch3 BS_TARGET, 0x0 - waitstateatk + getswitchedmondata BS_TARGET + switchindataupdate BS_TARGET + switchinanim BS_TARGET, 0x0 + waitstate printstring STRINGID_PKMNWASDRAGGEDOUT - atk52 BS_TARGET - jump BattleScript_MoveEnd + switchineffects BS_TARGET + goto BattleScript_MoveEnd BattleScript_MistProtected:: @ 81D8C3E pause 0x20 @@ -3460,11 +3449,11 @@ BattleScript_RageIsBuilding:: @ 81D8C48 BattleScript_MoveUsedIsDisabled:: @ 81D8C4F printstring STRINGID_PKMNMOVEISDISABLED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_SelectingDisabledMove:: @ 81D8C5A - printstring2 STRINGID_PKMNMOVEISDISABLED - atk44 + printselectionstring STRINGID_PKMNMOVEISDISABLED + endselectionscript BattleScript_DisabledNoMore:: @ 81D8C5E printstring STRINGID_PKMNMOVEDISABLEDNOMORE @@ -3480,58 +3469,55 @@ BattleScript_DestinyBondTakesLife:: @ 81D8C6C printstring STRINGID_PKMNTOOKFOE waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER - faintpokemon BS_ATTACKER, 0x0, NULL + tryfaintmon BS_ATTACKER, 0x0, NULL return BattleScript_SpikesOnAttacker:: @ 81D8C87 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER - callatk BattleScript_81D8D2C - faintpokemon BS_ATTACKER, 0x0, NULL - faintpokemon BS_ATTACKER, 0x1, BattleScript_81D8CA8 + call BattleScript_81D8D2C + tryfaintmon BS_ATTACKER, 0x0, NULL + tryfaintmon BS_ATTACKER, 0x1, BattleScript_81D8CA8 return BattleScript_81D8CA8:: @ 81D8CA8 setbyte sGIVEEXP_STATE, 0x0 - atk23 BS_ATTACKER - setbyte sMOVEEND_STATE, 0x0 - atk49 0x0, 0x0 - jump BattleScript_HandleFaintedMon + getexp BS_ATTACKER + moveendall + goto BattleScript_HandleFaintedMon BattleScript_SpikesOnTarget:: @ 81D8CBE orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - graphicalhpupdate BS_TARGET + healthbarupdate BS_TARGET datahpupdate BS_TARGET - callatk BattleScript_81D8D2C - faintpokemon BS_TARGET, 0x0, NULL - faintpokemon BS_TARGET, 0x1, BattleScript_81D8CDF + call BattleScript_81D8D2C + tryfaintmon BS_TARGET, 0x0, NULL + tryfaintmon BS_TARGET, 0x1, BattleScript_81D8CDF return BattleScript_81D8CDF:: @ 81D8CDF setbyte sGIVEEXP_STATE, 0x0 - atk23 BS_TARGET - setbyte sMOVEEND_STATE, 0x0 - atk49 0x0, 0x0 - jump BattleScript_HandleFaintedMon + getexp BS_TARGET + moveendall + goto BattleScript_HandleFaintedMon BattleScript_SpikesOnFaintedBattler:: @ 81D8CF5 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - graphicalhpupdate BS_FAINTED + healthbarupdate BS_FAINTED datahpupdate BS_FAINTED - callatk BattleScript_81D8D2C - faintpokemon BS_FAINTED, 0x0, NULL - faintpokemon BS_FAINTED, 0x1, BattleScript_81D8D16 + call BattleScript_81D8D2C + tryfaintmon BS_FAINTED, 0x0, NULL + tryfaintmon BS_FAINTED, 0x1, BattleScript_81D8D16 return BattleScript_81D8D16:: @ 81D8D16 setbyte sGIVEEXP_STATE, 0x0 - atk23 BS_FAINTED - setbyte sMOVEEND_STATE, 0x0 - atk49 0x0, 0x0 - jump BattleScript_HandleFaintedMon + getexp BS_FAINTED + moveendall + goto BattleScript_HandleFaintedMon BattleScript_81D8D2C:: @ 81D8D2C printstring STRINGID_PKMNHURTBYSPIKES @@ -3542,9 +3528,9 @@ BattleScript_PerishSongTakesLife:: @ 81D8D33 printstring STRINGID_PKMNPERISHCOUNTFELL waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER - faintpokemon BS_ATTACKER, 0x0, NULL + tryfaintmon BS_ATTACKER, 0x0, NULL end2 BattleScript_PerishSongCountGoesDown:: @ 81D8D4E @@ -3553,40 +3539,40 @@ BattleScript_PerishSongCountGoesDown:: @ 81D8D4E end2 BattleScript_AllStatsUp:: @ 81D8D55 - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_81D8D82 - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_81D8D82 - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, 0xC, BattleScript_81D8D82 - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_81D8D82 - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_81D8DF0 + jumpifstat BS_ATTACKER, CMP_LESS_THAN, 0x1, 0xC, BattleScript_81D8D82 + jumpifstat BS_ATTACKER, CMP_LESS_THAN, 0x2, 0xC, BattleScript_81D8D82 + jumpifstat BS_ATTACKER, CMP_LESS_THAN, 0x3, 0xC, BattleScript_81D8D82 + jumpifstat BS_ATTACKER, CMP_LESS_THAN, 0x4, 0xC, BattleScript_81D8D82 + jumpifstat BS_ATTACKER, CMP_EQUAL, 0x5, 0xC, BattleScript_81D8DF0 BattleScript_81D8D82:: @ 81D8D82 setbyte sSTAT_ANIM_PLAYED, 0x0 playstatchangeanimation BS_ATTACKER, 0x3E, 0x0 - setbyte sSTATCHANGER, 0x11 + setstatchanger STAT_ATK, 1, FALSE statbuffchange 0x41, BattleScript_81D8DA0 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D8DA0:: @ 81D8DA0 - setbyte sSTATCHANGER, 0x12 + setstatchanger STAT_DEF, 1, FALSE statbuffchange 0x41, BattleScript_81D8DB4 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D8DB4:: @ 81D8DB4 - setbyte sSTATCHANGER, 0x13 + setstatchanger STAT_SPEED, 1, FALSE statbuffchange 0x41, BattleScript_81D8DC8 printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D8DC8:: @ 81D8DC8 - setbyte sSTATCHANGER, 0x14 + setstatchanger STAT_SPATK, 1, FALSE statbuffchange 0x41, BattleScript_81D8DDC printfromtable gStatUpStringIds waitmessage 0x40 BattleScript_81D8DDC:: @ 81D8DDC - setbyte sSTATCHANGER, 0x15 + setstatchanger STAT_SPDEF, 1, FALSE statbuffchange 0x41, BattleScript_81D8DF0 printfromtable gStatUpStringIds waitmessage 0x40 @@ -3595,7 +3581,7 @@ BattleScript_81D8DF0:: @ 81D8DF0 return BattleScript_RapidSpinAway:: @ 81D8DF1 - breakfree + rapidspinfree return BattleScript_WrapFree:: @ 81D8DF3 @@ -3619,36 +3605,34 @@ BattleScript_MonTookFutureAttack:: @ 81D8E12 waitmessage 0x40 jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_81D8E2F accuracycheck BattleScript_81D8E86, 0xF8 - jump BattleScript_81D8E36 + goto BattleScript_81D8E36 BattleScript_81D8E2F:: @ 81D8E2F accuracycheck BattleScript_81D8E86, 0x161 BattleScript_81D8E36:: @ 81D8E36 - atk8 + adjustnormaldamage2 jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_81D8E4E playanimation BS_ATTACKER, B_ANIM_FUTURE_SIGHT_HIT, NULL - jump BattleScript_81D8E55 + goto BattleScript_81D8E55 BattleScript_81D8E4E:: @ 81D8E4E playanimation BS_ATTACKER, B_ANIM_DOOM_DESIRE_HIT, NULL BattleScript_81D8E55:: @ 81D8E55 - missmessage - atk5c BS_TARGET - waitstateatk - graphicalhpupdate BS_TARGET + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET datahpupdate BS_TARGET resultmessage waitmessage 0x40 - faintpokemon BS_TARGET, 0x0, NULL + tryfaintmon BS_TARGET, 0x0, NULL atk24 BattleScript_81D8E6D BattleScript_81D8E6D:: @ 81D8E6D - setbyte sMOVEEND_STATE, 0x0 - atk49 0x1, 0x0 - setbyte sMOVEEND_STATE, 0xB - atk49 0x2, 0xE + moveendcase 0x0 + moveendfromto 0xB, 0xE setbyte gMoveResultFlags, 0x0 end2 @@ -3662,43 +3646,43 @@ BattleScript_81D8E86:: @ 81D8E86 end2 BattleScript_NoMovesLeft:: @ 81D8EA0 - printstring2 STRINGID_PKMNHASNOMOVESLEFT - atk44 + printselectionstring STRINGID_PKMNHASNOMOVESLEFT + endselectionscript BattleScript_SelectingMoveWithNoPP:: @ 81D8EA4 - printstring2 STRINGID_NOPPLEFT - atk44 + printselectionstring STRINGID_NOPPLEFT + endselectionscript BattleScript_NoPPForMove:: @ 81D8EA8 attackstring pause 0x20 printstring STRINGID_BUTNOPPLEFT waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_SelectingTormentedMove:: @ 81D8EB7 - printstring2 STRINGID_PKMNCANTUSEMOVETORMENT - atk44 + printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT + endselectionscript printstring STRINGID_PKMNCANTUSEMOVETORMENT waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_SelectingNotAllowedMoveTaunt:: @ 81D8EC6 - printstring2 STRINGID_PKMNCANTUSEMOVETAUNT - atk44 + printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT + endselectionscript BattleScript_MoveUsedIsTaunted:: @ 81D8ECA printstring STRINGID_PKMNCANTUSEMOVETAUNT waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_WishComesTrue:: @ 81D8ED5 - atkd4 0x1, BattleScript_81D8EFC + trywish 0x1, BattleScript_81D8EFC playanimation BS_TARGET, B_ANIM_WISH_HEAL, NULL printstring STRINGID_PKMNWISHCAMETRUE waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_TARGET + healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_PKMNREGAINEDHEALTH waitmessage 0x40 @@ -3717,7 +3701,7 @@ BattleScript_IngrainTurnHeal:: @ 81D8F0C printstring STRINGID_PKMNABSORBEDNUTRIENTS waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER end2 @@ -3725,13 +3709,13 @@ BattleScript_81D8F27:: @ 81D8F27 pause 0x20 printstring STRINGID_PKMNANCHOREDITSELF waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_AtkDefDown:: @ 81D8F35 setbyte sSTAT_ANIM_PLAYED, 0x0 playstatchangeanimation BS_ATTACKER, 0x6, 0xD playstatchangeanimation BS_ATTACKER, 0x2, 0x9 - setbyte sSTATCHANGER, 0x91 + setstatchanger STAT_ATK, 1, TRUE statbuffchange 0xC1, BattleScript_81D8F62 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D8F62 printfromtable gStatDownStringIds @@ -3739,7 +3723,7 @@ BattleScript_AtkDefDown:: @ 81D8F35 BattleScript_81D8F62:: @ 81D8F62 playstatchangeanimation BS_ATTACKER, 0x4, 0x9 - setbyte sSTATCHANGER, 0x92 + setstatchanger STAT_DEF, 1, TRUE statbuffchange 0xC1, BattleScript_81D8F85 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D8F85 printfromtable gStatDownStringIds @@ -3757,11 +3741,11 @@ BattleScript_KnockedOff:: @ 81D8F86 BattleScript_MoveUsedIsImprisoned:: @ 81D8F94 printstring STRINGID_PKMNCANTUSEMOVESEALED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_SelectingImprisonedMove:: @ 81D8F9F - printstring2 STRINGID_PKMNCANTUSEMOVESEALED - atk44 + printselectionstring STRINGID_PKMNCANTUSEMOVESEALED + endselectionscript BattleScript_GrudgeTakesPp:: @ 81D8FA3 printstring STRINGID_PKMNLOSTPPGRUDGE @@ -3775,18 +3759,18 @@ BattleScript_MagicCoatBounce:: @ 81D8FAA printstring STRINGID_PKMNMOVEBOUNCED waitmessage 0x40 orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 - atk76 0x1, BS_ATTACKER + various BS_ATTACKER, 0x1 return BattleScript_SnatchedMove:: @ 81D8FC2 attackstring ppreduce - snatchmove + snatchsetbattlers playanimation BS_TARGET, B_ANIM_SNATCH_MOVE, NULL printstring STRINGID_PKMNSNATCHEDMOVE waitmessage 0x40 orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 - atk5f + swapattackerwithtarget return BattleScript_EnduredMsg:: @ 81D8FDD @@ -3802,7 +3786,7 @@ BattleScript_OneHitKOMsg:: @ 81D8FE4 BattleScript_SAtkDown2:: @ 81D8FEB setbyte sSTAT_ANIM_PLAYED, 0x0 playstatchangeanimation BS_ATTACKER, 0x10, 0xB - setbyte sSTATCHANGER, 0xA4 + setstatchanger STAT_SPATK, 2, TRUE statbuffchange 0xC1, BattleScript_81D9014 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_81D9014 printfromtable gStatDownStringIds @@ -3823,19 +3807,19 @@ BattleScript_MoveUsedIsAsleep:: @ 81D9029 printstring STRINGID_PKMNFASTASLEEP waitmessage 0x40 statusanimation BS_ATTACKER - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_MoveUsedWokeUp:: @ 81D9036 bicword gHitMarker, 0x10 printfromtable gWokeUpStringIds waitmessage 0x40 - atk98 0x1 + updatestatusicon BS_ATTACKER return BattleScript_MonWokeUpInUproar:: @ 81D904A printstring STRINGID_PKMNWOKEUPINUPROAR waitmessage 0x40 - atk98 0x1 + updatestatusicon BS_ATTACKER end2 BattleScript_PoisonTurnDmg:: @ 81D9053 @@ -3847,9 +3831,9 @@ BattleScript_81D9059:: @ 81D9059 BattleScript_81D905B:: @ 81D905B orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER - faintpokemon BS_ATTACKER, 0x0, NULL + tryfaintmon BS_ATTACKER, 0x0, NULL atk24 BattleScript_81D9074 BattleScript_81D9074:: @ 81D9074 @@ -3858,37 +3842,37 @@ BattleScript_81D9074:: @ 81D9074 BattleScript_BurnTurnDmg:: @ 81D9075 printstring STRINGID_PKMNHURTBYBURN waitmessage 0x40 - jump BattleScript_81D9059 + goto BattleScript_81D9059 BattleScript_MoveUsedIsFrozen:: @ 81D9080 printstring STRINGID_PKMNISFROZEN waitmessage 0x40 statusanimation BS_ATTACKER - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_MoveUsedUnfroze:: @ 81D908D printfromtable gGotDefrostedStringIds waitmessage 0x40 - atk98 0x1 + updatestatusicon BS_ATTACKER return BattleScript_DefrostedViaFireMove:: @ 81D9098 printstring STRINGID_PKMNWASDEFROSTED waitmessage 0x40 - atk98 0x0 + updatestatusicon BS_TARGET return BattleScript_MoveUsedIsParalyzed:: @ 81D90A1 printstring STRINGID_PKMNISPARALYZED waitmessage 0x40 statusanimation BS_ATTACKER - atk76 0x1, BS_TARGET - jump BattleScript_MoveEnd + various BS_ATTACKER, 0x0 + goto BattleScript_MoveEnd BattleScript_MoveUsedFlinched:: @ 81D90B1 printstring STRINGID_PKMNFLINCHED waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_PrintUproarOverTurns:: @ 81D90BC printfromtable gUproarOverTurnStringIds @@ -3896,7 +3880,7 @@ BattleScript_PrintUproarOverTurns:: @ 81D90BC end2 BattleScript_ThrashConfuses:: @ 81D90C5 - atk66 0x1, 0x1, 0x7 + chosenstatusanimation BS_ATTACKER, 0x1, 0x7 printstring STRINGID_PKMNFATIGUECONFUSION waitmessage 0x40 end2 @@ -3904,24 +3888,24 @@ BattleScript_ThrashConfuses:: @ 81D90C5 BattleScript_MoveUsedIsConfused:: @ 81D90D3 printstring STRINGID_PKMNISCONFUSED waitmessage 0x40 - atk65 0x1, STATUS2_CONFUSION + status2animation BS_ATTACKER, 0x7 jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_81D9115 BattleScript_81D90EA:: @ 81D90EA - atk76 0x1, BS_TARGET - atk8 + various BS_ATTACKER, 0x0 + adjustnormaldamage2 printstring STRINGID_ITHURTCONFUSION waitmessage 0x40 - missmessage - atk5c BS_ATTACKER - waitstateatk + effectivenesssound + hitanimation BS_ATTACKER + waitstate orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER resultmessage waitmessage 0x40 - faintpokemon BS_ATTACKER, 0x0, NULL - jump BattleScript_MoveEnd + tryfaintmon BS_ATTACKER, 0x0, NULL + goto BattleScript_MoveEnd BattleScript_81D9115:: @ 81D9115 return @@ -3940,7 +3924,7 @@ BattleScript_WrapTurnDmg:: @ 81D9124 playanimation BS_ATTACKER, B_ANIM_TURN_TRAP, sB_ANIM_ARG1 printstring STRINGID_PKMNHURTBY waitmessage 0x40 - jump BattleScript_81D905B + goto BattleScript_81D905B BattleScript_WrapEnds:: @ 81D9136 printstring STRINGID_PKMNFREEDFROM @@ -3950,47 +3934,47 @@ BattleScript_WrapEnds:: @ 81D9136 BattleScript_MoveUsedIsInLove:: @ 81D913D printstring STRINGID_PKMNINLOVE waitmessage 0x40 - atk65 0x1, STATUS2_INFATUATION + status2animation BS_ATTACKER, 0xF0000 return BattleScript_MoveUsedIsInLoveCantAttack:: @ 81D914A printstring STRINGID_PKMNIMMOBILIZEDBYLOVE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_NightmareTurnDmg:: @ 81D9155 printstring STRINGID_PKMNLOCKEDINNIGHTMARE waitmessage 0x40 - atk65 0x1, STATUS2_NIGHTMARE - jump BattleScript_81D905B + status2animation BS_ATTACKER, Start + goto BattleScript_81D905B BattleScript_CurseTurnDmg:: @ 81D9166 printstring STRINGID_PKMNAFFLICTEDBYCURSE waitmessage 0x40 - atk65 0x1, STATUS2_CURSED - jump BattleScript_81D905B + status2animation BS_ATTACKER, 0x10000000 + goto BattleScript_81D905B BattleScript_TargetPRLZHeal:: @ 81D9177 printstring STRINGID_PKMNHEALEDPARALYSIS waitmessage 0x40 - atk98 0x0 + updatestatusicon BS_TARGET return gUnknown_81D9180:: @ 81D9180 printstring STRINGID_MONTOOSCAREDTOMOVE waitmessage 0x40 playanimation BS_ATTACKER, 0x17, NULL - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd gUnknown_81D9192:: @ 81D9192 printstring STRINGID_GHOSTGETOUTGETOUT playanimation BS_ATTACKER, 0x18, NULL - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd gUnknown_81D91A1:: @ 81D91A1 pause 0x20 printstring STRINGID_SILPHSCOPEUNVEILED - waitstateatk + waitstate playanimation BS_OPPONENT1, B_ANIM_x19, NULL pause 0x20 printstring STRINGID_GHOSTWASMAROWAK @@ -4003,42 +3987,42 @@ BattleScript_MoveEffectSleep:: @ 81D91B9 waitmessage 0x40 BattleScript_81D91C3:: @ 81D91C3 - atk98 0x2 - waitstateatk + updatestatusicon BS_EFFECT_BATTLER + waitstate return BattleScript_YawnMakesAsleep:: @ 81D91C7 statusanimation BS_EFFECT_BATTLER printstring STRINGID_PKMNFELLASLEEP waitmessage 0x40 - atk98 0x2 - waitstateatk - atk6f BS_EFFECT_BATTLER + updatestatusicon BS_EFFECT_BATTLER + waitstate + makevisible BS_EFFECT_BATTLER end2 BattleScript_MoveEffectPoison:: @ 81D91D5 statusanimation BS_EFFECT_BATTLER printfromtable gGotPoisonedStringIds waitmessage 0x40 - jump BattleScript_81D91C3 + goto BattleScript_81D91C3 BattleScript_MoveEffectBurn:: @ 81D91E4 statusanimation BS_EFFECT_BATTLER printfromtable gGotBurnedStringIds waitmessage 0x40 - jump BattleScript_81D91C3 + goto BattleScript_81D91C3 BattleScript_MoveEffectFreeze:: @ 81D91F3 statusanimation BS_EFFECT_BATTLER printfromtable gGotFrozenStringIds waitmessage 0x40 - jump BattleScript_81D91C3 + goto BattleScript_81D91C3 BattleScript_MoveEffectParalysis:: @ 81D9202 statusanimation BS_EFFECT_BATTLER printfromtable gGotParalyzedStringIds waitmessage 0x40 - jump BattleScript_81D91C3 + goto BattleScript_81D91C3 BattleScript_MoveEffectUproar:: @ 81D9211 printstring STRINGID_PKMNCAUSEDUPROAR @@ -4049,7 +4033,7 @@ BattleScript_MoveEffectToxic:: @ 81D9218 statusanimation BS_EFFECT_BATTLER printstring STRINGID_PKMNBADLYPOISONED waitmessage 0x40 - jump BattleScript_81D91C3 + goto BattleScript_81D91C3 BattleScript_MoveEffectPayDay:: @ 81D9225 printstring STRINGID_COINSSCATTERED @@ -4062,22 +4046,22 @@ BattleScript_MoveEffectWrap:: @ 81D922C return BattleScript_MoveEffectConfusion:: @ 81D9235 - atk66 0x2, 0x1, 0x7 + chosenstatusanimation BS_EFFECT_BATTLER, 0x1, 0x7 printstring STRINGID_PKMNWASCONFUSED waitmessage 0x40 return BattleScript_MoveEffectRecoil:: @ 81D9243 - jumpifhalfword CMP_EQUAL, gCurrentMove, 0xA5, BattleScript_81D9256 - jumpifability BS_ATTACKER, ABILITY_ROCK_HEAD, BattleScript_81D9270 + jumpifhalfword CMP_EQUAL, gCurrentMove, MOVE_STRUGGLE, BattleScript_81D9256 + jumpifability 0x1, ABILITY_ROCK_HEAD, BattleScript_81D9270 BattleScript_81D9256:: @ 81D9256 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNHITWITHRECOIL waitmessage 0x40 - faintpokemon BS_ATTACKER, 0x0, NULL + tryfaintmon BS_ATTACKER, 0x0, NULL BattleScript_81D9270:: @ 81D9270 return @@ -4091,9 +4075,9 @@ BattleScript_ItemSteal:: @ 81D9271 BattleScript_DrizzleActivates:: @ 81D927F pause 0x20 printstring STRINGID_PKMNMADEITRAIN - waitstateatk + waitstate playanimation BS_BATTLER_0, B_ANIM_RAIN_CONTINUES, NULL - callatk BattleScript_81D92DC + call BattleScript_81D92DC end3 BattleScript_SpeedBoostActivates:: @ 81D9293 @@ -4112,46 +4096,46 @@ BattleScript_RainDishActivates:: @ 81D92AB printstring STRINGID_PKMNSXRESTOREDHPALITTLE2 waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER end3 BattleScript_SandstreamActivates:: @ 81D92BF pause 0x20 printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM - waitstateatk + waitstate playanimation BS_BATTLER_0, B_ANIM_SANDSTORM_CONTINUES, NULL - callatk BattleScript_81D92DC + call BattleScript_81D92DC end3 BattleScript_ShedSkinActivates:: @ 81D92D3 printstring STRINGID_PKMNSXCUREDYPROBLEM waitmessage 0x40 - atk98 0x1 + updatestatusicon BS_ATTACKER end3 BattleScript_81D92DC:: @ 81D92DC setbyte sBATTLER, 0x0 BattleScript_81D92E2:: @ 81D92E2 - castformswitch + trycastformdatachange addbyte sBATTLER, 0x1 jumpifarraynotequal sBATTLER, gBattlersCount, 0x1, BattleScript_81D92E2 return BattleScript_CastformChange:: @ 81D92F8 - callatk BattleScript_81D92FE + call BattleScript_81D92FE end3 BattleScript_81D92FE:: @ 81D92FE - actualcastformswitch - waitstateatk + docastformchangeanimation + waitstate printstring STRINGID_PKMNTRANSFORMED waitmessage 0x40 return BattleScript_IntimidateActivatesEnd3:: @ 81D9307 - callatk BattleScript_81D930D + call BattleScript_81D930D end3 BattleScript_81D930D:: @ 81D930D @@ -4159,24 +4143,24 @@ BattleScript_81D930D:: @ 81D930D BattleScript_IntimidateActivates:: @ 81D9310 setbyte gBattlerTarget, 0x0 - setbyte sSTATCHANGER, 0x91 + setstatchanger STAT_ATK, 1, TRUE BattleScript_81D931C:: @ 81D931C - atke1 BattleScript_81D936A - jumpifsecondarytstatus BS_TARGET, 0x1000000, BattleScript_81D935F - jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_81D936B - jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_81D936B - jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_81D936B + trygetintimidatetarget BattleScript_81D936A + jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_81D935F + jumpifability 0x0, ABILITY_CLEAR_BODY, BattleScript_81D936B + jumpifability 0x0, ABILITY_HYPER_CUTTER, BattleScript_81D936B + jumpifability 0x0, ABILITY_WHITE_SMOKE, BattleScript_81D936B statbuffchange 0x21, BattleScript_81D935F jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_81D935F - atk47 + setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printstring STRINGID_PKMNCUTSATTACKWITH waitmessage 0x40 BattleScript_81D935F:: @ 81D935F addbyte gBattlerTarget, 0x1 - jump BattleScript_81D931C + goto BattleScript_81D931C BattleScript_81D936A:: @ 81D936A return @@ -4185,14 +4169,14 @@ BattleScript_81D936B:: @ 81D936B pause 0x20 printstring STRINGID_PREVENTEDFROMWORKING waitmessage 0x40 - jump BattleScript_81D935F + goto BattleScript_81D935F BattleScript_DroughtActivates:: @ 81D9379 pause 0x20 printstring STRINGID_PKMNSXINTENSIFIEDSUN - waitstateatk + waitstate playanimation BS_BATTLER_0, B_ANIM_SUN_CONTINUES, NULL - callatk BattleScript_81D92DC + call BattleScript_81D92DC end3 BattleScript_TookAttack:: @ 81D938D @@ -4207,13 +4191,13 @@ BattleScript_SturdyPreventsOHKO:: @ 81D93A1 pause 0x20 printstring STRINGID_PKMNPROTECTEDBY pause 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_DampStopsExplosion:: @ 81D93AF pause 0x20 printstring STRINGID_PKMNPREVENTSUSAGE pause 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_MoveHPDrain_PPLoss:: @ 81D93BD ppreduce @@ -4222,12 +4206,12 @@ BattleScript_MoveHPDrain:: @ 81D93BE attackstring pause 0x20 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_TARGET + healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_PKMNRESTOREDHPUSING waitmessage 0x40 orbyte gMoveResultFlags, 0x8 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_MonMadeMoveUseless_PPLoss:: @ 81D93E0 ppreduce @@ -4238,7 +4222,7 @@ BattleScript_MonMadeMoveUseless:: @ 81D93E1 printstring STRINGID_PKMNSXMADEYUSELESS waitmessage 0x40 orbyte gMoveResultFlags, 0x8 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_FlashFireBoost_PPLoss:: @ 81D93F6 ppreduce @@ -4248,13 +4232,13 @@ BattleScript_FlashFireBoost:: @ 81D93F7 pause 0x20 printfromtable gFlashFireStringIds waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D9408:: @ 81D9408 pause 0x20 printstring STRINGID_PKMNANCHORSITSELFWITH waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_AbilityNoStatLoss:: @ 81D9416 pause 0x20 @@ -4284,19 +4268,19 @@ BattleScript_ObliviousPreventsAttraction:: @ 81D9444 pause 0x20 printstring STRINGID_PKMNPREVENTSROMANCEWITH waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_FlinchPrevention:: @ 81D9452 pause 0x20 printstring STRINGID_PKMNSXPREVENTSFLINCHING waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_81D9460:: @ 81D9460 pause 0x20 printstring STRINGID_PKMNPREVENTSCONFUSIONWITH waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_SoundproofProtected:: @ 81D946E attackstring @@ -4304,7 +4288,7 @@ BattleScript_SoundproofProtected:: @ 81D946E pause 0x20 printstring STRINGID_PKMNSXBLOCKSY waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_AbilityNoSpecificStatLoss:: @ 81D947E pause 0x20 @@ -4317,7 +4301,7 @@ BattleScript_StickyHoldActivates:: @ 81D948E pause 0x20 printstring STRINGID_PKMNSXMADEYINEFFECTIVE waitmessage 0x40 - jump BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_ColorChangeActivates:: @ 81D949C printstring STRINGID_PKMNCHANGEDTYPEWITH @@ -4326,67 +4310,64 @@ BattleScript_ColorChangeActivates:: @ 81D949C BattleScript_RoughSkinActivates:: @ 81D94A3 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNHURTSWITH waitmessage 0x40 - faintpokemon BS_ATTACKER, 0x0, NULL + tryfaintmon BS_ATTACKER, 0x0, NULL return BattleScript_CuteCharmActivates:: @ 81D94BE - atk65 0x1, STATUS2_INFATUATION + status2animation BS_ATTACKER, 0xF0000 printstring STRINGID_PKMNSXINFATUATEDY waitmessage 0x40 return BattleScript_ApplySecondaryEffect:: @ 81D94CB - waitstateatk - seteffectuser + waitstate + seteffectsecondary return BattleScript_SynchronizeActivates:: @ 81D94CE - waitstateatk - seteffecttarget + waitstate + seteffectprimary return BattleScript_AbilityCuredStatus:: @ 81D94D1 printstring STRINGID_PKMNSXCUREDITSYPROBLEM waitmessage 0x40 - atk98 0xA + updatestatusicon BS_SCRIPTING return BattleScript_IgnoresWhileAsleep:: @ 81D94DA printstring STRINGID_PKMNIGNORESASLEEP waitmessage 0x40 - setbyte sMOVEEND_STATE, 0x0 - atk49 0x2, 0x10 + moveendto 0x10 end BattleScript_IgnoresAndUsesRandomMove:: @ 81D94EA printstring STRINGID_PKMNIGNOREDORDERS waitmessage 0x40 - jumptoattack BS_TARGET + jumptocalledmove 0x0 BattleScript_MoveUsedLoafingAround:: @ 81D94F2 printfromtable gInobedientStringIds waitmessage 0x40 - setbyte sMOVEEND_STATE, 0x0 - atk49 0x2, 0x10 + moveendto 0x10 end BattleScript_IgnoresAndFallsAsleep:: @ 81D9504 printstring STRINGID_PKMNBEGANTONAP waitmessage 0x40 - setbyte cEFFECT_CHOOSER, 0x41 - seteffecttarget - setbyte sMOVEEND_STATE, 0x0 - atk49 0x2, 0x10 + setmoveeffect MOVE_EFFECT_SLEEP | MOVE_EFFECT_AFFECTS_USER + seteffectprimary + moveendto 0x10 end BattleScript_IgnoresAndHitsItself:: @ 81D951B printstring STRINGID_PKMNWONTOBEY waitmessage 0x40 - jump BattleScript_81D90EA + goto BattleScript_81D90EA BattleScript_SubstituteFade:: @ 81D9526 playanimation BS_TARGET, B_ANIM_SUBSTITUTE_FADE, NULL @@ -4394,67 +4375,67 @@ BattleScript_SubstituteFade:: @ 81D9526 return BattleScript_BerryCurePrlzEnd2:: @ 81D9531 - callatk BattleScript_BerryCureParRet + call BattleScript_BerryCureParRet end2 BattleScript_BerryCureParRet:: @ 81D9537 playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMCUREDPARALYSIS waitmessage 0x40 - atk98 0xA + updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return BattleScript_BerryCurePsnEnd2:: @ 81D9549 - callatk BattleScript_BerryCurePsnRet + call BattleScript_BerryCurePsnRet end2 BattleScript_BerryCurePsnRet:: @ 81D954F playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMCUREDPOISON waitmessage 0x40 - atk98 0xA + updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return BattleScript_BerryCureBrnEnd2:: @ 81D9561 - callatk BattleScript_BerryCureBrnRet + call BattleScript_BerryCureBrnRet end2 BattleScript_BerryCureBrnRet:: @ 81D9567 playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMHEALEDBURN waitmessage 0x40 - atk98 0xA + updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return BattleScript_BerryCureFrzEnd2:: @ 81D9579 - callatk BattleScript_BerryCureFrzRet + call BattleScript_BerryCureFrzRet end2 BattleScript_BerryCureFrzRet:: @ 81D957F playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMDEFROSTEDIT waitmessage 0x40 - atk98 0xA + updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return BattleScript_BerryCureSlpEnd2:: @ 81D9591 - callatk BattleScript_BerryCureSlpRet + call BattleScript_BerryCureSlpRet end2 BattleScript_BerryCureSlpRet:: @ 81D9597 playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMWOKEIT waitmessage 0x40 - atk98 0xA + updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return BattleScript_BerryCureConfusionEnd2:: @ 81D95A9 - callatk BattleScript_BerryCureConfusionRet + call BattleScript_BerryCureConfusionRet end2 BattleScript_BerryCureConfusionRet:: @ 81D95AF @@ -4465,19 +4446,19 @@ BattleScript_BerryCureConfusionRet:: @ 81D95AF return BattleScript_BerryCureChosenStatusEnd2:: @ 81D95BF - callatk BattleScript_BerryCureChosenStatusRet + call BattleScript_BerryCureChosenStatusRet end2 BattleScript_BerryCureChosenStatusRet:: @ 81D95C5 playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL printfromtable gBerryEffectStringIds waitmessage 0x40 - atk98 0xA + updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return BattleScript_WhiteHerbEnd2:: @ 81D95D9 - callatk BattleScript_WhiteHerbRet + call BattleScript_WhiteHerbRet end2 BattleScript_WhiteHerbRet:: @ 81D95DF @@ -4492,7 +4473,7 @@ BattleScript_ItemHealHP_RemoveItem:: @ 81D95EF printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER removeitem BS_ATTACKER end2 @@ -4505,7 +4486,7 @@ BattleScript_BerryPPHealEnd2:: @ 81D960C end2 BattleScript_ItemHealHP_End2:: @ 81D961C - callatk BattleScript_ItemHealHP_Ret + call BattleScript_ItemHealHP_Ret end2 BattleScript_ItemHealHP_Ret:: @ 81D9622 @@ -4513,13 +4494,13 @@ BattleScript_ItemHealHP_Ret:: @ 81D9622 printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER return BattleScript_SelectingNotAllowedMoveChoiceItem:: @ 81D963D - printstring2 STRINGID_ITEMALLOWSONLYYMOVE - atk44 + printselectionstring STRINGID_ITEMALLOWSONLYYMOVE + endselectionscript BattleScript_HangedOnMsg:: @ 81D9641 playanimation BS_TARGET, B_ANIM_HANGED_ON, NULL @@ -4532,12 +4513,12 @@ BattleScript_BerryConfuseHealEnd2:: @ 81D964F printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage 0x40 orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - graphicalhpupdate BS_ATTACKER + healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_FORXCOMMAYZ waitmessage 0x40 - setbyte cEFFECT_CHOOSER, 0x47 - seteffecttarget + setmoveeffect MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER + seteffectprimary removeitem BS_ATTACKER end2 @@ -4547,7 +4528,7 @@ BattleScript_BerryStatRaiseEnd2:: @ 81D9679 BattleScript_81D9686:: @ 81D9686 setbyte cMULTISTRING_CHOOSER, 0x4 - callatk BattleScript_StatUp + call BattleScript_StatUp removeitem BS_ATTACKER end2 @@ -4559,8 +4540,8 @@ BattleScript_BerryFocusEnergyEnd2:: @ 81D9694 end2 BattleScript_ActionSelectionItemsCantBeUsed:: @ 81D96A4 - printstring2 STRINGID_ITEMSCANTBEUSEDNOW - atk44 + printselectionstring STRINGID_ITEMSCANTBEUSEDNOW + endselectionscript BattleScript_FlushMessageBox:: @ 81D96A8 printstring STRINGID_EMPTYSTRING3 diff --git a/include/constants/battle.h b/include/constants/battle.h index 910b50562..e025af630 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -215,6 +215,7 @@ #define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY) // Move Effects +#define MOVE_EFFECT_NOTHING_0 0x0 #define MOVE_EFFECT_SLEEP 0x1 #define MOVE_EFFECT_POISON 0x2 #define MOVE_EFFECT_BURN 0x3 |