mirror of
https://github.com/rh-hideout/pokeemerald-expansion.git
synced 2026-03-21 18:04:50 -05:00
Fixes Secret Power Terrain effects not being applied (#9492)
This commit is contained in:
parent
552be6d7e7
commit
df81e254ab
|
|
@ -2991,30 +2991,31 @@ void SetMoveEffect(enum BattlerId battlerAtk, enum BattlerId effectBattler, enum
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MOVE_EFFECT_SECRET_POWER:
|
case MOVE_EFFECT_SECRET_POWER:
|
||||||
if (gFieldStatuses & STATUS_FIELD_TERRAIN_ANY)
|
if (IsBattlerAlive(battlerAtk))
|
||||||
{
|
{
|
||||||
switch (gFieldStatuses & STATUS_FIELD_TERRAIN_ANY)
|
moveEffect = gBattleEnvironmentInfo[gBattleEnvironment].secretPowerEffect;
|
||||||
|
if (gFieldStatuses & STATUS_FIELD_TERRAIN_ANY)
|
||||||
{
|
{
|
||||||
case STATUS_FIELD_MISTY_TERRAIN:
|
switch (gFieldStatuses & STATUS_FIELD_TERRAIN_ANY)
|
||||||
moveEffect = MOVE_EFFECT_SP_ATK_MINUS_1;
|
{
|
||||||
break;
|
case STATUS_FIELD_MISTY_TERRAIN:
|
||||||
case STATUS_FIELD_GRASSY_TERRAIN:
|
moveEffect = MOVE_EFFECT_SP_ATK_MINUS_1;
|
||||||
moveEffect = MOVE_EFFECT_SLEEP;
|
break;
|
||||||
break;
|
case STATUS_FIELD_GRASSY_TERRAIN:
|
||||||
case STATUS_FIELD_ELECTRIC_TERRAIN:
|
moveEffect = MOVE_EFFECT_SLEEP;
|
||||||
moveEffect = MOVE_EFFECT_PARALYSIS;
|
break;
|
||||||
break;
|
case STATUS_FIELD_ELECTRIC_TERRAIN:
|
||||||
case STATUS_FIELD_PSYCHIC_TERRAIN:
|
moveEffect = MOVE_EFFECT_PARALYSIS;
|
||||||
moveEffect = MOVE_EFFECT_SPD_MINUS_1;
|
break;
|
||||||
break;
|
case STATUS_FIELD_PSYCHIC_TERRAIN:
|
||||||
default:
|
moveEffect = MOVE_EFFECT_SPD_MINUS_1;
|
||||||
moveEffect = MOVE_EFFECT_PARALYSIS;
|
break;
|
||||||
break;
|
default:
|
||||||
|
moveEffect = MOVE_EFFECT_PARALYSIS;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
SetMoveEffect(battlerAtk, effectBattler, moveEffect, battleScript, effectFlags);
|
||||||
else
|
|
||||||
{
|
|
||||||
SetMoveEffect(battlerAtk, effectBattler, gBattleEnvironmentInfo[gBattleEnvironment].secretPowerEffect, battleScript, effectFlags);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MOVE_EFFECT_PSYCHIC_NOISE:
|
case MOVE_EFFECT_PSYCHIC_NOISE:
|
||||||
|
|
|
||||||
73
test/battle/move_effect_secondary/secret_power.c
Normal file
73
test/battle/move_effect_secondary/secret_power.c
Normal file
|
|
@ -0,0 +1,73 @@
|
||||||
|
#include "global.h"
|
||||||
|
#include "test/battle.h"
|
||||||
|
|
||||||
|
ASSUMPTIONS
|
||||||
|
{
|
||||||
|
ASSUME(MoveHasAdditionalEffect(MOVE_SECRET_POWER, MOVE_EFFECT_SECRET_POWER) == TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Secret Power inflicts paralysis in Electric Terrain")
|
||||||
|
{
|
||||||
|
GIVEN {
|
||||||
|
ASSUME(GetMoveEffect(MOVE_ELECTRIC_TERRAIN) == EFFECT_ELECTRIC_TERRAIN);
|
||||||
|
PLAYER(SPECIES_WOBBUFFET);
|
||||||
|
OPPONENT(SPECIES_WOBBUFFET);
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(opponent, MOVE_ELECTRIC_TERRAIN); MOVE(player, MOVE_SECRET_POWER); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIC_TERRAIN, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SECRET_POWER, player);
|
||||||
|
STATUS_ICON(opponent, paralysis: TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Secret Power inflicts sleep in Grassy Terrain")
|
||||||
|
{
|
||||||
|
GIVEN {
|
||||||
|
ASSUME(GetMoveEffect(MOVE_GRASSY_TERRAIN) == EFFECT_GRASSY_TERRAIN);
|
||||||
|
PLAYER(SPECIES_WOBBUFFET);
|
||||||
|
OPPONENT(SPECIES_WOBBUFFET);
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(opponent, MOVE_GRASSY_TERRAIN); MOVE(player, MOVE_SECRET_POWER); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASSY_TERRAIN, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SECRET_POWER, player);
|
||||||
|
STATUS_ICON(opponent, sleep: TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Secret Power lowers Speed in Psychic Terrain")
|
||||||
|
{
|
||||||
|
GIVEN {
|
||||||
|
ASSUME(GetMoveEffect(MOVE_PSYCHIC_TERRAIN) == EFFECT_PSYCHIC_TERRAIN);
|
||||||
|
PLAYER(SPECIES_WOBBUFFET);
|
||||||
|
OPPONENT(SPECIES_WOBBUFFET);
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(opponent, MOVE_PSYCHIC_TERRAIN); MOVE(player, MOVE_SECRET_POWER); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHIC_TERRAIN, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SECRET_POWER, player);
|
||||||
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||||
|
} THEN {
|
||||||
|
EXPECT_EQ(opponent->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Secret Power lowers Sp. Atk in Misty Terrain")
|
||||||
|
{
|
||||||
|
GIVEN {
|
||||||
|
ASSUME(GetMoveEffect(MOVE_MISTY_TERRAIN) == EFFECT_MISTY_TERRAIN);
|
||||||
|
PLAYER(SPECIES_WOBBUFFET);
|
||||||
|
OPPONENT(SPECIES_WOBBUFFET);
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(opponent, MOVE_MISTY_TERRAIN); MOVE(player, MOVE_SECRET_POWER); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_MISTY_TERRAIN, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SECRET_POWER, player);
|
||||||
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||||
|
} THEN {
|
||||||
|
EXPECT_EQ(opponent->statStages[STAT_SPATK], DEFAULT_STAT_STAGE - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TO_DO_BATTLE_TEST("Secret Power doesn't inflict secondary effects when user fainted");
|
||||||
Loading…
Reference in New Issue
Block a user