Merge remote-tracking branch 'rhh/master' into upcoming
This commit is contained in:
commit
50cbcebc81
5 changed files with 46 additions and 18 deletions
|
@ -860,6 +860,21 @@ gBattleAnims_Moves::
|
||||||
.4byte Move_MATCHA_GOTCHA
|
.4byte Move_MATCHA_GOTCHA
|
||||||
.4byte Move_SYRUP_BOMB
|
.4byte Move_SYRUP_BOMB
|
||||||
.4byte Move_IVY_CUDGEL
|
.4byte Move_IVY_CUDGEL
|
||||||
|
.4byte Move_833
|
||||||
|
.4byte Move_834
|
||||||
|
.4byte Move_835
|
||||||
|
.4byte Move_836
|
||||||
|
.4byte Move_837
|
||||||
|
.4byte Move_838
|
||||||
|
.4byte Move_839
|
||||||
|
.4byte Move_840
|
||||||
|
.4byte Move_841
|
||||||
|
.4byte Move_842
|
||||||
|
.4byte Move_843
|
||||||
|
.4byte Move_844
|
||||||
|
.4byte Move_845
|
||||||
|
.4byte Move_846
|
||||||
|
.4byte Move_847
|
||||||
@@@@ Z MOVES
|
@@@@ Z MOVES
|
||||||
.4byte Move_BREAKNECK_BLITZ
|
.4byte Move_BREAKNECK_BLITZ
|
||||||
.4byte Move_ALL_OUT_PUMMELING
|
.4byte Move_ALL_OUT_PUMMELING
|
||||||
|
@ -16963,6 +16978,21 @@ Move_IVY_CUDGEL::
|
||||||
Move_NONE:
|
Move_NONE:
|
||||||
Move_MIRROR_MOVE:
|
Move_MIRROR_MOVE:
|
||||||
Move_POUND:
|
Move_POUND:
|
||||||
|
Move_833:
|
||||||
|
Move_834:
|
||||||
|
Move_835:
|
||||||
|
Move_836:
|
||||||
|
Move_837:
|
||||||
|
Move_838:
|
||||||
|
Move_839:
|
||||||
|
Move_840:
|
||||||
|
Move_841:
|
||||||
|
Move_842:
|
||||||
|
Move_843:
|
||||||
|
Move_844:
|
||||||
|
Move_845:
|
||||||
|
Move_846:
|
||||||
|
Move_847:
|
||||||
loadspritegfx ANIM_TAG_IMPACT
|
loadspritegfx ANIM_TAG_IMPACT
|
||||||
monbg ANIM_TARGET
|
monbg ANIM_TARGET
|
||||||
setalpha 12, 8
|
setalpha 12, 8
|
||||||
|
|
|
@ -317,8 +317,9 @@
|
||||||
#define MOVEEND_EMERGENCY_EXIT 33
|
#define MOVEEND_EMERGENCY_EXIT 33
|
||||||
#define MOVEEND_SYMBIOSIS 34
|
#define MOVEEND_SYMBIOSIS 34
|
||||||
#define MOVEEND_OPPORTUNIST 35 // Occurs after other stat change items/abilities to try and copy the boosts
|
#define MOVEEND_OPPORTUNIST 35 // Occurs after other stat change items/abilities to try and copy the boosts
|
||||||
#define MOVEEND_CLEAR_BITS 36
|
#define MOVEEND_SAME_MOVE_TURNS 36
|
||||||
#define MOVEEND_COUNT 37
|
#define MOVEEND_CLEAR_BITS 37
|
||||||
|
#define MOVEEND_COUNT 38
|
||||||
|
|
||||||
// switch cases
|
// switch cases
|
||||||
#define B_SWITCH_NORMAL 0
|
#define B_SWITCH_NORMAL 0
|
||||||
|
|
|
@ -2962,6 +2962,10 @@ static void BattleStartClearSetData(void)
|
||||||
memset(&gSideTimers, 0, sizeof(gSideTimers));
|
memset(&gSideTimers, 0, sizeof(gSideTimers));
|
||||||
memset(&gWishFutureKnock, 0, sizeof(gWishFutureKnock));
|
memset(&gWishFutureKnock, 0, sizeof(gWishFutureKnock));
|
||||||
memset(&gBattleResults, 0, sizeof(gBattleResults));
|
memset(&gBattleResults, 0, sizeof(gBattleResults));
|
||||||
|
memset(&gBattleScripting, 0, sizeof(gBattleScripting));
|
||||||
|
|
||||||
|
gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle;
|
||||||
|
gBattleScripting.expOnCatch = (B_EXP_CATCH >= GEN_6);
|
||||||
|
|
||||||
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
|
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
|
||||||
{
|
{
|
||||||
|
@ -2998,7 +3002,6 @@ static void BattleStartClearSetData(void)
|
||||||
gBattlerAttacker = 0;
|
gBattlerAttacker = 0;
|
||||||
gBattlerTarget = 0;
|
gBattlerTarget = 0;
|
||||||
gEffectBattler = 0;
|
gEffectBattler = 0;
|
||||||
gBattleScripting.battler = 0;
|
|
||||||
gBattlerAbility = 0;
|
gBattlerAbility = 0;
|
||||||
gBattleWeather = 0;
|
gBattleWeather = 0;
|
||||||
gHitMarker = 0;
|
gHitMarker = 0;
|
||||||
|
@ -3013,12 +3016,7 @@ static void BattleStartClearSetData(void)
|
||||||
gHitMarker |= HITMARKER_NO_ANIMATIONS;
|
gHitMarker |= HITMARKER_NO_ANIMATIONS;
|
||||||
}
|
}
|
||||||
|
|
||||||
gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle;
|
|
||||||
gBattleScripting.expOnCatch = (B_EXP_CATCH >= GEN_6);
|
|
||||||
gBattleScripting.monCaught = FALSE;
|
|
||||||
|
|
||||||
gMultiHitCounter = 0;
|
gMultiHitCounter = 0;
|
||||||
gBattleScripting.savedDmg = 0;
|
|
||||||
gBattleOutcome = 0;
|
gBattleOutcome = 0;
|
||||||
gBattleControllerExecFlags = 0;
|
gBattleControllerExecFlags = 0;
|
||||||
gPaydayMoney = 0;
|
gPaydayMoney = 0;
|
||||||
|
@ -3031,8 +3029,6 @@ static void BattleStartClearSetData(void)
|
||||||
gPauseCounterBattle = 0;
|
gPauseCounterBattle = 0;
|
||||||
gBattleMoveDamage = 0;
|
gBattleMoveDamage = 0;
|
||||||
gIntroSlideFlags = 0;
|
gIntroSlideFlags = 0;
|
||||||
gBattleScripting.animTurn = 0;
|
|
||||||
gBattleScripting.animTargetsHit = 0;
|
|
||||||
gLeveledUpInBattle = 0;
|
gLeveledUpInBattle = 0;
|
||||||
gAbsentBattlerFlags = 0;
|
gAbsentBattlerFlags = 0;
|
||||||
gBattleStruct->runTries = 0;
|
gBattleStruct->runTries = 0;
|
||||||
|
|
|
@ -1859,13 +1859,9 @@ static void Cmd_ppreduce(void)
|
||||||
if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBattlerAttacker].pp[gCurrMovePos])
|
if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBattlerAttacker].pp[gCurrMovePos])
|
||||||
{
|
{
|
||||||
gProtectStructs[gBattlerAttacker].notFirstStrike = TRUE;
|
gProtectStructs[gBattlerAttacker].notFirstStrike = TRUE;
|
||||||
|
|
||||||
// For item Metronome, echoed voice
|
// For item Metronome, echoed voice
|
||||||
if (gCurrentMove == gLastResultingMoves[gBattlerAttacker]
|
if (gCurrentMove != gLastResultingMoves[gBattlerAttacker] || WasUnableToUseMove(gBattlerAttacker))
|
||||||
&& !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
|
|
||||||
&& !WasUnableToUseMove(gBattlerAttacker)
|
|
||||||
&& gSpecialStatuses[gBattlerAttacker].parentalBondState != PARENTAL_BOND_1ST_HIT) // Don't increment counter on first hit
|
|
||||||
gBattleStruct->sameMoveTurns[gBattlerAttacker]++;
|
|
||||||
else
|
|
||||||
gBattleStruct->sameMoveTurns[gBattlerAttacker] = 0;
|
gBattleStruct->sameMoveTurns[gBattlerAttacker] = 0;
|
||||||
|
|
||||||
if (gBattleMons[gBattlerAttacker].pp[gCurrMovePos] > ppToDeduct)
|
if (gBattleMons[gBattlerAttacker].pp[gCurrMovePos] > ppToDeduct)
|
||||||
|
@ -6052,6 +6048,13 @@ static void Cmd_moveend(void)
|
||||||
}
|
}
|
||||||
gBattleScripting.moveendState++;
|
gBattleScripting.moveendState++;
|
||||||
break;
|
break;
|
||||||
|
case MOVEEND_SAME_MOVE_TURNS:
|
||||||
|
if (gCurrentMove != gLastResultingMoves[gBattlerAttacker] || gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
|
||||||
|
gBattleStruct->sameMoveTurns[gBattlerAttacker] = 0;
|
||||||
|
else if (gCurrentMove == gLastResultingMoves[gBattlerAttacker] && gSpecialStatuses[gBattlerAttacker].parentalBondState != PARENTAL_BOND_1ST_HIT)
|
||||||
|
gBattleStruct->sameMoveTurns[gBattlerAttacker]++;
|
||||||
|
gBattleScripting.moveendState++;
|
||||||
|
break;
|
||||||
case MOVEEND_CLEAR_BITS: // Clear/Set bits for things like using a move for all targets and all hits.
|
case MOVEEND_CLEAR_BITS: // Clear/Set bits for things like using a move for all targets and all hits.
|
||||||
if (gSpecialStatuses[gBattlerAttacker].instructedChosenTarget)
|
if (gSpecialStatuses[gBattlerAttacker].instructedChosenTarget)
|
||||||
*(gBattleStruct->moveTarget + gBattlerAttacker) = gSpecialStatuses[gBattlerAttacker].instructedChosenTarget & 0x3;
|
*(gBattleStruct->moveTarget + gBattlerAttacker) = gSpecialStatuses[gBattlerAttacker].instructedChosenTarget & 0x3;
|
||||||
|
|
|
@ -67,7 +67,6 @@ SINGLE_BATTLE_TEST("Metronome Item's boost is reset if the attacker uses a diffe
|
||||||
SINGLE_BATTLE_TEST("Metronome Item's boost is reset if the move fails")
|
SINGLE_BATTLE_TEST("Metronome Item's boost is reset if the move fails")
|
||||||
{
|
{
|
||||||
s16 damage[2];
|
s16 damage[2];
|
||||||
KNOWN_FAILING; //https://github.com/rh-hideout/pokeemerald-expansion/issues/3251
|
|
||||||
GIVEN {
|
GIVEN {
|
||||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_METRONOME); }
|
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_METRONOME); }
|
||||||
OPPONENT(SPECIES_WOBBUFFET);
|
OPPONENT(SPECIES_WOBBUFFET);
|
||||||
|
@ -110,7 +109,6 @@ SINGLE_BATTLE_TEST("Metronome Item counts charging turn of moves for its attacki
|
||||||
{
|
{
|
||||||
u32 item;
|
u32 item;
|
||||||
|
|
||||||
KNOWN_FAILING; // https://github.com/rh-hideout/pokeemerald-expansion/issues/3250
|
|
||||||
PARAMETRIZE {item = ITEM_NONE; }
|
PARAMETRIZE {item = ITEM_NONE; }
|
||||||
PARAMETRIZE {item = ITEM_METRONOME; }
|
PARAMETRIZE {item = ITEM_METRONOME; }
|
||||||
GIVEN {
|
GIVEN {
|
||||||
|
|
Loading…
Reference in a new issue