a64e1c63c1
* Made gBattleMoves handle the InGame name and description of battle moves No more multiple arrays in separate, individual files. Note: -Keep an eye on Task_LearnedMove. * Reintroduced move names Misc: -Fixed Trick-or-Treat and Light of Ruin's expanded names. -Introduced a new field for Z-Move names, and a constant for their name length. -Added a few TODOs to GetBattleMoveName. -Updated GetMaxMoveName and GetZMoveName. There's no reason not to let GetBattleMoveName handle everything on its own. * Updated GetBattleMoveName to handle Z-Move Names Misc: -Removed pointless TODO about MOVE_NAME_LENGTH. -The compiler doesn't allow to have a move name with a value higher than MOVE_NAME_LENGTH, therefore it's pointless to worry about it. * Fixed a couple of expanded move names * Removed zMoveName variable of struct BattleMove and extended the name variable's size * Ditched no longer used MOVE_NAME_LENGTH constant * Corrected the names of the max moves I should have done this after updating the size of the name variable of the struct BattleMove, but I didn't think about it at all until Cancer Fairy indirectly gave me the idea. * Fixed U-turn's name * Brought back MOVE_NAME_LENGTH I think it doesn't make sense to have a Z_MOVE_NAME_LENGTH because the length in question is used for all battle moves, not just the Z-Moves. * Introduced a union for Move/Z-Move names in the struct BattleMove * Fixed the union for gBattleMoves move names Also updated GetBattleMoveName to properly handle Max Move names. Also also renamed the "zMoveName" variable to "bigMoveName" which better reflects its purpose. Z-Move names weren't the only thing it covered, since it also handles Max Move names. * Removed deprecated GetZMoveName and GetMaxMoveName * Reintroduced mention to gMoveNames in sGFRomHeader * Fixed move names and ported move descriptions * Fused the struct ContestMove into the struct BattleMove * Removed no longer used Z_MOVE_NAME_LENGTH constant * Renamed the struct BattleMove's bigMoveName variable and introduced macros to prettify move names * Reintroduced the contest parameters for Pokémon moves * Renamed gBattleMoves to gMovesInfo This is consistent with gSpeciesInfo, the array that contains most of the species data. * Renamed the BattleMove struct to MovesInfo This is consistent with the struct SpeciesInfo, which contains the variables used by the gSpeciesInfo array. * Removed empty lines separating battle params from contest params in gMovesInfo * Renamed MovesInfo to MoveInfo * Added Cancer Fairy's HANDLE_EXPANDED_MOVE_NAME macro Used to handle moves with expanded names in a more comfortable manner. Also fixed Trick-or-Treat's expanded name. * Renamed GetBattleMoveName to GetMoveName * Added a comment pointing out that the shared move descriptions are shared move descriptions * Re-aligned one of the escape characters of CHECK_MOVE_FLAG * Renamed the battle_moves.h file to moves_info.h instead for consistency's sake * Applied Eduardo's adjustments * Using compound string for regular move names as well, saving 1180 bytes and making their use consistent * Move description formatting * Updated Pursuit test after merge * Renamed the BATTLE_CATEGORY constants to DAMAGE_CATEGORY --------- Co-authored-by: Nephrite <thechurchofcage@gmail.com> Co-authored-by: Bassoonian <iasperbassoonian@gmail.com> Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
92 lines
2.4 KiB
C
92 lines
2.4 KiB
C
#ifndef GUARD_BATTLE_DYNAMAX_H
|
|
#define GUARD_BATTLE_DYNAMAX_H
|
|
|
|
#define DYNAMAX_TURNS_COUNT 3
|
|
|
|
enum MaxMoveEffect
|
|
{
|
|
MAX_EFFECT_NONE,
|
|
MAX_EFFECT_RAISE_TEAM_ATTACK,
|
|
MAX_EFFECT_RAISE_TEAM_DEFENSE,
|
|
MAX_EFFECT_RAISE_TEAM_SPEED,
|
|
MAX_EFFECT_RAISE_TEAM_SP_ATK,
|
|
MAX_EFFECT_RAISE_TEAM_SP_DEF,
|
|
MAX_EFFECT_LOWER_ATTACK,
|
|
MAX_EFFECT_LOWER_DEFENSE,
|
|
MAX_EFFECT_LOWER_SPEED,
|
|
MAX_EFFECT_LOWER_SP_ATK,
|
|
MAX_EFFECT_LOWER_SP_DEF,
|
|
MAX_EFFECT_SUN,
|
|
MAX_EFFECT_RAIN,
|
|
MAX_EFFECT_SANDSTORM,
|
|
MAX_EFFECT_HAIL,
|
|
MAX_EFFECT_MISTY_TERRAIN,
|
|
MAX_EFFECT_GRASSY_TERRAIN,
|
|
MAX_EFFECT_ELECTRIC_TERRAIN,
|
|
MAX_EFFECT_PSYCHIC_TERRAIN,
|
|
MAX_EFFECT_VINE_LASH,
|
|
MAX_EFFECT_WILDFIRE,
|
|
MAX_EFFECT_CANNONADE,
|
|
MAX_EFFECT_EFFECT_SPORE_FOES,
|
|
MAX_EFFECT_PARALYZE_FOES,
|
|
MAX_EFFECT_CONFUSE_FOES_PAY_DAY,
|
|
MAX_EFFECT_CRIT_PLUS,
|
|
MAX_EFFECT_MEAN_LOOK,
|
|
MAX_EFFECT_AURORA_VEIL,
|
|
MAX_EFFECT_INFATUATE_FOES,
|
|
MAX_EFFECT_RECYCLE_BERRIES,
|
|
MAX_EFFECT_POISON_FOES,
|
|
MAX_EFFECT_STEALTH_ROCK,
|
|
MAX_EFFECT_DEFOG,
|
|
MAX_EFFECT_POISON_PARALYZE_FOES,
|
|
MAX_EFFECT_HEAL_TEAM,
|
|
MAX_EFFECT_SPITE,
|
|
MAX_EFFECT_GRAVITY,
|
|
MAX_EFFECT_VOLCALITH,
|
|
MAX_EFFECT_SANDBLAST_FOES,
|
|
MAX_EFFECT_YAWN_FOE,
|
|
MAX_EFFECT_LOWER_EVASIVENESS_FOES,
|
|
MAX_EFFECT_AROMATHERAPY,
|
|
MAX_EFFECT_CONFUSE_FOES,
|
|
MAX_EFFECT_STEELSURGE,
|
|
MAX_EFFECT_TORMENT_FOES,
|
|
MAX_EFFECT_LOWER_SPEED_2_FOES,
|
|
MAX_EFFECT_FIRE_SPIN_FOES,
|
|
MAX_EFFECT_FIXED_POWER,
|
|
MAX_EFFECT_BYPASS_PROTECT,
|
|
};
|
|
|
|
bool32 IsDynamaxed(u16 battlerId);
|
|
bool32 CanDynamax(u16 battlerId);
|
|
bool32 IsGigantamaxed(u16 battlerId);
|
|
void ApplyDynamaxHPMultiplier(u32 battler, struct Pokemon* mon);
|
|
void PrepareBattlerForDynamax(u16 battlerId);
|
|
u16 GetNonDynamaxHP(u16 battlerId);
|
|
u16 GetNonDynamaxMaxHP(u32 battlerId);
|
|
void UndoDynamax(u16 battlerId);
|
|
bool32 IsMoveBlockedByMaxGuard(u16 move);
|
|
bool32 IsMoveBlockedByDynamax(u16 move);
|
|
|
|
bool32 ShouldUseMaxMove(u16 battlerId, u16 baseMove);
|
|
u16 GetMaxMove(u16 battlerId, u16 baseMove);
|
|
u8 GetMaxMovePower(u16 move);
|
|
bool32 IsMaxMove(u16 move);
|
|
void ChooseDamageNonTypesString(u8 type);
|
|
|
|
void BS_UpdateDynamax(void);
|
|
void BS_SetMaxMoveEffect(void);
|
|
void BS_SetSteelsurge(void);
|
|
void BS_TrySetStatus1(void);
|
|
void BS_TrySetStatus2(void);
|
|
void BS_DamageNonTypes(void);
|
|
void BS_HealOneSixth(void);
|
|
void BS_TryRecycleBerry(void);
|
|
void BS_JumpIfDynamaxed(void);
|
|
|
|
void ChangeDynamaxTriggerSprite(u8 spriteId, u8 animId);
|
|
void CreateDynamaxTriggerSprite(u8, bool8);
|
|
void HideDynamaxTriggerSprite(void);
|
|
bool32 IsDynamaxTriggerSpriteActive(void);
|
|
void DestroyDynamaxTriggerSprite(void);
|
|
|
|
#endif
|