summaryrefslogtreecommitdiff
path: root/src/calculate_base_damage.c
diff options
context:
space:
mode:
authorDiegoisawesome <Diegoisawesome@users.noreply.github.com>2018-02-11 14:50:18 -0600
committerGitHub <noreply@github.com>2018-02-11 14:50:18 -0600
commit14a76793e596d612efd273169c4172922c270f13 (patch)
tree9517f097031e48ed4dd590ee772875a0da48c652 /src/calculate_base_damage.c
parent387dbf48d0bbb22dc16158a1ee0d373c166c8438 (diff)
parentd704a2b5df0a7957f6df06669cf4423e5026d87b (diff)
Merge pull request #206 from DizzyEggg/battle_labels
More battle code clean up
Diffstat (limited to 'src/calculate_base_damage.c')
-rw-r--r--src/calculate_base_damage.c38
1 files changed, 15 insertions, 23 deletions
diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c
index b6b83086b..98468caa2 100644
--- a/src/calculate_base_damage.c
+++ b/src/calculate_base_damage.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "constants/abilities.h"
#include "battle.h"
+#include "battle_setup.h"
#include "constants/hold_effects.h"
#include "event_data.h"
#include "item.h"
@@ -10,15 +11,6 @@
#include "constants/moves.h"
#include "constants/battle_move_effects.h"
-extern u32 gBattleTypeFlags;
-extern struct BattlePokemon gBattleMons[4];
-extern u16 gCurrentMove;
-extern u8 gCritMultiplier;
-extern u16 gBattleWeather;
-extern struct BattleEnigmaBerry gEnigmaBerries[];
-extern u16 gBattleMovePower;
-extern u16 gTrainerBattleOpponent_A;
-
bool8 ShouldGetStatBadgeBoost(u16 flagId, u8 bank);
extern const struct BattleMove gBattleMoves[];
@@ -149,30 +141,30 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
if (gBattleMoves[gCurrentMove].effect == EFFECT_EXPLOSION)
defense /= 2;
- if (type < TYPE_MYSTERY) // is physical
+ if (IS_MOVE_PHYSICAL(type))
{
if (gCritMultiplier == 2)
{
- if (attacker->statStages[STAT_STAGE_ATK] > 6)
- APPLY_STAT_MOD(damage, attacker, attack, STAT_STAGE_ATK)
+ if (attacker->statStages[STAT_ATK] > 6)
+ APPLY_STAT_MOD(damage, attacker, attack, STAT_ATK)
else
damage = attack;
}
else
- APPLY_STAT_MOD(damage, attacker, attack, STAT_STAGE_ATK)
+ APPLY_STAT_MOD(damage, attacker, attack, STAT_ATK)
damage = damage * gBattleMovePower;
damage *= (2 * attacker->level / 5 + 2);
if (gCritMultiplier == 2)
{
- if (defender->statStages[STAT_STAGE_DEF] < 6)
- APPLY_STAT_MOD(damageHelper, defender, defense, STAT_STAGE_DEF)
+ if (defender->statStages[STAT_DEF] < 6)
+ APPLY_STAT_MOD(damageHelper, defender, defense, STAT_DEF)
else
damageHelper = defense;
}
else
- APPLY_STAT_MOD(damageHelper, defender, defense, STAT_STAGE_DEF)
+ APPLY_STAT_MOD(damageHelper, defender, defense, STAT_DEF)
damage = damage / damageHelper;
damage /= 50;
@@ -199,30 +191,30 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
if (type == TYPE_MYSTERY)
damage = 0; // is ??? type. does 0 damage.
- if (type > TYPE_MYSTERY) // is special?
+ if (IS_MOVE_SPECIAL(type))
{
if (gCritMultiplier == 2)
{
- if (attacker->statStages[STAT_STAGE_SPATK] > 6)
- APPLY_STAT_MOD(damage, attacker, spAttack, STAT_STAGE_SPATK)
+ if (attacker->statStages[STAT_SPATK] > 6)
+ APPLY_STAT_MOD(damage, attacker, spAttack, STAT_SPATK)
else
damage = spAttack;
}
else
- APPLY_STAT_MOD(damage, attacker, spAttack, STAT_STAGE_SPATK)
+ APPLY_STAT_MOD(damage, attacker, spAttack, STAT_SPATK)
damage = damage * gBattleMovePower;
damage *= (2 * attacker->level / 5 + 2);
if (gCritMultiplier == 2)
{
- if (defender->statStages[STAT_STAGE_SPDEF] < 6)
- APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_STAGE_SPDEF)
+ if (defender->statStages[STAT_SPDEF] < 6)
+ APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_SPDEF)
else
damageHelper = spDefense;
}
else
- APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_STAGE_SPDEF)
+ APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_SPDEF)
damage = (damage / damageHelper);
damage /= 50;