2023-02-22 04:16:25 +00:00
|
|
|
#ifndef GUARD_BATTLE_DYNAMAX_H
|
|
|
|
#define GUARD_BATTLE_DYNAMAX_H
|
2022-10-27 21:17:15 +01:00
|
|
|
|
2023-03-25 22:33:50 +00:00
|
|
|
#define DYNAMAX_TURNS_COUNT 3
|
2023-03-10 18:20:27 +00:00
|
|
|
|
2022-10-27 21:17:15 +01:00
|
|
|
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,
|
2023-02-27 07:35:36 +00:00
|
|
|
MAX_EFFECT_VOLCALITH,
|
2022-10-27 21:17:15 +01:00
|
|
|
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,
|
2023-02-27 20:11:52 +00:00
|
|
|
MAX_EFFECT_FIXED_POWER,
|
2023-03-01 00:37:48 +00:00
|
|
|
MAX_EFFECT_BYPASS_PROTECT,
|
2022-10-27 21:17:15 +01:00
|
|
|
};
|
|
|
|
|
2023-03-20 23:40:05 +00:00
|
|
|
bool32 IsDynamaxed(u16 battlerId);
|
|
|
|
bool32 CanDynamax(u16 battlerId);
|
2023-03-25 22:33:50 +00:00
|
|
|
bool32 IsGigantamaxed(u16 battlerId);
|
2023-03-25 06:11:53 +00:00
|
|
|
void ApplyDynamaxHPMultiplier(u16 battlerId, struct Pokemon* mon);
|
2023-03-10 18:20:27 +00:00
|
|
|
void PrepareBattlerForDynamax(u16 battlerId);
|
2023-03-21 18:36:04 +00:00
|
|
|
u16 GetNonDynamaxHP(u16 battlerId);
|
|
|
|
u16 GetNonDynamaxMaxHP(u16 battlerId);
|
2023-03-10 18:20:27 +00:00
|
|
|
void UndoDynamax(u16 battlerId);
|
2023-03-27 03:14:33 +01:00
|
|
|
bool32 IsMoveBlockedByMaxGuard(u16 move);
|
2023-03-20 23:40:05 +00:00
|
|
|
bool32 IsMoveBlockedByDynamax(u16 move);
|
|
|
|
|
|
|
|
bool32 ShouldUseMaxMove(u16 battlerId, u16 baseMove);
|
2023-02-22 04:16:25 +00:00
|
|
|
u16 GetMaxMove(u16 battlerId, u16 baseMove);
|
2023-02-27 20:11:52 +00:00
|
|
|
u8 GetMaxMovePower(u16 move);
|
2023-03-20 23:40:05 +00:00
|
|
|
bool32 IsMaxMove(u16 move);
|
2023-02-22 22:18:15 +00:00
|
|
|
const u8 *GetMaxMoveName(u16 move);
|
2023-02-28 05:26:03 +00:00
|
|
|
void ChooseDamageNonTypesString(u8 type);
|
|
|
|
u32 GetMaxMoveStatusEffect(u16 move);
|
2023-02-27 19:54:49 +00:00
|
|
|
u16 SetMaxMoveEffect(u16 move);
|
2023-03-11 07:03:51 +00:00
|
|
|
|
2023-03-11 06:05:23 +00:00
|
|
|
void ChangeDynamaxTriggerSprite(u8 spriteId, u8 animId);
|
|
|
|
void CreateDynamaxTriggerSprite(u8, bool8);
|
|
|
|
void HideDynamaxTriggerSprite(void);
|
|
|
|
bool32 IsDynamaxTriggerSpriteActive(void);
|
|
|
|
void DestroyDynamaxTriggerSprite(void);
|
2023-02-22 04:16:25 +00:00
|
|
|
|
2023-03-11 07:03:51 +00:00
|
|
|
void DynamaxIndicator_LoadSpriteGfx(void);
|
|
|
|
bool32 DynamaxIndicator_ShouldBeInvisible(u32 battlerId);
|
|
|
|
u8 DynamaxIndicator_GetSpriteId(u32 healthboxSpriteId);
|
|
|
|
void DynamaxIndicator_SetVisibilities(u32 healthboxId, bool32 invisible);
|
|
|
|
void DynamaxIndicator_UpdateOamPriorities(u32 healthboxId, u32 oamPriority);
|
|
|
|
void DynamaxIndicator_UpdateLevel(u32 healthboxId, u32 level);
|
|
|
|
void DynamaxIndicator_CreateSprite(u32 battlerId, u32 healthboxSpriteId);
|
|
|
|
void DynamaxIndicator_DestroySprite(u32 healthboxSpriteId);
|
|
|
|
|
2022-10-27 21:17:15 +01:00
|
|
|
#endif
|