Refactors faint target abilities and adds Battle Bond config (#6519)
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
This commit is contained in:
parent
807b9cb152
commit
ae62c80d0f
@ -1949,14 +1949,6 @@
|
||||
various \battler, VARIOUS_RESTORE_PP
|
||||
.endm
|
||||
|
||||
.macro tryactivatemoxie battler:req
|
||||
various \battler, VARIOUS_TRY_ACTIVATE_MOXIE
|
||||
.endm
|
||||
|
||||
.macro tryactivatebeastboost battler:req
|
||||
various \battler, VARIOUS_TRY_ACTIVATE_BEAST_BOOST
|
||||
.endm
|
||||
|
||||
.macro tryactivatereceiver battler:req
|
||||
various \battler, VARIOUS_TRY_ACTIVATE_RECEIVER
|
||||
.endm
|
||||
@ -2240,10 +2232,6 @@
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro tryactivategrimneigh, battler:req
|
||||
various \battler, VARIOUS_TRY_ACTIVATE_GRIM_NEIGH
|
||||
.endm
|
||||
|
||||
.macro consumeberry battler:req, fromBattler:req
|
||||
various \battler, VARIOUS_CONSUME_BERRY
|
||||
.byte \fromBattler
|
||||
@ -2304,10 +2292,6 @@
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro tryactivatebattlebond battler:req
|
||||
various \battler, VARIOUS_TRY_ACTIVATE_BATTLE_BOND
|
||||
.endm
|
||||
|
||||
.macro jumpifcantreverttoprimal jumpInstr:req
|
||||
various BS_ATTACKER, VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL
|
||||
.4byte \jumpInstr
|
||||
|
||||
@ -5414,10 +5414,6 @@ BattleScript_FaintTarget::
|
||||
tryactivatefellstinger BS_ATTACKER
|
||||
tryactivatesoulheart
|
||||
tryactivatereceiver BS_TARGET
|
||||
tryactivatemoxie BS_ATTACKER @ and chilling neigh, as one ice rider
|
||||
tryactivatebeastboost BS_ATTACKER
|
||||
tryactivategrimneigh BS_ATTACKER @ and as one shadow rider
|
||||
tryactivatebattlebond BS_ATTACKER
|
||||
trytrainerslidefirstdownmsg BS_TARGET
|
||||
return
|
||||
|
||||
@ -8446,10 +8442,9 @@ BattleScript_RaiseStatOnFaintingTarget::
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_RaiseStatOnFaintingTarget_End
|
||||
copybyte gBattlerAbility, gBattlerAttacker
|
||||
call BattleScript_AbilityPopUp
|
||||
setgraphicalstatchangevalues
|
||||
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
||||
waitanimation
|
||||
printstring STRINGID_LASTABILITYRAISEDSTAT
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_RaiseStatOnFaintingTarget_End:
|
||||
return
|
||||
@ -8616,6 +8611,29 @@ BattleScript_BattleBondActivatesOnMoveEndAttacker::
|
||||
printstring STRINGID_ATTACKERBECAMEASHSPECIES
|
||||
return
|
||||
|
||||
BattleScript_EffectBattleBondStatIncrease::
|
||||
call BattleScript_AbilityPopUp
|
||||
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
||||
setstatchanger STAT_ATK, 1, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_EffectBattleBondStatIncreaseTrySpAtk
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectBattleBondStatIncreaseTrySpAtk
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_EffectBattleBondStatIncreaseTrySpAtk:
|
||||
setstatchanger STAT_SPATK, 1, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_EffectBattleBondStatIncreaseTrySpeed
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectBattleBondStatIncreaseTrySpeed
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_EffectBattleBondStatIncreaseTrySpeed:
|
||||
setstatchanger STAT_SPEED, 1, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_EffectBattleBondStatIncreaseRet
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectBattleBondStatIncreaseRet
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_EffectBattleBondStatIncreaseRet:
|
||||
return
|
||||
|
||||
BattleScript_DancerActivates::
|
||||
call BattleScript_AbilityPopUp
|
||||
waitmessage B_WAIT_TIME_SHORT
|
||||
|
||||
@ -725,7 +725,7 @@ struct BattleStruct
|
||||
u8 startingStatusDone:1;
|
||||
u8 terrainDone:1;
|
||||
u8 overworldWeatherDone:1;
|
||||
u8 obedienceResult:3;
|
||||
u8 unused:3;
|
||||
u8 isAtkCancelerForCalledMove:1; // Certain cases in atk canceler should only be checked once, when the original move is called, however others need to be checked the twice.
|
||||
u8 friskedAbility:1; // If identifies two mons, show the ability pop-up only once.
|
||||
u8 fickleBeamBoosted:1;
|
||||
@ -786,7 +786,7 @@ struct BattleStruct
|
||||
u8 hitSwitchTargetFailed:1;
|
||||
u8 effectsBeforeUsingMoveDone:1; // Mega Evo and Focus Punch/Shell Trap effects.
|
||||
u8 spriteIgnore0Hp:1;
|
||||
u8 battleBondTransformed[NUM_BATTLE_SIDES]; // Bitfield for each party.
|
||||
u8 battleBondBoost[NUM_BATTLE_SIDES]; // Bitfield for each party.
|
||||
u8 bonusCritStages[MAX_BATTLERS_COUNT]; // G-Max Chi Strike boosts crit stages of allies.
|
||||
u8 itemPartyIndex[MAX_BATTLERS_COUNT];
|
||||
u8 itemMoveIndex[MAX_BATTLERS_COUNT];
|
||||
@ -938,11 +938,11 @@ static inline bool32 IsBattleMoveRecoil(u32 move)
|
||||
// in include/constants/battle_script_commands.h
|
||||
struct BattleScripting
|
||||
{
|
||||
s32 painSplitHp;
|
||||
s32 unused1;
|
||||
s32 bideDmg;
|
||||
u8 multihitString[6];
|
||||
bool8 expOnCatch;
|
||||
u8 unused;
|
||||
u8 unused2;
|
||||
u8 animArg1;
|
||||
u8 animArg2;
|
||||
u16 savedStringId;
|
||||
|
||||
@ -425,6 +425,7 @@ extern const u8 BattleScript_GulpMissileGorging[];
|
||||
extern const u8 BattleScript_GulpMissileGulping[];
|
||||
extern const u8 BattleScript_GulpMissileFormChange[];
|
||||
extern const u8 BattleScript_BattleBondActivatesOnMoveEndAttacker[];
|
||||
extern const u8 BattleScript_EffectBattleBondStatIncrease[];
|
||||
extern const u8 BattleScript_DesolateLandActivates[];
|
||||
extern const u8 BattleScript_PrimordialSeaActivates[];
|
||||
extern const u8 BattleScript_PrimalWeatherBlocksMove[];
|
||||
|
||||
@ -349,13 +349,11 @@ bool32 IsSleepClauseEnabled();
|
||||
void ClearDamageCalcResults(void);
|
||||
u32 DoesDestinyBondFail(u32 battler);
|
||||
bool32 IsMoveEffectBlockedByTarget(u32 ability);
|
||||
u32 NumAffectedSpreadMoveTargets(void);
|
||||
bool32 IsPursuitTargetSet(void);
|
||||
void ClearPursuitValuesIfSet(u32 battler);
|
||||
void ClearPursuitValues(void);
|
||||
bool32 HasWeatherEffect(void);
|
||||
bool32 IsMovePowderBlocked(u32 battlerAtk, u32 battlerDef, u32 move);
|
||||
bool32 EmergencyExitCanBeTriggered(u32 battler);
|
||||
u32 RestoreWhiteHerbStats(u32 battler);
|
||||
bool32 HadMoreThanHalfHpNowDoesnt(u32 battler);
|
||||
|
||||
#endif // GUARD_BATTLE_UTIL_H
|
||||
|
||||
@ -157,6 +157,7 @@
|
||||
// In Gen4, it's 30%. In Gen5+ it has 11% to sleep, 9% chance to poison and 10% chance to paralyze.
|
||||
#define B_PICKUP_WILD GEN_LATEST // In Gen9+, Pickup allows its user to pickup its own used item at the end of the turn in wild battles.
|
||||
#define B_MAGIC_GUARD GEN_LATEST // In Gen4 only, Magic Guard ignores immobilization caused by paralysis
|
||||
#define B_BATTLE_BOND GEN_LATEST // In Gen9+, Battle Bond increases Atk, SpAtk and Speed by one stage, once per battle
|
||||
|
||||
// Item settings
|
||||
#define B_HP_BERRIES GEN_LATEST // In Gen4+, berries which restore HP activate immediately after HP drops to half. In Gen3, the effect occurs at the end of the turn.
|
||||
|
||||
@ -121,7 +121,6 @@ enum CmdVarious
|
||||
VARIOUS_INSTANT_HP_DROP,
|
||||
VARIOUS_CLEAR_STATUS,
|
||||
VARIOUS_RESTORE_PP,
|
||||
VARIOUS_TRY_ACTIVATE_MOXIE,
|
||||
VARIOUS_TRY_ACTIVATE_FELL_STINGER,
|
||||
VARIOUS_PLAY_MOVE_ANIMATION,
|
||||
VARIOUS_SET_LUCKY_CHANT,
|
||||
@ -168,7 +167,6 @@ enum CmdVarious
|
||||
VARIOUS_LOSE_TYPE,
|
||||
VARIOUS_TRY_ACTIVATE_SOULHEART,
|
||||
VARIOUS_TRY_ACTIVATE_RECEIVER,
|
||||
VARIOUS_TRY_ACTIVATE_BEAST_BOOST,
|
||||
VARIOUS_TRY_FRISK,
|
||||
VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED,
|
||||
VARIOUS_TRY_FAIRY_LOCK,
|
||||
@ -181,7 +179,6 @@ enum CmdVarious
|
||||
VARIOUS_JUMP_IF_ABSENT,
|
||||
VARIOUS_DESTROY_ABILITY_POPUP,
|
||||
VARIOUS_TOTEM_BOOST,
|
||||
VARIOUS_TRY_ACTIVATE_GRIM_NEIGH,
|
||||
VARIOUS_MOVEEND_ITEM_EFFECTS,
|
||||
VARIOUS_TERRAIN_SEED,
|
||||
VARIOUS_MAKE_INVISIBLE,
|
||||
@ -192,7 +189,6 @@ enum CmdVarious
|
||||
VARIOUS_TRY_TO_CLEAR_PRIMAL_WEATHER,
|
||||
VARIOUS_GET_ROTOTILLER_TARGETS,
|
||||
VARIOUS_JUMP_IF_NOT_ROTOTILLER_AFFECTED,
|
||||
VARIOUS_TRY_ACTIVATE_BATTLE_BOND,
|
||||
VARIOUS_CONSUME_BERRY,
|
||||
VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL,
|
||||
VARIOUS_JUMP_IF_SPECIES,
|
||||
@ -284,7 +280,7 @@ enum MoveEndEffects
|
||||
MOVEEND_RECOIL,
|
||||
MOVEEND_RAPID_SPIN,
|
||||
MOVEEND_ITEM_EFFECTS_ATTACKER,
|
||||
MOVEEND_MAGICIAN, // Occurs after final multi-hit strike, and after other items/abilities would activate
|
||||
MOVEEND_ABILITY_BLOCK,
|
||||
MOVEEND_SHEER_FORCE, // If move is Sheer Force affected, skip until Eject Pack
|
||||
MOVEEND_RED_CARD, // Red Card triggers before Eject Pack
|
||||
MOVEEND_EJECT_BUTTON,
|
||||
|
||||
@ -467,274 +467,273 @@
|
||||
#define STRINGID_FRISKACTIVATES 465
|
||||
#define STRINGID_UNNERVEENTERS 466
|
||||
#define STRINGID_HARVESTBERRY 467
|
||||
#define STRINGID_LASTABILITYRAISEDSTAT 468
|
||||
#define STRINGID_MAGICBOUNCEACTIVATES 469
|
||||
#define STRINGID_PROTEANTYPECHANGE 470
|
||||
#define STRINGID_SYMBIOSISITEMPASS 471
|
||||
#define STRINGID_STEALTHROCKDMG 472
|
||||
#define STRINGID_TOXICSPIKESABSORBED 473
|
||||
#define STRINGID_TOXICSPIKESPOISONED 474
|
||||
#define STRINGID_STICKYWEBSWITCHIN 475
|
||||
#define STRINGID_HEALINGWISHCAMETRUE 476
|
||||
#define STRINGID_HEALINGWISHHEALED 477
|
||||
#define STRINGID_LUNARDANCECAMETRUE 478
|
||||
#define STRINGID_CUSEDBODYDISABLED 479
|
||||
#define STRINGID_ATTACKERACQUIREDABILITY 480
|
||||
#define STRINGID_TARGETABILITYSTATLOWER 481
|
||||
#define STRINGID_TARGETSTATWONTGOHIGHER 482
|
||||
#define STRINGID_PKMNMOVEBOUNCEDABILITY 483
|
||||
#define STRINGID_IMPOSTERTRANSFORM 484
|
||||
#define STRINGID_ASSAULTVESTDOESNTALLOW 485
|
||||
#define STRINGID_GRAVITYPREVENTSUSAGE 486
|
||||
#define STRINGID_HEALBLOCKPREVENTSUSAGE 487
|
||||
#define STRINGID_NOTDONEYET 488
|
||||
#define STRINGID_STICKYWEBUSED 489
|
||||
#define STRINGID_QUASHSUCCESS 490
|
||||
#define STRINGID_PKMNBLEWAWAYTOXICSPIKES 491
|
||||
#define STRINGID_PKMNBLEWAWAYSTICKYWEB 492
|
||||
#define STRINGID_PKMNBLEWAWAYSTEALTHROCK 493
|
||||
#define STRINGID_IONDELUGEON 494
|
||||
#define STRINGID_TOPSYTURVYSWITCHEDSTATS 495
|
||||
#define STRINGID_TERRAINBECOMESMISTY 496
|
||||
#define STRINGID_TERRAINBECOMESGRASSY 497
|
||||
#define STRINGID_TERRAINBECOMESELECTRIC 498
|
||||
#define STRINGID_TERRAINBECOMESPSYCHIC 499
|
||||
#define STRINGID_TARGETELECTRIFIED 500
|
||||
#define STRINGID_MEGAEVOREACTING 501
|
||||
#define STRINGID_MEGAEVOEVOLVED 502
|
||||
#define STRINGID_DRASTICALLY 503
|
||||
#define STRINGID_SEVERELY 504
|
||||
#define STRINGID_INFESTATION 505
|
||||
#define STRINGID_NOEFFECTONTARGET 506
|
||||
#define STRINGID_BURSTINGFLAMESHIT 507
|
||||
#define STRINGID_BESTOWITEMGIVING 508
|
||||
#define STRINGID_THIRDTYPEADDED 509
|
||||
#define STRINGID_FELLFORFEINT 510
|
||||
#define STRINGID_POKEMONCANNOTUSEMOVE 511
|
||||
#define STRINGID_COVEREDINPOWDER 512
|
||||
#define STRINGID_POWDEREXPLODES 513
|
||||
#define STRINGID_BELCHCANTSELECT 514
|
||||
#define STRINGID_SPECTRALTHIEFSTEAL 515
|
||||
#define STRINGID_GRAVITYGROUNDING 516
|
||||
#define STRINGID_MISTYTERRAINPREVENTS 517
|
||||
#define STRINGID_GRASSYTERRAINHEALS 518
|
||||
#define STRINGID_ELECTRICTERRAINPREVENTS 519
|
||||
#define STRINGID_PSYCHICTERRAINPREVENTS 520
|
||||
#define STRINGID_SAFETYGOGGLESPROTECTED 521
|
||||
#define STRINGID_FLOWERVEILPROTECTED 522
|
||||
#define STRINGID_SWEETVEILPROTECTED 523
|
||||
#define STRINGID_AROMAVEILPROTECTED 524
|
||||
#define STRINGID_CELEBRATEMESSAGE 525
|
||||
#define STRINGID_USEDINSTRUCTEDMOVE 526
|
||||
#define STRINGID_THROATCHOPENDS 527
|
||||
#define STRINGID_PKMNCANTUSEMOVETHROATCHOP 528
|
||||
#define STRINGID_LASERFOCUS 529
|
||||
#define STRINGID_GEMACTIVATES 530
|
||||
#define STRINGID_BERRYDMGREDUCES 531
|
||||
#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_SENDCAUGHTMONPARTYORBOX 728
|
||||
#define STRINGID_PKMNSENTTOPCAFTERCATCH 729
|
||||
#define STRINGID_PKMNDYNAMAXED 730
|
||||
#define STRINGID_PKMNGIGANTAMAXED 731
|
||||
#define STRINGID_TIMETODYNAMAX 732
|
||||
#define STRINGID_TIMETOGIGANTAMAX 733
|
||||
#define STRINGID_MAGICBOUNCEACTIVATES 468
|
||||
#define STRINGID_PROTEANTYPECHANGE 469
|
||||
#define STRINGID_SYMBIOSISITEMPASS 470
|
||||
#define STRINGID_STEALTHROCKDMG 471
|
||||
#define STRINGID_TOXICSPIKESABSORBED 472
|
||||
#define STRINGID_TOXICSPIKESPOISONED 473
|
||||
#define STRINGID_STICKYWEBSWITCHIN 474
|
||||
#define STRINGID_HEALINGWISHCAMETRUE 475
|
||||
#define STRINGID_HEALINGWISHHEALED 476
|
||||
#define STRINGID_LUNARDANCECAMETRUE 477
|
||||
#define STRINGID_CUSEDBODYDISABLED 478
|
||||
#define STRINGID_ATTACKERACQUIREDABILITY 479
|
||||
#define STRINGID_TARGETABILITYSTATLOWER 480
|
||||
#define STRINGID_TARGETSTATWONTGOHIGHER 481
|
||||
#define STRINGID_PKMNMOVEBOUNCEDABILITY 482
|
||||
#define STRINGID_IMPOSTERTRANSFORM 483
|
||||
#define STRINGID_ASSAULTVESTDOESNTALLOW 484
|
||||
#define STRINGID_GRAVITYPREVENTSUSAGE 485
|
||||
#define STRINGID_HEALBLOCKPREVENTSUSAGE 486
|
||||
#define STRINGID_NOTDONEYET 487
|
||||
#define STRINGID_STICKYWEBUSED 488
|
||||
#define STRINGID_QUASHSUCCESS 489
|
||||
#define STRINGID_PKMNBLEWAWAYTOXICSPIKES 490
|
||||
#define STRINGID_PKMNBLEWAWAYSTICKYWEB 491
|
||||
#define STRINGID_PKMNBLEWAWAYSTEALTHROCK 492
|
||||
#define STRINGID_IONDELUGEON 493
|
||||
#define STRINGID_TOPSYTURVYSWITCHEDSTATS 494
|
||||
#define STRINGID_TERRAINBECOMESMISTY 495
|
||||
#define STRINGID_TERRAINBECOMESGRASSY 496
|
||||
#define STRINGID_TERRAINBECOMESELECTRIC 497
|
||||
#define STRINGID_TERRAINBECOMESPSYCHIC 498
|
||||
#define STRINGID_TARGETELECTRIFIED 499
|
||||
#define STRINGID_MEGAEVOREACTING 500
|
||||
#define STRINGID_MEGAEVOEVOLVED 501
|
||||
#define STRINGID_DRASTICALLY 502
|
||||
#define STRINGID_SEVERELY 503
|
||||
#define STRINGID_INFESTATION 504
|
||||
#define STRINGID_NOEFFECTONTARGET 505
|
||||
#define STRINGID_BURSTINGFLAMESHIT 506
|
||||
#define STRINGID_BESTOWITEMGIVING 507
|
||||
#define STRINGID_THIRDTYPEADDED 508
|
||||
#define STRINGID_FELLFORFEINT 509
|
||||
#define STRINGID_POKEMONCANNOTUSEMOVE 510
|
||||
#define STRINGID_COVEREDINPOWDER 511
|
||||
#define STRINGID_POWDEREXPLODES 512
|
||||
#define STRINGID_BELCHCANTSELECT 513
|
||||
#define STRINGID_SPECTRALTHIEFSTEAL 514
|
||||
#define STRINGID_GRAVITYGROUNDING 515
|
||||
#define STRINGID_MISTYTERRAINPREVENTS 516
|
||||
#define STRINGID_GRASSYTERRAINHEALS 517
|
||||
#define STRINGID_ELECTRICTERRAINPREVENTS 518
|
||||
#define STRINGID_PSYCHICTERRAINPREVENTS 519
|
||||
#define STRINGID_SAFETYGOGGLESPROTECTED 520
|
||||
#define STRINGID_FLOWERVEILPROTECTED 521
|
||||
#define STRINGID_SWEETVEILPROTECTED 522
|
||||
#define STRINGID_AROMAVEILPROTECTED 523
|
||||
#define STRINGID_CELEBRATEMESSAGE 524
|
||||
#define STRINGID_USEDINSTRUCTEDMOVE 525
|
||||
#define STRINGID_THROATCHOPENDS 526
|
||||
#define STRINGID_PKMNCANTUSEMOVETHROATCHOP 527
|
||||
#define STRINGID_LASERFOCUS 528
|
||||
#define STRINGID_GEMACTIVATES 529
|
||||
#define STRINGID_BERRYDMGREDUCES 530
|
||||
#define STRINGID_AIRBALLOONFLOAT 531
|
||||
#define STRINGID_AIRBALLOONPOP 532
|
||||
#define STRINGID_INCINERATEBURN 533
|
||||
#define STRINGID_BUGBITE 534
|
||||
#define STRINGID_ILLUSIONWOREOFF 535
|
||||
#define STRINGID_ATTACKERCUREDTARGETSTATUS 536
|
||||
#define STRINGID_ATTACKERLOSTFIRETYPE 537
|
||||
#define STRINGID_HEALERCURE 538
|
||||
#define STRINGID_SCRIPTINGABILITYSTATRAISE 539
|
||||
#define STRINGID_RECEIVERABILITYTAKEOVER 540
|
||||
#define STRINGID_PKNMABSORBINGPOWER 541
|
||||
#define STRINGID_NOONEWILLBEABLETORUNAWAY 542
|
||||
#define STRINGID_DESTINYKNOTACTIVATES 543
|
||||
#define STRINGID_CLOAKEDINAFREEZINGLIGHT 544
|
||||
#define STRINGID_CLEARAMULETWONTLOWERSTATS 545
|
||||
#define STRINGID_FERVENTWISHREACHED 546
|
||||
#define STRINGID_AIRLOCKACTIVATES 547
|
||||
#define STRINGID_PRESSUREENTERS 548
|
||||
#define STRINGID_DARKAURAENTERS 549
|
||||
#define STRINGID_FAIRYAURAENTERS 550
|
||||
#define STRINGID_AURABREAKENTERS 551
|
||||
#define STRINGID_COMATOSEENTERS 552
|
||||
#define STRINGID_SCREENCLEANERENTERS 553
|
||||
#define STRINGID_FETCHEDPOKEBALL 554
|
||||
#define STRINGID_BATTLERABILITYRAISEDSTAT 555
|
||||
#define STRINGID_ASANDSTORMKICKEDUP 556
|
||||
#define STRINGID_PKMNSWILLPERISHIN3TURNS 557
|
||||
#define STRINGID_ABILITYRAISEDSTATDRASTICALLY 558
|
||||
#define STRINGID_AURAFLAREDTOLIFE 559
|
||||
#define STRINGID_ASONEENTERS 560
|
||||
#define STRINGID_CURIOUSMEDICINEENTERS 561
|
||||
#define STRINGID_CANACTFASTERTHANKSTO 562
|
||||
#define STRINGID_MICLEBERRYACTIVATES 563
|
||||
#define STRINGID_PKMNSHOOKOFFTHETAUNT 564
|
||||
#define STRINGID_PKMNGOTOVERITSINFATUATION 565
|
||||
#define STRINGID_ITEMCANNOTBEREMOVED 566
|
||||
#define STRINGID_STICKYBARBTRANSFER 567
|
||||
#define STRINGID_PKMNBURNHEALED 568
|
||||
#define STRINGID_REDCARDACTIVATE 569
|
||||
#define STRINGID_EJECTBUTTONACTIVATE 570
|
||||
#define STRINGID_ATKGOTOVERINFATUATION 571
|
||||
#define STRINGID_TORMENTEDNOMORE 572
|
||||
#define STRINGID_HEALBLOCKEDNOMORE 573
|
||||
#define STRINGID_ATTACKERBECAMEFULLYCHARGED 574
|
||||
#define STRINGID_ATTACKERBECAMEASHSPECIES 575
|
||||
#define STRINGID_EXTREMELYHARSHSUNLIGHT 576
|
||||
#define STRINGID_EXTREMESUNLIGHTFADED 577
|
||||
#define STRINGID_MOVEEVAPORATEDINTHEHARSHSUNLIGHT 578
|
||||
#define STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED 579
|
||||
#define STRINGID_HEAVYRAIN 580
|
||||
#define STRINGID_HEAVYRAINLIFTED 581
|
||||
#define STRINGID_MOVEFIZZLEDOUTINTHEHEAVYRAIN 582
|
||||
#define STRINGID_NORELIEFROMHEAVYRAIN 583
|
||||
#define STRINGID_MYSTERIOUSAIRCURRENT 584
|
||||
#define STRINGID_STRONGWINDSDISSIPATED 585
|
||||
#define STRINGID_MYSTERIOUSAIRCURRENTBLOWSON 586
|
||||
#define STRINGID_ATTACKWEAKENEDBSTRONGWINDS 587
|
||||
#define STRINGID_STUFFCHEEKSCANTSELECT 588
|
||||
#define STRINGID_PKMNREVERTEDTOPRIMAL 589
|
||||
#define STRINGID_BUTPOKEMONCANTUSETHEMOVE 590
|
||||
#define STRINGID_BUTHOOPACANTUSEIT 591
|
||||
#define STRINGID_BROKETHROUGHPROTECTION 592
|
||||
#define STRINGID_ABILITYALLOWSONLYMOVE 593
|
||||
#define STRINGID_SWAPPEDABILITIES 594
|
||||
#define STRINGID_PASTELVEILPROTECTED 595
|
||||
#define STRINGID_PASTELVEILENTERS 596
|
||||
#define STRINGID_BATTLERTYPECHANGEDTO 597
|
||||
#define STRINGID_BOTHCANNOLONGERESCAPE 598
|
||||
#define STRINGID_CANTESCAPEDUETOUSEDMOVE 599
|
||||
#define STRINGID_PKMNBECAMEWEAKERTOFIRE 600
|
||||
#define STRINGID_ABOUTTOUSEPOLTERGEIST 601
|
||||
#define STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE 602
|
||||
#define STRINGID_NEUTRALIZINGGASENTERS 603
|
||||
#define STRINGID_NEUTRALIZINGGASOVER 604
|
||||
#define STRINGID_TARGETTOOHEAVY 605
|
||||
#define STRINGID_PKMNTOOKTARGETHIGH 606
|
||||
#define STRINGID_PKMNINSNAPTRAP 607
|
||||
#define STRINGID_METEORBEAMCHARGING 608
|
||||
#define STRINGID_HEATUPBEAK 609
|
||||
#define STRINGID_COURTCHANGE 610
|
||||
#define STRINGID_PLAYERLOSTTOENEMYTRAINER 611
|
||||
#define STRINGID_PLAYERPAIDPRIZEMONEY 612
|
||||
#define STRINGID_ZPOWERSURROUNDS 613
|
||||
#define STRINGID_ZMOVEUNLEASHED 614
|
||||
#define STRINGID_ZMOVERESETSSTATS 615
|
||||
#define STRINGID_ZMOVEALLSTATSUP 616
|
||||
#define STRINGID_ZMOVEZBOOSTCRIT 617
|
||||
#define STRINGID_ZMOVERESTOREHP 618
|
||||
#define STRINGID_ZMOVESTATUP 619
|
||||
#define STRINGID_ZMOVEHPTRAP 620
|
||||
#define STRINGID_ATTACKEREXPELLEDTHEPOISON 621
|
||||
#define STRINGID_ATTACKERSHOOKITSELFAWAKE 622
|
||||
#define STRINGID_ATTACKERBROKETHROUGHPARALYSIS 623
|
||||
#define STRINGID_ATTACKERHEALEDITSBURN 624
|
||||
#define STRINGID_ATTACKERMELTEDTHEICE 625
|
||||
#define STRINGID_TARGETTOUGHEDITOUT 626
|
||||
#define STRINGID_ATTACKERLOSTELECTRICTYPE 627
|
||||
#define STRINGID_ATTACKERSWITCHEDSTATWITHTARGET 628
|
||||
#define STRINGID_BEINGHITCHARGEDPKMNWITHPOWER 629
|
||||
#define STRINGID_SUNLIGHTACTIVATEDABILITY 630
|
||||
#define STRINGID_STATWASHEIGHTENED 631
|
||||
#define STRINGID_ELECTRICTERRAINACTIVATEDABILITY 632
|
||||
#define STRINGID_ABILITYWEAKENEDSURROUNDINGMONSSTAT 633
|
||||
#define STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN 634
|
||||
#define STRINGID_PKMNSABILITYPREVENTSABILITY 635
|
||||
#define STRINGID_PREPARESHELLTRAP 636
|
||||
#define STRINGID_SHELLTRAPDIDNTWORK 637
|
||||
#define STRINGID_SPIKESDISAPPEAREDFROMTEAM 638
|
||||
#define STRINGID_TOXICSPIKESDISAPPEAREDFROMTEAM 639
|
||||
#define STRINGID_STICKYWEBDISAPPEAREDFROMTEAM 640
|
||||
#define STRINGID_STEALTHROCKDISAPPEAREDFROMTEAM 641
|
||||
#define STRINGID_COULDNTFULLYPROTECT 642
|
||||
#define STRINGID_STOCKPILEDEFFECTWOREOFF 643
|
||||
#define STRINGID_PKMNREVIVEDREADYTOFIGHT 644
|
||||
#define STRINGID_ITEMRESTOREDSPECIESHEALTH 645
|
||||
#define STRINGID_ITEMCUREDSPECIESSTATUS 646
|
||||
#define STRINGID_ITEMRESTOREDSPECIESPP 647
|
||||
#define STRINGID_THUNDERCAGETRAPPED 648
|
||||
#define STRINGID_PKMNHURTBYFROSTBITE 649
|
||||
#define STRINGID_PKMNGOTFROSTBITE 650
|
||||
#define STRINGID_PKMNSITEMHEALEDFROSTBITE 651
|
||||
#define STRINGID_ATTACKERHEALEDITSFROSTBITE 652
|
||||
#define STRINGID_PKMNFROSTBITEHEALED 653
|
||||
#define STRINGID_PKMNFROSTBITEHEALED2 654
|
||||
#define STRINGID_PKMNFROSTBITEHEALEDBY 655
|
||||
#define STRINGID_MIRRORHERBCOPIED 656
|
||||
#define STRINGID_STARTEDSNOW 657
|
||||
#define STRINGID_SNOWCONTINUES 658
|
||||
#define STRINGID_SNOWSTOPPED 659
|
||||
#define STRINGID_SNOWWARNINGSNOW 660
|
||||
#define STRINGID_PKMNITEMMELTED 661
|
||||
#define STRINGID_ULTRABURSTREACTING 662
|
||||
#define STRINGID_ULTRABURSTCOMPLETED 663
|
||||
#define STRINGID_TEAMGAINEDEXP 664
|
||||
#define STRINGID_CURRENTMOVECANTSELECT 665
|
||||
#define STRINGID_TARGETISBEINGSALTCURED 666
|
||||
#define STRINGID_TARGETISHURTBYSALTCURE 667
|
||||
#define STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP 668
|
||||
#define STRINGID_SHARPSTEELFLOATS 669
|
||||
#define STRINGID_SHARPSTEELDMG 670
|
||||
#define STRINGID_PKMNBLEWAWAYSHARPSTEEL 671
|
||||
#define STRINGID_SHARPSTEELDISAPPEAREDFROMTEAM 672
|
||||
#define STRINGID_TEAMTRAPPEDWITHVINES 673
|
||||
#define STRINGID_PKMNHURTBYVINES 674
|
||||
#define STRINGID_TEAMCAUGHTINVORTEX 675
|
||||
#define STRINGID_PKMNHURTBYVORTEX 676
|
||||
#define STRINGID_TEAMSURROUNDEDBYFIRE 677
|
||||
#define STRINGID_PKMNBURNINGUP 678
|
||||
#define STRINGID_TEAMSURROUNDEDBYROCKS 679
|
||||
#define STRINGID_PKMNHURTBYROCKSTHROWN 680
|
||||
#define STRINGID_MOVEBLOCKEDBYDYNAMAX 681
|
||||
#define STRINGID_ZEROTOHEROTRANSFORMATION 682
|
||||
#define STRINGID_THETWOMOVESBECOMEONE 683
|
||||
#define STRINGID_ARAINBOWAPPEAREDONSIDE 684
|
||||
#define STRINGID_THERAINBOWDISAPPEARED 685
|
||||
#define STRINGID_WAITINGFORPARTNERSMOVE 686
|
||||
#define STRINGID_SEAOFFIREENVELOPEDSIDE 687
|
||||
#define STRINGID_HURTBYTHESEAOFFIRE 688
|
||||
#define STRINGID_THESEAOFFIREDISAPPEARED 689
|
||||
#define STRINGID_SWAMPENVELOPEDSIDE 690
|
||||
#define STRINGID_THESWAMPDISAPPEARED 691
|
||||
#define STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE 692
|
||||
#define STRINGID_HOSPITALITYRESTORATION 693
|
||||
#define STRINGID_ELECTROSHOTCHARGING 694
|
||||
#define STRINGID_ITEMWASUSEDUP 695
|
||||
#define STRINGID_ATTACKERLOSTITSTYPE 696
|
||||
#define STRINGID_SHEDITSTAIL 697
|
||||
#define STRINGID_CLOAKEDINAHARSHLIGHT 698
|
||||
#define STRINGID_SUPERSWEETAROMAWAFTS 699
|
||||
#define STRINGID_DIMENSIONSWERETWISTED 700
|
||||
#define STRINGID_BIZARREARENACREATED 701
|
||||
#define STRINGID_BIZARREAREACREATED 702
|
||||
#define STRINGID_TIDYINGUPCOMPLETE 703
|
||||
#define STRINGID_PKMNTERASTALLIZEDINTO 704
|
||||
#define STRINGID_BOOSTERENERGYACTIVATES 705
|
||||
#define STRINGID_FOGCREPTUP 706
|
||||
#define STRINGID_FOGISDEEP 707
|
||||
#define STRINGID_FOGLIFTED 708
|
||||
#define STRINGID_PKMNMADESHELLGLEAM 709
|
||||
#define STRINGID_FICKLEBEAMDOUBLED 710
|
||||
#define STRINGID_COMMANDERACTIVATES 711
|
||||
#define STRINGID_POKEFLUTECATCHY 712
|
||||
#define STRINGID_POKEFLUTE 713
|
||||
#define STRINGID_MONHEARINGFLUTEAWOKE 714
|
||||
#define STRINGID_SUNLIGHTISHARSH 715
|
||||
#define STRINGID_ITISHAILING 716
|
||||
#define STRINGID_ITISSNOWING 717
|
||||
#define STRINGID_ISCOVEREDWITHGRASS 718
|
||||
#define STRINGID_MISTSWIRLSAROUND 719
|
||||
#define STRINGID_ELECTRICCURRENTISRUNNING 720
|
||||
#define STRINGID_SEEMSWEIRD 721
|
||||
#define STRINGID_WAGGLINGAFINGER 722
|
||||
#define STRINGID_BLOCKEDBYSLEEPCLAUSE 723
|
||||
#define STRINGID_SUPEREFFECTIVETWOFOES 724
|
||||
#define STRINGID_NOTVERYEFFECTIVETWOFOES 725
|
||||
#define STRINGID_ITDOESNTAFFECTTWOFOES 726
|
||||
#define STRINGID_SENDCAUGHTMONPARTYORBOX 727
|
||||
#define STRINGID_PKMNSENTTOPCAFTERCATCH 728
|
||||
#define STRINGID_PKMNDYNAMAXED 729
|
||||
#define STRINGID_PKMNGIGANTAMAXED 730
|
||||
#define STRINGID_TIMETODYNAMAX 731
|
||||
#define STRINGID_TIMETOGIGANTAMAX 732
|
||||
|
||||
#define BATTLESTRINGS_COUNT 734
|
||||
#define BATTLESTRINGS_COUNT 733
|
||||
|
||||
// This is the string id that gBattleStringsTable starts with.
|
||||
// String ids before this (e.g. STRINGID_INTROMSG) are not in the table,
|
||||
|
||||
@ -12,6 +12,7 @@ enum GenConfigTag
|
||||
GEN_CONFIG_GALE_WINGS,
|
||||
GEN_CONFIG_HEAL_BELL_SOUNDPROOF,
|
||||
GEN_CONFIG_TELEPORT_BEHAVIOR,
|
||||
GEN_CONFIG_BATTLE_BOND,
|
||||
GEN_CONFIG_COUNT
|
||||
};
|
||||
|
||||
|
||||
@ -15,6 +15,7 @@ static const u8 sGenerationalChanges[GEN_CONFIG_COUNT] =
|
||||
[GEN_CONFIG_GALE_WINGS] = B_GALE_WINGS,
|
||||
[GEN_CONFIG_HEAL_BELL_SOUNDPROOF] = B_HEAL_BELL_SOUNDPROOF,
|
||||
[GEN_CONFIG_TELEPORT_BEHAVIOR] = B_TELEPORT_BEHAVIOR,
|
||||
[GEN_CONFIG_BATTLE_BOND] = B_BATTLE_BOND,
|
||||
};
|
||||
|
||||
#if TESTING
|
||||
|
||||
@ -631,7 +631,6 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] =
|
||||
[STRINGID_FRISKACTIVATES] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} frisked {B_DEF_NAME_WITH_PREFIX2} and found its {B_LAST_ITEM}!"),
|
||||
[STRINGID_UNNERVEENTERS] = COMPOUND_STRING("{B_DEF_TEAM1} team is too nervous to eat Berries!"),
|
||||
[STRINGID_HARVESTBERRY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} harvested its {B_LAST_ITEM}!"),
|
||||
[STRINGID_LASTABILITYRAISEDSTAT] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_LAST_ABILITY} raised its {B_BUFF1}!"),
|
||||
[STRINGID_MAGICBOUNCEACTIVATES] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} bounced the {B_ATK_NAME_WITH_PREFIX2} back!"),
|
||||
[STRINGID_PROTEANTYPECHANGE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY} transformed it into the {B_BUFF1} type!"),
|
||||
[STRINGID_SYMBIOSISITEMPASS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} passed its {B_LAST_ITEM} to {B_EFF_NAME_WITH_PREFIX2} through {B_LAST_ABILITY}!"),
|
||||
|
||||
@ -1153,6 +1153,85 @@ bool32 IsMoveNotAllowedInSkyBattles(u32 move)
|
||||
return (gBattleStruct->isSkyBattle && IsMoveSkyBattleBanned(gCurrentMove));
|
||||
}
|
||||
|
||||
u32 NumAffectedSpreadMoveTargets(void)
|
||||
{
|
||||
u32 targetCount = 1;
|
||||
|
||||
if (!IsDoubleSpreadMove())
|
||||
return targetCount;
|
||||
|
||||
targetCount = 0;
|
||||
for (u32 battler = 0; battler < gBattlersCount; battler++)
|
||||
{
|
||||
if (!(gBattleStruct->moveResultFlags[battler] & MOVE_RESULT_NO_EFFECT))
|
||||
targetCount++;
|
||||
}
|
||||
|
||||
return targetCount;
|
||||
}
|
||||
|
||||
u32 NumFaintedBattlersByAttacker(u32 battlerAtk)
|
||||
{
|
||||
u32 numMonsFainted = 0;
|
||||
|
||||
for (u32 battler = 0; battler < gBattlersCount; battler++)
|
||||
{
|
||||
if (battler == battlerAtk)
|
||||
continue;
|
||||
|
||||
if (IsBattlerTurnDamaged(battler) && !IsBattlerAlive(battler))
|
||||
numMonsFainted++;
|
||||
}
|
||||
|
||||
return numMonsFainted;
|
||||
}
|
||||
|
||||
bool32 IsMovePowderBlocked(u32 battlerAtk, u32 battlerDef, u32 move)
|
||||
{
|
||||
bool32 effect = FALSE;
|
||||
|
||||
if (IsPowderMove(move) && (battlerAtk != battlerDef))
|
||||
{
|
||||
if (B_POWDER_GRASS >= GEN_6
|
||||
&& (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS) || GetBattlerAbility(battlerDef) == ABILITY_OVERCOAT))
|
||||
{
|
||||
gBattlerAbility = battlerDef;
|
||||
RecordAbilityBattle(gBattlerTarget, ABILITY_OVERCOAT);
|
||||
effect = TRUE;
|
||||
}
|
||||
else if (GetBattlerHoldEffect(battlerDef, TRUE) == HOLD_EFFECT_SAFETY_GOGGLES)
|
||||
{
|
||||
RecordItemEffectBattle(battlerDef, HOLD_EFFECT_SAFETY_GOGGLES);
|
||||
gLastUsedItem = gBattleMons[battlerDef].item;
|
||||
effect = TRUE;
|
||||
}
|
||||
|
||||
if (effect)
|
||||
gBattlescriptCurrInstr = BattleScript_PowderMoveNoEffect;
|
||||
}
|
||||
|
||||
return effect;
|
||||
}
|
||||
|
||||
bool32 EmergencyExitCanBeTriggered(u32 battler)
|
||||
{
|
||||
u32 ability = GetBattlerAbility(battler);
|
||||
|
||||
if (ability != ABILITY_EMERGENCY_EXIT && ability != ABILITY_WIMP_OUT)
|
||||
return FALSE;
|
||||
|
||||
if (IsBattlerTurnDamaged(battler)
|
||||
&& IsBattlerAlive(battler)
|
||||
&& HadMoreThanHalfHpNowDoesnt(battler)
|
||||
&& (CanBattlerSwitch(battler) || !(gBattleTypeFlags & BATTLE_TYPE_TRAINER))
|
||||
&& !(gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
||||
&& CountUsablePartyMons(battler) > 0
|
||||
&& !(gStatuses3[battler] & STATUS3_SKY_DROPPED))
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void Cmd_attackcanceler(void)
|
||||
{
|
||||
CMD_ARGS();
|
||||
@ -6221,6 +6300,133 @@ static inline bool32 CanEjectPackTrigger(u32 battlerAtk, u32 battlerDef, u32 mov
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool32 HandleMoveEndAbilityBlock(u32 battlerAtk, u32 battlerDef, u32 move)
|
||||
{
|
||||
u32 effect = FALSE;
|
||||
u32 abilityAtk = GetBattlerAbility(battlerAtk);
|
||||
|
||||
switch (abilityAtk)
|
||||
{
|
||||
case ABILITY_MAGICIAN:
|
||||
if (move != MOVE_FLING && move != MOVE_NATURAL_GIFT
|
||||
&& gBattleMons[battlerAtk].item == ITEM_NONE
|
||||
&& gBattleMons[battlerDef].item != ITEM_NONE
|
||||
&& IsBattlerAlive(battlerAtk)
|
||||
&& IsBattlerTurnDamaged(battlerDef)
|
||||
&& CanStealItem(battlerAtk, battlerDef, gBattleMons[battlerDef].item)
|
||||
&& !gSpecialStatuses[battlerAtk].gemBoost // In base game, gems are consumed after magician would activate.
|
||||
&& !(gWishFutureKnock.knockedOffMons[GetBattlerSide(battlerDef)] & (1u << gBattlerPartyIndexes[battlerDef]))
|
||||
&& !DoesSubstituteBlockMove(battlerAtk, battlerDef, move)
|
||||
&& (GetBattlerAbility(battlerDef) != ABILITY_STICKY_HOLD || !IsBattlerAlive(battlerDef)))
|
||||
{
|
||||
StealTargetItem(battlerAtk, battlerDef);
|
||||
gBattleScripting.battler = gBattlerAbility = battlerAtk;
|
||||
gEffectBattler = battlerDef;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_MagicianActivates;
|
||||
gSpecialStatuses[battlerAtk].preventLifeOrbDamage = TRUE;
|
||||
effect = TRUE;
|
||||
}
|
||||
break;
|
||||
case ABILITY_MOXIE:
|
||||
case ABILITY_CHILLING_NEIGH:
|
||||
case ABILITY_AS_ONE_ICE_RIDER:
|
||||
case ABILITY_GRIM_NEIGH:
|
||||
case ABILITY_AS_ONE_SHADOW_RIDER:
|
||||
case ABILITY_BEAST_BOOST:
|
||||
{
|
||||
if (!IsBattlerAlive(battlerAtk) || NoAliveMonsForEitherParty())
|
||||
break;
|
||||
|
||||
u32 stat = STAT_ATK;
|
||||
u32 numMonsFainted = NumFaintedBattlersByAttacker(battlerAtk);
|
||||
|
||||
if (abilityAtk == ABILITY_BEAST_BOOST)
|
||||
stat = GetHighestStatId(battlerAtk);
|
||||
else if (abilityAtk == ABILITY_GRIM_NEIGH || abilityAtk == ABILITY_AS_ONE_SHADOW_RIDER)
|
||||
stat = STAT_SPATK;
|
||||
|
||||
if (numMonsFainted && CompareStat(battlerAtk, stat, MAX_STAT_STAGE, CMP_LESS_THAN))
|
||||
{
|
||||
gLastUsedAbility = abilityAtk;
|
||||
if (abilityAtk == ABILITY_AS_ONE_ICE_RIDER)
|
||||
gBattleScripting.abilityPopupOverwrite = gLastUsedAbility = ABILITY_CHILLING_NEIGH;
|
||||
else if (abilityAtk == ABILITY_AS_ONE_SHADOW_RIDER)
|
||||
gBattleScripting.abilityPopupOverwrite = gLastUsedAbility = ABILITY_GRIM_NEIGH;
|
||||
|
||||
SET_STATCHANGER(stat, numMonsFainted, FALSE);
|
||||
PREPARE_STAT_BUFFER(gBattleTextBuff1, stat);
|
||||
gBattleScripting.animArg1 = GET_STAT_BUFF_ID(stat) + (numMonsFainted > 1 ? STAT_ANIM_PLUS2 : STAT_ANIM_PLUS1);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_RaiseStatOnFaintingTarget;
|
||||
effect = TRUE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ABILITY_BATTLE_BOND:
|
||||
{
|
||||
if (!IsBattlerAlive(battlerAtk)
|
||||
|| NoAliveMonsForEitherParty()
|
||||
|| NumFaintedBattlersByAttacker(battlerAtk) == 0)
|
||||
break;
|
||||
|
||||
u32 side = GetBattlerSide(battlerAtk);
|
||||
|
||||
if (gBattleStruct->battleBondBoost[side] & (1u << gBattlerPartyIndexes[battlerAtk]))
|
||||
break;
|
||||
|
||||
|
||||
if (GetGenConfig(GEN_CONFIG_BATTLE_BOND) < GEN_9 && gBattleMons[battlerAtk].species == SPECIES_GRENINJA_BATTLE_BOND)
|
||||
{
|
||||
// TODO: Convert this to a proper FORM_CHANGE type.
|
||||
gLastUsedAbility = abilityAtk;
|
||||
gBattleStruct->battleBondBoost[side] |= 1u << gBattlerPartyIndexes[battlerAtk];
|
||||
PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[battlerAtk].species);
|
||||
gBattleStruct->changedSpecies[side][gBattlerPartyIndexes[battlerAtk]] = gBattleMons[battlerAtk].species;
|
||||
gBattleMons[battlerAtk].species = SPECIES_GRENINJA_ASH;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_BattleBondActivatesOnMoveEndAttacker;
|
||||
effect = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
u32 numStatBuffs = 0;
|
||||
if (CompareStat(battlerAtk, STAT_ATK, MAX_STAT_STAGE, CMP_LESS_THAN))
|
||||
{
|
||||
gBattleScripting.animArg1 = GET_STAT_BUFF_ID(STAT_ATK) + STAT_ANIM_PLUS1;
|
||||
numStatBuffs++;
|
||||
}
|
||||
if (CompareStat(battlerAtk, STAT_SPATK, MAX_STAT_STAGE, CMP_LESS_THAN))
|
||||
{
|
||||
gBattleScripting.animArg1 = GET_STAT_BUFF_ID(STAT_SPATK) + STAT_ANIM_PLUS1;
|
||||
numStatBuffs++;
|
||||
}
|
||||
if (CompareStat(battlerAtk, STAT_SPEED, MAX_STAT_STAGE, CMP_LESS_THAN))
|
||||
{
|
||||
gBattleScripting.animArg1 = GET_STAT_BUFF_ID(STAT_SPEED) + STAT_ANIM_PLUS1;
|
||||
numStatBuffs++;
|
||||
}
|
||||
|
||||
if (numStatBuffs > 0)
|
||||
{
|
||||
if (numStatBuffs > 1)
|
||||
gBattleScripting.animArg1 = STAT_ANIM_MULTIPLE_PLUS1;
|
||||
|
||||
gLastUsedAbility = abilityAtk;
|
||||
gBattlerAbility = battlerAtk;
|
||||
gBattleStruct->battleBondBoost[side] |= 1u << gBattlerPartyIndexes[battlerAtk];
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_EffectBattleBondStatIncrease;
|
||||
effect = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return effect;
|
||||
}
|
||||
|
||||
static void Cmd_moveend(void)
|
||||
{
|
||||
CMD_ARGS(u8 endMode, u8 endState);
|
||||
@ -7003,27 +7209,8 @@ static void Cmd_moveend(void)
|
||||
gBattleScripting.moveendState++;
|
||||
break;
|
||||
}
|
||||
case MOVEEND_MAGICIAN:
|
||||
if (GetBattlerAbility(gBattlerAttacker) == ABILITY_MAGICIAN
|
||||
&& gCurrentMove != MOVE_FLING && gCurrentMove != MOVE_NATURAL_GIFT
|
||||
&& gBattleMons[gBattlerAttacker].item == ITEM_NONE
|
||||
&& gBattleMons[gBattlerTarget].item != ITEM_NONE
|
||||
&& IsBattlerAlive(gBattlerAttacker)
|
||||
&& IsBattlerTurnDamaged(gBattlerTarget)
|
||||
&& CanStealItem(gBattlerAttacker, gBattlerTarget, gBattleMons[gBattlerTarget].item)
|
||||
&& !gSpecialStatuses[gBattlerAttacker].gemBoost // In base game, gems are consumed after magician would activate.
|
||||
&& !(gWishFutureKnock.knockedOffMons[GetBattlerSide(gBattlerTarget)] & (1u << gBattlerPartyIndexes[gBattlerTarget]))
|
||||
&& !DoesSubstituteBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove)
|
||||
&& (GetBattlerAbility(gBattlerTarget) != ABILITY_STICKY_HOLD || !IsBattlerAlive(gBattlerTarget)))
|
||||
{
|
||||
StealTargetItem(gBattlerAttacker, gBattlerTarget);
|
||||
gBattleScripting.battler = gBattlerAbility = gBattlerAttacker;
|
||||
gEffectBattler = gBattlerTarget;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_MagicianActivates;
|
||||
gSpecialStatuses[gBattlerAttacker].preventLifeOrbDamage = TRUE;
|
||||
effect = TRUE;
|
||||
}
|
||||
case MOVEEND_ABILITY_BLOCK:
|
||||
effect = HandleMoveEndAbilityBlock(gBattlerAttacker, gBattlerTarget, gCurrentMove);
|
||||
gBattleScripting.moveendState++;
|
||||
break;
|
||||
case MOVEEND_SHEER_FORCE:
|
||||
@ -9959,16 +10146,6 @@ static bool32 ChangeOrderTargetAfterAttacker(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static u32 CalculateBattlerPartyCount(u32 battler)
|
||||
{
|
||||
u32 count;
|
||||
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
|
||||
count = CalculatePlayerPartyCount();
|
||||
else
|
||||
count = CalculateEnemyPartyCount();
|
||||
return count;
|
||||
}
|
||||
|
||||
static void Cmd_various(void)
|
||||
{
|
||||
CMD_ARGS(u8 battler, u8 id);
|
||||
@ -10558,53 +10735,6 @@ static void Cmd_various(void)
|
||||
MarkBattlerForControllerExec(battler);
|
||||
break;
|
||||
}
|
||||
case VARIOUS_TRY_ACTIVATE_MOXIE: // and chilling neigh + as one ice rider
|
||||
{
|
||||
VARIOUS_ARGS();
|
||||
|
||||
u16 battlerAbility = GetBattlerAbility(battler);
|
||||
|
||||
if ((battlerAbility == ABILITY_MOXIE
|
||||
|| battlerAbility == ABILITY_CHILLING_NEIGH
|
||||
|| battlerAbility == ABILITY_AS_ONE_ICE_RIDER)
|
||||
&& HasAttackerFaintedTarget()
|
||||
&& !NoAliveMonsForEitherParty()
|
||||
&& CompareStat(gBattlerAttacker, STAT_ATK, MAX_STAT_STAGE, CMP_LESS_THAN))
|
||||
{
|
||||
SET_STATCHANGER(STAT_ATK, 1, FALSE);
|
||||
PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK);
|
||||
BattleScriptPush(cmd->nextInstr);
|
||||
gLastUsedAbility = battlerAbility;
|
||||
if (battlerAbility == ABILITY_AS_ONE_ICE_RIDER)
|
||||
gBattleScripting.abilityPopupOverwrite = gLastUsedAbility = ABILITY_CHILLING_NEIGH;
|
||||
gBattlescriptCurrInstr = BattleScript_RaiseStatOnFaintingTarget;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case VARIOUS_TRY_ACTIVATE_GRIM_NEIGH: // and as one shadow rider
|
||||
{
|
||||
VARIOUS_ARGS();
|
||||
|
||||
u16 battlerAbility = GetBattlerAbility(battler);
|
||||
|
||||
if ((battlerAbility == ABILITY_GRIM_NEIGH
|
||||
|| battlerAbility == ABILITY_AS_ONE_SHADOW_RIDER)
|
||||
&& HasAttackerFaintedTarget()
|
||||
&& !NoAliveMonsForEitherParty()
|
||||
&& CompareStat(gBattlerAttacker, STAT_SPATK, MAX_STAT_STAGE, CMP_LESS_THAN))
|
||||
{
|
||||
SET_STATCHANGER(STAT_SPATK, 1, FALSE);
|
||||
PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPATK);
|
||||
BattleScriptPush(cmd->nextInstr);
|
||||
gLastUsedAbility = battlerAbility;
|
||||
if (battlerAbility == ABILITY_AS_ONE_SHADOW_RIDER)
|
||||
gBattleScripting.abilityPopupOverwrite = gLastUsedAbility = ABILITY_GRIM_NEIGH;
|
||||
gBattlescriptCurrInstr = BattleScript_RaiseStatOnFaintingTarget;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case VARIOUS_TRY_ACTIVATE_RECEIVER: // Partner gets fainted's ally ability
|
||||
{
|
||||
VARIOUS_ARGS();
|
||||
@ -10623,24 +10753,6 @@ static void Cmd_various(void)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case VARIOUS_TRY_ACTIVATE_BEAST_BOOST:
|
||||
{
|
||||
VARIOUS_ARGS();
|
||||
|
||||
i = GetHighestStatId(battler);
|
||||
if (GetBattlerAbility(battler) == ABILITY_BEAST_BOOST
|
||||
&& HasAttackerFaintedTarget()
|
||||
&& !NoAliveMonsForEitherParty()
|
||||
&& CompareStat(gBattlerAttacker, i, MAX_STAT_STAGE, CMP_LESS_THAN))
|
||||
{
|
||||
SET_STATCHANGER(i, 1, FALSE);
|
||||
PREPARE_STAT_BUFFER(gBattleTextBuff1, i);
|
||||
BattleScriptPush(cmd->nextInstr);
|
||||
gBattlescriptCurrInstr = BattleScript_AttackerAbilityStatRaise;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case VARIOUS_TRY_ACTIVATE_SOULHEART:
|
||||
{
|
||||
VARIOUS_ARGS();
|
||||
@ -11486,25 +11598,6 @@ static void Cmd_various(void)
|
||||
}
|
||||
return;
|
||||
}
|
||||
// TODO: Convert this to a proper FORM_CHANGE type.
|
||||
case VARIOUS_TRY_ACTIVATE_BATTLE_BOND:
|
||||
{
|
||||
VARIOUS_ARGS();
|
||||
if (gBattleMons[gBattlerAttacker].species == SPECIES_GRENINJA_BATTLE_BOND
|
||||
&& HasAttackerFaintedTarget()
|
||||
&& CalculateBattlerPartyCount(gBattlerTarget) > 1
|
||||
&& !(gBattleStruct->battleBondTransformed[GetBattlerSide(gBattlerAttacker)] & (1u << gBattlerPartyIndexes[gBattlerAttacker])))
|
||||
{
|
||||
gBattleStruct->battleBondTransformed[GetBattlerSide(gBattlerAttacker)] |= 1u << gBattlerPartyIndexes[gBattlerAttacker];
|
||||
PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].species);
|
||||
gBattleStruct->changedSpecies[GetBattlerSide(gBattlerAttacker)][gBattlerPartyIndexes[gBattlerAttacker]] = gBattleMons[gBattlerAttacker].species;
|
||||
gBattleMons[gBattlerAttacker].species = SPECIES_GRENINJA_ASH;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_BattleBondActivatesOnMoveEndAttacker;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case VARIOUS_CONSUME_BERRY:
|
||||
{
|
||||
VARIOUS_ARGS(bool8 fromBattler);
|
||||
|
||||
@ -4160,12 +4160,12 @@ static inline uq4_12_t GetSupremeOverlordModifier(u32 battler)
|
||||
return UQ_4_12(1.0) + (PercentToUQ4_12(gBattleStruct->supremeOverlordCounter[battler] * 10));
|
||||
}
|
||||
|
||||
static inline bool32 HadMoreThanHalfHpNowDoesnt(u32 battler)
|
||||
bool32 HadMoreThanHalfHpNowDoesnt(u32 battler)
|
||||
{
|
||||
u32 cutoff = gBattleMons[battler].maxHP / 2;
|
||||
// Had more than half of hp before, now has less
|
||||
return (gBattleStruct->hpBefore[battler] > cutoff
|
||||
&& gBattleMons[battler].hp <= cutoff);
|
||||
return gBattleStruct->hpBefore[battler] > cutoff
|
||||
&& gBattleMons[battler].hp <= cutoff;
|
||||
}
|
||||
|
||||
#define ANIM_STAT_HP 0
|
||||
@ -6305,7 +6305,6 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
case ABILITY_OPPORTUNIST:
|
||||
if (gProtectStructs[battler].activateOpportunist == 2)
|
||||
{
|
||||
gBattleScripting.animArg1 = 0;
|
||||
gBattleScripting.battler = battler;
|
||||
gProtectStructs[battler].activateOpportunist--;
|
||||
ChooseStatBoostAnimation(battler);
|
||||
@ -12277,23 +12276,6 @@ bool32 IsMoveEffectBlockedByTarget(u32 ability)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u32 NumAffectedSpreadMoveTargets(void)
|
||||
{
|
||||
u32 targetCount = 1;
|
||||
|
||||
if (!IsDoubleSpreadMove())
|
||||
return targetCount;
|
||||
|
||||
targetCount = 0;
|
||||
for (u32 battler = 0; battler < gBattlersCount; battler++)
|
||||
{
|
||||
if (!(gBattleStruct->moveResultFlags[battler] & MOVE_RESULT_NO_EFFECT))
|
||||
targetCount++;
|
||||
}
|
||||
|
||||
return targetCount;
|
||||
}
|
||||
|
||||
bool32 IsPursuitTargetSet(void)
|
||||
{
|
||||
for (u32 battler = 0; battler < gBattlersCount; battler++)
|
||||
@ -12335,49 +12317,3 @@ bool32 HasWeatherEffect(void)
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 IsMovePowderBlocked(u32 battlerAtk, u32 battlerDef, u32 move)
|
||||
{
|
||||
bool32 effect = FALSE;
|
||||
|
||||
if (IsPowderMove(move) && (battlerAtk != battlerDef))
|
||||
{
|
||||
if (B_POWDER_GRASS >= GEN_6
|
||||
&& (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS) || GetBattlerAbility(battlerDef) == ABILITY_OVERCOAT))
|
||||
{
|
||||
gBattlerAbility = battlerDef;
|
||||
RecordAbilityBattle(gBattlerTarget, ABILITY_OVERCOAT);
|
||||
effect = TRUE;
|
||||
}
|
||||
else if (GetBattlerHoldEffect(battlerDef, TRUE) == HOLD_EFFECT_SAFETY_GOGGLES)
|
||||
{
|
||||
RecordItemEffectBattle(battlerDef, HOLD_EFFECT_SAFETY_GOGGLES);
|
||||
gLastUsedItem = gBattleMons[battlerDef].item;
|
||||
effect = TRUE;
|
||||
}
|
||||
|
||||
if (effect)
|
||||
gBattlescriptCurrInstr = BattleScript_PowderMoveNoEffect;
|
||||
}
|
||||
|
||||
return effect;
|
||||
}
|
||||
|
||||
bool32 EmergencyExitCanBeTriggered(u32 battler)
|
||||
{
|
||||
u32 ability = GetBattlerAbility(battler);
|
||||
|
||||
if (ability != ABILITY_EMERGENCY_EXIT && ability != ABILITY_WIMP_OUT)
|
||||
return FALSE;
|
||||
|
||||
if (IsBattlerTurnDamaged(battler)
|
||||
&& IsBattlerAlive(battler)
|
||||
&& HadMoreThanHalfHpNowDoesnt(battler)
|
||||
&& (CanBattlerSwitch(battler) || !(gBattleTypeFlags & BATTLE_TYPE_TRAINER))
|
||||
&& !(gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
||||
&& CountUsablePartyMons(battler) > 0
|
||||
&& !(gStatuses3[battler] & STATUS3_SKY_DROPPED))
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -6,26 +6,6 @@ ASSUMPTIONS
|
||||
ASSUME(!IsBattleMoveStatus(MOVE_WATER_GUN));
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Battle Bond does not transform species other than Greninja")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_BATTLE_BOND); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_WATER_GUN); SEND_OUT(opponent, 1); }
|
||||
} SCENE {
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("The opposing Wobbuffet fainted!");
|
||||
NONE_OF {
|
||||
ABILITY_POPUP(player, ABILITY_BATTLE_BOND);
|
||||
MESSAGE("Wobbuffet became fully charged due to its bond with its trainer!");
|
||||
}
|
||||
} THEN {
|
||||
EXPECT(player->species == SPECIES_WOBBUFFET);
|
||||
}
|
||||
}
|
||||
|
||||
// Battle Bond transforms the pokemon when fainting any battler(opposing or partner), unless it's the last pokemon and the battle ends.
|
||||
SINGLE_BATTLE_TEST("Battle Bond transforms player's Greninja - Singles")
|
||||
{
|
||||
@ -37,6 +17,7 @@ SINGLE_BATTLE_TEST("Battle Bond transforms player's Greninja - Singles")
|
||||
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 2; }
|
||||
|
||||
GIVEN {
|
||||
WITH_CONFIG(GEN_CONFIG_BATTLE_BOND, GEN_8);
|
||||
PLAYER(SPECIES_GRENINJA_BATTLE_BOND);
|
||||
if (monsCountPlayer == 2) {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
@ -84,6 +65,7 @@ SINGLE_BATTLE_TEST("Battle Bond transforms opponent's Greninja - Singles")
|
||||
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 2; }
|
||||
|
||||
GIVEN {
|
||||
WITH_CONFIG(GEN_CONFIG_BATTLE_BOND, GEN_8);
|
||||
OPPONENT(SPECIES_GRENINJA_BATTLE_BOND);
|
||||
if (monsCountOpponent == 2) {
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
@ -131,6 +113,7 @@ DOUBLE_BATTLE_TEST("Battle Bond transforms player's Greninja when fainting its A
|
||||
PARAMETRIZE {monsCountPlayer = 3; monsCountOpponent = 3; }
|
||||
|
||||
GIVEN {
|
||||
WITH_CONFIG(GEN_CONFIG_BATTLE_BOND, GEN_8);
|
||||
PLAYER(SPECIES_GRENINJA_BATTLE_BOND);
|
||||
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
|
||||
if (monsCountPlayer == 3) {
|
||||
@ -158,3 +141,51 @@ DOUBLE_BATTLE_TEST("Battle Bond transforms player's Greninja when fainting its A
|
||||
EXPECT(playerLeft->species == SPECIES_GRENINJA_ASH);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Battle Bond increases Atk, SpAtk and Speed by 1 stage (Gen9+)")
|
||||
{
|
||||
GIVEN {
|
||||
WITH_CONFIG(GEN_CONFIG_BATTLE_BOND, GEN_9);
|
||||
PLAYER(SPECIES_GRENINJA_BATTLE_BOND) { Ability(ABILITY_BATTLE_BOND); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_WATER_GUN); SEND_OUT(opponent, 1); }
|
||||
} SCENE {
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("The opposing Wobbuffet fainted!");
|
||||
ABILITY_POPUP(player, ABILITY_BATTLE_BOND);
|
||||
} THEN {
|
||||
EXPECT(player->species != SPECIES_GRENINJA_ASH);
|
||||
EXPECT_EQ(player->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1);
|
||||
EXPECT_EQ(player->statStages[STAT_SPATK], DEFAULT_STAT_STAGE + 1);
|
||||
EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 1);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Battle Bond increases a Stat even if only one can be increased (Gen9+)")
|
||||
{
|
||||
GIVEN {
|
||||
WITH_CONFIG(GEN_CONFIG_BATTLE_BOND, GEN_9);
|
||||
PLAYER(SPECIES_GRENINJA_BATTLE_BOND) { Ability(ABILITY_BATTLE_BOND); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_DRAGON_DANCE); }
|
||||
TURN { MOVE(player, MOVE_DRAGON_DANCE); }
|
||||
TURN { MOVE(player, MOVE_DRAGON_DANCE); }
|
||||
TURN { MOVE(player, MOVE_DRAGON_DANCE); }
|
||||
TURN { MOVE(player, MOVE_DRAGON_DANCE); }
|
||||
TURN { MOVE(player, MOVE_DRAGON_DANCE); }
|
||||
TURN { MOVE(player, MOVE_WATER_GUN); SEND_OUT(opponent, 1); }
|
||||
} SCENE {
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("The opposing Wobbuffet fainted!");
|
||||
ABILITY_POPUP(player, ABILITY_BATTLE_BOND);
|
||||
} THEN {
|
||||
EXPECT(player->species != SPECIES_GRENINJA_ASH);
|
||||
EXPECT_EQ(player->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 6);
|
||||
EXPECT_EQ(player->statStages[STAT_SPATK], DEFAULT_STAT_STAGE + 1);
|
||||
EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 6);
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,19 +19,19 @@ SINGLE_BATTLE_TEST("Beast Boost boosts the most proficient stat when knocking ou
|
||||
ABILITY_POPUP(player, ABILITY_BEAST_BOOST);
|
||||
switch(i) {
|
||||
case 0:
|
||||
MESSAGE("Nihilego's Beast Boost raised its Attack!");
|
||||
MESSAGE("Nihilego's Attack rose!");
|
||||
break;
|
||||
case 1:
|
||||
MESSAGE("Nihilego's Beast Boost raised its Defense!");
|
||||
MESSAGE("Nihilego's Defense rose!");
|
||||
break;
|
||||
case 2:
|
||||
MESSAGE("Nihilego's Beast Boost raised its Sp. Atk!");
|
||||
MESSAGE("Nihilego's Sp. Atk rose!");
|
||||
break;
|
||||
case 3:
|
||||
MESSAGE("Nihilego's Beast Boost raised its Sp. Def!");
|
||||
MESSAGE("Nihilego's Sp. Def rose!");
|
||||
break;
|
||||
case 4:
|
||||
MESSAGE("Nihilego's Beast Boost raised its Speed!");
|
||||
MESSAGE("Nihilego's Speed rose!");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -16,22 +16,16 @@ DOUBLE_BATTLE_TEST("Grim Neigh raises Sp. Attack by one stage after directly cau
|
||||
} WHEN {
|
||||
TURN { MOVE(playerLeft, MOVE_DISCHARGE); SEND_OUT(opponentLeft, 2); }
|
||||
} SCENE {
|
||||
int i;
|
||||
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_DISCHARGE, playerLeft);
|
||||
for (i = 0; i < 3; i++) {
|
||||
ONE_OF {
|
||||
MESSAGE("Snorunt fainted!");
|
||||
MESSAGE("The opposing Glalie fainted!");
|
||||
MESSAGE("The opposing Abra fainted!");
|
||||
}
|
||||
ABILITY_POPUP(playerLeft, abilityPopUp);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft);
|
||||
if (species == SPECIES_SPECTRIER)
|
||||
MESSAGE("Spectrier's Grim Neigh raised its Sp. Atk!");
|
||||
else
|
||||
MESSAGE("Calyrex's Grim Neigh raised its Sp. Atk!");
|
||||
}
|
||||
MESSAGE("The opposing Glalie fainted!");
|
||||
MESSAGE("Snorunt fainted!");
|
||||
MESSAGE("The opposing Abra fainted!");
|
||||
ABILITY_POPUP(playerLeft, abilityPopUp);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft);
|
||||
if (species == SPECIES_SPECTRIER)
|
||||
MESSAGE("Spectrier's Sp. Atk drastically rose!");
|
||||
else
|
||||
MESSAGE("Calyrex's Sp. Atk drastically rose!");
|
||||
} THEN {
|
||||
EXPECT_EQ(playerLeft->statStages[STAT_SPATK], DEFAULT_STAT_STAGE + 3);
|
||||
}
|
||||
@ -98,9 +92,9 @@ DOUBLE_BATTLE_TEST("Grim Neigh does not increase damage done by the same move th
|
||||
ABILITY_POPUP(playerLeft, abilityPopUp);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft);
|
||||
if (species == SPECIES_SPECTRIER)
|
||||
MESSAGE("Spectrier's Grim Neigh raised its Sp. Atk!");
|
||||
MESSAGE("Spectrier's Sp. Atk rose!");
|
||||
else
|
||||
MESSAGE("Calyrex's Grim Neigh raised its Sp. Atk!");
|
||||
MESSAGE("Calyrex's Sp. Atk rose!");
|
||||
} THEN {
|
||||
EXPECT_EQ(playerLeft->statStages[STAT_SPATK], DEFAULT_STAT_STAGE + 1);
|
||||
EXPECT_EQ(damage[0], damage[1]);
|
||||
|
||||
@ -17,24 +17,18 @@ DOUBLE_BATTLE_TEST("Moxie/Chilling Neigh raises Attack by one stage after direct
|
||||
} WHEN {
|
||||
TURN { MOVE(playerLeft, MOVE_EARTHQUAKE); SEND_OUT(opponentLeft, 2); }
|
||||
} SCENE {
|
||||
int i;
|
||||
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, playerLeft);
|
||||
for (i = 0; i < 3; i++) {
|
||||
ONE_OF {
|
||||
MESSAGE("Snorunt fainted!");
|
||||
MESSAGE("The opposing Glalie fainted!");
|
||||
MESSAGE("The opposing Abra fainted!");
|
||||
}
|
||||
ABILITY_POPUP(playerLeft, abilityPopUp);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft);
|
||||
if (species == SPECIES_SALAMENCE)
|
||||
MESSAGE("Salamence's Moxie raised its Attack!");
|
||||
else if (species == SPECIES_GLASTRIER)
|
||||
MESSAGE("Glastrier's Chilling Neigh raised its Attack!");
|
||||
else
|
||||
MESSAGE("Calyrex's Chilling Neigh raised its Attack!");
|
||||
}
|
||||
MESSAGE("The opposing Glalie fainted!");
|
||||
MESSAGE("Snorunt fainted!");
|
||||
MESSAGE("The opposing Abra fainted!");
|
||||
ABILITY_POPUP(playerLeft, abilityPopUp);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft);
|
||||
if (species == SPECIES_SALAMENCE)
|
||||
MESSAGE("Salamence's Attack drastically rose!");
|
||||
else if (species == SPECIES_GLASTRIER)
|
||||
MESSAGE("Glastrier's Attack drastically rose!");
|
||||
else
|
||||
MESSAGE("Calyrex's Attack drastically rose!");
|
||||
} THEN {
|
||||
EXPECT_EQ(playerLeft->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 3);
|
||||
}
|
||||
@ -140,11 +134,11 @@ DOUBLE_BATTLE_TEST("Moxie/Chilling Neigh does not increase damage done by the sa
|
||||
ABILITY_POPUP(playerLeft, abilityPopUp);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft);
|
||||
if (species == SPECIES_SALAMENCE)
|
||||
MESSAGE("Salamence's Moxie raised its Attack!");
|
||||
MESSAGE("Salamence's Attack rose!");
|
||||
else if (species == SPECIES_GLASTRIER)
|
||||
MESSAGE("Glastrier's Chilling Neigh raised its Attack!");
|
||||
MESSAGE("Glastrier's Attack rose!");
|
||||
else
|
||||
MESSAGE("Calyrex's Chilling Neigh raised its Attack!");
|
||||
MESSAGE("Calyrex's Attack rose!");
|
||||
} THEN {
|
||||
EXPECT_EQ(playerLeft->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1);
|
||||
EXPECT_EQ(damage[0], damage[1]);
|
||||
|
||||
@ -401,6 +401,7 @@ SINGLE_BATTLE_TEST("Dynamax: Dynamaxed Pokemon that changes forms does not gain
|
||||
{
|
||||
u16 capturedHP, finalHP;
|
||||
GIVEN {
|
||||
WITH_CONFIG(GEN_CONFIG_BATTLE_BOND, GEN_8);
|
||||
PLAYER(SPECIES_GRENINJA_BATTLE_BOND) { Ability(ABILITY_BATTLE_BOND); HP(100); Speed(100); }
|
||||
OPPONENT(SPECIES_CATERPIE) { HP(1); Speed(1000); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(10); }
|
||||
@ -1556,7 +1557,7 @@ SINGLE_BATTLE_TEST("Dynamax: Moxie clones can be triggered by Max Moves fainting
|
||||
} SCENE {
|
||||
MESSAGE("The opposing Wobbuffet fainted!");
|
||||
ABILITY_POPUP(player, ABILITY_MOXIE);
|
||||
MESSAGE("Gyarados's Moxie raised its Attack!");
|
||||
MESSAGE("Gyarados's Attack rose!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -67,7 +67,7 @@ TEST("Move names fit on Contest Screen")
|
||||
TEST("Move names fit on TMs & HMs Bag Screen")
|
||||
{
|
||||
u32 i;
|
||||
const u32 fontId = FONT_NARROWER, widthPx = 61;
|
||||
const u32 fontId = FONT_NARROWER, widthPx = 61;
|
||||
u32 move = MOVE_NONE;
|
||||
for (i = 1; i < MOVES_COUNT; i++)
|
||||
{
|
||||
@ -713,7 +713,6 @@ TEST("Battle strings fit on the battle message window")
|
||||
case STRINGID_TARGETABILITYSTATRAISE:
|
||||
case STRINGID_TARGETSSTATWASMAXEDOUT:
|
||||
case STRINGID_ATTACKERABILITYSTATRAISE:
|
||||
case STRINGID_LASTABILITYRAISEDSTAT:
|
||||
case STRINGID_TARGETABILITYSTATLOWER:
|
||||
case STRINGID_SCRIPTINGABILITYSTATRAISE:
|
||||
case STRINGID_BATTLERABILITYRAISEDSTAT:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user