parent
1deeafc0b8
commit
6cf1305178
@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user