19AnimID N(ExtraAnims_FrostClubba)[] = {
20 ANIM_WorldClubba_Anim00,
21 ANIM_WorldClubba_Anim02,
22 ANIM_WorldClubba_Anim03,
23 ANIM_WorldClubba_Anim04,
24 ANIM_WorldClubba_Anim0C,
25 ANIM_WorldClubba_Anim07,
26 ANIM_WorldClubba_Anim08,
27 ANIM_WorldClubba_Anim11,
28 ANIM_WorldClubba_Anim12,
32AnimID N(ExtraAnims_FrostClubba_Hitbox)[] = {
33 ANIM_WorldClubba_Anim00,
37#ifdef INCLUDE_FROST_CLUBBA_WANDER
44 .alertRadius = 100.0f,
45 .alertOffsetDist = 40.0f,
46 .playerSearchInterval = 7,
49 .chaseUpdateInterval = 15,
50 .chaseRadius = 200.0f,
51 .chaseOffsetDist = 160.0f,
55EvtScript N(EVS_NpcAI_FrostClubba_Wander) = {
60 Call(N(WanderMeleeAI_Main),
Ref(N(AISettings_FrostClubba_Wander)))
68 .level = ACTOR_LEVEL_WHITE_CLUBBA,
69 .ai = &N(EVS_NpcAI_FrostClubba_Wander),
76#ifdef INCLUDE_FROST_CLUBBA_PATROL
82 .alertRadius = 100.0f,
83 .alertOffsetDist = 40.0f,
84 .playerSearchInterval = 7,
87 .chaseUpdateInterval = 10,
88 .chaseRadius = 110.0f,
89 .chaseOffsetDist = 50.0f,
93EvtScript N(EVS_NpcAI_FrostClubba_Patrol) = {
98 Call(N(ClubbaPatrolAI_Main),
Ref(N(AISettings_FrostClubba_Patrol)))
106 .level = ACTOR_LEVEL_WHITE_CLUBBA,
107 .ai = &N(EVS_NpcAI_FrostClubba_Patrol),
114#ifdef INCLUDE_FROST_CLUBBA_NAPPING
122 .alertRadius = 100.0f,
123 .alertOffsetDist = 40.0f,
124 .playerSearchInterval = 10,
127 .chaseUpdateInterval = 15,
128 .chaseRadius = 200.0f,
129 .chaseOffsetDist = 160.0f,
133EvtScript N(EVS_NpcAI_FrostClubba_Napping) = {
138 Call(N(ClubbaNappingAI_Main),
Ref(N(AISettings_FrostClubba_Napping)))
146 .level = ACTOR_LEVEL_WHITE_CLUBBA,
147 .ai = &N(EVS_NpcAI_FrostClubba_Napping),
156EvtScript N(EVS_NpcAI_FrostClubba_Hitbox) = {
164 Call(N(MeleeHitbox_Main))
172 .level = ACTOR_LEVEL_WHITE_CLUBBA,
173 .ai = &N(EVS_NpcAI_FrostClubba_Hitbox),
174 .onDefeat = &N(EVS_NpcDefeat_FrostClubba),
ApiStatus EnableNpcShadow(Evt *script, b32 isInitialCall)
ApiStatus SetEnemyFlagBits(Evt *script, b32 isInitialCall)
ApiStatus RemoveNpc(Evt *script, b32 isInitialCall)
ApiStatus SetNpcPos(Evt *script, b32 isInitialCall)
ApiStatus OnPlayerFled(Evt *script, b32 isInitialCall)
ApiStatus SetSelfVar(Evt *script, b32 isInitialCall)
ApiStatus GetBattleOutcome(Evt *script, b32 isInitialCall)
#define Switch(LVAR)
Marks the start of a switch statement.
#define Ref(sym)
Address/pointer constant.
#define CaseEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR. It also marks the end of any pre...
#define End
Signals the end of EVT script data. A script missing this will likely crash on load.
#define NPC_DISPOSE_LOCATION
#define EndSwitch
Marks the end of a switch statement and any case.
#define Call(FUNC, ARGS...)
Calls a given C EVT API function with any number of arguments.
#define Return
Kills the current EVT thread.
#define ANIM_LIST_END
Terminates an extraAnimationList.