Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions include/battle_ai_util.h
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,6 @@ bool32 HasBattlerSideMoveWithEffect(u32 battler, u32 effect);
bool32 HasBattlerSideMoveWithAIEffect(u32 battler, u32 effect);
bool32 HasBattlerSideUsedMoveWithEffect(u32 battler, u32 effect);
bool32 HasNonVolatileMoveEffect(u32 battlerId, u32 effect);
bool32 IsPowerBasedOnStatus(u32 battlerId, enum BattleMoveEffects effect, u32 argument);
bool32 HasMoveWithAdditionalEffect(u32 battlerId, u32 moveEffect);
bool32 HasBattlerSideMoveWithAdditionalEffect(u32 battler, u32 moveEffect);
bool32 HasMoveWithCriticalHitChance(u32 battlerId);
Expand Down Expand Up @@ -286,12 +285,12 @@ bool32 SideHasMoveCategory(u32 battlerId, enum DamageCategory category);
u32 IncreaseStatUpScore(u32 battlerAtk, u32 battlerDef, enum StatChange statId);
u32 IncreaseStatUpScoreContrary(u32 battlerAtk, u32 battlerDef, enum StatChange statId);
u32 IncreaseStatDownScore(u32 battlerAtk, u32 battlerDef, u32 stat);
void IncreasePoisonScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score);
void IncreaseBurnScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score);
void IncreaseParalyzeScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score);
void IncreaseSleepScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score);
s32 IncreasePoisonScore(u32 battlerAtk, u32 battlerDef, u32 move);
s32 IncreaseBurnScore(u32 battlerAtk, u32 battlerDef, u32 move);
s32 IncreaseParalyzeScore(u32 battlerAtk, u32 battlerDef, u32 move);
s32 IncreaseSleepScore(u32 battlerAtk, u32 battlerDef, u32 move);
s32 IncreaseFrostbiteScore(u32 battlerAtk, u32 battlerDef, u32 move);
void IncreaseConfusionScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score);
void IncreaseFrostbiteScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score);

s32 AI_CalcPartyMonDamage(u32 move, u32 battlerAtk, u32 battlerDef, struct BattlePokemon switchinCandidate, uq4_12_t *effectiveness, enum DamageCalcContext calcContext);
u32 AI_WhoStrikesFirstPartyMon(u32 battlerAtk, u32 battlerDef, struct BattlePokemon switchinCandidate, u32 aiMoveConsidered, u32 playerMoveConsidered, enum ConsiderPriority ConsiderPriority);
Expand Down
32 changes: 16 additions & 16 deletions src/battle_ai_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4075,23 +4075,23 @@ static s32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move, stru
{
case MOVE_EFFECT_POISON:
case MOVE_EFFECT_TOXIC:
IncreasePoisonScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreasePoisonScore(battlerAtk, battlerDef, move));
break;
case MOVE_EFFECT_SLEEP:
IncreaseSleepScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreaseSleepScore(battlerAtk, battlerDef, move));
break;
case MOVE_EFFECT_PARALYSIS:
IncreaseParalyzeScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreaseParalyzeScore(battlerAtk, battlerDef, move));
break;
case MOVE_EFFECT_BURN:
IncreaseBurnScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreaseBurnScore(battlerAtk, battlerDef, move));
break;
}
// move effect checks
switch (moveEffect)
{
case EFFECT_YAWN:
IncreaseSleepScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreaseSleepScore(battlerAtk, battlerDef, move));
break;
case EFFECT_ABSORB:
if (aiData->holdEffects[battlerAtk] == HOLD_EFFECT_BIG_ROOT && effectiveness >= UQ_4_12(1.0))
Expand Down Expand Up @@ -5066,15 +5066,15 @@ static s32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move, stru
break;
case EFFECT_PSYCHO_SHIFT:
if (gBattleMons[battlerAtk].status1 & STATUS1_PSN_ANY)
IncreasePoisonScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreasePoisonScore(battlerAtk, battlerDef, move));
else if (gBattleMons[battlerAtk].status1 & STATUS1_BURN)
IncreaseBurnScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreaseBurnScore(battlerAtk, battlerDef, move));
else if (gBattleMons[battlerAtk].status1 & STATUS1_PARALYSIS)
IncreaseParalyzeScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreaseParalyzeScore(battlerAtk, battlerDef, move));
else if (gBattleMons[battlerAtk].status1 & STATUS1_SLEEP)
IncreaseSleepScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreaseSleepScore(battlerAtk, battlerDef, move));
else if (gBattleMons[battlerAtk].status1 & STATUS1_FROSTBITE)
IncreaseFrostbiteScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreaseFrostbiteScore(battlerAtk, battlerDef, move));
break;
case EFFECT_GRUDGE:
break;
Expand Down Expand Up @@ -5312,7 +5312,7 @@ case EFFECT_GUARD_SPLIT:
// improve accuracy of Hypnosis
if (HasSleepMoveWithLowAccuracy(battlerAtk, battlerDef)
|| HasSleepMoveWithLowAccuracy(BATTLE_PARTNER(battlerAtk), battlerDef))
IncreaseSleepScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreaseSleepScore(battlerAtk, battlerDef, move));
if (HasMoveWithLowAccuracy(battlerAtk, battlerDef, 90, TRUE)
|| HasMoveWithLowAccuracy(BATTLE_PARTNER(battlerAtk), battlerDef, 90, TRUE))
ADJUST_SCORE(WEAK_EFFECT);
Expand All @@ -5332,17 +5332,17 @@ case EFFECT_GUARD_SPLIT:
switch (gFlingTable[aiData->items[battlerAtk]].effect)
{
case MOVE_EFFECT_BURN:
IncreaseBurnScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreaseBurnScore(battlerAtk, battlerDef, move));
break;
case MOVE_EFFECT_FLINCH:
score += ShouldTryToFlinch(battlerAtk, battlerDef, aiData->abilities[battlerAtk], aiData->abilities[battlerDef], move);
break;
case MOVE_EFFECT_PARALYSIS:
IncreaseParalyzeScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreaseParalyzeScore(battlerAtk, battlerDef, move));
break;
case MOVE_EFFECT_POISON:
case MOVE_EFFECT_TOXIC:
IncreasePoisonScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreasePoisonScore(battlerAtk, battlerDef, move));
break;
case MOVE_EFFECT_FREEZE:
if (AI_CanFreeze(battlerAtk, battlerDef))
Expand Down Expand Up @@ -5468,7 +5468,7 @@ case EFFECT_GUARD_SPLIT:
ADJUST_SCORE(DECENT_EFFECT);
break;
case EFFECT_TOXIC_THREAD:
IncreasePoisonScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreasePoisonScore(battlerAtk, battlerDef, move));
ADJUST_SCORE(IncreaseStatUpScore(battlerAtk, battlerDef, STAT_CHANGE_SPEED));
break;
case EFFECT_COUNTER:
Expand Down Expand Up @@ -5784,7 +5784,7 @@ static s32 AI_CalcAdditionalEffectScore(u32 battlerAtk, u32 battlerDef, u32 move
break;
}
case MOVE_EFFECT_POISON:
IncreasePoisonScore(battlerAtk, battlerDef, move, &score);
ADJUST_SCORE(IncreasePoisonScore(battlerAtk, battlerDef, move));
break;
case MOVE_EFFECT_CLEAR_SMOG:
{
Expand Down
Loading
Loading