Add tests for type-changing abilities (#8794)
This commit is contained in:
parent
7b03c2e238
commit
664084a9ef
@ -160,22 +160,124 @@ SINGLE_BATTLE_TEST("Aerilate doesn't affect Hidden Power's type")
|
||||
ASSUME(GetMoveEffect(MOVE_HIDDEN_POWER) == EFFECT_HIDDEN_POWER);
|
||||
ASSUME(gTypesInfo[TYPE_ELECTRIC].isHiddenPowerType == TRUE);
|
||||
ASSUME(GetSpeciesType(SPECIES_DIGLETT, 0) == TYPE_GROUND);
|
||||
PLAYER(SPECIES_PINSIR) { Ability(ABILITY_AERILATE); HPIV(31); AttackIV(31); DefenseIV(31); SpAttackIV(30); SpDefenseIV(31); SpeedIV(31); } // HP Electric
|
||||
PLAYER(SPECIES_PINSIR) { Item(ITEM_PINSIRITE); HPIV(31); AttackIV(31); DefenseIV(31); SpAttackIV(30); SpDefenseIV(31); SpeedIV(31); } // HP Electric
|
||||
OPPONENT(SPECIES_DIGLETT);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_HIDDEN_POWER); }
|
||||
TURN { MOVE(player, MOVE_HIDDEN_POWER, gimmick: GIMMICK_MEGA); }
|
||||
} SCENE {
|
||||
NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_HIDDEN_POWER, player); }
|
||||
MESSAGE("It doesn't affect the opposing Diglett…");
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Aerilate doesn't override Electrify (Gen7+)"); // No mon with Aerilate exists in Gen8+, but probably behaves similar to Pixilate, which does.
|
||||
TO_DO_BATTLE_TEST("Aerilate doesn't override Ion Deluge (Gen7+)"); // Ion Deluge doesn't exist in Gen 8+, but we probably could assume it behaves similar to under Electrify. TODO: Test by hacking SV.
|
||||
TO_DO_BATTLE_TEST("Aerilate overrides Electrify (Gen6)")
|
||||
TO_DO_BATTLE_TEST("Aerilate overrides Ion Deluge (Gen6)")
|
||||
TO_DO_BATTLE_TEST("Aerilate doesn't affect Tera Starstorm's type");
|
||||
SINGLE_BATTLE_TEST("Aerilate doesn't override Electrify")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_ELECTRIFY) == EFFECT_ELECTRIFY);
|
||||
ASSUME(GetSpeciesType(SPECIES_SANDSHREW, 0) == TYPE_GROUND || GetSpeciesType(SPECIES_SANDSHREW, 1) == TYPE_GROUND);
|
||||
PLAYER(SPECIES_PINSIR) { Item(ITEM_PINSIRITE); Speed(1); }
|
||||
OPPONENT(SPECIES_SANDSHREW) { Moves(MOVE_ELECTRIFY); Speed(10); }
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_ELECTRIFY); MOVE(player, MOVE_SCRATCH, gimmick: GIMMICK_MEGA); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIFY, opponent);
|
||||
NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, player); }
|
||||
MESSAGE("It doesn't affect the opposing Sandshrew…");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Aerilate overrides Ion Deluge")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_ION_DELUGE) == EFFECT_ION_DELUGE);
|
||||
ASSUME(GetSpeciesType(SPECIES_MACHOP, 0) == TYPE_FIGHTING || GetSpeciesType(SPECIES_MACHOP, 1) == TYPE_FIGHTING);
|
||||
PLAYER(SPECIES_PINSIR) { Item(ITEM_PINSIRITE); Speed(1); }
|
||||
OPPONENT(SPECIES_MACHOP) { Moves(MOVE_ION_DELUGE); Speed(10); }
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_ION_DELUGE); MOVE(player, MOVE_SCRATCH, gimmick: GIMMICK_MEGA); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ION_DELUGE, opponent);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, player);
|
||||
MESSAGE("It's super effective!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Aerilate changes Tera Blast's type when not Terastallized")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERA_BLAST) == EFFECT_TERA_BLAST);
|
||||
ASSUME(GetMoveType(MOVE_TERA_BLAST) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_MACHOP, 0) == TYPE_FIGHTING || GetSpeciesType(SPECIES_MACHOP, 1) == TYPE_FIGHTING);
|
||||
ASSUME(GetMoveEffect(MOVE_SKILL_SWAP) == EFFECT_SKILL_SWAP);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_SALAMENCE) { Item(ITEM_SALAMENCITE); Moves(MOVE_SKILL_SWAP); }
|
||||
OPPONENT(SPECIES_MACHOP);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_SKILL_SWAP, gimmick: GIMMICK_MEGA, target: player); }
|
||||
TURN { SWITCH(opponent, 1); MOVE(player, MOVE_TERA_BLAST); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player);
|
||||
MESSAGE("It's super effective!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Aerilate doesn't change Tera Blast's type when Terastallized")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERA_BLAST) == EFFECT_TERA_BLAST);
|
||||
ASSUME(GetMoveType(MOVE_TERA_BLAST) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_MISDREAVUS, 0) == TYPE_GHOST);
|
||||
ASSUME(GetMoveEffect(MOVE_SKILL_SWAP) == EFFECT_SKILL_SWAP);
|
||||
PLAYER(SPECIES_WOBBUFFET) { TeraType(TYPE_NORMAL); }
|
||||
OPPONENT(SPECIES_SALAMENCE) { Item(ITEM_SALAMENCITE); Moves(MOVE_SKILL_SWAP); }
|
||||
OPPONENT(SPECIES_MISDREAVUS);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_SKILL_SWAP, gimmick: GIMMICK_MEGA, target: player); }
|
||||
TURN { SWITCH(opponent, 1); MOVE(player, MOVE_TERA_BLAST, gimmick: GIMMICK_TERA); }
|
||||
} SCENE {
|
||||
NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player); }
|
||||
MESSAGE("It doesn't affect the opposing Misdreavus…");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Aerilate doesn't affect Terrain Pulse's type")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERRAIN_PULSE) == EFFECT_TERRAIN_PULSE);
|
||||
ASSUME(GetMoveType(MOVE_TERRAIN_PULSE) == TYPE_NORMAL);
|
||||
ASSUME(GetMoveEffect(MOVE_SKILL_SWAP) == EFFECT_SKILL_SWAP);
|
||||
ASSUME(GetSpeciesType(SPECIES_SANDSHREW, 0) == TYPE_GROUND || GetSpeciesType(SPECIES_SANDSHREW, 1) == TYPE_GROUND);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_SALAMENCE) { Item(ITEM_SALAMENCITE); Moves(MOVE_SKILL_SWAP); }
|
||||
OPPONENT(SPECIES_SANDSHREW);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_SKILL_SWAP, gimmick: GIMMICK_MEGA, target: player); MOVE(player, MOVE_ELECTRIC_TERRAIN); }
|
||||
TURN { SWITCH(opponent, 1); MOVE(player, MOVE_TERRAIN_PULSE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIC_TERRAIN, player);
|
||||
NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_TERRAIN_PULSE, player); }
|
||||
MESSAGE("It doesn't affect the opposing Sandshrew…");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Aerilate doesn't affect damaging Z-Move types")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveType(MOVE_SCRATCH) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_MACHOP, 0) == TYPE_FIGHTING || GetSpeciesType(SPECIES_MACHOP, 1) == TYPE_FIGHTING);
|
||||
ASSUME(GetMoveEffect(MOVE_SKILL_SWAP) == EFFECT_SKILL_SWAP);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_NORMALIUM_Z); }
|
||||
OPPONENT(SPECIES_SALAMENCE) { Item(ITEM_SALAMENCITE); Moves(MOVE_SKILL_SWAP); }
|
||||
OPPONENT(SPECIES_MACHOP);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_SKILL_SWAP, gimmick: GIMMICK_MEGA, target: player); }
|
||||
TURN { SWITCH(opponent, 1); MOVE(player, MOVE_SCRATCH, gimmick: GIMMICK_Z_MOVE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ZMOVE_ACTIVATE, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_BREAKNECK_BLITZ, player);
|
||||
NOT { MESSAGE("It's super effective!"); }
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Aerilate doesn't affect Max Strike's type");
|
||||
TO_DO_BATTLE_TEST("Aerilate doesn't affect Terrain Pulse's type");
|
||||
TO_DO_BATTLE_TEST("Aerilate doesn't affect damaging Z-Move types");
|
||||
TO_DO_BATTLE_TEST("(DYNAMAX) Aerilate turns Max Strike into Max Airstream"); // All other -ate abilities do this, so interpolating this as no Aerilate mon is available in a Dynamax game
|
||||
|
||||
@ -163,9 +163,72 @@ SINGLE_BATTLE_TEST("Galvanize doesn't affect Hidden Power's type")
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Galvanize doesn't affect Tera Starstorm's type");
|
||||
SINGLE_BATTLE_TEST("Galvanize changes Tera Blast's type when not Terastallized")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERA_BLAST) == EFFECT_TERA_BLAST);
|
||||
ASSUME(GetMoveType(MOVE_TERA_BLAST) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_ROOKIDEE, 0) == TYPE_FLYING || GetSpeciesType(SPECIES_ROOKIDEE, 1) == TYPE_FLYING);
|
||||
PLAYER(SPECIES_GEODUDE_ALOLA) { Ability(ABILITY_GALVANIZE); }
|
||||
OPPONENT(SPECIES_ROOKIDEE);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_TERA_BLAST); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player);
|
||||
MESSAGE("It's super effective!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Galvanize doesn't change Tera Blast's type when Terastallized")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERA_BLAST) == EFFECT_TERA_BLAST);
|
||||
ASSUME(GetMoveType(MOVE_TERA_BLAST) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_SANDSHREW, 0) == TYPE_GROUND || GetSpeciesType(SPECIES_SANDSHREW, 1) == TYPE_GROUND);
|
||||
PLAYER(SPECIES_GEODUDE_ALOLA) { Ability(ABILITY_GALVANIZE); TeraType(TYPE_NORMAL); }
|
||||
OPPONENT(SPECIES_SANDSHREW);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_TERA_BLAST, gimmick: GIMMICK_TERA); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player);
|
||||
NOT { MESSAGE("It doesn't affect the opposing Sandshrew…"); }
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Galvanize doesn't affect Terrain Pulse's type")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERRAIN_PULSE) == EFFECT_TERRAIN_PULSE);
|
||||
ASSUME(GetMoveType(MOVE_TERRAIN_PULSE) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_SANDSHREW, 0) == TYPE_GROUND || GetSpeciesType(SPECIES_SANDSHREW, 1) == TYPE_GROUND);
|
||||
PLAYER(SPECIES_GEODUDE_ALOLA) { Ability(ABILITY_GALVANIZE); }
|
||||
OPPONENT(SPECIES_SANDSHREW);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_GRASSY_TERRAIN); MOVE(player, MOVE_CELEBRATE); }
|
||||
TURN { MOVE(player, MOVE_TERRAIN_PULSE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASSY_TERRAIN, opponent);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TERRAIN_PULSE, player);
|
||||
MESSAGE("It's super effective!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Galvanize doesn't affect damaging Z-Move types")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveType(MOVE_SCRATCH) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_GYARADOS, 0) == TYPE_WATER || GetSpeciesType(SPECIES_GYARADOS, 1) == TYPE_WATER);
|
||||
PLAYER(SPECIES_GEODUDE_ALOLA) { Ability(ABILITY_GALVANIZE); Item(ITEM_NORMALIUM_Z); }
|
||||
OPPONENT(SPECIES_GYARADOS);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SCRATCH, gimmick: GIMMICK_Z_MOVE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ZMOVE_ACTIVATE, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_BREAKNECK_BLITZ, player);
|
||||
NOT { MESSAGE("It's super effective!"); }
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Galvanize doesn't affect Max Strike's type");
|
||||
TO_DO_BATTLE_TEST("Galvanize doesn't affect Terrain Pulse's type");
|
||||
TO_DO_BATTLE_TEST("Galvanize doesn't affect damaging Z-Move types");
|
||||
TO_DO_BATTLE_TEST("(DYNAMAX) Galvanize turns Max Strike into Max Lightning when not used by Gigantamax Pikachu/Toxtricity");
|
||||
//TO_DO_BATTLE_TEST("(DYNAMAX) Galvanize doesn't turn Max Strike into Max Lightning when used by Gigantamax Pikachu/Toxtricity, instead becoming G-Max Volt Crash/Stun Shock"); // Marked in Bulbapedia as "needs research", so this assumes that it behaves like Pixilate.
|
||||
|
||||
@ -273,7 +273,72 @@ SINGLE_BATTLE_TEST("Normalize doesn't affect Hidden Power's type")
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Aerilate doesn't affect Tera Starstorm's type");
|
||||
TO_DO_BATTLE_TEST("Normalize makes Flying Press do Normal/Flying damage");
|
||||
TO_DO_BATTLE_TEST("Normalize doesn't affect Terrain Pulse's type");
|
||||
TO_DO_BATTLE_TEST("Normalize doesn't affect damaging Z-Move types");
|
||||
SINGLE_BATTLE_TEST("Normalize doesn't change Tera Blast's type when Terastallized")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERA_BLAST) == EFFECT_TERA_BLAST);
|
||||
ASSUME(GetMoveType(MOVE_TERA_BLAST) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_MISDREAVUS, 0) == TYPE_GHOST);
|
||||
PLAYER(SPECIES_SKITTY) { Ability(ABILITY_NORMALIZE); TeraType(TYPE_DARK); }
|
||||
OPPONENT(SPECIES_MISDREAVUS);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_TERA_BLAST, gimmick: GIMMICK_TERA); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player);
|
||||
MESSAGE("It's super effective!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Normalize makes Flying Press do Normal/Flying damage")
|
||||
{
|
||||
enum Ability ability;
|
||||
PARAMETRIZE { ability = ABILITY_CUTE_CHARM; }
|
||||
PARAMETRIZE { ability = ABILITY_NORMALIZE; }
|
||||
GIVEN {
|
||||
ASSUME(GetSpeciesType(SPECIES_GOLEM, 0) == TYPE_ROCK || GetSpeciesType(SPECIES_GOLEM, 1) == TYPE_ROCK);
|
||||
PLAYER(SPECIES_SKITTY) { Ability(ability); Moves(MOVE_FLYING_PRESS); }
|
||||
OPPONENT(SPECIES_GOLEM);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_FLYING_PRESS); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_FLYING_PRESS, player);
|
||||
if (ability == ABILITY_NORMALIZE)
|
||||
MESSAGE("It's not very effective…");
|
||||
else
|
||||
NOT { MESSAGE("It's not very effective…"); }
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Normalize doesn't affect Terrain Pulse's type")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERRAIN_PULSE) == EFFECT_TERRAIN_PULSE);
|
||||
ASSUME(GetMoveType(MOVE_TERRAIN_PULSE) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_SANDSHREW, 0) == TYPE_GROUND || GetSpeciesType(SPECIES_SANDSHREW, 1) == TYPE_GROUND);
|
||||
PLAYER(SPECIES_SKITTY) { Ability(ABILITY_NORMALIZE); }
|
||||
OPPONENT(SPECIES_SANDSHREW);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_ELECTRIC_TERRAIN); MOVE(player, MOVE_CELEBRATE); }
|
||||
TURN { MOVE(player, MOVE_TERRAIN_PULSE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIC_TERRAIN, opponent);
|
||||
NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_TERRAIN_PULSE, player); }
|
||||
MESSAGE("It doesn't affect the opposing Sandshrew…");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Normalize doesn't affect damaging Z-Move types")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveType(MOVE_WATER_GUN) == TYPE_WATER);
|
||||
ASSUME(GetSpeciesType(SPECIES_GOLEM, 0) == TYPE_ROCK || GetSpeciesType(SPECIES_GOLEM, 1) == TYPE_ROCK);
|
||||
PLAYER(SPECIES_SKITTY) { Ability(ABILITY_NORMALIZE); Item(ITEM_WATERIUM_Z); Moves(MOVE_WATER_GUN); }
|
||||
OPPONENT(SPECIES_GOLEM);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_WATER_GUN, gimmick: GIMMICK_Z_MOVE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ZMOVE_ACTIVATE, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_HYDRO_VORTEX, player);
|
||||
MESSAGE("It's super effective!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -137,13 +137,104 @@ SINGLE_BATTLE_TEST("Pixilate doesn't affect Hidden Power's type")
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Pixilate doesn't override Electrify (Gen7+)");
|
||||
TO_DO_BATTLE_TEST("Pixilate doesn't override Ion Deluge (Gen7+)"); // Ion Deluge doesn't exist in Gen 8+, but we probably could assume it behaves similar to under Electrify. TODO: Test by hacking SV.
|
||||
TO_DO_BATTLE_TEST("Pixilate overrides Electrify (Gen6)")
|
||||
TO_DO_BATTLE_TEST("Pixilate overrides Ion Deluge (Gen6)")
|
||||
TO_DO_BATTLE_TEST("Pixilate doesn't affect Tera Starstorm's type");
|
||||
SINGLE_BATTLE_TEST("Pixilate doesn't override Electrify")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_ELECTRIFY) == EFFECT_ELECTRIFY);
|
||||
ASSUME(GetSpeciesType(SPECIES_SANDSHREW, 0) == TYPE_GROUND || GetSpeciesType(SPECIES_SANDSHREW, 1) == TYPE_GROUND);
|
||||
PLAYER(SPECIES_SYLVEON) { Ability(ABILITY_PIXILATE); }
|
||||
OPPONENT(SPECIES_SANDSHREW);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_ELECTRIFY); MOVE(player, MOVE_SCRATCH); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIFY, opponent);
|
||||
NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, player); }
|
||||
MESSAGE("It doesn't affect the opposing Sandshrew…");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Pixilate overrides Ion Deluge")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_ION_DELUGE) == EFFECT_ION_DELUGE);
|
||||
ASSUME(GetSpeciesType(SPECIES_BAGON, 0) == TYPE_DRAGON || GetSpeciesType(SPECIES_BAGON, 1) == TYPE_DRAGON);
|
||||
PLAYER(SPECIES_SYLVEON) { Ability(ABILITY_PIXILATE); }
|
||||
OPPONENT(SPECIES_BAGON);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_ION_DELUGE); MOVE(player, MOVE_SCRATCH); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ION_DELUGE, opponent);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, player);
|
||||
MESSAGE("It's super effective!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Pixilate changes Tera Blast's type when not Terastallized")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERA_BLAST) == EFFECT_TERA_BLAST);
|
||||
ASSUME(GetMoveType(MOVE_TERA_BLAST) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_MACHOP, 0) == TYPE_FIGHTING || GetSpeciesType(SPECIES_MACHOP, 1) == TYPE_FIGHTING);
|
||||
PLAYER(SPECIES_SYLVEON) { Ability(ABILITY_PIXILATE); }
|
||||
OPPONENT(SPECIES_MACHOP);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_TERA_BLAST); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player);
|
||||
MESSAGE("It's super effective!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Pixilate doesn't change Tera Blast's type when Terastallized")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERA_BLAST) == EFFECT_TERA_BLAST);
|
||||
ASSUME(GetMoveType(MOVE_TERA_BLAST) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_MISDREAVUS, 0) == TYPE_GHOST);
|
||||
PLAYER(SPECIES_SYLVEON) { Ability(ABILITY_PIXILATE); TeraType(TYPE_NORMAL); }
|
||||
OPPONENT(SPECIES_MISDREAVUS);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_TERA_BLAST, gimmick: GIMMICK_TERA); }
|
||||
} SCENE {
|
||||
NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player); }
|
||||
MESSAGE("It doesn't affect the opposing Misdreavus…");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Pixilate doesn't affect Terrain Pulse's type")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERRAIN_PULSE) == EFFECT_TERRAIN_PULSE);
|
||||
ASSUME(GetMoveType(MOVE_TERRAIN_PULSE) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_SANDSHREW, 0) == TYPE_GROUND || GetSpeciesType(SPECIES_SANDSHREW, 1) == TYPE_GROUND);
|
||||
PLAYER(SPECIES_SYLVEON) { Ability(ABILITY_PIXILATE); }
|
||||
OPPONENT(SPECIES_SANDSHREW);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_ELECTRIC_TERRAIN); MOVE(player, MOVE_CELEBRATE); }
|
||||
TURN { MOVE(player, MOVE_TERRAIN_PULSE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIC_TERRAIN, opponent);
|
||||
NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_TERRAIN_PULSE, player); }
|
||||
MESSAGE("It doesn't affect the opposing Sandshrew…");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Pixilate doesn't affect damaging Z-Move types")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveType(MOVE_SCRATCH) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_BAGON, 0) == TYPE_DRAGON || GetSpeciesType(SPECIES_BAGON, 1) == TYPE_DRAGON);
|
||||
PLAYER(SPECIES_SYLVEON) { Ability(ABILITY_PIXILATE); Item(ITEM_NORMALIUM_Z); }
|
||||
OPPONENT(SPECIES_BAGON);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SCRATCH, gimmick: GIMMICK_Z_MOVE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ZMOVE_ACTIVATE, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_BREAKNECK_BLITZ, player);
|
||||
NOT { MESSAGE("It's super effective!"); }
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Pixilate doesn't affect Max Strike's type");
|
||||
TO_DO_BATTLE_TEST("Pixilate doesn't affect Terrain Pulse's type");
|
||||
TO_DO_BATTLE_TEST("Pixilate doesn't affect damaging Z-Move types");
|
||||
TO_DO_BATTLE_TEST("(DYNAMAX) Pixilate turns Max Strike into Max Starfall when not used by Gigantamax Alcremie");
|
||||
TO_DO_BATTLE_TEST("(DYNAMAX) Pixilate doesn't turn Max Strike into Max Starfall when used by Gigantamax Alcremie, instead becoming G-Max Finale");
|
||||
|
||||
@ -136,13 +136,104 @@ SINGLE_BATTLE_TEST("Refrigerate doesn't affect Hidden Power's type")
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Refrigerate doesn't override Electrify (Gen7+)"); // No mon with Refrigerate exists in Gen8+, but probably behaves similar to Pixilate, which does.
|
||||
TO_DO_BATTLE_TEST("Refrigerate doesn't override Ion Deluge (Gen7+)"); // Ion Deluge doesn't exist in Gen 8+, but we probably could assume it behaves similar to under Electrify. TODO: Test by hacking SV.
|
||||
TO_DO_BATTLE_TEST("Refrigerate overrides Electrify (Gen6)")
|
||||
TO_DO_BATTLE_TEST("Refrigerate overrides Ion Deluge (Gen6)")
|
||||
TO_DO_BATTLE_TEST("Refrigerate doesn't affect Tera Starstorm's type");
|
||||
SINGLE_BATTLE_TEST("Refrigerate doesn't override Electrify")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_ELECTRIFY) == EFFECT_ELECTRIFY);
|
||||
ASSUME(GetSpeciesType(SPECIES_SANDSHREW, 0) == TYPE_GROUND || GetSpeciesType(SPECIES_SANDSHREW, 1) == TYPE_GROUND);
|
||||
PLAYER(SPECIES_AMAURA) { Ability(ABILITY_REFRIGERATE); }
|
||||
OPPONENT(SPECIES_SANDSHREW);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_ELECTRIFY); MOVE(player, MOVE_SCRATCH); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIFY, opponent);
|
||||
NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, player); }
|
||||
MESSAGE("It doesn't affect the opposing Sandshrew…");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Refrigerate overrides Ion Deluge")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_ION_DELUGE) == EFFECT_ION_DELUGE);
|
||||
ASSUME(GetSpeciesType(SPECIES_SANDSHREW, 0) == TYPE_GROUND || GetSpeciesType(SPECIES_SANDSHREW, 1) == TYPE_GROUND);
|
||||
PLAYER(SPECIES_AMAURA) { Ability(ABILITY_REFRIGERATE); }
|
||||
OPPONENT(SPECIES_SANDSHREW);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_ION_DELUGE); MOVE(player, MOVE_SCRATCH); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ION_DELUGE, opponent);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, player);
|
||||
MESSAGE("It's super effective!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Refrigerate changes Tera Blast's type when not Terastallized")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERA_BLAST) == EFFECT_TERA_BLAST);
|
||||
ASSUME(GetMoveType(MOVE_TERA_BLAST) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_CHARMANDER, 0) == TYPE_FIRE || GetSpeciesType(SPECIES_CHARMANDER, 1) == TYPE_FIRE);
|
||||
PLAYER(SPECIES_AMAURA) { Ability(ABILITY_REFRIGERATE); }
|
||||
OPPONENT(SPECIES_CHARMANDER);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_TERA_BLAST); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player);
|
||||
MESSAGE("It's not very effective…");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Refrigerate doesn't change Tera Blast's type when Terastallized")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERA_BLAST) == EFFECT_TERA_BLAST);
|
||||
ASSUME(GetMoveType(MOVE_TERA_BLAST) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_MISDREAVUS, 0) == TYPE_GHOST);
|
||||
PLAYER(SPECIES_AMAURA) { Ability(ABILITY_REFRIGERATE); TeraType(TYPE_NORMAL); }
|
||||
OPPONENT(SPECIES_MISDREAVUS);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_TERA_BLAST, gimmick: GIMMICK_TERA); }
|
||||
} SCENE {
|
||||
NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player); }
|
||||
MESSAGE("It doesn't affect the opposing Misdreavus…");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Refrigerate doesn't affect Terrain Pulse's type")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_TERRAIN_PULSE) == EFFECT_TERRAIN_PULSE);
|
||||
ASSUME(GetMoveType(MOVE_TERRAIN_PULSE) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_SANDSHREW, 0) == TYPE_GROUND || GetSpeciesType(SPECIES_SANDSHREW, 1) == TYPE_GROUND);
|
||||
PLAYER(SPECIES_AMAURA) { Ability(ABILITY_REFRIGERATE); }
|
||||
OPPONENT(SPECIES_SANDSHREW);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_ELECTRIC_TERRAIN); MOVE(player, MOVE_CELEBRATE); }
|
||||
TURN { MOVE(player, MOVE_TERRAIN_PULSE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIC_TERRAIN, opponent);
|
||||
NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_TERRAIN_PULSE, player); }
|
||||
MESSAGE("It doesn't affect the opposing Sandshrew…");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Refrigerate doesn't affect damaging Z-Move types")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveType(MOVE_SCRATCH) == TYPE_NORMAL);
|
||||
ASSUME(GetSpeciesType(SPECIES_BAGON, 0) == TYPE_DRAGON || GetSpeciesType(SPECIES_BAGON, 1) == TYPE_DRAGON);
|
||||
PLAYER(SPECIES_AMAURA) { Ability(ABILITY_REFRIGERATE); Item(ITEM_NORMALIUM_Z); }
|
||||
OPPONENT(SPECIES_BAGON);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SCRATCH, gimmick: GIMMICK_Z_MOVE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ZMOVE_ACTIVATE, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_BREAKNECK_BLITZ, player);
|
||||
NOT { MESSAGE("It's super effective!"); }
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Refrigerate doesn't affect Max Strike's type");
|
||||
TO_DO_BATTLE_TEST("Refrigerate doesn't affect Terrain Pulse's type");
|
||||
TO_DO_BATTLE_TEST("Refrigerate doesn't affect damaging Z-Move types");
|
||||
TO_DO_BATTLE_TEST("(DYNAMAX) Refrigerate turns Max Strike into Max Hailstorm when not used by Gigantamax Lapras");
|
||||
//TO_DO_BATTLE_TEST("(DYNAMAX) Refrigerate doesn't turn Max Strike into Max Hailstorm when used by Gigantamax Lapras, instead becoming G-Max Resonance"); // Marked in Bulbapedia as "needs research", so this assumes that it behaves like Pixilate.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user