mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 19:47:35 +01:00
Do new battler end turn effects.
This commit is contained in:
parent
81b29ae7c1
commit
f3be5ad22d
@ -3588,11 +3588,17 @@ BattleScript_WishButFullHp::
|
||||
BattleScript_IngrainTurnHeal::
|
||||
playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL, NULL
|
||||
printstring STRINGID_PKMNABSORBEDNUTRIENTS
|
||||
BattleScript_TurnHeal:
|
||||
waitmessage 0x40
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
end2
|
||||
|
||||
BattleScript_AquaRingHeal::
|
||||
playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL, NULL
|
||||
printstring STRINGID_AQUARINGHEAL
|
||||
goto BattleScript_TurnHeal
|
||||
|
||||
BattleScript_PrintMonIsRooted::
|
||||
pause 0x20
|
||||
@ -3862,6 +3868,26 @@ BattleScript_YawnMakesAsleep::
|
||||
waitstate
|
||||
makevisible BS_EFFECT_BATTLER
|
||||
end2
|
||||
|
||||
BattleScript_EmbargoEndTurn::
|
||||
printstring STRINGID_EMBARGOENDS
|
||||
waitmessage 0x40
|
||||
end2
|
||||
|
||||
BattleScript_MagnetRiseEndTurn::
|
||||
printstring STRINGID_MAGNETRISEENDS
|
||||
waitmessage 0x40
|
||||
end2
|
||||
|
||||
BattleScript_TelekinesisEndTurn::
|
||||
printstring STRINGID_TELEKINESISENDS
|
||||
waitmessage 0x40
|
||||
end2
|
||||
|
||||
BattleScript_HealBlockEndTurn::
|
||||
printstring STRINGID_HEALBLOCKENDS
|
||||
waitmessage 0x40
|
||||
end2
|
||||
|
||||
BattleScript_MoveEffectPoison::
|
||||
statusanimation BS_EFFECT_BATTLER
|
||||
|
@ -173,6 +173,10 @@ struct DisableStruct
|
||||
/*0x19*/ u8 rechargeCounter;
|
||||
/*0x1A*/ u8 autonomizeCount;
|
||||
/*0x1B*/ u8 slowStartTimer;
|
||||
u8 embargoTimer;
|
||||
u8 magnetRiseTimer;
|
||||
u8 telekinesisTimer;
|
||||
u8 healBlockTimer;
|
||||
};
|
||||
|
||||
struct ProtectStruct
|
||||
|
@ -286,5 +286,10 @@ extern const u8 BattleScript_ActionWatchesCarefully[];
|
||||
extern const u8 BattleScript_ActionGetNear[];
|
||||
extern const u8 BattleScript_ActionThrowPokeblock[];
|
||||
extern const u8 BattleScript_82DBEE3[];
|
||||
extern const u8 BattleScript_EmbargoEndTurn[];
|
||||
extern const u8 BattleScript_MagnetRiseEndTurn[];
|
||||
extern const u8 BattleScript_TelekinesisEndTurn[];
|
||||
extern const u8 BattleScript_HealBlockEndTurn[];
|
||||
extern const u8 BattleScript_AquaRingHeal[];
|
||||
|
||||
#endif // GUARD_BATTLE_SCRIPTS_H
|
||||
|
@ -57,7 +57,7 @@ u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check);
|
||||
bool8 AreAllMovesUnusable(void);
|
||||
u8 GetImprisonedMovesCount(u8 battlerId, u16 move);
|
||||
u8 UpdateTurnCounters(void);
|
||||
u8 TurnBasedEffects(void);
|
||||
u8 DoBattlerEndTurnEffects(void);
|
||||
bool8 HandleWishPerishSongOnTurnEnd(void);
|
||||
bool8 HandleFaintedMonActions(void);
|
||||
void TryClearRageStatuses(void);
|
||||
|
@ -153,6 +153,9 @@
|
||||
#define STATUS3_TELEKINESIS 0x800000
|
||||
#define STATUS3_UNBURDEN 0x1000000
|
||||
#define STATUS3_MIRACLE_EYED 0x2000000
|
||||
#define STATUS3_MAGNET_RISE 0x4000000
|
||||
#define STATUS3_HEAL_BLOCK 0x8000000
|
||||
#define STATUS3_AQUA_RING 0x10000000
|
||||
#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)
|
||||
|
||||
// Not really sure what a "hitmarker" is.
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef GUARD_CONSTANTS_BATTLE_STRING_IDS_H
|
||||
#define GUARD_CONSTANTS_BATTLE_STRING_IDS_H
|
||||
|
||||
#define BATTLESTRINGS_COUNT 420
|
||||
#define BATTLESTRINGS_COUNT 433
|
||||
|
||||
#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved
|
||||
|
||||
@ -434,5 +434,18 @@
|
||||
#define STRINGID_POSTPONETARGETMOVE 429
|
||||
#define STRINGID_REFLECTTARGETSTYPE 430
|
||||
#define STRINGID_TRANSFERHELDITEM 431
|
||||
#define STRINGID_EMBARGOENDS 432
|
||||
#define STRINGID_MAGNETRISEENDS 433
|
||||
#define STRINGID_HEALBLOCKENDS 434
|
||||
#define STRINGID_TELEKINESISENDS 435
|
||||
#define STRINGID_TAILWINDENDS 436
|
||||
#define STRINGID_LUCKYCHANTENDS 437
|
||||
#define STRINGID_TRICKROOMENDS 438
|
||||
#define STRINGID_WONDERROOMENDS 439
|
||||
#define STRINGID_MAGICROOMENDS 440
|
||||
#define STRINGID_MUDSPORTENDS 441
|
||||
#define STRINGID_WATERSPORTENDS 442
|
||||
#define STRINGID_GRAVITYENDS 443
|
||||
#define STRINGID_AQUARINGHEAL 444
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H
|
||||
|
@ -3968,7 +3968,7 @@ void BattleTurnPassed(void)
|
||||
{
|
||||
if (UpdateTurnCounters())
|
||||
return;
|
||||
if (TurnBasedEffects())
|
||||
if (DoBattlerEndTurnEffects())
|
||||
return;
|
||||
}
|
||||
if (HandleFaintedMonActions())
|
||||
|
@ -574,6 +574,21 @@ static const u8 sText_PostponeTargetMove[] =_("{B_DEF_NAME_WITH_PREFIX}’s move
|
||||
static const u8 sText_ReflectTargetsType[] =_("{B_ATK_NAME_WITH_PREFIX}’s type\nchanged to match the {B_DEF_NAME_WITH_PREFIX}’s!");
|
||||
static const u8 sText_TransferHeldItem[] =_("{B_DEF_NAME_WITH_PREFIX} recieved {B_LAST_ITEM}\nfrom {B_ATK_NAME_WITH_PREFIX}");
|
||||
|
||||
// These strings are currently placeholders, to be fixed.
|
||||
static const u8 sText_EmbargoEnds[] = _("");
|
||||
static const u8 sText_MagnetRiseEnds[] = _("");
|
||||
static const u8 sText_HealBlockEnds[] = _("");
|
||||
static const u8 sText_TelekinesisEnds[] = _("");
|
||||
static const u8 sText_TailwindEnds[] = _("");
|
||||
static const u8 sText_LuckyChantEnds[] = _("");
|
||||
static const u8 sText_TrickRoomEnds[] = _("");
|
||||
static const u8 sText_WonderRoomEnds[] = _("");
|
||||
static const u8 sText_MagicRoomEnds[] = _("");
|
||||
static const u8 sText_MudSportEnds[] = _("");
|
||||
static const u8 sText_WaterSportEnds[] = _("");
|
||||
static const u8 sText_GravityEnds[] = _("");
|
||||
static const u8 sText_AquaRingHeal[] = _("");
|
||||
|
||||
const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] =
|
||||
{
|
||||
sText_Trainer1LoseText, // 12
|
||||
@ -997,6 +1012,19 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] =
|
||||
sText_PostponeTargetMove, // 429
|
||||
sText_ReflectTargetsType, // 430
|
||||
sText_TransferHeldItem, // 431
|
||||
sText_EmbargoEnds, // 432
|
||||
sText_MagnetRiseEnds, // 433
|
||||
sText_HealBlockEnds, // 434
|
||||
sText_TelekinesisEnds, // 435
|
||||
sText_TailwindEnds, // 436
|
||||
sText_LuckyChantEnds, // 437
|
||||
sText_TrickRoomEnds, // 438
|
||||
sText_WonderRoomEnds, // 439
|
||||
sText_MagicRoomEnds, // 440
|
||||
sText_MudSportEnds, // 441
|
||||
sText_WaterSportEnds, // 442
|
||||
sText_GravityEnds, // 443
|
||||
sText_AquaRingHeal, // 444
|
||||
};
|
||||
|
||||
const u16 gMissStringIds[] =
|
||||
|
@ -999,14 +999,41 @@ u8 UpdateTurnCounters(void)
|
||||
return (gBattleMainFunc != BattleTurnPassed);
|
||||
}
|
||||
|
||||
#define TURNBASED_MAX_CASE 19
|
||||
|
||||
u8 TurnBasedEffects(void)
|
||||
enum
|
||||
{
|
||||
u8 effect = 0;
|
||||
ENDTURN_INGRAIN,
|
||||
ENDTURN_AQUA_RING,
|
||||
ENDTURN_ABILITIES,
|
||||
ENDTURN_ITEMS1,
|
||||
ENDTURN_LEECH_SEED,
|
||||
ENDTURN_POISON,
|
||||
ENDTURN_BAD_POISON,
|
||||
ENDTURN_BURN,
|
||||
ENDTURN_NIGHTMARES,
|
||||
ENDTURN_CURSE,
|
||||
ENDTURN_WRAP,
|
||||
ENDTURN_UPROAR,
|
||||
ENDTURN_THRASH,
|
||||
ENDTURN_DISABLE,
|
||||
ENDTURN_ENCORE,
|
||||
ENDTURN_MAGNET_RISE,
|
||||
ENDTURN_TELEKINESIS,
|
||||
ENDTURN_HEALBLOCK,
|
||||
ENDTURN_EMBARGO,
|
||||
ENDTURN_LOCK_ON,
|
||||
ENDTURN_CHARGE,
|
||||
ENDTURN_TAUNT,
|
||||
ENDTURN_YAWN,
|
||||
ENDTURN_ITEMS2,
|
||||
ENDTURN_BATTLER_COUNT
|
||||
};
|
||||
|
||||
u8 DoBattlerEndTurnEffects(void)
|
||||
{
|
||||
u8 effect = FALSE;
|
||||
|
||||
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20);
|
||||
while (gBattleStruct->turnEffectsBattlerId < gBattlersCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE)
|
||||
while (gBattleStruct->turnEffectsBattlerId < gBattlersCount && gBattleStruct->turnEffectsTracker <= ENDTURN_BATTLER_COUNT)
|
||||
{
|
||||
gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->turnEffectsBattlerId];
|
||||
if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
|
||||
@ -1017,9 +1044,10 @@ u8 TurnBasedEffects(void)
|
||||
{
|
||||
switch (gBattleStruct->turnEffectsTracker)
|
||||
{
|
||||
case 0: // ingrain
|
||||
case ENDTURN_INGRAIN: // ingrain
|
||||
if ((gStatuses3[gActiveBattler] & STATUS3_ROOTED)
|
||||
&& gBattleMons[gActiveBattler].hp != gBattleMons[gActiveBattler].maxHP
|
||||
&& !BATTLER_MAX_HP(gActiveBattler)
|
||||
&& !(gStatuses3[gActiveBattler] & STATUS3_HEAL_BLOCK)
|
||||
&& gBattleMons[gActiveBattler].hp != 0)
|
||||
{
|
||||
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16;
|
||||
@ -1031,22 +1059,37 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 1: // end turn abilities
|
||||
case ENDTURN_AQUA_RING: // aqua ring
|
||||
if ((gStatuses3[gActiveBattler] & STATUS3_AQUA_RING)
|
||||
&& !BATTLER_MAX_HP(gActiveBattler)
|
||||
&& !(gStatuses3[gActiveBattler] & STATUS3_HEAL_BLOCK)
|
||||
&& gBattleMons[gActiveBattler].hp != 0)
|
||||
{
|
||||
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16;
|
||||
if (gBattleMoveDamage == 0)
|
||||
gBattleMoveDamage = 1;
|
||||
gBattleMoveDamage *= -1;
|
||||
BattleScriptExecute(BattleScript_AquaRingHeal);
|
||||
effect++;
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case ENDTURN_ABILITIES: // end turn abilities
|
||||
if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBattler, 0, 0, 0))
|
||||
effect++;
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 2: // item effects
|
||||
case ENDTURN_ITEMS1: // item effects
|
||||
if (ItemBattleEffects(1, gActiveBattler, 0))
|
||||
effect++;
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 18: // item effects again
|
||||
case ENDTURN_ITEMS2: // item effects again
|
||||
if (ItemBattleEffects(1, gActiveBattler, 1))
|
||||
effect++;
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 3: // leech seed
|
||||
case ENDTURN_LEECH_SEED: // leech seed
|
||||
if ((gStatuses3[gActiveBattler] & STATUS3_LEECHSEED)
|
||||
&& gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER].hp != 0
|
||||
&& gBattleMons[gActiveBattler].hp != 0)
|
||||
@ -1062,7 +1105,7 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 4: // poison
|
||||
case ENDTURN_POISON: // poison
|
||||
if ((gBattleMons[gActiveBattler].status1 & STATUS1_POISON) && gBattleMons[gActiveBattler].hp != 0)
|
||||
{
|
||||
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8;
|
||||
@ -1073,7 +1116,7 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 5: // toxic poison
|
||||
case ENDTURN_BAD_POISON: // toxic poison
|
||||
if ((gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON) && gBattleMons[gActiveBattler].hp != 0)
|
||||
{
|
||||
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16;
|
||||
@ -1087,7 +1130,7 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 6: // burn
|
||||
case ENDTURN_BURN: // burn
|
||||
if ((gBattleMons[gActiveBattler].status1 & STATUS1_BURN) && gBattleMons[gActiveBattler].hp != 0)
|
||||
{
|
||||
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8;
|
||||
@ -1098,7 +1141,7 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 7: // spooky nightmares
|
||||
case ENDTURN_NIGHTMARES: // spooky nightmares
|
||||
if ((gBattleMons[gActiveBattler].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBattler].hp != 0)
|
||||
{
|
||||
// R/S does not perform this sleep check, which causes the nightmare effect to
|
||||
@ -1118,7 +1161,7 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 8: // curse
|
||||
case ENDTURN_CURSE: // curse
|
||||
if ((gBattleMons[gActiveBattler].status2 & STATUS2_CURSED) && gBattleMons[gActiveBattler].hp != 0)
|
||||
{
|
||||
gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4;
|
||||
@ -1129,7 +1172,7 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 9: // wrap
|
||||
case ENDTURN_WRAP: // wrap
|
||||
if ((gBattleMons[gActiveBattler].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBattler].hp != 0)
|
||||
{
|
||||
gBattleMons[gActiveBattler].status2 -= 0x2000;
|
||||
@ -1162,7 +1205,7 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 10: // uproar
|
||||
case ENDTURN_UPROAR: // uproar
|
||||
if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR)
|
||||
{
|
||||
for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++)
|
||||
@ -1211,7 +1254,7 @@ u8 TurnBasedEffects(void)
|
||||
if (effect != 2)
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 11: // thrash
|
||||
case ENDTURN_THRASH: // thrash
|
||||
if (gBattleMons[gActiveBattler].status2 & STATUS2_LOCK_CONFUSE)
|
||||
{
|
||||
gBattleMons[gActiveBattler].status2 -= 0x400;
|
||||
@ -1233,7 +1276,7 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 12: // disable
|
||||
case ENDTURN_DISABLE: // disable
|
||||
if (gDisableStructs[gActiveBattler].disableTimer1 != 0)
|
||||
{
|
||||
s32 i;
|
||||
@ -1256,7 +1299,7 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 13: // encore
|
||||
case ENDTURN_ENCORE: // encore
|
||||
if (gDisableStructs[gActiveBattler].encoreTimer1 != 0)
|
||||
{
|
||||
if (gBattleMons[gActiveBattler].moves[gDisableStructs[gActiveBattler].encoredMovePos] != gDisableStructs[gActiveBattler].encoredMove) // pokemon does not have the encored move anymore
|
||||
@ -1275,22 +1318,22 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 14: // lock-on decrement
|
||||
case ENDTURN_LOCK_ON: // lock-on decrement
|
||||
if (gStatuses3[gActiveBattler] & STATUS3_ALWAYS_HITS)
|
||||
gStatuses3[gActiveBattler] -= 0x8;
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 15: // charge
|
||||
case ENDTURN_CHARGE: // charge
|
||||
if (gDisableStructs[gActiveBattler].chargeTimer1 && --gDisableStructs[gActiveBattler].chargeTimer1 == 0)
|
||||
gStatuses3[gActiveBattler] &= ~STATUS3_CHARGED_UP;
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 16: // taunt
|
||||
case ENDTURN_TAUNT: // taunt
|
||||
if (gDisableStructs[gActiveBattler].tauntTimer1)
|
||||
gDisableStructs[gActiveBattler].tauntTimer1--;
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 17: // yawn
|
||||
case ENDTURN_YAWN: // yawn
|
||||
if (gStatuses3[gActiveBattler] & STATUS3_YAWN)
|
||||
{
|
||||
gStatuses3[gActiveBattler] -= 0x800;
|
||||
@ -1309,7 +1352,63 @@ u8 TurnBasedEffects(void)
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case 19: // done
|
||||
case ENDTURN_EMBARGO:
|
||||
if (gStatuses3[gActiveBattler] & STATUS3_EMBARGO)
|
||||
{
|
||||
if (gDisableStructs[gActiveBattler].embargoTimer != 0)
|
||||
gDisableStructs[gActiveBattler].embargoTimer--;
|
||||
if (gDisableStructs[gActiveBattler].embargoTimer == 0)
|
||||
{
|
||||
gStatuses3[gActiveBattler] &= ~(STATUS3_EMBARGO);
|
||||
BattleScriptExecute(BattleScript_EmbargoEndTurn);
|
||||
effect++;
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case ENDTURN_MAGNET_RISE:
|
||||
if (gStatuses3[gActiveBattler] & STATUS3_MAGNET_RISE)
|
||||
{
|
||||
if (gDisableStructs[gActiveBattler].magnetRiseTimer != 0)
|
||||
gDisableStructs[gActiveBattler].magnetRiseTimer--;
|
||||
if (gDisableStructs[gActiveBattler].magnetRiseTimer == 0)
|
||||
{
|
||||
gStatuses3[gActiveBattler] &= ~(STATUS3_MAGNET_RISE);
|
||||
BattleScriptExecute(BattleScript_MagnetRiseEndTurn);
|
||||
effect++;
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case ENDTURN_TELEKINESIS:
|
||||
if (gStatuses3[gActiveBattler] & STATUS3_TELEKINESIS)
|
||||
{
|
||||
if (gDisableStructs[gActiveBattler].telekinesisTimer != 0)
|
||||
gDisableStructs[gActiveBattler].telekinesisTimer--;
|
||||
if (gDisableStructs[gActiveBattler].telekinesisTimer == 0)
|
||||
{
|
||||
gStatuses3[gActiveBattler] &= ~(STATUS3_TELEKINESIS);
|
||||
BattleScriptExecute(BattleScript_TelekinesisEndTurn);
|
||||
effect++;
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case ENDTURN_HEALBLOCK:
|
||||
if (gStatuses3[gActiveBattler] & STATUS3_HEAL_BLOCK)
|
||||
{
|
||||
if (gDisableStructs[gActiveBattler].healBlockTimer != 0)
|
||||
gDisableStructs[gActiveBattler].healBlockTimer--;
|
||||
if (gDisableStructs[gActiveBattler].healBlockTimer == 0)
|
||||
{
|
||||
gStatuses3[gActiveBattler] &= ~(STATUS3_HEAL_BLOCK);
|
||||
BattleScriptExecute(BattleScript_HealBlockEndTurn);
|
||||
effect++;
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnEffectsTracker++;
|
||||
break;
|
||||
case ENDTURN_BATTLER_COUNT: // done
|
||||
gBattleStruct->turnEffectsTracker = 0;
|
||||
gBattleStruct->turnEffectsBattlerId++;
|
||||
break;
|
||||
@ -3693,6 +3792,8 @@ bool32 IsBattlerGrounded(u8 battlerId)
|
||||
|
||||
else if (gStatuses3[battlerId] & STATUS3_TELEKINESIS)
|
||||
return FALSE;
|
||||
else if (gStatuses3[battlerId] & STATUS3_MAGNET_RISE)
|
||||
return FALSE;
|
||||
else if (GetBattlerAbility(battlerId) == ABILITY_LEVITATE)
|
||||
return FALSE;
|
||||
else if (IS_BATTLER_OF_TYPE(battlerId, TYPE_FLYING))
|
||||
|
Loading…
Reference in New Issue
Block a user