Multiple removals of hardcoded move IDs
This commit is contained in:
parent
bc409b3028
commit
5e9cc8ec5d
6 changed files with 55 additions and 49 deletions
|
@ -123,7 +123,7 @@ bool32 HasMoveWithMoveEffectExcept(u32 battlerId, u32 moveEffect, u32 exception)
|
||||||
bool32 HasMoveThatLowersOwnStats(u32 battlerId);
|
bool32 HasMoveThatLowersOwnStats(u32 battlerId);
|
||||||
bool32 HasMoveWithLowAccuracy(u32 battlerAtk, u32 battlerDef, u32 accCheck, bool32 ignoreStatus, u32 atkAbility, u32 defAbility, u32 atkHoldEffect, u32 defHoldEffect);
|
bool32 HasMoveWithLowAccuracy(u32 battlerAtk, u32 battlerDef, u32 accCheck, bool32 ignoreStatus, u32 atkAbility, u32 defAbility, u32 atkHoldEffect, u32 defHoldEffect);
|
||||||
bool32 HasAnyKnownMove(u32 battlerId);
|
bool32 HasAnyKnownMove(u32 battlerId);
|
||||||
bool32 IsAromaVeilProtectedMove(u32 move);
|
bool32 IsAromaVeilProtectedEffect(u32 moveEffect);
|
||||||
bool32 IsNonVolatileStatusMoveEffect(u32 moveEffect);
|
bool32 IsNonVolatileStatusMoveEffect(u32 moveEffect);
|
||||||
bool32 IsMoveRedirectionPrevented(u32 move, u32 atkAbility);
|
bool32 IsMoveRedirectionPrevented(u32 move, u32 atkAbility);
|
||||||
bool32 IsMoveEncouragedToHit(u32 battlerAtk, u32 battlerDef, u32 move);
|
bool32 IsMoveEncouragedToHit(u32 battlerAtk, u32 battlerDef, u32 move);
|
||||||
|
@ -182,6 +182,7 @@ bool32 PartnerHasSameMoveEffectWithoutTarget(u32 battlerAtkPartner, u32 move, u3
|
||||||
bool32 PartnerMoveEffectIsStatusSameTarget(u32 battlerAtkPartner, u32 battlerDef, u32 partnerMove);
|
bool32 PartnerMoveEffectIsStatusSameTarget(u32 battlerAtkPartner, u32 battlerDef, u32 partnerMove);
|
||||||
bool32 IsMoveEffectWeather(u32 move);
|
bool32 IsMoveEffectWeather(u32 move);
|
||||||
bool32 PartnerMoveEffectIsTerrain(u32 battlerAtkPartner, u32 partnerMove);
|
bool32 PartnerMoveEffectIsTerrain(u32 battlerAtkPartner, u32 partnerMove);
|
||||||
|
bool32 PartnerMoveEffectIs(u32 battlerAtkPartner, u32 partnerMove, u32 effectCheck);
|
||||||
bool32 PartnerMoveIs(u32 battlerAtkPartner, u32 partnerMove, u32 moveCheck);
|
bool32 PartnerMoveIs(u32 battlerAtkPartner, u32 partnerMove, u32 moveCheck);
|
||||||
bool32 PartnerMoveIsSameAsAttacker(u32 battlerAtkPartner, u32 battlerDef, u32 move, u32 partnerMove);
|
bool32 PartnerMoveIsSameAsAttacker(u32 battlerAtkPartner, u32 battlerDef, u32 move, u32 partnerMove);
|
||||||
bool32 PartnerMoveIsSameNoTarget(u32 battlerAtkPartner, u32 move, u32 partnerMove);
|
bool32 PartnerMoveIsSameNoTarget(u32 battlerAtkPartner, u32 move, u32 partnerMove);
|
||||||
|
|
|
@ -809,7 +809,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||||
RETURN_SCORE_MINUS(10);
|
RETURN_SCORE_MINUS(10);
|
||||||
break;
|
break;
|
||||||
case ABILITY_AROMA_VEIL:
|
case ABILITY_AROMA_VEIL:
|
||||||
if (IsAromaVeilProtectedMove(move))
|
if (IsAromaVeilProtectedEffect(moveEffect))
|
||||||
RETURN_SCORE_MINUS(10);
|
RETURN_SCORE_MINUS(10);
|
||||||
break;
|
break;
|
||||||
case ABILITY_SWEET_VEIL:
|
case ABILITY_SWEET_VEIL:
|
||||||
|
@ -902,7 +902,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||||
RETURN_SCORE_MINUS(10);
|
RETURN_SCORE_MINUS(10);
|
||||||
break;
|
break;
|
||||||
case ABILITY_AROMA_VEIL:
|
case ABILITY_AROMA_VEIL:
|
||||||
if (IsAromaVeilProtectedMove(move))
|
if (IsAromaVeilProtectedEffect(moveEffect))
|
||||||
RETURN_SCORE_MINUS(10);
|
RETURN_SCORE_MINUS(10);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -947,12 +947,13 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||||
weather = AI_GetWeather(aiData);
|
weather = AI_GetWeather(aiData);
|
||||||
if (weather & B_WEATHER_PRIMAL_ANY)
|
if (weather & B_WEATHER_PRIMAL_ANY)
|
||||||
{
|
{
|
||||||
switch (move)
|
switch (moveEffect)
|
||||||
{
|
{
|
||||||
case MOVE_SUNNY_DAY:
|
case EFFECT_SUNNY_DAY:
|
||||||
case MOVE_RAIN_DANCE:
|
case EFFECT_RAIN_DANCE:
|
||||||
case MOVE_HAIL:
|
case EFFECT_HAIL:
|
||||||
case MOVE_SANDSTORM:
|
case EFFECT_SNOWSCAPE:
|
||||||
|
case EFFECT_SANDSTORM:
|
||||||
RETURN_SCORE_MINUS(30);
|
RETURN_SCORE_MINUS(30);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2020,7 +2021,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||||
ADJUST_SCORE(-10); // Don't Fly/dig/etc if opponent is going to fly/dig/etc after you
|
ADJUST_SCORE(-10); // Don't Fly/dig/etc if opponent is going to fly/dig/etc after you
|
||||||
|
|
||||||
if (BattlerWillFaintFromWeather(battlerAtk, aiData->abilities[battlerAtk])
|
if (BattlerWillFaintFromWeather(battlerAtk, aiData->abilities[battlerAtk])
|
||||||
&& (move == MOVE_FLY || move == MOVE_BOUNCE))
|
&& GetMoveTwoTurnAttackStatus(move) == STATUS3_ON_AIR)
|
||||||
ADJUST_SCORE(-10); // Attacker will faint while in the air
|
ADJUST_SCORE(-10); // Attacker will faint while in the air
|
||||||
break;
|
break;
|
||||||
case EFFECT_HEALING_WISH: //healing wish, lunar dance
|
case EFFECT_HEALING_WISH: //healing wish, lunar dance
|
||||||
|
@ -2258,7 +2259,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EFFECT_TRICK_ROOM:
|
case EFFECT_TRICK_ROOM:
|
||||||
if (PartnerMoveIs(BATTLE_PARTNER(battlerAtk), aiData->partnerMove, MOVE_TRICK_ROOM))
|
if (PartnerMoveEffectIs(BATTLE_PARTNER(battlerAtk), aiData->partnerMove, EFFECT_TRICK_ROOM))
|
||||||
{
|
{
|
||||||
ADJUST_SCORE(-10);
|
ADJUST_SCORE(-10);
|
||||||
}
|
}
|
||||||
|
@ -2367,17 +2368,8 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case EFFECT_THIRD_TYPE:
|
case EFFECT_THIRD_TYPE:
|
||||||
switch (move)
|
if (IS_BATTLER_OF_TYPE(battlerDef, GetMoveArgType(move)) || PartnerMoveIsSameAsAttacker(BATTLE_PARTNER(battlerAtk), battlerDef, move, aiData->partnerMove) || GetActiveGimmick(battlerDef) == GIMMICK_TERA)
|
||||||
{
|
ADJUST_SCORE(-10);
|
||||||
case MOVE_TRICK_OR_TREAT:
|
|
||||||
if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST) || PartnerMoveIsSameAsAttacker(BATTLE_PARTNER(battlerAtk), battlerDef, move, aiData->partnerMove) || GetActiveGimmick(battlerDef) == GIMMICK_TERA)
|
|
||||||
ADJUST_SCORE(-10);
|
|
||||||
break;
|
|
||||||
case MOVE_FORESTS_CURSE:
|
|
||||||
if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS) || PartnerMoveIsSameAsAttacker(BATTLE_PARTNER(battlerAtk), battlerDef, move, aiData->partnerMove) || GetActiveGimmick(battlerDef) == GIMMICK_TERA)
|
|
||||||
ADJUST_SCORE(-10);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case EFFECT_HEAL_PULSE: // and floral healing
|
case EFFECT_HEAL_PULSE: // and floral healing
|
||||||
if (!IS_TARGETING_PARTNER(battlerAtk, battlerDef)) // Don't heal enemies
|
if (!IS_TARGETING_PARTNER(battlerAtk, battlerDef)) // Don't heal enemies
|
||||||
|
@ -2489,7 +2481,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||||
break;
|
break;
|
||||||
case EFFECT_TAILWIND:
|
case EFFECT_TAILWIND:
|
||||||
if (gSideTimers[GetBattlerSide(battlerAtk)].tailwindTimer != 0
|
if (gSideTimers[GetBattlerSide(battlerAtk)].tailwindTimer != 0
|
||||||
|| PartnerMoveIs(BATTLE_PARTNER(battlerAtk), aiData->partnerMove, MOVE_TAILWIND)
|
|| PartnerMoveEffectIs(BATTLE_PARTNER(battlerAtk), aiData->partnerMove, EFFECT_TAILWIND)
|
||||||
|| (gFieldStatuses & STATUS_FIELD_TRICK_ROOM && gFieldTimers.trickRoomTimer > 1)) // Trick Room active and not ending this turn
|
|| (gFieldStatuses & STATUS_FIELD_TRICK_ROOM && gFieldTimers.trickRoomTimer > 1)) // Trick Room active and not ending this turn
|
||||||
ADJUST_SCORE(-10);
|
ADJUST_SCORE(-10);
|
||||||
break;
|
break;
|
||||||
|
@ -2566,9 +2558,8 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||||
break;
|
break;
|
||||||
case EFFECT_TAKE_HEART:
|
case EFFECT_TAKE_HEART:
|
||||||
if ((!(gBattleMons[battlerAtk].status1 & STATUS1_ANY)
|
if ((!(gBattleMons[battlerAtk].status1 & STATUS1_ANY)
|
||||||
|| PartnerMoveIs(BATTLE_PARTNER(battlerAtk), aiData->partnerMove, MOVE_JUNGLE_HEALING)
|
|| PartnerMoveEffectIs(BATTLE_PARTNER(battlerAtk), aiData->partnerMove, EFFECT_JUNGLE_HEALING)
|
||||||
|| PartnerMoveIs(BATTLE_PARTNER(battlerAtk), aiData->partnerMove, MOVE_HEAL_BELL)
|
|| PartnerMoveEffectIs(BATTLE_PARTNER(battlerAtk), aiData->partnerMove, EFFECT_HEAL_BELL))
|
||||||
|| PartnerMoveIs(BATTLE_PARTNER(battlerAtk), aiData->partnerMove, MOVE_AROMATHERAPY))
|
|
||||||
&& !BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPATK)
|
&& !BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPATK)
|
||||||
&& !BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPDEF))
|
&& !BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPDEF))
|
||||||
ADJUST_SCORE(-10);
|
ADJUST_SCORE(-10);
|
||||||
|
@ -3893,9 +3884,9 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move)
|
||||||
break;
|
break;
|
||||||
case EFFECT_FOLLOW_ME:
|
case EFFECT_FOLLOW_ME:
|
||||||
if (isDoubleBattle
|
if (isDoubleBattle
|
||||||
&& move != MOVE_SPOTLIGHT
|
&& GetMoveTarget(move) == MOVE_TARGET_USER
|
||||||
&& !IsBattlerIncapacitated(battlerDef, aiData->abilities[battlerDef])
|
&& !IsBattlerIncapacitated(battlerDef, aiData->abilities[battlerDef])
|
||||||
&& (move != MOVE_RAGE_POWDER || IsAffectedByPowder(battlerDef, aiData->abilities[battlerDef], aiData->holdEffects[battlerDef])) // Rage Powder doesn't affect powder immunities
|
&& (!IsPowderMove(move) || IsAffectedByPowder(battlerDef, aiData->abilities[battlerDef], aiData->holdEffects[battlerDef])) // Rage Powder doesn't affect powder immunities
|
||||||
&& IsBattlerAlive(BATTLE_PARTNER(battlerAtk)))
|
&& IsBattlerAlive(BATTLE_PARTNER(battlerAtk)))
|
||||||
{
|
{
|
||||||
u32 predictedMoveOnPartner = gLastMoves[BATTLE_PARTNER(battlerAtk)];
|
u32 predictedMoveOnPartner = gLastMoves[BATTLE_PARTNER(battlerAtk)];
|
||||||
|
|
|
@ -1283,10 +1283,10 @@ static u32 GetSwitchinHazardsDamage(u32 battler, struct BattlePokemon *battleMon
|
||||||
{
|
{
|
||||||
// Stealth Rock
|
// Stealth Rock
|
||||||
if ((hazardFlags & SIDE_STATUS_STEALTH_ROCK) && heldItemEffect != HOLD_EFFECT_HEAVY_DUTY_BOOTS)
|
if ((hazardFlags & SIDE_STATUS_STEALTH_ROCK) && heldItemEffect != HOLD_EFFECT_HEAVY_DUTY_BOOTS)
|
||||||
hazardDamage += GetStealthHazardDamageByTypesAndHP(GetMoveType(MOVE_STEALTH_ROCK), defType1, defType2, battleMon->maxHP);
|
hazardDamage += GetStealthHazardDamageByTypesAndHP(TYPE_ROCK, defType1, defType2, battleMon->maxHP);
|
||||||
// G-Max Steelsurge
|
// G-Max Steelsurge
|
||||||
if ((hazardFlags & SIDE_STATUS_STEELSURGE) && heldItemEffect != HOLD_EFFECT_HEAVY_DUTY_BOOTS)
|
if ((hazardFlags & SIDE_STATUS_STEELSURGE) && heldItemEffect != HOLD_EFFECT_HEAVY_DUTY_BOOTS)
|
||||||
hazardDamage += GetStealthHazardDamageByTypesAndHP(GetMoveType(MOVE_G_MAX_STEELSURGE), defType1, defType2, battleMon->maxHP);
|
hazardDamage += GetStealthHazardDamageByTypesAndHP(TYPE_STEEL, defType1, defType2, battleMon->maxHP);
|
||||||
// Spikes
|
// Spikes
|
||||||
if ((hazardFlags & SIDE_STATUS_SPIKES) && IsMonGrounded(heldItemEffect, ability, defType1, defType2))
|
if ((hazardFlags & SIDE_STATUS_SPIKES) && IsMonGrounded(heldItemEffect, ability, defType1, defType2))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1434,16 +1434,16 @@ u32 AI_GetWeather(struct AiLogicData *aiData)
|
||||||
return gBattleWeather;
|
return gBattleWeather;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 IsAromaVeilProtectedMove(u32 move)
|
bool32 IsAromaVeilProtectedEffect(u32 moveEffect)
|
||||||
{
|
{
|
||||||
switch (move)
|
switch (moveEffect)
|
||||||
{
|
{
|
||||||
case MOVE_DISABLE:
|
case EFFECT_DISABLE:
|
||||||
case MOVE_ATTRACT:
|
case EFFECT_ATTRACT:
|
||||||
case MOVE_ENCORE:
|
case EFFECT_ENCORE:
|
||||||
case MOVE_TORMENT:
|
case EFFECT_TORMENT:
|
||||||
case MOVE_TAUNT:
|
case EFFECT_TAUNT:
|
||||||
case MOVE_HEAL_BLOCK:
|
case EFFECT_HEAL_BLOCK:
|
||||||
return TRUE;
|
return TRUE;
|
||||||
default:
|
default:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -1498,8 +1498,9 @@ bool32 IsMoveRedirectionPrevented(u32 move, u32 atkAbility)
|
||||||
if (AI_THINKING_STRUCT->aiFlags[sBattler_AI] & AI_FLAG_NEGATE_UNAWARE)
|
if (AI_THINKING_STRUCT->aiFlags[sBattler_AI] & AI_FLAG_NEGATE_UNAWARE)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (move == MOVE_SKY_DROP
|
u32 effect = GetMoveEffect(move);
|
||||||
|| move == MOVE_SNIPE_SHOT
|
if (effect == EFFECT_SKY_DROP
|
||||||
|
|| effect == EFFECT_SNIPE_SHOT
|
||||||
|| atkAbility == ABILITY_PROPELLER_TAIL
|
|| atkAbility == ABILITY_PROPELLER_TAIL
|
||||||
|| atkAbility == ABILITY_STALWART)
|
|| atkAbility == ABILITY_STALWART)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -3171,7 +3172,7 @@ static u32 FindMoveUsedXTurnsAgo(u32 battlerId, u32 x)
|
||||||
bool32 IsWakeupTurn(u32 battler)
|
bool32 IsWakeupTurn(u32 battler)
|
||||||
{
|
{
|
||||||
// Check if rest was used 2 turns ago
|
// Check if rest was used 2 turns ago
|
||||||
if ((gBattleMons[battler].status1 & STATUS1_SLEEP) == 1 && FindMoveUsedXTurnsAgo(battler, 2) == MOVE_REST)
|
if ((gBattleMons[battler].status1 & STATUS1_SLEEP) == 1 && GetMoveEffect(FindMoveUsedXTurnsAgo(battler, 2)) == EFFECT_REST)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else // no way to know
|
else // no way to know
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -3431,6 +3432,18 @@ bool32 PartnerMoveEffectIsTerrain(u32 battlerAtkPartner, u32 partnerMove)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//PARTNER_MOVE_EFFECT_IS
|
||||||
|
bool32 PartnerMoveEffectIs(u32 battlerAtkPartner, u32 partnerMove, u32 effectCheck)
|
||||||
|
{
|
||||||
|
if (!IsDoubleBattle())
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (partnerMove != MOVE_NONE && GetMoveEffect(partnerMove) == effectCheck)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
//PARTNER_MOVE_IS_TAILWIND_TRICKROOM
|
//PARTNER_MOVE_IS_TAILWIND_TRICKROOM
|
||||||
bool32 PartnerMoveIs(u32 battlerAtkPartner, u32 partnerMove, u32 moveCheck)
|
bool32 PartnerMoveIs(u32 battlerAtkPartner, u32 partnerMove, u32 moveCheck)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1711,18 +1711,19 @@ static void MoveSelectionDisplayPpNumber(u32 battler)
|
||||||
static void MoveSelectionDisplayMoveType(u32 battler)
|
static void MoveSelectionDisplayMoveType(u32 battler)
|
||||||
{
|
{
|
||||||
u8 *txtPtr, *end;
|
u8 *txtPtr, *end;
|
||||||
u8 type;
|
|
||||||
u32 speciesId;
|
u32 speciesId;
|
||||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleResources->bufferA[battler][4]);
|
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleResources->bufferA[battler][4]);
|
||||||
txtPtr = StringCopy(gDisplayedStringBattle, gText_MoveInterfaceType);
|
txtPtr = StringCopy(gDisplayedStringBattle, gText_MoveInterfaceType);
|
||||||
type = GetMoveType(moveInfo->moves[gMoveSelectionCursor[battler]]);
|
u32 move = moveInfo->moves[gMoveSelectionCursor[battler]];
|
||||||
|
u32 type = GetMoveType(move);
|
||||||
|
u32 effect = GetMoveEffect(move);
|
||||||
|
|
||||||
if (moveInfo->moves[gMoveSelectionCursor[battler]] == MOVE_TERA_BLAST)
|
if (effect == EFFECT_TERA_BLAST)
|
||||||
{
|
{
|
||||||
if (IsGimmickSelected(battler, GIMMICK_TERA) || GetActiveGimmick(battler) == GIMMICK_TERA)
|
if (IsGimmickSelected(battler, GIMMICK_TERA) || GetActiveGimmick(battler) == GIMMICK_TERA)
|
||||||
type = GetBattlerTeraType(battler);
|
type = GetBattlerTeraType(battler);
|
||||||
}
|
}
|
||||||
else if (moveInfo->moves[gMoveSelectionCursor[battler]] == MOVE_IVY_CUDGEL)
|
else if (effect == EFFECT_IVY_CUDGEL)
|
||||||
{
|
{
|
||||||
speciesId = gBattleMons[battler].species;
|
speciesId = gBattleMons[battler].species;
|
||||||
|
|
||||||
|
@ -1731,12 +1732,12 @@ static void MoveSelectionDisplayMoveType(u32 battler)
|
||||||
|| speciesId == SPECIES_OGERPON_CORNERSTONE || speciesId == SPECIES_OGERPON_CORNERSTONE_TERA)
|
|| speciesId == SPECIES_OGERPON_CORNERSTONE || speciesId == SPECIES_OGERPON_CORNERSTONE_TERA)
|
||||||
type = gBattleMons[battler].types[1];
|
type = gBattleMons[battler].types[1];
|
||||||
}
|
}
|
||||||
else if (GetMoveCategory(moveInfo->moves[gMoveSelectionCursor[battler]]) == DAMAGE_CATEGORY_STATUS
|
else if (GetMoveCategory(move) == DAMAGE_CATEGORY_STATUS
|
||||||
&& (GetActiveGimmick(battler) == GIMMICK_DYNAMAX || IsGimmickSelected(battler, GIMMICK_DYNAMAX)))
|
&& (GetActiveGimmick(battler) == GIMMICK_DYNAMAX || IsGimmickSelected(battler, GIMMICK_DYNAMAX)))
|
||||||
{
|
{
|
||||||
type = TYPE_NORMAL; // Max Guard is always a Normal-type move
|
type = TYPE_NORMAL; // Max Guard is always a Normal-type move
|
||||||
}
|
}
|
||||||
else if (moveInfo->moves[gMoveSelectionCursor[battler]] == MOVE_TERA_STARSTORM)
|
else if (effect == EFFECT_TERA_STARSTORM)
|
||||||
{
|
{
|
||||||
if (gBattleMons[battler].species == SPECIES_TERAPAGOS_STELLAR
|
if (gBattleMons[battler].species == SPECIES_TERAPAGOS_STELLAR
|
||||||
|| (IsGimmickSelected(battler, GIMMICK_TERA) && gBattleMons[battler].species == SPECIES_TERAPAGOS_TERASTAL))
|
|| (IsGimmickSelected(battler, GIMMICK_TERA) && gBattleMons[battler].species == SPECIES_TERAPAGOS_TERASTAL))
|
||||||
|
@ -1745,7 +1746,7 @@ static void MoveSelectionDisplayMoveType(u32 battler)
|
||||||
else if (P_SHOW_DYNAMIC_TYPES) // Non-vanilla changes to battle UI showing dynamic types
|
else if (P_SHOW_DYNAMIC_TYPES) // Non-vanilla changes to battle UI showing dynamic types
|
||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[gBattlerPartyIndexes[battler]];
|
struct Pokemon *mon = &gPlayerParty[gBattlerPartyIndexes[battler]];
|
||||||
type = CheckDynamicMoveType(mon, moveInfo->moves[gMoveSelectionCursor[battler]], battler);
|
type = CheckDynamicMoveType(mon, move, battler);
|
||||||
}
|
}
|
||||||
end = StringCopy(txtPtr, gTypesInfo[type].name);
|
end = StringCopy(txtPtr, gTypesInfo[type].name);
|
||||||
|
|
||||||
|
|
|
@ -7774,7 +7774,7 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler)
|
||||||
&& GetBattlerAbility(battler) != ABILITY_MAGIC_GUARD)
|
&& GetBattlerAbility(battler) != ABILITY_MAGIC_GUARD)
|
||||||
{
|
{
|
||||||
gDisableStructs[battler].stealthRockDone = TRUE;
|
gDisableStructs[battler].stealthRockDone = TRUE;
|
||||||
gBattleStruct->moveDamage[battler] = GetStealthHazardDamage(GetMoveType(MOVE_STEALTH_ROCK), battler);
|
gBattleStruct->moveDamage[battler] = GetStealthHazardDamage(TYPE_ROCK, battler);
|
||||||
|
|
||||||
if (gBattleStruct->moveDamage[battler] != 0)
|
if (gBattleStruct->moveDamage[battler] != 0)
|
||||||
SetDmgHazardsBattlescript(battler, B_MSG_STEALTHROCKDMG);
|
SetDmgHazardsBattlescript(battler, B_MSG_STEALTHROCKDMG);
|
||||||
|
@ -7833,7 +7833,7 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler)
|
||||||
&& GetBattlerAbility(battler) != ABILITY_MAGIC_GUARD)
|
&& GetBattlerAbility(battler) != ABILITY_MAGIC_GUARD)
|
||||||
{
|
{
|
||||||
gDisableStructs[battler].steelSurgeDone = TRUE;
|
gDisableStructs[battler].steelSurgeDone = TRUE;
|
||||||
gBattleStruct->moveDamage[battler] = GetStealthHazardDamage(GetMoveType(MOVE_G_MAX_STEELSURGE), battler);
|
gBattleStruct->moveDamage[battler] = GetStealthHazardDamage(TYPE_STEEL, battler);
|
||||||
|
|
||||||
if (gBattleStruct->moveDamage[battler] != 0)
|
if (gBattleStruct->moveDamage[battler] != 0)
|
||||||
SetDmgHazardsBattlescript(battler, B_MSG_SHARPSTEELDMG);
|
SetDmgHazardsBattlescript(battler, B_MSG_SHARPSTEELDMG);
|
||||||
|
|
Loading…
Reference in a new issue