#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