Updated moves that raise the target's own stats
Modified tests to use MoveHasMoveEffect
This commit is contained in:
parent
e87fe533c3
commit
31b3337cda
@ -82,7 +82,7 @@ SINGLE_BATTLE_TEST("Contrary raises stats after using a move which would normall
|
||||
PARAMETRIZE { ability = ABILITY_CONTRARY; }
|
||||
PARAMETRIZE { ability = ABILITY_TANGLED_FEET; }
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_OVERHEAT].additionalEffects[0].moveEffect == MOVE_EFFECT_SP_ATK_TWO_DOWN);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_OVERHEAT, MOVE_EFFECT_SP_ATK_TWO_DOWN, FALSE) == TRUE);
|
||||
ASSUME(gBattleMoves[MOVE_OVERHEAT].split == SPLIT_SPECIAL);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_SPINDA) { Ability(ability); }
|
||||
|
||||
@ -79,7 +79,7 @@ SINGLE_BATTLE_TEST("Hyper Cutter is ignored by Mold Breaker")
|
||||
SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Attack stage reduction from moves used by the user")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_SUPERPOWER].additionalEffects[0].moveEffect == MOVE_EFFECT_ATK_DEF_DOWN);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_SUPERPOWER, MOVE_EFFECT_ATK_DEF_DOWN, FALSE) == TRUE);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); }
|
||||
} WHEN {
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
SINGLE_BATTLE_TEST("Immunity prevents Poison Sting poison")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_POISON_STING].additionalEffects[0].moveEffect == MOVE_EFFECT_POISON);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_POISON_STING, MOVE_EFFECT_POISON, FALSE) == TRUE);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_SNORLAX) { Ability(ABILITY_IMMUNITY); }
|
||||
} WHEN {
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
SINGLE_BATTLE_TEST("Pastel Veil prevents Poison Sting poison")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_POISON_STING].additionalEffects[0].moveEffect == MOVE_EFFECT_POISON);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_POISON_STING, MOVE_EFFECT_POISON, FALSE) == TRUE);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_PONYTA_GALARIAN) { Ability(ABILITY_PASTEL_VEIL); }
|
||||
} WHEN {
|
||||
@ -18,7 +18,7 @@ SINGLE_BATTLE_TEST("Pastel Veil prevents Poison Sting poison")
|
||||
DOUBLE_BATTLE_TEST("Pastel Veil prevents Poison Sting poison on partner")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_POISON_STING].additionalEffects[0].moveEffect == MOVE_EFFECT_POISON);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_POISON_STING, MOVE_EFFECT_POISON, FALSE) == TRUE);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WYNAUT);
|
||||
OPPONENT(SPECIES_PONYTA_GALARIAN) { Ability(ABILITY_PASTEL_VEIL); }
|
||||
|
||||
@ -47,7 +47,7 @@ SINGLE_BATTLE_TEST("Purifying Salt grants immunity to status effects")
|
||||
ASSUME(gBattleMoves[MOVE_HYPNOSIS].effect == EFFECT_SLEEP);
|
||||
ASSUME(gBattleMoves[MOVE_THUNDER_WAVE].effect == EFFECT_PARALYZE);
|
||||
ASSUME(gBattleMoves[MOVE_TOXIC].effect == EFFECT_TOXIC);
|
||||
ASSUME(gBattleMoves[MOVE_POWDER_SNOW].additionalEffects[0].moveEffect == MOVE_EFFECT_FREEZE_OR_FROSTBITE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_POWDER_SNOW, MOVE_EFFECT_FREEZE_OR_FROSTBITE, FALSE) == TRUE);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_PURIFYING_SALT); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_BODY_SLAM].additionalEffects[0].moveEffect == MOVE_EFFECT_PARALYSIS);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_BODY_SLAM, MOVE_EFFECT_PARALYSIS, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
AI_SINGLE_BATTLE_TEST("AI sees increased base power of Facade")
|
||||
@ -80,7 +80,7 @@ AI_SINGLE_BATTLE_TEST("AI sees increased base power of Wake Up Slap")
|
||||
|
||||
// GIVEN {
|
||||
// ASSUME(gBattleMoves[MOVE_GRAV_APPLE].effect == EFFECT_GRAV_APPLE);
|
||||
// ASSUME(gBattleMoves[MOVE_TROP_KICK].additionalEffects[0].moveEffect == MOVE_EFFECT_ATK_MINUS_1);
|
||||
// ASSUME(MoveHasMoveEffect(MOVE_TROP_KICK, MOVE_EFFECT_ATK_MINUS_1, FALSE) == TRUE);
|
||||
// AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT);
|
||||
// PLAYER(SPECIES_WOBBUFFET) { HP(81); Speed(20); }
|
||||
// OPPONENT(SPECIES_WOBBUFFET) { Speed(10); Moves(MOVE_TROP_KICK, MOVE_GRAV_APPLE); }
|
||||
|
||||
@ -72,12 +72,12 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents secondary effects that reduce stats")
|
||||
PARAMETRIZE { move = MOVE_MUD_SLAP; }
|
||||
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_AURORA_BEAM].additionalEffects[0].moveEffect == MOVE_EFFECT_ATK_MINUS_1);
|
||||
ASSUME(gBattleMoves[MOVE_ROCK_SMASH].additionalEffects[0].moveEffect == MOVE_EFFECT_DEF_MINUS_1);
|
||||
ASSUME(gBattleMoves[MOVE_BUBBLE_BEAM].additionalEffects[0].moveEffect == MOVE_EFFECT_SPD_MINUS_1);
|
||||
ASSUME(gBattleMoves[MOVE_SNARL].additionalEffects[0].moveEffect == MOVE_EFFECT_SP_ATK_MINUS_1);
|
||||
ASSUME(gBattleMoves[MOVE_PSYCHIC].additionalEffects[0].moveEffect == MOVE_EFFECT_SP_DEF_MINUS_1);
|
||||
ASSUME(gBattleMoves[MOVE_MUD_SLAP].additionalEffects[0].moveEffect == MOVE_EFFECT_ACC_MINUS_1);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_AURORA_BEAM, MOVE_EFFECT_ATK_MINUS_1, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_ROCK_SMASH, MOVE_EFFECT_DEF_MINUS_1, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_BUBBLE_BEAM, MOVE_EFFECT_SPD_MINUS_1, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_SNARL, MOVE_EFFECT_SP_ATK_MINUS_1, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_PSYCHIC, MOVE_EFFECT_SP_DEF_MINUS_1, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_MUD_SLAP, MOVE_EFFECT_ACC_MINUS_1, FALSE) == TRUE);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_CLEAR_AMULET); };
|
||||
} WHEN {
|
||||
|
||||
@ -27,7 +27,7 @@ SINGLE_BATTLE_TEST("AdditionalEffect.chance controls the proportion of secondary
|
||||
PARAMETRIZE { move = MOVE_THUNDER_SHOCK; }
|
||||
PARAMETRIZE { move = MOVE_DISCHARGE; }
|
||||
PARAMETRIZE { move = MOVE_NUZZLE; }
|
||||
ASSUME(gBattleMoves[move].additionalEffects[0].moveEffect == MOVE_EFFECT_PARALYSIS);
|
||||
ASSUME(MoveHasMoveEffect(move, MOVE_EFFECT_PARALYSIS, FALSE) == TRUE);
|
||||
ASSUME(0 < gBattleMoves[move].additionalEffects[0].chance && gBattleMoves[move].additionalEffects[0].chance <= 100);
|
||||
PASSES_RANDOMLY(gBattleMoves[move].additionalEffects[0].chance, 100, RNG_SECONDARY_EFFECT);
|
||||
GIVEN {
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_AXE_KICK].effect == EFFECT_RECOIL_IF_MISS);
|
||||
ASSUME(gBattleMoves[MOVE_AXE_KICK].additionalEffects[0].moveEffect == MOVE_EFFECT_CONFUSION);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_AXE_KICK, MOVE_EFFECT_CONFUSION, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Axe Kick confuses the target")
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_BARB_BARRAGE].effect == EFFECT_BARB_BARRAGE);
|
||||
ASSUME(gBattleMoves[MOVE_BARB_BARRAGE].additionalEffects[0].moveEffect == MOVE_EFFECT_POISON);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_BARB_BARRAGE, MOVE_EFFECT_POISON, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Barb Barrage inflicts poison")
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_EMBER].additionalEffects[0].moveEffect == MOVE_EFFECT_BURN);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_EMBER, MOVE_EFFECT_BURN, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Ember inflicts burn")
|
||||
@ -42,7 +42,7 @@ SINGLE_BATTLE_TEST("Ember cannot burn a Fire-type Pokémon")
|
||||
DOUBLE_BATTLE_TEST("Lava Plume inflicts burn to every battler on the field")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_LAVA_PLUME].additionalEffects[0].moveEffect == MOVE_EFFECT_BURN);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_LAVA_PLUME, MOVE_EFFECT_BURN, FALSE) == TRUE);
|
||||
ASSUME(gBattleMoves[MOVE_LAVA_PLUME].target == MOVE_TARGET_FOES_AND_ALLY);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
@ -68,7 +68,7 @@ SINGLE_BATTLE_TEST("Matcha Gotcha inflicts burn 20% of the time")
|
||||
{
|
||||
PASSES_RANDOMLY(20, 100, RNG_SECONDARY_EFFECT);
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_MATCHA_GOTCHA].additionalEffects[0].moveEffect == MOVE_EFFECT_BURN);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_MATCHA_GOTCHA, MOVE_EFFECT_BURN, FALSE) == TRUE);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
@ -84,7 +84,7 @@ SINGLE_BATTLE_TEST("Matcha Gotcha inflicts burn 20% of the time")
|
||||
DOUBLE_BATTLE_TEST("Matcha Gatcha can burn both targets")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gBattleMoves[MOVE_MATCHA_GOTCHA].additionalEffects[0].moveEffect == MOVE_EFFECT_BURN);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_MATCHA_GOTCHA, MOVE_EFFECT_BURN, FALSE) == TRUE);
|
||||
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_DIRE_CLAW].additionalEffects[0].moveEffect == MOVE_EFFECT_DIRE_CLAW);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_DIRE_CLAW, MOVE_EFFECT_DIRE_CLAW, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Dire Claw can inflict poison, paralysis or sleep")
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_HEADBUTT].additionalEffects[0].moveEffect == MOVE_EFFECT_FLINCH);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_HEADBUTT, MOVE_EFFECT_FLINCH, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Headbutt flinches the target if attacker is faster")
|
||||
|
||||
@ -3,12 +3,12 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_THUNDER_FANG].additionalEffects[0].moveEffect == MOVE_EFFECT_PARALYSIS);
|
||||
ASSUME(gBattleMoves[MOVE_THUNDER_FANG].additionalEffects[1].moveEffect == MOVE_EFFECT_FLINCH);
|
||||
ASSUME(gBattleMoves[MOVE_ICE_FANG].additionalEffects[0].moveEffect == MOVE_EFFECT_FREEZE);
|
||||
ASSUME(gBattleMoves[MOVE_ICE_FANG].additionalEffects[1].moveEffect == MOVE_EFFECT_FLINCH);
|
||||
ASSUME(gBattleMoves[MOVE_FIRE_FANG].additionalEffects[0].moveEffect == MOVE_EFFECT_BURN);
|
||||
ASSUME(gBattleMoves[MOVE_FIRE_FANG].additionalEffects[1].moveEffect == MOVE_EFFECT_FLINCH);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_THUNDER_FANG, MOVE_EFFECT_PARALYSIS, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_THUNDER_FANG, MOVE_EFFECT_FLINCH, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_ICE_FANG, MOVE_EFFECT_FREEZE, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_ICE_FANG, MOVE_EFFECT_FLINCH, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_FIRE_FANG, MOVE_EFFECT_BURN, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_FIRE_FANG, MOVE_EFFECT_FLINCH, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Thunder, Ice and Fire Fang inflict status 10% of the time")
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_POWDER_SNOW].additionalEffects[0].moveEffect == MOVE_EFFECT_FREEZE_OR_FROSTBITE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_POWDER_SNOW, MOVE_EFFECT_FREEZE_OR_FROSTBITE, FALSE) == TRUE);
|
||||
ASSUME(gBattleMoves[MOVE_BLIZZARD].accuracy == 70);
|
||||
}
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_JAW_LOCK].additionalEffects[0].moveEffect == MOVE_EFFECT_TRAP_BOTH);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_JAW_LOCK, MOVE_EFFECT_TRAP_BOTH, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Jaw Lock traps both opponents")
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_MORTAL_SPIN].additionalEffects[0].moveEffect == MOVE_EFFECT_RAPIDSPIN);
|
||||
ASSUME(gBattleMoves[MOVE_MORTAL_SPIN].additionalEffects[1].moveEffect == MOVE_EFFECT_POISON);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_MORTAL_SPIN, MOVE_EFFECT_RAPIDSPIN, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_MORTAL_SPIN, MOVE_EFFECT_POISON, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Mortal Spin blows away hazards and poisons foe")
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_THUNDER_SHOCK].additionalEffects[0].moveEffect == MOVE_EFFECT_PARALYSIS);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_THUNDER_SHOCK, MOVE_EFFECT_PARALYSIS, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Thunder Shock inflicts paralysis")
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_POISON_STING].additionalEffects[0].moveEffect == MOVE_EFFECT_POISON);
|
||||
ASSUME(gBattleMoves[MOVE_TWINEEDLE].additionalEffects[0].moveEffect == MOVE_EFFECT_POISON);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_POISON_STING, MOVE_EFFECT_POISON, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_TWINEEDLE, MOVE_EFFECT_POISON, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Poison Sting inflicts poison")
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_RELIC_SONG].effect == EFFECT_RELIC_SONG);
|
||||
ASSUME(gBattleMoves[MOVE_RELIC_SONG].additionalEffects[0].moveEffect == MOVE_EFFECT_SLEEP);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_RELIC_SONG, MOVE_EFFECT_SLEEP, FALSE) == TRUE);
|
||||
ASSUME(P_GEN_5_POKEMON == TRUE);
|
||||
}
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_SPIN_OUT].additionalEffects[0].moveEffect == MOVE_EFFECT_SPD_MINUS_2);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_SPIN_OUT, MOVE_EFFECT_SPD_MINUS_2, FALSE) == TRUE);
|
||||
ASSUME(gBattleMoves[MOVE_SPIN_OUT].additionalEffects[0].self == TRUE);
|
||||
}
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_TRI_ATTACK].additionalEffects[0].moveEffect == MOVE_EFFECT_TRI_ATTACK);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_TRI_ATTACK, MOVE_EFFECT_TRI_ATTACK, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Tri Attack can inflict paralysis, burn or freeze")
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gBattleMoves[MOVE_TRIPLE_ARROWS].additionalEffects[0].moveEffect == MOVE_EFFECT_DEF_MINUS_1);
|
||||
ASSUME(gBattleMoves[MOVE_TRIPLE_ARROWS].additionalEffects[1].moveEffect == MOVE_EFFECT_FLINCH);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_TRIPLE_ARROWS, MOVE_EFFECT_DEF_MINUS_1, FALSE) == TRUE);
|
||||
ASSUME(MoveHasMoveEffect(MOVE_TRIPLE_ARROWS, MOVE_EFFECT_FLINCH, FALSE) == TRUE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Triple Arrows may lower Defense by one stage")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user