52 lines
1.7 KiB
C
52 lines
1.7 KiB
C
|
#ifndef GUARD_BATTLE_GIMMICK_H
|
||
|
#define GUARD_BATTLE_GIMMICK_H
|
||
|
|
||
|
enum Gimmick
|
||
|
{
|
||
|
GIMMICK_NONE,
|
||
|
GIMMICK_MEGA,
|
||
|
GIMMICK_ULTRA_BURST,
|
||
|
GIMMICK_Z_MOVE,
|
||
|
GIMMICK_DYNAMAX,
|
||
|
GIMMICK_TERA,
|
||
|
GIMMICKS_COUNT,
|
||
|
};
|
||
|
|
||
|
struct GimmickInfo
|
||
|
{
|
||
|
const struct SpritePalette *triggerPal; // trigger gfx data
|
||
|
const struct SpriteSheet *triggerSheet;
|
||
|
const struct SpriteTemplate *triggerTemplate;
|
||
|
const struct SpritePalette *indicatorPal; // indicator gfx data
|
||
|
const struct SpriteSheet *indicatorSheet;
|
||
|
bool32 (*CanActivate)(u32 battler);
|
||
|
void (*ActivateGimmick)(u32 battler);
|
||
|
};
|
||
|
|
||
|
void AssignUsableGimmicks(void);
|
||
|
bool32 CanActivateGimmick(u32 battler, enum Gimmick gimmick);
|
||
|
bool32 IsGimmickSelected(u32 battler, enum Gimmick gimmick);
|
||
|
void SetActiveGimmick(u32 battler, enum Gimmick gimmick);
|
||
|
enum Gimmick GetActiveGimmick(u32 battler);
|
||
|
bool32 ShouldTrainerBattlerUseGimmick(u32 battler, enum Gimmick gimmick);
|
||
|
bool32 HasTrainerUsedGimmick(u32 battler, enum Gimmick gimmick);
|
||
|
void SetGimmickAsActivated(u32 battler, enum Gimmick gimmick);
|
||
|
|
||
|
void ChangeGimmickTriggerSprite(u32 spriteId, u32 animId);
|
||
|
void CreateGimmickTriggerSprite(u32 battler);
|
||
|
bool32 IsGimmickTriggerSpriteActive(void);
|
||
|
void HideGimmickTriggerSprite(void);
|
||
|
void DestroyGimmickTriggerSprite(void);
|
||
|
|
||
|
void LoadIndicatorSpritesGfx(void);
|
||
|
u32 GetIndicatorTileTag(u32 battler);
|
||
|
u32 GetIndicatorPalTag(u32 battler);
|
||
|
void UpdateIndicatorVisibilityAndType(u32 healthboxId, bool32 invisible);
|
||
|
void UpdateIndicatorOamPriority(u32 healthboxId, u32 oamPriority);
|
||
|
void UpdateIndicatorLevelData(u32 healthboxId, u32 level);
|
||
|
void CreateIndicatorSprite(u32 battler);
|
||
|
|
||
|
extern const struct GimmickInfo gGimmicksInfo[];
|
||
|
|
||
|
#endif
|