Addressed review changes (minus encapsulation)
This commit is contained in:
parent
3b9ea629a7
commit
e4f8b4ccf0
@ -356,7 +356,7 @@
|
||||
.byte 0x3a
|
||||
.endm
|
||||
|
||||
.macro absorb battler:req
|
||||
.macro absorbhealthbarupdate battler:req
|
||||
.byte 0x3b
|
||||
.byte \battler
|
||||
.endm
|
||||
@ -832,7 +832,7 @@
|
||||
.byte 0x94
|
||||
.endm
|
||||
|
||||
.macro unused_95
|
||||
.macro copybidedmg
|
||||
.byte 0x95
|
||||
.endm
|
||||
|
||||
|
||||
@ -3017,7 +3017,7 @@ BattleScript_EffectAbsorbLiquidOoze::
|
||||
goto BattleScript_EffectAbsorb
|
||||
|
||||
BattleScript_EffectAbsorb::
|
||||
absorb BS_ATTACKER
|
||||
absorbhealthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
printfromtable gAbsorbDrainStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
@ -6081,7 +6081,7 @@ BattleScript_BideAttack::
|
||||
accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE
|
||||
typecalc
|
||||
clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
|
||||
unused_95
|
||||
copybidedmg
|
||||
adjustdamage
|
||||
setbyte sB_ANIM_TURN, 1
|
||||
attackanimation
|
||||
|
||||
@ -1211,7 +1211,7 @@ static inline bool32 IsSpreadMove(u32 moveTarget)
|
||||
|
||||
static inline bool32 IsDoubleSpreadMove(void)
|
||||
{
|
||||
return gBattleStruct->numSpreadTargets > 1
|
||||
return gBattleStruct->numSpreadTargets > 1
|
||||
&& !(gHitMarker & (HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_UNABLE_TO_USE_MOVE))
|
||||
&& IsSpreadMove(GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove));
|
||||
}
|
||||
|
||||
@ -74,8 +74,7 @@
|
||||
#define B_TXT_DEF_TEAM1 0x3A // Your/The opposing
|
||||
#define B_TXT_DEF_TEAM2 0x3B // your/the opposing
|
||||
#define B_TXT_DEF_PARTNER_NAME 0x3C
|
||||
// #define B_TXT_SELECTION_NAME 0x3C - removed
|
||||
// #define B_TXT_SELECTION_NAME2 0x3D no Illusion check - removed
|
||||
// #define B_UNUSED_0x3D 0x3D
|
||||
#define B_TXT_ATK_NAME_WITH_PREFIX2 0x3E //lowercase
|
||||
#define B_TXT_DEF_NAME_WITH_PREFIX2 0x3F //lowercase
|
||||
#define B_TXT_EFF_NAME_WITH_PREFIX2 0x40 //lowercase
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
// still has them in the ROM. This is because the developers forgot
|
||||
// to define NDEBUG before release, however this has been changed as
|
||||
// Ruby's actual debug build does not use the AGBPrint features.
|
||||
// #define NDEBUG
|
||||
#define NDEBUG
|
||||
|
||||
// To enable printf debugging, comment out "#define NDEBUG". This allows
|
||||
// the various AGBPrint functions to be used. (See include/gba/isagbprint.h).
|
||||
|
||||
@ -222,14 +222,14 @@
|
||||
#define VARIOUS_SWAP_STATS 130
|
||||
|
||||
// Cmd_manipulatedamage
|
||||
#define DMG_CHANGE_SIGN 1
|
||||
#define DMG_RECOIL_FROM_MISS 2
|
||||
#define DMG_DOUBLED 3
|
||||
#define DMG_1_8_TARGET_HP 4
|
||||
#define DMG_FULL_ATTACKER_HP 5
|
||||
#define DMG_CURR_ATTACKER_HP 6
|
||||
#define DMG_BIG_ROOT 7
|
||||
#define DMG_RECOIL_FROM_IMMUNE 8 // Used to calculate recoil for the Gen 4 version of Jump Kick
|
||||
#define DMG_CHANGE_SIGN 1
|
||||
#define DMG_RECOIL_FROM_MISS 2
|
||||
#define DMG_DOUBLED 3
|
||||
#define DMG_1_8_TARGET_HP 4
|
||||
#define DMG_FULL_ATTACKER_HP 5
|
||||
#define DMG_CURR_ATTACKER_HP 6
|
||||
#define DMG_BIG_ROOT 7
|
||||
#define DMG_RECOIL_FROM_IMMUNE 8 // Used to calculate recoil for the Gen 4 version of Jump Kick
|
||||
|
||||
// Cmd_jumpifcantswitch
|
||||
#define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7)
|
||||
|
||||
@ -531,205 +531,204 @@
|
||||
#define STRINGID_LASERFOCUS 529
|
||||
#define STRINGID_GEMACTIVATES 530
|
||||
#define STRINGID_BERRYDMGREDUCES 531
|
||||
#define STRINGID_TARGETATEITEM 532
|
||||
#define STRINGID_AIRBALLOONFLOAT 533
|
||||
#define STRINGID_AIRBALLOONPOP 534
|
||||
#define STRINGID_INCINERATEBURN 535
|
||||
#define STRINGID_BUGBITE 536
|
||||
#define STRINGID_ILLUSIONWOREOFF 537
|
||||
#define STRINGID_ATTACKERCUREDTARGETSTATUS 538
|
||||
#define STRINGID_ATTACKERLOSTFIRETYPE 539
|
||||
#define STRINGID_HEALERCURE 540
|
||||
#define STRINGID_SCRIPTINGABILITYSTATRAISE 541
|
||||
#define STRINGID_RECEIVERABILITYTAKEOVER 542
|
||||
#define STRINGID_PKNMABSORBINGPOWER 543
|
||||
#define STRINGID_NOONEWILLBEABLETORUNAWAY 544
|
||||
#define STRINGID_DESTINYKNOTACTIVATES 545
|
||||
#define STRINGID_CLOAKEDINAFREEZINGLIGHT 546
|
||||
#define STRINGID_CLEARAMULETWONTLOWERSTATS 547
|
||||
#define STRINGID_FERVENTWISHREACHED 548
|
||||
#define STRINGID_AIRLOCKACTIVATES 549
|
||||
#define STRINGID_PRESSUREENTERS 550
|
||||
#define STRINGID_DARKAURAENTERS 551
|
||||
#define STRINGID_FAIRYAURAENTERS 552
|
||||
#define STRINGID_AURABREAKENTERS 553
|
||||
#define STRINGID_COMATOSEENTERS 554
|
||||
#define STRINGID_SCREENCLEANERENTERS 555
|
||||
#define STRINGID_FETCHEDPOKEBALL 556
|
||||
#define STRINGID_BATTLERABILITYRAISEDSTAT 557
|
||||
#define STRINGID_ASANDSTORMKICKEDUP 558
|
||||
#define STRINGID_PKMNSWILLPERISHIN3TURNS 559
|
||||
#define STRINGID_ABILITYRAISEDSTATDRASTICALLY 560
|
||||
#define STRINGID_AURAFLAREDTOLIFE 561
|
||||
#define STRINGID_ASONEENTERS 562
|
||||
#define STRINGID_CURIOUSMEDICINEENTERS 563
|
||||
#define STRINGID_CANACTFASTERTHANKSTO 564
|
||||
#define STRINGID_MICLEBERRYACTIVATES 565
|
||||
#define STRINGID_PKMNSHOOKOFFTHETAUNT 566
|
||||
#define STRINGID_PKMNGOTOVERITSINFATUATION 567
|
||||
#define STRINGID_ITEMCANNOTBEREMOVED 568
|
||||
#define STRINGID_STICKYBARBTRANSFER 569
|
||||
#define STRINGID_PKMNBURNHEALED 570
|
||||
#define STRINGID_REDCARDACTIVATE 571
|
||||
#define STRINGID_EJECTBUTTONACTIVATE 572
|
||||
#define STRINGID_ATKGOTOVERINFATUATION 573
|
||||
#define STRINGID_TORMENTEDNOMORE 574
|
||||
#define STRINGID_HEALBLOCKEDNOMORE 575
|
||||
#define STRINGID_ATTACKERBECAMEFULLYCHARGED 576
|
||||
#define STRINGID_ATTACKERBECAMEASHSPECIES 577
|
||||
#define STRINGID_EXTREMELYHARSHSUNLIGHT 578
|
||||
#define STRINGID_EXTREMESUNLIGHTFADED 579
|
||||
#define STRINGID_MOVEEVAPORATEDINTHEHARSHSUNLIGHT 580
|
||||
#define STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED 581
|
||||
#define STRINGID_HEAVYRAIN 582
|
||||
#define STRINGID_HEAVYRAINLIFTED 583
|
||||
#define STRINGID_MOVEFIZZLEDOUTINTHEHEAVYRAIN 584
|
||||
#define STRINGID_NORELIEFROMHEAVYRAIN 585
|
||||
#define STRINGID_MYSTERIOUSAIRCURRENT 586
|
||||
#define STRINGID_STRONGWINDSDISSIPATED 587
|
||||
#define STRINGID_MYSTERIOUSAIRCURRENTBLOWSON 588
|
||||
#define STRINGID_ATTACKWEAKENEDBSTRONGWINDS 589
|
||||
#define STRINGID_STUFFCHEEKSCANTSELECT 590
|
||||
#define STRINGID_PKMNREVERTEDTOPRIMAL 591
|
||||
#define STRINGID_BUTPOKEMONCANTUSETHEMOVE 592
|
||||
#define STRINGID_BUTHOOPACANTUSEIT 593
|
||||
#define STRINGID_BROKETHROUGHPROTECTION 594
|
||||
#define STRINGID_ABILITYALLOWSONLYMOVE 595
|
||||
#define STRINGID_SWAPPEDABILITIES 596
|
||||
#define STRINGID_PASTELVEILPROTECTED 597
|
||||
#define STRINGID_PASTELVEILENTERS 598
|
||||
#define STRINGID_BATTLERTYPECHANGEDTO 599
|
||||
#define STRINGID_BOTHCANNOLONGERESCAPE 600
|
||||
#define STRINGID_CANTESCAPEDUETOUSEDMOVE 601
|
||||
#define STRINGID_PKMNBECAMEWEAKERTOFIRE 602
|
||||
#define STRINGID_ABOUTTOUSEPOLTERGEIST 603
|
||||
#define STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE 604
|
||||
#define STRINGID_NEUTRALIZINGGASENTERS 605
|
||||
#define STRINGID_NEUTRALIZINGGASOVER 606
|
||||
#define STRINGID_TARGETTOOHEAVY 607
|
||||
#define STRINGID_PKMNTOOKTARGETHIGH 608
|
||||
#define STRINGID_PKMNINSNAPTRAP 609
|
||||
#define STRINGID_METEORBEAMCHARGING 610
|
||||
#define STRINGID_HEATUPBEAK 611
|
||||
#define STRINGID_COURTCHANGE 612
|
||||
#define STRINGID_PLAYERLOSTTOENEMYTRAINER 613
|
||||
#define STRINGID_PLAYERPAIDPRIZEMONEY 614
|
||||
#define STRINGID_ZPOWERSURROUNDS 615
|
||||
#define STRINGID_ZMOVEUNLEASHED 616
|
||||
#define STRINGID_ZMOVERESETSSTATS 617
|
||||
#define STRINGID_ZMOVEALLSTATSUP 618
|
||||
#define STRINGID_ZMOVEZBOOSTCRIT 619
|
||||
#define STRINGID_ZMOVERESTOREHP 620
|
||||
#define STRINGID_ZMOVESTATUP 621
|
||||
#define STRINGID_ZMOVEHPTRAP 622
|
||||
#define STRINGID_ATTACKEREXPELLEDTHEPOISON 623
|
||||
#define STRINGID_ATTACKERSHOOKITSELFAWAKE 624
|
||||
#define STRINGID_ATTACKERBROKETHROUGHPARALYSIS 625
|
||||
#define STRINGID_ATTACKERHEALEDITSBURN 626
|
||||
#define STRINGID_ATTACKERMELTEDTHEICE 627
|
||||
#define STRINGID_TARGETTOUGHEDITOUT 628
|
||||
#define STRINGID_ATTACKERLOSTELECTRICTYPE 629
|
||||
#define STRINGID_ATTACKERSWITCHEDSTATWITHTARGET 630
|
||||
#define STRINGID_BEINGHITCHARGEDPKMNWITHPOWER 631
|
||||
#define STRINGID_SUNLIGHTACTIVATEDABILITY 632
|
||||
#define STRINGID_STATWASHEIGHTENED 633
|
||||
#define STRINGID_ELECTRICTERRAINACTIVATEDABILITY 634
|
||||
#define STRINGID_ABILITYWEAKENEDSURROUNDINGMONSSTAT 635
|
||||
#define STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN 636
|
||||
#define STRINGID_PKMNSABILITYPREVENTSABILITY 637
|
||||
#define STRINGID_PREPARESHELLTRAP 638
|
||||
#define STRINGID_SHELLTRAPDIDNTWORK 639
|
||||
#define STRINGID_SPIKESDISAPPEAREDFROMTEAM 640
|
||||
#define STRINGID_TOXICSPIKESDISAPPEAREDFROMTEAM 641
|
||||
#define STRINGID_STICKYWEBDISAPPEAREDFROMTEAM 642
|
||||
#define STRINGID_STEALTHROCKDISAPPEAREDFROMTEAM 643
|
||||
#define STRINGID_COULDNTFULLYPROTECT 644
|
||||
#define STRINGID_STOCKPILEDEFFECTWOREOFF 645
|
||||
#define STRINGID_PKMNREVIVEDREADYTOFIGHT 646
|
||||
#define STRINGID_ITEMRESTOREDSPECIESHEALTH 647
|
||||
#define STRINGID_ITEMCUREDSPECIESSTATUS 648
|
||||
#define STRINGID_ITEMRESTOREDSPECIESPP 649
|
||||
#define STRINGID_THUNDERCAGETRAPPED 650
|
||||
#define STRINGID_PKMNHURTBYFROSTBITE 651
|
||||
#define STRINGID_PKMNGOTFROSTBITE 652
|
||||
#define STRINGID_PKMNSITEMHEALEDFROSTBITE 653
|
||||
#define STRINGID_ATTACKERHEALEDITSFROSTBITE 654
|
||||
#define STRINGID_PKMNFROSTBITEHEALED 655
|
||||
#define STRINGID_PKMNFROSTBITEHEALED2 656
|
||||
#define STRINGID_PKMNFROSTBITEHEALEDBY 657
|
||||
#define STRINGID_MIRRORHERBCOPIED 658
|
||||
#define STRINGID_STARTEDSNOW 659
|
||||
#define STRINGID_SNOWCONTINUES 660
|
||||
#define STRINGID_SNOWSTOPPED 661
|
||||
#define STRINGID_SNOWWARNINGSNOW 662
|
||||
#define STRINGID_PKMNITEMMELTED 663
|
||||
#define STRINGID_ULTRABURSTREACTING 664
|
||||
#define STRINGID_ULTRABURSTCOMPLETED 665
|
||||
#define STRINGID_TEAMGAINEDEXP 666
|
||||
#define STRINGID_CURRENTMOVECANTSELECT 667
|
||||
#define STRINGID_TARGETISBEINGSALTCURED 668
|
||||
#define STRINGID_TARGETISHURTBYSALTCURE 669
|
||||
#define STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP 670
|
||||
#define STRINGID_SHARPSTEELFLOATS 671
|
||||
#define STRINGID_SHARPSTEELDMG 672
|
||||
#define STRINGID_PKMNBLEWAWAYSHARPSTEEL 673
|
||||
#define STRINGID_SHARPSTEELDISAPPEAREDFROMTEAM 674
|
||||
#define STRINGID_TEAMTRAPPEDWITHVINES 675
|
||||
#define STRINGID_PKMNHURTBYVINES 676
|
||||
#define STRINGID_TEAMCAUGHTINVORTEX 677
|
||||
#define STRINGID_PKMNHURTBYVORTEX 678
|
||||
#define STRINGID_TEAMSURROUNDEDBYFIRE 679
|
||||
#define STRINGID_PKMNBURNINGUP 680
|
||||
#define STRINGID_TEAMSURROUNDEDBYROCKS 681
|
||||
#define STRINGID_PKMNHURTBYROCKSTHROWN 682
|
||||
#define STRINGID_MOVEBLOCKEDBYDYNAMAX 683
|
||||
#define STRINGID_ZEROTOHEROTRANSFORMATION 684
|
||||
#define STRINGID_THETWOMOVESBECOMEONE 685
|
||||
#define STRINGID_ARAINBOWAPPEAREDONSIDE 686
|
||||
#define STRINGID_THERAINBOWDISAPPEARED 687
|
||||
#define STRINGID_WAITINGFORPARTNERSMOVE 688
|
||||
#define STRINGID_SEAOFFIREENVELOPEDSIDE 689
|
||||
#define STRINGID_HURTBYTHESEAOFFIRE 690
|
||||
#define STRINGID_THESEAOFFIREDISAPPEARED 691
|
||||
#define STRINGID_SWAMPENVELOPEDSIDE 692
|
||||
#define STRINGID_THESWAMPDISAPPEARED 693
|
||||
#define STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE 694
|
||||
#define STRINGID_HOSPITALITYRESTORATION 695
|
||||
#define STRINGID_ELECTROSHOTCHARGING 696
|
||||
#define STRINGID_ITEMWASUSEDUP 697
|
||||
#define STRINGID_ATTACKERLOSTITSTYPE 698
|
||||
#define STRINGID_SHEDITSTAIL 699
|
||||
#define STRINGID_CLOAKEDINAHARSHLIGHT 700
|
||||
#define STRINGID_SUPERSWEETAROMAWAFTS 701
|
||||
#define STRINGID_DIMENSIONSWERETWISTED 702
|
||||
#define STRINGID_BIZARREARENACREATED 703
|
||||
#define STRINGID_BIZARREAREACREATED 704
|
||||
#define STRINGID_TIDYINGUPCOMPLETE 705
|
||||
#define STRINGID_PKMNTERASTALLIZEDINTO 706
|
||||
#define STRINGID_BOOSTERENERGYACTIVATES 707
|
||||
#define STRINGID_FOGCREPTUP 708
|
||||
#define STRINGID_FOGISDEEP 709
|
||||
#define STRINGID_FOGLIFTED 710
|
||||
#define STRINGID_PKMNMADESHELLGLEAM 711
|
||||
#define STRINGID_FICKLEBEAMDOUBLED 712
|
||||
#define STRINGID_COMMANDERACTIVATES 713
|
||||
#define STRINGID_POKEFLUTECATCHY 714
|
||||
#define STRINGID_POKEFLUTE 715
|
||||
#define STRINGID_MONHEARINGFLUTEAWOKE 716
|
||||
#define STRINGID_SUNLIGHTISHARSH 717
|
||||
#define STRINGID_ITISHAILING 718
|
||||
#define STRINGID_ITISSNOWING 719
|
||||
#define STRINGID_ISCOVEREDWITHGRASS 720
|
||||
#define STRINGID_MISTSWIRLSAROUND 721
|
||||
#define STRINGID_ELECTRICCURRENTISRUNNING 722
|
||||
#define STRINGID_SEEMSWEIRD 723
|
||||
#define STRINGID_WAGGLINGAFINGER 724
|
||||
#define STRINGID_AIRBALLOONFLOAT 532
|
||||
#define STRINGID_AIRBALLOONPOP 533
|
||||
#define STRINGID_INCINERATEBURN 534
|
||||
#define STRINGID_BUGBITE 535
|
||||
#define STRINGID_ILLUSIONWOREOFF 536
|
||||
#define STRINGID_ATTACKERCUREDTARGETSTATUS 537
|
||||
#define STRINGID_ATTACKERLOSTFIRETYPE 538
|
||||
#define STRINGID_HEALERCURE 539
|
||||
#define STRINGID_SCRIPTINGABILITYSTATRAISE 540
|
||||
#define STRINGID_RECEIVERABILITYTAKEOVER 541
|
||||
#define STRINGID_PKNMABSORBINGPOWER 542
|
||||
#define STRINGID_NOONEWILLBEABLETORUNAWAY 543
|
||||
#define STRINGID_DESTINYKNOTACTIVATES 544
|
||||
#define STRINGID_CLOAKEDINAFREEZINGLIGHT 545
|
||||
#define STRINGID_CLEARAMULETWONTLOWERSTATS 546
|
||||
#define STRINGID_FERVENTWISHREACHED 547
|
||||
#define STRINGID_AIRLOCKACTIVATES 548
|
||||
#define STRINGID_PRESSUREENTERS 549
|
||||
#define STRINGID_DARKAURAENTERS 550
|
||||
#define STRINGID_FAIRYAURAENTERS 551
|
||||
#define STRINGID_AURABREAKENTERS 552
|
||||
#define STRINGID_COMATOSEENTERS 553
|
||||
#define STRINGID_SCREENCLEANERENTERS 554
|
||||
#define STRINGID_FETCHEDPOKEBALL 555
|
||||
#define STRINGID_BATTLERABILITYRAISEDSTAT 556
|
||||
#define STRINGID_ASANDSTORMKICKEDUP 557
|
||||
#define STRINGID_PKMNSWILLPERISHIN3TURNS 558
|
||||
#define STRINGID_ABILITYRAISEDSTATDRASTICALLY 559
|
||||
#define STRINGID_AURAFLAREDTOLIFE 560
|
||||
#define STRINGID_ASONEENTERS 561
|
||||
#define STRINGID_CURIOUSMEDICINEENTERS 562
|
||||
#define STRINGID_CANACTFASTERTHANKSTO 563
|
||||
#define STRINGID_MICLEBERRYACTIVATES 564
|
||||
#define STRINGID_PKMNSHOOKOFFTHETAUNT 565
|
||||
#define STRINGID_PKMNGOTOVERITSINFATUATION 566
|
||||
#define STRINGID_ITEMCANNOTBEREMOVED 567
|
||||
#define STRINGID_STICKYBARBTRANSFER 568
|
||||
#define STRINGID_PKMNBURNHEALED 569
|
||||
#define STRINGID_REDCARDACTIVATE 570
|
||||
#define STRINGID_EJECTBUTTONACTIVATE 571
|
||||
#define STRINGID_ATKGOTOVERINFATUATION 572
|
||||
#define STRINGID_TORMENTEDNOMORE 573
|
||||
#define STRINGID_HEALBLOCKEDNOMORE 574
|
||||
#define STRINGID_ATTACKERBECAMEFULLYCHARGED 575
|
||||
#define STRINGID_ATTACKERBECAMEASHSPECIES 576
|
||||
#define STRINGID_EXTREMELYHARSHSUNLIGHT 577
|
||||
#define STRINGID_EXTREMESUNLIGHTFADED 578
|
||||
#define STRINGID_MOVEEVAPORATEDINTHEHARSHSUNLIGHT 579
|
||||
#define STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED 580
|
||||
#define STRINGID_HEAVYRAIN 581
|
||||
#define STRINGID_HEAVYRAINLIFTED 582
|
||||
#define STRINGID_MOVEFIZZLEDOUTINTHEHEAVYRAIN 583
|
||||
#define STRINGID_NORELIEFROMHEAVYRAIN 584
|
||||
#define STRINGID_MYSTERIOUSAIRCURRENT 585
|
||||
#define STRINGID_STRONGWINDSDISSIPATED 586
|
||||
#define STRINGID_MYSTERIOUSAIRCURRENTBLOWSON 587
|
||||
#define STRINGID_ATTACKWEAKENEDBSTRONGWINDS 588
|
||||
#define STRINGID_STUFFCHEEKSCANTSELECT 589
|
||||
#define STRINGID_PKMNREVERTEDTOPRIMAL 590
|
||||
#define STRINGID_BUTPOKEMONCANTUSETHEMOVE 591
|
||||
#define STRINGID_BUTHOOPACANTUSEIT 592
|
||||
#define STRINGID_BROKETHROUGHPROTECTION 593
|
||||
#define STRINGID_ABILITYALLOWSONLYMOVE 594
|
||||
#define STRINGID_SWAPPEDABILITIES 595
|
||||
#define STRINGID_PASTELVEILPROTECTED 596
|
||||
#define STRINGID_PASTELVEILENTERS 597
|
||||
#define STRINGID_BATTLERTYPECHANGEDTO 598
|
||||
#define STRINGID_BOTHCANNOLONGERESCAPE 599
|
||||
#define STRINGID_CANTESCAPEDUETOUSEDMOVE 600
|
||||
#define STRINGID_PKMNBECAMEWEAKERTOFIRE 601
|
||||
#define STRINGID_ABOUTTOUSEPOLTERGEIST 602
|
||||
#define STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE 603
|
||||
#define STRINGID_NEUTRALIZINGGASENTERS 604
|
||||
#define STRINGID_NEUTRALIZINGGASOVER 605
|
||||
#define STRINGID_TARGETTOOHEAVY 606
|
||||
#define STRINGID_PKMNTOOKTARGETHIGH 607
|
||||
#define STRINGID_PKMNINSNAPTRAP 608
|
||||
#define STRINGID_METEORBEAMCHARGING 609
|
||||
#define STRINGID_HEATUPBEAK 610
|
||||
#define STRINGID_COURTCHANGE 611
|
||||
#define STRINGID_PLAYERLOSTTOENEMYTRAINER 612
|
||||
#define STRINGID_PLAYERPAIDPRIZEMONEY 613
|
||||
#define STRINGID_ZPOWERSURROUNDS 614
|
||||
#define STRINGID_ZMOVEUNLEASHED 615
|
||||
#define STRINGID_ZMOVERESETSSTATS 616
|
||||
#define STRINGID_ZMOVEALLSTATSUP 617
|
||||
#define STRINGID_ZMOVEZBOOSTCRIT 618
|
||||
#define STRINGID_ZMOVERESTOREHP 619
|
||||
#define STRINGID_ZMOVESTATUP 620
|
||||
#define STRINGID_ZMOVEHPTRAP 621
|
||||
#define STRINGID_ATTACKEREXPELLEDTHEPOISON 622
|
||||
#define STRINGID_ATTACKERSHOOKITSELFAWAKE 623
|
||||
#define STRINGID_ATTACKERBROKETHROUGHPARALYSIS 624
|
||||
#define STRINGID_ATTACKERHEALEDITSBURN 625
|
||||
#define STRINGID_ATTACKERMELTEDTHEICE 626
|
||||
#define STRINGID_TARGETTOUGHEDITOUT 627
|
||||
#define STRINGID_ATTACKERLOSTELECTRICTYPE 628
|
||||
#define STRINGID_ATTACKERSWITCHEDSTATWITHTARGET 629
|
||||
#define STRINGID_BEINGHITCHARGEDPKMNWITHPOWER 630
|
||||
#define STRINGID_SUNLIGHTACTIVATEDABILITY 631
|
||||
#define STRINGID_STATWASHEIGHTENED 632
|
||||
#define STRINGID_ELECTRICTERRAINACTIVATEDABILITY 633
|
||||
#define STRINGID_ABILITYWEAKENEDSURROUNDINGMONSSTAT 634
|
||||
#define STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN 635
|
||||
#define STRINGID_PKMNSABILITYPREVENTSABILITY 636
|
||||
#define STRINGID_PREPARESHELLTRAP 637
|
||||
#define STRINGID_SHELLTRAPDIDNTWORK 638
|
||||
#define STRINGID_SPIKESDISAPPEAREDFROMTEAM 639
|
||||
#define STRINGID_TOXICSPIKESDISAPPEAREDFROMTEAM 640
|
||||
#define STRINGID_STICKYWEBDISAPPEAREDFROMTEAM 641
|
||||
#define STRINGID_STEALTHROCKDISAPPEAREDFROMTEAM 642
|
||||
#define STRINGID_COULDNTFULLYPROTECT 643
|
||||
#define STRINGID_STOCKPILEDEFFECTWOREOFF 644
|
||||
#define STRINGID_PKMNREVIVEDREADYTOFIGHT 645
|
||||
#define STRINGID_ITEMRESTOREDSPECIESHEALTH 646
|
||||
#define STRINGID_ITEMCUREDSPECIESSTATUS 647
|
||||
#define STRINGID_ITEMRESTOREDSPECIESPP 648
|
||||
#define STRINGID_THUNDERCAGETRAPPED 649
|
||||
#define STRINGID_PKMNHURTBYFROSTBITE 650
|
||||
#define STRINGID_PKMNGOTFROSTBITE 651
|
||||
#define STRINGID_PKMNSITEMHEALEDFROSTBITE 652
|
||||
#define STRINGID_ATTACKERHEALEDITSFROSTBITE 653
|
||||
#define STRINGID_PKMNFROSTBITEHEALED 654
|
||||
#define STRINGID_PKMNFROSTBITEHEALED2 655
|
||||
#define STRINGID_PKMNFROSTBITEHEALEDBY 656
|
||||
#define STRINGID_MIRRORHERBCOPIED 657
|
||||
#define STRINGID_STARTEDSNOW 658
|
||||
#define STRINGID_SNOWCONTINUES 659
|
||||
#define STRINGID_SNOWSTOPPED 660
|
||||
#define STRINGID_SNOWWARNINGSNOW 661
|
||||
#define STRINGID_PKMNITEMMELTED 662
|
||||
#define STRINGID_ULTRABURSTREACTING 663
|
||||
#define STRINGID_ULTRABURSTCOMPLETED 664
|
||||
#define STRINGID_TEAMGAINEDEXP 665
|
||||
#define STRINGID_CURRENTMOVECANTSELECT 666
|
||||
#define STRINGID_TARGETISBEINGSALTCURED 667
|
||||
#define STRINGID_TARGETISHURTBYSALTCURE 668
|
||||
#define STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP 669
|
||||
#define STRINGID_SHARPSTEELFLOATS 670
|
||||
#define STRINGID_SHARPSTEELDMG 671
|
||||
#define STRINGID_PKMNBLEWAWAYSHARPSTEEL 672
|
||||
#define STRINGID_SHARPSTEELDISAPPEAREDFROMTEAM 673
|
||||
#define STRINGID_TEAMTRAPPEDWITHVINES 674
|
||||
#define STRINGID_PKMNHURTBYVINES 675
|
||||
#define STRINGID_TEAMCAUGHTINVORTEX 676
|
||||
#define STRINGID_PKMNHURTBYVORTEX 677
|
||||
#define STRINGID_TEAMSURROUNDEDBYFIRE 678
|
||||
#define STRINGID_PKMNBURNINGUP 679
|
||||
#define STRINGID_TEAMSURROUNDEDBYROCKS 680
|
||||
#define STRINGID_PKMNHURTBYROCKSTHROWN 681
|
||||
#define STRINGID_MOVEBLOCKEDBYDYNAMAX 682
|
||||
#define STRINGID_ZEROTOHEROTRANSFORMATION 683
|
||||
#define STRINGID_THETWOMOVESBECOMEONE 684
|
||||
#define STRINGID_ARAINBOWAPPEAREDONSIDE 685
|
||||
#define STRINGID_THERAINBOWDISAPPEARED 686
|
||||
#define STRINGID_WAITINGFORPARTNERSMOVE 687
|
||||
#define STRINGID_SEAOFFIREENVELOPEDSIDE 688
|
||||
#define STRINGID_HURTBYTHESEAOFFIRE 689
|
||||
#define STRINGID_THESEAOFFIREDISAPPEARED 690
|
||||
#define STRINGID_SWAMPENVELOPEDSIDE 691
|
||||
#define STRINGID_THESWAMPDISAPPEARED 692
|
||||
#define STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE 693
|
||||
#define STRINGID_HOSPITALITYRESTORATION 694
|
||||
#define STRINGID_ELECTROSHOTCHARGING 695
|
||||
#define STRINGID_ITEMWASUSEDUP 696
|
||||
#define STRINGID_ATTACKERLOSTITSTYPE 697
|
||||
#define STRINGID_SHEDITSTAIL 698
|
||||
#define STRINGID_CLOAKEDINAHARSHLIGHT 699
|
||||
#define STRINGID_SUPERSWEETAROMAWAFTS 700
|
||||
#define STRINGID_DIMENSIONSWERETWISTED 701
|
||||
#define STRINGID_BIZARREARENACREATED 702
|
||||
#define STRINGID_BIZARREAREACREATED 703
|
||||
#define STRINGID_TIDYINGUPCOMPLETE 704
|
||||
#define STRINGID_PKMNTERASTALLIZEDINTO 705
|
||||
#define STRINGID_BOOSTERENERGYACTIVATES 706
|
||||
#define STRINGID_FOGCREPTUP 707
|
||||
#define STRINGID_FOGISDEEP 708
|
||||
#define STRINGID_FOGLIFTED 709
|
||||
#define STRINGID_PKMNMADESHELLGLEAM 710
|
||||
#define STRINGID_FICKLEBEAMDOUBLED 711
|
||||
#define STRINGID_COMMANDERACTIVATES 712
|
||||
#define STRINGID_POKEFLUTECATCHY 713
|
||||
#define STRINGID_POKEFLUTE 714
|
||||
#define STRINGID_MONHEARINGFLUTEAWOKE 715
|
||||
#define STRINGID_SUNLIGHTISHARSH 716
|
||||
#define STRINGID_ITISHAILING 717
|
||||
#define STRINGID_ITISSNOWING 718
|
||||
#define STRINGID_ISCOVEREDWITHGRASS 719
|
||||
#define STRINGID_MISTSWIRLSAROUND 720
|
||||
#define STRINGID_ELECTRICCURRENTISRUNNING 721
|
||||
#define STRINGID_SEEMSWEIRD 722
|
||||
#define STRINGID_WAGGLINGAFINGER 723
|
||||
#define STRINGID_BLOCKEDBYSLEEPCLAUSE 724
|
||||
#define STRINGID_SUPEREFFECTIVETWOFOES 725
|
||||
#define STRINGID_NOTVERYEFFECTIVETWOFOES 726
|
||||
#define STRINGID_ITDOESNTAFFECTTWOFOES 727
|
||||
#define STRINGID_BLOCKEDBYSLEEPCLAUSE 728
|
||||
|
||||
#define BATTLESTRINGS_COUNT 729
|
||||
#define BATTLESTRINGS_COUNT 728
|
||||
|
||||
// This is the string id that gBattleStringsTable starts with.
|
||||
// String ids before this (e.g. STRINGID_INTROMSG) are not in the table,
|
||||
|
||||
@ -694,7 +694,6 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] =
|
||||
[STRINGID_LASERFOCUS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} concentrated intensely!"),
|
||||
[STRINGID_GEMACTIVATES] = COMPOUND_STRING("The {B_LAST_ITEM} strengthened {B_ATK_NAME_WITH_PREFIX2}'s power!"),
|
||||
[STRINGID_BERRYDMGREDUCES] = COMPOUND_STRING("The {B_LAST_ITEM} weakened the damage to {B_SCR_NAME_WITH_PREFIX2}!"),
|
||||
[STRINGID_TARGETATEITEM] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} ate its {B_LAST_ITEM}!"),
|
||||
[STRINGID_AIRBALLOONFLOAT] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} floats in the air with its Air Balloon!"),
|
||||
[STRINGID_AIRBALLOONPOP] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s Air Balloon popped!"),
|
||||
[STRINGID_INCINERATEBURN] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX}'s {B_LAST_ITEM} was burnt up!"),
|
||||
@ -887,10 +886,10 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] =
|
||||
[STRINGID_ELECTRICCURRENTISRUNNING] = COMPOUND_STRING("An electric current is running across the battlefield!"),
|
||||
[STRINGID_SEEMSWEIRD] = COMPOUND_STRING("The battlefield seems weird!"),
|
||||
[STRINGID_WAGGLINGAFINGER] = COMPOUND_STRING("Waggling a finger let it use {B_CURRENT_MOVE}!"),
|
||||
[STRINGID_BLOCKEDBYSLEEPCLAUSE] = COMPOUND_STRING("Sleep Clause kept {B_DEF_NAME_WITH_PREFIX2} awake!"),
|
||||
[STRINGID_SUPEREFFECTIVETWOFOES] = COMPOUND_STRING("It's super effective on {B_DEF_NAME_WITH_PREFIX2} and {B_DEF_PARTNER_NAME}!"),
|
||||
[STRINGID_NOTVERYEFFECTIVETWOFOES] = COMPOUND_STRING("It's not very effective on {B_DEF_NAME_WITH_PREFIX2} and {B_DEF_PARTNER_NAME}!"),
|
||||
[STRINGID_ITDOESNTAFFECTTWOFOES] = COMPOUND_STRING("It doesn't affect {B_DEF_NAME_WITH_PREFIX2} and {B_DEF_PARTNER_NAME}…"),
|
||||
[STRINGID_BLOCKEDBYSLEEPCLAUSE] = COMPOUND_STRING("Sleep Clause kept {B_DEF_NAME_WITH_PREFIX2} awake!"),
|
||||
};
|
||||
|
||||
const u16 gTrainerUsedItemStringIds[] =
|
||||
|
||||
@ -487,7 +487,7 @@ static void Cmd_givepaydaymoney(void);
|
||||
static void Cmd_setlightscreen(void);
|
||||
static void Cmd_tryKO(void);
|
||||
static void Cmd_damagetohalftargethp(void);
|
||||
static void Cmd_unused_95(void);
|
||||
static void Cmd_copybidedmg(void);
|
||||
static void Cmd_unused_96(void);
|
||||
static void Cmd_tryinfatuating(void);
|
||||
static void Cmd_updatestatusicon(void);
|
||||
@ -746,7 +746,7 @@ void (* const gBattleScriptingCommandsTable[])(void) =
|
||||
Cmd_setlightscreen, //0x92
|
||||
Cmd_tryKO, //0x93
|
||||
Cmd_damagetohalftargethp, //0x94
|
||||
Cmd_unused_95, //0x95
|
||||
Cmd_copybidedmg, //0x95
|
||||
Cmd_unused_96, //0x96
|
||||
Cmd_tryinfatuating, //0x97
|
||||
Cmd_updatestatusicon, //0x98
|
||||
@ -1706,7 +1706,7 @@ static void AccuracyCheck(bool32 recalcDragonDarts, const u8 *nextInstr, const u
|
||||
{
|
||||
u32 moveType = GetMoveType(move);
|
||||
u32 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, move);
|
||||
bool32 calcSpreadMove = IsSpreadMove(moveTarget) && !IS_MOVE_STATUS(move);
|
||||
bool32 calcSpreadMove = IsSpreadMove(moveTarget) && !IS_MOVE_STATUS(move);
|
||||
|
||||
for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++)
|
||||
{
|
||||
@ -2183,9 +2183,9 @@ static void Cmd_adjustdamage(void)
|
||||
if (!calcSpreadMoveDamage && battlerDef != gBattlerTarget)
|
||||
continue;
|
||||
|
||||
if (IsBattlerInvalidForSpreadMove(gBattlerAttacker, battlerDef, moveTarget)
|
||||
|| gBattleStruct->noResultString[battlerDef])
|
||||
continue;
|
||||
if (IsBattlerInvalidForSpreadMove(gBattlerAttacker, battlerDef, moveTarget)
|
||||
|| gBattleStruct->noResultString[battlerDef])
|
||||
continue;
|
||||
|
||||
if (DoesSubstituteBlockMove(gBattlerAttacker, battlerDef, gCurrentMove))
|
||||
goto END;
|
||||
@ -2331,21 +2331,21 @@ static inline bool32 DoesBattlerNegateDamage(u32 battler)
|
||||
|
||||
if (gBattleMons[battler].status2 & STATUS2_TRANSFORMED)
|
||||
return FALSE;
|
||||
if (ability == ABILITY_DISGUISE && species == SPECIES_MIMIKYU)
|
||||
return TRUE;
|
||||
if (ability == ABILITY_ICE_FACE && species == SPECIES_EISCUE && GetBattleMoveCategory(gCurrentMove) == DAMAGE_CATEGORY_SPECIAL)
|
||||
return TRUE;
|
||||
if (ability == ABILITY_DISGUISE && species == SPECIES_MIMIKYU)
|
||||
return TRUE;
|
||||
if (ability == ABILITY_ICE_FACE && species == SPECIES_EISCUE && GetBattleMoveCategory(gCurrentMove) == DAMAGE_CATEGORY_SPECIAL)
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static u32 UpdateEffectivenessResultFlagsForDoubleSpreadMoves(u32 resultFlags)
|
||||
{
|
||||
// Only play the "best" sound
|
||||
for (u32 sound = 0; sound < 3; sound++)
|
||||
{
|
||||
for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++)
|
||||
{
|
||||
// Only play the "best" sound
|
||||
for (u32 sound = 0; sound < 3; sound++)
|
||||
{
|
||||
for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++)
|
||||
{
|
||||
if ((gBattleStruct->moveResultFlags[battlerDef] & (MOVE_RESULT_MISSED | MOVE_RESULT_NO_EFFECT)
|
||||
|| gBattleStruct->noResultString[battlerDef]))
|
||||
continue;
|
||||
@ -2367,10 +2367,10 @@ static u32 UpdateEffectivenessResultFlagsForDoubleSpreadMoves(u32 resultFlags)
|
||||
return 0; //Normal effectiveness
|
||||
return gBattleStruct->moveResultFlags[battlerDef];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return resultFlags;
|
||||
return resultFlags;
|
||||
}
|
||||
|
||||
static inline bool32 TryStrongWindsWeakenAttack(u32 battlerDef)
|
||||
@ -2389,7 +2389,7 @@ static inline bool32 TryStrongWindsWeakenAttack(u32 battlerDef)
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static inline bool32 TryTeraShellDistortTypeMatchups(u32 battlerDef)
|
||||
@ -2420,30 +2420,30 @@ static inline bool32 TryActivateWeakenessBerry(u32 battlerDef)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool32 ProcessPreAttackAnimationFuncs(void)
|
||||
{
|
||||
if (IsDoubleSpreadMove())
|
||||
{
|
||||
if (IsDoubleSpreadMove())
|
||||
{
|
||||
u32 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove);
|
||||
if (!gBattleStruct->printedStrongWindsWeakenedAttack)
|
||||
{
|
||||
for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++)
|
||||
{
|
||||
if (!gBattleStruct->printedStrongWindsWeakenedAttack)
|
||||
{
|
||||
for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++)
|
||||
{
|
||||
if (IsBattlerInvalidForSpreadMove(gBattlerAttacker, battlerDef, moveTarget)
|
||||
|| (battlerDef == BATTLE_PARTNER(gBattlerAttacker) && !(moveTarget & MOVE_TARGET_FOES_AND_ALLY))
|
||||
|| (gBattleStruct->noResultString[battlerDef] && gBattleStruct->noResultString[battlerDef] != DO_ACCURACY_CHECK))
|
||||
continue;
|
||||
|
||||
if (TryStrongWindsWeakenAttack(battlerDef))
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
if (TryStrongWindsWeakenAttack(battlerDef))
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++)
|
||||
{
|
||||
for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++)
|
||||
{
|
||||
if (IsBattlerInvalidForSpreadMove(gBattlerAttacker, battlerDef, moveTarget)
|
||||
|| (battlerDef == BATTLE_PARTNER(gBattlerAttacker) && !(moveTarget & MOVE_TARGET_FOES_AND_ALLY))
|
||||
|| (gBattleStruct->noResultString[battlerDef] && gBattleStruct->noResultString[battlerDef] != DO_ACCURACY_CHECK))
|
||||
@ -2451,21 +2451,21 @@ static bool32 ProcessPreAttackAnimationFuncs(void)
|
||||
|
||||
if (TryTeraShellDistortTypeMatchups(battlerDef))
|
||||
return TRUE;
|
||||
if (TryActivateWeakenessBerry(battlerDef))
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (TryStrongWindsWeakenAttack(gBattlerTarget))
|
||||
return TRUE;
|
||||
if (TryTeraShellDistortTypeMatchups(gBattlerTarget))
|
||||
return TRUE;
|
||||
if (TryActivateWeakenessBerry(gBattlerTarget))
|
||||
if (TryActivateWeakenessBerry(battlerDef))
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (TryStrongWindsWeakenAttack(gBattlerTarget))
|
||||
return TRUE;
|
||||
}
|
||||
if (TryTeraShellDistortTypeMatchups(gBattlerTarget))
|
||||
return TRUE;
|
||||
if (TryActivateWeakenessBerry(gBattlerTarget))
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void Cmd_attackanimation(void)
|
||||
@ -2479,7 +2479,7 @@ static void Cmd_attackanimation(void)
|
||||
u32 moveResultFlags = gBattleStruct->moveResultFlags[gBattlerTarget];
|
||||
|
||||
if (IsDoubleSpreadMove())
|
||||
moveResultFlags = UpdateEffectivenessResultFlagsForDoubleSpreadMoves(gBattleStruct->moveResultFlags[gBattlerTarget]);
|
||||
moveResultFlags = UpdateEffectivenessResultFlagsForDoubleSpreadMoves(gBattleStruct->moveResultFlags[gBattlerTarget]);
|
||||
|
||||
if ((gHitMarker & (HITMARKER_NO_ANIMATIONS | HITMARKER_DISABLE_ANIMATION))
|
||||
&& gCurrentMove != MOVE_TRANSFORM
|
||||
@ -2556,7 +2556,7 @@ static void Cmd_waitanimation(void)
|
||||
|
||||
static void DoublesHPBarReduction(void)
|
||||
{
|
||||
if (gBattleStruct->doneDoublesSpreadHit
|
||||
if (gBattleStruct->doneDoublesSpreadHit
|
||||
|| gHitMarker & (HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE))
|
||||
return;
|
||||
|
||||
@ -2798,19 +2798,19 @@ static void Cmd_effectivenesssound(void)
|
||||
|
||||
u32 moveResultFlags = gBattleStruct->moveResultFlags[gBattlerTarget];
|
||||
|
||||
if (IsDoubleSpreadMove())
|
||||
{
|
||||
if (gBattleStruct->doneDoublesSpreadHit
|
||||
|| !gBattleStruct->calculatedDamageDone //The attack animation didn't play yet - only play sound after animation
|
||||
|| GetBattleMoveCategory(gCurrentMove) == DAMAGE_CATEGORY_STATUS) //To handle Dark Void missing basically
|
||||
if (IsDoubleSpreadMove())
|
||||
{
|
||||
if (gBattleStruct->doneDoublesSpreadHit
|
||||
|| !gBattleStruct->calculatedDamageDone //The attack animation didn't play yet - only play sound after animation
|
||||
|| GetBattleMoveCategory(gCurrentMove) == DAMAGE_CATEGORY_STATUS) //To handle Dark Void missing basically
|
||||
{
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
return;
|
||||
}
|
||||
moveResultFlags = UpdateEffectivenessResultFlagsForDoubleSpreadMoves(gBattleStruct->moveResultFlags[gBattlerTarget]);
|
||||
}
|
||||
else if (MoveResultHasEffect(gBattlerTarget) && DoesBattlerNegateDamage(gBattlerTarget))
|
||||
moveResultFlags = 0;
|
||||
moveResultFlags = UpdateEffectivenessResultFlagsForDoubleSpreadMoves(gBattleStruct->moveResultFlags[gBattlerTarget]);
|
||||
}
|
||||
else if (MoveResultHasEffect(gBattlerTarget) && DoesBattlerNegateDamage(gBattlerTarget))
|
||||
moveResultFlags = 0;
|
||||
|
||||
if (!(moveResultFlags & MOVE_RESULT_MISSED))
|
||||
{
|
||||
@ -2856,14 +2856,14 @@ static void Cmd_effectivenesssound(void)
|
||||
|
||||
static inline bool32 ShouldPrintTwoFoesMessage(u32 moveResult)
|
||||
{
|
||||
return gBattlerTarget == BATTLE_OPPOSITE(gBattlerAttacker)
|
||||
return gBattlerTarget == BATTLE_OPPOSITE(gBattlerAttacker)
|
||||
&& gBattleStruct->moveResultFlags[BATTLE_PARTNER(gBattlerTarget)] & moveResult
|
||||
&& !gBattleStruct->noResultString[BATTLE_PARTNER(gBattlerTarget)];
|
||||
}
|
||||
|
||||
static inline bool32 ShouldRelyOnTwoFoesMessage(u32 moveResult)
|
||||
{
|
||||
return gBattlerTarget == BATTLE_PARTNER(BATTLE_OPPOSITE(gBattlerAttacker))
|
||||
return gBattlerTarget == BATTLE_PARTNER(BATTLE_OPPOSITE(gBattlerAttacker))
|
||||
&& gBattleStruct->moveResultFlags[BATTLE_OPPOSITE(gBattlerAttacker)] & moveResult
|
||||
&& !(gBattleStruct->moveResultFlags[BATTLE_OPPOSITE(gBattlerAttacker)] & MOVE_RESULT_MISSED && gBattleStruct->missStringId[BATTLE_OPPOSITE(gBattlerAttacker)] > B_MSG_AVOIDED_ATK)
|
||||
&& !gBattleStruct->noResultString[BATTLE_OPPOSITE(gBattlerAttacker)];
|
||||
@ -3033,7 +3033,7 @@ static void Cmd_resultmessage(void)
|
||||
}
|
||||
if (stringId)
|
||||
PrepareStringBattle(stringId, gBattlerAttacker);
|
||||
else
|
||||
else
|
||||
gBattleCommunication[MSG_DISPLAY] = 0;
|
||||
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
@ -8159,11 +8159,11 @@ static void Cmd_hitanimation(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!gBattleStruct->doneDoublesSpreadHit)
|
||||
{
|
||||
else if (!gBattleStruct->doneDoublesSpreadHit)
|
||||
{
|
||||
u32 battlerDef;
|
||||
for (battlerDef = 0; battlerDef < gBattlersCount; battlerDef++)
|
||||
{
|
||||
for (battlerDef = 0; battlerDef < gBattlersCount; battlerDef++)
|
||||
{
|
||||
if (gBattleStruct->moveResultFlags[battlerDef] & MOVE_RESULT_NO_EFFECT
|
||||
|| gBattleStruct->noResultString[battlerDef])
|
||||
continue;
|
||||
@ -8175,8 +8175,8 @@ static void Cmd_hitanimation(void)
|
||||
BtlController_EmitHitAnimation(battlerDef, BUFFER_A);
|
||||
MarkBattlerForControllerExec(battlerDef);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
@ -12759,7 +12759,7 @@ static void Cmd_damagetohalftargethp(void)
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
|
||||
static void Cmd_unused_95(void)
|
||||
static void Cmd_copybidedmg(void)
|
||||
{
|
||||
CMD_ARGS();
|
||||
gBattleStruct->moveDamage[gBattlerTarget] = gBideDmg[gBattlerAttacker] * 2;
|
||||
|
||||
@ -323,8 +323,8 @@ DOUBLE_BATTLE_TEST("Commander Attacker is kept (Dondozo Left Slot)")
|
||||
MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SURF, opponentLeft);
|
||||
HP_BAR(playerLeft);
|
||||
// MESSAGE("The opposing Wobbuffet's attack missed!"); TODO: Message issue, otherwise fine
|
||||
HP_BAR(opponentRight);
|
||||
MESSAGE("The opposing Wobbuffet's attack missed!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -344,7 +344,7 @@ DOUBLE_BATTLE_TEST("Commander Attacker is kept (Dondozo Right Slot)")
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight);
|
||||
ABILITY_POPUP(playerLeft, ABILITY_COMMANDER);
|
||||
MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!");
|
||||
// MESSAGE("The opposing Wobbuffet's attack missed!"); TODO: Message issue, otherwise fine
|
||||
MESSAGE("The opposing Wobbuffet's attack missed!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SURF, opponentLeft);
|
||||
HP_BAR(playerRight);
|
||||
HP_BAR(opponentRight);
|
||||
|
||||
@ -97,23 +97,3 @@ DOUBLE_BATTLE_TEST("Tera Shell only makes the first hit against Terapagos from a
|
||||
NOT MESSAGE("It's not very effective…");
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("[1]")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_TERAPAGOS_TERASTAL) { Ability(ABILITY_TERA_SHELL); }
|
||||
PLAYER(SPECIES_TERAPAGOS_TERASTAL) { Ability(ABILITY_TERA_SHELL); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponentLeft, MOVE_BLIZZARD); }
|
||||
} SCENE {
|
||||
ABILITY_POPUP(playerLeft, ABILITY_TERA_SHELL);
|
||||
MESSAGE("Terapagos made its shell gleam! It's distorting type matchups!");
|
||||
ABILITY_POPUP(playerRight, ABILITY_TERA_SHELL);
|
||||
MESSAGE("Terapagos made its shell gleam! It's distorting type matchups!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_BLIZZARD, opponentLeft);
|
||||
HP_BAR(playerLeft);
|
||||
HP_BAR(playerRight);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,20 +6,6 @@ ASSUMPTIONS
|
||||
ASSUME(gMovesInfo[MOVE_ABSORB].effect == EFFECT_ABSORB);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("test")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_ABSORB); }
|
||||
TURN { MOVE(player, MOVE_ABSORB); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ABSORB, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ABSORB, player);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Absorb recovers 50% of the damage dealt")
|
||||
{
|
||||
s16 damage;
|
||||
|
||||
@ -7,17 +7,6 @@ ASSUMPTIONS
|
||||
ASSUME(gSpeciesInfo[SPECIES_CLEFAIRY].types[0] == TYPE_FAIRY || gSpeciesInfo[SPECIES_CLEFAIRY].types[1] == TYPE_FAIRY);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Dragon Darts test")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_CLEFAIRY);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_DRAGON_DARTS); }
|
||||
} SCENE {
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Dragon Darts strikes twice")
|
||||
{
|
||||
GIVEN {
|
||||
|
||||
@ -19,3 +19,5 @@ SINGLE_BATTLE_TEST("Endeavor causes the target's HP to equal the user's current
|
||||
EXPECT_EQ(player->hp, opponent->hp);
|
||||
}
|
||||
}
|
||||
TO_DO_BATTLE_TEST("Endeavor does not change HP if the target has less HP than the user, but still plays the animation")
|
||||
TO_DO_BATTLE_TEST("Endeavor doesn't ignore type immunity") // Ghost types
|
||||
|
||||
@ -85,6 +85,7 @@ DOUBLE_BATTLE_TEST("Explosion causes everyone to faint in a double battle")
|
||||
HP_BAR(playerRight, hp: 0);
|
||||
HP_BAR(opponentRight, hp: 0);
|
||||
MESSAGE("The opposing Abra fainted!");
|
||||
MESSAGE("Wynaut fainted!");
|
||||
MESSAGE("The opposing Kadabra fainted!");
|
||||
MESSAGE("Wobbuffet fainted!");
|
||||
}
|
||||
|
||||
@ -99,6 +99,7 @@ DOUBLE_BATTLE_TEST("Mind Blown causes everyone to faint in a double battle")
|
||||
HP_BAR(playerRight, hp: 0);
|
||||
HP_BAR(opponentRight, hp: 0);
|
||||
MESSAGE("The opposing Abra fainted!");
|
||||
MESSAGE("Wynaut fainted!");
|
||||
MESSAGE("The opposing Kadabra fainted!");
|
||||
HP_BAR(playerLeft, hp: 0);
|
||||
MESSAGE("Wobbuffet fainted!");
|
||||
|
||||
@ -28,36 +28,29 @@ DOUBLE_BATTLE_TEST("Spread Moves: Ability and Item effects activate correctly af
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Spread Moves: No damage will be dealt to a mon in an invulnerable position - Surf")
|
||||
DOUBLE_BATTLE_TEST("Spread Moves: No damage will be dealt to a mon in an invulnerable position")
|
||||
{
|
||||
u32 attackingMove = 0, invulMove = 0;
|
||||
PARAMETRIZE { attackingMove = MOVE_HYPER_VOICE; invulMove = MOVE_FLY; }
|
||||
PARAMETRIZE { attackingMove = MOVE_LAVA_PLUME; invulMove = MOVE_FLY; }
|
||||
PARAMETRIZE { attackingMove = MOVE_HYPER_VOICE; invulMove = MOVE_DIVE; }
|
||||
PARAMETRIZE { attackingMove = MOVE_LAVA_PLUME; invulMove = MOVE_DIVE; }
|
||||
GIVEN {
|
||||
ASSUME(gMovesInfo[MOVE_HYPER_VOICE].target == MOVE_TARGET_BOTH);
|
||||
ASSUME(gMovesInfo[MOVE_LAVA_PLUME].target == MOVE_TARGET_FOES_AND_ALLY);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WYNAUT);
|
||||
OPPONENT(SPECIES_ZAPDOS);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponentLeft, MOVE_FLY, target: playerLeft); MOVE(playerLeft, MOVE_HYPER_VOICE); }
|
||||
TURN { MOVE(opponentLeft, invulMove, target: playerLeft); MOVE(playerLeft, attackingMove); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, attackingMove, playerLeft);
|
||||
NOT HP_BAR(opponentLeft);
|
||||
HP_BAR(opponentRight);
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Spread Moves: No damage will be dealt to a mon in an invulnerable position - Surf")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WYNAUT);
|
||||
OPPONENT(SPECIES_ZAPDOS);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(playerLeft, MOVE_BUBBLE_BEAM, target: opponentLeft); MOVE(opponentLeft, MOVE_SURF); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SURF, opponentLeft);
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Spread Moves: A spread move attack will activate both resist berries")
|
||||
{
|
||||
s16 opponentLeftDmg[2];
|
||||
@ -233,26 +226,6 @@ DOUBLE_BATTLE_TEST("Spread Moves: AOE move vs Eiscue and Mimikyu (Based on vanil
|
||||
}
|
||||
}
|
||||
|
||||
// Can be removed once the above test passes
|
||||
DOUBLE_BATTLE_TEST("Spread Moves: AOE move vs Eiscue and Mimikyu (Based on battler id)")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gMovesInfo[MOVE_EARTHQUAKE].target == MOVE_TARGET_FOES_AND_ALLY);
|
||||
ASSUME(gMovesInfo[MOVE_EARTHQUAKE].category == DAMAGE_CATEGORY_PHYSICAL);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_EISCUE);
|
||||
OPPONENT(SPECIES_MIMIKYU);
|
||||
OPPONENT(SPECIES_EISCUE);
|
||||
} WHEN {
|
||||
TURN { MOVE(playerLeft, MOVE_EARTHQUAKE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, playerLeft);
|
||||
ABILITY_POPUP(opponentLeft, ABILITY_DISGUISE);
|
||||
ABILITY_POPUP(playerRight, ABILITY_ICE_FACE);
|
||||
ABILITY_POPUP(opponentRight, ABILITY_ICE_FACE);
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Spread Moves: Spread move, Gem Boosted, vs Resist Berries")
|
||||
{
|
||||
GIVEN {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user