Fix Infinite Tera Orb racharging (#4863)

* Fix Infinte Tera Orb charges

* trainer_parties.h
This commit is contained in:
Alex 2024-07-13 22:38:06 +02:00 committed by GitHub
parent 385b7017f3
commit 45275fee17
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -63,19 +63,21 @@ bool32 CanTerastallize(u32 battler)
{
u32 holdEffect = GetBattlerHoldEffect(battler, FALSE);
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
if (TESTING || GetBattlerSide(battler) == B_SIDE_OPPONENT)
{
// Check if Player has Tera Orb and has charge.
if (!TESTING && !CheckBagHasItem(ITEM_TERA_ORB, 1))
return FALSE;
if (!TESTING
&& !(B_FLAG_TERA_ORB_NO_COST != 0 && FlagGet(B_FLAG_TERA_ORB_NO_COST))
&& (battler == B_POSITION_PLAYER_LEFT || (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && battler == B_POSITION_PLAYER_RIGHT)))
{
if (B_FLAG_TERA_ORB_CHARGED != 0 && !FlagGet(B_FLAG_TERA_ORB_CHARGED))
return FALSE;
}
// Skip all other checks in this block, go to HasTrainerUsedGimmick
}
else if (!CheckBagHasItem(ITEM_TERA_ORB, 1))
{
return FALSE;
}
else if (FlagGet(B_FLAG_TERA_ORB_NO_COST))
{
// Tera Orb is not depleted, go to HasTrainerUsedGimmick
}
else if (!FlagGet(B_FLAG_TERA_ORB_CHARGED))
{
return FALSE;
}
// Check if Trainer has already Terastallized.