Fix mega evolution allowing to evolve two mons in doubles

This commit is contained in:
DizzyEggg 2018-09-20 12:55:12 +02:00
parent a181900141
commit c7ca7b6e8e
3 changed files with 5 additions and 2 deletions

View File

@ -1566,8 +1566,8 @@ void CreateMegaTriggerSprite(u8 battlerId, u8 palId)
gBattleStruct->megaEvoTriggerSpriteId = CreateSprite(&sSpriteTemplate_MegaTrigger,
gSprites[gHealthboxSpriteIds[battlerId]].pos1.x,
gSprites[gHealthboxSpriteIds[battlerId]].pos1.y - MEGA_TRIGGER_POS_Y_DIFF, 0);
gSprites[gBattleStruct->megaEvoTriggerSpriteId].tBattler = battlerId;
}
gSprites[gBattleStruct->megaEvoTriggerSpriteId].tBattler = battlerId;
gSprites[gBattleStruct->megaEvoTriggerSpriteId].tHide = FALSE;
SetMegaTriggerSpritePal(gBattleStruct->megaEvoTriggerSpriteId, palId);

View File

@ -4338,6 +4338,8 @@ static void HandleTurnActionSelectionState(void)
{
RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 3);
}
gBattleStruct->toMegaEvolve &= ~(gBitTable[BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))]);
BtlController_EmitEndBounceEffect(0);
MarkBattlerForControllerExec(gActiveBattler);
return;

View File

@ -5611,7 +5611,8 @@ bool32 CanMegaEvolve(u8 battlerId)
return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
if (IsPartnerMonFromSameTrainer(battlerId) && gBattleStruct->alreadyMegaEvolved[partnerPosition])
if (IsPartnerMonFromSameTrainer(battlerId)
&& (gBattleStruct->alreadyMegaEvolved[partnerPosition] || (gBattleStruct->toMegaEvolve & gBitTable[BATTLE_PARTNER(battlerId)])))
return FALSE;
}