Yet more tests (#8228)

Co-authored-by: hedara90 <90hedara@gmail.com>
This commit is contained in:
Eduardo Quezada 2025-11-16 12:23:38 -03:00 committed by GitHub
parent 1deeafc0b8
commit 6cf1305178
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 334 additions and 82 deletions

View File

@ -5,62 +5,62 @@ DOUBLE_BATTLE_TEST("Aura Break inverts Fairy Aura's effect")
{
s16 damage[3];
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_XERNEAS) { Ability(ABILITY_FAIRY_AURA); }
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_ZYGARDE_50) { Ability(ABILITY_AURA_BREAK); }
} WHEN {
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target:opponentLeft); }
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target:opponentLeft); SWITCH(playerRight, 2); }
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target:opponentLeft); SWITCH(opponentRight, 2); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[0]);
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_XERNEAS) { Ability(ABILITY_FAIRY_AURA); }
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_ZYGARDE_50) { Ability(ABILITY_AURA_BREAK); }
} WHEN {
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target:opponentLeft); }
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target:opponentLeft); SWITCH(playerRight, 2); }
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target:opponentLeft); SWITCH(opponentRight, 2); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[0]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[1]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[1]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[2]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[2]);
} THEN {
EXPECT_MUL_EQ(damage[0], UQ_4_12(1.33), damage[1]);
EXPECT_MUL_EQ(damage[0], UQ_4_12(0.75), damage[2]);
}
} THEN {
EXPECT_MUL_EQ(damage[0], UQ_4_12(1.33), damage[1]);
EXPECT_MUL_EQ(damage[0], UQ_4_12(0.75), damage[2]);
}
}
DOUBLE_BATTLE_TEST("Aura Break inverts Dark Aura's effect")
{
s16 damage[3];
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_YVELTAL) { Ability(ABILITY_DARK_AURA); }
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_ZYGARDE_50) { Ability(ABILITY_AURA_BREAK); }
} WHEN {
TURN { MOVE(playerLeft, MOVE_BITE, target:opponentLeft); }
TURN { MOVE(playerLeft, MOVE_BITE, target:opponentLeft); SWITCH(playerRight, 2); }
TURN { MOVE(playerLeft, MOVE_BITE, target:opponentLeft); SWITCH(opponentRight, 2); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[0]);
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_YVELTAL) { Ability(ABILITY_DARK_AURA); }
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_ZYGARDE_50) { Ability(ABILITY_AURA_BREAK); }
} WHEN {
TURN { MOVE(playerLeft, MOVE_BITE, target:opponentLeft); }
TURN { MOVE(playerLeft, MOVE_BITE, target:opponentLeft); SWITCH(playerRight, 2); }
TURN { MOVE(playerLeft, MOVE_BITE, target:opponentLeft); SWITCH(opponentRight, 2); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[0]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[1]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[1]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[2]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[2]);
} THEN {
EXPECT_MUL_EQ(damage[0], UQ_4_12(1.33), damage[1]);
EXPECT_MUL_EQ(damage[0], UQ_4_12(0.75), damage[2]);
}
} THEN {
EXPECT_MUL_EQ(damage[0], UQ_4_12(1.33), damage[1]);
EXPECT_MUL_EQ(damage[0], UQ_4_12(0.75), damage[2]);
}
}
DOUBLE_BATTLE_TEST("Aura Break ignores Mold Breaker abilities")
@ -73,43 +73,43 @@ DOUBLE_BATTLE_TEST("Aura Break ignores Mold Breaker abilities")
PARAMETRIZE { species = SPECIES_ZEKROM, ability = ABILITY_TERAVOLT; }
PARAMETRIZE { species = SPECIES_RESHIRAM, ability = ABILITY_TURBOBLAZE; }
GIVEN {
PLAYER(species) { Ability(ability); Level(50); }
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_YVELTAL) { Ability(ABILITY_DARK_AURA); }
PLAYER(SPECIES_XERNEAS) { Ability(ABILITY_FAIRY_AURA); }
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_ZYGARDE_50) { Ability(ABILITY_AURA_BREAK); }
} WHEN {
TURN { MOVE(playerLeft, MOVE_BITE, target: opponentLeft); }
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target: opponentLeft); }
TURN { MOVE(playerLeft, MOVE_BITE, target: opponentLeft); SWITCH(playerRight, 2); }
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target: opponentLeft); SWITCH(playerRight, 3); }
TURN { MOVE(playerLeft, MOVE_BITE, target: opponentLeft); SWITCH(playerRight, 2); SWITCH(opponentRight, 2); }
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target: opponentLeft); SWITCH(playerRight, 3); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[0]);
GIVEN {
PLAYER(species) { Ability(ability); Level(50); }
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_YVELTAL) { Ability(ABILITY_DARK_AURA); }
PLAYER(SPECIES_XERNEAS) { Ability(ABILITY_FAIRY_AURA); }
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_ZYGARDE_50) { Ability(ABILITY_AURA_BREAK); }
} WHEN {
TURN { MOVE(playerLeft, MOVE_BITE, target: opponentLeft); }
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target: opponentLeft); }
TURN { MOVE(playerLeft, MOVE_BITE, target: opponentLeft); SWITCH(playerRight, 2); }
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target: opponentLeft); SWITCH(playerRight, 3); }
TURN { MOVE(playerLeft, MOVE_BITE, target: opponentLeft); SWITCH(playerRight, 2); SWITCH(opponentRight, 2); }
TURN { MOVE(playerLeft, MOVE_PLAY_ROUGH, target: opponentLeft); SWITCH(playerRight, 3); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[0]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[1]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[1]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[2]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[2]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[3]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[3]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[4]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[4]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[5]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[5]);
} THEN {
EXPECT_MUL_EQ(damage[0], UQ_4_12(1.33), damage[2]);
EXPECT_MUL_EQ(damage[0], UQ_4_12(0.75), damage[4]);
EXPECT_MUL_EQ(damage[1], UQ_4_12(1.33), damage[3]);
EXPECT_MUL_EQ(damage[1], UQ_4_12(0.75), damage[5]);
}
EXPECT_MUL_EQ(damage[0], UQ_4_12(1.33), damage[2]);
EXPECT_MUL_EQ(damage[0], UQ_4_12(0.75), damage[4]);
EXPECT_MUL_EQ(damage[1], UQ_4_12(1.33), damage[3]);
EXPECT_MUL_EQ(damage[1], UQ_4_12(0.75), damage[5]);
}
}

View File

@ -1,4 +1,108 @@
#include "global.h"
#include "test/battle.h"
TO_DO_BATTLE_TEST("TODO: Write Dark Aura (Ability) test titles")
DOUBLE_BATTLE_TEST("Dark Aura increases the power of all Dark-type attacks by 33%")
{
s16 damage[8];
GIVEN {
PLAYER(SPECIES_YVELTAL) { Ability(ABILITY_DARK_AURA); }
PLAYER(SPECIES_LINOONE);
PLAYER(SPECIES_LINOONE);
OPPONENT(SPECIES_LINOONE);
OPPONENT(SPECIES_LINOONE);
} WHEN {
TURN { MOVE(playerRight, MOVE_SKILL_SWAP, target: playerLeft); }
TURN { SWITCH(playerLeft, 2); }
TURN {
MOVE(playerLeft, MOVE_BITE, target:opponentLeft, secondaryEffect:FALSE);
MOVE(playerRight, MOVE_BITE, target:opponentRight, secondaryEffect:FALSE);
MOVE(opponentLeft, MOVE_BITE, target:playerLeft, secondaryEffect:FALSE);
MOVE(opponentRight, MOVE_BITE, target:playerRight, secondaryEffect:FALSE);
}
TURN { MOVE(opponentLeft, MOVE_GASTRO_ACID, target:playerRight); }
TURN {
MOVE(playerLeft, MOVE_BITE, target:opponentLeft, secondaryEffect:FALSE);
MOVE(playerRight, MOVE_BITE, target:opponentRight, secondaryEffect:FALSE);
MOVE(opponentLeft, MOVE_BITE, target:playerLeft, secondaryEffect:FALSE);
MOVE(opponentRight, MOVE_BITE, target:playerRight, secondaryEffect:FALSE);
}
} SCENE {
// Turn 1
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[0]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerRight);
HP_BAR(opponentRight, captureDamage: &damage[1]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, opponentLeft);
HP_BAR(playerLeft, captureDamage: &damage[2]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, opponentRight);
HP_BAR(playerRight, captureDamage: &damage[3]);
// Turn 2
ANIMATION(ANIM_TYPE_MOVE, MOVE_GASTRO_ACID, opponentLeft);
// Turn 3
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[4]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerRight);
HP_BAR(opponentRight, captureDamage: &damage[5]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, opponentLeft);
HP_BAR(playerLeft, captureDamage: &damage[6]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, opponentRight);
HP_BAR(playerRight, captureDamage: &damage[7]);
} THEN {
EXPECT_MUL_EQ(damage[4], UQ_4_12(1.33), damage[0]);
EXPECT_MUL_EQ(damage[5], UQ_4_12(1.33), damage[1]);
EXPECT_MUL_EQ(damage[6], UQ_4_12(1.33), damage[2]);
EXPECT_MUL_EQ(damage[7], UQ_4_12(1.33), damage[3]);
}
}
DOUBLE_BATTLE_TEST("Dark Aura's effect doesn't stack multiple times")
{
s16 damage[6];
GIVEN {
PLAYER(SPECIES_YVELTAL) { Ability(ABILITY_DARK_AURA); }
PLAYER(SPECIES_WOBBUFFET) { HP(9999); MaxHP(9999); }
PLAYER(SPECIES_YVELTAL) { Ability(ABILITY_DARK_AURA); }
OPPONENT(SPECIES_WOBBUFFET) { HP(9999); MaxHP(9999); }
OPPONENT(SPECIES_WOBBUFFET) { HP(9999); MaxHP(9999); }
} WHEN {
TURN {
MOVE(playerLeft, MOVE_BITE, target:opponentLeft, secondaryEffect:FALSE);
MOVE(opponentLeft, MOVE_BITE, target:playerLeft, secondaryEffect:FALSE);
MOVE(opponentRight, MOVE_BITE, target:playerLeft, secondaryEffect:FALSE);
}
TURN { SWITCH(playerRight, 2); }
TURN {
MOVE(playerLeft, MOVE_BITE, target:opponentLeft, secondaryEffect:FALSE);
MOVE(opponentLeft, MOVE_BITE, target:playerLeft, secondaryEffect:FALSE);
MOVE(opponentRight, MOVE_BITE, target:playerLeft, secondaryEffect:FALSE);
}
} SCENE {
// Turn 1
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[0]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, opponentLeft);
HP_BAR(playerLeft, captureDamage: &damage[1]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, opponentRight);
HP_BAR(playerLeft, captureDamage: &damage[2]);
// Turn 2
SWITCH_OUT_MESSAGE("Wobbuffet");
SEND_IN_MESSAGE("Yveltal");
// Turn 3
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[3]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, opponentLeft);
HP_BAR(playerLeft, captureDamage: &damage[4]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, opponentRight);
HP_BAR(playerLeft, captureDamage: &damage[5]);
} THEN {
EXPECT_EQ(damage[3], damage[0]);
EXPECT_EQ(damage[4], damage[1]);
EXPECT_EQ(damage[5], damage[2]);
}
}

View File

@ -1,4 +1,108 @@
#include "global.h"
#include "test/battle.h"
TO_DO_BATTLE_TEST("TODO: Write Fairy Aura (Ability) test titles")
DOUBLE_BATTLE_TEST("Fairy Aura increases the power of all Fairy-type attacks by 33%")
{
s16 damage[8];
GIVEN {
PLAYER(SPECIES_XERNEAS) { Ability(ABILITY_FAIRY_AURA); }
PLAYER(SPECIES_LINOONE);
PLAYER(SPECIES_LINOONE);
OPPONENT(SPECIES_LINOONE);
OPPONENT(SPECIES_LINOONE);
} WHEN {
TURN { MOVE(playerRight, MOVE_SKILL_SWAP, target: playerLeft); }
TURN { SWITCH(playerLeft, 2); }
TURN {
MOVE(playerLeft, MOVE_PLAY_ROUGH, target:opponentLeft, secondaryEffect:FALSE);
MOVE(playerRight, MOVE_PLAY_ROUGH, target:opponentRight, secondaryEffect:FALSE);
MOVE(opponentLeft, MOVE_PLAY_ROUGH, target:playerLeft, secondaryEffect:FALSE);
MOVE(opponentRight, MOVE_PLAY_ROUGH, target:playerRight, secondaryEffect:FALSE);
}
TURN { MOVE(opponentLeft, MOVE_GASTRO_ACID, target:playerRight); }
TURN {
MOVE(playerLeft, MOVE_PLAY_ROUGH, target:opponentLeft, secondaryEffect:FALSE);
MOVE(playerRight, MOVE_PLAY_ROUGH, target:opponentRight, secondaryEffect:FALSE);
MOVE(opponentLeft, MOVE_PLAY_ROUGH, target:playerLeft, secondaryEffect:FALSE);
MOVE(opponentRight, MOVE_PLAY_ROUGH, target:playerRight, secondaryEffect:FALSE);
}
} SCENE {
// Turn 1
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[0]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerRight);
HP_BAR(opponentRight, captureDamage: &damage[1]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, opponentLeft);
HP_BAR(playerLeft, captureDamage: &damage[2]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, opponentRight);
HP_BAR(playerRight, captureDamage: &damage[3]);
// Turn 2
ANIMATION(ANIM_TYPE_MOVE, MOVE_GASTRO_ACID, opponentLeft);
// Turn 3
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[4]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerRight);
HP_BAR(opponentRight, captureDamage: &damage[5]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, opponentLeft);
HP_BAR(playerLeft, captureDamage: &damage[6]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, opponentRight);
HP_BAR(playerRight, captureDamage: &damage[7]);
} THEN {
EXPECT_MUL_EQ(damage[4], UQ_4_12(1.33), damage[0]);
EXPECT_MUL_EQ(damage[5], UQ_4_12(1.33), damage[1]);
EXPECT_MUL_EQ(damage[6], UQ_4_12(1.33), damage[2]);
EXPECT_MUL_EQ(damage[7], UQ_4_12(1.33), damage[3]);
}
}
DOUBLE_BATTLE_TEST("Fairy Aura's effect doesn't stack multiple times")
{
s16 damage[6];
GIVEN {
PLAYER(SPECIES_XERNEAS) { Ability(ABILITY_FAIRY_AURA); }
PLAYER(SPECIES_WOBBUFFET) { HP(9999); MaxHP(9999); }
PLAYER(SPECIES_XERNEAS) { Ability(ABILITY_FAIRY_AURA); }
OPPONENT(SPECIES_WOBBUFFET) { HP(9999); MaxHP(9999); }
OPPONENT(SPECIES_WOBBUFFET) { HP(9999); MaxHP(9999); }
} WHEN {
TURN {
MOVE(playerLeft, MOVE_PLAY_ROUGH, target:opponentLeft, secondaryEffect:FALSE);
MOVE(opponentLeft, MOVE_PLAY_ROUGH, target:playerLeft, secondaryEffect:FALSE);
MOVE(opponentRight, MOVE_PLAY_ROUGH, target:playerLeft, secondaryEffect:FALSE);
}
TURN { SWITCH(playerRight, 2); }
TURN {
MOVE(playerLeft, MOVE_PLAY_ROUGH, target:opponentLeft, secondaryEffect:FALSE);
MOVE(opponentLeft, MOVE_PLAY_ROUGH, target:playerLeft, secondaryEffect:FALSE);
MOVE(opponentRight, MOVE_PLAY_ROUGH, target:playerLeft, secondaryEffect:FALSE);
}
} SCENE {
// Turn 1
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[0]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, opponentLeft);
HP_BAR(playerLeft, captureDamage: &damage[1]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, opponentRight);
HP_BAR(playerLeft, captureDamage: &damage[2]);
// Turn 2
SWITCH_OUT_MESSAGE("Wobbuffet");
SEND_IN_MESSAGE("Xerneas");
// Turn 3
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, playerLeft);
HP_BAR(opponentLeft, captureDamage: &damage[3]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, opponentLeft);
HP_BAR(playerLeft, captureDamage: &damage[4]);
ANIMATION(ANIM_TYPE_MOVE, MOVE_PLAY_ROUGH, opponentRight);
HP_BAR(playerLeft, captureDamage: &damage[5]);
} THEN {
EXPECT_EQ(damage[3], damage[0]);
EXPECT_EQ(damage[4], damage[1]);
EXPECT_EQ(damage[5], damage[2]);
}
}

View File

@ -1,4 +1,21 @@
#include "global.h"
#include "test/battle.h"
TO_DO_BATTLE_TEST("TODO: Write Flare Boost (Ability) test titles")
SINGLE_BATTLE_TEST("Flare Boost increases Sp. Attack by 50% when the Pokémon is burned", s16 damage)
{
u32 status1;
PARAMETRIZE { status1 = STATUS1_NONE; }
PARAMETRIZE { status1 = STATUS1_BURN; }
GIVEN {
ASSUME(GetMoveCategory(MOVE_SWIFT) == DAMAGE_CATEGORY_SPECIAL);
PLAYER(SPECIES_DRIFBLIM) { Ability(ABILITY_FLARE_BOOST); Status1(status1); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_SWIFT); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_SWIFT, player);
HP_BAR(opponent, captureDamage: &results[i].damage);
} FINALLY {
EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage);
}
}

View File

@ -1,4 +1,23 @@
#include "global.h"
#include "test/battle.h"
TO_DO_BATTLE_TEST("TODO: Write Toxic Boost (Ability) test titles")
SINGLE_BATTLE_TEST("Toxic Boost increases Attack by 50% when the Pokémon is poisoned", s16 damage)
{
u32 status1;
PARAMETRIZE { status1 = STATUS1_NONE; }
PARAMETRIZE { status1 = STATUS1_POISON; }
PARAMETRIZE { status1 = STATUS1_TOXIC_POISON; }
GIVEN {
ASSUME(GetMoveCategory(MOVE_SCRATCH) == DAMAGE_CATEGORY_PHYSICAL);
PLAYER(SPECIES_ZANGOOSE) { Ability(ABILITY_TOXIC_BOOST); Status1(status1); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_SCRATCH); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, player);
HP_BAR(opponent, captureDamage: &results[i].damage);
} FINALLY {
EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage);
EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[2].damage);
}
}

View File

@ -1,4 +1,12 @@
#include "global.h"
#include "test/battle.h"
TO_DO_BATTLE_TEST("TODO: Write Flying Press (Move Effect) test titles")
TO_DO_BATTLE_TEST("Flying Press does both Fighting and Flying-type for type effectiveness")
TO_DO_BATTLE_TEST("Flying-type Pokémon don't receive STAB on Flying Press")
TO_DO_BATTLE_TEST("Sky Plate doesn't boost Flying Press' power") // Check Fist Plate for comparison
TO_DO_BATTLE_TEST("Sharp Beak doesn't boost Flying Press' power") // Check Black Belt for comparison
TO_DO_BATTLE_TEST("Flying Gem doesn't trigger when using Flying Press") // Check Fighting Gem for comparison
TO_DO_BATTLE_TEST("Coba Berry doesn't trigger when the user is attacked by Flying Press")
TO_DO_BATTLE_TEST("Flying Press triggers Chople Berry, even when it wouldn't be super effective with regular Fighting-type moves")
TO_DO_BATTLE_TEST("Flying Press under Electrify does both Electric and Flying-type for type effectiveness") // Check Electric 1/4 effectiveness
TO_DO_BATTLE_TEST("Flying Press under Normalize does both Normal and Flying-type for type effectiveness") // Check Rock/Steel 1/4 effectiveness