Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
spike_top.inc.c
Go to the documentation of this file.
1#include "common.h"
2#include "effects.h"
3#include "battle/battle.h"
4#include "script_api/battle.h"
5#include "sprite/npc/SpikeTop.h"
6
7#define NAMESPACE A(spike_top)
8
9extern s32 N(CeilingAnims)[];
10extern EvtScript N(EVS_Init);
11extern EvtScript N(EVS_Idle);
12extern EvtScript N(EVS_Ceiling_TakeTurn);
13extern EvtScript N(EVS_Ceiling_HandleEvent);
14extern EvtScript N(EVS_TakeTurn);
15extern EvtScript N(EVS_HandleEvent);
16
17enum N(ActorPartIDs) {
18 PRT_MAIN = 1,
19};
20
21enum N(ActorVars) {
22 AVAR_IsCeiling = 0,
23 AVAR_ToppleState = 8,
24 AVAL_State_Ceiling = 0,
25 AVAL_State_Ground = 1,
26 AVAL_State_Toppled = 2,
27 AVAR_ToppleTurns = 9,
28};
29
30enum N(ActorParams) {
31 DMG_SHELL_TOSS = 3,
32 DMG_CEILING_DROP = 4,
33};
34
35s32 N(UprightDefense)[] = {
37 ELEMENT_FIRE, 99,
38 ELEMENT_BLAST, 99,
40};
41
42s32 N(ToppledDefense)[] = {
45};
46
47s32 N(StatusTable)[] = {
70};
71
72ActorPartBlueprint N(ActorParts)[] = {
73 {
75 .index = PRT_MAIN,
76 .posOffset = { 0, 0, 0 },
77 .targetOffset = { 0, 24 },
78 .opacity = 255,
79 .idleAnimations = N(CeilingAnims),
80 .defenseTable = N(UprightDefense),
82 .elementImmunityFlags = 0,
83 .projectileTargetOffset = { 0, 14 },
84 },
85};
86
87ActorBlueprint NAMESPACE = {
89 .type = ACTOR_TYPE_SPIKE_TOP,
90 .level = ACTOR_LEVEL_SPIKE_TOP,
91 .maxHP = 4,
92 .partCount = ARRAY_COUNT(N(ActorParts)),
93 .partsData = N(ActorParts),
94 .initScript = &N(EVS_Init),
95 .statusTable = N(StatusTable),
96 .escapeChance = 60,
97 .airLiftChance = 70,
98 .hurricaneChance = 65,
99 .spookChance = 60,
100 .upAndAwayChance = 95,
101 .spinSmashReq = 0,
102 .powerBounceChance = 90,
103 .coinReward = 1,
104 .size = { 24, 24 },
105 .healthBarOffset = { 0, 0 },
106 .statusIconOffset = { -8, 16 },
107 .statusTextOffset = { 8, 13 },
108};
109
110s32 N(GroundAnims)[] = {
111 STATUS_KEY_NORMAL, ANIM_SpikeTop_Anim03,
112 STATUS_KEY_STONE, ANIM_SpikeTop_Anim00,
113 STATUS_KEY_SLEEP, ANIM_SpikeTop_Anim1B,
114 STATUS_KEY_POISON, ANIM_SpikeTop_Anim03,
115 STATUS_KEY_STOP, ANIM_SpikeTop_Anim00,
116 STATUS_KEY_STATIC, ANIM_SpikeTop_Anim03,
117 STATUS_KEY_PARALYZE, ANIM_SpikeTop_Anim00,
118 STATUS_KEY_DIZZY, ANIM_SpikeTop_Anim1E,
119 STATUS_KEY_FEAR, ANIM_SpikeTop_Anim1E,
121};
122
123s32 N(CeilingAnims)[] = {
124 STATUS_KEY_NORMAL, ANIM_SpikeTop_Anim04,
125 STATUS_KEY_STONE, ANIM_SpikeTop_Anim01,
126 STATUS_KEY_SLEEP, ANIM_SpikeTop_Anim1C,
127 STATUS_KEY_POISON, ANIM_SpikeTop_Anim04,
128 STATUS_KEY_STOP, ANIM_SpikeTop_Anim01,
129 STATUS_KEY_STATIC, ANIM_SpikeTop_Anim04,
130 STATUS_KEY_PARALYZE, ANIM_SpikeTop_Anim01,
131 STATUS_KEY_DIZZY, ANIM_SpikeTop_Anim1F,
132 STATUS_KEY_FEAR, ANIM_SpikeTop_Anim1F,
134};
135
136s32 N(ToppledAnims)[] = {
137 STATUS_KEY_NORMAL, ANIM_SpikeTop_Anim05,
138 STATUS_KEY_STONE, ANIM_SpikeTop_Anim02,
139 STATUS_KEY_SLEEP, ANIM_SpikeTop_Anim1D,
140 STATUS_KEY_POISON, ANIM_SpikeTop_Anim05,
141 STATUS_KEY_STOP, ANIM_SpikeTop_Anim02,
142 STATUS_KEY_STATIC, ANIM_SpikeTop_Anim05,
143 STATUS_KEY_DIZZY, ANIM_SpikeTop_Anim20,
144 STATUS_KEY_FEAR, ANIM_SpikeTop_Anim20,
146};
147
149
150EvtScript N(EVS_Init) = {
151 Call(BindIdle, ACTOR_SELF, Ref(N(EVS_Idle)))
152 Call(GetActorVar, ACTOR_SELF, AVAR_IsCeiling, LVar0)
153 IfEq(LVar0, 1)
154 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleState, AVAL_State_Ceiling)
155 Call(N(SetAbsoluteStatusOffsets), -10, 0, 10, 0)
156 Call(BindTakeTurn, ACTOR_SELF, Ref(N(EVS_Ceiling_TakeTurn)))
157 Call(BindHandleEvent, ACTOR_SELF, Ref(N(EVS_Ceiling_HandleEvent)))
158 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_FLIPABLE, FALSE)
159 Else
160 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleState, AVAL_State_Ground)
161 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 24)
162 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -9)
163 Call(BindTakeTurn, ACTOR_SELF, Ref(N(EVS_TakeTurn)))
164 Call(BindHandleEvent, ACTOR_SELF, Ref(N(EVS_HandleEvent)))
165 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(GroundAnims)))
166 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_UPSIDE_DOWN, FALSE)
167 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_FLIPABLE, TRUE)
168 EndIf
169 Call(HPBarToHome, ACTOR_SELF)
170 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
171 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
172 Return
173 End
174};
175
176EvtScript N(EVS_Idle) = {
177 Return
178 End
179};
180
181EvtScript N(EVS_FallFromCeiling) = {
182 Call(HideHealthBar, ACTOR_SELF)
183 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleState, AVAL_State_Toppled)
184 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 1, 20)
185 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -3, -8)
186 Call(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20)
187 Call(BindTakeTurn, ACTOR_SELF, Ref(N(EVS_TakeTurn)))
188 Call(BindHandleEvent, ACTOR_SELF, Ref(N(EVS_HandleEvent)))
189 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleTurns, 1)
190 Call(SetDefenseTable, ACTOR_SELF, PRT_MAIN, Ref(N(ToppledDefense)))
191 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(ToppledAnims)))
192 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_UPSIDE_DOWN, FALSE)
193 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_SPIKY_TOP, FALSE)
194 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_FLIPABLE, TRUE)
195 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLIPPED, TRUE)
196 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim15)
197 Call(SetActorYaw, ACTOR_SELF, 180)
198 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
199 Sub(LVar1, 24)
200 Call(SetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
201 Set(LVar1, 0)
203 Call(SetActorJumpGravity, ACTOR_SELF, Float(0.8))
204 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
205 Call(JumpToGoal, ACTOR_SELF, 15, FALSE, TRUE, FALSE)
206 Call(GetIndexFromPos, ACTOR_SELF, LVarA)
207 Mod(LVarA, 4)
208 Call(SetGoalToIndex, ACTOR_SELF, LVarA)
209 Call(GetGoalPos, ACTOR_SELF, LVarA, LVarB, LVarC)
210 Call(SetHomePos, ACTOR_SELF, LVarA, LVarB, LVarC)
211 Set(LVarD, LVarA)
212 Set(LVarE, LVarB)
213 Set(LVarF, LVarC)
214 Sub(LVarD, LVar0)
215 Sub(LVarE, LVar1)
216 Sub(LVarF, LVar2)
217 Div(LVarD, 2)
218 Div(LVarE, 2)
219 Div(LVarF, 2)
220 Add(LVar0, LVarD)
221 Add(LVar1, LVarE)
222 Add(LVar2, LVarF)
223 Call(ResetAllActorSounds, ACTOR_SELF)
224 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim05)
225 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
226 Call(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
227 Call(SetGoalPos, ACTOR_SELF, LVarA, LVarB, LVarC)
228 Call(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
229 Call(HPBarToHome, ACTOR_SELF)
230 Return
231 End
232};
233
234EvtScript N(EVS_Ceiling_HandleEvent) = {
235 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
236 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
237 Call(GetLastEvent, ACTOR_SELF, LVar0)
240 SetConst(LVar0, PRT_MAIN)
241 SetConst(LVar1, ANIM_SpikeTop_Anim14)
244 SetConst(LVar0, PRT_MAIN)
245 SetConst(LVar1, ANIM_SpikeTop_Anim14)
247 ExecWait(N(EVS_FallFromCeiling))
249 SetConst(LVar0, PRT_MAIN)
250 SetConst(LVar1, ANIM_SpikeTop_Anim14)
252 ExecWait(N(EVS_FallFromCeiling))
254 SetConst(LVar0, PRT_MAIN)
255 SetConst(LVar1, ANIM_SpikeTop_Anim19)
256 SetConst(LVar2, ANIM_SpikeTop_Anim1A)
258 ExecWait(N(EVS_FallFromCeiling))
260 SetConst(LVar0, PRT_MAIN)
261 SetConst(LVar1, ANIM_SpikeTop_Anim19)
262 SetConst(LVar2, ANIM_SpikeTop_Anim1A)
264 SetConst(LVar0, PRT_MAIN)
265 SetConst(LVar1, ANIM_SpikeTop_Anim1A)
267 Return
269 SetConst(LVar0, PRT_MAIN)
270 SetConst(LVar1, ANIM_SpikeTop_Anim14)
272 SetConst(LVar0, PRT_MAIN)
273 SetConst(LVar1, ANIM_SpikeTop_Anim13)
275 SetConst(LVar0, PRT_MAIN)
276 SetConst(LVar1, ANIM_SpikeTop_Anim08)
279 SetConst(LVar0, PRT_MAIN)
280 SetConst(LVar1, ANIM_SpikeTop_Anim14)
282 SetConst(LVar0, PRT_MAIN)
283 SetConst(LVar1, ANIM_SpikeTop_Anim13)
285 Return
287 SetConst(LVar0, PRT_MAIN)
288 SetConst(LVar1, ANIM_SpikeTop_Anim0D)
291 SetConst(LVar0, PRT_MAIN)
292 SetConst(LVar1, ANIM_SpikeTop_Anim0D)
294 Wait(2)
295 Call(GetStatusFlags, ACTOR_SELF, LVar0)
297 ExecWait(N(EVS_FallFromCeiling))
298 EndIf
300 SetConst(LVar0, PRT_MAIN)
301 SetConst(LVar1, ANIM_SpikeTop_Anim14)
303 Wait(10)
304 SetConst(LVar0, PRT_MAIN)
305 SetConst(LVar1, ANIM_SpikeTop_Anim14)
307 Return
310 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLYING, TRUE)
311 SetConst(LVar0, PRT_MAIN)
312 SetConst(LVar1, ANIM_SpikeTop_Anim09)
313 SetConst(LVar2, ANIM_SpikeTop_Anim14)
315 Return
318 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
319 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
320 Return
321 End
322};
323
324// switch the anim on LVar1 if toppled
325EvtScript N(EVS_CheckToppleAnim) = {
326 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleState, LVar3)
327 IfEq(LVar3, AVAL_State_Toppled)
328 Set(LVar1, LVar2)
329 EndIf
330 Return
331 End
332};
333
334s32 N(FlipPosOffsets)[] = { 7, 13, 17, 21, 23, 24, 23, 21, 17, 13, 7, 0, 4, 7, 6, 4, 0, 2, 0 };
335
336EvtScript N(EVS_HandleEvent) = {
337 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
338 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
339 Call(GetLastEvent, ACTOR_SELF, LVar0)
343 SetConst(LVar0, PRT_MAIN)
344 SetConst(LVar1, ANIM_SpikeTop_Anim13)
345 SetConst(LVar2, ANIM_SpikeTop_Anim15)
346 ExecWait(N(EVS_CheckToppleAnim))
350 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleState, LVar0)
351 IfNe(LVar0, AVAL_State_Toppled)
352 SetConst(LVar0, PRT_MAIN)
353 SetConst(LVar1, ANIM_SpikeTop_Anim16)
354 SetConst(LVar2, ANIM_SpikeTop_Anim17)
356 Else
357 SetConst(LVar0, PRT_MAIN)
358 SetConst(LVar1, ANIM_SpikeTop_Anim18)
359 SetConst(LVar2, ANIM_SpikeTop_Anim18)
361 EndIf
363 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleState, LVar0)
364 IfNe(LVar0, AVAL_State_Toppled)
365 SetConst(LVar0, PRT_MAIN)
366 SetConst(LVar1, ANIM_SpikeTop_Anim16)
367 SetConst(LVar2, ANIM_SpikeTop_Anim17)
369 SetConst(LVar0, PRT_MAIN)
370 SetConst(LVar1, ANIM_SpikeTop_Anim17)
372 Else
373 SetConst(LVar0, PRT_MAIN)
374 SetConst(LVar1, ANIM_SpikeTop_Anim18)
375 SetConst(LVar2, ANIM_SpikeTop_Anim18)
377 SetConst(LVar0, PRT_MAIN)
378 SetConst(LVar1, ANIM_SpikeTop_Anim18)
380 EndIf
381 Return
383 SetConst(LVar0, PRT_MAIN)
384 SetConst(LVar1, ANIM_SpikeTop_Anim13)
385 SetConst(LVar2, ANIM_SpikeTop_Anim15)
386 ExecWait(N(EVS_CheckToppleAnim))
389 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleState, AVAL_State_Toppled)
390 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 1, 20)
391 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -3, -8)
392 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleTurns, 1)
393 Call(SetDefenseTable, ACTOR_SELF, PRT_MAIN, Ref(N(ToppledDefense)))
394 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(ToppledAnims)))
395 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_SPIKY_TOP, FALSE)
396 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLIPPED, TRUE)
397 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim13)
398 Call(SetActorRotationOffset, ACTOR_SELF, 0, 12, 0)
399 Thread
400 Wait(1)
401 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
402 Wait(1)
403 Call(SetActorRotation, ACTOR_SELF, 0, 0, -45)
404 Wait(1)
405 Call(SetActorRotation, ACTOR_SELF, 0, 0, -90)
406 Wait(1)
407 Call(SetActorRotation, ACTOR_SELF, 0, 0, -135)
408 Wait(1)
409 Call(SetActorRotation, ACTOR_SELF, 0, 0, -180)
410 Wait(1)
412 UseBuf(Ref(N(FlipPosOffsets)))
413 Loop(19)
415 Call(SetActorDispOffset, ACTOR_SELF, 0, LVar0, 0)
416 Wait(1)
417 EndLoop
418 Call(SetActorDispOffset, ACTOR_SELF, 0, 0, 0)
419 Call(SetActorRotationOffset, ACTOR_SELF, 0, 0, 0)
420 Call(SetActorRotation, ACTOR_SELF, 0, 0, 0)
421 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim15)
423 SetConst(LVar0, PRT_MAIN)
424 SetConst(LVar1, ANIM_SpikeTop_Anim13)
426 SetConst(LVar0, PRT_MAIN)
427 SetConst(LVar1, ANIM_SpikeTop_Anim13)
429 SetConst(LVar0, PRT_MAIN)
430 SetConst(LVar1, ANIM_SpikeTop_Anim08)
433 SetConst(LVar0, PRT_MAIN)
434 SetConst(LVar1, ANIM_SpikeTop_Anim13)
436 SetConst(LVar0, PRT_MAIN)
437 SetConst(LVar1, ANIM_SpikeTop_Anim13)
439 Return
441 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleState, LVar0)
442 IfEq(LVar0, AVAL_State_Ground)
443 SetConst(LVar0, PRT_MAIN)
444 SetConst(LVar1, ANIM_SpikeTop_Anim0B)
446 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim0E)
447 Wait(8)
448 Else
449 SetConst(LVar0, PRT_MAIN)
450 SetConst(LVar1, ANIM_SpikeTop_Anim05)
452 EndIf
454 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleState, LVar0)
455 IfEq(LVar0, AVAL_State_Ground)
456 SetConst(LVar0, PRT_MAIN)
457 SetConst(LVar1, ANIM_SpikeTop_Anim0B)
459 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim0C)
460 Wait(8)
461 Else
462 SetConst(LVar0, PRT_MAIN)
463 SetConst(LVar1, ANIM_SpikeTop_Anim05)
465 EndIf
467 Wait(10)
468 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
469 Call(GetStatusFlags, ACTOR_SELF, LVar3)
471 Add(LVar1, 9)
472 Else
473 Add(LVar1, 24)
474 EndIf
475 PlayEffect(EFFECT_LENS_FLARE, 0, LVar0, LVar1, LVar2, 20, 0)
476 Wait(20)
478 SetConst(LVar0, PRT_MAIN)
479 SetConst(LVar1, ANIM_SpikeTop_Anim13)
480 SetConst(LVar2, ANIM_SpikeTop_Anim15)
481 ExecWait(N(EVS_CheckToppleAnim))
483 Wait(10)
484 SetConst(LVar0, PRT_MAIN)
485 SetConst(LVar1, ANIM_SpikeTop_Anim13)
486 SetConst(LVar2, ANIM_SpikeTop_Anim15)
487 ExecWait(N(EVS_CheckToppleAnim))
489 Return
491 SetConst(LVar0, PRT_MAIN)
492 SetConst(LVar1, ANIM_SpikeTop_Anim13)
493 SetConst(LVar2, ANIM_SpikeTop_Anim15)
494 ExecWait(N(EVS_CheckToppleAnim))
496 SetConst(LVar0, PRT_MAIN)
497 SetConst(LVar1, ANIM_SpikeTop_Anim13)
498 SetConst(LVar2, ANIM_SpikeTop_Anim15)
499 ExecWait(N(EVS_CheckToppleAnim))
501 Return
503 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleState, LVar0)
504 IfEq(LVar0, AVAL_State_Ground)
505 SetConst(LVar0, PRT_MAIN)
506 SetConst(LVar1, ANIM_SpikeTop_Anim03)
508 EndIf
510 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleState, LVar0)
511 IfEq(LVar0, AVAL_State_Ground)
512 SetConst(LVar0, PRT_MAIN)
513 SetConst(LVar1, ANIM_SpikeTop_Anim08)
514 SetConst(LVar2, ANIM_SpikeTop_Anim13)
516 Return
517 Else
518 SetConst(LVar0, PRT_MAIN)
519 SetConst(LVar1, ANIM_SpikeTop_Anim05)
521 EndIf
523 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleState, LVar0)
524 IfEq(LVar0, AVAL_State_Ground)
525 SetConst(LVar0, PRT_MAIN)
526 SetConst(LVar1, ANIM_SpikeTop_Anim08)
527 Else
528 SetConst(LVar0, PRT_MAIN)
529 SetConst(LVar1, ANIM_SpikeTop_Anim05)
530 EndIf
533 Call(SetActorDispOffset, ACTOR_SELF, 7, 0, 0)
534 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleState, LVar0)
535 IfEq(LVar0, AVAL_State_Ground)
536 SetConst(LVar0, PRT_MAIN)
537 SetConst(LVar1, ANIM_SpikeTop_Anim13)
538 Else
539 SetConst(LVar0, PRT_MAIN)
540 SetConst(LVar1, ANIM_SpikeTop_Anim15)
541 EndIf
543 Return
545 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleState, LVar0)
546 IfEq(LVar0, AVAL_State_Ground)
547 SetConst(LVar0, PRT_MAIN)
548 SetConst(LVar1, ANIM_SpikeTop_Anim0B)
550 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim0C)
551 Wait(8)
552 Else
553 SetConst(LVar0, PRT_MAIN)
554 SetConst(LVar1, ANIM_SpikeTop_Anim05)
556 EndIf
559 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
560 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
561 Return
562 End
563};
564
565EvtScript N(EVS_Ceiling_TakeTurn) = {
566 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
567 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
568 Call(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
569 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleState, AVAL_State_Ground)
570 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 24)
571 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -9)
572 Call(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20)
573 Call(BindTakeTurn, ACTOR_SELF, Ref(N(EVS_TakeTurn)))
574 Call(BindHandleEvent, ACTOR_SELF, Ref(N(EVS_HandleEvent)))
575 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(GroundAnims)))
576 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_UPSIDE_DOWN, FALSE)
577 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_FLIPABLE, TRUE)
578 Call(GetIndexFromPos, ACTOR_SELF, LVar0)
579 Mod(LVar0, 4)
580 Call(SetGoalToIndex, ACTOR_SELF, LVar0)
581 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
582 Call(SetHomePos, ACTOR_SELF, LVar0, LVar1, LVar2)
583 Call(HPBarToHome, ACTOR_SELF)
584 Call(UseBattleCamPreset, BTL_CAM_ENEMY_APPROACH)
585 Call(BattleCamTargetActor, ACTOR_SELF)
586 Call(SetBattleCamTargetingModes, BTL_CAM_YADJ_TARGET, BTL_CAM_XADJ_AVG, FALSE)
587 Call(GetBattlePhase, LVar0)
589 Call(SetGoalToTarget, ACTOR_SELF)
590 Call(GetActorPos, ACTOR_SELF, LVar3, LVar4, LVar5)
591 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
592 Call(SetActorPos, ACTOR_SELF, LVar0, LVar4, LVar2)
593 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim01)
594 Else
595 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim09)
596 Call(SetGoalToTarget, ACTOR_SELF)
597 Call(GetActorPos, ACTOR_SELF, LVar3, LVar4, LVar5)
598 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
599 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar4, LVar2)
600 Call(SetActorSpeed, ACTOR_SELF, Float(6.0))
601 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
602 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim01)
603 Wait(8)
604 EndIf
606 Call(GetBattlePhase, LVar0)
608 Call(UseBattleCamPreset, BTL_CAM_ACTOR_TARGET_MIDPOINT)
609 Call(SetBattleCamDist, 430)
610 Call(SetBattleCamOffsetY, 20)
611 Call(MoveBattleCamOver, 10)
612 Call(SetBattleCamTargetingModes, BTL_CAM_YADJ_TARGET, BTL_CAM_XADJ_AVG, FALSE)
613 EndIf
614 Call(EnemyTestTarget, ACTOR_SELF, LVar0, 0, 0, 4, BS_FLAGS1_INCLUDE_POWER_UPS)
618 Set(LVarA, LVar0)
619 Call(SetActorYaw, ACTOR_SELF, 180)
620 Call(SetPartYaw, ACTOR_SELF, PRT_MAIN, 180)
621 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim15)
622 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
623 Sub(LVar1, 24)
624 Call(SetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
625 Call(SetActorJumpGravity, ACTOR_SELF, Float(0.8))
626 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
627 Set(LVar1, 0)
628 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
629 Call(JumpToGoal, ACTOR_SELF, 15, FALSE, TRUE, FALSE)
631 Call(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
632 EndIf
633 Call(ResetAllActorSounds, ACTOR_SELF)
634 Add(LVar0, 30)
635 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
636 Call(JumpToGoal, ACTOR_SELF, 15, FALSE, TRUE, FALSE)
637 Thread
638 Wait(5)
639 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim00)
641 Add(LVar0, 20)
642 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
643 Call(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
644 Wait(8)
645 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
646 Call(YieldTurn)
647 Call(SetGoalToHome, ACTOR_SELF)
648 Call(SetActorSpeed, ACTOR_SELF, Float(6.0))
649 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim08)
650 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, 0, ACTOR_DECORATION_SWEAT)
651 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
652 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim03)
653 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, 0)
654 Call(SetActorYaw, ACTOR_SELF, 0)
655 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
656 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
657 Return
660 Call(SetActorYaw, ACTOR_SELF, 180)
661 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim15)
662 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
663 Sub(LVar1, 24)
664 Call(SetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
665 Call(SetActorJumpGravity, ACTOR_SELF, Float(0.8))
666 Call(SetGoalToTarget, ACTOR_SELF)
667 Call(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5)
668 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
669 Set(LVar1, LVar4)
670 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
671 Call(JumpToGoal, ACTOR_SELF, 15, FALSE, TRUE, FALSE)
672 Call(ResetAllActorSounds, ACTOR_SELF)
673 Wait(2)
674 Call(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_ALL, 0, DMG_CEILING_DROP, BS_FLAGS1_TRIGGER_EVENTS)
678 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
679 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
680 Add(LVar0, 30)
681 Set(LVar1, 0)
682 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
683 Call(JumpToGoal, ACTOR_SELF, 15, FALSE, TRUE, FALSE)
684 Thread
685 Wait(5)
686 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim00)
688 Add(LVar0, 20)
689 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
690 Call(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
691 Wait(8)
692 Call(YieldTurn)
693 SetConst(LVar0, PRT_MAIN)
694 SetConst(LVar1, ANIM_SpikeTop_Anim08)
696 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim03)
699 Label(10)
700 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
701 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
702 Return
703 End
704};
705
706EvtScript N(EVS_TakeTurn) = {
707 Call(UseIdleAnimation, ACTOR_SELF, FALSE)
708 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
709 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleState, LVar0)
710 IfEq(LVar0, AVAL_State_Toppled)
711 Call(GetActorVar, ACTOR_SELF, AVAR_ToppleTurns, LVar0)
712 Sub(LVar0, 1)
713 IfGt(LVar0, 0)
714 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleTurns, LVar0)
715 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, 0, ACTOR_DECORATION_SWEAT)
716 Wait(30)
717 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, 0)
718 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
719 Else
720 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, 0, ACTOR_DECORATION_SWEAT)
721 Wait(20)
722 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, 0)
723 SetConst(LVar0, PRT_MAIN)
724 SetConst(LVar1, ANIM_SpikeTop_Anim05)
725 SetConst(LVar2, ANIM_SpikeTop_Anim03)
727 Call(SetActorYaw, ACTOR_SELF, 0)
728 Call(SetActorVar, ACTOR_SELF, AVAR_ToppleState, AVAL_State_Ground)
729 Call(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 24)
730 Call(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -9)
731 Call(SetDefenseTable, ACTOR_SELF, PRT_MAIN, Ref(N(UprightDefense)))
732 Call(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, Ref(N(GroundAnims)))
733 Call(BindIdle, ACTOR_SELF, Ref(N(EVS_Idle)))
734 Call(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_FLIPPED, FALSE)
735 Call(SetPartEventBits, ACTOR_SELF, PRT_MAIN, ACTOR_EVENT_FLAG_SPIKY_TOP, TRUE)
736 EndIf
737 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
738 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
739 Return
740 EndIf
741 Call(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
742 Call(UseBattleCamPreset, BTL_CAM_ENEMY_APPROACH)
743 Call(BattleCamTargetActor, ACTOR_SELF)
744 Call(SetBattleCamTargetingModes, BTL_CAM_YADJ_TARGET, BTL_CAM_XADJ_AVG, FALSE)
745 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim0B)
746 Wait(10)
747 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim0F)
748 Thread
749 Call(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
750 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
751 Wait(10)
752 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
753 Wait(5)
754 PlayEffect(EFFECT_SMOKE_IMPACT, 1, LVar0, LVar1, LVar2, 32, 4, 0, 10, 0)
756 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_SHELL_SPIN)
757 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim0A)
758 Wait(20)
760 Call(PlaySoundAtActor, ACTOR_SELF, SOUND_SHELL_TOSS)
761 Call(EnemyTestTarget, ACTOR_SELF, LVar0, 0, 0, 3, BS_FLAGS1_INCLUDE_POWER_UPS)
765 Set(LVarA, LVar0)
766 Thread
767 Loop(0)
768 Call(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2)
769 Add(LVar0, 30)
770 Call(GetActorPos, ACTOR_SELF, LVar3, LVar4, LVar5)
773 EndIf
774 Wait(1)
775 EndLoop
776 Call(UseBattleCamPreset, BTL_CAM_INTERRUPT)
778 Call(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
779 EndIf
780 Wait(15)
781 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
783 Call(SetGoalToTarget, ACTOR_SELF)
784 Call(AddGoalPos, ACTOR_SELF, -150, 0, 0)
785 Call(SetActorSpeed, ACTOR_SELF, Float(14.0))
786 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
787 Wait(15)
788 Call(YieldTurn)
789 Call(ResetAllActorSounds, ACTOR_SELF)
790 Call(AddActorDecoration, ACTOR_SELF, PRT_MAIN, 0, ACTOR_DECORATION_SWEAT)
791 Call(SetGoalToHome, ACTOR_SELF)
792 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
793 Add(LVar0, 200)
794 Call(SetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
795 Call(SetActorSpeed, ACTOR_SELF, Float(10.0))
796 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
797 Wait(10)
798 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim0C)
799 Wait(10)
800 Call(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, 0)
801 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
802 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
803 Return
806 Call(SetGoalToTarget, ACTOR_SELF)
807 Call(SetActorSpeed, ACTOR_SELF, Float(14.0))
808 Call(RunToGoal, ACTOR_SELF, 0, FALSE)
809 Wait(2)
810 Call(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_ALL, 0, DMG_SHELL_TOSS, BS_FLAGS1_TRIGGER_EVENTS)
814 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
815 Call(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
816 Add(LVar0, 40)
817 Set(LVar1, 0)
818 Call(SetActorJumpGravity, ACTOR_SELF, Float(1.8))
819 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
820 Call(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE)
821 Add(LVar0, 30)
822 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
823 Call(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
824 Add(LVar0, 20)
825 Call(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
826 Call(JumpToGoal, ACTOR_SELF, 6, FALSE, TRUE, FALSE)
827 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim03)
828 Wait(8)
829 Call(YieldTurn)
830 Call(ResetAllActorSounds, ACTOR_SELF)
831 SetConst(LVar0, PRT_MAIN)
832 SetConst(LVar1, ANIM_SpikeTop_Anim08)
834 Call(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_SpikeTop_Anim03)
837 Call(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
838 Call(UseIdleAnimation, ACTOR_SELF, TRUE)
839 Return
840 End
841};
Bytecode EvtScript[]
@ BTL_CAM_XADJ_AVG
Definition enums.h:4900
@ ACTOR_SOUND_WALK
Definition enums.h:2034
@ ACTOR_SOUND_JUMP
Definition enums.h:2036
@ BS_FLAGS1_TRIGGER_EVENTS
Definition enums.h:3575
@ BS_FLAGS1_INCLUDE_POWER_UPS
Definition enums.h:3571
@ ELEMENT_FIRE
Definition enums.h:2116
@ ELEMENT_END
Definition enums.h:2114
@ ELEMENT_BLAST
Definition enums.h:2124
@ ELEMENT_NORMAL
Definition enums.h:2115
@ ACTOR_EVENT_FLAG_FLIPABLE
Actor can be flipped; triggered by jump and quake attacks.
Definition enums.h:3380
@ ACTOR_EVENT_FLAG_SPIKY_TOP
Player takes spike damage from jump attacks.
Definition enums.h:3373
@ ACTOR_DECORATION_SWEAT
Definition enums.h:2045
@ PHASE_FIRST_STRIKE
Definition enums.h:2059
@ STATUS_KEY_PARALYZE
Definition enums.h:2201
@ STATUS_TURN_MOD_DEFAULT
Definition enums.h:2227
@ STATUS_TURN_MOD_PARALYZE
Definition enums.h:2234
@ STATUS_KEY_FROZEN
Definition enums.h:2203
@ STATUS_TURN_MOD_SLEEP
Definition enums.h:2228
@ STATUS_TURN_MOD_DIZZY
Definition enums.h:2232
@ STATUS_KEY_STATIC
Definition enums.h:2207
@ STATUS_END
Definition enums.h:2196
@ STATUS_TURN_MOD_POISON
Definition enums.h:2233
@ STATUS_KEY_FEAR
Definition enums.h:2199
@ STATUS_TURN_MOD_STOP
Definition enums.h:2237
@ STATUS_KEY_SLEEP
Definition enums.h:2202
@ STATUS_KEY_STONE
Definition enums.h:2208
@ STATUS_KEY_STOP
Definition enums.h:2204
@ STATUS_TURN_MOD_FROZEN
Definition enums.h:2230
@ STATUS_KEY_SHRINK
Definition enums.h:2206
@ STATUS_KEY_DIZZY
Definition enums.h:2200
@ STATUS_KEY_POISON
Definition enums.h:2205
@ STATUS_TURN_MOD_STATIC
Definition enums.h:2229
@ STATUS_TURN_MOD_FEAR
Definition enums.h:2231
@ STATUS_KEY_NORMAL
Definition enums.h:2197
@ STATUS_TURN_MOD_SHRINK
Definition enums.h:2235
@ STATUS_KEY_DEFAULT
Definition enums.h:2198
@ HIT_RESULT_NO_DAMAGE
Definition enums.h:1952
@ HIT_RESULT_HIT
Definition enums.h:1950
@ HIT_RESULT_LUCKY
Definition enums.h:1955
@ HIT_RESULT_MISS
Definition enums.h:1956
@ BTL_CAM_ACTOR_TARGET_MIDPOINT
Definition enums.h:4827
@ BTL_CAM_DEFAULT
Definition enums.h:4824
@ BTL_CAM_INTERRUPT
Definition enums.h:4823
@ BTL_CAM_ENEMY_APPROACH
Definition enums.h:4885
@ SUPPRESS_EVENT_ALL
Definition enums.h:2907
@ IDLE_SCRIPT_ENABLE
Definition enums.h:6408
@ IDLE_SCRIPT_DISABLE
Definition enums.h:6407
@ STATUS_FLAG_STOP
Definition enums.h:2821
@ STATUS_FLAG_SHRINK
Definition enums.h:2819
@ SOUND_NONE
Definition enums.h:547
@ SOUND_SHELL_SPIN
Definition enums.h:1342
@ SOUND_FALL_QUICK
Definition enums.h:1090
@ SOUND_SHELL_TOSS
Definition enums.h:1497
@ ACTOR_PLAYER
Definition enums.h:2085
@ ACTOR_SELF
Definition enums.h:2084
@ ACTOR_FLAG_FLYING
Quake Hammer can't hit.
Definition enums.h:3329
@ ACTOR_FLAG_UPSIDE_DOWN
HP bar offset below actor (e.g. Swooper when upside-down).
Definition enums.h:3331
@ ACTOR_FLAG_FLIPPED
Actor has been flipped over.
Definition enums.h:3330
@ BTL_CAM_YADJ_TARGET
Definition enums.h:4905
@ EVENT_HIT
Definition enums.h:2132
@ EVENT_SCARE_AWAY
Definition enums.h:2174
@ EVENT_BURN_HIT
Definition enums.h:2136
@ EVENT_IMMUNE
Definition enums.h:2146
@ EVENT_BURN_DEATH
Definition enums.h:2157
@ EVENT_ZERO_DAMAGE
Definition enums.h:2144
@ EVENT_SHOCK_DEATH
Definition enums.h:2159
@ EVENT_SPIN_SMASH_HIT
Definition enums.h:2133
@ EVENT_SPIN_SMASH_DEATH
Definition enums.h:2154
@ EVENT_HIT_COMBO
Definition enums.h:2131
@ EVENT_SPIKE_TAUNT
Definition enums.h:2148
@ EVENT_AIR_LIFT_FAILED
Definition enums.h:2152
@ EVENT_BEGIN_AIR_LIFT
Definition enums.h:2175
@ EVENT_DEATH
Definition enums.h:2153
@ EVENT_FLIP_TRIGGER
Definition enums.h:2135
@ EVENT_SHOCK_HIT
Definition enums.h:2165
@ EVENT_RECOVER_STATUS
Definition enums.h:2167
@ EVENT_BLOW_AWAY
Definition enums.h:2143
@ ACTOR_PART_FLAG_PRIMARY_TARGET
Definition enums.h:3362
@ DAMAGE_TYPE_TRIGGER_LUCKY
Definition enums.h:2881
EvtScript EVS_Enemy_ReturnHome
EvtScript EVS_Enemy_Knockback
EvtScript EVS_Enemy_ScareAway
EvtScript EVS_Enemy_Hit
EvtScript EVS_Enemy_Death
EvtScript EVS_Enemy_SpinSmashHit
EvtScript EVS_Enemy_ShockHit
EvtScript EVS_Enemy_FlipBackUp
EvtScript EVS_Enemy_AirLift
EvtScript EVS_Enemy_BlowAway
EvtScript EVS_Enemy_Recover
EvtScript EVS_Enemy_BurnHit
EvtScript EVS_Enemy_NoDamageHit
#define Else
Marks the end of an if statement and the start of the else block.
Definition macros.h:295
#define Switch(LVAR)
Marks the start of a switch statement.
Definition macros.h:311
#define Ref(sym)
Address/pointer constant.
Definition macros.h:60
#define Set(VAR, INT_VALUE)
Sets the given variable to a given value casted to an integer.
Definition macros.h:365
#define CaseEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR. It also marks the end of any pre...
Definition macros.h:319
#define Sub(VAR, INT_VALUE)
Definition macros.h:377
#define LVarF
Definition macros.h:163
#define IfNe(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR != RVAR.
Definition macros.h:272
#define End
Signals the end of EVT script data. A script missing this will likely crash on load.
Definition macros.h:213
#define UseBuf(INT_PTR)
Loads a s32 pointer for use with subsequent EVT_BUF_READ commands.
Definition macros.h:389
#define Mod(VAR, INT_VALUE)
Definition macros.h:380
#define Add(VAR, INT_VALUE)
Definition macros.h:376
#define EndLoop
Marks the end of a loop.
Definition macros.h:248
#define EndCaseGroup
Marks the end of a switch case group (CaseOrEq and/or CaseAndEq), stopping fallthrough.
Definition macros.h:352
#define LVarC
Definition macros.h:160
#define ARRAY_COUNT(arr)
Definition macros.h:40
#define BufRead1(VAR)
Consumes the next s32 from the buffer and stores it in the given variable.
Definition macros.h:392
#define IfGt(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR <= RVAR.
Definition macros.h:278
#define Float(DOUBLE)
Definition macros.h:51
#define Label(LABEL_ID)
Marks this point in the script as a Goto target.
Definition macros.h:227
#define CaseOrEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR.
Definition macros.h:341
#define EndIf
Marks the end of an if statement or an else block.
Definition macros.h:298
#define LVar5
Definition macros.h:153
#define CaseDefault
Marks the start of a switch case that executes unconditionally. It also marks the end of any previous...
Definition macros.h:337
#define LVarB
Definition macros.h:159
#define ExecWait(EVT_SOURCE)
Launches a new child thread.
Definition macros.h:475
#define BreakLoop
Breaks out of the innermost loop.
Definition macros.h:251
#define Thread
Marks the start of a thread block.
Definition macros.h:544
#define EndThread
Marks the end of a thread block.
Definition macros.h:547
#define Div(VAR, INT_VALUE)
Definition macros.h:379
#define IfFlag(LVAR, RVAR)
Marks the beginning of an if statement that only executes if the RVAR flag is set on LVAR,...
Definition macros.h:288
#define LVar2
Definition macros.h:150
#define LVar1
Definition macros.h:149
#define LVarA
Definition macros.h:158
#define IfNotFlag(LVAR, RVAR)
Marks the beginning of an if statement that only executes if the RVAR flag is unset on LVAR,...
Definition macros.h:292
#define LVarD
Definition macros.h:161
#define Wait(NUM_FRAMES)
Blocks for the given number of frames.
Definition macros.h:254
#define PlayEffect(args...)
Definition macros.h:807
#define EndSwitch
Marks the end of a switch statement and any case.
Definition macros.h:362
#define IfEq(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR == RVAR.
Definition macros.h:269
#define Call(FUNC, ARGS...)
Calls a given C EVT API function with any number of arguments.
Definition macros.h:576
#define Loop(TIMES)
Marks the beginning of a loop.
Definition macros.h:245
#define LVar4
Definition macros.h:152
#define LVar3
Definition macros.h:151
#define LVarE
Definition macros.h:162
#define LVar0
Definition macros.h:148
#define SetConst(VAR, CONST)
Sets the given variable to a given value, skipping the evt_get_variable call.
Definition macros.h:370
#define Return
Kills the current EVT thread.
Definition macros.h:217