Fixes Uproar not waking up mons (#7714)
This commit is contained in:
parent
5aac8bb7e4
commit
2f22780c17
@ -6735,7 +6735,7 @@ BattleScript_MoveUsedWokeUp::
|
||||
BattleScript_MonWokeUpInUproar::
|
||||
printstring STRINGID_PKMNWOKEUPINUPROAR
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
updatestatusicon BS_ATTACKER
|
||||
updatestatusicon BS_EFFECT_BATTLER
|
||||
end2
|
||||
|
||||
BattleScript_PoisonTurnDmg::
|
||||
|
||||
@ -1370,25 +1370,22 @@ static bool32 HandleEndTurnThirdEventBlock(u32 battler)
|
||||
case THIRD_EVENT_BLOCK_UPROAR:
|
||||
if (gBattleMons[battler].volatiles.uproarTurns)
|
||||
{
|
||||
for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++)
|
||||
for (gEffectBattler = 0; gEffectBattler < gBattlersCount; gEffectBattler++)
|
||||
{
|
||||
if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP)
|
||||
&& GetBattlerAbility(gBattlerAttacker) != ABILITY_SOUNDPROOF)
|
||||
if ((gBattleMons[gEffectBattler].status1 & STATUS1_SLEEP)
|
||||
&& GetBattlerAbility(gEffectBattler) != ABILITY_SOUNDPROOF)
|
||||
{
|
||||
gBattleMons[gBattlerAttacker].status1 &= ~STATUS1_SLEEP;
|
||||
gBattleMons[gBattlerAttacker].volatiles.nightmare = FALSE;
|
||||
gBattleMons[gEffectBattler].status1 &= ~STATUS1_SLEEP;
|
||||
gBattleMons[gEffectBattler].volatiles.nightmare = FALSE;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
|
||||
BattleScriptExecute(BattleScript_MonWokeUpInUproar);
|
||||
BtlController_EmitSetMonData(gBattlerAttacker, B_COMM_TO_CONTROLLER, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattlerAttacker].status1);
|
||||
MarkBattlerForControllerExec(gBattlerAttacker);
|
||||
BtlController_EmitSetMonData(gEffectBattler, B_COMM_TO_CONTROLLER, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattlerAttacker].status1);
|
||||
MarkBattlerForControllerExec(gEffectBattler);
|
||||
effect = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (gBattlerAttacker != gBattlersCount)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
if (effect == FALSE)
|
||||
{
|
||||
gBattlerAttacker = battler;
|
||||
gBattleMons[battler].volatiles.uproarTurns--; // uproar timer goes down
|
||||
|
||||
@ -270,7 +270,7 @@ const u8 *const gBattleStringsTable[STRINGID_COUNT] =
|
||||
[STRINGID_PKMNFASTASLEEP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is fast asleep."),
|
||||
[STRINGID_PKMNWOKEUP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} woke up!"),
|
||||
[STRINGID_PKMNUPROARKEPTAWAKE] = COMPOUND_STRING("But the uproar kept {B_SCR_NAME_WITH_PREFIX2} awake!"),
|
||||
[STRINGID_PKMNWOKEUPINUPROAR] = COMPOUND_STRING("The uproar woke {B_ATK_NAME_WITH_PREFIX2}!"),
|
||||
[STRINGID_PKMNWOKEUPINUPROAR] = COMPOUND_STRING("The uproar woke {B_EFF_NAME_WITH_PREFIX2}!"),
|
||||
[STRINGID_PKMNCAUSEDUPROAR] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} caused an uproar!"),
|
||||
[STRINGID_PKMNMAKINGUPROAR] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is making an uproar!"),
|
||||
[STRINGID_PKMNCALMEDDOWN] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} calmed down."),
|
||||
|
||||
@ -1956,6 +1956,7 @@ static enum MoveCanceller CancellerAsleepOrFrozen(void)
|
||||
TryDeactivateSleepClause(GetBattlerSide(gBattlerAttacker), gBattlerPartyIndexes[gBattlerAttacker]);
|
||||
gBattleMons[gBattlerAttacker].status1 &= ~STATUS1_SLEEP;
|
||||
gBattleMons[gBattlerAttacker].volatiles.nightmare = FALSE;
|
||||
gEffectBattler = gBattlerAttacker;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP_UPROAR;
|
||||
BattleScriptCall(BattleScript_MoveUsedWokeUp);
|
||||
return MOVE_STEP_REMOVES_STATUS;
|
||||
|
||||
@ -132,6 +132,7 @@ u32 BattlePalace_TryEscapeStatus(u8 battler)
|
||||
if (UproarWakeUpCheck(battler))
|
||||
{
|
||||
// Wake up from Uproar
|
||||
gEffectBattler = battler;
|
||||
gBattleMons[battler].status1 &= ~(STATUS1_SLEEP);
|
||||
gBattleMons[battler].volatiles.nightmare = FALSE;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP_UPROAR;
|
||||
|
||||
@ -27,3 +27,17 @@ DOUBLE_BATTLE_TEST("Uproar status causes sleeping Pokémon to wake up during an
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Uproar wakes up other pokemon on field")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(B_UPROAR_TURNS >= GEN_5);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_UPROAR); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_UPROAR, opponent);
|
||||
MESSAGE("The uproar woke Wobbuffet!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -690,7 +690,7 @@ DOUBLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mo
|
||||
ASSUME(GetMoveEffect(MOVE_UPROAR) == EFFECT_UPROAR);
|
||||
PLAYER(SPECIES_ZIGZAGOON);
|
||||
PLAYER(SPECIES_ZIGZAGOON);
|
||||
PLAYER(SPECIES_ZIGZAGOON);
|
||||
PLAYER(SPECIES_ZIGZAGOON) { Moves(MOVE_CELEBRATE); }
|
||||
OPPONENT(SPECIES_ZIGZAGOON);
|
||||
OPPONENT(SPECIES_ZIGZAGOON);
|
||||
} WHEN {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user