Misc style and whitespace cleanup (#8681)

This commit is contained in:
grintoul 2026-01-02 17:01:43 +00:00 committed by GitHub
parent d214d178f3
commit e82ed111ba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
221 changed files with 1081 additions and 1079 deletions

View File

@ -2364,26 +2364,26 @@
.4byte \minutes
.endm
@ When OW_USE_FAKE_RTC is true, adds a specified number of days to the time.
@ When OW_USE_FAKE_RTC is true, adds a specified number of days to the time.
.macro adddays days:req
callnative ScrCmd_adddays, requests_effects=1
.4byte \days
.endm
@ When OW_USE_FAKE_RTC is true, adds a specified number of days, hours, and minutes to the time.
@ When OW_USE_FAKE_RTC is true, adds a specified number of days, hours, and minutes to the time.
.macro addhours hours:req
callnative ScrCmd_addhours, requests_effects=1
.4byte \hours
.endm
@ When OW_USE_FAKE_RTC is true, adds a specified number of days, hours, and minutes to the time.
@ When OW_USE_FAKE_RTC is true, adds a specified number of days, hours, and minutes to the time.
.macro addminutes minutes:req
callnative ScrCmd_addminutes, requests_effects=1
.4byte \minutes
.endm
@ Forwards the time to a specified hour and minute.
@ This causes the time to go to the next day if the time has already been past.
@ Forwards the time to a specified hour and minute.
@ This causes the time to go to the next day if the time has already been past.
.macro fwdtime hours:req, minutes:req
callnative ScrCmd_fwdtime, requests_effects=1
.4byte \hours

View File

@ -399,4 +399,4 @@ gFieldEffectScript_RockClimbDust:: @ 82DBB28
gFieldEffectScript_ORASDowse::
field_eff_callnative FldEff_ORASDowsing
field_eff_end

View File

@ -616,7 +616,7 @@ struct EventStates
u32 arenaTurn:8;
enum BattleSide battlerSide:4;
enum BattlerId moveEndBattler:4;
enum FirstTurnEventsStates beforeFristTurn:8;
enum FirstTurnEventsStates beforeFirstTurn:8;
enum FaintedActions faintedAction:8;
enum BattlerId faintedActionBattler:4;
enum MoveSuccessOrder atkCanceler:8;

View File

@ -370,7 +370,7 @@ static void OpponentHandleDrawTrainerPic(u32 battler)
{
s16 xPos;
u32 trainerPicId;
// Sets Multibattle test opponent sprites to not be Hiker
if (IsMultibattleTest())
{
@ -391,7 +391,7 @@ static void OpponentHandleDrawTrainerPic(u32 battler)
else
{
trainerPicId = OpponentGetTrainerPicId(battler);
if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS) && !BATTLE_TWO_VS_ONE_OPPONENT)
{
if ((GetBattlerPosition(battler) & BIT_FLANK) != 0) // second mon

View File

@ -3735,7 +3735,7 @@ static void DoBattleIntro(void)
case BATTLE_INTRO_STATE_SET_DEX_AND_BATTLE_VARS:
if (!gBattleControllerExecFlags)
{
gBattleStruct->eventState.beforeFristTurn = 0;
gBattleStruct->eventState.beforeFirstTurn = 0;
gBattleStruct->switchInBattlerCounter = 0;
Ai_InitPartyStruct(); // Save mons party counts, and first 2/4 mons on the battlefield.
@ -3773,7 +3773,7 @@ static void TryDoEventsBeforeFirstTurn(void)
if (gBattleControllerExecFlags)
return;
switch (gBattleStruct->eventState.beforeFristTurn)
switch (gBattleStruct->eventState.beforeFirstTurn)
{
case FIRST_TURN_EVENTS_START:
// Set invalid mons as absent(for example when starting a double battle with only one pokemon).
@ -3823,20 +3823,20 @@ static void TryDoEventsBeforeFirstTurn(void)
SwapTurnOrder(i, j);
}
}
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
break;
case FIRST_TURN_EVENTS_OVERWORLD_WEATHER:
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
if (TryFieldEffects(FIELD_EFFECT_OVERWORLD_WEATHER))
return;
break;
case FIRST_TURN_EVENTS_TERRAIN:
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
if (TryFieldEffects(FIELD_EFFECT_OVERWORLD_TERRAIN))
return;
break;
case FIRST_TURN_EVENTS_STARTING_STATUS:
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
if (TryFieldEffects(FIELD_EFFECT_TRAINER_STATUSES))
return;
break;
@ -3851,7 +3851,7 @@ static void TryDoEventsBeforeFirstTurn(void)
}
}
memset(gQueuedStatBoosts, 0, sizeof(gQueuedStatBoosts)); // erase all totem boosts for Mirror Herb and Opportunist
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
break;
case FIRST_TURN_EVENTS_NEUTRALIZING_GAS:
while (gBattleStruct->switchInBattlerCounter < gBattlersCount) // From fastest to slowest
@ -3861,7 +3861,7 @@ static void TryDoEventsBeforeFirstTurn(void)
return;
}
gBattleStruct->switchInBattlerCounter = 0;
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
break;
case FIRST_TURN_EVENTS_SWITCH_IN_ABILITIES:
while (gBattleStruct->switchInBattlerCounter < gBattlersCount) // From fastest to slowest
@ -3878,7 +3878,7 @@ static void TryDoEventsBeforeFirstTurn(void)
return;
}
gBattleStruct->switchInBattlerCounter = 0;
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
break;
case FIRST_TURN_EVENTS_ITEM_EFFECTS:
while (gBattleStruct->switchInBattlerCounter < gBattlersCount) // From fastest to slowest
@ -3888,7 +3888,7 @@ static void TryDoEventsBeforeFirstTurn(void)
return;
}
gBattleStruct->switchInBattlerCounter = 0;
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
break;
case FIRST_TURN_EVENTS_WHITE_HERB:
while (gBattleStruct->switchInBattlerCounter < gBattlersCount) // From fastest to slowest
@ -3898,7 +3898,7 @@ static void TryDoEventsBeforeFirstTurn(void)
return;
}
gBattleStruct->switchInBattlerCounter = 0;
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
break;
case FIRST_TURN_EVENTS_OPPORTUNIST:
while (gBattleStruct->switchInBattlerCounter < gBattlersCount) // From fastest to slowest
@ -3908,7 +3908,7 @@ static void TryDoEventsBeforeFirstTurn(void)
return;
}
gBattleStruct->switchInBattlerCounter = 0;
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
break;
case FIRST_TURN_EVENTS_MIRROR_HERB:
while (gBattleStruct->switchInBattlerCounter < gBattlersCount) // From fastest to slowest
@ -3918,10 +3918,10 @@ static void TryDoEventsBeforeFirstTurn(void)
return;
}
gBattleStruct->switchInBattlerCounter = 0;
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
break;
case FIRST_TURN_EVENTS_EJECT_PACK:
gBattleStruct->eventState.beforeFristTurn++;
gBattleStruct->eventState.beforeFirstTurn++;
if (TrySwitchInEjectPack(FIRST_TURN))
return;
break;
@ -3960,7 +3960,7 @@ static void TryDoEventsBeforeFirstTurn(void)
if ((i = ShouldDoTrainerSlide(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), TRAINER_SLIDE_BEFORE_FIRST_TURN)))
BattleScriptExecute(i == 1 ? BattleScript_TrainerASlideMsgEnd2 : BattleScript_TrainerBSlideMsgEnd2);
gBattleStruct->eventState.beforeFristTurn = 0;
gBattleStruct->eventState.beforeFirstTurn = 0;
break;
}
}

View File

@ -4702,7 +4702,7 @@ static void Cmd_getexp(void)
if ((holdEffect == HOLD_EFFECT_EXP_SHARE || IsGen6ExpShareEnabled())
&& (B_SPLIT_EXP < GEN_6 || gBattleStruct->battlerExpReward == 0)) // only give exp share bonus in later gens if the mon wasn't sent out
{
gBattleStruct->battlerExpReward += GetSoftLevelCapExpValue(gPlayerParty[*expMonId].level, gBattleStruct->expShareExpValue);;
gBattleStruct->battlerExpReward += GetSoftLevelCapExpValue(gPlayerParty[*expMonId].level, gBattleStruct->expShareExpValue);
}
ApplyExperienceMultipliers(&gBattleStruct->battlerExpReward, *expMonId, gBattlerFainted);

View File

@ -2446,7 +2446,7 @@ static bool8 Mugshot_WaitPlayerSlide(struct Task *task)
else
{
return FALSE;
}
}
}
else
{
@ -2468,7 +2468,7 @@ static bool8 Mugshot_WaitPlayerSlide(struct Task *task)
else
{
return FALSE;
}
}
}
return FALSE;
}
@ -2634,7 +2634,7 @@ static void Mugshots_CreateTrainerPics(struct Task *task)
task->tPlayerSpriteId = CreateTrainerSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender),
DISPLAY_WIDTH + 32,
106,
0, NULL);
0, NULL);
opponentSpriteA = &gSprites[task->tOpponentSpriteAId];
playerSprite = &gSprites[task->tPlayerSpriteId];

View File

@ -2086,7 +2086,7 @@ static void Debug_Display_ItemInfo(u32 itemId, u32 digit, u8 windowId)
else if (CheckIfItemIsTMHMOrEvolutionStone(itemId) == 1)
{
end = StringCopy(end, COMPOUND_STRING(" None"));
}
}
WrapFontIdToFit(gStringVar1, end, DEBUG_MENU_FONT, WindowWidthPx(windowId));
StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15);

View File

@ -6,7 +6,7 @@
.global FastUnsafeCopy32
.type FastUnsafeCopy32, %function
@ Word aligned, 32-byte copy
@ This function WILL overwrite your buffer, so make sure it is at least 32 bytes larger than the desired size.
FastUnsafeCopy32:
@ -18,10 +18,10 @@ FastUnsafeCopy32:
bgt .Lloop_32
pop {r4-r10}
bx lr
@ Credit to: luckytyphlosion as it's his implementation
.section .text @Copied to stack on run-time
.align 2
@ -126,6 +126,6 @@ LZ77_EightBlockLoop_HandleLoop:
LZ77_Done:
pop {r4, r5, r6, lr}
bx lr
.global LZ77UnCompWRAMOptimized_end
LZ77UnCompWRAMOptimized_end:

View File

@ -226,7 +226,7 @@ static void TurnNPCIntoFollower(u32 localId, u32 followerFlags, u32 setScript, c
SetFollowerNPCData(FNPC_DATA_COME_OUT_DOOR, FNPC_DOOR_NONE);
if (FollowerNPCHasRunningFrames())
followerFlags |= FOLLOWER_NPC_FLAG_HAS_RUNNING_FRAMES;
SetFollowerNPCData(FNPC_DATA_FOLLOWER_FLAGS, followerFlags);
// If the player is biking and the follower flags prohibit biking, force the player to dismount the bike.
@ -810,7 +810,7 @@ void CreateFollowerNPC(u32 gfx, u32 followerFlags, const u8 *scriptPtr)
{
if (PlayerHasFollowerNPC())
return;
struct ObjectEvent *player = &gObjectEvents[gPlayerAvatar.objectEventId];
struct ObjectEvent *follower;
struct ObjectEventTemplate npc =
@ -827,7 +827,7 @@ void CreateFollowerNPC(u32 gfx, u32 followerFlags, const u8 *scriptPtr)
follower = &gObjectEvents[GetFollowerNPCData(FNPC_DATA_OBJ_ID)];
follower->movementType = MOVEMENT_TYPE_NONE;
gSprites[follower->spriteId].callback = MovementType_None;
SetFollowerNPCData(FNPC_DATA_IN_PROGRESS, TRUE);
SetFollowerNPCData(FNPC_DATA_GFX_ID, follower->graphicsId);
SetFollowerNPCData(FNPC_DATA_SURF_BLOB, FNPC_SURF_BLOB_NONE);
@ -835,7 +835,7 @@ void CreateFollowerNPC(u32 gfx, u32 followerFlags, const u8 *scriptPtr)
SetFollowerNPCScriptPointer(scriptPtr);
if (FollowerNPCHasRunningFrames())
followerFlags |= FOLLOWER_NPC_FLAG_HAS_RUNNING_FRAMES;
SetFollowerNPCData(FNPC_DATA_FOLLOWER_FLAGS, followerFlags);
// If the player is biking and the follower flags prohibit biking, force the player to dismount the bike.
@ -887,7 +887,7 @@ u32 DetermineFollowerNPCState(struct ObjectEvent *follower, u32 state, u32 direc
// Follower won't move if player is forced back onto the same tile.
if (GetFollowerNPCData(FNPC_DATA_FORCED_MOVEMENT) == FNPC_FORCED_STAY)
return MOVEMENT_ACTION_NONE;
GetXYCoordsPlayerMovementDest(playerMoveDirection, &playerDestX, &playerDestY);
newPlayerMB = MapGridGetMetatileBehaviorAt(playerDestX, playerDestY);
@ -1863,7 +1863,7 @@ void ScriptHideNPCFollower(struct ScriptContext *ctx)
{
if (!FNPC_ENABLE_NPC_FOLLOWERS || !PlayerHasFollowerNPC())
return;
u32 walkSpeed = ScriptReadByte(ctx);
struct ObjectEvent *npc = &gObjectEvents[GetFollowerNPCObjectId()];
@ -1893,7 +1893,7 @@ void ScriptChangeFollowerNPCBattlePartner(struct ScriptContext *ctx)
{
if (!FNPC_ENABLE_NPC_FOLLOWERS || !PlayerHasFollowerNPC())
return;
u32 newBattlePartner = ScriptReadHalfword(ctx);
SetFollowerNPCData(FNPC_DATA_BATTLE_PARTNER, newBattlePartner);

View File

@ -713,7 +713,7 @@ static void Task_FossilFallAndSink(u8 taskId)
FieldEffectFreePaletteIfUnused(gSprites[sFallingFossil->spriteId].oam.paletteNum);
gSprites[sFallingFossil->spriteId].inUse = TRUE;
DestroySprite(&gSprites[sFallingFossil->spriteId]);
FREE_AND_SET_NULL(sFallingFossil->disintegrateRand);;
FREE_AND_SET_NULL(sFallingFossil->disintegrateRand);
FREE_AND_SET_NULL(sFallingFossil->frameImage);
FREE_AND_SET_NULL(sFallingFossil->frameImageTiles);
FREE_AND_SET_NULL(sFallingFossil);

View File

@ -531,7 +531,7 @@ void UpdateDowsingAnimDirection(struct Sprite *sprite, struct ObjectEvent *playe
anim += 16;
break;
}
// Don't completely restart anim if wiggling didn't stop.
if (sprite->sPrevDowseState != ORASD_WIGGLE_NONE && sprite->sDowseState != ORASD_WIGGLE_NONE)
SetAndStartSpriteAnim(sprite, anim, sprite->animCmdIndex);

View File

@ -1945,7 +1945,7 @@ static void FrontFlip_2(struct Sprite *sprite)
{
TryFlipX(sprite);
sprite->x2++;
sprite->y2--;;
sprite->y2--;
if (sprite->x2 >= 0)
{

View File

@ -2027,7 +2027,7 @@ void TryUpdateRelearnType(enum IncrDecrUpdateValues delta)
return;
}
zeroCounter++;
} while (zeroCounter <= MOVE_RELEARNER_COUNT && !hasRelearnableMoves);
}

View File

@ -372,7 +372,7 @@ bool8 CheckForTrainersWantingBattle(void)
// Adds trainers wanting to battle to array
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
{
if (!gObjectEvents[i].active)
continue;
if (gObjectEvents[i].trainerType != TRAINER_TYPE_NORMAL && gObjectEvents[i].trainerType != TRAINER_TYPE_SEE_ALL_DIRECTIONS && gObjectEvents[i].trainerType != TRAINER_TYPE_BURIED)

View File

@ -6,10 +6,10 @@ SINGLE_BATTLE_TEST("Aftermath damages the attacker by 1/4th of its max HP if fai
s16 aftermathDamage;
GIVEN {
PLAYER(SPECIES_VOLTORB) { HP(1); Ability(ABILITY_AFTERMATH); };
PLAYER(SPECIES_VOLTORB) { HP(1); Ability(ABILITY_AFTERMATH); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN {MOVE(opponent, MOVE_SCRATCH);}
TURN { MOVE(opponent, MOVE_SCRATCH); }
} SCENE {
MESSAGE("The opposing Wobbuffet used Scratch!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, opponent);
@ -24,10 +24,10 @@ SINGLE_BATTLE_TEST("Aftermath damages the attacker by 1/4th of its max HP if fai
SINGLE_BATTLE_TEST("Aftermath ability pop-up will be displayed correctly: player point of view")
{
GIVEN {
PLAYER(SPECIES_SHROOMISH) { Ability(ABILITY_POISON_HEAL); };
OPPONENT(SPECIES_VOLTORB) { HP(1); Ability(ABILITY_AFTERMATH); };
PLAYER(SPECIES_SHROOMISH) { Ability(ABILITY_POISON_HEAL); }
OPPONENT(SPECIES_VOLTORB) { HP(1); Ability(ABILITY_AFTERMATH); }
} WHEN {
TURN {MOVE(player, MOVE_HEADBUTT);}
TURN { MOVE(player, MOVE_HEADBUTT); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_HEADBUTT, player);
MESSAGE("The opposing Voltorb fainted!");
@ -38,10 +38,10 @@ SINGLE_BATTLE_TEST("Aftermath ability pop-up will be displayed correctly: player
SINGLE_BATTLE_TEST("Aftermath ability pop-up will be displayed correctly: opponent point of view")
{
GIVEN {
PLAYER(SPECIES_VOLTORB) { HP(1); Ability(ABILITY_AFTERMATH); };
OPPONENT(SPECIES_SHROOMISH) { Ability(ABILITY_POISON_HEAL); };
PLAYER(SPECIES_VOLTORB) { HP(1); Ability(ABILITY_AFTERMATH); }
OPPONENT(SPECIES_SHROOMISH) { Ability(ABILITY_POISON_HEAL); }
} WHEN {
TURN {MOVE(opponent, MOVE_HEADBUTT);}
TURN { MOVE(opponent, MOVE_HEADBUTT); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_HEADBUTT, opponent);
MESSAGE("Voltorb fainted!");

View File

@ -10,7 +10,7 @@ SINGLE_BATTLE_TEST("Anticipation causes notifies if an opponent has a super-effe
PLAYER(SPECIES_EEVEE) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_CLOSE_COMBAT, MOVE_SCRATCH, MOVE_POUND, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -22,7 +22,7 @@ SINGLE_BATTLE_TEST("Anticipation does not trigger even when a move is super effe
PLAYER(SPECIES_WHISCASH) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_PIKACHU) { Moves(MOVE_CELEBRATE, MOVE_THUNDERBOLT); }
} WHEN {
TURN { }
TURN {}
} SCENE {
NOT ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -35,7 +35,7 @@ SINGLE_BATTLE_TEST("Anticipation causes notifies if an opponent has a One-hit KO
PLAYER(SPECIES_EEVEE) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_FISSURE, MOVE_SCRATCH, MOVE_POUND, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -48,7 +48,7 @@ SINGLE_BATTLE_TEST("Anticipation treats Self-Destruct and Explosion like all oth
PLAYER(SPECIES_EEVEE) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_EXPLOSION, MOVE_SCRATCH, MOVE_POUND, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
NOT ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -63,7 +63,7 @@ SINGLE_BATTLE_TEST("Anticipation doesn't consider Normalize into their effective
PLAYER(SPECIES_EEVEE) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_DELCATTY) { Ability(ABILITY_NORMALIZE); Moves(MOVE_CLOSE_COMBAT, MOVE_SCRATCH, MOVE_POUND, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -78,7 +78,7 @@ SINGLE_BATTLE_TEST("Anticipation doesn't consider Scrappy into their effectivene
PLAYER(SPECIES_DOUBLADE) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_KANGASKHAN) { Ability(ABILITY_SCRAPPY); Moves(MOVE_CLOSE_COMBAT, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
NOT ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -197,7 +197,7 @@ SINGLE_BATTLE_TEST("Anticipation treats dynamic move types as their base type (N
PLAYER(SPECIES_EEVEE) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_ARCEUS) { Item(ITEM_FIST_PLATE); Moves(MOVE_JUDGMENT, MOVE_SCRATCH, MOVE_POUND, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
NOT ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -230,7 +230,7 @@ SINGLE_BATTLE_TEST("Anticipation treats dynamic move types as their base type (N
PLAYER(SPECIES_EEVEE) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_LEPPA_BERRY); Moves(MOVE_NATURAL_GIFT, MOVE_SCRATCH, MOVE_POUND, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
NOT ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -245,7 +245,7 @@ SINGLE_BATTLE_TEST("Anticipation treats dynamic move types as their base type (N
PLAYER(SPECIES_FERROTHORN) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_GENESECT) { Item(ITEM_BURN_DRIVE); Moves(MOVE_TECHNO_BLAST, MOVE_SCRATCH, MOVE_POUND, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
NOT ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -261,7 +261,7 @@ SINGLE_BATTLE_TEST("Anticipation treats dynamic move types as their base type (N
PLAYER(SPECIES_FERROTHORN) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_ORICORIO_BAILE) { Moves(MOVE_REVELATION_DANCE, MOVE_SCRATCH, MOVE_POUND, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
NOT ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -276,7 +276,7 @@ SINGLE_BATTLE_TEST("Anticipation treats dynamic move types as their base type (N
PLAYER(SPECIES_EEVEE) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_SILVALLY) { Item(ITEM_FIGHTING_MEMORY); Moves(MOVE_MULTI_ATTACK, MOVE_SCRATCH, MOVE_POUND, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
NOT ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -308,7 +308,7 @@ SINGLE_BATTLE_TEST("Anticipation does not consider ate-abilities")
PLAYER(SPECIES_WORMADAM_PLANT) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_AURORUS) { Ability(ABILITY_REFRIGERATE); Moves(MOVE_GROWL, MOVE_SCRATCH, MOVE_POUND, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
NOT ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}
@ -343,7 +343,7 @@ SINGLE_BATTLE_TEST("Anticipation considers Inverse Battle types")
PLAYER(SPECIES_FERROTHORN) { Ability(ABILITY_ANTICIPATION); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_GROWL, MOVE_SCRATCH, MOVE_POUND, MOVE_CELEBRATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_ANTICIPATION);
}

View File

@ -159,7 +159,7 @@ DOUBLE_BATTLE_TEST("Aroma Veil does not protect the Pokémon's side from Impriso
ASSUME(GetMoveEffect(MOVE_IMPRISON) == EFFECT_IMPRISON);
PLAYER(SPECIES_AROMATISSE) { Ability(ABILITY_AROMA_VEIL); }
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) {Moves(MOVE_IMPRISON, MOVE_CELEBRATE); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_IMPRISON, MOVE_CELEBRATE); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { MOVE(opponentLeft, MOVE_IMPRISON); MOVE(playerLeft, MOVE_CELEBRATE); MOVE(playerRight, MOVE_CELEBRATE); MOVE(opponentRight, MOVE_SPLASH); }

View File

@ -9,9 +9,9 @@ SINGLE_BATTLE_TEST("Bad Dreams causes the sleeping enemy Pokemon to lose 1/8 of
PARAMETRIZE { status = STATUS1_SLEEP; }
GIVEN {
PLAYER(SPECIES_DARKRAI);
OPPONENT(SPECIES_WOBBUFFET) {Status1(status);}
OPPONENT(SPECIES_WOBBUFFET) { Status1(status); }
} WHEN {
TURN {;}
TURN {}
} SCENE {
if (status == STATUS1_SLEEP) {
ABILITY_POPUP(player, ABILITY_BAD_DREAMS);
@ -41,7 +41,7 @@ SINGLE_BATTLE_TEST("Bad Dreams causes Pokémon with Comatose to lose 1/8 of HP")
PLAYER(SPECIES_DARKRAI);
OPPONENT(SPECIES_KOMALA) { Ability(ABILITY_COMATOSE); }
} WHEN {
TURN {;}
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_BAD_DREAMS);
MESSAGE("The opposing Komala is tormented!");
@ -55,11 +55,11 @@ DOUBLE_BATTLE_TEST("Bad Dreams does not activate if only the partner Pokemon is
{
GIVEN {
PLAYER(SPECIES_DARKRAI);
PLAYER(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);}
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); }
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN {;}
TURN {}
} SCENE {
NONE_OF {
ABILITY_POPUP(playerLeft, ABILITY_BAD_DREAMS);
@ -76,12 +76,12 @@ DOUBLE_BATTLE_TEST("Bad Dreams does not activate if only the partner Pokemon is
DOUBLE_BATTLE_TEST("Bad Dreams activates for both sleeping Pokémon on the player side")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);}
PLAYER(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);}
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); }
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); }
OPPONENT(SPECIES_DARKRAI);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN {;}
TURN {}
} SCENE {
ABILITY_POPUP(opponentLeft, ABILITY_BAD_DREAMS);
MESSAGE("Wobbuffet is tormented!");
@ -99,14 +99,14 @@ DOUBLE_BATTLE_TEST("Bad Dreams activates for both sleeping Pokémon on the playe
DOUBLE_BATTLE_TEST("Bad Dreams faints both sleeping Pokemon on player side")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP); HP(1);}
PLAYER(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP); HP(1);}
PLAYER(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);}
PLAYER(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);}
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); HP(1); }
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); HP(1); }
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); }
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); }
OPPONENT(SPECIES_DARKRAI);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN {SEND_OUT(playerLeft, 2); SEND_OUT(playerRight, 3);}
TURN { SEND_OUT(playerLeft, 2); SEND_OUT(playerRight, 3); }
} SCENE {
ABILITY_POPUP(opponentLeft, ABILITY_BAD_DREAMS);
MESSAGE("Wobbuffet is tormented!");
@ -123,12 +123,12 @@ DOUBLE_BATTLE_TEST("Bad Dreams faints both sleeping Pokemon on opponent side")
GIVEN {
PLAYER(SPECIES_DARKRAI);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP); HP(1);}
OPPONENT(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP); HP(1);}
OPPONENT(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);}
OPPONENT(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);}
OPPONENT(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); HP(1); }
OPPONENT(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); HP(1); }
OPPONENT(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); }
OPPONENT(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); }
} WHEN {
TURN {SEND_OUT(opponentLeft, 2); SEND_OUT(opponentRight, 3);}
TURN { SEND_OUT(opponentLeft, 2); SEND_OUT(opponentRight, 3); }
} SCENE {
ABILITY_POPUP(playerLeft, ABILITY_BAD_DREAMS);
MESSAGE("The opposing Wobbuffet is tormented!");

View File

@ -15,7 +15,7 @@ WILD_BATTLE_TEST("Ball Fetch causes the Pokémon to pick up the last failed Ball
PLAYER(SPECIES_YAMPER) { Ability(ABILITY_BALL_FETCH); }
OPPONENT(SPECIES_METAGROSS);
} WHEN {
TURN { USE_ITEM(player, item, WITH_RNG(RNG_BALLTHROW_SHAKE, MAX_u16) );}
TURN { USE_ITEM(player, item, WITH_RNG(RNG_BALLTHROW_SHAKE, MAX_u16)); }
TURN {}
} SCENE {
if (item != ITEM_X_ACCURACY)
@ -51,8 +51,7 @@ WILD_BATTLE_TEST("Ball Fetch doesn't trigger if the Pokémon is already holding
}
else
{
NONE_OF
{
NONE_OF {
ABILITY_POPUP(player, ABILITY_BALL_FETCH);
MESSAGE("Yamper found a Great Ball!");
}
@ -74,7 +73,7 @@ WILD_BATTLE_TEST("Ball Fetch only picks up the first failed ball, once per battl
PARAMETRIZE { item = ITEM_GREAT_BALL; item2 = ITEM_ULTRA_BALL; }
PARAMETRIZE { item = ITEM_GREAT_BALL; item2 = ITEM_FAST_BALL; }
PARAMETRIZE { item = ITEM_GREAT_BALL; item2 = ITEM_STRANGE_BALL; }
GIVEN {
PLAYER(SPECIES_YAMPER) { Ability(ABILITY_BALL_FETCH); }

View File

@ -11,10 +11,10 @@ SINGLE_BATTLE_TEST("Battle Bond transforms player's Greninja - Singles")
{
u32 monsCountPlayer, monsCountOpponent;
PARAMETRIZE {monsCountPlayer = 1; monsCountOpponent = 1; }
PARAMETRIZE {monsCountPlayer = 1; monsCountOpponent = 2; }
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 1; }
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 2; }
PARAMETRIZE { monsCountPlayer = 1; monsCountOpponent = 1; }
PARAMETRIZE { monsCountPlayer = 1; monsCountOpponent = 2; }
PARAMETRIZE { monsCountPlayer = 2; monsCountOpponent = 1; }
PARAMETRIZE { monsCountPlayer = 2; monsCountOpponent = 2; }
GIVEN {
WITH_CONFIG(CONFIG_BATTLE_BOND, GEN_8);
@ -59,10 +59,10 @@ SINGLE_BATTLE_TEST("Battle Bond transforms opponent's Greninja - Singles")
{
u32 monsCountPlayer, monsCountOpponent;
PARAMETRIZE {monsCountPlayer = 1; monsCountOpponent = 1; }
PARAMETRIZE {monsCountPlayer = 1; monsCountOpponent = 2; }
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 1; }
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 2; }
PARAMETRIZE { monsCountPlayer = 1; monsCountOpponent = 1; }
PARAMETRIZE { monsCountPlayer = 1; monsCountOpponent = 2; }
PARAMETRIZE { monsCountPlayer = 2; monsCountOpponent = 1; }
PARAMETRIZE { monsCountPlayer = 2; monsCountOpponent = 2; }
GIVEN {
WITH_CONFIG(CONFIG_BATTLE_BOND, GEN_8);
@ -70,7 +70,7 @@ SINGLE_BATTLE_TEST("Battle Bond transforms opponent's Greninja - Singles")
if (monsCountOpponent == 2) {
OPPONENT(SPECIES_WOBBUFFET);
}
PLAYER(SPECIES_WOBBUFFET) {HP(1); }
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
if (monsCountPlayer == 2) {
PLAYER(SPECIES_WOBBUFFET);
}
@ -107,10 +107,10 @@ DOUBLE_BATTLE_TEST("Battle Bond transforms player's Greninja when fainting its A
{
u32 monsCountPlayer, monsCountOpponent;
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 2; }
PARAMETRIZE {monsCountPlayer = 2; monsCountOpponent = 3; }
PARAMETRIZE {monsCountPlayer = 3; monsCountOpponent = 2; }
PARAMETRIZE {monsCountPlayer = 3; monsCountOpponent = 3; }
PARAMETRIZE { monsCountPlayer = 2; monsCountOpponent = 2; }
PARAMETRIZE { monsCountPlayer = 2; monsCountOpponent = 3; }
PARAMETRIZE { monsCountPlayer = 3; monsCountOpponent = 2; }
PARAMETRIZE { monsCountPlayer = 3; monsCountOpponent = 3; }
GIVEN {
WITH_CONFIG(CONFIG_BATTLE_BOND, GEN_8);

View File

@ -35,7 +35,7 @@ SINGLE_BATTLE_TEST("Beads of Ruin's message displays correctly after all battler
{
GIVEN {
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
PLAYER(SPECIES_WOBBUFFET) { HP(1);}
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_CHI_YU);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
@ -59,7 +59,7 @@ SINGLE_BATTLE_TEST("Beads of Ruin's message displays correctly after all battler
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { HP(1);}
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
OPPONENT(SPECIES_CHI_YU);
} WHEN {
TURN { MOVE(player, MOVE_EXPLOSION); SEND_OUT(player, 1); SEND_OUT(opponent, 1); }

View File

@ -12,9 +12,9 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke prevent intimid
PARAMETRIZE{ species = SPECIES_SOLGALEO; ability = ABILITY_FULL_METAL_BODY; }
PARAMETRIZE{ species = SPECIES_TORKOAL; ability = ABILITY_WHITE_SMOKE; }
GIVEN {
PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); };
OPPONENT(species) { Ability(ability); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); }
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); }
OPPONENT(species) { Ability(ability); }
} WHEN {
TURN { MOVE(opponent, MOVE_SCRATCH); }
TURN { SWITCH(player, 1); MOVE(opponent, MOVE_SCRATCH); }
@ -220,7 +220,7 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke don't prevent S
PLAYER(SPECIES_WOBBUFFET) { Speed(4); }
OPPONENT(species) { Speed(6); Ability(ability); Item(heldItem); }
} WHEN {
TURN { }
TURN {}
} SCENE {
NOT ABILITY_POPUP(opponent, ability);
if (heldItem == ITEM_IRON_BALL) {
@ -393,9 +393,9 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke don't prevent S
PLAYER(SPECIES_WOBBUFFET) { Speed(4); }
OPPONENT(species) { Speed(5); Ability(ability); }
} WHEN {
TURN{ MOVE(opponent, MOVE_AGILITY); }
TURN{ MOVE(player, MOVE_SPECTRAL_THIEF); }
TURN{ }
TURN { MOVE(opponent, MOVE_AGILITY); }
TURN { MOVE(player, MOVE_SPECTRAL_THIEF); }
TURN {}
} SCENE {
if (ability == ABILITY_FULL_METAL_BODY)
MESSAGE("The opposing Solgaleo used Agility!");

View File

@ -90,8 +90,8 @@ SINGLE_BATTLE_TEST("Color Change changes the type when a Pokemon is hit by Futur
OPPONENT(SPECIES_KECLEON) { Ability(ABILITY_COLOR_CHANGE); }
} WHEN {
TURN { MOVE(player, MOVE_FUTURE_SIGHT); }
TURN { }
TURN { }
TURN {}
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player);
MESSAGE("The opposing Kecleon took the Future Sight attack!");
@ -107,8 +107,8 @@ SINGLE_BATTLE_TEST("Color Change changes the type when a Pokemon is hit by Doom
OPPONENT(SPECIES_KECLEON) { Ability(ABILITY_COLOR_CHANGE); }
} WHEN {
TURN { MOVE(player, MOVE_DOOM_DESIRE); }
TURN { }
TURN { }
TURN {}
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_DOOM_DESIRE, player);
MESSAGE("The opposing Kecleon took the Doom Desire attack!");
@ -124,7 +124,7 @@ SINGLE_BATTLE_TEST("Color Change changes the type to Electric when a Pokemon is
OPPONENT(SPECIES_KECLEON) { Ability(ABILITY_COLOR_CHANGE); }
} WHEN {
TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_FUTURE_SIGHT); }
TURN { }
TURN {}
TURN { MOVE(opponent, MOVE_ELECTRIFY); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player);
@ -142,7 +142,7 @@ SINGLE_BATTLE_TEST("Color Change changes the type to Normal when a Pokemon is hi
} WHEN {
TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_FUTURE_SIGHT); }
TURN { MOVE(player, MOVE_SOAK); }
TURN { }
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player);
MESSAGE("Wobbuffet used Soak!");
@ -162,7 +162,7 @@ SINGLE_BATTLE_TEST("Color Change does not change the type to Normal when a Pokem
} WHEN {
TURN { MOVE(player, MOVE_SOAK); }
TURN { MOVE(player, MOVE_STRUGGLE); }
TURN { }
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_SOAK, player);
MESSAGE("The opposing Kecleon transformed into the Water type!");

View File

@ -64,7 +64,7 @@ DOUBLE_BATTLE_TEST("Commander Tatsugiri will still take residual damage from a f
OPPONENT(SPECIES_TYRANITAR) { Ability(ABILITY_SAND_STREAM); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(playerLeft, ABILITY_COMMANDER);
MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!");
@ -83,7 +83,7 @@ DOUBLE_BATTLE_TEST("Commander Tatsugiri will still take poison damage if while i
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(playerLeft, ABILITY_COMMANDER);
MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!");
@ -176,7 +176,7 @@ DOUBLE_BATTLE_TEST("Commander Tatsugiri is not damaged by a double target move i
{
GIVEN {
ASSUME(GetMoveTarget(MOVE_SURF) == MOVE_TARGET_FOES_AND_ALLY);
PLAYER(SPECIES_DONDOZO) { HP(1); };
PLAYER(SPECIES_DONDOZO) { HP(1); }
PLAYER(SPECIES_TATSUGIRI) { Ability(ABILITY_COMMANDER); }
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_WOBBUFFET);
@ -244,7 +244,7 @@ DOUBLE_BATTLE_TEST("Commander doesn't prevent Imposter from working on a Command
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_DITTO) { Ability(ABILITY_IMPOSTER); }
} WHEN {
TURN { }
TURN {}
TURN { SWITCH(opponentLeft, 2); }
} SCENE {
ABILITY_POPUP(playerRight, ABILITY_COMMANDER);

View File

@ -174,7 +174,7 @@ SINGLE_BATTLE_TEST("Competitive correctly activates after Sticky Web lowers Spee
} WHEN {
TURN { MOVE(player, MOVE_STICKY_WEB); MOVE(opponent, MOVE_COURT_CHANGE); }
TURN { SWITCH(player, 1); }
TURN { MOVE(opponent, MOVE_GROWL);}
TURN { MOVE(opponent, MOVE_GROWL); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_COURT_CHANGE, opponent);

View File

@ -246,7 +246,7 @@ AI_SINGLE_BATTLE_TEST("AI sees Contrary-effected moves correctly in MoveEffectIn
{
GIVEN{
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_SMART_SWITCHING | AI_FLAG_SMART_MON_CHOICES | AI_FLAG_OMNISCIENT);
PLAYER(SPECIES_HERACROSS){
PLAYER(SPECIES_HERACROSS) {
Level(44);
HP(1);
Speed(5);
@ -254,7 +254,7 @@ AI_SINGLE_BATTLE_TEST("AI sees Contrary-effected moves correctly in MoveEffectIn
Item(ITEM_LOADED_DICE);
Moves(MOVE_PIN_MISSILE);
}
OPPONENT(SPECIES_SERPERIOR){
OPPONENT(SPECIES_SERPERIOR) {
Level(44);
Speed(10);
Nature(NATURE_TIMID);
@ -262,7 +262,7 @@ AI_SINGLE_BATTLE_TEST("AI sees Contrary-effected moves correctly in MoveEffectIn
Moves(MOVE_DRAGON_PULSE, MOVE_SPIN_OUT, MOVE_HIDDEN_POWER, MOVE_GLARE);
}
} WHEN {
TURN{
TURN {
MOVE(player, MOVE_PIN_MISSILE);
EXPECT_MOVE(opponent, MOVE_SPIN_OUT); // previously all 107, now sees speed can rise w/ Contrary
}

View File

@ -100,7 +100,7 @@ SINGLE_BATTLE_TEST("If a Poison- or Steel-type Pokémon with Corrosion holds a T
PLAYER(SPECIES_SALANDIT) { Ability(ABILITY_CORROSION); Item(ITEM_TOXIC_ORB); }
OPPONENT(SPECIES_ODDISH);
} WHEN {
TURN { }
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, player);
STATUS_ICON(player, badPoison: TRUE);

View File

@ -10,7 +10,7 @@ SINGLE_BATTLE_TEST("Cud Chew will activate Kee Berry effect again on the next tu
OPPONENT(SPECIES_TAUROS_PALDEA_COMBAT) { Ability(ABILITY_CUD_CHEW); Item(ITEM_KEE_BERRY); }
} WHEN {
TURN { MOVE(player, MOVE_SCRATCH); }
TURN { MOVE(player, MOVE_CELEBRATE);}
TURN { MOVE(player, MOVE_CELEBRATE); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, player);
HP_BAR(opponent);
@ -34,7 +34,7 @@ SINGLE_BATTLE_TEST("Cud Chew will activate Oran Berry effect again on the next t
OPPONENT(SPECIES_TAUROS_PALDEA_COMBAT) { MaxHP(60); HP(60); Ability(ABILITY_CUD_CHEW); Item(ITEM_ORAN_BERRY); }
} WHEN {
TURN { MOVE(player, MOVE_DRAGON_RAGE); }
TURN { MOVE(player, MOVE_CELEBRATE);}
TURN { MOVE(player, MOVE_CELEBRATE); }
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_RAGE, player);

View File

@ -7,7 +7,7 @@ SINGLE_BATTLE_TEST("Dauntless Shield raises Defense by one stage")
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_ZAMAZENTA) { Ability(ABILITY_DAUNTLESS_SHIELD); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ABILITY_DAUNTLESS_SHIELD);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);

View File

@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Defeatist halves Attack when HP <= 50%", s16 damage)
PARAMETRIZE { hp = 400; }
PARAMETRIZE { hp = 200; }
GIVEN {
PLAYER(SPECIES_ARCHEN) { Ability(ABILITY_DEFEATIST); HP(hp), MaxHP(400);}
PLAYER(SPECIES_ARCHEN) { Ability(ABILITY_DEFEATIST); HP(hp), MaxHP(400); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_SCRATCH); MOVE(opponent, MOVE_CELEBRATE); }
@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Defeatist halves Special Attack when HP <= 50%", s16 damage)
PARAMETRIZE { hp = 400; }
PARAMETRIZE { hp = 200; }
GIVEN {
PLAYER(SPECIES_ARCHEN) { Ability(ABILITY_DEFEATIST); HP(hp), MaxHP(400);}
PLAYER(SPECIES_ARCHEN) { Ability(ABILITY_DEFEATIST); HP(hp), MaxHP(400); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_ECHOED_VOICE); MOVE(opponent, MOVE_CELEBRATE); }

View File

@ -151,7 +151,7 @@ SINGLE_BATTLE_TEST("Defiant doesn't activate after Sticky Web lowers Speed if Co
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_STICKY_WEB); MOVE(opponent, MOVE_COURT_CHANGE); }
TURN { SWITCH(player, 1); MOVE(opponent, MOVE_GROWL);}
TURN { SWITCH(player, 1); MOVE(opponent, MOVE_GROWL); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_COURT_CHANGE, opponent);
@ -188,7 +188,7 @@ SINGLE_BATTLE_TEST("Defiant activates after Sticky Web lowers Speed if Court Cha
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_STICKY_WEB); MOVE(opponent, MOVE_COURT_CHANGE); }
TURN { SWITCH(player, 1); MOVE(opponent, MOVE_GROWL);}
TURN { SWITCH(player, 1); MOVE(opponent, MOVE_GROWL); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_COURT_CHANGE, opponent);

View File

@ -10,7 +10,7 @@ ASSUMPTIONS
SINGLE_BATTLE_TEST("Desolate Land blocks damaging Water-type moves")
{
GIVEN {
PLAYER(SPECIES_GROUDON) {Item(ITEM_RED_ORB);}
PLAYER(SPECIES_GROUDON) { Item(ITEM_RED_ORB); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_WATER_GUN); }
@ -35,10 +35,10 @@ DOUBLE_BATTLE_TEST("Desolate Land blocks damaging Water-type moves and prints th
ASSUME(!IsBattleMoveStatus(MOVE_SURF));
ASSUME(GetMoveType(MOVE_SURF) == TYPE_WATER);
ASSUME(GetMoveTarget(MOVE_SURF) == MOVE_TARGET_FOES_AND_ALLY);
PLAYER(SPECIES_GROUDON) {Item(ITEM_RED_ORB); {Speed(5);}}
PLAYER(SPECIES_WOBBUFFET) {Speed(5);}
OPPONENT(SPECIES_WOBBUFFET) {Speed(10);}
OPPONENT(SPECIES_WOBBUFFET) {Speed(8);}
PLAYER(SPECIES_GROUDON) { Item(ITEM_RED_ORB); Speed(5); }
PLAYER(SPECIES_WOBBUFFET) { Speed(5); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(10); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(8); }
} WHEN {
TURN { MOVE(opponentLeft, MOVE_SURF); }
} SCENE {
@ -56,8 +56,8 @@ DOUBLE_BATTLE_TEST("Desolate Land blocks damaging Water-type moves and prints th
SINGLE_BATTLE_TEST("Desolate Land does not block a move if Pokémon is asleep and uses a Water-type move") // Sleep/confusion/paralysis all happen before the check for primal weather
{
GIVEN {
PLAYER(SPECIES_GROUDON) {Item(ITEM_RED_ORB);}
OPPONENT(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);}
PLAYER(SPECIES_GROUDON) { Item(ITEM_RED_ORB); }
OPPONENT(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); }
} WHEN {
TURN { MOVE(opponent, MOVE_WATER_GUN); }
} SCENE {

View File

@ -52,7 +52,7 @@ SINGLE_BATTLE_TEST("Disguised Mimikyu takes no damage from a confusion hit and c
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_CONFUSE_RAY); }
TURN { }
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, opponent);
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, player);

View File

@ -6,8 +6,8 @@ SINGLE_BATTLE_TEST("Electromorphosis sets up Charge when hit by any move")
s16 dmgBefore, dmgAfter;
u16 move;
PARAMETRIZE {move = MOVE_SCRATCH; }
PARAMETRIZE {move = MOVE_GUST; }
PARAMETRIZE { move = MOVE_SCRATCH; }
PARAMETRIZE { move = MOVE_GUST; }
GIVEN {
ASSUME(!IsBattleMoveStatus(MOVE_SCRATCH));
@ -18,7 +18,7 @@ SINGLE_BATTLE_TEST("Electromorphosis sets up Charge when hit by any move")
ASSUME(GetMoveType(MOVE_THUNDER_SHOCK) == TYPE_ELECTRIC);
PLAYER(SPECIES_BELLIBOLT) { Ability(ABILITY_ELECTROMORPHOSIS); Speed(10); }
OPPONENT(SPECIES_WOBBUFFET) {Ability(ABILITY_LIMBER); Speed(5) ;} // Limber, so it doesn't get paralyzed.
OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_LIMBER); Speed(5); } // Limber, so it doesn't get paralyzed.
}
WHEN {
TURN { MOVE(player, MOVE_THUNDER_SHOCK), MOVE(opponent, move); }

View File

@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Embody Aspect raises a stat depending on the users form by o
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(species) { Ability(ability); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ability);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);

View File

@ -5,7 +5,7 @@ SINGLE_BATTLE_TEST("Emergency Exit switches out when taking 50% max-hp damage")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(262); };
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(262); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_SUPER_FANG); SEND_OUT(opponent, 1); }
@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Emergency Exit does not switch out when going below 50% max-
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET)
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(262); Item(ITEM_SITRUS_BERRY); };
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(262); Item(ITEM_SITRUS_BERRY); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_SUPER_FANG); }
@ -36,7 +36,7 @@ SINGLE_BATTLE_TEST("Emergency Exit switches out when going below 50% max-HP but
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET)
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(133); Item(ITEM_ORAN_BERRY); };
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(133); Item(ITEM_ORAN_BERRY); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_SUPER_FANG); SEND_OUT(opponent, 1); }
@ -53,8 +53,8 @@ DOUBLE_BATTLE_TEST("Only the fastest Wimp Out (Emergency Exit) user switches out
GIVEN {
PLAYER(SPECIES_ZAPDOS) { Speed(10); }
PLAYER(SPECIES_WOBBUFFET) { Speed(10); }
OPPONENT(SPECIES_WIMPOD) { Speed(1); Ability(ABILITY_WIMP_OUT); Item(ITEM_FOCUS_SASH); };
OPPONENT(SPECIES_WIMPOD) { Speed(2); Ability(ABILITY_WIMP_OUT); Item(ITEM_FOCUS_SASH); };
OPPONENT(SPECIES_WIMPOD) { Speed(1); Ability(ABILITY_WIMP_OUT); Item(ITEM_FOCUS_SASH); }
OPPONENT(SPECIES_WIMPOD) { Speed(2); Ability(ABILITY_WIMP_OUT); Item(ITEM_FOCUS_SASH); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(10); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(10); }
} WHEN {
@ -71,7 +71,7 @@ SINGLE_BATTLE_TEST("Emergency Exit activates when taking residual damage and fal
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(134); Status1(STATUS1_BURN); };
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(134); Status1(STATUS1_BURN); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { SEND_OUT(opponent, 1); }
@ -87,7 +87,7 @@ SINGLE_BATTLE_TEST("Emergency Exit activates when healing from under 50% max-hp
GIVEN {
ASSUME(GetMoveEffect(MOVE_AQUA_RING) == EFFECT_AQUA_RING);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(130); Status1(STATUS1_BURN); };
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(130); Status1(STATUS1_BURN); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_AQUA_RING); SEND_OUT(opponent, 1); }
@ -102,7 +102,7 @@ SINGLE_BATTLE_TEST("Emergency Exit activates when taking residual damage and fal
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(134); };
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(134); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_SANDSTORM); SEND_OUT(opponent, 1); }
@ -119,7 +119,7 @@ SINGLE_BATTLE_TEST("Emergency Exit activates when healing from under 50% max-hp
ASSUME(GetMoveEffect(MOVE_AQUA_RING) == EFFECT_AQUA_RING);
ASSUME(GetItemHoldEffect(ITEM_STICKY_BARB) == HOLD_EFFECT_STICKY_BARB);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(130); Item(ITEM_STICKY_BARB); };
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(130); Item(ITEM_STICKY_BARB); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_AQUA_RING); SEND_OUT(opponent, 1); }
@ -134,7 +134,7 @@ SINGLE_BATTLE_TEST("Emergency Exit activates when taking residual damage and fal
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(160); };
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(160); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_SALT_CURE); SEND_OUT(opponent, 1); }
@ -149,9 +149,9 @@ WILD_BATTLE_TEST("Emergency Exit makes the pokemon flee during wild battle")
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(262); };
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(262); }
} WHEN {
TURN { MOVE(player, MOVE_SUPER_FANG);}
TURN { MOVE(player, MOVE_SUPER_FANG); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_SUPER_FANG, player);
HP_BAR(opponent);
@ -166,9 +166,9 @@ WILD_BATTLE_TEST("Emergency Exit activates when taking residual damage and falli
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(134); Status1(STATUS1_BURN); };
OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(134); Status1(STATUS1_BURN); }
} WHEN {
TURN { }
TURN {}
} SCENE {
HP_BAR(opponent);
ABILITY_POPUP(opponent, ABILITY_EMERGENCY_EXIT);
@ -180,11 +180,11 @@ WILD_BATTLE_TEST("Emergency Exit activates when taking residual damage and falli
WILD_BATTLE_TEST("Emergency Exit makes the player ran during wild battle")
{
GIVEN {
PLAYER(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(262); };
PLAYER(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(262); }
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_SUPER_FANG);}
TURN { MOVE(opponent, MOVE_SUPER_FANG); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_SUPER_FANG, opponent);
HP_BAR(player);
@ -197,11 +197,11 @@ WILD_BATTLE_TEST("Emergency Exit makes the player ran during wild battle")
WILD_BATTLE_TEST("Emergency Exit activates when taking residual damage and falling under 50% max-hp (wild battle player side)")
{
GIVEN {
PLAYER(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(134); };
PLAYER(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(134); }
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_SANDSTORM);}
TURN { MOVE(opponent, MOVE_SANDSTORM); }
} SCENE {
HP_BAR(player);
ABILITY_POPUP(player, ABILITY_EMERGENCY_EXIT);

View File

@ -4,12 +4,12 @@
DOUBLE_BATTLE_TEST("Frisk does not trigger when Pokémon hold no items")
{
GIVEN {
PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); };
PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); };
OPPONENT(SPECIES_SENTRET) { Ability(ABILITY_FRISK); };
OPPONENT(SPECIES_SENTRET) { Ability(ABILITY_FRISK); };
PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); }
PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); }
OPPONENT(SPECIES_SENTRET) { Ability(ABILITY_FRISK); }
OPPONENT(SPECIES_SENTRET) { Ability(ABILITY_FRISK); }
} WHEN {
TURN { ; }
TURN {}
} SCENE {
NONE_OF {
ABILITY_POPUP(playerLeft, ABILITY_FRISK);
@ -23,10 +23,10 @@ DOUBLE_BATTLE_TEST("Frisk does not trigger when Pokémon hold no items")
SINGLE_BATTLE_TEST("Frisk triggers in a Single Battle")
{
GIVEN {
PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); Item(ITEM_POTION); };
OPPONENT(SPECIES_SENTRET) { Ability(ABILITY_FRISK); Item(ITEM_POTION); };
PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); Item(ITEM_POTION); }
OPPONENT(SPECIES_SENTRET) { Ability(ABILITY_FRISK); Item(ITEM_POTION); }
} WHEN {
TURN { ; }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_FRISK);
MESSAGE("Furret frisked the opposing Sentret and found its Potion!");
@ -45,7 +45,7 @@ DOUBLE_BATTLE_TEST("Frisk triggers for player in a Double Battle after switching
ASSUME(!IsBattleMoveStatus(MOVE_POUND));
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); };
PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); }
OPPONENT(SPECIES_WYNAUT) { Item(ITEM_POTION); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
@ -70,7 +70,7 @@ DOUBLE_BATTLE_TEST("Frisk triggers for opponent in a Double Battle after switchi
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
OPPONENT(SPECIES_FURRET) { Ability(ABILITY_FRISK); };
OPPONENT(SPECIES_FURRET) { Ability(ABILITY_FRISK); }
} WHEN {
TURN { MOVE(playerLeft, MOVE_POUND, target: target); SEND_OUT(target, 2); }
} SCENE {

View File

@ -11,8 +11,8 @@ SINGLE_BATTLE_TEST("Gale Wings only grants priority at full HP (Gen 7+)")
GIVEN {
WITH_CONFIG(CONFIG_GALE_WINGS, config);
ASSUME(GetMoveType(MOVE_AERIAL_ACE) == TYPE_FLYING);
PLAYER(SPECIES_TALONFLAME) { Ability(ABILITY_GALE_WINGS); HP(hp); MaxHP(100); Speed(1);}
OPPONENT(SPECIES_WOBBUFFET) { Speed(100);};
PLAYER(SPECIES_TALONFLAME) { Ability(ABILITY_GALE_WINGS); HP(hp); MaxHP(100); Speed(1); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(100); }
} WHEN {
TURN { MOVE(player, MOVE_AERIAL_ACE); }
} SCENE {
@ -35,8 +35,8 @@ SINGLE_BATTLE_TEST("Gale Wings only grants priority to Flying-type moves")
GIVEN {
ASSUME(GetMoveType(MOVE_AERIAL_ACE) == TYPE_FLYING);
ASSUME(GetMoveType(MOVE_FLARE_BLITZ) == TYPE_FIRE);
PLAYER(SPECIES_TALONFLAME) { Ability(ABILITY_GALE_WINGS); HP(100); MaxHP(100); Speed(1);}
OPPONENT(SPECIES_WOBBUFFET) { Speed(100);};
PLAYER(SPECIES_TALONFLAME) { Ability(ABILITY_GALE_WINGS); HP(100); MaxHP(100); Speed(1); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(100); }
} WHEN {
TURN { MOVE(player, move); }
} SCENE {
@ -68,7 +68,7 @@ SINGLE_BATTLE_TEST("Gale Wings doesn't increase priority of Flying-type Natural
ASSUME(gItemsInfo[ITEM_SKY_PLATE].secondaryId == TYPE_FLYING);
ASSUME(gNaturalGiftTable[ITEM_TO_BERRY(ITEM_LUM_BERRY)].type == TYPE_FLYING);
OPPONENT(SPECIES_TALONFLAME) { Ability(ABILITY_GALE_WINGS); Speed(1); Item(heldItem); HPIV(31); AttackIV(3); DefenseIV(31); SpAttackIV(30); SpDefenseIV(30); SpeedIV(30); TeraType(TYPE_FLYING); }
PLAYER(SPECIES_WOBBUFFET) { Speed(100); };
PLAYER(SPECIES_WOBBUFFET) { Speed(100); }
} WHEN {
TURN { MOVE(opponent, move); }
} SCENE {

View File

@ -15,7 +15,7 @@ DOUBLE_BATTLE_TEST("Grim Neigh raises Sp. Attack by one stage after directly cau
OPPONENT(SPECIES_ABRA) { HP(1); }
OPPONENT(SPECIES_ABRA);
} WHEN {
TURN { MOVE(playerLeft, MOVE_DISCHARGE); SEND_OUT(opponentLeft, 2); }
TURN { MOVE(playerLeft, MOVE_DISCHARGE); SEND_OUT(opponentLeft, 2); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_DISCHARGE, playerLeft);
MESSAGE("The opposing Glalie fainted!");
@ -45,7 +45,7 @@ DOUBLE_BATTLE_TEST("Grim Neigh does not trigger if Pokemon faint to indirect dam
OPPONENT(SPECIES_ABRA) { HP(1); }
OPPONENT(SPECIES_ABRA);
} WHEN {
TURN { MOVE(playerRight, MOVE_QUICK_ATTACK, target: opponentRight); SEND_OUT(opponentLeft, 2); }
TURN { MOVE(playerRight, MOVE_QUICK_ATTACK, target: opponentRight); SEND_OUT(opponentLeft, 2); }
} SCENE {
int i;

View File

@ -18,7 +18,7 @@ DOUBLE_BATTLE_TEST("Healer cures adjacent ally's status condition 30% of the tim
OPPONENT(SPECIES_WOBBUFFET) { Status1(status); }
OPPONENT(SPECIES_CHANSEY) { Ability(ABILITY_HEALER); }
} WHEN {
TURN { }
TURN {}
} SCENE {
MESSAGE("The opposing Chansey's Healer cured the opposing Wobbuffet's problem!");
}

View File

@ -14,7 +14,7 @@ DOUBLE_BATTLE_TEST("Hospitality user restores 25% of ally's health")
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN {}
} SCENE {
if (health == 75) {
ABILITY_POPUP(playerLeft, ABILITY_HOSPITALITY);
@ -72,8 +72,8 @@ DOUBLE_BATTLE_TEST("Hospitality ignores Substitute")
DOUBLE_BATTLE_TEST("Hospitality does not trigger if there is no ally on the field")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_POLTCHAGEIST) { Ability(ABILITY_HOSPITALITY); }
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);

View File

@ -42,7 +42,7 @@ SINGLE_BATTLE_TEST("Hunger Switch does not switch Morpeko's form when Terastalli
PLAYER(SPECIES_MORPEKO) { Ability(ABILITY_HUNGER_SWITCH); TeraType(TYPE_NORMAL); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN {}
TURN { MOVE(player, MOVE_SCRATCH, gimmick: GIMMICK_TERA); }
} SCENE {
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player);
@ -59,7 +59,7 @@ SINGLE_BATTLE_TEST("Hunger Switch does not switch Morpeko's form after switching
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN {}
TURN { MOVE(player, MOVE_SCRATCH, gimmick: GIMMICK_TERA); MOVE(opponent, MOVE_ROAR); }
TURN { SWITCH(player, 0); }
} SCENE {

View File

@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Illusion can only imitate Normal Form terapagos")
// Switch to Terapagos which enters Terastal Form
TURN { SWITCH(player, 1); }
// Switch back to Zoroark, should not be Terastal Terapagos
TURN { SWITCH(player, 0); MOVE(opponent, MOVE_SCRATCH);}
TURN { SWITCH(player, 0); MOVE(opponent, MOVE_SCRATCH); }
// Switch back to Terapagos
TURN { SWITCH(player, 1); }
// Terapagos Stellar, Zoroark gets Roared in, should not be Stellar Terapagos
@ -77,7 +77,7 @@ SINGLE_BATTLE_TEST("Illusion breaks in Neutralizing Gas")
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_WEEZING) { Ability(ABILITY_NEUTRALIZING_GAS); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ABILITY_NEUTRALIZING_GAS);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ILLUSION_OFF, player);
@ -117,12 +117,12 @@ SINGLE_BATTLE_TEST("Illusion breaks if user loses Illusion due to Worry Seed")
SINGLE_BATTLE_TEST("Illusion breaks when attacked behind a substitute")
{
GIVEN {
PLAYER(SPECIES_DRAGAPULT) {Ability(ABILITY_INFILTRATOR); Speed(1);};
OPPONENT(SPECIES_WOBBUFFET) {Speed(2);};
OPPONENT(SPECIES_ZOROARK) {Speed(2);};
OPPONENT(SPECIES_WYNAUT) {Speed(2);};
PLAYER(SPECIES_DRAGAPULT) { Ability(ABILITY_INFILTRATOR); Speed(1); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(2); }
OPPONENT(SPECIES_ZOROARK) { Speed(2); }
OPPONENT(SPECIES_WYNAUT) { Speed(2); }
} WHEN {
TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_SHED_TAIL); SEND_OUT(opponent, 1);}
TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_SHED_TAIL); SEND_OUT(opponent, 1); }
} SCENE {
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SWAP_FROM_SUBSTITUTE, opponent);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ILLUSION_OFF, opponent);

View File

@ -75,7 +75,7 @@ SINGLE_BATTLE_TEST("Innards Out uses correct damage amount for Future Sight")
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { MOVE(opponent, MOVE_FUTURE_SIGHT); }
TURN { }
TURN {}
TURN { SEND_OUT(player, 1); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, opponent);

View File

@ -8,9 +8,9 @@ SINGLE_BATTLE_TEST("Inner Focus doesn't prevent intimidate (Gen3-7)")
GIVEN {
WITH_CONFIG(CONFIG_UPDATED_INTIMIDATE, GEN_7);
PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); };
OPPONENT(SPECIES_ZUBAT) { Ability(ABILITY_INNER_FOCUS); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); }
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); }
OPPONENT(SPECIES_ZUBAT) { Ability(ABILITY_INNER_FOCUS); }
} WHEN {
TURN { MOVE(opponent, MOVE_SCRATCH); }
TURN { SWITCH(player, 1); MOVE(opponent, MOVE_SCRATCH); }
@ -35,9 +35,9 @@ SINGLE_BATTLE_TEST("Inner Focus prevents intimidate (Gen8+)")
GIVEN {
WITH_CONFIG(CONFIG_UPDATED_INTIMIDATE, GEN_8);
PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); };
OPPONENT(SPECIES_ZUBAT) { Ability(ABILITY_INNER_FOCUS); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); }
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); }
OPPONENT(SPECIES_ZUBAT) { Ability(ABILITY_INNER_FOCUS); }
} WHEN {
TURN { MOVE(opponent, MOVE_SCRATCH); }
TURN { SWITCH(player, 1); MOVE(opponent, MOVE_SCRATCH); }
@ -58,7 +58,7 @@ SINGLE_BATTLE_TEST("Inner Focus prevents flinching")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_ZUBAT) { Ability(ABILITY_INNER_FOCUS); };
OPPONENT(SPECIES_ZUBAT) { Ability(ABILITY_INNER_FOCUS); }
} WHEN {
TURN { MOVE(player, MOVE_FAKE_OUT);
MOVE(opponent, MOVE_SCRATCH);
@ -73,8 +73,8 @@ SINGLE_BATTLE_TEST("Inner Focus prevents flinching")
SINGLE_BATTLE_TEST("Mold Breaker ignores Inner Focus")
{
GIVEN {
PLAYER(SPECIES_PINSIR) { Ability(ABILITY_MOLD_BREAKER); };
OPPONENT(SPECIES_ZUBAT) { Ability(ABILITY_INNER_FOCUS); };
PLAYER(SPECIES_PINSIR) { Ability(ABILITY_MOLD_BREAKER); }
OPPONENT(SPECIES_ZUBAT) { Ability(ABILITY_INNER_FOCUS); }
} WHEN {
TURN { MOVE(player, MOVE_FAKE_OUT); }
} SCENE {

View File

@ -171,7 +171,7 @@ DOUBLE_BATTLE_TEST("Intimidate activates on an empty slot")
DOUBLE_BATTLE_TEST("Intimidate activates immediately after the mon was switched in as long as one opposing mon is alive")
{
GIVEN {
PLAYER(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); };
PLAYER(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); }
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); Item(ITEM_ELECTRIC_SEED); }
OPPONENT(SPECIES_WYNAUT) { HP(1); }

View File

@ -7,7 +7,7 @@ SINGLE_BATTLE_TEST("Intrepid Sword raises Attack by one stage")
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_ZACIAN) { Ability(ABILITY_INTREPID_SWORD); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ABILITY_INTREPID_SWORD);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
@ -122,9 +122,9 @@ SINGLE_BATTLE_TEST("Intrepid Sword and Dauntless Shield do not proc at max stage
PLAYER(SPECIES_ZACIAN) { Ability(ABILITY_INTREPID_SWORD); }
OPPONENT(SPECIES_ZAMAZENTA) { Ability(ABILITY_DAUNTLESS_SHIELD); }
} WHEN {
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE);}
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE);}
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE);}
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE); }
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE); }
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE); }
TURN { MOVE(player, MOVE_SKILL_SWAP); }
} SCENE {
NONE_OF {
@ -145,10 +145,10 @@ SINGLE_BATTLE_TEST("Intrepid Sword and Dauntless Shield do not proc at max stage
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_ZACIAN) { Ability(ABILITY_INTREPID_SWORD); }
} WHEN {
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE);}
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE);}
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE);}
TURN { MOVE(player, MOVE_BATON_PASS); MOVE(opponent, MOVE_BATON_PASS); SEND_OUT(player, 1); SEND_OUT(opponent, 1);}
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE); }
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE); }
TURN { MOVE(player, MOVE_IRON_DEFENSE); MOVE(opponent, MOVE_SWORDS_DANCE); }
TURN { MOVE(player, MOVE_BATON_PASS); MOVE(opponent, MOVE_BATON_PASS); SEND_OUT(player, 1); SEND_OUT(opponent, 1); }
} SCENE {
NONE_OF {
ABILITY_POPUP(player, ABILITY_DAUNTLESS_SHIELD);

View File

@ -23,7 +23,7 @@ SINGLE_BATTLE_TEST("Magic Guard ignores immobilization that can be caused by par
else
PASSES_RANDOMLY(75, 100, RNG_PARALYSIS);
GIVEN {
PLAYER(SPECIES_CLEFABLE) { Ability(ABILITY_MAGIC_GUARD); Status1(STATUS1_PARALYSIS);}
PLAYER(SPECIES_CLEFABLE) { Ability(ABILITY_MAGIC_GUARD); Status1(STATUS1_PARALYSIS); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_CELEBRATE); }
@ -35,10 +35,10 @@ SINGLE_BATTLE_TEST("Magic Guard ignores immobilization that can be caused by par
SINGLE_BATTLE_TEST("Magic Guard does not ignore speed stat changes caused by paralysis")
{
GIVEN {
PLAYER(SPECIES_CLEFABLE) { Speed(100); Ability(ABILITY_MAGIC_GUARD); Status1(STATUS1_PARALYSIS);}
PLAYER(SPECIES_CLEFABLE) { Speed(100); Ability(ABILITY_MAGIC_GUARD); Status1(STATUS1_PARALYSIS); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(99); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);

View File

@ -53,7 +53,7 @@ SINGLE_BATTLE_TEST("Mimicry restores the battler's types when terrain is removed
GIVEN {
ASSUME(GetSpeciesType(SPECIES_STUNFISK_GALAR, 0) == TYPE_GROUND);
ASSUME(GetSpeciesType(SPECIES_STUNFISK_GALAR, 1) == TYPE_STEEL);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_STUNFISK_GALAR) { Ability(ABILITY_MIMICRY); }
} WHEN {
TURN { MOVE(opponent, terrainMove); MOVE(player, removeTerrainMove); }

View File

@ -8,7 +8,7 @@ SINGLE_BATTLE_TEST("Mind's Eye allows to hit Ghost-type Pokémon with Normal- an
PARAMETRIZE { move = MOVE_KARATE_CHOP; }
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_MINDS_EYE); };
PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_MINDS_EYE); }
OPPONENT(SPECIES_GASTLY);
} WHEN {
TURN { MOVE(player, move); }
@ -26,8 +26,8 @@ SINGLE_BATTLE_TEST("Mind's Eye doesn't bypass a Ghost-type's Wonder Guard")
PARAMETRIZE { move = MOVE_KARATE_CHOP; }
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_SCRAPPY); };
OPPONENT(SPECIES_SHEDINJA) { Ability(ABILITY_WONDER_GUARD); };
PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_SCRAPPY); }
OPPONENT(SPECIES_SHEDINJA) { Ability(ABILITY_WONDER_GUARD); }
} WHEN {
TURN { MOVE(player, move); }
} SCENE {

View File

@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Mirror Armor lowers a stat of the attacking Pokémon")
PARAMETRIZE { move = MOVE_FAKE_TEARS; statId = STAT_SPDEF; }
GIVEN {
PLAYER(SPECIES_CORVIKNIGHT) {Ability(ABILITY_MIRROR_ARMOR);}
PLAYER(SPECIES_CORVIKNIGHT) { Ability(ABILITY_MIRROR_ARMOR); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { MOVE(opponent, move); }
@ -129,8 +129,8 @@ SINGLE_BATTLE_TEST("Mirror Armor doesn't lower the stats of an attacking Pokemon
SINGLE_BATTLE_TEST("Mirror Armor raises the stat of an attacking Pokemon with Contrary")
{
GIVEN {
PLAYER(SPECIES_CORVIKNIGHT) {Ability(ABILITY_MIRROR_ARMOR);}
OPPONENT(SPECIES_SHUCKLE) {Ability(ABILITY_CONTRARY);}
PLAYER(SPECIES_CORVIKNIGHT) { Ability(ABILITY_MIRROR_ARMOR); }
OPPONENT(SPECIES_SHUCKLE) { Ability(ABILITY_CONTRARY); }
} WHEN {
TURN { MOVE(opponent, MOVE_LEER); }
} SCENE {
@ -147,7 +147,7 @@ SINGLE_BATTLE_TEST("Mirror Armor raises the stat of an attacking Pokemon with Co
SINGLE_BATTLE_TEST("Mirror Armor doesn't lower the stat of the attacking Pokemon if it is already at -6")
{
GIVEN {
PLAYER(SPECIES_CORVIKNIGHT) {Ability(ABILITY_MIRROR_ARMOR);}
PLAYER(SPECIES_CORVIKNIGHT) { Ability(ABILITY_MIRROR_ARMOR); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { MOVE(player, MOVE_SCREECH); }
@ -177,15 +177,15 @@ DOUBLE_BATTLE_TEST("Mirror Armor lowers Speed of the partner Pokemon after Court
ASSUME(GetMoveEffect(MOVE_COURT_CHANGE) == EFFECT_COURT_CHANGE);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_CORVIKNIGHT) {Ability(ABILITY_MIRROR_ARMOR); Item(ITEM_IRON_BALL); }
PLAYER(SPECIES_CORVIKNIGHT) { Ability(ABILITY_MIRROR_ARMOR); Item(ITEM_IRON_BALL); }
OPPONENT(SPECIES_WYNAUT);
OPPONENT(SPECIES_WYNAUT);
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { MOVE(playerLeft, MOVE_STICKY_WEB); }
TURN { MOVE(opponentLeft, MOVE_COURT_CHANGE); }
TURN { SWITCH(playerRight, 2);}
TURN { }
TURN { SWITCH(playerRight, 2); }
TURN {}
} SCENE {
MESSAGE("Wobbuffet used Sticky Web!");
MESSAGE("The opposing Wynaut used Court Change!");

View File

@ -15,7 +15,7 @@ SINGLE_BATTLE_TEST("Moody randomly raises the user's Attack, Defense, Sp. Atk, S
PLAYER(SPECIES_OCTILLERY) { Ability(ABILITY_MOODY); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_MOODY);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
@ -40,7 +40,7 @@ SINGLE_BATTLE_TEST("Moody randomly lowers the user's Attack, Defense, Sp. Atk, S
PLAYER(SPECIES_OCTILLERY) { Ability(ABILITY_MOODY); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_MOODY);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
@ -64,7 +64,7 @@ SINGLE_BATTLE_TEST("Moody randomly raises the holder's Attack, Defense, Sp. Atk,
PLAYER(SPECIES_OCTILLERY) { Ability(ABILITY_MOODY); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_MOODY);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);

View File

@ -16,7 +16,7 @@ DOUBLE_BATTLE_TEST("Moxie/Chilling Neigh raises Attack by one stage after direct
OPPONENT(SPECIES_ABRA) { HP(1); }
OPPONENT(SPECIES_ABRA);
} WHEN {
TURN { MOVE(playerLeft, MOVE_EARTHQUAKE); SEND_OUT(opponentLeft, 2); }
TURN { MOVE(playerLeft, MOVE_EARTHQUAKE); SEND_OUT(opponentLeft, 2); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, playerLeft);
MESSAGE("The opposing Glalie fainted!");
@ -49,7 +49,7 @@ DOUBLE_BATTLE_TEST("Moxie/Chilling Neigh does not trigger if Pokemon faint to in
OPPONENT(SPECIES_ABRA) { HP(1); }
OPPONENT(SPECIES_ABRA);
} WHEN {
TURN { MOVE(playerRight, MOVE_QUICK_ATTACK, target: opponentRight); SEND_OUT(opponentLeft, 2); }
TURN { MOVE(playerRight, MOVE_QUICK_ATTACK, target: opponentRight); SEND_OUT(opponentLeft, 2); }
} SCENE {
int i;

View File

@ -7,7 +7,7 @@ SINGLE_BATTLE_TEST("Mummy/Lingering Aroma replace the attacker's ability on cont
enum Ability ability;
PARAMETRIZE { move = MOVE_AQUA_JET; ability = ABILITY_MUMMY; species = SPECIES_YAMASK; }
PARAMETRIZE { move = MOVE_WATER_GUN; ability = ABILITY_MUMMY; species = SPECIES_YAMASK;}
PARAMETRIZE { move = MOVE_WATER_GUN; ability = ABILITY_MUMMY; species = SPECIES_YAMASK; }
PARAMETRIZE { move = MOVE_AQUA_JET; ability = ABILITY_LINGERING_AROMA; species = SPECIES_OINKOLOGNE; }
PARAMETRIZE { move = MOVE_WATER_GUN; ability = ABILITY_LINGERING_AROMA; species = SPECIES_OINKOLOGNE; }
GIVEN {

View File

@ -34,7 +34,7 @@ SINGLE_BATTLE_TEST("Mycelium Might ignores opposing abilities")
{
GIVEN {
PLAYER(SPECIES_TOEDSCOOL) { Speed(100); Ability(ABILITY_MYCELIUM_MIGHT); }
OPPONENT(SPECIES_BELDUM) { Speed(1); Ability(ABILITY_CLEAR_BODY);}
OPPONENT(SPECIES_BELDUM) { Speed(1); Ability(ABILITY_CLEAR_BODY); }
} WHEN {
TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_SCREECH); }
} SCENE {
@ -51,7 +51,7 @@ SINGLE_BATTLE_TEST("Mycelium Might vs Stall action order depends on speed")
PARAMETRIZE { speed = 101; }
GIVEN {
PLAYER(SPECIES_TOEDSCOOL) { Speed(100); Ability(ABILITY_MYCELIUM_MIGHT); }
OPPONENT(SPECIES_SABLEYE) { Speed(speed); Ability(ABILITY_STALL);}
OPPONENT(SPECIES_SABLEYE) { Speed(speed); Ability(ABILITY_STALL); }
} WHEN {
TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_CELEBRATE); }
} SCENE {

View File

@ -7,7 +7,7 @@ SINGLE_BATTLE_TEST("Neutralizing Gas activates on switch-in")
PLAYER(SPECIES_WEEZING) { Ability(ABILITY_NEUTRALIZING_GAS); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_NEUTRALIZING_GAS);
MESSAGE("Neutralizing gas filled the area!");
@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Neutralizing Gas prevents opponent's switch-in ability from
PLAYER(SPECIES_WEEZING) { Ability(ABILITY_NEUTRALIZING_GAS); }
OPPONENT(SPECIES_ZEKROM) { Ability(ABILITY_TERAVOLT); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_NEUTRALIZING_GAS);
NONE_OF {
@ -38,7 +38,7 @@ DOUBLE_BATTLE_TEST("Neutralizing Gas prevents ally's switch-in ability from acti
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(playerLeft, ABILITY_NEUTRALIZING_GAS);
NONE_OF {
@ -243,7 +243,7 @@ SINGLE_BATTLE_TEST("Neutralizing Gas prevents Trace from copying it")
PLAYER(SPECIES_RALTS) { Ability(ABILITY_TRACE); }
OPPONENT(SPECIES_WEEZING) { Ability(ABILITY_NEUTRALIZING_GAS); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ABILITY_NEUTRALIZING_GAS);
NONE_OF {

View File

@ -17,7 +17,7 @@ SINGLE_BATTLE_TEST("Normalize turns a move into a Normal-type move")
GIVEN {
ASSUME(GetSpeciesType(SPECIES_GASTLY, 0) == TYPE_GHOST);
PLAYER(SPECIES_GASTLY);
OPPONENT(SPECIES_SKITTY) { Ability(ability); Moves(MOVE_WATER_GUN);}
OPPONENT(SPECIES_SKITTY) { Ability(ability); Moves(MOVE_WATER_GUN); }
} WHEN {
TURN { MOVE(opponent, MOVE_WATER_GUN); }
} SCENE {
@ -43,7 +43,7 @@ SINGLE_BATTLE_TEST("Normalize affects status moves")
ASSUME(GetMoveType(MOVE_THUNDER_WAVE) == TYPE_ELECTRIC);
ASSUME(GetSpeciesType(SPECIES_DRILBUR, 0) == TYPE_GROUND);
PLAYER(SPECIES_DRILBUR);
OPPONENT(SPECIES_SKITTY) { Ability(ability); Moves(MOVE_THUNDER_WAVE);}
OPPONENT(SPECIES_SKITTY) { Ability(ability); Moves(MOVE_THUNDER_WAVE); }
} WHEN {
TURN { MOVE(opponent, MOVE_THUNDER_WAVE); }
} SCENE {
@ -70,7 +70,7 @@ SINGLE_BATTLE_TEST("Normalize still makes Freeze-Dry do super effective damage t
ASSUME(GetMoveEffect(MOVE_FREEZE_DRY) == EFFECT_SUPER_EFFECTIVE_ON_ARG);
ASSUME(GetSpeciesType(SPECIES_MUDKIP, 0) == TYPE_WATER);
PLAYER(SPECIES_MUDKIP);
OPPONENT(SPECIES_SKITTY) { Ability(ability); Moves(MOVE_FREEZE_DRY);}
OPPONENT(SPECIES_SKITTY) { Ability(ability); Moves(MOVE_FREEZE_DRY); }
} WHEN {
TURN { MOVE(opponent, MOVE_FREEZE_DRY); }
} SCENE {

View File

@ -218,7 +218,7 @@ DOUBLE_BATTLE_TEST("Opportunist copies the stat of each Pokémon that were raise
OPPONENT(SPECIES_ZACIAN) { Ability(ABILITY_INTREPID_SWORD); }
OPPONENT(SPECIES_ZACIAN) { Ability(ABILITY_INTREPID_SWORD); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponentLeft, ABILITY_INTREPID_SWORD);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft);
@ -281,7 +281,7 @@ SINGLE_BATTLE_TEST("Opportunist and Mirror Herb stack stat increases")
PLAYER(SPECIES_ZACIAN) { Ability(ABILITY_INTREPID_SWORD); }
OPPONENT(SPECIES_ESPATHRA) { Ability(ABILITY_OPPORTUNIST); Item(ITEM_MIRROR_HERB); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_INTREPID_SWORD);
ABILITY_POPUP(opponent, ABILITY_OPPORTUNIST);
@ -303,7 +303,7 @@ DOUBLE_BATTLE_TEST("Opportunist and Mirror Herb resolve correctly")
OPPONENT(SPECIES_MEOWSCARADA) { Item(ITEM_MIRROR_HERB); }
OPPONENT(SPECIES_ESPATHRA) { Ability(ABILITY_OPPORTUNIST); Item(ITEM_MIRROR_HERB); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(playerLeft, ABILITY_INTREPID_SWORD);
ABILITY_POPUP(opponentRight, ABILITY_OPPORTUNIST);

View File

@ -78,8 +78,8 @@ SINGLE_BATTLE_TEST("Overcoat blocks Effect Spore's effect (Gen6+)")
PARAMETRIZE { config = GEN_6; }
GIVEN {
WITH_CONFIG(CONFIG_POWDER_OVERCOAT, config);
PLAYER(SPECIES_PINECO) {Ability(ABILITY_OVERCOAT);}
OPPONENT(SPECIES_SHROOMISH) {Ability(ABILITY_EFFECT_SPORE);}
PLAYER(SPECIES_PINECO) { Ability(ABILITY_OVERCOAT); }
OPPONENT(SPECIES_SHROOMISH) { Ability(ABILITY_EFFECT_SPORE); }
} WHEN {
TURN { MOVE(player, MOVE_TACKLE, WITH_RNG(RNG_EFFECT_SPORE, 1)); }
} SCENE {

View File

@ -6,10 +6,10 @@ SINGLE_BATTLE_TEST("Own Tempo doesn't prevent Intimidate (Gen3-7)")
GIVEN {
WITH_CONFIG(CONFIG_UPDATED_INTIMIDATE, GEN_7);
ASSUME(GetMoveEffect(MOVE_CONFUSE_RAY) == EFFECT_CONFUSE);
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); };
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); }
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_INTIMIDATE);
NONE_OF {
@ -24,8 +24,8 @@ SINGLE_BATTLE_TEST("Own Tempo prevents Intimidate but no other stat down changes
GIVEN {
WITH_CONFIG(CONFIG_UPDATED_INTIMIDATE, GEN_8);
ASSUME(GetMoveEffect(MOVE_CONFUSE_RAY) == EFFECT_CONFUSE);
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); };
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); }
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); }
} WHEN {
TURN { MOVE(player, MOVE_SCARY_FACE); }
} SCENE {
@ -45,7 +45,7 @@ SINGLE_BATTLE_TEST("Own Tempo prevents confusion from moves by the opponent")
GIVEN {
ASSUME(GetMoveEffect(MOVE_CONFUSE_RAY) == EFFECT_CONFUSE);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); };
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); }
} WHEN {
TURN { MOVE(player, MOVE_CONFUSE_RAY); }
} SCENE {
@ -59,7 +59,7 @@ SINGLE_BATTLE_TEST("Own Tempo prevents confusion from moves by the user")
GIVEN {
ASSUME(MoveHasAdditionalEffectSelf(MOVE_PETAL_DANCE, MOVE_EFFECT_THRASH));
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); };
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); }
} WHEN {
TURN { MOVE(opponent, MOVE_PETAL_DANCE); }
TURN { MOVE(opponent, MOVE_PETAL_DANCE); }
@ -79,7 +79,7 @@ SINGLE_BATTLE_TEST("Mold Breaker ignores Own Tempo")
GIVEN {
ASSUME(GetMoveEffect(MOVE_CONFUSE_RAY) == EFFECT_CONFUSE);
PLAYER(SPECIES_PINSIR) { Ability(ABILITY_MOLD_BREAKER); }
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); };
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); }
} WHEN {
TURN { MOVE(player, MOVE_CONFUSE_RAY); }
} SCENE {
@ -92,8 +92,8 @@ SINGLE_BATTLE_TEST("Mold Breaker does not prevent Own Tempo from curing confusio
{
GIVEN {
ASSUME(GetMoveEffect(MOVE_CONFUSE_RAY) == EFFECT_CONFUSE);
PLAYER(SPECIES_PINSIR) { Ability(ABILITY_MOLD_BREAKER); };
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); };
PLAYER(SPECIES_PINSIR) { Ability(ABILITY_MOLD_BREAKER); }
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); }
} WHEN {
TURN { MOVE(player, MOVE_CONFUSE_RAY); }
} SCENE {
@ -112,7 +112,7 @@ SINGLE_BATTLE_TEST("Own Tempo cures confusion if it's obtained via Skill Swap")
GIVEN {
ASSUME(GetMoveEffect(MOVE_CONFUSE_RAY) == EFFECT_CONFUSE);
ASSUME(GetMoveEffect(MOVE_SKILL_SWAP) == EFFECT_SKILL_SWAP);
PLAYER(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); };
PLAYER(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_CONFUSE_RAY); }
@ -134,7 +134,7 @@ SINGLE_BATTLE_TEST("Own Tempo prevents confusion from items")
GIVEN {
ASSUME(gItemsInfo[ITEM_BERSERK_GENE].holdEffect == HOLD_EFFECT_BERSERK_GENE);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); Item(ITEM_BERSERK_GENE); };
OPPONENT(SPECIES_SLOWPOKE) { Ability(ABILITY_OWN_TEMPO); Item(ITEM_BERSERK_GENE); }
} WHEN {
TURN { MOVE(opponent, MOVE_SCRATCH); }
} SCENE {

View File

@ -28,8 +28,8 @@ SINGLE_BATTLE_TEST("Poison Heal heals from Toxic Poison damage are constant")
PLAYER(SPECIES_SHROOMISH) { Ability(ABILITY_POISON_HEAL); Status1(STATUS1_TOXIC_POISON); HP(1), MaxHP(400); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN { }
TURN {}
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_POISON_HEAL);
MESSAGE("The poisoning healed Shroomish a little bit!");

View File

@ -54,7 +54,7 @@ SINGLE_BATTLE_TEST("Poison Puppeteer does not trigger if poison is Toxic Spikes
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_TOXIC_SPIKES);}
TURN { MOVE(player, MOVE_TOXIC_SPIKES); }
TURN { SWITCH(opponent, 1); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC_SPIKES, player);

View File

@ -58,7 +58,7 @@ SINGLE_BATTLE_TEST("Poison Touch applies between multi-hit move hits")
ASSUME(MoveMakesContact(MOVE_ARM_THRUST));
ASSUME(gItemsInfo[ITEM_PECHA_BERRY].holdEffect == HOLD_EFFECT_CURE_PSN);
PLAYER(SPECIES_GRIMER) { Ability(ABILITY_POISON_TOUCH); }
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_PECHA_BERRY); };
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_PECHA_BERRY); }
} WHEN {
TURN { MOVE(player, MOVE_ARM_THRUST); }
} SCENE {

View File

@ -67,7 +67,7 @@ SINGLE_BATTLE_TEST("Prankster-affected moves called via Assist don't affect Dark
WITH_CONFIG(CONFIG_PRANKSTER_DARK_TYPES, gen);
PLAYER(SPECIES_UMBREON);
OPPONENT(SPECIES_VOLBEAT) { Ability(ABILITY_PRANKSTER); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_CONFUSE_RAY); };
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_CONFUSE_RAY); }
} WHEN {
TURN { MOVE(opponent, MOVE_ASSIST); }
} SCENE {
@ -89,7 +89,7 @@ DOUBLE_BATTLE_TEST("Prankster-affected moves called via Instruct do not affect D
GIVEN {
WITH_CONFIG(CONFIG_PRANKSTER_DARK_TYPES, gen);
PLAYER(SPECIES_VOLBEAT) { Speed(20); Ability(ABILITY_PRANKSTER); }
PLAYER(SPECIES_WOBBUFFET) { Speed(10);}
PLAYER(SPECIES_WOBBUFFET) { Speed(10); }
OPPONENT(SPECIES_UMBREON) { Speed(15); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(1); }
OPPONENT(SPECIES_UMBREON) { Speed(1); }
@ -134,7 +134,7 @@ DOUBLE_BATTLE_TEST("Moves called via Prankster-affected After you affect Dark-ty
{
GIVEN {
PLAYER(SPECIES_VOLBEAT) { Speed(1); Ability(ABILITY_PRANKSTER); }
PLAYER(SPECIES_WOBBUFFET) { Speed(1);}
PLAYER(SPECIES_WOBBUFFET) { Speed(1); }
OPPONENT(SPECIES_UMBREON) { Speed(10); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(10); }
} WHEN {

View File

@ -10,7 +10,7 @@ ASSUMPTIONS
SINGLE_BATTLE_TEST("Primordial Sea blocks damaging Fire-type moves")
{
GIVEN {
PLAYER(SPECIES_KYOGRE) {Item(ITEM_BLUE_ORB);}
PLAYER(SPECIES_KYOGRE) { Item(ITEM_BLUE_ORB); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_EMBER); }
@ -35,10 +35,10 @@ DOUBLE_BATTLE_TEST("Primordial Sea blocks damaging Fire-type moves and prints th
ASSUME(!IsBattleMoveStatus(MOVE_ERUPTION));
ASSUME(GetMoveType(MOVE_ERUPTION) == TYPE_FIRE);
ASSUME(GetMoveTarget(MOVE_ERUPTION) == MOVE_TARGET_BOTH);
PLAYER(SPECIES_KYOGRE) {Item(ITEM_BLUE_ORB); {Speed(5);}}
PLAYER(SPECIES_WOBBUFFET) {Speed(5);}
OPPONENT(SPECIES_WOBBUFFET) {Speed(10);}
OPPONENT(SPECIES_WOBBUFFET) {Speed(8);}
PLAYER(SPECIES_KYOGRE) { Item(ITEM_BLUE_ORB); Speed(5); }
PLAYER(SPECIES_WOBBUFFET) { Speed(5); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(10); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(8); }
} WHEN {
TURN { MOVE(opponentLeft, MOVE_ERUPTION); }
} SCENE {
@ -55,8 +55,8 @@ DOUBLE_BATTLE_TEST("Primordial Sea blocks damaging Fire-type moves and prints th
SINGLE_BATTLE_TEST("Primordial Sea does not block a move if Pokémon is asleep and uses a Fire-type move") // Sleep/confusion/paralysis all happen before the check for primal weather
{
GIVEN {
PLAYER(SPECIES_KYOGRE) {Item(ITEM_BLUE_ORB);}
OPPONENT(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);}
PLAYER(SPECIES_KYOGRE) { Item(ITEM_BLUE_ORB); }
OPPONENT(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); }
} WHEN {
TURN { MOVE(opponent, MOVE_EMBER); }
} SCENE {

View File

@ -61,7 +61,7 @@ SINGLE_BATTLE_TEST("Protosynthesis ability pop up activates only once during the
GIVEN {
WITH_CONFIG(CONFIG_ABILITY_WEATHER, GEN_6);
PLAYER(SPECIES_WALKING_WAKE) { Ability(ABILITY_PROTOSYNTHESIS); }
OPPONENT(SPECIES_NINETALES) { Ability(ABILITY_DROUGHT); };
OPPONENT(SPECIES_NINETALES) { Ability(ABILITY_DROUGHT); }
} WHEN {
for (turns = 0; turns < 5; turns++)
TURN {}
@ -90,7 +90,7 @@ SINGLE_BATTLE_TEST("Protosynthesis activates on switch-in")
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_ROARING_MOON) { Ability(ABILITY_PROTOSYNTHESIS); }
OPPONENT(SPECIES_NINETALES) { Ability(ABILITY_DROUGHT); };
OPPONENT(SPECIES_NINETALES) { Ability(ABILITY_DROUGHT); }
} WHEN {
TURN { SWITCH(player, 1); }
} SCENE {
@ -113,7 +113,7 @@ SINGLE_BATTLE_TEST("Protosynthesis prioritizes stats in the case of a tie in the
PLAYER(SPECIES_GREAT_TUSK) { Ability(ABILITY_PROTOSYNTHESIS); Attack(stats[0]); Defense(stats[1]); SpAttack(stats[2]); SpDefense(stats[3]); Speed(stats[4]); }
OPPONENT(SPECIES_GROUDON) { Ability(ABILITY_DROUGHT); Speed(5); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ABILITY_DROUGHT);
ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS);
@ -176,7 +176,7 @@ SINGLE_BATTLE_TEST("Protosynthesis activates even if the Pokémon is holding an
PLAYER(SPECIES_GREAT_TUSK) { Ability(ABILITY_PROTOSYNTHESIS); Item(ITEM_UTILITY_UMBRELLA); }
OPPONENT(SPECIES_NINETALES) { Ability(ABILITY_DROUGHT); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ABILITY_DROUGHT);
ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS);

View File

@ -40,7 +40,7 @@ SINGLE_BATTLE_TEST("Purifying Salt halves damage from dynamic Ghost-type moves",
SINGLE_BATTLE_TEST("Purifying Salt makes Rest fail")
{
GIVEN {
PLAYER(SPECIES_GARGANACL) { Ability(ABILITY_PURIFYING_SALT); HP(1); MaxHP(100);}
PLAYER(SPECIES_GARGANACL) { Ability(ABILITY_PURIFYING_SALT); HP(1); MaxHP(100); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_REST); }

View File

@ -143,7 +143,7 @@ SINGLE_BATTLE_TEST("Quark Drive activates on switch-in")
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_IRON_MOTH) { Ability(ABILITY_QUARK_DRIVE); }
OPPONENT(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); };
OPPONENT(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); }
} WHEN {
TURN { SWITCH(player, 1); }
} SCENE {
@ -159,9 +159,9 @@ SINGLE_BATTLE_TEST("Quark Drive activates on Electric Terrain even if not ground
GIVEN {
ASSUME(GetSpeciesType(SPECIES_IRON_JUGULIS, 0) == TYPE_FLYING || GetSpeciesType(SPECIES_IRON_JUGULIS, 1) == TYPE_FLYING);
PLAYER(SPECIES_IRON_JUGULIS) { Ability(ABILITY_QUARK_DRIVE); }
OPPONENT(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); };
OPPONENT(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ABILITY_ELECTRIC_SURGE);
ABILITY_POPUP(player, ABILITY_QUARK_DRIVE);
@ -180,7 +180,7 @@ SINGLE_BATTLE_TEST("Quark Drive prioritizes stats in the case of a tie in the fo
PLAYER(SPECIES_IRON_TREADS) { Ability(ABILITY_QUARK_DRIVE); Attack(stats[0]); Defense(stats[1]); SpAttack(stats[2]); SpDefense(stats[3]); Speed(stats[4]); }
OPPONENT(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); Speed(5); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ABILITY_ELECTRIC_SURGE);
ABILITY_POPUP(player, ABILITY_QUARK_DRIVE);

View File

@ -21,8 +21,8 @@ SINGLE_BATTLE_TEST("Rattled boosts speed by 1 when hit by Bug, Dark or Ghost typ
PARAMETRIZE { move = MOVE_SHADOW_PUNCH; }
PARAMETRIZE { move = MOVE_SCRATCH; }
GIVEN {
PLAYER(SPECIES_WOBBUFFET) {Speed(42) ;}
OPPONENT(SPECIES_SUDOWOODO) {Speed(40); Ability(ABILITY_RATTLED);}
PLAYER(SPECIES_WOBBUFFET) { Speed(42) ; }
OPPONENT(SPECIES_SUDOWOODO) { Speed(40); Ability(ABILITY_RATTLED); }
} WHEN {
TURN { MOVE(player, move); }
TURN { MOVE(player, move); }
@ -56,8 +56,8 @@ SINGLE_BATTLE_TEST("Rattled does not boost speed by 1 when affected by Intimidat
{
GIVEN {
WITH_CONFIG(CONFIG_UPDATED_INTIMIDATE, GEN_7);
PLAYER(SPECIES_GYARADOS) {Ability(ABILITY_INTIMIDATE); }
OPPONENT(SPECIES_SUDOWOODO) {Ability(ABILITY_RATTLED); }
PLAYER(SPECIES_GYARADOS) { Ability(ABILITY_INTIMIDATE); }
OPPONENT(SPECIES_SUDOWOODO) { Ability(ABILITY_RATTLED); }
} WHEN {
TURN {}
} SCENE {
@ -76,8 +76,8 @@ SINGLE_BATTLE_TEST("Rattled boosts speed by 1 when affected by Intimidate (Gen8+
{
GIVEN {
WITH_CONFIG(CONFIG_UPDATED_INTIMIDATE, GEN_8);
PLAYER(SPECIES_GYARADOS) {Ability(ABILITY_INTIMIDATE); }
OPPONENT(SPECIES_SUDOWOODO) {Ability(ABILITY_RATTLED); }
PLAYER(SPECIES_GYARADOS) { Ability(ABILITY_INTIMIDATE); }
OPPONENT(SPECIES_SUDOWOODO) { Ability(ABILITY_RATTLED); }
} WHEN {
TURN {}
} SCENE {
@ -97,7 +97,7 @@ SINGLE_BATTLE_TEST("Rattled triggers correctly when hit by U-Turn") // Specific
ASSUME(GetMoveType(MOVE_U_TURN) == TYPE_BUG);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_SUDOWOODO) {Ability(ABILITY_RATTLED); }
OPPONENT(SPECIES_SUDOWOODO) { Ability(ABILITY_RATTLED); }
OPPONENT(SPECIES_SUDOWOODO);
} WHEN {
TURN { MOVE(player, MOVE_U_TURN); SEND_OUT(player, 1); }

View File

@ -66,7 +66,7 @@ SINGLE_BATTLE_TEST("Rivalry doesn't modify power if the attacker is genderless",
GIVEN {
ASSUME(GetSpeciesAbility(SPECIES_PORYGON, 0) == ABILITY_TRACE);
PLAYER(SPECIES_PORYGON) { Ability(ABILITY_TRACE); } // No genderless mon naturally gets Rivalry
OPPONENT(species) { Ability(ability); };
OPPONENT(species) { Ability(ability); }
} WHEN {
TURN { MOVE(player, MOVE_SCRATCH); }
} SCENE {
@ -89,7 +89,7 @@ SINGLE_BATTLE_TEST("Rivalry doesn't modify power if the target is genderless", s
PARAMETRIZE { species = SPECIES_NIDOQUEEN; ability = ABILITY_RIVALRY; }
GIVEN {
PLAYER(species) { Ability(ability); };
PLAYER(species) { Ability(ability); }
OPPONENT(SPECIES_PORYGON);
} WHEN {
TURN { MOVE(player, MOVE_SCRATCH); }

View File

@ -8,9 +8,9 @@ SINGLE_BATTLE_TEST("Scrappy doesn't prevent Intimidate (Gen4-7)")
GIVEN {
WITH_CONFIG(CONFIG_UPDATED_INTIMIDATE, GEN_7);
PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); };
OPPONENT(SPECIES_KANGASKHAN) { Ability(ABILITY_SCRAPPY); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); }
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); }
OPPONENT(SPECIES_KANGASKHAN) { Ability(ABILITY_SCRAPPY); }
} WHEN {
TURN { MOVE(opponent, MOVE_SCRATCH); }
TURN { SWITCH(player, 1); MOVE(opponent, MOVE_SCRATCH); }
@ -36,9 +36,9 @@ SINGLE_BATTLE_TEST("Scrappy prevents Intimidate (Gen8+)")
GIVEN {
WITH_CONFIG(CONFIG_UPDATED_INTIMIDATE, GEN_8);
PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); };
OPPONENT(SPECIES_KANGASKHAN) { Ability(ABILITY_SCRAPPY); };
PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); }
PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); }
OPPONENT(SPECIES_KANGASKHAN) { Ability(ABILITY_SCRAPPY); }
} WHEN {
TURN { MOVE(opponent, MOVE_SCRATCH); }
TURN { SWITCH(player, 1); MOVE(opponent, MOVE_SCRATCH); }
@ -62,7 +62,7 @@ SINGLE_BATTLE_TEST("Scrappy allows to hit Ghost-type Pokémon with Normal- and F
PARAMETRIZE { move = MOVE_KARATE_CHOP; }
GIVEN {
PLAYER(SPECIES_KANGASKHAN) { Ability(ABILITY_SCRAPPY); };
PLAYER(SPECIES_KANGASKHAN) { Ability(ABILITY_SCRAPPY); }
OPPONENT(SPECIES_GASTLY);
} WHEN {
TURN { MOVE(player, move); }
@ -79,8 +79,8 @@ SINGLE_BATTLE_TEST("Scrappy doesn't bypass a Ghost-type's Wonder Guard")
PARAMETRIZE { move = MOVE_KARATE_CHOP; }
GIVEN {
PLAYER(SPECIES_KANGASKHAN) { Ability(ABILITY_SCRAPPY); };
OPPONENT(SPECIES_SHEDINJA) { Ability(ABILITY_WONDER_GUARD); };
PLAYER(SPECIES_KANGASKHAN) { Ability(ABILITY_SCRAPPY); }
OPPONENT(SPECIES_SHEDINJA) { Ability(ABILITY_WONDER_GUARD); }
} WHEN {
TURN { MOVE(player, move); }
} SCENE {

View File

@ -68,7 +68,7 @@ SINGLE_BATTLE_TEST("Sheer Force doesn't boost Present", s16 damage)
} WHEN {
//Test will fail if present heals because the hp change would be 0
//so we want a damaging version of present
TURN { MOVE(player, MOVE_PRESENT, WITH_RNG(RNG_PRESENT, 1)); }
TURN { MOVE(player, MOVE_PRESENT, WITH_RNG(RNG_PRESENT, 1)); }
} SCENE {
HP_BAR(opponent, captureDamage: &results[i].damage);
} FINALLY {
@ -219,7 +219,7 @@ SINGLE_BATTLE_TEST("Sheer Force doesn't boost Double Shock", s16 damage)
PARAMETRIZE { move = MOVE_CELEBRATE; }
GIVEN {
PLAYER(SPECIES_PIKACHU);
OPPONENT(SPECIES_TAUROS) { Ability(ABILITY_SHEER_FORCE); };
OPPONENT(SPECIES_TAUROS) { Ability(ABILITY_SHEER_FORCE); }
} WHEN {
TURN { MOVE(opponent, move); MOVE(player, MOVE_DOUBLE_SHOCK); }
} SCENE {
@ -270,7 +270,7 @@ SINGLE_BATTLE_TEST("Sheer Force doesn't boost Aura Wheel", s16 damage)
PARAMETRIZE { move = MOVE_CELEBRATE; }
GIVEN {
PLAYER(SPECIES_MORPEKO);
OPPONENT(SPECIES_TAUROS) { Ability(ABILITY_SHEER_FORCE); };
OPPONENT(SPECIES_TAUROS) { Ability(ABILITY_SHEER_FORCE); }
} WHEN {
TURN { MOVE(opponent, move); MOVE(player, MOVE_AURA_WHEEL); }
} SCENE {
@ -287,7 +287,7 @@ SINGLE_BATTLE_TEST("Sheer Force doesn't boost Hyperspace Fury", s16 damage)
PARAMETRIZE { move = MOVE_CELEBRATE; }
GIVEN {
PLAYER(SPECIES_HOOPA_UNBOUND);
OPPONENT(SPECIES_TAUROS) { Ability(ABILITY_SHEER_FORCE); };
OPPONENT(SPECIES_TAUROS) { Ability(ABILITY_SHEER_FORCE); }
} WHEN {
TURN { MOVE(opponent, move); MOVE(player, MOVE_HYPERSPACE_FURY); }
} SCENE {
@ -664,11 +664,11 @@ DOUBLE_BATTLE_TEST("Sheer Force only boosts the damage of moves it's supposed to
case EFFECT_SOLAR_BEAM:
case EFFECT_SKY_DROP:
TURN { SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
TURN { ; }
TURN {}
break;
case EFFECT_FUTURE_SIGHT:
TURN { ; }
TURN { ; }
TURN {}
TURN {}
break;
case EFFECT_BIDE:
TURN { MOVE(opponentRight, MOVE_WATER_GUN, target: playerLeft); MOVE(playerRight, MOVE_WATER_GUN, target: opponentLeft); SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
@ -752,11 +752,11 @@ DOUBLE_BATTLE_TEST("Sheer Force only boosts the damage of moves it's supposed to
case EFFECT_SOLAR_BEAM:
case EFFECT_SKY_DROP:
TURN { SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
TURN { ; }
TURN {}
break;
case EFFECT_FUTURE_SIGHT:
TURN { ; }
TURN { ; }
TURN {}
TURN {}
break;
case EFFECT_BIDE:
TURN { MOVE(opponentRight, MOVE_WATER_GUN, target: playerLeft); MOVE(playerRight, MOVE_WATER_GUN, target: opponentLeft); SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
@ -840,11 +840,11 @@ DOUBLE_BATTLE_TEST("Sheer Force only boosts the damage of moves it's supposed to
case EFFECT_SOLAR_BEAM:
case EFFECT_SKY_DROP:
TURN { SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
TURN { ; }
TURN {}
break;
case EFFECT_FUTURE_SIGHT:
TURN { ; }
TURN { ; }
TURN {}
TURN {}
break;
case EFFECT_BIDE:
TURN { MOVE(opponentRight, MOVE_WATER_GUN, target: playerLeft); MOVE(playerRight, MOVE_WATER_GUN, target: opponentLeft); SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
@ -928,11 +928,11 @@ DOUBLE_BATTLE_TEST("Sheer Force only boosts the damage of moves it's supposed to
case EFFECT_SOLAR_BEAM:
case EFFECT_SKY_DROP:
TURN { SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
TURN { ; }
TURN {}
break;
case EFFECT_FUTURE_SIGHT:
TURN { ; }
TURN { ; }
TURN {}
TURN {}
break;
case EFFECT_BIDE:
TURN { MOVE(opponentRight, MOVE_WATER_GUN, target: playerLeft); MOVE(playerRight, MOVE_WATER_GUN, target: opponentLeft); SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
@ -1016,11 +1016,11 @@ DOUBLE_BATTLE_TEST("Sheer Force only boosts the damage of moves it's supposed to
case EFFECT_SOLAR_BEAM:
case EFFECT_SKY_DROP:
TURN { SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
TURN { ; }
TURN {}
break;
case EFFECT_FUTURE_SIGHT:
TURN { ; }
TURN { ; }
TURN {}
TURN {}
break;
case EFFECT_BIDE:
TURN { MOVE(opponentRight, MOVE_WATER_GUN, target: playerLeft); MOVE(playerRight, MOVE_WATER_GUN, target: opponentLeft); SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
@ -1104,11 +1104,11 @@ DOUBLE_BATTLE_TEST("Sheer Force only boosts the damage of moves it's supposed to
case EFFECT_SOLAR_BEAM:
case EFFECT_SKY_DROP:
TURN { SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
TURN { ; }
TURN {}
break;
case EFFECT_FUTURE_SIGHT:
TURN { ; }
TURN { ; }
TURN {}
TURN {}
break;
case EFFECT_BIDE:
TURN { MOVE(opponentRight, MOVE_WATER_GUN, target: playerLeft); MOVE(playerRight, MOVE_WATER_GUN, target: opponentLeft); SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
@ -1192,11 +1192,11 @@ DOUBLE_BATTLE_TEST("Sheer Force only boosts the damage of moves it's supposed to
case EFFECT_SOLAR_BEAM:
case EFFECT_SKY_DROP:
TURN { SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
TURN { ; }
TURN {}
break;
case EFFECT_FUTURE_SIGHT:
TURN { ; }
TURN { ; }
TURN {}
TURN {}
break;
case EFFECT_BIDE:
TURN { MOVE(opponentRight, MOVE_WATER_GUN, target: playerLeft); MOVE(playerRight, MOVE_WATER_GUN, target: opponentLeft); SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
@ -1280,11 +1280,11 @@ DOUBLE_BATTLE_TEST("Sheer Force only boosts the damage of moves it's supposed to
case EFFECT_SOLAR_BEAM:
case EFFECT_SKY_DROP:
TURN { SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
TURN { ; }
TURN {}
break;
case EFFECT_FUTURE_SIGHT:
TURN { ; }
TURN { ; }
TURN {}
TURN {}
break;
case EFFECT_BIDE:
TURN { MOVE(opponentRight, MOVE_WATER_GUN, target: playerLeft); MOVE(playerRight, MOVE_WATER_GUN, target: opponentLeft); SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
@ -1369,11 +1369,11 @@ DOUBLE_BATTLE_TEST("Sheer Force only boosts the damage of moves it's supposed to
case EFFECT_SOLAR_BEAM:
case EFFECT_SKY_DROP:
TURN { SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }
TURN { ; }
TURN {}
break;
case EFFECT_FUTURE_SIGHT:
TURN { ; }
TURN { ; }
TURN {}
TURN {}
break;
case EFFECT_BIDE:
TURN { MOVE(opponentRight, MOVE_WATER_GUN, target: playerLeft); MOVE(playerRight, MOVE_WATER_GUN, target: opponentLeft); SKIP_TURN(playerLeft); SKIP_TURN(opponentLeft); }

View File

@ -41,7 +41,7 @@ SINGLE_BATTLE_TEST("Minior Core transforms into Minior Meteor on battle start if
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_MINIOR_CORE) { Ability(ABILITY_SHIELDS_DOWN); HP(51); MaxHP(101); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ABILITY_SHIELDS_DOWN);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, opponent);

View File

@ -20,8 +20,8 @@ SINGLE_BATTLE_TEST("Stamina raises Defense by 1 when hit by a move")
s16 turnOneHit, turnTwoHit;
u16 move;
PARAMETRIZE {move = MOVE_SCRATCH; }
PARAMETRIZE {move = MOVE_GUST; }
PARAMETRIZE { move = MOVE_SCRATCH; }
PARAMETRIZE { move = MOVE_GUST; }
GIVEN {
ASSUME(!IsBattleMoveStatus(MOVE_SCRATCH));
@ -51,18 +51,18 @@ DOUBLE_BATTLE_TEST("Stamina activates correctly for every battler with the abili
{
enum Ability abilityLeft, abilityRight;
PARAMETRIZE {abilityLeft = ABILITY_NONE, abilityRight = ABILITY_STAMINA; }
PARAMETRIZE {abilityLeft = ABILITY_STAMINA, abilityRight = ABILITY_NONE; }
PARAMETRIZE {abilityLeft = ABILITY_STAMINA, abilityRight = ABILITY_STAMINA; }
PARAMETRIZE { abilityLeft = ABILITY_NONE, abilityRight = ABILITY_STAMINA; }
PARAMETRIZE { abilityLeft = ABILITY_STAMINA, abilityRight = ABILITY_NONE; }
PARAMETRIZE { abilityLeft = ABILITY_STAMINA, abilityRight = ABILITY_STAMINA; }
GIVEN {
ASSUME(GetMoveTarget(MOVE_EARTHQUAKE) == MOVE_TARGET_FOES_AND_ALLY);
PLAYER(SPECIES_WOBBUFFET) { Ability(abilityLeft); Speed(10); }
PLAYER(SPECIES_WOBBUFFET) { Ability(abilityRight); Speed(5); }
OPPONENT(SPECIES_WOBBUFFET) {Speed(20); }
OPPONENT(SPECIES_WOBBUFFET) {Speed(15); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(20); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(15); }
} WHEN {
TURN { MOVE(opponentLeft, MOVE_EARTHQUAKE);}
TURN { MOVE(opponentLeft, MOVE_EARTHQUAKE); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, opponentLeft);

View File

@ -63,7 +63,7 @@ DOUBLE_BATTLE_TEST("Stench doesn't trigger if partner uses a move")
PLAYER(SPECIES_WOBBUFFET) { Speed(20); }
PLAYER(SPECIES_WYNAUT) { Speed(10); }
OPPONENT(SPECIES_GRIMER) { Speed(100); Ability(ABILITY_STENCH); }
OPPONENT(SPECIES_WOBBUFFET) {Speed(50); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(50); }
} WHEN {
TURN {
MOVE(playerLeft, MOVE_FAKE_OUT, target: opponentLeft);

View File

@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Super Luck increases the critical hit ratio by 1 stage")
GIVEN {
ASSUME(GetSpeciesBaseSpeed(SPECIES_TOGEPI) == 20);
WITH_CONFIG(CONFIG_CRIT_CHANCE, genConfig);
PLAYER(SPECIES_TOGEPI) { Ability(ABILITY_SUPER_LUCK); };
PLAYER(SPECIES_TOGEPI) { Ability(ABILITY_SUPER_LUCK); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_SCRATCH); }

View File

@ -34,7 +34,7 @@ DOUBLE_BATTLE_TEST("Supersweet Syrup lowers evasion of both opposing mon's in ba
OPPONENT(SPECIES_DIPPLIN) { Ability(ABILITY_SUPERSWEET_SYRUP); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponentLeft, ABILITY_SUPERSWEET_SYRUP);
MESSAGE("A supersweet aroma is wafting from the syrup covering the opposing Dipplin!");

View File

@ -96,7 +96,7 @@ SINGLE_BATTLE_TEST("Supreme Overlord's message displays correctly after all batt
{
GIVEN {
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
PLAYER(SPECIES_WOBBUFFET) { HP(1);}
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_KINGAMBIT) { Ability(ABILITY_SUPREME_OVERLORD); }
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
@ -119,7 +119,7 @@ SINGLE_BATTLE_TEST("Supreme Overlord's message displays correctly after all batt
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { HP(1);}
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
OPPONENT(SPECIES_KINGAMBIT) { Ability(ABILITY_SUPREME_OVERLORD); }
} WHEN {
TURN { MOVE(player, MOVE_EXPLOSION); SEND_OUT(player, 1); SEND_OUT(opponent, 1); }

View File

@ -34,7 +34,7 @@ SINGLE_BATTLE_TEST("Sword of Ruin's message displays correctly after all battler
{
GIVEN {
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
PLAYER(SPECIES_WOBBUFFET) { HP(1);}
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_CHIEN_PAO);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
@ -58,7 +58,7 @@ SINGLE_BATTLE_TEST("Sword of Ruin's message displays correctly after all battler
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { HP(1);}
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
OPPONENT(SPECIES_CHIEN_PAO);
} WHEN {
TURN { MOVE(player, MOVE_EXPLOSION); SEND_OUT(player, 1); SEND_OUT(opponent, 1); }

View File

@ -34,7 +34,7 @@ SINGLE_BATTLE_TEST("Tablets of Ruin's message displays correctly after all battl
{
GIVEN {
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
PLAYER(SPECIES_WOBBUFFET) { HP(1);}
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_WO_CHIEN);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
@ -58,7 +58,7 @@ SINGLE_BATTLE_TEST("Tablets of Ruin's message displays correctly after all battl
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { HP(1);}
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
OPPONENT(SPECIES_WO_CHIEN);
} WHEN {
TURN { MOVE(player, MOVE_EXPLOSION); SEND_OUT(player, 1); SEND_OUT(opponent, 1); }

View File

@ -89,7 +89,7 @@ SINGLE_BATTLE_TEST("Tangling Hair does not trigger on Clear Body")
{
GIVEN {
PLAYER(SPECIES_DUGTRIO) { Ability(ABILITY_TANGLING_HAIR); }
OPPONENT(SPECIES_BELDUM) { Ability(ABILITY_CLEAR_BODY); };
OPPONENT(SPECIES_BELDUM) { Ability(ABILITY_CLEAR_BODY); }
} WHEN {
TURN { MOVE(opponent, MOVE_SCRATCH); }
} SCENE {
@ -103,7 +103,7 @@ SINGLE_BATTLE_TEST("Tangling Hair will trigger if move is boosted by Sheer Force
ASSUME(MoveIsAffectedBySheerForce(MOVE_POISON_JAB));
GIVEN {
PLAYER(SPECIES_DUGTRIO) { Ability(ABILITY_TANGLING_HAIR); }
OPPONENT(SPECIES_NIDOKING) { Ability(ABILITY_SHEER_FORCE); };
OPPONENT(SPECIES_NIDOKING) { Ability(ABILITY_SHEER_FORCE); }
} WHEN {
TURN { MOVE(opponent, MOVE_POISON_JAB); }
} SCENE {

View File

@ -7,7 +7,7 @@ SINGLE_BATTLE_TEST("Tera Shell makes all moves against Terapagos not very effect
PARAMETRIZE { hp = 100; }
PARAMETRIZE { hp = 99; }
GIVEN {
PLAYER(SPECIES_TERAPAGOS_TERASTAL) { Ability(ABILITY_TERA_SHELL); HP(hp); MaxHP(100);}
PLAYER(SPECIES_TERAPAGOS_TERASTAL) { Ability(ABILITY_TERA_SHELL); HP(hp); MaxHP(100); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_SCRATCH); }

View File

@ -7,7 +7,7 @@ SINGLE_BATTLE_TEST("Tera Shift transforms Terapagos into its Terastal form on sw
PLAYER(SPECIES_TERAPAGOS_NORMAL) { Ability(ABILITY_TERA_SHIFT); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { ; }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_TERA_SHIFT);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player);
@ -23,7 +23,7 @@ SINGLE_BATTLE_TEST("Tera Shift can't be suppressed by Neutralizing Gas")
PLAYER(SPECIES_TERAPAGOS_NORMAL) { Ability(ABILITY_TERA_SHIFT); }
OPPONENT(SPECIES_KOFFING) { Ability(ABILITY_NEUTRALIZING_GAS); }
} WHEN {
TURN { ; }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ABILITY_NEUTRALIZING_GAS);
ABILITY_POPUP(player, ABILITY_TERA_SHIFT);

View File

@ -6,8 +6,8 @@ DOUBLE_BATTLE_TEST("Teraform Zero clears weather and terrain upon activation")
GIVEN {
PLAYER(SPECIES_TERAPAGOS_TERASTAL);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_KYOGRE) {Ability(ABILITY_DRIZZLE); }
OPPONENT(SPECIES_TAPU_KOKO) {Ability(ABILITY_ELECTRIC_SURGE); }
OPPONENT(SPECIES_KYOGRE) { Ability(ABILITY_DRIZZLE); }
OPPONENT(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); }
} WHEN {
TURN { MOVE(playerLeft, MOVE_CELEBRATE, gimmick: GIMMICK_TERA); }
} SCENE {
@ -22,9 +22,9 @@ DOUBLE_BATTLE_TEST("Teraform Zero can be supressed")
GIVEN {
PLAYER(SPECIES_TERAPAGOS_TERASTAL);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WEEZING) {Ability(ABILITY_NEUTRALIZING_GAS); }
OPPONENT(SPECIES_KYOGRE) {Ability(ABILITY_DRIZZLE); }
OPPONENT(SPECIES_TAPU_KOKO) {Ability(ABILITY_ELECTRIC_SURGE); }
PLAYER(SPECIES_WEEZING) { Ability(ABILITY_NEUTRALIZING_GAS); }
OPPONENT(SPECIES_KYOGRE) { Ability(ABILITY_DRIZZLE); }
OPPONENT(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); }
} WHEN {
TURN { SWITCH(playerRight, 2); MOVE(playerLeft, MOVE_CELEBRATE, gimmick: GIMMICK_TERA); }
} SCENE {
@ -87,10 +87,10 @@ DOUBLE_BATTLE_TEST("Teraform Zero shouldn't cause Neutralizing Gas to show it's
{
GIVEN {
PLAYER(SPECIES_TERAPAGOS_TERASTAL);
PLAYER(SPECIES_ABSOL) {Ability(ABILITY_PRESSURE); }
PLAYER(SPECIES_WEEZING) {Ability(ABILITY_NEUTRALIZING_GAS); }
OPPONENT(SPECIES_KYOGRE) {Ability(ABILITY_DRIZZLE); }
OPPONENT(SPECIES_TAPU_KOKO) {Ability(ABILITY_ELECTRIC_SURGE); }
PLAYER(SPECIES_ABSOL) { Ability(ABILITY_PRESSURE); }
PLAYER(SPECIES_WEEZING) { Ability(ABILITY_NEUTRALIZING_GAS); }
OPPONENT(SPECIES_KYOGRE) { Ability(ABILITY_DRIZZLE); }
OPPONENT(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); }
} WHEN {
TURN { SWITCH(playerRight, 2); MOVE(playerLeft, MOVE_CELEBRATE, gimmick: GIMMICK_TERA); }
} SCENE {

View File

@ -11,8 +11,8 @@ SINGLE_BATTLE_TEST("Toxic Debris sets Toxic Spikes on the opposing side if hit b
{
u32 move;
PARAMETRIZE { move = MOVE_SCRATCH;}
PARAMETRIZE { move = MOVE_SWIFT;}
PARAMETRIZE { move = MOVE_SCRATCH; }
PARAMETRIZE { move = MOVE_SWIFT; }
GIVEN {
PLAYER(SPECIES_GLIMMORA) { Ability(ABILITY_TOXIC_DEBRIS); }

View File

@ -7,7 +7,7 @@ SINGLE_BATTLE_TEST("Trace copies opponents ability")
PLAYER(SPECIES_RALTS) { Ability(ABILITY_TRACE); }
OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_TRACE);
MESSAGE("It traced the opposing Torchic's Blaze!");
@ -48,7 +48,7 @@ DOUBLE_BATTLE_TEST("Trace copies opponents ability randomly")
{
enum Ability ability1, ability2;
PARAMETRIZE { ability1 = ABILITY_SPEED_BOOST; ability2 = ABILITY_BLAZE;}
PARAMETRIZE { ability1 = ABILITY_SPEED_BOOST; ability2 = ABILITY_BLAZE; }
PARAMETRIZE { ability1 = ABILITY_BLAZE; ability2 = ABILITY_SPEED_BOOST; }
PASSES_RANDOMLY(1, 2, RNG_TRACE);
@ -58,7 +58,7 @@ DOUBLE_BATTLE_TEST("Trace copies opponents ability randomly")
OPPONENT(SPECIES_TORCHIC) { Ability(ability1); }
OPPONENT(SPECIES_TORCHIC) { Ability(ability2); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(playerLeft, ABILITY_TRACE);
MESSAGE("It traced the opposing Torchic's Blaze!");
@ -87,7 +87,7 @@ SINGLE_BATTLE_TEST("Trace copies opponent's Intimidate and triggers it immediate
PLAYER(SPECIES_RALTS) { Ability(ABILITY_TRACE); }
OPPONENT(SPECIES_MASQUERAIN) { Ability(ABILITY_INTIMIDATE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ABILITY_TRACE);
ABILITY_POPUP(player, ABILITY_INTIMIDATE);
@ -103,7 +103,7 @@ DOUBLE_BATTLE_TEST("Trace respects the turn order")
OPPONENT(SPECIES_HIPPOWDON) { Speed(10); Ability(ABILITY_SAND_STREAM); }
OPPONENT(SPECIES_DEOXYS_SPEED) { Speed(30); Ability(ABILITY_PRESSURE); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(playerLeft, ABILITY_PRESSURE);
ABILITY_POPUP(opponentRight, ABILITY_PRESSURE);

View File

@ -11,7 +11,7 @@ SINGLE_BATTLE_TEST("Unburden doubles speed once user uses item")
OPPONENT(SPECIES_RILLABOOM) { Speed(7); Ability(ABILITY_GRASSY_SURGE); }
} WHEN {
TURN { MOVE(opponent, MOVE_U_TURN); SEND_OUT(opponent, 1); }
TURN { }
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, opponent);
ABILITY_POPUP(opponent, ABILITY_GRASSY_SURGE);
@ -31,7 +31,7 @@ SINGLE_BATTLE_TEST("Unburden doubles speed once user gets their item knocked off
OPPONENT(SPECIES_WOBBUFFET) { Speed(7); }
} WHEN {
TURN { MOVE(opponent, MOVE_KNOCK_OFF); }
TURN { }
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, opponent);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ITEM_KNOCKOFF, player);
@ -53,7 +53,7 @@ SINGLE_BATTLE_TEST("Unburden doesn't activate when item is consumed in Neutraliz
} WHEN {
TURN { MOVE(opponent, MOVE_KNOCK_OFF); }
TURN { MOVE(opponent, MOVE_U_TURN); SEND_OUT(opponent, 1); }
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(opponent, ABILITY_NEUTRALIZING_GAS);
ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, opponent);
@ -81,7 +81,7 @@ SINGLE_BATTLE_TEST("Unburden doubling speed effect is ignored by Neutralizing Ga
TURN { MOVE(opponent, MOVE_KNOCK_OFF); }
TURN { MOVE(opponent, MOVE_U_TURN); SEND_OUT(opponent, 1); }
TURN { MOVE(opponent, MOVE_U_TURN); SEND_OUT(opponent, 0); }
TURN { }
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, opponent);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ITEM_KNOCKOFF, player);

View File

@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Unnerve prevents opposing Pokémon from eating their own ber
PLAYER(mon) { Ability(ability); }
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_RAWST_BERRY); Status1(STATUS1_BURN); }
} WHEN {
TURN { }
TURN {}
} SCENE {
ABILITY_POPUP(player, ability);
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent);
@ -104,7 +104,7 @@ DOUBLE_BATTLE_TEST("Unnerve stops applying on death but applies on revive")
{
u16 mon;
u16 ability;
PARAMETRIZE { mon = SPECIES_JOLTIK, ability = ABILITY_UNNERVE;}
PARAMETRIZE { mon = SPECIES_JOLTIK, ability = ABILITY_UNNERVE; }
PARAMETRIZE { mon = SPECIES_CALYREX_ICE, ability = ABILITY_AS_ONE_ICE_RIDER; }
GIVEN {
ASSUME(gItemsInfo[ITEM_RAWST_BERRY].holdEffect == HOLD_EFFECT_CURE_BRN);

View File

@ -34,7 +34,7 @@ SINGLE_BATTLE_TEST("Vessel of Ruin's message displays correctly after all battle
{
GIVEN {
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
PLAYER(SPECIES_WOBBUFFET) { HP(1);}
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_TING_LU);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
@ -58,7 +58,7 @@ SINGLE_BATTLE_TEST("Vessel of Ruin's message displays correctly after all battle
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { HP(1);}
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
OPPONENT(SPECIES_TING_LU);
} WHEN {
TURN { MOVE(player, MOVE_EXPLOSION); SEND_OUT(player, 1); SEND_OUT(opponent, 1); }

View File

@ -21,12 +21,12 @@ SINGLE_BATTLE_TEST("Wind Power sets up Charge for player when hit by a wind move
s16 dmgBefore, dmgAfter;
u16 move;
PARAMETRIZE {move = MOVE_SCRATCH; }
PARAMETRIZE {move = MOVE_AIR_CUTTER; }
PARAMETRIZE { move = MOVE_SCRATCH; }
PARAMETRIZE { move = MOVE_AIR_CUTTER; }
GIVEN {
PLAYER(SPECIES_WATTREL) { Ability(ABILITY_WIND_POWER); Speed(10); }
OPPONENT(SPECIES_PERSIAN) {Ability(ABILITY_LIMBER); Speed(5) ;} // Limber, so it doesn't get paralyzed.
OPPONENT(SPECIES_PERSIAN) { Ability(ABILITY_LIMBER); Speed(5); } // Limber, so it doesn't get paralyzed.
} WHEN {
TURN { MOVE(player, MOVE_NUZZLE), MOVE(opponent, move); }
TURN { MOVE(player, MOVE_NUZZLE), MOVE(opponent, move); }
@ -66,11 +66,11 @@ SINGLE_BATTLE_TEST("Wind Power sets up Charge for opponent when hit by a wind mo
s16 dmgBefore, dmgAfter;
u16 move;
PARAMETRIZE {move = MOVE_SCRATCH; }
PARAMETRIZE {move = MOVE_AIR_CUTTER; }
PARAMETRIZE { move = MOVE_SCRATCH; }
PARAMETRIZE { move = MOVE_AIR_CUTTER; }
GIVEN {
PLAYER(SPECIES_PERSIAN) {Ability(ABILITY_LIMBER); Speed(5) ;} // Limber, so it doesn't get paralyzed.
PLAYER(SPECIES_PERSIAN) { Ability(ABILITY_LIMBER); Speed(5); } // Limber, so it doesn't get paralyzed.
OPPONENT(SPECIES_WATTREL) { Ability(ABILITY_WIND_POWER); Speed(10); }
} WHEN {
TURN { MOVE(opponent, MOVE_NUZZLE), MOVE(player, move); }
@ -111,12 +111,12 @@ SINGLE_BATTLE_TEST("Wind Power sets up Charge for only one attack when hit by a
s16 dmgCharged, dmgAfter;
u16 move;
PARAMETRIZE {move = MOVE_SCRATCH; }
PARAMETRIZE {move = MOVE_AIR_CUTTER; }
PARAMETRIZE { move = MOVE_SCRATCH; }
PARAMETRIZE { move = MOVE_AIR_CUTTER; }
GIVEN {
PLAYER(SPECIES_WATTREL) { Ability(ABILITY_WIND_POWER); Speed(5); }
OPPONENT(SPECIES_PERSIAN) {Ability(ABILITY_LIMBER); Speed(10) ;} // Limber, so it doesn't get paralyzed.
OPPONENT(SPECIES_PERSIAN) { Ability(ABILITY_LIMBER); Speed(10); } // Limber, so it doesn't get paralyzed.
} WHEN {
TURN { MOVE(opponent, move); MOVE(player, MOVE_NUZZLE); }
TURN { MOVE(player, MOVE_NUZZLE); }
@ -148,9 +148,9 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly for every battler with the ab
{
enum Ability abilityLeft, abilityRight;
PARAMETRIZE {abilityLeft = ABILITY_NONE, abilityRight = ABILITY_WIND_POWER;}
PARAMETRIZE {abilityLeft = ABILITY_WIND_POWER, abilityRight = ABILITY_NONE; }
PARAMETRIZE {abilityLeft = ABILITY_WIND_POWER, abilityRight = ABILITY_WIND_POWER; }
PARAMETRIZE { abilityLeft = ABILITY_NONE, abilityRight = ABILITY_WIND_POWER; }
PARAMETRIZE { abilityLeft = ABILITY_WIND_POWER, abilityRight = ABILITY_NONE; }
PARAMETRIZE { abilityLeft = ABILITY_WIND_POWER, abilityRight = ABILITY_WIND_POWER; }
GIVEN {
PLAYER(SPECIES_WATTREL) { Ability(abilityLeft); Speed(10); }
@ -158,7 +158,7 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly for every battler with the ab
OPPONENT(SPECIES_PERSIAN) { Ability(ABILITY_LIMBER); Speed(20); }
OPPONENT(SPECIES_PERSIAN) { Ability(ABILITY_LIMBER); Speed(15); }
} WHEN {
TURN { MOVE(opponentLeft, MOVE_AIR_CUTTER); MOVE(opponentRight, MOVE_AIR_CUTTER);}
TURN { MOVE(opponentLeft, MOVE_AIR_CUTTER); MOVE(opponentRight, MOVE_AIR_CUTTER); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_AIR_CUTTER, opponentLeft);
@ -189,9 +189,9 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly for every battler with the ab
{
enum Ability abilityLeft, abilityRight;
PARAMETRIZE {abilityLeft = ABILITY_NONE, abilityRight = ABILITY_WIND_POWER; }
PARAMETRIZE {abilityLeft = ABILITY_WIND_POWER, abilityRight = ABILITY_NONE; }
PARAMETRIZE {abilityLeft = ABILITY_WIND_POWER, abilityRight = ABILITY_WIND_POWER; }
PARAMETRIZE { abilityLeft = ABILITY_NONE, abilityRight = ABILITY_WIND_POWER; }
PARAMETRIZE { abilityLeft = ABILITY_WIND_POWER, abilityRight = ABILITY_NONE; }
PARAMETRIZE { abilityLeft = ABILITY_WIND_POWER, abilityRight = ABILITY_WIND_POWER; }
GIVEN {
PLAYER(SPECIES_WATTREL) { Ability(abilityLeft); Speed(10); }
@ -199,7 +199,7 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly for every battler with the ab
OPPONENT(SPECIES_PERSIAN) { Ability(ABILITY_LIMBER); Speed(20); }
OPPONENT(SPECIES_PERSIAN) { Ability(ABILITY_LIMBER); Speed(15); }
} WHEN {
TURN { MOVE(opponentLeft, MOVE_PETAL_BLIZZARD);}
TURN { MOVE(opponentLeft, MOVE_PETAL_BLIZZARD); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_PETAL_BLIZZARD, opponentLeft);
@ -228,8 +228,8 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly when Tailwind is used")
{
bool8 opponentSide;
PARAMETRIZE {opponentSide = TRUE;}
PARAMETRIZE {opponentSide = FALSE;}
PARAMETRIZE { opponentSide = TRUE; }
PARAMETRIZE { opponentSide = FALSE; }
GIVEN {
ASSUME(GetMoveEffect(MOVE_TAILWIND) == EFFECT_TAILWIND);
@ -238,7 +238,7 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly when Tailwind is used")
OPPONENT(SPECIES_WATTREL) { Ability(ABILITY_WIND_POWER); Speed(20); }
OPPONENT(SPECIES_WATTREL) { Ability(ABILITY_WIND_POWER); Speed(15); }
} WHEN {
TURN { MOVE((opponentSide == TRUE) ? opponentLeft : playerLeft, MOVE_TAILWIND);}
TURN { MOVE((opponentSide == TRUE) ? opponentLeft : playerLeft, MOVE_TAILWIND); }
} SCENE {
if (opponentSide) {
ANIMATION(ANIM_TYPE_MOVE, MOVE_TAILWIND, opponentLeft);

View File

@ -141,7 +141,7 @@ SINGLE_BATTLE_TEST("Zero to Hero's message displays correctly after all battlers
GIVEN {
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
PLAYER(SPECIES_PALAFIN_ZERO);
PLAYER(SPECIES_WOBBUFFET) { HP(1);}
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
@ -166,7 +166,7 @@ SINGLE_BATTLE_TEST("Zero to Hero's message displays correctly after all battlers
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_PALAFIN_ZERO);
OPPONENT(SPECIES_WOBBUFFET) { HP(1);}
OPPONENT(SPECIES_WOBBUFFET) { HP(1); }
} WHEN {
TURN { MOVE(opponent, MOVE_FLIP_TURN); SEND_OUT(opponent, 1); }
TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_EXPLOSION); SEND_OUT(player, 1); SEND_OUT(opponent, 0); }

View File

@ -236,7 +236,7 @@ AI_SINGLE_BATTLE_TEST("AI prefers moves with the best possible score, chosen ran
{
GIVEN {
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_WOBBUFFET) { HP(5); };
PLAYER(SPECIES_WOBBUFFET) { HP(5); }
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_TAKE_DOWN); }
} WHEN {
@ -253,7 +253,7 @@ AI_SINGLE_BATTLE_TEST("AI can choose a status move that boosts the attack by two
ASSUME(GetMoveCategory(MOVE_STRENGTH) == DAMAGE_CATEGORY_PHYSICAL);
ASSUME(GetMoveCategory(MOVE_HORN_ATTACK) == DAMAGE_CATEGORY_PHYSICAL);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_WOBBUFFET) { HP(277); };
PLAYER(SPECIES_WOBBUFFET) { HP(277); }
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_KANGASKHAN) { Moves(MOVE_STRENGTH, MOVE_HORN_ATTACK, MOVE_SWORDS_DANCE); }
} WHEN {
@ -292,7 +292,7 @@ AI_SINGLE_BATTLE_TEST("AI chooses the safest option to faint the target, taking
OPPONENT(SPECIES_GEODUDE) { Moves(move1, move2, move3, move4); Ability(abilityAtk); Item(holdItemAtk); }
} WHEN {
TURN { if (expectedMove2 == MOVE_NONE) { EXPECT_MOVE(opponent, expectedMove); SEND_OUT(player, 1); }
else {EXPECT_MOVES(opponent, expectedMove, expectedMove2); SCORE_EQ(opponent, expectedMove, expectedMove2); SEND_OUT(player, 1);}
else { EXPECT_MOVES(opponent, expectedMove, expectedMove2); SCORE_EQ(opponent, expectedMove, expectedMove2); SEND_OUT(player, 1); }
}
}
SCENE {
@ -322,7 +322,7 @@ AI_SINGLE_BATTLE_TEST("AI chooses the safest option to faint the target, taking
OPPONENT(SPECIES_GEODUDE) { Moves(move1, move2, move3, move4); Ability(abilityAtk); Item(holdItemAtk); }
} WHEN {
TURN { if (expectedMove2 == MOVE_NONE) { EXPECT_MOVE(opponent, expectedMove); SEND_OUT(player, 1); }
else {EXPECT_MOVES(opponent, expectedMove, expectedMove2); SCORE_EQ(opponent, expectedMove, expectedMove2); SEND_OUT(player, 1);}
else { EXPECT_MOVES(opponent, expectedMove, expectedMove2); SCORE_EQ(opponent, expectedMove, expectedMove2); SEND_OUT(player, 1); }
}
}
SCENE {
@ -490,7 +490,7 @@ AI_SINGLE_BATTLE_TEST("AI will only choose Surf 1/3 times if the opposing mon ha
GIVEN {
ASSUME(GetMoveType(MOVE_THUNDERBOLT) == TYPE_ELECTRIC);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_LANTURN) { Ability(ABILITY_VOLT_ABSORB); };
PLAYER(SPECIES_LANTURN) { Ability(ABILITY_VOLT_ABSORB); }
OPPONENT(SPECIES_LANTURN) { Moves(MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_SURF); }
} WHEN {
TURN { EXPECT_MOVE(opponent, MOVE_SURF); }
@ -507,7 +507,7 @@ AI_SINGLE_BATTLE_TEST("AI will choose Thunderbolt then Surf 2/3 times if the opp
GIVEN {
ASSUME(GetMoveType(MOVE_THUNDERBOLT) == TYPE_ELECTRIC);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_LANTURN) { Ability(ABILITY_VOLT_ABSORB); };
PLAYER(SPECIES_LANTURN) { Ability(ABILITY_VOLT_ABSORB); }
OPPONENT(SPECIES_LANTURN) { Moves(MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_SURF); }
} WHEN {
TURN { EXPECT_MOVE(opponent, MOVE_THUNDERBOLT); }
@ -522,8 +522,8 @@ AI_SINGLE_BATTLE_TEST("AI will choose Scratch over Power-up Punch with Contrary"
{
enum Ability ability;
PARAMETRIZE {ability = ABILITY_SUCTION_CUPS; }
PARAMETRIZE {ability = ABILITY_CONTRARY; }
PARAMETRIZE { ability = ABILITY_SUCTION_CUPS; }
PARAMETRIZE { ability = ABILITY_CONTRARY; }
GIVEN {
ASSUME(GetMovePower(MOVE_SCRATCH) == 40);
ASSUME(GetMoveType(MOVE_SCRATCH) == TYPE_NORMAL);
@ -548,8 +548,8 @@ AI_SINGLE_BATTLE_TEST("AI will choose Superpower over Outrage with Contrary")
{
enum Ability ability;
PARAMETRIZE {ability = ABILITY_SUCTION_CUPS; }
PARAMETRIZE {ability = ABILITY_CONTRARY; }
PARAMETRIZE { ability = ABILITY_SUCTION_CUPS; }
PARAMETRIZE { ability = ABILITY_CONTRARY; }
GIVEN {
ASSUME(GetMovePower(MOVE_SUPERPOWER) == 120);
ASSUME(GetMoveType(MOVE_SUPERPOWER) == TYPE_FIGHTING);
@ -944,10 +944,10 @@ AI_SINGLE_BATTLE_TEST("AI will prefer resisted move over failing move")
GIVEN {
WITH_CONFIG(CONFIG_POWDER_GRASS, GEN_6);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY);
PLAYER(SPECIES_ROSELIA) { Moves(MOVE_ABSORB); };
PLAYER(SPECIES_ROSELIA) { Moves(MOVE_ABSORB); }
OPPONENT(SPECIES_GLOOM) { Moves(MOVE_MEGA_DRAIN, MOVE_STUN_SPORE, MOVE_LEECH_SEED, MOVE_SYNTHESIS); }
} WHEN {
TURN { MOVE(player, MOVE_ABSORB); EXPECT_MOVE(opponent, MOVE_MEGA_DRAIN);}
TURN { MOVE(player, MOVE_ABSORB); EXPECT_MOVE(opponent, MOVE_MEGA_DRAIN); }
}
}

View File

@ -15,7 +15,7 @@ AI_SINGLE_BATTLE_TEST("AI will not further increase Attack / Sp. Atk stat if it
|| GetMoveEffect(MOVE_HOWL) == EFFECT_ATTACK_UP_USER_ALLY);
ASSUME(GetMoveEffect(MOVE_CALM_MIND) == EFFECT_CALM_MIND);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_COMBUSKEN) { Speed(15); Moves(MOVE_SKY_UPPERCUT, MOVE_CELEBRATE); };
PLAYER(SPECIES_COMBUSKEN) { Speed(15); Moves(MOVE_SKY_UPPERCUT, MOVE_CELEBRATE); }
OPPONENT(SPECIES_KANGASKHAN) { Speed(20); Moves(MOVE_CHIP_AWAY, MOVE_SWIFT, move); }
} WHEN {
TURN { MOVE(player, MOVE_SKY_UPPERCUT); EXPECT_MOVE(opponent, move); }
@ -36,7 +36,7 @@ AI_SINGLE_BATTLE_TEST("AI will not further increase Attack / Sp. Atk stat if it
|| GetMoveEffect(MOVE_HOWL) == EFFECT_ATTACK_UP_USER_ALLY);
ASSUME(GetMoveEffect(MOVE_CALM_MIND) == EFFECT_CALM_MIND);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_COMBUSKEN) { Speed(20); Moves(MOVE_DOUBLE_KICK, MOVE_CELEBRATE); };
PLAYER(SPECIES_COMBUSKEN) { Speed(20); Moves(MOVE_DOUBLE_KICK, MOVE_CELEBRATE); }
OPPONENT(SPECIES_KANGASKHAN) { Speed(15); Moves(MOVE_CHIP_AWAY, MOVE_SWIFT, move); }
} WHEN {
TURN { MOVE(player, MOVE_DOUBLE_KICK); EXPECT_MOVE(opponent, move); }
@ -48,7 +48,7 @@ AI_SINGLE_BATTLE_TEST("AI will increase speed if it is slower")
{
GIVEN {
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_COMBUSKEN) { Speed(20); Moves(MOVE_DOUBLE_KICK, MOVE_CELEBRATE); };
PLAYER(SPECIES_COMBUSKEN) { Speed(20); Moves(MOVE_DOUBLE_KICK, MOVE_CELEBRATE); }
OPPONENT(SPECIES_KANGASKHAN) { Speed(15); Moves(MOVE_CHIP_AWAY, MOVE_AGILITY); }
} WHEN {
TURN { MOVE(player, MOVE_DOUBLE_KICK); EXPECT_MOVE(opponent, MOVE_AGILITY); }
@ -69,7 +69,7 @@ AI_SINGLE_BATTLE_TEST("AI will not waste a turn setting up if it knows target ca
|| GetMoveEffect(MOVE_HOWL) == EFFECT_ATTACK_UP_USER_ALLY);
ASSUME(GetMoveEffect(MOVE_CALM_MIND) == EFFECT_CALM_MIND);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_OMNISCIENT);
PLAYER(SPECIES_COMBUSKEN) { Speed(15); Moves(MOVE_SKY_UPPERCUT, MOVE_DOUBLE_KICK, MOVE_FLAME_WHEEL, MOVE_CELEBRATE); };
PLAYER(SPECIES_COMBUSKEN) { Speed(15); Moves(MOVE_SKY_UPPERCUT, MOVE_DOUBLE_KICK, MOVE_FLAME_WHEEL, MOVE_CELEBRATE); }
OPPONENT(SPECIES_KANGASKHAN) { Speed(20); Moves(MOVE_CHIP_AWAY, MOVE_SWIFT, move); }
} WHEN {
TURN { MOVE(player, MOVE_DOUBLE_KICK); EXPECT_MOVE(opponent, move); }
@ -86,12 +86,12 @@ AI_SINGLE_BATTLE_TEST("AI will not use Throat Chop if opposing mon has a better
ASSUME(GetMovePower(MOVE_FLAME_BURST) == 70);
ASSUME(MoveHasAdditionalEffect(MOVE_THROAT_CHOP, MOVE_EFFECT_THROAT_CHOP) == TRUE);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_REGIROCK) { Speed(15); Moves(MOVE_DISARMING_VOICE, MOVE_FLAME_BURST); };
PLAYER(SPECIES_REGIROCK) { Speed(15); Moves(MOVE_DISARMING_VOICE, MOVE_FLAME_BURST); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(20); Moves(MOVE_THROAT_CHOP, MOVE_PSYCHIC_FANGS); }
} WHEN {
TURN { EXPECT_MOVE(opponent, MOVE_PSYCHIC_FANGS); MOVE(player, MOVE_FLAME_BURST); }
TURN { EXPECT_MOVE(opponent, MOVE_PSYCHIC_FANGS); MOVE(player, MOVE_DISARMING_VOICE); }
TURN { EXPECT_MOVE(opponent, MOVE_PSYCHIC_FANGS); MOVE(player, MOVE_FLAME_BURST);}
TURN { EXPECT_MOVE(opponent, MOVE_PSYCHIC_FANGS); MOVE(player, MOVE_FLAME_BURST); }
}
}
@ -104,12 +104,12 @@ AI_SINGLE_BATTLE_TEST("AI will select Throat Chop if the sound move is the best
ASSUME(GetMovePower(MOVE_FLAME_BURST) == 70);
ASSUME(GetMovePower(MOVE_HYPER_VOICE) == 90);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
PLAYER(SPECIES_REGIROCK) { Speed(15); Moves(MOVE_HYPER_VOICE, MOVE_FLAME_BURST); };
PLAYER(SPECIES_REGIROCK) { Speed(15); Moves(MOVE_HYPER_VOICE, MOVE_FLAME_BURST); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(20); Moves(MOVE_THROAT_CHOP, MOVE_PSYCHIC_FANGS); }
} WHEN {
TURN { EXPECT_MOVE(opponent, MOVE_PSYCHIC_FANGS); MOVE(player, MOVE_FLAME_BURST); }
TURN { EXPECT_MOVE(opponent, MOVE_PSYCHIC_FANGS); MOVE(player, MOVE_HYPER_VOICE); }
TURN { EXPECT_MOVE(opponent, MOVE_THROAT_CHOP); MOVE(player, MOVE_HYPER_VOICE);}
TURN { EXPECT_MOVE(opponent, MOVE_THROAT_CHOP); MOVE(player, MOVE_HYPER_VOICE); }
}
}

View File

@ -456,7 +456,7 @@ AI_DOUBLE_BATTLE_TEST("AI sees type-changing moves as the correct type")
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { Moves(fieldStatus, MOVE_RETURN, MOVE_TAUNT); }
OPPONENT(species) { Ability(ability); Moves(MOVE_HYPER_VOICE); }
OPPONENT(species) { Ability(ability); Moves(MOVE_HYPER_VOICE); }
} WHEN {
if (ability != ABILITY_NONE)
TURN { EXPECT_MOVE(opponentLeft, fieldStatus); }

View File

@ -23,11 +23,12 @@ AI_DOUBLE_BATTLE_TEST("AI won't use a Weather changing move if partner already c
OPPONENT(SPECIES_WOBBUFFET) { Moves(weatherMoveLeft); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_SCRATCH, weatherMoveRight); }
} WHEN {
TURN { NOT_EXPECT_MOVE(opponentRight, weatherMoveRight);
SCORE_LT_VAL(opponentRight, weatherMoveRight, AI_SCORE_DEFAULT, target:playerLeft);
SCORE_LT_VAL(opponentRight, weatherMoveRight, AI_SCORE_DEFAULT, target:playerRight);
SCORE_LT_VAL(opponentRight, weatherMoveRight, AI_SCORE_DEFAULT, target:opponentLeft);
}
TURN {
NOT_EXPECT_MOVE(opponentRight, weatherMoveRight);
SCORE_LT_VAL(opponentRight, weatherMoveRight, AI_SCORE_DEFAULT, target:playerLeft);
SCORE_LT_VAL(opponentRight, weatherMoveRight, AI_SCORE_DEFAULT, target:playerRight);
SCORE_LT_VAL(opponentRight, weatherMoveRight, AI_SCORE_DEFAULT, target:opponentLeft);
}
}
}
@ -46,11 +47,12 @@ AI_DOUBLE_BATTLE_TEST("AI will not use Helping Hand if partner does not have any
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_HELPING_HAND, MOVE_SCRATCH); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(move1, move2, move3, move4); }
} WHEN {
TURN { NOT_EXPECT_MOVE(opponentLeft, MOVE_HELPING_HAND);
SCORE_LT_VAL(opponentLeft, MOVE_HELPING_HAND, AI_SCORE_DEFAULT, target:playerLeft);
SCORE_LT_VAL(opponentLeft, MOVE_HELPING_HAND, AI_SCORE_DEFAULT, target:playerRight);
SCORE_LT_VAL(opponentLeft, MOVE_HELPING_HAND, AI_SCORE_DEFAULT, target:opponentLeft);
}
TURN {
NOT_EXPECT_MOVE(opponentLeft, MOVE_HELPING_HAND);
SCORE_LT_VAL(opponentLeft, MOVE_HELPING_HAND, AI_SCORE_DEFAULT, target:playerLeft);
SCORE_LT_VAL(opponentLeft, MOVE_HELPING_HAND, AI_SCORE_DEFAULT, target:playerRight);
SCORE_LT_VAL(opponentLeft, MOVE_HELPING_HAND, AI_SCORE_DEFAULT, target:opponentLeft);
}
} SCENE {
NOT MESSAGE("The opposing Wobbuffet used Helping Hand!");
}
@ -157,12 +159,13 @@ AI_DOUBLE_BATTLE_TEST("AI will not use a status move if partner already chose He
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_HELPING_HAND, MOVE_EXPLOSION); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_SCRATCH, statusMove, MOVE_WATER_GUN); }
} WHEN {
TURN { EXPECT_MOVE(opponentLeft, MOVE_HELPING_HAND);
NOT_EXPECT_MOVE(opponentRight, statusMove);
SCORE_LT_VAL(opponentRight, statusMove, AI_SCORE_DEFAULT, target:playerLeft);
SCORE_LT_VAL(opponentRight, statusMove, AI_SCORE_DEFAULT, target:playerRight);
SCORE_LT_VAL(opponentRight, statusMove, AI_SCORE_DEFAULT, target:opponentLeft);
}
TURN {
EXPECT_MOVE(opponentLeft, MOVE_HELPING_HAND);
NOT_EXPECT_MOVE(opponentRight, statusMove);
SCORE_LT_VAL(opponentRight, statusMove, AI_SCORE_DEFAULT, target:playerLeft);
SCORE_LT_VAL(opponentRight, statusMove, AI_SCORE_DEFAULT, target:playerRight);
SCORE_LT_VAL(opponentRight, statusMove, AI_SCORE_DEFAULT, target:opponentLeft);
}
} SCENE {
MESSAGE("The opposing Wobbuffet used Helping Hand!");
}
@ -415,7 +418,7 @@ AI_DOUBLE_BATTLE_TEST("AI will choose Earthquake if it kills both opposing mons"
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_EARTHQUAKE, MOVE_SCRATCH); }
OPPONENT(SPECIES_PARAS) { Moves(MOVE_CELEBRATE); HP(1); }
OPPONENT(SPECIES_PARAS) { Moves(MOVE_CELEBRATE); HP(1); }
} WHEN {
TURN { EXPECT_MOVE(opponentLeft, MOVE_EARTHQUAKE); }
}
@ -437,7 +440,7 @@ AI_DOUBLE_BATTLE_TEST("AI will trigger its ally's Weakness Policy")
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_EARTHQUAKE, MOVE_STOMPING_TANTRUM); }
OPPONENT(species) { Moves(MOVE_CELEBRATE); Item(ITEM_WEAKNESS_POLICY); }
OPPONENT(species) { Moves(MOVE_CELEBRATE); Item(ITEM_WEAKNESS_POLICY); }
} WHEN {
if (species == SPECIES_INCINEROAR)
TURN { EXPECT_MOVE(opponentLeft, MOVE_EARTHQUAKE); }
@ -655,7 +658,7 @@ AI_DOUBLE_BATTLE_TEST("AI sets up terrain for its ally")
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { Moves(goodTerrain, badTerrain, MOVE_RETURN, MOVE_TAUNT); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(terrainTrigger, MOVE_EARTH_POWER); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(terrainTrigger, MOVE_EARTH_POWER); }
} WHEN {
TURN { EXPECT_MOVE(opponentLeft, goodTerrain); }
}
@ -724,12 +727,12 @@ AI_DOUBLE_BATTLE_TEST("AI uses Trick Room with both battlers on the turn it expi
OPPONENT(SPECIES_WYNAUT) { Moves(MOVE_TRICK_ROOM, MOVE_PSYCHIC); Speed(2); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_TRICK_ROOM, MOVE_PSYCHIC); Speed(1); }
} WHEN {
TURN { EXPECT_MOVE(opponentLeft, MOVE_TRICK_ROOM); NOT_EXPECT_MOVE(opponentRight, MOVE_TRICK_ROOM); }
TURN { NOT_EXPECT_MOVE(opponentLeft, MOVE_TRICK_ROOM); NOT_EXPECT_MOVE(opponentRight, MOVE_TRICK_ROOM); }
TURN { NOT_EXPECT_MOVE(opponentLeft, MOVE_TRICK_ROOM); NOT_EXPECT_MOVE(opponentRight, MOVE_TRICK_ROOM); }
TURN { NOT_EXPECT_MOVE(opponentLeft, MOVE_TRICK_ROOM); NOT_EXPECT_MOVE(opponentRight, MOVE_TRICK_ROOM); }
TURN { EXPECT_MOVE(opponentLeft, MOVE_TRICK_ROOM); EXPECT_MOVE(opponentRight, MOVE_TRICK_ROOM); }
}
TURN { EXPECT_MOVE(opponentLeft, MOVE_TRICK_ROOM); NOT_EXPECT_MOVE(opponentRight, MOVE_TRICK_ROOM); }
TURN { NOT_EXPECT_MOVE(opponentLeft, MOVE_TRICK_ROOM); NOT_EXPECT_MOVE(opponentRight, MOVE_TRICK_ROOM); }
TURN { NOT_EXPECT_MOVE(opponentLeft, MOVE_TRICK_ROOM); NOT_EXPECT_MOVE(opponentRight, MOVE_TRICK_ROOM); }
TURN { NOT_EXPECT_MOVE(opponentLeft, MOVE_TRICK_ROOM); NOT_EXPECT_MOVE(opponentRight, MOVE_TRICK_ROOM); }
TURN { EXPECT_MOVE(opponentLeft, MOVE_TRICK_ROOM); EXPECT_MOVE(opponentRight, MOVE_TRICK_ROOM); }
}
}
AI_DOUBLE_BATTLE_TEST("AI uses Helping Hand if it's about to die")
@ -747,10 +750,10 @@ AI_DOUBLE_BATTLE_TEST("AI uses Helping Hand if it's about to die")
OPPONENT(SPECIES_WOBBUFFET) { HP(hp); Moves(MOVE_HELPING_HAND, MOVE_MUDDY_WATER); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_MUDDY_WATER); }
} WHEN {
if (hp == 1)
TURN { EXPECT_MOVE(opponentLeft, MOVE_HELPING_HAND); }
else
TURN { NOT_EXPECT_MOVE(opponentLeft, MOVE_HELPING_HAND); }
if (hp == 1)
TURN { EXPECT_MOVE(opponentLeft, MOVE_HELPING_HAND); }
else
TURN { NOT_EXPECT_MOVE(opponentLeft, MOVE_HELPING_HAND); }
}
}

View File

@ -26,12 +26,11 @@ AI_DOUBLE_BATTLE_TEST("AI_FLAG_ATTACKS_PARTNER is willing to kill either the par
ASSUME(gSpeciesInfo[SPECIES_ZIGZAGOON].baseDefense == 41);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_ATTACKS_PARTNER);
PLAYER(SPECIES_ZIGZAGOON) { Level(50); }
PLAYER(SPECIES_ZIGZAGOON) { Level(16); }
PLAYER(SPECIES_ZIGZAGOON) { Level(16); }
OPPONENT(SPECIES_ZIGZAGOON) { Level(50); Moves(move, MOVE_OVERDRIVE, MOVE_TACKLE); }
OPPONENT(SPECIES_ZIGZAGOON) { Level(level); Moves(MOVE_CELEBRATE); }
} WHEN {
TURN
{
TURN {
if (move == MOVE_MIGHTY_CLEAVE)
{
if (level == 1)
@ -46,7 +45,7 @@ AI_DOUBLE_BATTLE_TEST("AI_FLAG_ATTACKS_PARTNER is willing to kill either the par
else
EXPECT_MOVE(opponentLeft, MOVE_OVERDRIVE);
}
}
}
}
}
@ -59,18 +58,16 @@ AI_DOUBLE_BATTLE_TEST("AI_FLAG_ATTACKS_PARTNER steps on its ally's weather")
GIVEN {
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_ATTACKS_PARTNER);
PLAYER(SPECIES_WOBBUFFET) { Speed(50); }
PLAYER(SPECIES_WOBBUFFET) { Speed(50); }
PLAYER(SPECIES_WOBBUFFET) { Speed(50); }
PLAYER(SPECIES_WOBBUFFET) { Speed(50); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(75); Moves(weather1, move1, MOVE_HEADBUTT); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(100); Moves(weather2, move2, MOVE_HEADBUTT); }
} WHEN {
TURN
{
TURN {
EXPECT_MOVE(opponentLeft, weather1);
EXPECT_MOVE(opponentRight, weather2);
}
TURN
{
TURN {
EXPECT_MOVE(opponentLeft, move1);
EXPECT_MOVE(opponentRight, weather2);
}

View File

@ -8,7 +8,7 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_WEIGH_ABILITY_PREDICTION: AI will predict opposin
GIVEN {
ASSUME(GetMoveType(MOVE_THUNDERBOLT) == TYPE_ELECTRIC);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_WEIGH_ABILITY_PREDICTION);
PLAYER(SPECIES_LANTURN) { Ability(ABILITY_VOLT_ABSORB); };
PLAYER(SPECIES_LANTURN) { Ability(ABILITY_VOLT_ABSORB); }
OPPONENT(SPECIES_LANTURN) { Moves(MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_SURF); }
} WHEN {
TURN { EXPECT_MOVE(opponent, MOVE_THUNDERBOLT); }

View File

@ -44,7 +44,7 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SEQUENCE_SWITCHING: Roar and Dragon Tail still fo
u32 move;
PARAMETRIZE { move = MOVE_ROAR; }
PARAMETRIZE {move = MOVE_DRAGON_TAIL; }
PARAMETRIZE { move = MOVE_DRAGON_TAIL; }
PASSES_RANDOMLY(1, 2, RNG_FORCE_RANDOM_SWITCH);
GIVEN {

View File

@ -73,10 +73,10 @@ AI_MULTI_BATTLE_TEST("AI partner makes sensible move selections in battle (multi
MULTI_PARTNER(SPECIES_GENGAR) { Moves(MOVE_SHADOW_BALL, MOVE_AURA_SPHERE); }
MULTI_OPPONENT_A(SPECIES_RATTATA) { Moves(MOVE_CELEBRATE); HP(1); }
MULTI_OPPONENT_B(SPECIES_KANGASKHAN) { Moves(MOVE_CELEBRATE); }
} WHEN {
TURN { MOVE(playerLeft, MOVE_AURA_SPHERE, target:opponentRight); EXPECT_MOVE(playerRight, MOVE_AURA_SPHERE, target:opponentLeft); };
}
TURN { MOVE(playerLeft, MOVE_AURA_SPHERE, target:opponentRight); EXPECT_MOVE(playerRight, MOVE_AURA_SPHERE, target:opponentLeft); }
}
}
// Used to test EXPECT_MOVE only on partner
@ -90,10 +90,10 @@ AI_TWO_VS_ONE_BATTLE_TEST("AI partner makes sensible move selections in battle (
MULTI_PARTNER(SPECIES_GENGAR) { Moves(MOVE_SHADOW_BALL, MOVE_AURA_SPHERE); }
MULTI_OPPONENT_A(SPECIES_RATTATA) { Moves(MOVE_CELEBRATE); HP(1); }
MULTI_OPPONENT_A(SPECIES_KANGASKHAN) { Moves(MOVE_CELEBRATE); }
} WHEN {
TURN { MOVE(playerLeft, MOVE_AURA_SPHERE, target:opponentRight); EXPECT_MOVE(playerRight, MOVE_AURA_SPHERE, target:opponentLeft); };
}
TURN { MOVE(playerLeft, MOVE_AURA_SPHERE, target:opponentRight); EXPECT_MOVE(playerRight, MOVE_AURA_SPHERE, target:opponentLeft); }
}
}
AI_TWO_VS_ONE_BATTLE_TEST("Battler 3 has Battler 1 AI flags set correctly (2v1)")
@ -138,7 +138,7 @@ AI_MULTI_BATTLE_TEST("Partner will not steal your pokemon when running out")
MULTI_OPPONENT_A(SPECIES_WOBBUFFET) { Moves(MOVE_CELEBRATE); }
MULTI_OPPONENT_B(SPECIES_WOBBUFFET) { Moves(MOVE_CELEBRATE); }
} WHEN {
TURN {EXPECT_MOVE(playerRight, MOVE_MEMENTO, target:opponentLeft);}
TURN { EXPECT_MOVE(playerRight, MOVE_MEMENTO, target:opponentLeft); }
TURN {}
} THEN {
EXPECT_EQ(gAbsentBattlerFlags, (1u << GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)));
@ -159,7 +159,7 @@ AI_MULTI_BATTLE_TEST("Partner will not steal your pokemon to delay using their a
MULTI_OPPONENT_A(SPECIES_WOBBUFFET) { Moves(MOVE_CELEBRATE); }
MULTI_OPPONENT_B(SPECIES_WOBBUFFET) { Moves(MOVE_CELEBRATE); }
} WHEN {
TURN {EXPECT_MOVE(playerRight, MOVE_MEMENTO, target:opponentLeft);}
TURN { EXPECT_MOVE(playerRight, MOVE_MEMENTO, target:opponentLeft); }
TURN {}
} THEN {
EXPECT_EQ(SPECIES_METAGROSS, playerRight->species);
@ -174,12 +174,12 @@ AI_MULTI_BATTLE_TEST("AI opponents do not steal their partner pokemon in multi b
BATTLER_AI_FLAGS(B_POSITION_OPPONENT_LEFT, AI_FLAG_ACE_POKEMON);
MULTI_PLAYER(SPECIES_WOBBUFFET) { }
MULTI_PARTNER(SPECIES_WOBBUFFET) { }
MULTI_OPPONENT_A(SPECIES_WOBBUFFET) { Moves(MOVE_CELEBRATE); HP(1);}
MULTI_OPPONENT_A(SPECIES_WOBBUFFET) { Moves(MOVE_CELEBRATE); HP(1); }
MULTI_OPPONENT_A(SPECIES_VENUSAUR) { Moves(MOVE_GIGA_DRAIN); }
MULTI_OPPONENT_B(SPECIES_WYNAUT) { Moves(MOVE_CELEBRATE); }
} WHEN {
TURN {MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); }
TURN {MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); }
TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); }
TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); }
} THEN {
EXPECT_EQ(SPECIES_VENUSAUR, opponentLeft->species);
}
@ -188,19 +188,19 @@ AI_MULTI_BATTLE_TEST("AI opponents do not steal their partner pokemon in multi b
AI_MULTI_BATTLE_TEST("AI opponents do not steal their partner pokemon in multi battle when forced out")
{
u32 item, move;
PARAMETRIZE {item = ITEM_EJECT_BUTTON; move = MOVE_TACKLE;}
PARAMETRIZE {item = ITEM_EJECT_PACK; move = MOVE_TAIL_WHIP;}
PARAMETRIZE {item = ITEM_NONE; move = MOVE_ROAR;}
PARAMETRIZE { item = ITEM_EJECT_BUTTON; move = MOVE_TACKLE; }
PARAMETRIZE { item = ITEM_EJECT_PACK; move = MOVE_TAIL_WHIP; }
PARAMETRIZE { item = ITEM_NONE; move = MOVE_ROAR; }
GIVEN {
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
BATTLER_AI_FLAGS(B_POSITION_OPPONENT_LEFT, AI_FLAG_ACE_POKEMON);
MULTI_PLAYER(SPECIES_WOBBUFFET) { }
MULTI_PARTNER(SPECIES_WOBBUFFET) { }
MULTI_OPPONENT_A(SPECIES_WOBBUFFET) { Moves(MOVE_CELEBRATE); Item(item);}
MULTI_OPPONENT_A(SPECIES_WOBBUFFET) { Moves(MOVE_CELEBRATE); Item(item); }
MULTI_OPPONENT_A(SPECIES_VENUSAUR) { Moves(MOVE_GIGA_DRAIN); }
MULTI_OPPONENT_B(SPECIES_WYNAUT) { Moves(MOVE_CELEBRATE); }
} WHEN {
TURN {MOVE(playerLeft, move, target: opponentLeft); }
TURN { MOVE(playerLeft, move, target: opponentLeft); }
} THEN {
EXPECT_EQ(SPECIES_VENUSAUR, opponentLeft->species);
}
@ -213,11 +213,11 @@ AI_MULTI_BATTLE_TEST("AI opponents do not steal their partner pokemon in multi b
BATTLER_AI_FLAGS(B_POSITION_OPPONENT_LEFT, AI_FLAG_ACE_POKEMON);
MULTI_PLAYER(SPECIES_WOBBUFFET) { }
MULTI_PARTNER(SPECIES_WOBBUFFET) { }
MULTI_OPPONENT_A(SPECIES_GOLISOPOD) { Moves(MOVE_CELEBRATE); HP(101); MaxHP(200); Ability(ABILITY_EMERGENCY_EXIT);}
MULTI_OPPONENT_A(SPECIES_GOLISOPOD) { Moves(MOVE_CELEBRATE); HP(101); MaxHP(200); Ability(ABILITY_EMERGENCY_EXIT); }
MULTI_OPPONENT_A(SPECIES_VENUSAUR) { Moves(MOVE_GIGA_DRAIN); }
MULTI_OPPONENT_B(SPECIES_WYNAUT) { Moves(MOVE_CELEBRATE); }
} WHEN {
TURN {MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); }
TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); }
} THEN {
EXPECT_EQ(SPECIES_VENUSAUR, opponentLeft->species);
}

Some files were not shown because too many files have changed in this diff Show More